@contentful/experience-design-system-cli 2.42.1-dev-build-62049584.0 → 2.42.1-dev-build-9c1908dc.0
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/dist/app.js +979 -1089
- package/dist/index.js +980 -1115
- package/dist/package.json +1 -1
- package/dist/src/tui/import/shared/running-step/running-step.d.ts +1 -3
- package/dist/src/tui/import/steps/08-generation/logic.d.ts +0 -7
- package/dist/src/tui/import/steps/08-generation/types.d.ts +0 -3
- package/dist/src/tui/import/steps/10-flow/support/push-progress.d.ts +0 -19
- package/package.json +3 -3
- package/dist/src/tui/import/shared/running-step/activity-panel.d.ts +0 -15
- package/dist/src/tui/import/shared/running-step/activity.d.ts +0 -26
package/dist/index.js
CHANGED
|
@@ -20202,123 +20202,47 @@ var init_use_elapsed = __esm({
|
|
|
20202
20202
|
}
|
|
20203
20203
|
});
|
|
20204
20204
|
|
|
20205
|
-
// packages/experience-design-system-cli/src/tui/import/shared/running-step/activity.ts
|
|
20206
|
-
function panelLayout(columns) {
|
|
20207
|
-
return columns >= BESIDE_MIN_COLUMNS ? "beside" : "below";
|
|
20208
|
-
}
|
|
20209
|
-
function visibleActivity(items, max) {
|
|
20210
|
-
if (items.length <= max) return { shown: [...items], hidden: 0 };
|
|
20211
|
-
const chosen = items.map((item, index) => ({ index, priority: PRIORITY[item.state] })).sort((a, b) => a.priority - b.priority || b.index - a.index).slice(0, Math.max(0, max)).map(({ index }) => index).sort((a, b) => a - b);
|
|
20212
|
-
return { shown: chosen.map((index) => items[index]), hidden: items.length - chosen.length };
|
|
20213
|
-
}
|
|
20214
|
-
function truncate(text, max) {
|
|
20215
|
-
return text.length <= max ? text : `${text.slice(0, Math.max(0, max - 1))}\u2026`;
|
|
20216
|
-
}
|
|
20217
|
-
var BESIDE_MIN_COLUMNS, PANEL_COLUMNS, PRIORITY;
|
|
20218
|
-
var init_activity = __esm({
|
|
20219
|
-
"packages/experience-design-system-cli/src/tui/import/shared/running-step/activity.ts"() {
|
|
20220
|
-
"use strict";
|
|
20221
|
-
BESIDE_MIN_COLUMNS = 110;
|
|
20222
|
-
PANEL_COLUMNS = 46;
|
|
20223
|
-
PRIORITY = { failed: 0, running: 1, done: 2 };
|
|
20224
|
-
}
|
|
20225
|
-
});
|
|
20226
|
-
|
|
20227
|
-
// packages/experience-design-system-cli/src/tui/import/shared/running-step/activity-panel.tsx
|
|
20228
|
-
import { Box as Box8, Text as Text8 } from "ink";
|
|
20229
|
-
import { Spinner } from "@inkjs/ui";
|
|
20230
|
-
import { Fragment, jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
20231
|
-
function Row({ item, width }) {
|
|
20232
|
-
const time = item.ms !== void 0 ? formatDuration(item.ms) : "";
|
|
20233
|
-
const note = item.detail ? ` ${item.detail}` : "";
|
|
20234
|
-
const name = truncate(`${item.name}${note}`, Math.max(8, width - 12));
|
|
20235
|
-
return /* @__PURE__ */ jsxs8(Box8, { flexDirection: "column", children: [
|
|
20236
|
-
/* @__PURE__ */ jsxs8(Box8, { gap: 1, children: [
|
|
20237
|
-
item.state === "running" ? /* @__PURE__ */ jsx8(Spinner, {}) : /* @__PURE__ */ jsx8(Text8, { color: COLOR[item.state], children: ICON[item.state] }),
|
|
20238
|
-
/* @__PURE__ */ jsx8(Text8, { color: item.state === "failed" ? PALETTE.error : PALETTE.muted, children: name }),
|
|
20239
|
-
time && /* @__PURE__ */ jsx8(Text8, { color: PALETTE.muted, children: time })
|
|
20240
|
-
] }),
|
|
20241
|
-
item.state === "failed" && item.error && /* @__PURE__ */ jsx8(Text8, { color: PALETTE.error, children: ` ${truncate(item.error, Math.max(12, width - 6))}` })
|
|
20242
|
-
] });
|
|
20243
|
-
}
|
|
20244
|
-
function ActivityPanel({ title, items }) {
|
|
20245
|
-
const columns = useTerminalWidth();
|
|
20246
|
-
const width = panelLayout(columns) === "beside" ? PANEL_COLUMNS : Math.max(30, columns - 4);
|
|
20247
|
-
const { shown, hidden } = visibleActivity(items, MAX_ROWS);
|
|
20248
|
-
return /* @__PURE__ */ jsxs8(Box8, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.muted, paddingX: 1, width, children: [
|
|
20249
|
-
/* @__PURE__ */ jsx8(Text8, { bold: true, children: title }),
|
|
20250
|
-
shown.map((item, index) => /* @__PURE__ */ jsx8(Row, { item, width }, `${index}-${item.name}`)),
|
|
20251
|
-
hidden > 0 && /* @__PURE__ */ jsx8(Text8, { color: PALETTE.muted, children: `+ ${hidden} more` })
|
|
20252
|
-
] });
|
|
20253
|
-
}
|
|
20254
|
-
function AsideLayout({
|
|
20255
|
-
aside,
|
|
20256
|
-
children
|
|
20257
|
-
}) {
|
|
20258
|
-
const columns = useTerminalWidth();
|
|
20259
|
-
if (!aside) return /* @__PURE__ */ jsx8(Fragment, { children });
|
|
20260
|
-
const beside = panelLayout(columns) === "beside";
|
|
20261
|
-
return /* @__PURE__ */ jsxs8(Box8, { flexDirection: beside ? "row" : "column", alignItems: "flex-start", children: [
|
|
20262
|
-
children,
|
|
20263
|
-
/* @__PURE__ */ jsx8(Box8, { paddingX: beside ? 0 : 2, paddingBottom: 1, children: aside })
|
|
20264
|
-
] });
|
|
20265
|
-
}
|
|
20266
|
-
var MAX_ROWS, ICON, COLOR;
|
|
20267
|
-
var init_activity_panel = __esm({
|
|
20268
|
-
"packages/experience-design-system-cli/src/tui/import/shared/running-step/activity-panel.tsx"() {
|
|
20269
|
-
"use strict";
|
|
20270
|
-
init_theme();
|
|
20271
|
-
init_use_terminal_width();
|
|
20272
|
-
init_logic4();
|
|
20273
|
-
init_activity();
|
|
20274
|
-
MAX_ROWS = 8;
|
|
20275
|
-
ICON = { done: "\u2713", failed: "\u2717" };
|
|
20276
|
-
COLOR = { done: PALETTE.success, failed: PALETTE.error };
|
|
20277
|
-
}
|
|
20278
|
-
});
|
|
20279
|
-
|
|
20280
20205
|
// packages/experience-design-system-cli/src/tui/import/shared/running-step/running-step.tsx
|
|
20281
|
-
import { Box as
|
|
20282
|
-
import { ProgressBar, Spinner
|
|
20283
|
-
import { jsx as
|
|
20206
|
+
import { Box as Box8, Text as Text8 } from "ink";
|
|
20207
|
+
import { ProgressBar, Spinner, ThemeProvider } from "@inkjs/ui";
|
|
20208
|
+
import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
20284
20209
|
function Line({ line }) {
|
|
20285
20210
|
if (line.progress) {
|
|
20286
|
-
return /* @__PURE__ */
|
|
20287
|
-
/* @__PURE__ */
|
|
20288
|
-
/* @__PURE__ */
|
|
20289
|
-
/* @__PURE__ */
|
|
20211
|
+
return /* @__PURE__ */ jsxs8(Box8, { flexDirection: "column", gap: 1, children: [
|
|
20212
|
+
/* @__PURE__ */ jsxs8(Box8, { gap: 2, children: [
|
|
20213
|
+
/* @__PURE__ */ jsx8(Box8, { width: 40, children: /* @__PURE__ */ jsx8(ThemeProvider, { theme: PROGRESS_THEME, children: /* @__PURE__ */ jsx8(ProgressBar, { value: progressPercent(line.progress) }) }) }),
|
|
20214
|
+
/* @__PURE__ */ jsxs8(Text8, { color: PALETTE.muted, children: [
|
|
20290
20215
|
line.progress.done,
|
|
20291
20216
|
"/",
|
|
20292
20217
|
line.progress.total
|
|
20293
20218
|
] })
|
|
20294
20219
|
] }),
|
|
20295
|
-
/* @__PURE__ */
|
|
20220
|
+
/* @__PURE__ */ jsx8(Text8, { color: textColor(lineState(line)), children: line.text })
|
|
20296
20221
|
] });
|
|
20297
20222
|
}
|
|
20298
20223
|
const state2 = lineState(line);
|
|
20299
|
-
return /* @__PURE__ */
|
|
20300
|
-
state2 === "running" ? /* @__PURE__ */
|
|
20301
|
-
/* @__PURE__ */
|
|
20302
|
-
line.ms !== void 0 && /* @__PURE__ */
|
|
20224
|
+
return /* @__PURE__ */ jsxs8(Box8, { gap: 1, children: [
|
|
20225
|
+
state2 === "running" ? /* @__PURE__ */ jsx8(Spinner, {}) : /* @__PURE__ */ jsx8(Text8, { color: STATE_COLOR[state2], children: STATE_ICON[state2] }),
|
|
20226
|
+
/* @__PURE__ */ jsx8(Text8, { color: textColor(state2), children: line.text }),
|
|
20227
|
+
line.ms !== void 0 && /* @__PURE__ */ jsx8(Text8, { color: PALETTE.muted, children: formatDuration(line.ms) })
|
|
20303
20228
|
] });
|
|
20304
20229
|
}
|
|
20305
20230
|
function RunningStep({
|
|
20306
20231
|
step,
|
|
20307
20232
|
description,
|
|
20308
|
-
lines = [{ text: "Running..." }]
|
|
20309
|
-
aside
|
|
20233
|
+
lines = [{ text: "Running..." }]
|
|
20310
20234
|
}) {
|
|
20311
20235
|
const elapsed = useElapsed();
|
|
20312
|
-
return /* @__PURE__ */
|
|
20313
|
-
/* @__PURE__ */
|
|
20314
|
-
/* @__PURE__ */
|
|
20315
|
-
/* @__PURE__ */
|
|
20316
|
-
/* @__PURE__ */
|
|
20317
|
-
/* @__PURE__ */
|
|
20236
|
+
return /* @__PURE__ */ jsxs8(Box8, { flexDirection: "column", children: [
|
|
20237
|
+
/* @__PURE__ */ jsx8(StepHeader, { step }),
|
|
20238
|
+
/* @__PURE__ */ jsxs8(Box8, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 1, children: [
|
|
20239
|
+
/* @__PURE__ */ jsx8(Text8, { children: description }),
|
|
20240
|
+
/* @__PURE__ */ jsx8(Box8, { marginTop: 1, flexDirection: "column", gap: 1, children: lines.map((line, index) => /* @__PURE__ */ jsx8(Line, { line }, index)) }),
|
|
20241
|
+
/* @__PURE__ */ jsx8(Box8, { marginTop: 1, children: /* @__PURE__ */ jsxs8(Text8, { color: PALETTE.muted, children: [
|
|
20318
20242
|
"Elapsed: ",
|
|
20319
20243
|
elapsed
|
|
20320
20244
|
] }) })
|
|
20321
|
-
] })
|
|
20245
|
+
] })
|
|
20322
20246
|
] });
|
|
20323
20247
|
}
|
|
20324
20248
|
var STATE_ICON, STATE_COLOR, textColor;
|
|
@@ -20330,7 +20254,6 @@ var init_running_step = __esm({
|
|
|
20330
20254
|
init_theme2();
|
|
20331
20255
|
init_StepHeader();
|
|
20332
20256
|
init_use_elapsed();
|
|
20333
|
-
init_activity_panel();
|
|
20334
20257
|
STATE_ICON = { done: "\u2713", warning: "!", failed: "\u2717" };
|
|
20335
20258
|
STATE_COLOR = { done: PALETTE.success, warning: PALETTE.warning, failed: PALETTE.error };
|
|
20336
20259
|
textColor = (state2) => state2 === "warning" || state2 === "failed" ? STATE_COLOR[state2] : PALETTE.muted;
|
|
@@ -20350,8 +20273,8 @@ var init_shared2 = __esm({
|
|
|
20350
20273
|
|
|
20351
20274
|
// packages/experience-design-system-cli/src/tui/import/steps/00-preflight/screen.tsx
|
|
20352
20275
|
import { useEffect as useEffect4, useRef, useState as useState4 } from "react";
|
|
20353
|
-
import { Box as
|
|
20354
|
-
import { jsx as
|
|
20276
|
+
import { Box as Box9, Text as Text9 } from "ink";
|
|
20277
|
+
import { jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
20355
20278
|
function PreflightScreen({ onChoose, onQuit }) {
|
|
20356
20279
|
const [focus, setFocus] = useState4(0);
|
|
20357
20280
|
const viewed = useRef([optionAt(0)]).current;
|
|
@@ -20380,19 +20303,19 @@ function PreflightScreen({ onChoose, onQuit }) {
|
|
|
20380
20303
|
onQuit();
|
|
20381
20304
|
};
|
|
20382
20305
|
usePreflightControls({ focus, onFocus: moveTo, onChoose: choose, onQuit: quit });
|
|
20383
|
-
return /* @__PURE__ */
|
|
20384
|
-
/* @__PURE__ */
|
|
20385
|
-
/* @__PURE__ */
|
|
20386
|
-
/* @__PURE__ */
|
|
20387
|
-
/* @__PURE__ */
|
|
20306
|
+
return /* @__PURE__ */ jsxs9(Box9, { flexDirection: "column", children: [
|
|
20307
|
+
/* @__PURE__ */ jsx9(StepHeader, { step: "setup" }),
|
|
20308
|
+
/* @__PURE__ */ jsxs9(Box9, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 1, children: [
|
|
20309
|
+
/* @__PURE__ */ jsx9(Text9, { bold: true, color: PALETTE.text, children: "What do you want to import?" }),
|
|
20310
|
+
/* @__PURE__ */ jsx9(Box9, { flexDirection: "column", children: IMPORT_TARGET_OPTIONS.map((option, index) => {
|
|
20388
20311
|
const focused = index === focus;
|
|
20389
|
-
return /* @__PURE__ */
|
|
20390
|
-
/* @__PURE__ */
|
|
20391
|
-
/* @__PURE__ */
|
|
20312
|
+
return /* @__PURE__ */ jsxs9(Box9, { gap: 1, children: [
|
|
20313
|
+
/* @__PURE__ */ jsx9(Text9, { color: PALETTE.accent, children: focused ? "\u276F" : " " }),
|
|
20314
|
+
/* @__PURE__ */ jsx9(Text9, { bold: focused, color: focused ? PALETTE.accent : void 0, children: option.label })
|
|
20392
20315
|
] }, option.target);
|
|
20393
20316
|
}) }),
|
|
20394
|
-
/* @__PURE__ */
|
|
20395
|
-
/* @__PURE__ */
|
|
20317
|
+
/* @__PURE__ */ jsx9(OverviewBox, { steps: overviewFor(optionAt(focus)) }),
|
|
20318
|
+
/* @__PURE__ */ jsx9(ControlHints, { hints: PREFLIGHT_CONTROLS })
|
|
20396
20319
|
] })
|
|
20397
20320
|
] });
|
|
20398
20321
|
}
|
|
@@ -20415,7 +20338,7 @@ var init_screen = __esm({
|
|
|
20415
20338
|
import { useRef as useRef2 } from "react";
|
|
20416
20339
|
import { useInput as useInput6 } from "ink";
|
|
20417
20340
|
import TextInput from "ink-text-input";
|
|
20418
|
-
import { jsx as
|
|
20341
|
+
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
20419
20342
|
function isClearKey(input, key) {
|
|
20420
20343
|
return key.ctrl && input === "d";
|
|
20421
20344
|
}
|
|
@@ -20429,7 +20352,7 @@ function ClearableTextInput({ onChange, ...props }) {
|
|
|
20429
20352
|
}, 0);
|
|
20430
20353
|
onChange("");
|
|
20431
20354
|
});
|
|
20432
|
-
return /* @__PURE__ */
|
|
20355
|
+
return /* @__PURE__ */ jsx10(
|
|
20433
20356
|
TextInput,
|
|
20434
20357
|
{
|
|
20435
20358
|
...props,
|
|
@@ -20481,8 +20404,8 @@ var init_controls4 = __esm({
|
|
|
20481
20404
|
|
|
20482
20405
|
// packages/experience-design-system-cli/src/tui/import/steps/01-welcome/screen.tsx
|
|
20483
20406
|
import { useEffect as useEffect5, useRef as useRef3, useState as useState5 } from "react";
|
|
20484
|
-
import { Box as
|
|
20485
|
-
import { jsx as
|
|
20407
|
+
import { Box as Box10, Text as Text10 } from "ink";
|
|
20408
|
+
import { jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
20486
20409
|
function WelcomeScreen({ mode, onContinue, onQuit, initialPath = "" }) {
|
|
20487
20410
|
const [projectPath, setProjectPath] = useState5(initialPath);
|
|
20488
20411
|
const visit = useRef3({ emptySubmits: 0 }).current;
|
|
@@ -20524,18 +20447,18 @@ function WelcomeScreen({ mode, onContinue, onQuit, initialPath = "" }) {
|
|
|
20524
20447
|
});
|
|
20525
20448
|
onContinue(path5);
|
|
20526
20449
|
};
|
|
20527
|
-
return /* @__PURE__ */
|
|
20528
|
-
/* @__PURE__ */
|
|
20529
|
-
/* @__PURE__ */
|
|
20530
|
-
/* @__PURE__ */
|
|
20531
|
-
/* @__PURE__ */
|
|
20532
|
-
/* @__PURE__ */
|
|
20533
|
-
/* @__PURE__ */
|
|
20534
|
-
/* @__PURE__ */
|
|
20535
|
-
/* @__PURE__ */
|
|
20450
|
+
return /* @__PURE__ */ jsxs10(Box10, { flexDirection: "column", children: [
|
|
20451
|
+
/* @__PURE__ */ jsx11(StepHeader, { step: "setup" }),
|
|
20452
|
+
/* @__PURE__ */ jsxs10(Box10, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 1, children: [
|
|
20453
|
+
/* @__PURE__ */ jsxs10(Box10, { flexDirection: "column", gap: 1, children: [
|
|
20454
|
+
/* @__PURE__ */ jsx11(Text10, { color: PALETTE.text, children: "Where is your component library?" }),
|
|
20455
|
+
/* @__PURE__ */ jsxs10(Box10, { children: [
|
|
20456
|
+
/* @__PURE__ */ jsx11(Text10, { color: PALETTE.accent, children: "? " }),
|
|
20457
|
+
/* @__PURE__ */ jsx11(Text10, { children: "Project path: " }),
|
|
20458
|
+
/* @__PURE__ */ jsx11(ClearableTextInput, { value: projectPath, onChange: setProjectPath, onSubmit: submit })
|
|
20536
20459
|
] })
|
|
20537
20460
|
] }),
|
|
20538
|
-
/* @__PURE__ */
|
|
20461
|
+
/* @__PURE__ */ jsx11(Box10, { children: /* @__PURE__ */ jsx11(ControlHints, { hints: WELCOME_CONTROLS }) })
|
|
20539
20462
|
] })
|
|
20540
20463
|
] });
|
|
20541
20464
|
}
|
|
@@ -20636,8 +20559,8 @@ var init_validate_path = __esm({
|
|
|
20636
20559
|
|
|
20637
20560
|
// packages/experience-design-system-cli/src/tui/import/steps/02-token-input/screen.tsx
|
|
20638
20561
|
import { useEffect as useEffect6, useRef as useRef4, useState as useState6 } from "react";
|
|
20639
|
-
import { Box as
|
|
20640
|
-
import { jsx as
|
|
20562
|
+
import { Box as Box11, Text as Text11 } from "ink";
|
|
20563
|
+
import { jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
20641
20564
|
function TokenInputScreen({
|
|
20642
20565
|
mode,
|
|
20643
20566
|
onConfirm,
|
|
@@ -20700,29 +20623,29 @@ function TokenInputScreen({
|
|
|
20700
20623
|
});
|
|
20701
20624
|
onConfirm(check.path);
|
|
20702
20625
|
};
|
|
20703
|
-
return /* @__PURE__ */
|
|
20704
|
-
/* @__PURE__ */
|
|
20705
|
-
/* @__PURE__ */
|
|
20706
|
-
/* @__PURE__ */
|
|
20707
|
-
/* @__PURE__ */
|
|
20708
|
-
/* @__PURE__ */
|
|
20709
|
-
/* @__PURE__ */
|
|
20710
|
-
/* @__PURE__ */
|
|
20711
|
-
/* @__PURE__ */
|
|
20712
|
-
/* @__PURE__ */
|
|
20626
|
+
return /* @__PURE__ */ jsxs11(Box11, { flexDirection: "column", children: [
|
|
20627
|
+
/* @__PURE__ */ jsx12(StepHeader, { step: "setup" }),
|
|
20628
|
+
/* @__PURE__ */ jsxs11(Box11, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 1, children: [
|
|
20629
|
+
/* @__PURE__ */ jsx12(Text11, { bold: true, children: "Design tokens" }),
|
|
20630
|
+
/* @__PURE__ */ jsx12(Text11, { color: PALETTE.muted, children: "Point me to your raw token file (e.g. ~/design-tokens/tokens.json). You can use ~, relative, or absolute paths. Claude will map it to Design Token Group Format (DTCG)." }),
|
|
20631
|
+
/* @__PURE__ */ jsxs11(Box11, { flexDirection: "column", children: [
|
|
20632
|
+
/* @__PURE__ */ jsxs11(Box11, { gap: 1, children: [
|
|
20633
|
+
/* @__PURE__ */ jsx12(Text11, { color: PALETTE.accent, children: "?" }),
|
|
20634
|
+
/* @__PURE__ */ jsx12(Text11, { children: "Token path:" }),
|
|
20635
|
+
/* @__PURE__ */ jsx12(ClearableTextInput, { value: tokenPath, onChange: change, onSubmit: submit })
|
|
20713
20636
|
] }),
|
|
20714
|
-
failure && /* @__PURE__ */
|
|
20715
|
-
/* @__PURE__ */
|
|
20637
|
+
failure && /* @__PURE__ */ jsxs11(Box11, { flexDirection: "column", children: [
|
|
20638
|
+
/* @__PURE__ */ jsxs11(Text11, { color: PALETTE.error, children: [
|
|
20716
20639
|
"\u2717 ",
|
|
20717
20640
|
failure.error
|
|
20718
20641
|
] }),
|
|
20719
|
-
failure.resolvedPath && /* @__PURE__ */
|
|
20642
|
+
failure.resolvedPath && /* @__PURE__ */ jsxs11(Text11, { color: PALETTE.muted, children: [
|
|
20720
20643
|
" Resolved to: ",
|
|
20721
20644
|
failure.resolvedPath
|
|
20722
20645
|
] })
|
|
20723
20646
|
] })
|
|
20724
20647
|
] }),
|
|
20725
|
-
/* @__PURE__ */
|
|
20648
|
+
/* @__PURE__ */ jsx12(Box11, { marginTop: 1, children: /* @__PURE__ */ jsx12(ControlHints, { hints: TOKEN_INPUT_CONTROLS }) })
|
|
20726
20649
|
] })
|
|
20727
20650
|
] });
|
|
20728
20651
|
}
|
|
@@ -20890,10 +20813,10 @@ var init_scan_files = __esm({
|
|
|
20890
20813
|
|
|
20891
20814
|
// packages/experience-design-system-cli/src/tui/import/steps/03-path-validation/screen.tsx
|
|
20892
20815
|
import { useEffect as useEffect7, useMemo, useState as useState7 } from "react";
|
|
20893
|
-
import { Box as
|
|
20894
|
-
import { jsx as
|
|
20895
|
-
function
|
|
20896
|
-
return /* @__PURE__ */
|
|
20816
|
+
import { Box as Box12, Text as Text12 } from "ink";
|
|
20817
|
+
import { jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
20818
|
+
function Row({ row }) {
|
|
20819
|
+
return /* @__PURE__ */ jsxs12(Text12, { color: row.tone === "accent" ? PALETTE.accent : row.tone === "muted" ? PALETTE.muted : void 0, children: [
|
|
20897
20820
|
" \u2022 ",
|
|
20898
20821
|
String(row.count).padStart(3),
|
|
20899
20822
|
" ",
|
|
@@ -20902,12 +20825,12 @@ function Row2({ row }) {
|
|
|
20902
20825
|
}
|
|
20903
20826
|
function Failure({ scan, path: path5 }) {
|
|
20904
20827
|
const { headline, hints } = describeFailure(scan.failure, path5);
|
|
20905
|
-
return /* @__PURE__ */
|
|
20906
|
-
/* @__PURE__ */
|
|
20828
|
+
return /* @__PURE__ */ jsxs12(Box12, { flexDirection: "column", children: [
|
|
20829
|
+
/* @__PURE__ */ jsxs12(Text12, { color: PALETTE.error, children: [
|
|
20907
20830
|
"\u2717 ",
|
|
20908
20831
|
headline
|
|
20909
20832
|
] }),
|
|
20910
|
-
hints.map((hint) => /* @__PURE__ */
|
|
20833
|
+
hints.map((hint) => /* @__PURE__ */ jsx13(Text12, { color: PALETTE.muted, children: hint }, hint))
|
|
20911
20834
|
] });
|
|
20912
20835
|
}
|
|
20913
20836
|
function Summary({
|
|
@@ -20916,24 +20839,24 @@ function Summary({
|
|
|
20916
20839
|
hasTokens
|
|
20917
20840
|
}) {
|
|
20918
20841
|
const { total, rows, warning } = summarize(scan.counts, { hasTokens });
|
|
20919
|
-
return /* @__PURE__ */
|
|
20920
|
-
/* @__PURE__ */
|
|
20842
|
+
return /* @__PURE__ */ jsxs12(Box12, { flexDirection: "column", gap: 1, children: [
|
|
20843
|
+
/* @__PURE__ */ jsxs12(Text12, { children: [
|
|
20921
20844
|
"Scanned ",
|
|
20922
|
-
/* @__PURE__ */
|
|
20845
|
+
/* @__PURE__ */ jsx13(Text12, { bold: true, children: path5 })
|
|
20923
20846
|
] }),
|
|
20924
|
-
/* @__PURE__ */
|
|
20925
|
-
/* @__PURE__ */
|
|
20847
|
+
/* @__PURE__ */ jsxs12(Box12, { flexDirection: "column", children: [
|
|
20848
|
+
/* @__PURE__ */ jsxs12(Text12, { color: PALETTE.success, children: [
|
|
20926
20849
|
"\u2713 Found ",
|
|
20927
20850
|
total,
|
|
20928
20851
|
" files:"
|
|
20929
20852
|
] }),
|
|
20930
|
-
rows.map((row) => /* @__PURE__ */
|
|
20853
|
+
rows.map((row) => /* @__PURE__ */ jsx13(Row, { row }, row.label))
|
|
20931
20854
|
] }),
|
|
20932
|
-
warning && /* @__PURE__ */
|
|
20855
|
+
warning && /* @__PURE__ */ jsxs12(Text12, { color: PALETTE.warning, children: [
|
|
20933
20856
|
"\u26A0 ",
|
|
20934
20857
|
warning
|
|
20935
20858
|
] }),
|
|
20936
|
-
/* @__PURE__ */
|
|
20859
|
+
/* @__PURE__ */ jsx13(Text12, { children: "Does this look right?" })
|
|
20937
20860
|
] });
|
|
20938
20861
|
}
|
|
20939
20862
|
function PathValidationScreen({
|
|
@@ -20980,17 +20903,17 @@ function PathValidationScreen({
|
|
|
20980
20903
|
onBack();
|
|
20981
20904
|
}
|
|
20982
20905
|
});
|
|
20983
|
-
return /* @__PURE__ */
|
|
20984
|
-
/* @__PURE__ */
|
|
20985
|
-
/* @__PURE__ */
|
|
20986
|
-
scan === void 0 && /* @__PURE__ */
|
|
20906
|
+
return /* @__PURE__ */ jsxs12(Box12, { flexDirection: "column", children: [
|
|
20907
|
+
/* @__PURE__ */ jsx13(StepHeader, { step: "setup" }),
|
|
20908
|
+
/* @__PURE__ */ jsxs12(Box12, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 1, children: [
|
|
20909
|
+
scan === void 0 && /* @__PURE__ */ jsxs12(Text12, { color: PALETTE.muted, children: [
|
|
20987
20910
|
"Scanning ",
|
|
20988
|
-
/* @__PURE__ */
|
|
20911
|
+
/* @__PURE__ */ jsx13(Text12, { bold: true, children: resolvedPath }),
|
|
20989
20912
|
"..."
|
|
20990
20913
|
] }),
|
|
20991
|
-
scan?.ok === false && /* @__PURE__ */
|
|
20992
|
-
scan?.ok === true && /* @__PURE__ */
|
|
20993
|
-
/* @__PURE__ */
|
|
20914
|
+
scan?.ok === false && /* @__PURE__ */ jsx13(Failure, { scan, path: resolvedPath }),
|
|
20915
|
+
scan?.ok === true && /* @__PURE__ */ jsx13(Summary, { scan, path: resolvedPath, hasTokens }),
|
|
20916
|
+
/* @__PURE__ */ jsx13(Box12, { marginTop: 1, children: /* @__PURE__ */ jsx13(ControlHints, { hints: controlsFor(phase) }) })
|
|
20994
20917
|
] })
|
|
20995
20918
|
] });
|
|
20996
20919
|
}
|
|
@@ -21010,8 +20933,8 @@ var init_screen4 = __esm({
|
|
|
21010
20933
|
|
|
21011
20934
|
// packages/experience-design-system-cli/src/tui/shared/components/FieldForm.tsx
|
|
21012
20935
|
import { useState as useState8 } from "react";
|
|
21013
|
-
import { Box as
|
|
21014
|
-
import { Fragment
|
|
20936
|
+
import { Box as Box13, Text as Text13, useInput as useInput10 } from "ink";
|
|
20937
|
+
import { Fragment, jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
21015
20938
|
function formLabelWidth(rows) {
|
|
21016
20939
|
return Math.max(...rows.map((row) => row.label.length));
|
|
21017
20940
|
}
|
|
@@ -21020,9 +20943,9 @@ function FormReadOnlyRow({
|
|
|
21020
20943
|
labelWidth,
|
|
21021
20944
|
children
|
|
21022
20945
|
}) {
|
|
21023
|
-
return /* @__PURE__ */
|
|
21024
|
-
/* @__PURE__ */
|
|
21025
|
-
/* @__PURE__ */
|
|
20946
|
+
return /* @__PURE__ */ jsxs13(Box13, { gap: 1, children: [
|
|
20947
|
+
/* @__PURE__ */ jsx14(Text13, { children: " " }),
|
|
20948
|
+
/* @__PURE__ */ jsx14(Box13, { width: labelWidth, flexShrink: 0, children: /* @__PURE__ */ jsx14(Text13, { color: PALETTE.muted, children: label }) }),
|
|
21026
20949
|
children
|
|
21027
20950
|
] });
|
|
21028
20951
|
}
|
|
@@ -21109,23 +21032,23 @@ function FieldForm({
|
|
|
21109
21032
|
setValueBeforeEdit(values[next.key]);
|
|
21110
21033
|
setActive(active + 1);
|
|
21111
21034
|
};
|
|
21112
|
-
const pointer = (isActive) => /* @__PURE__ */
|
|
21113
|
-
return /* @__PURE__ */
|
|
21035
|
+
const pointer = (isActive) => /* @__PURE__ */ jsx14(Text13, { color: isActive ? PALETTE.accent : void 0, children: isActive ? "\u276F" : " " });
|
|
21036
|
+
return /* @__PURE__ */ jsxs13(Box13, { flexDirection: "column", children: [
|
|
21114
21037
|
header,
|
|
21115
|
-
/* @__PURE__ */
|
|
21116
|
-
/* @__PURE__ */
|
|
21117
|
-
/* @__PURE__ */
|
|
21118
|
-
subtitle && /* @__PURE__ */
|
|
21119
|
-
/* @__PURE__ */
|
|
21120
|
-
/* @__PURE__ */
|
|
21038
|
+
/* @__PURE__ */ jsxs13(Box13, { flexDirection: "column", paddingX: 2, paddingTop: header ? 0 : 1, paddingBottom: 1, children: [
|
|
21039
|
+
/* @__PURE__ */ jsx14(Text13, { bold: true, children: title }),
|
|
21040
|
+
/* @__PURE__ */ jsx14(Text13, { children: " " }),
|
|
21041
|
+
subtitle && /* @__PURE__ */ jsx14(Text13, { color: PALETTE.muted, children: subtitle }),
|
|
21042
|
+
/* @__PURE__ */ jsx14(Text13, { children: " " }),
|
|
21043
|
+
/* @__PURE__ */ jsxs13(Box13, { flexDirection: "column", children: [
|
|
21121
21044
|
fields2.map((field, index) => {
|
|
21122
21045
|
const isActive = index === active;
|
|
21123
21046
|
const value = values[field.key];
|
|
21124
21047
|
const display = field.masked ? "\u2022".repeat(value.length) : value;
|
|
21125
|
-
return /* @__PURE__ */
|
|
21048
|
+
return /* @__PURE__ */ jsxs13(Box13, { gap: 1, children: [
|
|
21126
21049
|
pointer(isActive),
|
|
21127
|
-
/* @__PURE__ */
|
|
21128
|
-
isActive && editing ? /* @__PURE__ */
|
|
21050
|
+
/* @__PURE__ */ jsx14(Box13, { width: labelWidth, flexShrink: 0, children: /* @__PURE__ */ jsx14(Text13, { bold: isActive, color: isActive ? PALETTE.accent : PALETTE.muted, children: field.label }) }),
|
|
21051
|
+
isActive && editing ? /* @__PURE__ */ jsx14(
|
|
21129
21052
|
ClearableTextInput,
|
|
21130
21053
|
{
|
|
21131
21054
|
value,
|
|
@@ -21133,34 +21056,34 @@ function FieldForm({
|
|
|
21133
21056
|
onSubmit: submitField,
|
|
21134
21057
|
mask: field.masked ? "\u2022" : void 0
|
|
21135
21058
|
}
|
|
21136
|
-
) : display ? /* @__PURE__ */
|
|
21059
|
+
) : display ? /* @__PURE__ */ jsx14(Text13, { bold: true, children: display }) : (
|
|
21137
21060
|
// An empty value shows its hint (or "(empty)") in the value's place, not after an empty element, so the
|
|
21138
21061
|
// text starts in the same column as every other row's.
|
|
21139
|
-
/* @__PURE__ */
|
|
21062
|
+
/* @__PURE__ */ jsx14(Text13, { color: PALETTE.muted, children: field.hint ?? "(empty)" })
|
|
21140
21063
|
),
|
|
21141
|
-
display && field.hint && /* @__PURE__ */
|
|
21064
|
+
display && field.hint && /* @__PURE__ */ jsx14(Text13, { color: PALETTE.muted, children: field.hint })
|
|
21142
21065
|
] }, field.key);
|
|
21143
21066
|
}),
|
|
21144
21067
|
actions.map((action, index) => {
|
|
21145
21068
|
const isActive = fields2.length + index === active;
|
|
21146
|
-
return /* @__PURE__ */
|
|
21069
|
+
return /* @__PURE__ */ jsxs13(Box13, { gap: 1, children: [
|
|
21147
21070
|
pointer(isActive),
|
|
21148
|
-
/* @__PURE__ */
|
|
21149
|
-
/* @__PURE__ */
|
|
21071
|
+
/* @__PURE__ */ jsx14(Box13, { width: labelWidth, flexShrink: 0, children: /* @__PURE__ */ jsx14(Text13, { bold: isActive, color: isActive ? PALETTE.accent : PALETTE.muted, children: action.label }) }),
|
|
21072
|
+
/* @__PURE__ */ jsx14(Text13, { color: action.running ? PALETTE.accent : PALETTE.muted, children: action.running ? action.runningText ?? "running..." : action.description })
|
|
21150
21073
|
] }, action.label);
|
|
21151
21074
|
})
|
|
21152
21075
|
] }),
|
|
21153
|
-
notice && /* @__PURE__ */
|
|
21154
|
-
/* @__PURE__ */
|
|
21155
|
-
/* @__PURE__ */
|
|
21076
|
+
notice && /* @__PURE__ */ jsxs13(Fragment, { children: [
|
|
21077
|
+
/* @__PURE__ */ jsx14(Text13, { children: " " }),
|
|
21078
|
+
/* @__PURE__ */ jsxs13(Text13, { color: notice.kind === "success" ? PALETTE.success : PALETTE.error, children: [
|
|
21156
21079
|
notice.kind === "success" ? "\u2713" : "\u2717",
|
|
21157
21080
|
" ",
|
|
21158
21081
|
notice.text
|
|
21159
21082
|
] })
|
|
21160
21083
|
] }),
|
|
21161
21084
|
children,
|
|
21162
|
-
/* @__PURE__ */
|
|
21163
|
-
/* @__PURE__ */
|
|
21085
|
+
/* @__PURE__ */ jsx14(Text13, { children: " " }),
|
|
21086
|
+
/* @__PURE__ */ jsx14(
|
|
21164
21087
|
ControlHints,
|
|
21165
21088
|
{
|
|
21166
21089
|
hints: editing ? [
|
|
@@ -21332,8 +21255,8 @@ var init_validate4 = __esm({
|
|
|
21332
21255
|
|
|
21333
21256
|
// packages/experience-design-system-cli/src/tui/import/steps/04-credentials/screen.tsx
|
|
21334
21257
|
import { useEffect as useEffect8, useRef as useRef5, useState as useState9 } from "react";
|
|
21335
|
-
import { Box as
|
|
21336
|
-
import { Fragment as
|
|
21258
|
+
import { Box as Box14, Text as Text14, useInput as useInput11 } from "ink";
|
|
21259
|
+
import { Fragment as Fragment2, jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
21337
21260
|
function CredentialsScreen({
|
|
21338
21261
|
mode,
|
|
21339
21262
|
onDone,
|
|
@@ -21451,24 +21374,24 @@ function CredentialsScreen({
|
|
|
21451
21374
|
});
|
|
21452
21375
|
const labelWidth = formLabelWidth([...FIELDS2, ...MENU]);
|
|
21453
21376
|
const changed = !isUnchanged(normalize(values), initialValues);
|
|
21454
|
-
return /* @__PURE__ */
|
|
21455
|
-
/* @__PURE__ */
|
|
21456
|
-
/* @__PURE__ */
|
|
21457
|
-
/* @__PURE__ */
|
|
21458
|
-
/* @__PURE__ */
|
|
21459
|
-
/* @__PURE__ */
|
|
21460
|
-
/* @__PURE__ */
|
|
21461
|
-
/* @__PURE__ */
|
|
21377
|
+
return /* @__PURE__ */ jsxs14(Box14, { flexDirection: "column", children: [
|
|
21378
|
+
/* @__PURE__ */ jsx15(StepHeader, { step: "setup" }),
|
|
21379
|
+
/* @__PURE__ */ jsxs14(Box14, { flexDirection: "column", paddingX: 2, paddingBottom: 1, children: [
|
|
21380
|
+
/* @__PURE__ */ jsx15(Text14, { bold: true, color: PALETTE.accent, children: "Contentful Credentials" }),
|
|
21381
|
+
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
21382
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.muted, children: prefilled ? "Credentials pre-filled from the configuration settings." : "Enter the Contentful space you want to import into." }),
|
|
21383
|
+
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
21384
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.muted, children: "Actions" }),
|
|
21462
21385
|
MENU.map((item, index) => {
|
|
21463
21386
|
const focused = !editing && index === focus;
|
|
21464
|
-
return /* @__PURE__ */
|
|
21465
|
-
/* @__PURE__ */
|
|
21466
|
-
/* @__PURE__ */
|
|
21467
|
-
/* @__PURE__ */
|
|
21387
|
+
return /* @__PURE__ */ jsxs14(Box14, { gap: 1, children: [
|
|
21388
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.accent, children: focused ? "\u276F" : " " }),
|
|
21389
|
+
/* @__PURE__ */ jsx15(Box14, { width: labelWidth, flexShrink: 0, children: /* @__PURE__ */ jsx15(Text14, { bold: focused, color: focused ? PALETTE.accent : editing ? PALETTE.muted : PALETTE.text, children: item.label }) }),
|
|
21390
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.muted, children: item.description })
|
|
21468
21391
|
] }, item.choice);
|
|
21469
21392
|
}),
|
|
21470
|
-
/* @__PURE__ */
|
|
21471
|
-
|
|
21393
|
+
/* @__PURE__ */ jsxs14(
|
|
21394
|
+
Box14,
|
|
21472
21395
|
{
|
|
21473
21396
|
flexDirection: "column",
|
|
21474
21397
|
marginTop: 1,
|
|
@@ -21478,15 +21401,15 @@ function CredentialsScreen({
|
|
|
21478
21401
|
borderLeft: false,
|
|
21479
21402
|
borderRight: false,
|
|
21480
21403
|
children: [
|
|
21481
|
-
/* @__PURE__ */
|
|
21404
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.muted, children: "Space" }),
|
|
21482
21405
|
FIELDS2.map((field, index) => {
|
|
21483
21406
|
const open = editing && index === active;
|
|
21484
21407
|
const value = values[field.key];
|
|
21485
21408
|
const display = field.masked ? "\u2022".repeat(value.length) : value;
|
|
21486
|
-
return /* @__PURE__ */
|
|
21487
|
-
/* @__PURE__ */
|
|
21488
|
-
/* @__PURE__ */
|
|
21489
|
-
open ? /* @__PURE__ */
|
|
21409
|
+
return /* @__PURE__ */ jsxs14(Box14, { gap: 1, children: [
|
|
21410
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.accent, children: open ? "\u276F" : " " }),
|
|
21411
|
+
/* @__PURE__ */ jsx15(Box14, { width: labelWidth, flexShrink: 0, children: /* @__PURE__ */ jsx15(Text14, { bold: open, color: open ? PALETTE.accent : PALETTE.muted, children: field.label }) }),
|
|
21412
|
+
open ? /* @__PURE__ */ jsx15(
|
|
21490
21413
|
ClearableTextInput,
|
|
21491
21414
|
{
|
|
21492
21415
|
value,
|
|
@@ -21497,35 +21420,35 @@ function CredentialsScreen({
|
|
|
21497
21420
|
onSubmit: stopEditing,
|
|
21498
21421
|
mask: field.masked ? "\u2022" : void 0
|
|
21499
21422
|
}
|
|
21500
|
-
) : /* @__PURE__ */
|
|
21423
|
+
) : /* @__PURE__ */ jsx15(Text14, { color: display ? PALETTE.text : PALETTE.muted, children: display || (field.hint ?? "(empty)") })
|
|
21501
21424
|
] }, field.key);
|
|
21502
21425
|
})
|
|
21503
21426
|
]
|
|
21504
21427
|
}
|
|
21505
21428
|
),
|
|
21506
|
-
notice && /* @__PURE__ */
|
|
21507
|
-
/* @__PURE__ */
|
|
21508
|
-
/* @__PURE__ */
|
|
21429
|
+
notice && /* @__PURE__ */ jsxs14(Fragment2, { children: [
|
|
21430
|
+
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
21431
|
+
/* @__PURE__ */ jsxs14(Text14, { color: PALETTE.error, children: [
|
|
21509
21432
|
"\u2717 ",
|
|
21510
21433
|
notice.text
|
|
21511
21434
|
] })
|
|
21512
21435
|
] }),
|
|
21513
|
-
validating && /* @__PURE__ */
|
|
21514
|
-
/* @__PURE__ */
|
|
21515
|
-
/* @__PURE__ */
|
|
21436
|
+
validating && /* @__PURE__ */ jsxs14(Fragment2, { children: [
|
|
21437
|
+
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
21438
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.accent, children: "Validating credentials..." })
|
|
21516
21439
|
] }),
|
|
21517
|
-
!prefilled && !validating && !notice && /* @__PURE__ */
|
|
21518
|
-
/* @__PURE__ */
|
|
21519
|
-
/* @__PURE__ */
|
|
21520
|
-
/* @__PURE__ */
|
|
21440
|
+
!prefilled && !validating && !notice && /* @__PURE__ */ jsxs14(Fragment2, { children: [
|
|
21441
|
+
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
21442
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.muted, children: credentialsPurpose(tokensOnly) }),
|
|
21443
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.muted, children: "Tip: save these under Settings \u2192 Configuration so they pre-fill here." })
|
|
21521
21444
|
] }),
|
|
21522
|
-
changed && !validating && !notice && /* @__PURE__ */
|
|
21523
|
-
/* @__PURE__ */
|
|
21524
|
-
/* @__PURE__ */
|
|
21445
|
+
changed && !validating && !notice && /* @__PURE__ */ jsxs14(Fragment2, { children: [
|
|
21446
|
+
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
21447
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.muted, children: "Changed values are saved after they validate." })
|
|
21525
21448
|
] }),
|
|
21526
|
-
editing && /* @__PURE__ */
|
|
21527
|
-
/* @__PURE__ */
|
|
21528
|
-
/* @__PURE__ */
|
|
21449
|
+
editing && /* @__PURE__ */ jsxs14(Fragment2, { children: [
|
|
21450
|
+
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
21451
|
+
/* @__PURE__ */ jsx15(
|
|
21529
21452
|
ControlHints,
|
|
21530
21453
|
{
|
|
21531
21454
|
hints: [
|
|
@@ -21701,9 +21624,9 @@ var init_logic9 = __esm({
|
|
|
21701
21624
|
});
|
|
21702
21625
|
|
|
21703
21626
|
// packages/experience-design-system-cli/src/tui/import/steps/06-extraction/screen.tsx
|
|
21704
|
-
import { jsx as
|
|
21627
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
21705
21628
|
function ExtractionScreen({ progress, agent, rowMs }) {
|
|
21706
|
-
return /* @__PURE__ */
|
|
21629
|
+
return /* @__PURE__ */ jsx16(
|
|
21707
21630
|
RunningStep,
|
|
21708
21631
|
{
|
|
21709
21632
|
step: "extraction",
|
|
@@ -21785,8 +21708,8 @@ var init_load = __esm({
|
|
|
21785
21708
|
|
|
21786
21709
|
// packages/experience-design-system-cli/src/tui/import/steps/05-token-review/screen.tsx
|
|
21787
21710
|
import { useEffect as useEffect9, useMemo as useMemo2, useState as useState10 } from "react";
|
|
21788
|
-
import { Box as
|
|
21789
|
-
import { jsx as
|
|
21711
|
+
import { Box as Box15, Text as Text15, useInput as useInput12 } from "ink";
|
|
21712
|
+
import { jsx as jsx17, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
21790
21713
|
function TokenReviewScreen({ tokensPath, onContinue, onQuit }) {
|
|
21791
21714
|
const loaded = useMemo2(() => loadTokenRows(tokensPath), [tokensPath]);
|
|
21792
21715
|
const rows = loaded.ok ? loaded.rows : [];
|
|
@@ -21829,22 +21752,22 @@ function TokenReviewScreen({ tokensPath, onContinue, onQuit }) {
|
|
|
21829
21752
|
const typeWidth = Math.max(4, ...rows.map((row) => row.type.length)) + COLUMN_GAP;
|
|
21830
21753
|
const valueWidth = Math.max(10, innerWidth - pathWidth - typeWidth - 2);
|
|
21831
21754
|
const clip = (text, width) => text.length > width ? `${text.slice(0, Math.max(0, width - 1))}\u2026` : text.padEnd(width);
|
|
21832
|
-
return /* @__PURE__ */
|
|
21833
|
-
/* @__PURE__ */
|
|
21834
|
-
/* @__PURE__ */
|
|
21835
|
-
/* @__PURE__ */
|
|
21836
|
-
/* @__PURE__ */
|
|
21755
|
+
return /* @__PURE__ */ jsxs15(Box15, { flexDirection: "column", children: [
|
|
21756
|
+
/* @__PURE__ */ jsx17(StepHeader, { step: "review" }),
|
|
21757
|
+
/* @__PURE__ */ jsxs15(Box15, { flexDirection: "column", paddingX: 2, paddingBottom: 1, children: [
|
|
21758
|
+
/* @__PURE__ */ jsx17(Text15, { bold: true, children: "Review design tokens" }),
|
|
21759
|
+
/* @__PURE__ */ jsx17(Box15, { marginTop: 1, children: loaded.ok ? /* @__PURE__ */ jsxs15(Text15, { color: PALETTE.muted, children: [
|
|
21837
21760
|
rows.length,
|
|
21838
21761
|
" ",
|
|
21839
21762
|
rows.length === 1 ? "token" : "tokens",
|
|
21840
21763
|
" generated from ",
|
|
21841
21764
|
tokensPath
|
|
21842
|
-
] }) : /* @__PURE__ */
|
|
21765
|
+
] }) : /* @__PURE__ */ jsxs15(Text15, { color: PALETTE.error, children: [
|
|
21843
21766
|
"Could not read the generated tokens: ",
|
|
21844
21767
|
loaded.message
|
|
21845
21768
|
] }) }),
|
|
21846
|
-
/* @__PURE__ */
|
|
21847
|
-
/* @__PURE__ */
|
|
21769
|
+
/* @__PURE__ */ jsxs15(Box15, { flexDirection: "column", marginTop: 1, children: [
|
|
21770
|
+
/* @__PURE__ */ jsxs15(Text15, { bold: true, color: PALETTE.muted, wrap: "truncate-end", children: [
|
|
21848
21771
|
" ",
|
|
21849
21772
|
clip("Token name", pathWidth),
|
|
21850
21773
|
" ",
|
|
@@ -21854,7 +21777,7 @@ function TokenReviewScreen({ tokensPath, onContinue, onQuit }) {
|
|
|
21854
21777
|
] }),
|
|
21855
21778
|
rows.slice(start, end).map((row, offset) => {
|
|
21856
21779
|
const active = start + offset === selected;
|
|
21857
|
-
return /* @__PURE__ */
|
|
21780
|
+
return /* @__PURE__ */ jsxs15(Text15, { color: active ? PALETTE.accent : void 0, bold: active, wrap: "truncate-end", children: [
|
|
21858
21781
|
active ? "\u203A " : " ",
|
|
21859
21782
|
clip(row.path, pathWidth),
|
|
21860
21783
|
" ",
|
|
@@ -21864,14 +21787,14 @@ function TokenReviewScreen({ tokensPath, onContinue, onQuit }) {
|
|
|
21864
21787
|
] }, row.path);
|
|
21865
21788
|
})
|
|
21866
21789
|
] }),
|
|
21867
|
-
rows.length > VISIBLE_ROWS && /* @__PURE__ */
|
|
21790
|
+
rows.length > VISIBLE_ROWS && /* @__PURE__ */ jsx17(Box15, { marginTop: 1, children: /* @__PURE__ */ jsxs15(Text15, { color: PALETTE.muted, children: [
|
|
21868
21791
|
start + 1,
|
|
21869
21792
|
"-",
|
|
21870
21793
|
end,
|
|
21871
21794
|
" of ",
|
|
21872
21795
|
rows.length
|
|
21873
21796
|
] }) }),
|
|
21874
|
-
/* @__PURE__ */
|
|
21797
|
+
/* @__PURE__ */ jsx17(Box15, { marginTop: 1, children: /* @__PURE__ */ jsx17(ControlHints, { hints: TOKEN_REVIEW_CONTROLS }) })
|
|
21875
21798
|
] })
|
|
21876
21799
|
] });
|
|
21877
21800
|
}
|
|
@@ -22196,7 +22119,7 @@ function useExtraction(input) {
|
|
|
22196
22119
|
}),
|
|
22197
22120
|
rowMs: []
|
|
22198
22121
|
});
|
|
22199
|
-
let
|
|
22122
|
+
let lastProgress;
|
|
22200
22123
|
const startedAt = Date.now();
|
|
22201
22124
|
let rowMs = [];
|
|
22202
22125
|
startDebugRun({
|
|
@@ -22206,13 +22129,13 @@ function useExtraction(input) {
|
|
|
22206
22129
|
inputs: extractionLogInputs(input)
|
|
22207
22130
|
});
|
|
22208
22131
|
void runExtraction(input, (progress) => {
|
|
22209
|
-
|
|
22132
|
+
lastProgress = progress;
|
|
22210
22133
|
rowMs = trackFinished(rowMs, progressRows(progress, input.agent), Date.now() - startedAt);
|
|
22211
22134
|
if (current.current === input) setState({ status: "running", progress, rowMs });
|
|
22212
22135
|
}).then((result) => {
|
|
22213
22136
|
if (current.current !== input) return;
|
|
22214
22137
|
void finishDebugRun({
|
|
22215
|
-
...extractionLogOutputs(result,
|
|
22138
|
+
...extractionLogOutputs(result, lastProgress, input.credentials?.cmaToken ?? ""),
|
|
22216
22139
|
exitMethod: result.ok ? "saved" : "discarded"
|
|
22217
22140
|
});
|
|
22218
22141
|
setState({ status: "done", result });
|
|
@@ -22333,8 +22256,8 @@ var init_log = __esm({
|
|
|
22333
22256
|
});
|
|
22334
22257
|
|
|
22335
22258
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/windowed-panel.tsx
|
|
22336
|
-
import { Box as
|
|
22337
|
-
import { jsx as
|
|
22259
|
+
import { Box as Box16, Text as Text16 } from "ink";
|
|
22260
|
+
import { jsx as jsx18, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
22338
22261
|
function terminalPanelHeight(rows, reservedRows = 4) {
|
|
22339
22262
|
return Math.max(MIN_TERMINAL_PANEL_HEIGHT, rows - reservedRows);
|
|
22340
22263
|
}
|
|
@@ -22349,8 +22272,8 @@ function FixedPanel({
|
|
|
22349
22272
|
clipOverflow = true,
|
|
22350
22273
|
children
|
|
22351
22274
|
}) {
|
|
22352
|
-
return /* @__PURE__ */
|
|
22353
|
-
|
|
22275
|
+
return /* @__PURE__ */ jsx18(
|
|
22276
|
+
Box16,
|
|
22354
22277
|
{
|
|
22355
22278
|
flexDirection: "column",
|
|
22356
22279
|
width,
|
|
@@ -22366,7 +22289,7 @@ function FixedPanel({
|
|
|
22366
22289
|
);
|
|
22367
22290
|
}
|
|
22368
22291
|
function WindowedPanel({ width, height, title, focused, children }) {
|
|
22369
|
-
return /* @__PURE__ */
|
|
22292
|
+
return /* @__PURE__ */ jsxs16(
|
|
22370
22293
|
FixedPanel,
|
|
22371
22294
|
{
|
|
22372
22295
|
width,
|
|
@@ -22375,7 +22298,7 @@ function WindowedPanel({ width, height, title, focused, children }) {
|
|
|
22375
22298
|
...height === void 0 ? {} : { height },
|
|
22376
22299
|
focused,
|
|
22377
22300
|
children: [
|
|
22378
|
-
title && /* @__PURE__ */
|
|
22301
|
+
title && /* @__PURE__ */ jsx18(WindowedPanelHeader, { title, width, focused }),
|
|
22379
22302
|
children
|
|
22380
22303
|
]
|
|
22381
22304
|
}
|
|
@@ -22386,9 +22309,9 @@ function WindowedPanelHeader({
|
|
|
22386
22309
|
width,
|
|
22387
22310
|
focused
|
|
22388
22311
|
}) {
|
|
22389
|
-
return /* @__PURE__ */
|
|
22390
|
-
/* @__PURE__ */
|
|
22391
|
-
/* @__PURE__ */
|
|
22312
|
+
return /* @__PURE__ */ jsxs16(Box16, { flexDirection: "column", children: [
|
|
22313
|
+
/* @__PURE__ */ jsx18(Text16, { bold: true, color: PALETTE.accent, inverse: focused, children: title }),
|
|
22314
|
+
/* @__PURE__ */ jsx18(Text16, { color: PALETTE.muted, children: "\u2500".repeat(Math.max(0, width - 2)) })
|
|
22392
22315
|
] });
|
|
22393
22316
|
}
|
|
22394
22317
|
function formatWindowIndicator(direction, count) {
|
|
@@ -22397,10 +22320,10 @@ function formatWindowIndicator(direction, count) {
|
|
|
22397
22320
|
}
|
|
22398
22321
|
function WindowFooter({ above, below }) {
|
|
22399
22322
|
const parts = [above > 0 ? `\u2191 ${above}` : "", below > 0 ? `\u2193 ${below}` : ""].filter(Boolean);
|
|
22400
|
-
return /* @__PURE__ */
|
|
22323
|
+
return /* @__PURE__ */ jsx18(Text16, { color: PALETTE.muted, children: parts.length === 0 ? " " : `${parts.join(" \xB7 ")} more` });
|
|
22401
22324
|
}
|
|
22402
22325
|
function WindowIndicator({ direction, count }) {
|
|
22403
|
-
return /* @__PURE__ */
|
|
22326
|
+
return /* @__PURE__ */ jsx18(Text16, { color: PALETTE.muted, children: formatWindowIndicator(direction, count) });
|
|
22404
22327
|
}
|
|
22405
22328
|
var MIN_TERMINAL_PANEL_HEIGHT;
|
|
22406
22329
|
var init_windowed_panel = __esm({
|
|
@@ -22412,26 +22335,26 @@ var init_windowed_panel = __esm({
|
|
|
22412
22335
|
});
|
|
22413
22336
|
|
|
22414
22337
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/panels/tokens-column.tsx
|
|
22415
|
-
import { Box as
|
|
22338
|
+
import { Box as Box17, Text as Text17 } from "ink";
|
|
22416
22339
|
import figures2 from "figures";
|
|
22417
|
-
import { jsx as
|
|
22340
|
+
import { jsx as jsx19, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
22418
22341
|
function TokensColumn(props) {
|
|
22419
22342
|
const { title, width, height, tokens, cursor, focused, visibleCount } = props;
|
|
22420
22343
|
const nameWidth = Math.min(longestEntries(tokens).path + 2, Math.floor((width - 8) / 2));
|
|
22421
22344
|
const window = computeColumnWindow(tokens.length, cursor, Math.max(1, visibleCount));
|
|
22422
|
-
return /* @__PURE__ */
|
|
22423
|
-
/* @__PURE__ */
|
|
22345
|
+
return /* @__PURE__ */ jsxs17(WindowedPanel, { width, height, title, focused, children: [
|
|
22346
|
+
/* @__PURE__ */ jsx19(WindowIndicator, { direction: "up", count: window.above }),
|
|
22424
22347
|
tokens.slice(window.start, window.end).map((token, offset) => {
|
|
22425
22348
|
const isCursor = focused && window.start + offset === cursor;
|
|
22426
|
-
return /* @__PURE__ */
|
|
22427
|
-
/* @__PURE__ */
|
|
22428
|
-
/* @__PURE__ */
|
|
22349
|
+
return /* @__PURE__ */ jsxs17(Box17, { children: [
|
|
22350
|
+
/* @__PURE__ */ jsx19(Text17, { color: PALETTE.accent, bold: true, children: isCursor ? figures2.pointer : " " }),
|
|
22351
|
+
/* @__PURE__ */ jsxs17(Text17, { wrap: "truncate-end", color: isCursor ? PALETTE.accent : void 0, bold: isCursor, children: [
|
|
22429
22352
|
` ${token.path.padEnd(nameWidth)}`,
|
|
22430
|
-
/* @__PURE__ */
|
|
22353
|
+
/* @__PURE__ */ jsx19(Text17, { color: PALETTE.muted, children: token.value })
|
|
22431
22354
|
] })
|
|
22432
22355
|
] }, token.path);
|
|
22433
22356
|
}),
|
|
22434
|
-
/* @__PURE__ */
|
|
22357
|
+
/* @__PURE__ */ jsx19(WindowIndicator, { direction: "down", count: window.below })
|
|
22435
22358
|
] });
|
|
22436
22359
|
}
|
|
22437
22360
|
var init_tokens_column = __esm({
|
|
@@ -22444,9 +22367,9 @@ var init_tokens_column = __esm({
|
|
|
22444
22367
|
});
|
|
22445
22368
|
|
|
22446
22369
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/panels/cycles-panel.tsx
|
|
22447
|
-
import { Box as
|
|
22370
|
+
import { Box as Box18, Text as Text18 } from "ink";
|
|
22448
22371
|
import figures3 from "figures";
|
|
22449
|
-
import { jsx as
|
|
22372
|
+
import { jsx as jsx20, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
22450
22373
|
function cycleLabel(cycle, index) {
|
|
22451
22374
|
const parts = [];
|
|
22452
22375
|
for (let i = 0; i < cycle.edges.length; i++) {
|
|
@@ -22457,17 +22380,17 @@ function cycleLabel(cycle, index) {
|
|
|
22457
22380
|
return `Cycle ${index + 1}: ${parts.join(" \u2192 ")}`;
|
|
22458
22381
|
}
|
|
22459
22382
|
function CyclesPanel({ cycles, cursor }) {
|
|
22460
|
-
return /* @__PURE__ */
|
|
22461
|
-
/* @__PURE__ */
|
|
22462
|
-
/* @__PURE__ */
|
|
22383
|
+
return /* @__PURE__ */ jsxs18(Box18, { flexDirection: "column", borderStyle: "single", borderColor: PALETTE.warning, paddingX: 1, marginTop: 1, children: [
|
|
22384
|
+
/* @__PURE__ */ jsx20(Text18, { bold: true, color: PALETTE.warning, children: `Cycles detected (${cycles.length}):` }),
|
|
22385
|
+
/* @__PURE__ */ jsx20(Text18, { children: " " }),
|
|
22463
22386
|
cycles.map((cycle, i) => {
|
|
22464
22387
|
const isCursor = i === cursor;
|
|
22465
|
-
return /* @__PURE__ */
|
|
22466
|
-
isCursor ? /* @__PURE__ */
|
|
22467
|
-
/* @__PURE__ */
|
|
22388
|
+
return /* @__PURE__ */ jsxs18(Text18, { children: [
|
|
22389
|
+
isCursor ? /* @__PURE__ */ jsx20(Text18, { color: PALETTE.accent, bold: true, children: figures3.pointer }) : /* @__PURE__ */ jsx20(Text18, { children: " " }),
|
|
22390
|
+
/* @__PURE__ */ jsx20(Text18, { color: PALETTE.warning, inverse: isCursor, children: " " + cycleLabel(cycle, i) })
|
|
22468
22391
|
] }, i);
|
|
22469
22392
|
}),
|
|
22470
|
-
/* @__PURE__ */
|
|
22393
|
+
/* @__PURE__ */ jsx20(Text18, { children: "[\u2191/\u2193] move \xB7 [Enter] jump \xB7 [c/Esc] close" })
|
|
22471
22394
|
] });
|
|
22472
22395
|
}
|
|
22473
22396
|
var init_cycles_panel = __esm({
|
|
@@ -22478,14 +22401,14 @@ var init_cycles_panel = __esm({
|
|
|
22478
22401
|
});
|
|
22479
22402
|
|
|
22480
22403
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/panels/reject-prompt.tsx
|
|
22481
|
-
import { Box as
|
|
22482
|
-
import { jsx as
|
|
22404
|
+
import { Box as Box19, Text as Text19 } from "ink";
|
|
22405
|
+
import { jsx as jsx21, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
22483
22406
|
function RejectPrompt({ pending }) {
|
|
22484
|
-
return /* @__PURE__ */
|
|
22485
|
-
/* @__PURE__ */
|
|
22486
|
-
pending.ancestors.length > 0 && /* @__PURE__ */
|
|
22487
|
-
pending.descendants.length > 0 && /* @__PURE__ */
|
|
22488
|
-
/* @__PURE__ */
|
|
22407
|
+
return /* @__PURE__ */ jsxs19(Box19, { flexDirection: "column", borderStyle: "single", borderColor: PALETTE.warning, paddingX: 1, marginTop: 1, children: [
|
|
22408
|
+
/* @__PURE__ */ jsx21(Text19, { bold: true, color: PALETTE.warning, children: `Rejecting ${pending.target} will:` }),
|
|
22409
|
+
pending.ancestors.length > 0 && /* @__PURE__ */ jsx21(Text19, { children: `- Reject ancestors: ${pending.ancestors.join(", ")}` }),
|
|
22410
|
+
pending.descendants.length > 0 && /* @__PURE__ */ jsx21(Text19, { children: `- Deselect descendants: ${pending.descendants.join(", ")}` }),
|
|
22411
|
+
/* @__PURE__ */ jsx21(Text19, { children: "[y] confirm \xB7 [n]/[Esc] cancel" })
|
|
22489
22412
|
] });
|
|
22490
22413
|
}
|
|
22491
22414
|
var init_reject_prompt = __esm({
|
|
@@ -22496,9 +22419,9 @@ var init_reject_prompt = __esm({
|
|
|
22496
22419
|
});
|
|
22497
22420
|
|
|
22498
22421
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/CompactControlBar.tsx
|
|
22499
|
-
import { jsx as
|
|
22422
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
22500
22423
|
function CompactControlBar({ hasGroupRoots, searchActive }) {
|
|
22501
|
-
return /* @__PURE__ */
|
|
22424
|
+
return /* @__PURE__ */ jsx22(
|
|
22502
22425
|
ControlHints,
|
|
22503
22426
|
{
|
|
22504
22427
|
hints: [
|
|
@@ -22521,8 +22444,8 @@ var init_CompactControlBar = __esm({
|
|
|
22521
22444
|
});
|
|
22522
22445
|
|
|
22523
22446
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/CounterStrip.tsx
|
|
22524
|
-
import { Box as
|
|
22525
|
-
import { jsx as
|
|
22447
|
+
import { Box as Box20, Text as Text20 } from "ink";
|
|
22448
|
+
import { jsx as jsx23, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
22526
22449
|
function CounterStrip(props) {
|
|
22527
22450
|
const { counters, totalWidth } = props;
|
|
22528
22451
|
const condensed = totalWidth < 60;
|
|
@@ -22531,31 +22454,31 @@ function CounterStrip(props) {
|
|
|
22531
22454
|
const labelRej = condensed ? "Rej" : "Rejected";
|
|
22532
22455
|
const labelUnd = condensed ? "Und" : "Undecided";
|
|
22533
22456
|
const sep = condensed ? " | " : " ";
|
|
22534
|
-
return /* @__PURE__ */
|
|
22535
|
-
/* @__PURE__ */
|
|
22457
|
+
return /* @__PURE__ */ jsx23(Box20, { children: /* @__PURE__ */ jsxs20(Text20, { children: [
|
|
22458
|
+
/* @__PURE__ */ jsxs20(Text20, { color: PALETTE.muted, children: [
|
|
22536
22459
|
labelGrp,
|
|
22537
22460
|
" "
|
|
22538
22461
|
] }),
|
|
22539
|
-
/* @__PURE__ */
|
|
22540
|
-
/* @__PURE__ */
|
|
22541
|
-
/* @__PURE__ */
|
|
22462
|
+
/* @__PURE__ */ jsx23(Text20, { bold: true, children: counters.groups }),
|
|
22463
|
+
/* @__PURE__ */ jsx23(Text20, { color: PALETTE.muted, children: sep }),
|
|
22464
|
+
/* @__PURE__ */ jsxs20(Text20, { color: PALETTE.muted, children: [
|
|
22542
22465
|
labelAcc,
|
|
22543
22466
|
" "
|
|
22544
22467
|
] }),
|
|
22545
|
-
/* @__PURE__ */
|
|
22546
|
-
/* @__PURE__ */
|
|
22547
|
-
/* @__PURE__ */
|
|
22468
|
+
/* @__PURE__ */ jsx23(Text20, { bold: true, children: `${counters.accepted}/${counters.total}` }),
|
|
22469
|
+
/* @__PURE__ */ jsx23(Text20, { color: PALETTE.muted, children: sep }),
|
|
22470
|
+
/* @__PURE__ */ jsxs20(Text20, { color: PALETTE.muted, children: [
|
|
22548
22471
|
labelRej,
|
|
22549
22472
|
" "
|
|
22550
22473
|
] }),
|
|
22551
|
-
/* @__PURE__ */
|
|
22552
|
-
/* @__PURE__ */
|
|
22553
|
-
/* @__PURE__ */
|
|
22474
|
+
/* @__PURE__ */ jsx23(Text20, { bold: true, children: counters.rejected }),
|
|
22475
|
+
/* @__PURE__ */ jsx23(Text20, { color: PALETTE.muted, children: sep }),
|
|
22476
|
+
/* @__PURE__ */ jsxs20(Text20, { color: PALETTE.muted, children: [
|
|
22554
22477
|
labelUnd,
|
|
22555
22478
|
" "
|
|
22556
22479
|
] }),
|
|
22557
|
-
/* @__PURE__ */
|
|
22558
|
-
/* @__PURE__ */
|
|
22480
|
+
/* @__PURE__ */ jsx23(Text20, { bold: true, children: counters.undecided }),
|
|
22481
|
+
/* @__PURE__ */ jsx23(Text20, { color: PALETTE.muted, children: sep })
|
|
22559
22482
|
] }) });
|
|
22560
22483
|
}
|
|
22561
22484
|
var init_CounterStrip = __esm({
|
|
@@ -22567,8 +22490,8 @@ var init_CounterStrip = __esm({
|
|
|
22567
22490
|
|
|
22568
22491
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/GotoBanner.tsx
|
|
22569
22492
|
import figures4 from "figures";
|
|
22570
|
-
import { Box as
|
|
22571
|
-
import { jsx as
|
|
22493
|
+
import { Box as Box21, Text as Text21 } from "ink";
|
|
22494
|
+
import { jsx as jsx24, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
22572
22495
|
function windowStart(rowCount, highlightIndex, maxRows) {
|
|
22573
22496
|
if (rowCount <= maxRows) return 0;
|
|
22574
22497
|
const maxStart = rowCount - maxRows;
|
|
@@ -22578,9 +22501,9 @@ function windowStart(rowCount, highlightIndex, maxRows) {
|
|
|
22578
22501
|
return start;
|
|
22579
22502
|
}
|
|
22580
22503
|
function defaultRenderRow(row, index, isCursor) {
|
|
22581
|
-
return /* @__PURE__ */
|
|
22582
|
-
isCursor ? /* @__PURE__ */
|
|
22583
|
-
/* @__PURE__ */
|
|
22504
|
+
return /* @__PURE__ */ jsxs21(Text21, { children: [
|
|
22505
|
+
isCursor ? /* @__PURE__ */ jsx24(Text21, { color: PALETTE.accent, bold: true, children: figures4.pointer }) : /* @__PURE__ */ jsx24(Text21, { children: " " }),
|
|
22506
|
+
/* @__PURE__ */ jsx24(Text21, { inverse: isCursor, children: " " + row.label })
|
|
22584
22507
|
] }, index);
|
|
22585
22508
|
}
|
|
22586
22509
|
function GotoBanner({
|
|
@@ -22599,8 +22522,8 @@ function GotoBanner({
|
|
|
22599
22522
|
const visible = rows.slice(start, end);
|
|
22600
22523
|
const moreAbove = start;
|
|
22601
22524
|
const moreBelow = rows.length - end;
|
|
22602
|
-
return /* @__PURE__ */
|
|
22603
|
-
|
|
22525
|
+
return /* @__PURE__ */ jsxs21(
|
|
22526
|
+
Box21,
|
|
22604
22527
|
{
|
|
22605
22528
|
flexDirection: "column",
|
|
22606
22529
|
borderStyle: "single",
|
|
@@ -22611,14 +22534,14 @@ function GotoBanner({
|
|
|
22611
22534
|
width,
|
|
22612
22535
|
flexShrink: 0,
|
|
22613
22536
|
children: [
|
|
22614
|
-
/* @__PURE__ */
|
|
22615
|
-
moreAbove > 0 && /* @__PURE__ */
|
|
22537
|
+
/* @__PURE__ */ jsx24(Text21, { bold: true, children: title }),
|
|
22538
|
+
moreAbove > 0 && /* @__PURE__ */ jsx24(Text21, { color: PALETTE.muted, children: ` \u25B2 ${moreAbove} more` }),
|
|
22616
22539
|
visible.map((row, vi) => {
|
|
22617
22540
|
const i = start + vi;
|
|
22618
22541
|
return renderRow(row, i, i === highlightIndex);
|
|
22619
22542
|
}),
|
|
22620
|
-
moreBelow > 0 && /* @__PURE__ */
|
|
22621
|
-
footerHint !== void 0 && /* @__PURE__ */
|
|
22543
|
+
moreBelow > 0 && /* @__PURE__ */ jsx24(Text21, { color: PALETTE.muted, children: ` \u25BC ${moreBelow} more` }),
|
|
22544
|
+
footerHint !== void 0 && /* @__PURE__ */ jsx24(Box21, { marginTop: 1, children: /* @__PURE__ */ jsx24(Text21, { color: PALETTE.muted, children: footerHint }) })
|
|
22622
22545
|
]
|
|
22623
22546
|
}
|
|
22624
22547
|
);
|
|
@@ -22981,8 +22904,8 @@ var init_composite_closure = __esm({
|
|
|
22981
22904
|
});
|
|
22982
22905
|
|
|
22983
22906
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/badge.tsx
|
|
22984
|
-
import { Text as
|
|
22985
|
-
import { jsx as
|
|
22907
|
+
import { Text as Text22 } from "ink";
|
|
22908
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
22986
22909
|
function previewBadge(annotation) {
|
|
22987
22910
|
switch (annotation) {
|
|
22988
22911
|
case "new":
|
|
@@ -23001,7 +22924,7 @@ function PreviewBadge({
|
|
|
23001
22924
|
badge,
|
|
23002
22925
|
highlighted = false
|
|
23003
22926
|
}) {
|
|
23004
|
-
return badge ? /* @__PURE__ */
|
|
22927
|
+
return badge ? /* @__PURE__ */ jsx25(Text22, { color: !highlighted && badge.dim ? PALETTE.muted : badge.color, bold: badge.bold, children: badge.char }) : /* @__PURE__ */ jsx25(Text22, { children: " " });
|
|
23005
22928
|
}
|
|
23006
22929
|
var init_badge = __esm({
|
|
23007
22930
|
"packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/badge.tsx"() {
|
|
@@ -23012,8 +22935,8 @@ var init_badge = __esm({
|
|
|
23012
22935
|
|
|
23013
22936
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/GroupedSidebar.tsx
|
|
23014
22937
|
import figures5 from "figures";
|
|
23015
|
-
import { Box as
|
|
23016
|
-
import { jsx as
|
|
22938
|
+
import { Box as Box22, Text as Text23 } from "ink";
|
|
22939
|
+
import { jsx as jsx26, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
23017
22940
|
function hasDirectChild(node) {
|
|
23018
22941
|
return node.slots.some((slot) => (slot.allowedComponents ?? []).some((target) => target !== node.name));
|
|
23019
22942
|
}
|
|
@@ -23432,8 +23355,8 @@ function GroupedSidebar(props) {
|
|
|
23432
23355
|
const start = windowed ? Math.max(0, scrollOffset ?? 0) : 0;
|
|
23433
23356
|
const end = windowed ? start + (visibleCount ?? allRows.length) + 1 : allRows.length;
|
|
23434
23357
|
const rows = windowed ? allRows.slice(start, end) : allRows;
|
|
23435
|
-
return /* @__PURE__ */
|
|
23436
|
-
allRows.length === 0 && emptyMessage !== void 0 && /* @__PURE__ */
|
|
23358
|
+
return /* @__PURE__ */ jsxs22(WindowedPanel, { width, height: props.height, title, focused, children: [
|
|
23359
|
+
allRows.length === 0 && emptyMessage !== void 0 && /* @__PURE__ */ jsxs22(Text23, { color: PALETTE.warning, children: [
|
|
23437
23360
|
" ",
|
|
23438
23361
|
emptyMessage
|
|
23439
23362
|
] }),
|
|
@@ -23463,13 +23386,13 @@ function GroupedSidebar(props) {
|
|
|
23463
23386
|
isOwn: rs?.isOwn ?? false,
|
|
23464
23387
|
isCursor
|
|
23465
23388
|
});
|
|
23466
|
-
return /* @__PURE__ */
|
|
23467
|
-
isCursor ? /* @__PURE__ */
|
|
23468
|
-
/* @__PURE__ */
|
|
23469
|
-
selectionStateByKey !== void 0 && (selGlyph && !isSynthetic ? /* @__PURE__ */
|
|
23470
|
-
aiFlaggedByKey !== void 0 && (aiFlagged ? /* @__PURE__ */
|
|
23471
|
-
/* @__PURE__ */
|
|
23472
|
-
|
|
23389
|
+
return /* @__PURE__ */ jsxs22(Box22, { children: [
|
|
23390
|
+
isCursor ? /* @__PURE__ */ jsx26(Text23, { color: PALETTE.accent, bold: true, children: figures5.pointer }) : /* @__PURE__ */ jsx26(Text23, { children: " " }),
|
|
23391
|
+
/* @__PURE__ */ jsx26(PreviewBadge, { badge, highlighted: isSelected }),
|
|
23392
|
+
selectionStateByKey !== void 0 && (selGlyph && !isSynthetic ? /* @__PURE__ */ jsx26(Text23, { color: !isSelected && selDim ? PALETTE.muted : selColor, bold: selBold, children: " " + selGlyph }) : /* @__PURE__ */ jsx26(Text23, { children: " " })),
|
|
23393
|
+
aiFlaggedByKey !== void 0 && (aiFlagged ? /* @__PURE__ */ jsx26(Text23, { color: PALETTE.warning, bold: true, children: " [\xD7]" }) : /* @__PURE__ */ jsx26(Text23, { children: " " })),
|
|
23394
|
+
/* @__PURE__ */ jsxs22(
|
|
23395
|
+
Text23,
|
|
23473
23396
|
{
|
|
23474
23397
|
color: isSelected ? PALETTE.accent : labelStyle.dim ? PALETTE.muted : labelStyle.color,
|
|
23475
23398
|
bold: isSelected || labelStyle.bold,
|
|
@@ -23482,10 +23405,10 @@ function GroupedSidebar(props) {
|
|
|
23482
23405
|
]
|
|
23483
23406
|
}
|
|
23484
23407
|
),
|
|
23485
|
-
inheritanceStyle.glyph && /* @__PURE__ */
|
|
23408
|
+
inheritanceStyle.glyph && /* @__PURE__ */ jsx26(Text23, { color: inheritanceStyle.dim ? PALETTE.muted : inheritanceStyle.color, bold: inheritanceStyle.bold, children: " " + inheritanceStyle.glyph })
|
|
23486
23409
|
] }, row.key);
|
|
23487
23410
|
}),
|
|
23488
|
-
windowed && /* @__PURE__ */
|
|
23411
|
+
windowed && /* @__PURE__ */ jsx26(WindowFooter, { above: start, below: Math.max(0, allRows.length - end) })
|
|
23489
23412
|
] });
|
|
23490
23413
|
}
|
|
23491
23414
|
var GLYPH_EXPAND_COLLAPSED, GLYPH_EXPAND_EXPANDED, GLYPH_TREE_MID, GLYPH_TREE_LAST, GLYPH_WARN, GLYPH_ERROR;
|
|
@@ -23614,8 +23537,8 @@ var init_use_terminal_size = __esm({
|
|
|
23614
23537
|
|
|
23615
23538
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/HelpOverlay.tsx
|
|
23616
23539
|
import React11 from "react";
|
|
23617
|
-
import { Box as
|
|
23618
|
-
import { Fragment as
|
|
23540
|
+
import { Box as Box23, Text as Text24 } from "ink";
|
|
23541
|
+
import { Fragment as Fragment3, jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
23619
23542
|
function HelpOverlay(props) {
|
|
23620
23543
|
const { onClose } = props;
|
|
23621
23544
|
const { columns: terminalColumns, rows: terminalRows } = useTerminalSize();
|
|
@@ -23626,8 +23549,8 @@ function HelpOverlay(props) {
|
|
|
23626
23549
|
if (input === "h" || key.escape) onClose();
|
|
23627
23550
|
}, props.handleInput !== false);
|
|
23628
23551
|
if (props.sections) {
|
|
23629
|
-
return /* @__PURE__ */
|
|
23630
|
-
|
|
23552
|
+
return /* @__PURE__ */ jsxs23(
|
|
23553
|
+
Box23,
|
|
23631
23554
|
{
|
|
23632
23555
|
flexDirection: "column",
|
|
23633
23556
|
borderStyle: "round",
|
|
@@ -23636,19 +23559,19 @@ function HelpOverlay(props) {
|
|
|
23636
23559
|
height: panelHeight,
|
|
23637
23560
|
overflowY: "hidden",
|
|
23638
23561
|
children: [
|
|
23639
|
-
/* @__PURE__ */
|
|
23640
|
-
props.sections.map((section) => /* @__PURE__ */
|
|
23641
|
-
/* @__PURE__ */
|
|
23642
|
-
/* @__PURE__ */
|
|
23643
|
-
section.entries.map((entry) => /* @__PURE__ */
|
|
23562
|
+
/* @__PURE__ */ jsx27(Text24, { bold: true, children: "\u2500".repeat(titleRule) + " Help " + "\u2500".repeat(titleRule) }),
|
|
23563
|
+
props.sections.map((section) => /* @__PURE__ */ jsxs23(React11.Fragment, { children: [
|
|
23564
|
+
/* @__PURE__ */ jsx27(Text24, { children: " " }),
|
|
23565
|
+
/* @__PURE__ */ jsx27(Text24, { bold: true, children: section.title }),
|
|
23566
|
+
section.entries.map((entry) => /* @__PURE__ */ jsx27(Text24, { children: entry.keys ? " " + entry.keys.padEnd(16) + " " + entry.label : " " + entry.label }, entry.keys + entry.label))
|
|
23644
23567
|
] }, section.title))
|
|
23645
23568
|
]
|
|
23646
23569
|
}
|
|
23647
23570
|
);
|
|
23648
23571
|
}
|
|
23649
23572
|
const mode = props.mode;
|
|
23650
|
-
return /* @__PURE__ */
|
|
23651
|
-
|
|
23573
|
+
return /* @__PURE__ */ jsxs23(
|
|
23574
|
+
Box23,
|
|
23652
23575
|
{
|
|
23653
23576
|
flexDirection: "column",
|
|
23654
23577
|
borderStyle: "round",
|
|
@@ -23657,31 +23580,31 @@ function HelpOverlay(props) {
|
|
|
23657
23580
|
height: panelHeight,
|
|
23658
23581
|
overflowY: "hidden",
|
|
23659
23582
|
children: [
|
|
23660
|
-
/* @__PURE__ */
|
|
23661
|
-
/* @__PURE__ */
|
|
23662
|
-
/* @__PURE__ */
|
|
23663
|
-
/* @__PURE__ */
|
|
23664
|
-
/* @__PURE__ */
|
|
23665
|
-
/* @__PURE__ */
|
|
23666
|
-
/* @__PURE__ */
|
|
23667
|
-
mode === "review" && /* @__PURE__ */
|
|
23668
|
-
/* @__PURE__ */
|
|
23669
|
-
/* @__PURE__ */
|
|
23670
|
-
/* @__PURE__ */
|
|
23671
|
-
/* @__PURE__ */
|
|
23672
|
-
/* @__PURE__ */
|
|
23673
|
-
/* @__PURE__ */
|
|
23674
|
-
/* @__PURE__ */
|
|
23675
|
-
/* @__PURE__ */
|
|
23676
|
-
/* @__PURE__ */
|
|
23677
|
-
/* @__PURE__ */
|
|
23678
|
-
/* @__PURE__ */
|
|
23679
|
-
/* @__PURE__ */
|
|
23680
|
-
/* @__PURE__ */
|
|
23583
|
+
/* @__PURE__ */ jsx27(Text24, { bold: true, children: "\u2500".repeat(titleRule) + " Help " + "\u2500".repeat(titleRule) }),
|
|
23584
|
+
/* @__PURE__ */ jsx27(Text24, { children: " " }),
|
|
23585
|
+
/* @__PURE__ */ jsx27(Text24, { bold: true, children: "Navigation" }),
|
|
23586
|
+
/* @__PURE__ */ jsx27(Text24, { children: " \u2191 / k / PgUp Scroll up" }),
|
|
23587
|
+
/* @__PURE__ */ jsx27(Text24, { children: " \u2193 / j / PgDn Scroll down" }),
|
|
23588
|
+
/* @__PURE__ */ jsx27(Text24, { children: " g / Home Jump to top" }),
|
|
23589
|
+
/* @__PURE__ */ jsx27(Text24, { children: " G / End Jump to bottom" }),
|
|
23590
|
+
mode === "review" && /* @__PURE__ */ jsxs23(Fragment3, { children: [
|
|
23591
|
+
/* @__PURE__ */ jsx27(Text24, { children: " " }),
|
|
23592
|
+
/* @__PURE__ */ jsx27(Text24, { bold: true, children: "[Review mode only]" }),
|
|
23593
|
+
/* @__PURE__ */ jsx27(Text24, { children: " Tab Toggle sidebar/detail" }),
|
|
23594
|
+
/* @__PURE__ */ jsx27(Text24, { children: " a Accept component" }),
|
|
23595
|
+
/* @__PURE__ */ jsx27(Text24, { children: " r Reject component" }),
|
|
23596
|
+
/* @__PURE__ */ jsx27(Text24, { children: " e Edit proposal" }),
|
|
23597
|
+
/* @__PURE__ */ jsx27(Text24, { children: " s Toggle source code" }),
|
|
23598
|
+
/* @__PURE__ */ jsx27(Text24, { children: " A Approve all" }),
|
|
23599
|
+
/* @__PURE__ */ jsx27(Text24, { children: " F Open finalize dialog" }),
|
|
23600
|
+
/* @__PURE__ */ jsx27(Text24, { children: " Ctrl+S Save draft" }),
|
|
23601
|
+
/* @__PURE__ */ jsx27(Text24, { children: " Ctrl+Z Undo" }),
|
|
23602
|
+
/* @__PURE__ */ jsx27(Text24, { children: " Ctrl+Y Redo" }),
|
|
23603
|
+
/* @__PURE__ */ jsx27(Text24, { children: " Esc Exit edit / close" })
|
|
23681
23604
|
] }),
|
|
23682
|
-
/* @__PURE__ */
|
|
23683
|
-
/* @__PURE__ */
|
|
23684
|
-
/* @__PURE__ */
|
|
23605
|
+
/* @__PURE__ */ jsx27(Text24, { children: " " }),
|
|
23606
|
+
/* @__PURE__ */ jsx27(Text24, { children: " h Close help" }),
|
|
23607
|
+
/* @__PURE__ */ jsx27(Text24, { children: " q Quit" })
|
|
23685
23608
|
]
|
|
23686
23609
|
}
|
|
23687
23610
|
);
|
|
@@ -23761,8 +23684,8 @@ var init_sidebar_input = __esm({
|
|
|
23761
23684
|
});
|
|
23762
23685
|
|
|
23763
23686
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/SearchMatchSummary.tsx
|
|
23764
|
-
import { Box as
|
|
23765
|
-
import { Fragment as
|
|
23687
|
+
import { Box as Box24, Text as Text25 } from "ink";
|
|
23688
|
+
import { Fragment as Fragment4, jsx as jsx28, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
23766
23689
|
function SearchMatchSummary({
|
|
23767
23690
|
open,
|
|
23768
23691
|
query,
|
|
@@ -23773,17 +23696,17 @@ function SearchMatchSummary({
|
|
|
23773
23696
|
marginTop
|
|
23774
23697
|
}) {
|
|
23775
23698
|
if (hidden) return null;
|
|
23776
|
-
return /* @__PURE__ */
|
|
23777
|
-
open && /* @__PURE__ */
|
|
23778
|
-
/* @__PURE__ */
|
|
23699
|
+
return /* @__PURE__ */ jsxs24(Fragment4, { children: [
|
|
23700
|
+
open && /* @__PURE__ */ jsxs24(Box24, { marginTop, flexDirection: "column", children: [
|
|
23701
|
+
/* @__PURE__ */ jsxs24(Text25, { children: [
|
|
23779
23702
|
`/${query}`,
|
|
23780
|
-
/* @__PURE__ */
|
|
23781
|
-
query && /* @__PURE__ */
|
|
23782
|
-
/* @__PURE__ */
|
|
23703
|
+
/* @__PURE__ */ jsx28(Text25, { color: PALETTE.accent, children: "\u258E" }),
|
|
23704
|
+
query && /* @__PURE__ */ jsx28(Text25, { color: PALETTE.muted, children: formatSearchMatchSummary(matches, total) }),
|
|
23705
|
+
/* @__PURE__ */ jsx28(Text25, { children: " \xB7 [Esc] leave" })
|
|
23783
23706
|
] }),
|
|
23784
|
-
autocompleteCandidates.length > 1 && /* @__PURE__ */
|
|
23707
|
+
autocompleteCandidates.length > 1 && /* @__PURE__ */ jsx28(Text25, { color: PALETTE.muted, children: ` possibilities: ${autocompleteCandidates.join(" \xB7 ").slice(0, 120)}` })
|
|
23785
23708
|
] }),
|
|
23786
|
-
!open && query && /* @__PURE__ */
|
|
23709
|
+
!open && query && /* @__PURE__ */ jsx28(Box24, { marginTop, children: /* @__PURE__ */ jsx28(Text25, { children: `/${query}${formatSearchMatchSummary(matches, total)} \xB7 [Esc] clear` }) })
|
|
23787
23710
|
] });
|
|
23788
23711
|
}
|
|
23789
23712
|
var init_SearchMatchSummary = __esm({
|
|
@@ -24735,7 +24658,7 @@ function useScopeGate({ components, tokenCount, tokensWidth, onConfirm, onQuit }
|
|
|
24735
24658
|
panelOpen: false,
|
|
24736
24659
|
entryCount: 0
|
|
24737
24660
|
});
|
|
24738
|
-
const
|
|
24661
|
+
const panelLayout = useMemo3(() => computePanelLayout(visibleCount), [visibleCount]);
|
|
24739
24662
|
useEffect13(() => {
|
|
24740
24663
|
setNav((prev) => {
|
|
24741
24664
|
const maxIdx = Math.max(0, visibleRows.length - 1);
|
|
@@ -25019,7 +24942,7 @@ function useScopeGate({ components, tokenCount, tokensWidth, onConfirm, onQuit }
|
|
|
25019
24942
|
// layout
|
|
25020
24943
|
totalWidth,
|
|
25021
24944
|
columnPlan,
|
|
25022
|
-
panelLayout
|
|
24945
|
+
panelLayout,
|
|
25023
24946
|
visibleCount,
|
|
25024
24947
|
panelMaxRows,
|
|
25025
24948
|
// sidebar
|
|
@@ -25082,8 +25005,8 @@ var init_use_scope_gate = __esm({
|
|
|
25082
25005
|
|
|
25083
25006
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/screen.tsx
|
|
25084
25007
|
import { useEffect as useEffect14, useMemo as useMemo4 } from "react";
|
|
25085
|
-
import { Box as
|
|
25086
|
-
import { Fragment as
|
|
25008
|
+
import { Box as Box25, Text as Text26 } from "ink";
|
|
25009
|
+
import { Fragment as Fragment5, jsx as jsx29, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
25087
25010
|
function ScopeGateScreen({
|
|
25088
25011
|
components,
|
|
25089
25012
|
tokensPath,
|
|
@@ -25120,24 +25043,24 @@ function ScopeGateScreen({
|
|
|
25120
25043
|
onQuit();
|
|
25121
25044
|
}
|
|
25122
25045
|
});
|
|
25123
|
-
const { search, graph, columnPlan, panelLayout
|
|
25046
|
+
const { search, graph, columnPlan, panelLayout, counters } = gate;
|
|
25124
25047
|
if (gate.showHelp) {
|
|
25125
|
-
return /* @__PURE__ */
|
|
25126
|
-
}
|
|
25127
|
-
return /* @__PURE__ */
|
|
25128
|
-
/* @__PURE__ */
|
|
25129
|
-
/* @__PURE__ */
|
|
25130
|
-
/* @__PURE__ */
|
|
25131
|
-
/* @__PURE__ */
|
|
25132
|
-
gate.aiExcludedCount > 0 && /* @__PURE__ */
|
|
25048
|
+
return /* @__PURE__ */ jsx29(HelpOverlay, { sections: HELP_SECTIONS, handleInput: false, onClose: gate.closeHelp });
|
|
25049
|
+
}
|
|
25050
|
+
return /* @__PURE__ */ jsxs25(Box25, { flexDirection: "column", children: [
|
|
25051
|
+
/* @__PURE__ */ jsx29(StepHeader, { step: "scope-gate" }),
|
|
25052
|
+
/* @__PURE__ */ jsxs25(Box25, { flexDirection: "column", paddingX: 2, children: [
|
|
25053
|
+
/* @__PURE__ */ jsxs25(Box25, { flexDirection: "row", flexWrap: "wrap", children: [
|
|
25054
|
+
/* @__PURE__ */ jsx29(CounterStrip, { counters, totalWidth: gate.totalWidth }),
|
|
25055
|
+
gate.aiExcludedCount > 0 && /* @__PURE__ */ jsxs25(Text26, { color: PALETTE.muted, children: [
|
|
25133
25056
|
`${gate.aiExcludedCount} component${gate.aiExcludedCount === 1 ? "" : "s"} flagged by AI`,
|
|
25134
|
-
gate.aiRows.length > 0 && /* @__PURE__ */
|
|
25057
|
+
gate.aiRows.length > 0 && /* @__PURE__ */ jsx29(Text26, { color: PALETTE.accent, children: " \u2014 press [x] to see why" })
|
|
25135
25058
|
] })
|
|
25136
25059
|
] }),
|
|
25137
|
-
tokens.length > 0 && columnPlan.layout === "single" && /* @__PURE__ */
|
|
25138
|
-
graph.cycles.length > 0 && /* @__PURE__ */
|
|
25139
|
-
/* @__PURE__ */
|
|
25140
|
-
gate.aiRationalePanelOpen ? /* @__PURE__ */
|
|
25060
|
+
tokens.length > 0 && columnPlan.layout === "single" && /* @__PURE__ */ jsx29(Text26, { color: PALETTE.muted, children: `${tokens.length} design token${tokens.length === 1 ? "" : "s"} will be imported. Widen the terminal to list them.` }),
|
|
25061
|
+
graph.cycles.length > 0 && /* @__PURE__ */ jsx29(Box25, { marginTop: 1, children: /* @__PURE__ */ jsx29(Text26, { color: PALETTE.muted, children: "If you must have components with cycles, select them together into the generate step and then use the editor to fix them." }) }),
|
|
25062
|
+
/* @__PURE__ */ jsxs25(Box25, { flexDirection: "row", alignItems: "stretch", children: [
|
|
25063
|
+
gate.aiRationalePanelOpen ? /* @__PURE__ */ jsx29(
|
|
25141
25064
|
GotoBanner,
|
|
25142
25065
|
{
|
|
25143
25066
|
title: `Review flags (${gate.aiExcludedCount})`,
|
|
@@ -25147,7 +25070,7 @@ function ScopeGateScreen({
|
|
|
25147
25070
|
width: columnPlan.main,
|
|
25148
25071
|
footerHint: "[\u2191/\u2193] move \xB7 [Enter] jump \xB7 [x/Esc] close"
|
|
25149
25072
|
}
|
|
25150
|
-
) : /* @__PURE__ */
|
|
25073
|
+
) : /* @__PURE__ */ jsx29(
|
|
25151
25074
|
GroupedSidebar,
|
|
25152
25075
|
{
|
|
25153
25076
|
items: gate.groupedItems,
|
|
@@ -25159,7 +25082,7 @@ function ScopeGateScreen({
|
|
|
25159
25082
|
expandedGroups: gate.expandedGroups,
|
|
25160
25083
|
onToggleExpanded: gate.toggleExpanded,
|
|
25161
25084
|
width: columnPlan.main,
|
|
25162
|
-
height:
|
|
25085
|
+
height: panelLayout.height,
|
|
25163
25086
|
title: "Components",
|
|
25164
25087
|
wrapLabels: true,
|
|
25165
25088
|
focused: gate.focusedColumn === "main",
|
|
@@ -25175,25 +25098,25 @@ function ScopeGateScreen({
|
|
|
25175
25098
|
graph: graph.nodes
|
|
25176
25099
|
}
|
|
25177
25100
|
),
|
|
25178
|
-
columnPlan.layout === "two-column" && /* @__PURE__ */
|
|
25179
|
-
/* @__PURE__ */
|
|
25180
|
-
/* @__PURE__ */
|
|
25101
|
+
columnPlan.layout === "two-column" && /* @__PURE__ */ jsxs25(Fragment5, { children: [
|
|
25102
|
+
/* @__PURE__ */ jsx29(Box25, { width: 2, flexShrink: 0 }),
|
|
25103
|
+
/* @__PURE__ */ jsx29(
|
|
25181
25104
|
TokensColumn,
|
|
25182
25105
|
{
|
|
25183
25106
|
width: columnPlan.tokens,
|
|
25184
25107
|
tokens,
|
|
25185
25108
|
cursor: gate.safeTokensCursor,
|
|
25186
25109
|
focused: gate.focusedColumn === "tokens",
|
|
25187
|
-
height:
|
|
25110
|
+
height: panelLayout.height,
|
|
25188
25111
|
title: `Design tokens (${tokens.length}) \xB7 read only`,
|
|
25189
|
-
visibleCount:
|
|
25112
|
+
visibleCount: panelLayout.sideVisibleCount
|
|
25190
25113
|
}
|
|
25191
25114
|
)
|
|
25192
25115
|
] })
|
|
25193
25116
|
] }),
|
|
25194
|
-
gate.cyclesPanelOpen && /* @__PURE__ */
|
|
25195
|
-
gate.pendingRejectCascade && /* @__PURE__ */
|
|
25196
|
-
/* @__PURE__ */
|
|
25117
|
+
gate.cyclesPanelOpen && /* @__PURE__ */ jsx29(CyclesPanel, { cycles: gate.slotCycles, cursor: gate.cyclesCursor }),
|
|
25118
|
+
gate.pendingRejectCascade && /* @__PURE__ */ jsx29(RejectPrompt, { pending: gate.pendingRejectCascade }),
|
|
25119
|
+
/* @__PURE__ */ jsx29(
|
|
25197
25120
|
SearchMatchSummary,
|
|
25198
25121
|
{
|
|
25199
25122
|
open: search.searchOpen,
|
|
@@ -25204,7 +25127,7 @@ function ScopeGateScreen({
|
|
|
25204
25127
|
marginTop: 1
|
|
25205
25128
|
}
|
|
25206
25129
|
),
|
|
25207
|
-
/* @__PURE__ */
|
|
25130
|
+
/* @__PURE__ */ jsx29(
|
|
25208
25131
|
CompactControlBar,
|
|
25209
25132
|
{
|
|
25210
25133
|
hasGroupRoots: gate.hasGroupRoots,
|
|
@@ -25386,18 +25309,8 @@ function generationLogInputs(input) {
|
|
|
25386
25309
|
has_tokens: input.hasTokens
|
|
25387
25310
|
};
|
|
25388
25311
|
}
|
|
25389
|
-
function lastProgress(progress) {
|
|
25390
|
-
const { activity, ...rest } = progress;
|
|
25391
|
-
const failed = activity.filter((item) => item.state === "failed");
|
|
25392
|
-
return {
|
|
25393
|
-
final_progress: rest,
|
|
25394
|
-
...failed.length > 0 ? {
|
|
25395
|
-
failed_components: failed.slice(0, MAX_LOGGED_FAILURES).map((item) => ({ name: item.name, error: truncate(item.error ?? "", MAX_LOGGED_ERROR) }))
|
|
25396
|
-
} : {}
|
|
25397
|
-
};
|
|
25398
|
-
}
|
|
25399
25312
|
function generationLogOutputs(result, progress) {
|
|
25400
|
-
const last = progress ?
|
|
25313
|
+
const last = progress ? { final_progress: progress } : {};
|
|
25401
25314
|
if (!result.ok) {
|
|
25402
25315
|
return { outputs: { result: "failed", failed_step: result.step, error: result.message, ...last }, status: "error" };
|
|
25403
25316
|
}
|
|
@@ -25416,21 +25329,7 @@ function generationLogOutputs(result, progress) {
|
|
|
25416
25329
|
};
|
|
25417
25330
|
}
|
|
25418
25331
|
function initialProgress2() {
|
|
25419
|
-
return { components: null,
|
|
25420
|
-
}
|
|
25421
|
-
function applyActivityEvent(event, previous, now) {
|
|
25422
|
-
if (event.kind !== "component:started" && event.kind !== "component:completed" && event.kind !== "component:cached" && event.kind !== "component:failed") {
|
|
25423
|
-
return [...previous];
|
|
25424
|
-
}
|
|
25425
|
-
const index = previous.findIndex((item2) => item2.name === event.name);
|
|
25426
|
-
const startedAt = previous[index]?.startedAt ?? now;
|
|
25427
|
-
const item = event.kind === "component:started" ? {
|
|
25428
|
-
name: event.name,
|
|
25429
|
-
state: "running",
|
|
25430
|
-
startedAt,
|
|
25431
|
-
...event.attempt > 1 ? { detail: `attempt ${event.attempt}` } : {}
|
|
25432
|
-
} : event.kind === "component:cached" ? { name: event.name, state: "done", detail: "cached", startedAt } : event.kind === "component:failed" ? { name: event.name, state: "failed", error: event.error, ms: now - startedAt, startedAt } : { name: event.name, state: "done", ms: now - startedAt, startedAt };
|
|
25433
|
-
return index >= 0 ? previous.map((existing, i) => i === index ? item : existing) : [...previous, item];
|
|
25332
|
+
return { components: null, mapTokens: "idle", mapTokensEligible: null };
|
|
25434
25333
|
}
|
|
25435
25334
|
function shouldRunMapTokens(counts) {
|
|
25436
25335
|
return counts.mappablePropCount > 0 && counts.rawTokenCount > 0;
|
|
@@ -25474,20 +25373,17 @@ function progressRows2(progress, agent, rowMs = []) {
|
|
|
25474
25373
|
}
|
|
25475
25374
|
return withTimes(rows, rowMs);
|
|
25476
25375
|
}
|
|
25477
|
-
var
|
|
25376
|
+
var capitalize;
|
|
25478
25377
|
var init_logic11 = __esm({
|
|
25479
25378
|
"packages/experience-design-system-cli/src/tui/import/steps/08-generation/logic.ts"() {
|
|
25480
25379
|
"use strict";
|
|
25481
|
-
init_activity();
|
|
25482
25380
|
init_logic4();
|
|
25483
|
-
MAX_LOGGED_FAILURES = 10;
|
|
25484
|
-
MAX_LOGGED_ERROR = 300;
|
|
25485
25381
|
capitalize = (name) => name.charAt(0).toUpperCase() + name.slice(1);
|
|
25486
25382
|
}
|
|
25487
25383
|
});
|
|
25488
25384
|
|
|
25489
25385
|
// packages/experience-design-system-cli/src/tui/import/steps/08-generation/screen.tsx
|
|
25490
|
-
import { jsx as
|
|
25386
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
25491
25387
|
function GenerationScreen({
|
|
25492
25388
|
progress,
|
|
25493
25389
|
agent,
|
|
@@ -25495,20 +25391,18 @@ function GenerationScreen({
|
|
|
25495
25391
|
hasTokens,
|
|
25496
25392
|
rowMs
|
|
25497
25393
|
}) {
|
|
25498
|
-
return /* @__PURE__ */
|
|
25394
|
+
return /* @__PURE__ */ jsx30(
|
|
25499
25395
|
RunningStep,
|
|
25500
25396
|
{
|
|
25501
25397
|
step: "generation",
|
|
25502
25398
|
description: describeGeneration({ acceptedCount, agent, hasTokens }),
|
|
25503
|
-
lines: progressRows2(progress, agent, rowMs)
|
|
25504
|
-
aside: progress.activity.length > 0 ? /* @__PURE__ */ jsx31(ActivityPanel, { title: "Components", items: progress.activity }) : void 0
|
|
25399
|
+
lines: progressRows2(progress, agent, rowMs)
|
|
25505
25400
|
}
|
|
25506
25401
|
);
|
|
25507
25402
|
}
|
|
25508
25403
|
var init_screen9 = __esm({
|
|
25509
25404
|
"packages/experience-design-system-cli/src/tui/import/steps/08-generation/screen.tsx"() {
|
|
25510
25405
|
"use strict";
|
|
25511
|
-
init_activity_panel();
|
|
25512
25406
|
init_shared2();
|
|
25513
25407
|
init_logic11();
|
|
25514
25408
|
}
|
|
@@ -25566,7 +25460,7 @@ var init_save_decisions = __esm({
|
|
|
25566
25460
|
// packages/experience-design-system-cli/src/tui/import/steps/08-generation/run.ts
|
|
25567
25461
|
import { resolve as resolve25 } from "node:path";
|
|
25568
25462
|
async function runGeneration(input, onProgress, deps = realDeps4) {
|
|
25569
|
-
let progress = { components: null,
|
|
25463
|
+
let progress = { components: null, mapTokens: "idle", mapTokensEligible: null };
|
|
25570
25464
|
const update = (change) => {
|
|
25571
25465
|
progress = { ...progress, ...change };
|
|
25572
25466
|
onProgress(progress);
|
|
@@ -25594,10 +25488,7 @@ async function runGeneration(input, onProgress, deps = realDeps4) {
|
|
|
25594
25488
|
noCache: input.noCache,
|
|
25595
25489
|
existingEntitiesPath: input.existingEntitiesPath,
|
|
25596
25490
|
precomputedCachedNames: new Set(handedOverNames),
|
|
25597
|
-
onProgress: (event) => update({
|
|
25598
|
-
components: applyProgressEvent2(event, progress.components, accepted.length),
|
|
25599
|
-
activity: applyActivityEvent(event, progress.activity, Date.now())
|
|
25600
|
-
})
|
|
25491
|
+
onProgress: (event) => update({ components: applyProgressEvent2(event, progress.components, accepted.length) })
|
|
25601
25492
|
});
|
|
25602
25493
|
} catch (error) {
|
|
25603
25494
|
return fail2("generate components", errorMessage3(error));
|
|
@@ -25689,7 +25580,6 @@ var init_run2 = __esm({
|
|
|
25689
25580
|
init_src3();
|
|
25690
25581
|
init_find_skill_path();
|
|
25691
25582
|
init_logic9();
|
|
25692
|
-
init_logic11();
|
|
25693
25583
|
init_map_tokens();
|
|
25694
25584
|
init_save_decisions();
|
|
25695
25585
|
COMPONENTS_SKILL_PATH = findSkillPath("generate-components.md");
|
|
@@ -25718,7 +25608,7 @@ function useGeneration(input) {
|
|
|
25718
25608
|
return;
|
|
25719
25609
|
}
|
|
25720
25610
|
setState({ status: "running", progress: initialProgress2(), rowMs: [] });
|
|
25721
|
-
let
|
|
25611
|
+
let lastProgress;
|
|
25722
25612
|
const startedAt = Date.now();
|
|
25723
25613
|
let rowMs = [];
|
|
25724
25614
|
startDebugRun({
|
|
@@ -25728,13 +25618,13 @@ function useGeneration(input) {
|
|
|
25728
25618
|
inputs: generationLogInputs(input)
|
|
25729
25619
|
});
|
|
25730
25620
|
void runGeneration(input, (progress) => {
|
|
25731
|
-
|
|
25621
|
+
lastProgress = progress;
|
|
25732
25622
|
rowMs = trackFinished(rowMs, progressRows2(progress, input.agent), Date.now() - startedAt);
|
|
25733
25623
|
if (current.current === input) setState({ status: "running", progress, rowMs });
|
|
25734
25624
|
}).then((result) => {
|
|
25735
25625
|
if (current.current !== input) return;
|
|
25736
25626
|
void finishDebugRun({
|
|
25737
|
-
...generationLogOutputs(result,
|
|
25627
|
+
...generationLogOutputs(result, lastProgress),
|
|
25738
25628
|
exitMethod: result.ok ? "saved" : "discarded"
|
|
25739
25629
|
});
|
|
25740
25630
|
setState({ status: "done", result });
|
|
@@ -26420,7 +26310,7 @@ var init_logic12 = __esm({
|
|
|
26420
26310
|
});
|
|
26421
26311
|
|
|
26422
26312
|
// packages/experience-design-system-cli/src/tui/import/steps/preview-validation-error/screen.tsx
|
|
26423
|
-
import { jsx as
|
|
26313
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
26424
26314
|
function PreviewValidationErrorScreen({
|
|
26425
26315
|
errors,
|
|
26426
26316
|
missingNames,
|
|
@@ -26429,7 +26319,7 @@ function PreviewValidationErrorScreen({
|
|
|
26429
26319
|
onQuit
|
|
26430
26320
|
}) {
|
|
26431
26321
|
const matchedNames = matchedComponentNames(errors, missingNames);
|
|
26432
|
-
return /* @__PURE__ */
|
|
26322
|
+
return /* @__PURE__ */ jsx31(
|
|
26433
26323
|
GateStep,
|
|
26434
26324
|
{
|
|
26435
26325
|
intent: "error",
|
|
@@ -26803,8 +26693,8 @@ var init_scroll_offset = __esm({
|
|
|
26803
26693
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/FieldEditor.tsx
|
|
26804
26694
|
import React13, { useEffect as useEffect17, useLayoutEffect as useLayoutEffect2, useState as useState19 } from "react";
|
|
26805
26695
|
import figures6 from "figures";
|
|
26806
|
-
import { Box as
|
|
26807
|
-
import { Fragment as
|
|
26696
|
+
import { Box as Box26, measureElement, Text as Text27 } from "ink";
|
|
26697
|
+
import { Fragment as Fragment6, jsx as jsx32, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
26808
26698
|
function createCommonRowProps(selected, focusLevel, editingField, textCursor, valueCursor, cursorVisible, editingValue, valueText, width) {
|
|
26809
26699
|
return {
|
|
26810
26700
|
selected,
|
|
@@ -26942,14 +26832,14 @@ function serializeState(state2, originalJson) {
|
|
|
26942
26832
|
return JSON.stringify(entry, null, 2);
|
|
26943
26833
|
}
|
|
26944
26834
|
function Picker({ value, active }) {
|
|
26945
|
-
return /* @__PURE__ */
|
|
26946
|
-
active && /* @__PURE__ */
|
|
26947
|
-
/* @__PURE__ */
|
|
26948
|
-
active && /* @__PURE__ */
|
|
26835
|
+
return /* @__PURE__ */ jsxs26(Box26, { children: [
|
|
26836
|
+
active && /* @__PURE__ */ jsx32(Text27, { color: PALETTE.warning, children: "\u2039" }),
|
|
26837
|
+
/* @__PURE__ */ jsx32(Text27, { color: active ? PALETTE.warning : void 0, bold: active, children: value }),
|
|
26838
|
+
active && /* @__PURE__ */ jsx32(Text27, { color: PALETTE.warning, children: "\u203A" })
|
|
26949
26839
|
] });
|
|
26950
26840
|
}
|
|
26951
26841
|
function Toggle({ value, active }) {
|
|
26952
|
-
return /* @__PURE__ */
|
|
26842
|
+
return /* @__PURE__ */ jsx32(Box26, { children: /* @__PURE__ */ jsx32(Text27, { color: active ? PALETTE.warning : value ? PALETTE.success : PALETTE.border, children: value ? "[\u2713]" : "[ ]" }) });
|
|
26953
26843
|
}
|
|
26954
26844
|
function InlinePropField({
|
|
26955
26845
|
label,
|
|
@@ -26958,8 +26848,8 @@ function InlinePropField({
|
|
|
26958
26848
|
flexible = false,
|
|
26959
26849
|
width
|
|
26960
26850
|
}) {
|
|
26961
|
-
return /* @__PURE__ */
|
|
26962
|
-
/* @__PURE__ */
|
|
26851
|
+
return /* @__PURE__ */ jsxs26(Box26, { width, gap: 1, flexShrink: flexible ? 1 : 0, flexGrow: flexible ? 1 : 0, flexWrap: "wrap", children: [
|
|
26852
|
+
/* @__PURE__ */ jsxs26(Text27, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, wrap: "truncate-end", children: [
|
|
26963
26853
|
focused ? "\u203A " : " ",
|
|
26964
26854
|
label
|
|
26965
26855
|
] }),
|
|
@@ -26972,19 +26862,19 @@ function RequiredField({
|
|
|
26972
26862
|
editingField,
|
|
26973
26863
|
activeField
|
|
26974
26864
|
}) {
|
|
26975
|
-
return /* @__PURE__ */
|
|
26865
|
+
return /* @__PURE__ */ jsx32(InlinePropField, { label: "req:", focused, children: /* @__PURE__ */ jsx32(Toggle, { value, active: editingField && activeField === "required" }) });
|
|
26976
26866
|
}
|
|
26977
26867
|
function DefaultValueRow({
|
|
26978
26868
|
display,
|
|
26979
26869
|
active,
|
|
26980
26870
|
focused
|
|
26981
26871
|
}) {
|
|
26982
|
-
return /* @__PURE__ */
|
|
26983
|
-
/* @__PURE__ */
|
|
26872
|
+
return /* @__PURE__ */ jsxs26(Box26, { gap: 1, flexWrap: "wrap", flexShrink: 0, children: [
|
|
26873
|
+
/* @__PURE__ */ jsxs26(Text27, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
|
|
26984
26874
|
focused ? "\u203A " : " ",
|
|
26985
26875
|
"default:"
|
|
26986
26876
|
] }),
|
|
26987
|
-
active ? /* @__PURE__ */
|
|
26877
|
+
active ? /* @__PURE__ */ jsx32(Picker, { value: display, active: true }) : /* @__PURE__ */ jsx32(Text27, { wrap: "wrap", children: display })
|
|
26988
26878
|
] });
|
|
26989
26879
|
}
|
|
26990
26880
|
function RowLabel({
|
|
@@ -26992,8 +26882,8 @@ function RowLabel({
|
|
|
26992
26882
|
selected,
|
|
26993
26883
|
trailing = true
|
|
26994
26884
|
}) {
|
|
26995
|
-
return /* @__PURE__ */
|
|
26996
|
-
|
|
26885
|
+
return /* @__PURE__ */ jsxs26(
|
|
26886
|
+
Text27,
|
|
26997
26887
|
{
|
|
26998
26888
|
color: selected ? PALETTE.onAccent : PALETTE.accent,
|
|
26999
26889
|
bold: selected,
|
|
@@ -27012,10 +26902,10 @@ function ValueInputRow({
|
|
|
27012
26902
|
valueText,
|
|
27013
26903
|
cursorVisible
|
|
27014
26904
|
}) {
|
|
27015
|
-
return /* @__PURE__ */
|
|
27016
|
-
/* @__PURE__ */
|
|
27017
|
-
/* @__PURE__ */
|
|
27018
|
-
/* @__PURE__ */
|
|
26905
|
+
return /* @__PURE__ */ jsxs26(Box26, { paddingLeft: 2, children: [
|
|
26906
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.accent, children: mode === "edit" ? "\u270E " : "+ " }),
|
|
26907
|
+
/* @__PURE__ */ jsx32(Text27, { children: valueText }),
|
|
26908
|
+
/* @__PURE__ */ jsx32(Text27, { inverse: cursorVisible, children: " " })
|
|
27019
26909
|
] });
|
|
27020
26910
|
}
|
|
27021
26911
|
function EditableListItem({
|
|
@@ -27028,9 +26918,9 @@ function EditableListItem({
|
|
|
27028
26918
|
}) {
|
|
27029
26919
|
const isBeingEdited = editingValue?.mode === "edit" && editingValue.index === index;
|
|
27030
26920
|
if (isBeingEdited) {
|
|
27031
|
-
return /* @__PURE__ */
|
|
26921
|
+
return /* @__PURE__ */ jsx32(ValueInputRow, { mode: "edit", valueText, cursorVisible });
|
|
27032
26922
|
}
|
|
27033
|
-
return /* @__PURE__ */
|
|
26923
|
+
return /* @__PURE__ */ jsx32(Box26, { gap: 1, paddingLeft: 2, children: /* @__PURE__ */ jsx32(Text27, { color: active ? PALETTE.accent : void 0, children: active ? `${figures6.pointer} ${value}` : ` ${value}` }) });
|
|
27034
26924
|
}
|
|
27035
26925
|
function EditableValueList({
|
|
27036
26926
|
values,
|
|
@@ -27043,9 +26933,9 @@ function EditableValueList({
|
|
|
27043
26933
|
emptyPaddingLeft,
|
|
27044
26934
|
showAddInput
|
|
27045
26935
|
}) {
|
|
27046
|
-
return /* @__PURE__ */
|
|
27047
|
-
values.length === 0 && !editingValue && (emptyPaddingLeft === void 0 ? /* @__PURE__ */
|
|
27048
|
-
values.map((value, index) => /* @__PURE__ */
|
|
26936
|
+
return /* @__PURE__ */ jsxs26(Fragment6, { children: [
|
|
26937
|
+
values.length === 0 && !editingValue && (emptyPaddingLeft === void 0 ? /* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: emptyMessage }) : /* @__PURE__ */ jsx32(Box26, { paddingLeft: emptyPaddingLeft, children: /* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: emptyMessage }) })),
|
|
26938
|
+
values.map((value, index) => /* @__PURE__ */ jsx32(
|
|
27049
26939
|
EditableListItem,
|
|
27050
26940
|
{
|
|
27051
26941
|
value,
|
|
@@ -27057,7 +26947,7 @@ function EditableValueList({
|
|
|
27057
26947
|
},
|
|
27058
26948
|
index
|
|
27059
26949
|
)),
|
|
27060
|
-
showAddInput && editingValue?.mode === "add" && /* @__PURE__ */
|
|
26950
|
+
showAddInput && editingValue?.mode === "add" && /* @__PURE__ */ jsx32(ValueInputRow, { mode: "add", valueText, cursorVisible })
|
|
27061
26951
|
] });
|
|
27062
26952
|
}
|
|
27063
26953
|
function DefaultSubRow({
|
|
@@ -27069,51 +26959,51 @@ function DefaultSubRow({
|
|
|
27069
26959
|
}) {
|
|
27070
26960
|
const cursor = cursorVisible ? "\u2588" : " ";
|
|
27071
26961
|
if (prop.type === "richtext" || prop.type === "media" || prop.type === "link") {
|
|
27072
|
-
return /* @__PURE__ */
|
|
27073
|
-
/* @__PURE__ */
|
|
26962
|
+
return /* @__PURE__ */ jsxs26(Box26, { gap: 1, flexShrink: 0, children: [
|
|
26963
|
+
/* @__PURE__ */ jsxs26(Text27, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
|
|
27074
26964
|
focused ? "\u203A " : " ",
|
|
27075
26965
|
"default:"
|
|
27076
26966
|
] }),
|
|
27077
|
-
/* @__PURE__ */
|
|
26967
|
+
/* @__PURE__ */ jsx32(Text27, { color: focused ? void 0 : PALETTE.muted, children: "(not applicable)" })
|
|
27078
26968
|
] });
|
|
27079
26969
|
}
|
|
27080
26970
|
if (prop.type === "boolean") {
|
|
27081
26971
|
const display = prop.default === true ? "true" : prop.default === false ? "false" : "(unset)";
|
|
27082
|
-
return /* @__PURE__ */
|
|
26972
|
+
return /* @__PURE__ */ jsx32(DefaultValueRow, { display, active, focused });
|
|
27083
26973
|
}
|
|
27084
26974
|
if (prop.type === "enum") {
|
|
27085
26975
|
if (prop.values.length === 0) {
|
|
27086
|
-
return /* @__PURE__ */
|
|
27087
|
-
/* @__PURE__ */
|
|
26976
|
+
return /* @__PURE__ */ jsxs26(Box26, { gap: 1, flexShrink: 0, children: [
|
|
26977
|
+
/* @__PURE__ */ jsxs26(Text27, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
|
|
27088
26978
|
focused ? "\u203A " : " ",
|
|
27089
26979
|
"default:"
|
|
27090
26980
|
] }),
|
|
27091
|
-
/* @__PURE__ */
|
|
26981
|
+
/* @__PURE__ */ jsx32(Text27, { color: focused ? void 0 : PALETTE.muted, children: "(no values defined)" })
|
|
27092
26982
|
] });
|
|
27093
26983
|
}
|
|
27094
26984
|
const display = typeof prop.default === "string" && prop.default !== "" ? prop.default : "(unset)";
|
|
27095
|
-
return /* @__PURE__ */
|
|
26985
|
+
return /* @__PURE__ */ jsx32(DefaultValueRow, { display, active, focused });
|
|
27096
26986
|
}
|
|
27097
26987
|
const value = typeof prop.default === "string" ? prop.default : "";
|
|
27098
26988
|
if (active) {
|
|
27099
|
-
return /* @__PURE__ */
|
|
27100
|
-
/* @__PURE__ */
|
|
26989
|
+
return /* @__PURE__ */ jsxs26(Box26, { flexDirection: "row", flexShrink: 0, children: [
|
|
26990
|
+
/* @__PURE__ */ jsxs26(Text27, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
|
|
27101
26991
|
focused ? "\u203A " : " ",
|
|
27102
26992
|
"default:"
|
|
27103
26993
|
] }),
|
|
27104
|
-
/* @__PURE__ */
|
|
27105
|
-
/* @__PURE__ */
|
|
27106
|
-
/* @__PURE__ */
|
|
27107
|
-
/* @__PURE__ */
|
|
26994
|
+
/* @__PURE__ */ jsxs26(Box26, { flexGrow: 1, borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, children: [
|
|
26995
|
+
/* @__PURE__ */ jsx32(Text27, { children: value.slice(0, textCursor) }),
|
|
26996
|
+
/* @__PURE__ */ jsx32(Text27, { inverse: cursorVisible, children: value[textCursor] ?? cursor }),
|
|
26997
|
+
/* @__PURE__ */ jsx32(Text27, { children: value.slice(textCursor + 1) })
|
|
27108
26998
|
] })
|
|
27109
26999
|
] });
|
|
27110
27000
|
}
|
|
27111
|
-
return /* @__PURE__ */
|
|
27112
|
-
/* @__PURE__ */
|
|
27001
|
+
return /* @__PURE__ */ jsxs26(Box26, { gap: 1, flexShrink: 0, children: [
|
|
27002
|
+
/* @__PURE__ */ jsxs26(Text27, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
|
|
27113
27003
|
focused ? "\u203A " : " ",
|
|
27114
27004
|
"default:"
|
|
27115
27005
|
] }),
|
|
27116
|
-
/* @__PURE__ */
|
|
27006
|
+
/* @__PURE__ */ jsx32(Text27, { color: focused || value ? void 0 : PALETTE.muted, children: value || "(none)" })
|
|
27117
27007
|
] });
|
|
27118
27008
|
}
|
|
27119
27009
|
function DescriptionField({
|
|
@@ -27128,20 +27018,20 @@ function DescriptionField({
|
|
|
27128
27018
|
paddingLeft = 2
|
|
27129
27019
|
}) {
|
|
27130
27020
|
if (compact) {
|
|
27131
|
-
return /* @__PURE__ */
|
|
27132
|
-
/* @__PURE__ */
|
|
27021
|
+
return /* @__PURE__ */ jsxs26(Box26, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: [
|
|
27022
|
+
/* @__PURE__ */ jsxs26(Text27, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
|
|
27133
27023
|
focused ? "\u203A " : " ",
|
|
27134
27024
|
label
|
|
27135
27025
|
] }),
|
|
27136
|
-
/* @__PURE__ */
|
|
27026
|
+
/* @__PURE__ */ jsx32(Text27, { wrap: "truncate-end", color: value ? void 0 : PALETTE.muted, children: value || "\u2014" })
|
|
27137
27027
|
] });
|
|
27138
27028
|
}
|
|
27139
|
-
return /* @__PURE__ */
|
|
27140
|
-
/* @__PURE__ */
|
|
27029
|
+
return /* @__PURE__ */ jsxs26(Box26, { paddingLeft, flexDirection: "column", width, flexShrink: 0, children: [
|
|
27030
|
+
/* @__PURE__ */ jsxs26(Text27, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
|
|
27141
27031
|
focused ? "\u203A " : " ",
|
|
27142
27032
|
label
|
|
27143
27033
|
] }),
|
|
27144
|
-
editing ? /* @__PURE__ */
|
|
27034
|
+
editing ? /* @__PURE__ */ jsx32(EditableDescription, { cursorVisible, value, textCursor }) : /* @__PURE__ */ jsx32(Text27, { wrap: "wrap", children: value || "\u2014" })
|
|
27145
27035
|
] });
|
|
27146
27036
|
}
|
|
27147
27037
|
function EditableDescription({
|
|
@@ -27149,9 +27039,9 @@ function EditableDescription({
|
|
|
27149
27039
|
value,
|
|
27150
27040
|
textCursor
|
|
27151
27041
|
}) {
|
|
27152
|
-
return /* @__PURE__ */
|
|
27042
|
+
return /* @__PURE__ */ jsxs26(Text27, { wrap: "wrap", children: [
|
|
27153
27043
|
value.slice(0, textCursor),
|
|
27154
|
-
/* @__PURE__ */
|
|
27044
|
+
/* @__PURE__ */ jsx32(Text27, { inverse: cursorVisible, children: value[textCursor] ?? " " }),
|
|
27155
27045
|
value.slice(textCursor + 1)
|
|
27156
27046
|
] });
|
|
27157
27047
|
}
|
|
@@ -27172,9 +27062,9 @@ function PropRow({
|
|
|
27172
27062
|
}) {
|
|
27173
27063
|
const descFocused = activeField === "description";
|
|
27174
27064
|
const descActive = editingField && descFocused;
|
|
27175
|
-
return /* @__PURE__ */
|
|
27176
|
-
/* @__PURE__ */
|
|
27177
|
-
/* @__PURE__ */
|
|
27065
|
+
return /* @__PURE__ */ jsxs26(Box26, { flexDirection: "column", width, flexShrink: 0, children: [
|
|
27066
|
+
/* @__PURE__ */ jsx32(Box26, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: /* @__PURE__ */ jsx32(RowLabel, { name: prop.name, selected }) }),
|
|
27067
|
+
/* @__PURE__ */ jsx32(
|
|
27178
27068
|
DescriptionField,
|
|
27179
27069
|
{
|
|
27180
27070
|
value: prop.description,
|
|
@@ -27187,8 +27077,8 @@ function PropRow({
|
|
|
27187
27077
|
paddingLeft: 0
|
|
27188
27078
|
}
|
|
27189
27079
|
),
|
|
27190
|
-
/* @__PURE__ */
|
|
27191
|
-
/* @__PURE__ */
|
|
27080
|
+
/* @__PURE__ */ jsxs26(Box26, { flexDirection: "column", width, flexShrink: 0, children: [
|
|
27081
|
+
/* @__PURE__ */ jsx32(
|
|
27192
27082
|
RequiredField,
|
|
27193
27083
|
{
|
|
27194
27084
|
value: prop.required,
|
|
@@ -27197,21 +27087,21 @@ function PropRow({
|
|
|
27197
27087
|
activeField
|
|
27198
27088
|
}
|
|
27199
27089
|
),
|
|
27200
|
-
/* @__PURE__ */
|
|
27090
|
+
/* @__PURE__ */ jsx32(InlinePropField, { label: "type:", focused: activeField === "type", children: editingField && activeField === "type" ? /* @__PURE__ */ jsx32(Picker, { value: prop.type, active: true }) : /* @__PURE__ */ jsx32(Text27, { children: prop.type }) })
|
|
27201
27091
|
] }),
|
|
27202
|
-
prop.type === "token" && /* @__PURE__ */
|
|
27203
|
-
prop.type === "enum" && /* @__PURE__ */
|
|
27204
|
-
/* @__PURE__ */
|
|
27092
|
+
prop.type === "token" && /* @__PURE__ */ jsx32(InlinePropField, { label: "kind:", focused: activeField === "tokenKind", width, children: editingField && activeField === "tokenKind" ? /* @__PURE__ */ jsx32(Picker, { value: prop.tokenKind || DESIGN_TOKEN_TYPES2[0], active: true }) : /* @__PURE__ */ jsx32(Text27, { wrap: "wrap", children: prop.tokenKind || "\u2014" }) }),
|
|
27093
|
+
prop.type === "enum" && /* @__PURE__ */ jsxs26(Box26, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: [
|
|
27094
|
+
/* @__PURE__ */ jsxs26(Text27, { color: activeField === "values" ? PALETTE.warning : PALETTE.muted, bold: activeField === "values", children: [
|
|
27205
27095
|
activeField === "values" ? "\u203A " : " ",
|
|
27206
27096
|
"values:"
|
|
27207
27097
|
] }),
|
|
27208
|
-
/* @__PURE__ */
|
|
27098
|
+
/* @__PURE__ */ jsxs26(Text27, { wrap: "wrap", children: [
|
|
27209
27099
|
"[",
|
|
27210
27100
|
prop.values.join(", "),
|
|
27211
27101
|
"]"
|
|
27212
27102
|
] })
|
|
27213
27103
|
] }),
|
|
27214
|
-
/* @__PURE__ */
|
|
27104
|
+
/* @__PURE__ */ jsx32(
|
|
27215
27105
|
DefaultSubRow,
|
|
27216
27106
|
{
|
|
27217
27107
|
prop,
|
|
@@ -27221,13 +27111,13 @@ function PropRow({
|
|
|
27221
27111
|
cursorVisible
|
|
27222
27112
|
}
|
|
27223
27113
|
),
|
|
27224
|
-
prop.type === "token" && prop.category === "design" && /* @__PURE__ */
|
|
27225
|
-
/* @__PURE__ */
|
|
27114
|
+
prop.type === "token" && prop.category === "design" && /* @__PURE__ */ jsxs26(Box26, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: [
|
|
27115
|
+
/* @__PURE__ */ jsxs26(Text27, { color: activeField === "allowed" ? PALETTE.warning : PALETTE.muted, bold: activeField === "allowed", children: [
|
|
27226
27116
|
activeField === "allowed" ? "\u203A " : " ",
|
|
27227
27117
|
"allowed:"
|
|
27228
27118
|
] }),
|
|
27229
|
-
editingField && activeField === "allowed" ? /* @__PURE__ */
|
|
27230
|
-
|
|
27119
|
+
editingField && activeField === "allowed" ? /* @__PURE__ */ jsx32(Box26, { width: Math.max(1, width - 4), borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, children: /* @__PURE__ */ jsx32(Text27, { children: "press [t] to edit allowed tokens" }) }) : /* @__PURE__ */ jsx32(
|
|
27120
|
+
Text27,
|
|
27231
27121
|
{
|
|
27232
27122
|
color: activeField !== "allowed" && prop.allowed.length === 0 ? PALETTE.muted : void 0,
|
|
27233
27123
|
wrap: "wrap",
|
|
@@ -27235,17 +27125,17 @@ function PropRow({
|
|
|
27235
27125
|
}
|
|
27236
27126
|
)
|
|
27237
27127
|
] }),
|
|
27238
|
-
selected && showRationale && rationale && rationale.trim().length > 0 && /* @__PURE__ */
|
|
27128
|
+
selected && showRationale && rationale && rationale.trim().length > 0 && /* @__PURE__ */ jsx32(Box26, { paddingLeft: 2, children: /* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: (() => {
|
|
27239
27129
|
const max = Math.max(8, width - 8);
|
|
27240
27130
|
const text = `~ ${rationale}`;
|
|
27241
27131
|
return text.length > max ? text.slice(0, max - 1) + "\u2026" : text;
|
|
27242
27132
|
})() }) }, rowKey ? `rationale-${rowKey}` : void 0),
|
|
27243
|
-
selected && prop.type === "enum" && activeField === "values" && /* @__PURE__ */
|
|
27244
|
-
/* @__PURE__ */
|
|
27245
|
-
/* @__PURE__ */
|
|
27246
|
-
activeField === "values" && /* @__PURE__ */
|
|
27133
|
+
selected && prop.type === "enum" && activeField === "values" && /* @__PURE__ */ jsxs26(Box26, { paddingLeft: 2, flexDirection: "column", children: [
|
|
27134
|
+
/* @__PURE__ */ jsxs26(Box26, { children: [
|
|
27135
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: "values:" }),
|
|
27136
|
+
activeField === "values" && /* @__PURE__ */ jsx32(Text27, { children: " [a] add [e] edit [r] remove [\u2191\u2193] navigate [K/J] reorder" })
|
|
27247
27137
|
] }),
|
|
27248
|
-
/* @__PURE__ */
|
|
27138
|
+
/* @__PURE__ */ jsx32(
|
|
27249
27139
|
EditableValueList,
|
|
27250
27140
|
{
|
|
27251
27141
|
values: prop.values,
|
|
@@ -27275,9 +27165,9 @@ function SlotRow({
|
|
|
27275
27165
|
pickerCandidates,
|
|
27276
27166
|
pickerCursor
|
|
27277
27167
|
}) {
|
|
27278
|
-
return /* @__PURE__ */
|
|
27279
|
-
/* @__PURE__ */
|
|
27280
|
-
/* @__PURE__ */
|
|
27168
|
+
return /* @__PURE__ */ jsxs26(Box26, { flexDirection: "column", width, flexShrink: 0, children: [
|
|
27169
|
+
/* @__PURE__ */ jsx32(Box26, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: /* @__PURE__ */ jsx32(RowLabel, { name: slot.name, selected, trailing: false }) }),
|
|
27170
|
+
/* @__PURE__ */ jsx32(
|
|
27281
27171
|
DescriptionField,
|
|
27282
27172
|
{
|
|
27283
27173
|
value: slot.description,
|
|
@@ -27290,7 +27180,7 @@ function SlotRow({
|
|
|
27290
27180
|
paddingLeft: 0
|
|
27291
27181
|
}
|
|
27292
27182
|
),
|
|
27293
|
-
/* @__PURE__ */
|
|
27183
|
+
/* @__PURE__ */ jsx32(Box26, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: /* @__PURE__ */ jsx32(
|
|
27294
27184
|
RequiredField,
|
|
27295
27185
|
{
|
|
27296
27186
|
value: slot.required,
|
|
@@ -27299,9 +27189,9 @@ function SlotRow({
|
|
|
27299
27189
|
activeField
|
|
27300
27190
|
}
|
|
27301
27191
|
) }),
|
|
27302
|
-
!(selected && editingField && activeField === "allowedComponents") && /* @__PURE__ */
|
|
27303
|
-
/* @__PURE__ */
|
|
27304
|
-
|
|
27192
|
+
!(selected && editingField && activeField === "allowedComponents") && /* @__PURE__ */ jsxs26(Box26, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: [
|
|
27193
|
+
/* @__PURE__ */ jsxs26(
|
|
27194
|
+
Text27,
|
|
27305
27195
|
{
|
|
27306
27196
|
color: activeField === "allowedComponents" ? PALETTE.warning : PALETTE.muted,
|
|
27307
27197
|
bold: activeField === "allowedComponents",
|
|
@@ -27311,12 +27201,12 @@ function SlotRow({
|
|
|
27311
27201
|
]
|
|
27312
27202
|
}
|
|
27313
27203
|
),
|
|
27314
|
-
slot.allowedComponents.length === 0 ? /* @__PURE__ */
|
|
27204
|
+
slot.allowedComponents.length === 0 ? /* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: "(any)" }) : /* @__PURE__ */ jsx32(Text27, { wrap: "wrap", children: slot.allowedComponents.join(", ") })
|
|
27315
27205
|
] }),
|
|
27316
|
-
selected && editingField && activeField === "allowedComponents" && /* @__PURE__ */
|
|
27317
|
-
/* @__PURE__ */
|
|
27318
|
-
/* @__PURE__ */
|
|
27319
|
-
|
|
27206
|
+
selected && editingField && activeField === "allowedComponents" && /* @__PURE__ */ jsxs26(Box26, { flexDirection: "column", children: [
|
|
27207
|
+
/* @__PURE__ */ jsxs26(Box26, { children: [
|
|
27208
|
+
/* @__PURE__ */ jsxs26(
|
|
27209
|
+
Text27,
|
|
27320
27210
|
{
|
|
27321
27211
|
color: activeField === "allowedComponents" ? PALETTE.warning : PALETTE.muted,
|
|
27322
27212
|
bold: activeField === "allowedComponents",
|
|
@@ -27326,9 +27216,9 @@ function SlotRow({
|
|
|
27326
27216
|
]
|
|
27327
27217
|
}
|
|
27328
27218
|
),
|
|
27329
|
-
editingField && activeField === "allowedComponents" && /* @__PURE__ */
|
|
27219
|
+
editingField && activeField === "allowedComponents" && /* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: slot.allowedComponents.length > 0 ? " [a] add [e] edit [r] remove [\u2190\u2192] cycle [\u2191\u2193] navigate [K/J] reorder" : " [a] add [e] edit [r] remove [\u2191\u2193] navigate [K/J] reorder" })
|
|
27330
27220
|
] }),
|
|
27331
|
-
/* @__PURE__ */
|
|
27221
|
+
/* @__PURE__ */ jsx32(
|
|
27332
27222
|
EditableValueList,
|
|
27333
27223
|
{
|
|
27334
27224
|
values: slot.allowedComponents,
|
|
@@ -27342,21 +27232,21 @@ function SlotRow({
|
|
|
27342
27232
|
showAddInput: editingField && activeField === "allowedComponents"
|
|
27343
27233
|
}
|
|
27344
27234
|
),
|
|
27345
|
-
editingField && editingValue?.mode === "add" && activeField === "allowedComponents" && pickerCandidates !== null && /* @__PURE__ */
|
|
27235
|
+
editingField && editingValue?.mode === "add" && activeField === "allowedComponents" && pickerCandidates !== null && /* @__PURE__ */ jsx32(Box26, { paddingLeft: 2, flexDirection: "column", children: pickerCandidates.length === 0 ? /* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: "(no valid components to add \u2014 all remaining candidates would create cycles)" }) : (() => {
|
|
27346
27236
|
const filtered = valueText.length === 0 ? pickerCandidates : pickerCandidates.filter((n) => n.toLowerCase().includes(valueText.toLowerCase()));
|
|
27347
27237
|
if (filtered.length === 0) {
|
|
27348
|
-
return /* @__PURE__ */
|
|
27238
|
+
return /* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: "(no candidates match \u2014 Enter to add as free text)" });
|
|
27349
27239
|
}
|
|
27350
27240
|
const cursor = pickerCursor % filtered.length;
|
|
27351
27241
|
const MAX_VISIBLE = 5;
|
|
27352
27242
|
const start = Math.max(0, Math.min(filtered.length - MAX_VISIBLE, cursor - 2));
|
|
27353
27243
|
const slice = filtered.slice(start, start + MAX_VISIBLE);
|
|
27354
|
-
return /* @__PURE__ */
|
|
27355
|
-
/* @__PURE__ */
|
|
27244
|
+
return /* @__PURE__ */ jsxs26(Box26, { flexDirection: "column", children: [
|
|
27245
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: " candidates (\u2191\u2193 cycle, Enter to add):" }),
|
|
27356
27246
|
slice.map((name, i) => {
|
|
27357
27247
|
const absIdx = start + i;
|
|
27358
27248
|
const isCursor = absIdx === cursor;
|
|
27359
|
-
return /* @__PURE__ */
|
|
27249
|
+
return /* @__PURE__ */ jsx32(Text27, { color: isCursor ? PALETTE.accent : PALETTE.muted, children: isCursor ? ` ${figures6.pointer} ${name}` : ` ${name}` }, name);
|
|
27360
27250
|
})
|
|
27361
27251
|
] });
|
|
27362
27252
|
})() })
|
|
@@ -28235,18 +28125,18 @@ function FieldEditor({
|
|
|
28235
28125
|
});
|
|
28236
28126
|
const innerWidth = Math.max(1, width - 2);
|
|
28237
28127
|
if (parseErr) {
|
|
28238
|
-
return /* @__PURE__ */
|
|
28239
|
-
/* @__PURE__ */
|
|
28240
|
-
/* @__PURE__ */
|
|
28241
|
-
/* @__PURE__ */
|
|
28128
|
+
return /* @__PURE__ */ jsxs26(Box26, { flexDirection: "column", width, borderStyle: "single", borderColor: PALETTE.error, children: [
|
|
28129
|
+
/* @__PURE__ */ jsx32(Text27, { bold: true, color: PALETTE.error, children: "FIELD EDITOR \u2014 parse error" }),
|
|
28130
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.error, children: parseErr }),
|
|
28131
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: "Cannot display structured editor. Fix the JSON first." })
|
|
28242
28132
|
] });
|
|
28243
28133
|
}
|
|
28244
28134
|
if (props.length === 0 && slots.length === 0) {
|
|
28245
|
-
return /* @__PURE__ */
|
|
28246
|
-
/* @__PURE__ */
|
|
28247
|
-
/* @__PURE__ */
|
|
28248
|
-
/* @__PURE__ */
|
|
28249
|
-
/* @__PURE__ */
|
|
28135
|
+
return /* @__PURE__ */ jsxs26(Box26, { flexDirection: "column", width, borderStyle: "single", borderColor: PALETTE.warning, children: [
|
|
28136
|
+
/* @__PURE__ */ jsx32(Text27, { bold: true, color: PALETTE.warning, children: "FIELD EDITOR \u2014 no fields" }),
|
|
28137
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.warning, children: "\u26A0 No properties classified for this component. The LLM didn't find anything to classify." }),
|
|
28138
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: "You can add fields manually below or reject this component." }),
|
|
28139
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: "Enter to save \xB7 Esc to discard" })
|
|
28250
28140
|
] });
|
|
28251
28141
|
}
|
|
28252
28142
|
const hasEmptyProperties = props.length === 0 && slots.length === 0;
|
|
@@ -28379,12 +28269,12 @@ function FieldEditor({
|
|
|
28379
28269
|
const renderRow = (row, index) => {
|
|
28380
28270
|
const key = rowKey(row, index);
|
|
28381
28271
|
if (row.kind === "header") {
|
|
28382
|
-
return /* @__PURE__ */
|
|
28272
|
+
return /* @__PURE__ */ jsx32(Box26, { flexDirection: "column", paddingTop: 1, children: /* @__PURE__ */ jsx32(Text27, { bold: true, color: PALETTE.success, children: row.label }) }, key);
|
|
28383
28273
|
}
|
|
28384
28274
|
if (row.kind === "component-description") {
|
|
28385
28275
|
const isSelected2 = inComponentDesc && active;
|
|
28386
28276
|
const isEditing = isSelected2 && focusLevel === "field" && editingField && activeField === "description";
|
|
28387
|
-
return /* @__PURE__ */
|
|
28277
|
+
return /* @__PURE__ */ jsx32(
|
|
28388
28278
|
DescriptionField,
|
|
28389
28279
|
{
|
|
28390
28280
|
value: editorState.componentDescription,
|
|
@@ -28415,7 +28305,7 @@ function FieldEditor({
|
|
|
28415
28305
|
valueText,
|
|
28416
28306
|
innerWidth
|
|
28417
28307
|
);
|
|
28418
|
-
return /* @__PURE__ */
|
|
28308
|
+
return /* @__PURE__ */ jsx32(
|
|
28419
28309
|
PropRow,
|
|
28420
28310
|
{
|
|
28421
28311
|
prop: p,
|
|
@@ -28442,7 +28332,7 @@ function FieldEditor({
|
|
|
28442
28332
|
valueText,
|
|
28443
28333
|
innerWidth
|
|
28444
28334
|
);
|
|
28445
|
-
return /* @__PURE__ */
|
|
28335
|
+
return /* @__PURE__ */ jsx32(
|
|
28446
28336
|
SlotRow,
|
|
28447
28337
|
{
|
|
28448
28338
|
slot: s,
|
|
@@ -28454,7 +28344,7 @@ function FieldEditor({
|
|
|
28454
28344
|
key
|
|
28455
28345
|
);
|
|
28456
28346
|
};
|
|
28457
|
-
return /* @__PURE__ */
|
|
28347
|
+
return /* @__PURE__ */ jsxs26(
|
|
28458
28348
|
FixedPanel,
|
|
28459
28349
|
{
|
|
28460
28350
|
width,
|
|
@@ -28463,9 +28353,9 @@ function FieldEditor({
|
|
|
28463
28353
|
borderStyle: "single",
|
|
28464
28354
|
borderColor: hasEmptyProperties ? PALETTE.warning : active ? PALETTE.accent : PALETTE.border,
|
|
28465
28355
|
children: [
|
|
28466
|
-
hasEmptyProperties && /* @__PURE__ */
|
|
28356
|
+
hasEmptyProperties && /* @__PURE__ */ jsx32(Text27, { color: PALETTE.warning, children: "\u26A0 No properties classified for this component. The LLM didn't find anything to classify. Reject this component or add fields manually." }),
|
|
28467
28357
|
header,
|
|
28468
|
-
/* @__PURE__ */
|
|
28358
|
+
/* @__PURE__ */ jsx32(Box26, { flexDirection: "column", width: innerWidth, flexShrink: 0, children: focusLevel === "field" && !inComponentDesc && currentProp ? /* @__PURE__ */ jsx32(
|
|
28469
28359
|
PropRow,
|
|
28470
28360
|
{
|
|
28471
28361
|
prop: currentProp,
|
|
@@ -28481,7 +28371,7 @@ function FieldEditor({
|
|
|
28481
28371
|
rationale: metadata?.props?.[currentProp.name]?.rationale ?? null,
|
|
28482
28372
|
showRationale: showInlineRationales
|
|
28483
28373
|
}
|
|
28484
|
-
) : focusLevel === "field" && inSlots && currentSlot ? /* @__PURE__ */
|
|
28374
|
+
) : focusLevel === "field" && inSlots && currentSlot ? /* @__PURE__ */ jsx32(
|
|
28485
28375
|
SlotRow,
|
|
28486
28376
|
{
|
|
28487
28377
|
slot: currentSlot,
|
|
@@ -28500,8 +28390,8 @@ function FieldEditor({
|
|
|
28500
28390
|
) : visibleRowSlice.map((row, index) => {
|
|
28501
28391
|
const absoluteIndex = scrollStart + index;
|
|
28502
28392
|
const key = rowKey(row, absoluteIndex);
|
|
28503
|
-
return /* @__PURE__ */
|
|
28504
|
-
|
|
28393
|
+
return /* @__PURE__ */ jsx32(
|
|
28394
|
+
Box26,
|
|
28505
28395
|
{
|
|
28506
28396
|
ref: (node) => {
|
|
28507
28397
|
if (node) rowMeasureRefs.current.set(key, node);
|
|
@@ -28514,7 +28404,7 @@ function FieldEditor({
|
|
|
28514
28404
|
`visible-${key}`
|
|
28515
28405
|
);
|
|
28516
28406
|
}) }),
|
|
28517
|
-
categoryBelow && /* @__PURE__ */
|
|
28407
|
+
categoryBelow && /* @__PURE__ */ jsx32(Text27, { color: PALETTE.success, bold: true, children: `(${categoryBelow} below)` }),
|
|
28518
28408
|
sourceOpen && !onToggleSourceExternal && (() => {
|
|
28519
28409
|
const propMeta = !inSlots && !inComponentDesc && currentProp ? metadata?.props?.[currentProp.name] : void 0;
|
|
28520
28410
|
const start = propMeta?.sourceStartLine ?? null;
|
|
@@ -28523,50 +28413,50 @@ function FieldEditor({
|
|
|
28523
28413
|
const src = metadata?.componentSource ?? null;
|
|
28524
28414
|
const headerPath = path5 ?? "<unknown source path>";
|
|
28525
28415
|
if (!start || !end2 || !src) {
|
|
28526
|
-
return /* @__PURE__ */
|
|
28527
|
-
/* @__PURE__ */
|
|
28528
|
-
/* @__PURE__ */
|
|
28529
|
-
/* @__PURE__ */
|
|
28416
|
+
return /* @__PURE__ */ jsxs26(Box26, { flexDirection: "column", borderStyle: "single", borderColor: "gray", paddingX: 1, children: [
|
|
28417
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, bold: true, children: `source: ${headerPath}` }),
|
|
28418
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: "(no source location captured for this prop)" }),
|
|
28419
|
+
/* @__PURE__ */ jsx32(Text27, { children: "[s] close" })
|
|
28530
28420
|
] });
|
|
28531
28421
|
}
|
|
28532
28422
|
const lines = src.split("\n").slice(Math.max(0, start - 1), end2);
|
|
28533
|
-
return /* @__PURE__ */
|
|
28534
|
-
/* @__PURE__ */
|
|
28535
|
-
lines.map((ln, i) => /* @__PURE__ */
|
|
28536
|
-
/* @__PURE__ */
|
|
28423
|
+
return /* @__PURE__ */ jsxs26(Box26, { flexDirection: "column", borderStyle: "single", borderColor: "gray", paddingX: 1, children: [
|
|
28424
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, bold: true, children: `${headerPath}: lines ${start}\u2013${end2}` }),
|
|
28425
|
+
lines.map((ln, i) => /* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: ln }, `source-line-${i}`)),
|
|
28426
|
+
/* @__PURE__ */ jsx32(Text27, { children: "[s] close \xB7 [Esc] close" })
|
|
28537
28427
|
] });
|
|
28538
28428
|
})(),
|
|
28539
|
-
showHelp && /* @__PURE__ */
|
|
28540
|
-
/* @__PURE__ */
|
|
28541
|
-
/* @__PURE__ */
|
|
28542
|
-
/* @__PURE__ */
|
|
28543
|
-
/* @__PURE__ */
|
|
28544
|
-
/* @__PURE__ */
|
|
28545
|
-
/* @__PURE__ */
|
|
28546
|
-
/* @__PURE__ */
|
|
28547
|
-
/* @__PURE__ */
|
|
28548
|
-
/* @__PURE__ */
|
|
28549
|
-
/* @__PURE__ */
|
|
28550
|
-
/* @__PURE__ */
|
|
28551
|
-
/* @__PURE__ */
|
|
28552
|
-
/* @__PURE__ */
|
|
28553
|
-
/* @__PURE__ */
|
|
28554
|
-
/* @__PURE__ */
|
|
28555
|
-
/* @__PURE__ */
|
|
28556
|
-
/* @__PURE__ */
|
|
28557
|
-
/* @__PURE__ */
|
|
28558
|
-
/* @__PURE__ */
|
|
28559
|
-
/* @__PURE__ */
|
|
28560
|
-
/* @__PURE__ */
|
|
28561
|
-
/* @__PURE__ */
|
|
28562
|
-
/* @__PURE__ */
|
|
28563
|
-
/* @__PURE__ */
|
|
28564
|
-
/* @__PURE__ */
|
|
28565
|
-
/* @__PURE__ */
|
|
28566
|
-
/* @__PURE__ */
|
|
28429
|
+
showHelp && /* @__PURE__ */ jsxs26(Box26, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.accent, paddingX: 1, children: [
|
|
28430
|
+
/* @__PURE__ */ jsx32(Text27, { bold: true, color: PALETTE.accent, children: "Keybindings" }),
|
|
28431
|
+
/* @__PURE__ */ jsx32(Text27, { children: " " }),
|
|
28432
|
+
/* @__PURE__ */ jsx32(Text27, { bold: true, children: "Row navigation" }),
|
|
28433
|
+
/* @__PURE__ */ jsx32(Text27, { children: " \u2191/\u2193 move between rows" }),
|
|
28434
|
+
/* @__PURE__ */ jsx32(Text27, { children: " Enter edit fields on the current row" }),
|
|
28435
|
+
/* @__PURE__ */ jsx32(Text27, { children: " d delete the current prop or slot (asks to confirm)" }),
|
|
28436
|
+
/* @__PURE__ */ jsx32(Text27, { children: " Esc exit the panel" }),
|
|
28437
|
+
/* @__PURE__ */ jsx32(Text27, { children: " " }),
|
|
28438
|
+
/* @__PURE__ */ jsx32(Text27, { bold: true, children: "Field editing" }),
|
|
28439
|
+
/* @__PURE__ */ jsx32(Text27, { children: " \u2191/\u2193/\u2190\u2192 cycle through fields" }),
|
|
28440
|
+
/* @__PURE__ */ jsx32(Text27, { children: " \u2190/\u2192 cycle picker values \xB7 move cursor in text inputs" }),
|
|
28441
|
+
/* @__PURE__ */ jsx32(Text27, { children: " Space/Enter toggle required" }),
|
|
28442
|
+
/* @__PURE__ */ jsx32(Text27, { children: " Type edit description / string default" }),
|
|
28443
|
+
/* @__PURE__ */ jsx32(Text27, { children: " Esc exit field-edit back to the row" }),
|
|
28444
|
+
/* @__PURE__ */ jsx32(Text27, { children: " " }),
|
|
28445
|
+
/* @__PURE__ */ jsx32(Text27, { bold: true, children: "Values / allowedComponents" }),
|
|
28446
|
+
/* @__PURE__ */ jsx32(Text27, { children: " a / e / r add \xB7 edit \xB7 remove" }),
|
|
28447
|
+
/* @__PURE__ */ jsx32(Text27, { children: " \u2191\u2193 navigate the list" }),
|
|
28448
|
+
/* @__PURE__ */ jsx32(Text27, { children: " K / J reorder up \xB7 down" }),
|
|
28449
|
+
/* @__PURE__ */ jsx32(Text27, { children: " " }),
|
|
28450
|
+
/* @__PURE__ */ jsx32(Text27, { bold: true, children: "Panels" }),
|
|
28451
|
+
/* @__PURE__ */ jsx32(Text27, { children: " s toggle source-view for the current prop" }),
|
|
28452
|
+
/* @__PURE__ */ jsx32(Text27, { children: " " + propRationaleKey.padEnd(16) + " toggle prop rationale panel" }),
|
|
28453
|
+
/* @__PURE__ */ jsx32(Text27, { children: " " + componentRationaleKey.padEnd(16) + " toggle component rationale panel" }),
|
|
28454
|
+
/* @__PURE__ */ jsx32(Text27, { children: " ? toggle this overlay" }),
|
|
28455
|
+
/* @__PURE__ */ jsx32(Text27, { children: " " }),
|
|
28456
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: "press ? or Esc to close" })
|
|
28567
28457
|
] }),
|
|
28568
|
-
validationError && /* @__PURE__ */
|
|
28569
|
-
/* @__PURE__ */
|
|
28458
|
+
validationError && /* @__PURE__ */ jsx32(Text27, { color: PALETTE.error, children: "\u2717 " + validationError }),
|
|
28459
|
+
/* @__PURE__ */ jsx32(Box26, { paddingTop: 1, children: /* @__PURE__ */ jsx32(Text27, { color: pendingDelete ? PALETTE.text : PALETTE.muted, children: modeLabel }) })
|
|
28570
28460
|
]
|
|
28571
28461
|
}
|
|
28572
28462
|
);
|
|
@@ -28623,23 +28513,23 @@ var init_wrap_text = __esm({
|
|
|
28623
28513
|
});
|
|
28624
28514
|
|
|
28625
28515
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/RationaleLine.tsx
|
|
28626
|
-
import { Box as
|
|
28627
|
-
import { jsx as
|
|
28516
|
+
import { Box as Box27, Text as Text28 } from "ink";
|
|
28517
|
+
import { jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
28628
28518
|
function RationaleLine({ line, active }) {
|
|
28629
28519
|
if (line.kind === "blank") {
|
|
28630
|
-
return /* @__PURE__ */
|
|
28520
|
+
return /* @__PURE__ */ jsx33(Box27, { children: /* @__PURE__ */ jsx33(Text28, { children: " " }) });
|
|
28631
28521
|
}
|
|
28632
28522
|
if (line.kind === "heading") {
|
|
28633
|
-
return /* @__PURE__ */
|
|
28523
|
+
return /* @__PURE__ */ jsx33(Box27, { children: /* @__PURE__ */ jsx33(Text28, { bold: true, color: active ? PALETTE.accent : PALETTE.muted, children: line.text }) });
|
|
28634
28524
|
}
|
|
28635
28525
|
if (line.kind === "label") {
|
|
28636
|
-
return /* @__PURE__ */
|
|
28637
|
-
line.prefix && /* @__PURE__ */
|
|
28638
|
-
/* @__PURE__ */
|
|
28639
|
-
line.suffix && /* @__PURE__ */
|
|
28526
|
+
return /* @__PURE__ */ jsxs27(Box27, { children: [
|
|
28527
|
+
line.prefix && /* @__PURE__ */ jsx33(Text28, { children: line.prefix }),
|
|
28528
|
+
/* @__PURE__ */ jsx33(Text28, { bold: true, color: active ? line.color : PALETTE.muted, children: line.text }),
|
|
28529
|
+
line.suffix && /* @__PURE__ */ jsx33(Text28, { color: PALETTE.muted, children: line.suffix })
|
|
28640
28530
|
] });
|
|
28641
28531
|
}
|
|
28642
|
-
return /* @__PURE__ */
|
|
28532
|
+
return /* @__PURE__ */ jsx33(Box27, { children: /* @__PURE__ */ jsx33(Text28, { color: !active || line.dim ? PALETTE.muted : void 0, children: line.text }) });
|
|
28643
28533
|
}
|
|
28644
28534
|
var init_RationaleLine = __esm({
|
|
28645
28535
|
"packages/experience-design-system-cli/src/tui/import/steps/09-review/components/RationaleLine.tsx"() {
|
|
@@ -28649,8 +28539,8 @@ var init_RationaleLine = __esm({
|
|
|
28649
28539
|
});
|
|
28650
28540
|
|
|
28651
28541
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ComponentRationalePanel.tsx
|
|
28652
|
-
import { Box as
|
|
28653
|
-
import { jsx as
|
|
28542
|
+
import { Box as Box28, Text as Text29 } from "ink";
|
|
28543
|
+
import { jsx as jsx34, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
28654
28544
|
function renderComponentRationaleLines(data, innerWidth) {
|
|
28655
28545
|
const out = [];
|
|
28656
28546
|
const pushSection = (heading, body) => {
|
|
@@ -28717,8 +28607,8 @@ function ComponentRationalePanel({
|
|
|
28717
28607
|
const overflowed = totalLines > contentHeight;
|
|
28718
28608
|
const visibleStart = totalLines === 0 ? 0 : scrollOffset + 1;
|
|
28719
28609
|
const visibleEnd = Math.min(totalLines, scrollOffset + contentHeight);
|
|
28720
|
-
return /* @__PURE__ */
|
|
28721
|
-
|
|
28610
|
+
return /* @__PURE__ */ jsxs28(
|
|
28611
|
+
Box28,
|
|
28722
28612
|
{
|
|
28723
28613
|
flexDirection: "column",
|
|
28724
28614
|
width,
|
|
@@ -28726,9 +28616,9 @@ function ComponentRationalePanel({
|
|
|
28726
28616
|
borderStyle: "single",
|
|
28727
28617
|
borderColor: active ? PALETTE.text : void 0,
|
|
28728
28618
|
children: [
|
|
28729
|
-
/* @__PURE__ */
|
|
28730
|
-
visible.map((line, i) => /* @__PURE__ */
|
|
28731
|
-
/* @__PURE__ */
|
|
28619
|
+
/* @__PURE__ */ jsx34(Box28, { children: /* @__PURE__ */ jsx34(Text29, { bold: true, color: active ? void 0 : PALETTE.muted, children: `Component rationale: ${data.name}` }) }),
|
|
28620
|
+
visible.map((line, i) => /* @__PURE__ */ jsx34(RationaleLine, { line, active }, i)),
|
|
28621
|
+
/* @__PURE__ */ jsx34(Box28, { children: overflowed ? /* @__PURE__ */ jsx34(Text29, { children: `${visibleStart}-${visibleEnd}/${totalLines} [\u2191\u2193] scroll [I/Esc] close` }) : /* @__PURE__ */ jsx34(Text29, { children: "[I/Esc] close" }) })
|
|
28732
28622
|
]
|
|
28733
28623
|
}
|
|
28734
28624
|
);
|
|
@@ -28745,10 +28635,10 @@ var init_ComponentRationalePanel = __esm({
|
|
|
28745
28635
|
});
|
|
28746
28636
|
|
|
28747
28637
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/HighlightedLine.tsx
|
|
28748
|
-
import { Text as
|
|
28749
|
-
import { Fragment as
|
|
28638
|
+
import { Text as Text30 } from "ink";
|
|
28639
|
+
import { Fragment as Fragment7, jsx as jsx35 } from "react/jsx-runtime";
|
|
28750
28640
|
function HighlightedLine({ parts }) {
|
|
28751
|
-
return /* @__PURE__ */
|
|
28641
|
+
return /* @__PURE__ */ jsx35(Fragment7, { children: parts.map((part, i) => /* @__PURE__ */ jsx35(Text30, { color: part.dim ? PALETTE.muted : part.color, children: part.text }, i)) });
|
|
28752
28642
|
}
|
|
28753
28643
|
var init_HighlightedLine = __esm({
|
|
28754
28644
|
"packages/experience-design-system-cli/src/tui/import/steps/09-review/components/HighlightedLine.tsx"() {
|
|
@@ -28758,8 +28648,8 @@ var init_HighlightedLine = __esm({
|
|
|
28758
28648
|
});
|
|
28759
28649
|
|
|
28760
28650
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ScrollablePanel.tsx
|
|
28761
|
-
import { Box as
|
|
28762
|
-
import { Fragment as
|
|
28651
|
+
import { Box as Box29, Text as Text31 } from "ink";
|
|
28652
|
+
import { Fragment as Fragment8, jsx as jsx36, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
28763
28653
|
function ScrollablePanel({
|
|
28764
28654
|
title,
|
|
28765
28655
|
width,
|
|
@@ -28772,12 +28662,12 @@ function ScrollablePanel({
|
|
|
28772
28662
|
children
|
|
28773
28663
|
}) {
|
|
28774
28664
|
const overflowed = totalLines > height;
|
|
28775
|
-
return /* @__PURE__ */
|
|
28776
|
-
/* @__PURE__ */
|
|
28777
|
-
/* @__PURE__ */
|
|
28778
|
-
overflowed && /* @__PURE__ */
|
|
28779
|
-
/* @__PURE__ */
|
|
28780
|
-
/* @__PURE__ */
|
|
28665
|
+
return /* @__PURE__ */ jsxs29(Box29, { flexDirection: "column", width, height: height + 2, borderStyle: "single", borderColor, children: [
|
|
28666
|
+
/* @__PURE__ */ jsxs29(Box29, { children: [
|
|
28667
|
+
/* @__PURE__ */ jsx36(Text31, { bold: true, color: active ? void 0 : PALETTE.muted, children: title }),
|
|
28668
|
+
overflowed && /* @__PURE__ */ jsxs29(Fragment8, { children: [
|
|
28669
|
+
/* @__PURE__ */ jsx36(Box29, { flexGrow: 1 }),
|
|
28670
|
+
/* @__PURE__ */ jsx36(Text31, { color: active ? void 0 : PALETTE.muted, children: `\u2195 ${visibleStart}-${visibleEnd}/${totalLines}` })
|
|
28781
28671
|
] })
|
|
28782
28672
|
] }),
|
|
28783
28673
|
children
|
|
@@ -28791,8 +28681,8 @@ var init_ScrollablePanel = __esm({
|
|
|
28791
28681
|
});
|
|
28792
28682
|
|
|
28793
28683
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/JsonPanel.tsx
|
|
28794
|
-
import { Box as
|
|
28795
|
-
import { jsx as
|
|
28684
|
+
import { Box as Box30 } from "ink";
|
|
28685
|
+
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
28796
28686
|
function highlightJson(line) {
|
|
28797
28687
|
const parts = [];
|
|
28798
28688
|
let remaining = line;
|
|
@@ -28830,7 +28720,7 @@ function highlightJson(line) {
|
|
|
28830
28720
|
parts.push({ text: remaining[0] });
|
|
28831
28721
|
remaining = remaining.slice(1);
|
|
28832
28722
|
}
|
|
28833
|
-
return /* @__PURE__ */
|
|
28723
|
+
return /* @__PURE__ */ jsx37(HighlightedLine, { parts });
|
|
28834
28724
|
}
|
|
28835
28725
|
function truncateLine(line, maxWidth) {
|
|
28836
28726
|
if (line.length <= maxWidth) return line;
|
|
@@ -28843,7 +28733,7 @@ function JsonPanel({ label, value, scrollOffset, width, height, active }) {
|
|
|
28843
28733
|
const totalLines = allLines.length;
|
|
28844
28734
|
const visibleStart = totalLines === 0 ? 0 : scrollOffset + 1;
|
|
28845
28735
|
const visibleEnd = Math.min(totalLines, scrollOffset + height);
|
|
28846
|
-
return /* @__PURE__ */
|
|
28736
|
+
return /* @__PURE__ */ jsx37(
|
|
28847
28737
|
ScrollablePanel,
|
|
28848
28738
|
{
|
|
28849
28739
|
title: label,
|
|
@@ -28856,7 +28746,7 @@ function JsonPanel({ label, value, scrollOffset, width, height, active }) {
|
|
|
28856
28746
|
borderColor: active ? "white" : void 0,
|
|
28857
28747
|
children: visibleLines.map((line, i) => {
|
|
28858
28748
|
const truncated = truncateLine(line, innerWidth);
|
|
28859
|
-
return /* @__PURE__ */
|
|
28749
|
+
return /* @__PURE__ */ jsx37(Box30, { children: highlightJson(truncated) }, i);
|
|
28860
28750
|
})
|
|
28861
28751
|
}
|
|
28862
28752
|
);
|
|
@@ -28870,7 +28760,7 @@ var init_JsonPanel = __esm({
|
|
|
28870
28760
|
});
|
|
28871
28761
|
|
|
28872
28762
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/RationalePanel.tsx
|
|
28873
|
-
import { jsx as
|
|
28763
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
28874
28764
|
function renderRationaleLines(rows, innerWidth) {
|
|
28875
28765
|
const out = [];
|
|
28876
28766
|
rows.forEach((row, idx) => {
|
|
@@ -28903,7 +28793,7 @@ function RationalePanel({
|
|
|
28903
28793
|
const visible = allLines.slice(scrollOffset, scrollOffset + height);
|
|
28904
28794
|
const visibleStart = totalLines === 0 ? 0 : scrollOffset + 1;
|
|
28905
28795
|
const visibleEnd = Math.min(totalLines, scrollOffset + height);
|
|
28906
|
-
return /* @__PURE__ */
|
|
28796
|
+
return /* @__PURE__ */ jsx38(
|
|
28907
28797
|
ScrollablePanel,
|
|
28908
28798
|
{
|
|
28909
28799
|
title: `RATIONALE \u2014 ${componentName}`,
|
|
@@ -28914,7 +28804,7 @@ function RationalePanel({
|
|
|
28914
28804
|
visibleStart,
|
|
28915
28805
|
visibleEnd,
|
|
28916
28806
|
borderColor: active ? PALETTE.text : void 0,
|
|
28917
|
-
children: visible.map((line, i) => /* @__PURE__ */
|
|
28807
|
+
children: visible.map((line, i) => /* @__PURE__ */ jsx38(RationaleLine, { line, active }, i))
|
|
28918
28808
|
}
|
|
28919
28809
|
);
|
|
28920
28810
|
}
|
|
@@ -28930,8 +28820,8 @@ var init_RationalePanel = __esm({
|
|
|
28930
28820
|
|
|
28931
28821
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/TokenReviewPanel.tsx
|
|
28932
28822
|
import figures7 from "figures";
|
|
28933
|
-
import { Box as
|
|
28934
|
-
import { jsx as
|
|
28823
|
+
import { Box as Box31, Text as Text32 } from "ink";
|
|
28824
|
+
import { jsx as jsx39, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
28935
28825
|
function TokenReviewPanel({
|
|
28936
28826
|
componentName,
|
|
28937
28827
|
suggestions,
|
|
@@ -28950,8 +28840,8 @@ function TokenReviewPanel({
|
|
|
28950
28840
|
const scrollStart = Math.max(0, Math.min(editCursor - Math.floor(visibleCount / 2), maxStart));
|
|
28951
28841
|
const visiblePaths = current.paths.slice(scrollStart, scrollStart + visibleCount);
|
|
28952
28842
|
const rangeLabel = current.paths.length === 0 ? "no compatible tokens" : `${scrollStart + 1}-${scrollStart + visiblePaths.length} of ${current.paths.length}`;
|
|
28953
|
-
return /* @__PURE__ */
|
|
28954
|
-
|
|
28843
|
+
return /* @__PURE__ */ jsxs30(
|
|
28844
|
+
Box31,
|
|
28955
28845
|
{
|
|
28956
28846
|
flexDirection: "column",
|
|
28957
28847
|
width,
|
|
@@ -28959,16 +28849,16 @@ function TokenReviewPanel({
|
|
|
28959
28849
|
borderStyle: "single",
|
|
28960
28850
|
borderColor: active ? PALETTE.text : void 0,
|
|
28961
28851
|
children: [
|
|
28962
|
-
/* @__PURE__ */
|
|
28963
|
-
/* @__PURE__ */
|
|
28964
|
-
/* @__PURE__ */
|
|
28965
|
-
current.paths.length === 0 && /* @__PURE__ */
|
|
28852
|
+
/* @__PURE__ */ jsx39(Text32, { bold: true, color: active ? void 0 : PALETTE.muted, wrap: "truncate", children: `Review mapped tokens \u2014 ${componentName} \xB7 ${current.propName}${current.kinds.length > 0 ? ` (${current.kinds.join(", ")})` : ""}` }),
|
|
28853
|
+
/* @__PURE__ */ jsx39(Text32, { color: PALETTE.muted, wrap: "truncate", children: `Tick the tokens this property may use (${rangeLabel}).` }),
|
|
28854
|
+
/* @__PURE__ */ jsx39(Text32, { children: " " }),
|
|
28855
|
+
current.paths.length === 0 && /* @__PURE__ */ jsx39(Text32, { color: PALETTE.muted, children: "(no compatible tokens found for this token kind)" }),
|
|
28966
28856
|
visiblePaths.map((path5, i) => {
|
|
28967
28857
|
const pathIndex = scrollStart + i;
|
|
28968
28858
|
const checked = editSelection.has(path5);
|
|
28969
28859
|
const focused = pathIndex === editCursor;
|
|
28970
|
-
return /* @__PURE__ */
|
|
28971
|
-
|
|
28860
|
+
return /* @__PURE__ */ jsx39(Box31, { children: /* @__PURE__ */ jsx39(
|
|
28861
|
+
Text32,
|
|
28972
28862
|
{
|
|
28973
28863
|
color: focused ? PALETTE.accent : active ? void 0 : PALETTE.muted,
|
|
28974
28864
|
bold: focused,
|
|
@@ -28977,15 +28867,15 @@ function TokenReviewPanel({
|
|
|
28977
28867
|
}
|
|
28978
28868
|
) }, path5);
|
|
28979
28869
|
}),
|
|
28980
|
-
/* @__PURE__ */
|
|
28981
|
-
/* @__PURE__ */
|
|
28982
|
-
/* @__PURE__ */
|
|
28870
|
+
/* @__PURE__ */ jsx39(Text32, { children: " " }),
|
|
28871
|
+
/* @__PURE__ */ jsx39(Text32, { color: PALETTE.muted, wrap: "truncate", children: "[\u2191/\u2193] move [Space] toggle" }),
|
|
28872
|
+
/* @__PURE__ */ jsx39(Text32, { color: PALETTE.muted, wrap: "truncate", children: "[Ctrl+S] save [Esc] cancel" })
|
|
28983
28873
|
]
|
|
28984
28874
|
}
|
|
28985
28875
|
);
|
|
28986
28876
|
}
|
|
28987
|
-
return /* @__PURE__ */
|
|
28988
|
-
|
|
28877
|
+
return /* @__PURE__ */ jsxs30(
|
|
28878
|
+
Box31,
|
|
28989
28879
|
{
|
|
28990
28880
|
flexDirection: "column",
|
|
28991
28881
|
width,
|
|
@@ -28993,33 +28883,33 @@ function TokenReviewPanel({
|
|
|
28993
28883
|
borderStyle: "single",
|
|
28994
28884
|
borderColor: active ? PALETTE.text : void 0,
|
|
28995
28885
|
children: [
|
|
28996
|
-
/* @__PURE__ */
|
|
28997
|
-
/* @__PURE__ */
|
|
28998
|
-
/* @__PURE__ */
|
|
28999
|
-
/* @__PURE__ */
|
|
29000
|
-
suggestions.length === 0 && /* @__PURE__ */
|
|
28886
|
+
/* @__PURE__ */ jsx39(Text32, { bold: true, color: active ? void 0 : PALETTE.muted, children: `Review mapped tokens \u2014 ${componentName}` }),
|
|
28887
|
+
/* @__PURE__ */ jsx39(Text32, { color: PALETTE.muted, wrap: "truncate", children: `${componentName} has ${suggestions.length} design ${suggestions.length === 1 ? "prop" : "props"} of type token. Select which tokens are allowed for each property.` }),
|
|
28888
|
+
/* @__PURE__ */ jsx39(Text32, { color: PALETTE.muted, wrap: "truncate", children: "Suggested tokens come from the agent. Allowed tokens are what editors can pick in Contentful." }),
|
|
28889
|
+
/* @__PURE__ */ jsx39(Text32, { children: " " }),
|
|
28890
|
+
suggestions.length === 0 && /* @__PURE__ */ jsx39(Text32, { color: PALETTE.muted, children: "(no token suggestions for this component)" }),
|
|
29001
28891
|
suggestions.map((s, i) => {
|
|
29002
28892
|
const focused = i === selectedRow;
|
|
29003
|
-
return /* @__PURE__ */
|
|
29004
|
-
/* @__PURE__ */
|
|
29005
|
-
/* @__PURE__ */
|
|
29006
|
-
|
|
28893
|
+
return /* @__PURE__ */ jsxs30(Box31, { flexDirection: "column", children: [
|
|
28894
|
+
/* @__PURE__ */ jsx39(Box31, { children: /* @__PURE__ */ jsx39(Text32, { color: focused ? PALETTE.accent : active ? void 0 : PALETTE.muted, bold: focused, children: `${focused ? figures7.pointer : " "} ${s.propName}${s.kinds.length > 0 ? ` (${s.kinds.join(", ")})` : ""}` }) }),
|
|
28895
|
+
/* @__PURE__ */ jsx39(
|
|
28896
|
+
Text32,
|
|
29007
28897
|
{
|
|
29008
28898
|
color: PALETTE.muted,
|
|
29009
28899
|
children: ` suggested: ${s.suggested.length > 0 ? s.suggested.join(", ") : "none"}`
|
|
29010
28900
|
}
|
|
29011
28901
|
),
|
|
29012
|
-
/* @__PURE__ */
|
|
29013
|
-
|
|
28902
|
+
/* @__PURE__ */ jsx39(
|
|
28903
|
+
Text32,
|
|
29014
28904
|
{
|
|
29015
28905
|
color: PALETTE.muted,
|
|
29016
28906
|
children: ` allowed: ${s.allowed.length > 0 ? s.allowed.join(", ") : "none (any token)"}`
|
|
29017
28907
|
}
|
|
29018
28908
|
),
|
|
29019
|
-
/* @__PURE__ */
|
|
28909
|
+
/* @__PURE__ */ jsx39(Text32, { children: " " })
|
|
29020
28910
|
] }, s.propName);
|
|
29021
28911
|
}),
|
|
29022
|
-
/* @__PURE__ */
|
|
28912
|
+
/* @__PURE__ */ jsx39(Text32, { color: PALETTE.muted, children: "[\u2191/\u2193] move [Enter] edit allowed tokens [Esc] close" })
|
|
29023
28913
|
]
|
|
29024
28914
|
}
|
|
29025
28915
|
);
|
|
@@ -29032,8 +28922,8 @@ var init_TokenReviewPanel = __esm({
|
|
|
29032
28922
|
});
|
|
29033
28923
|
|
|
29034
28924
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/review-details-panel.tsx
|
|
29035
|
-
import { Text as
|
|
29036
|
-
import { Fragment as
|
|
28925
|
+
import { Text as Text33 } from "ink";
|
|
28926
|
+
import { Fragment as Fragment9, jsx as jsx40, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
29037
28927
|
function ReviewDetailsPanel({
|
|
29038
28928
|
selectedKey,
|
|
29039
28929
|
panelOpen,
|
|
@@ -29068,7 +28958,7 @@ function ReviewDetailsPanel({
|
|
|
29068
28958
|
rationale: s.rationale ?? ""
|
|
29069
28959
|
}))
|
|
29070
28960
|
];
|
|
29071
|
-
return /* @__PURE__ */
|
|
28961
|
+
return /* @__PURE__ */ jsx40(
|
|
29072
28962
|
RationalePanel,
|
|
29073
28963
|
{
|
|
29074
28964
|
componentName: componentRationale?.name ?? selectedKey,
|
|
@@ -29081,7 +28971,7 @@ function ReviewDetailsPanel({
|
|
|
29081
28971
|
);
|
|
29082
28972
|
}
|
|
29083
28973
|
if (panelOpen === "component-rationale") {
|
|
29084
|
-
return /* @__PURE__ */
|
|
28974
|
+
return /* @__PURE__ */ jsx40(
|
|
29085
28975
|
ComponentRationalePanel,
|
|
29086
28976
|
{
|
|
29087
28977
|
data: componentRationale ?? {
|
|
@@ -29106,14 +28996,14 @@ function ReviewDetailsPanel({
|
|
|
29106
28996
|
const headerPath = path5 ?? "<unknown source path>";
|
|
29107
28997
|
const sourceLineCount = Math.max(1, height - 4);
|
|
29108
28998
|
const lines = source ? source.split("\n").slice(panelScrollOffset, panelScrollOffset + sourceLineCount) : [];
|
|
29109
|
-
return /* @__PURE__ */
|
|
29110
|
-
/* @__PURE__ */
|
|
29111
|
-
source ? lines.map((line, index) => /* @__PURE__ */
|
|
29112
|
-
/* @__PURE__ */
|
|
28999
|
+
return /* @__PURE__ */ jsxs31(FixedPanel, { width, height, borderStyle: "single", borderColor: sourceBorderColor, paddingLeft: 1, children: [
|
|
29000
|
+
/* @__PURE__ */ jsx40(Text33, { color: PALETTE.muted, bold: true, wrap: "truncate-end", children: `source: ${headerPath}` }),
|
|
29001
|
+
source ? lines.map((line, index) => /* @__PURE__ */ jsx40(Text33, { color: PALETTE.muted, wrap: "truncate-end", children: line }, `source-line-${index}`)) : /* @__PURE__ */ jsx40(Text33, { color: PALETTE.muted, children: "(no source captured)" }),
|
|
29002
|
+
/* @__PURE__ */ jsx40(Text33, { color: PALETTE.muted, wrap: "truncate-end", children: "[s/Esc] close" })
|
|
29113
29003
|
] });
|
|
29114
29004
|
}
|
|
29115
29005
|
if (panelOpen === "token-review") {
|
|
29116
|
-
return /* @__PURE__ */
|
|
29006
|
+
return /* @__PURE__ */ jsx40(
|
|
29117
29007
|
TokenReviewPanel,
|
|
29118
29008
|
{
|
|
29119
29009
|
componentName: selectedKey,
|
|
@@ -29129,7 +29019,7 @@ function ReviewDetailsPanel({
|
|
|
29129
29019
|
);
|
|
29130
29020
|
}
|
|
29131
29021
|
if (showJson) {
|
|
29132
|
-
return /* @__PURE__ */
|
|
29022
|
+
return /* @__PURE__ */ jsx40(
|
|
29133
29023
|
JsonPanel,
|
|
29134
29024
|
{
|
|
29135
29025
|
label: "GENERATED DEFINITION (read-only)",
|
|
@@ -29141,7 +29031,7 @@ function ReviewDetailsPanel({
|
|
|
29141
29031
|
}
|
|
29142
29032
|
);
|
|
29143
29033
|
}
|
|
29144
|
-
return /* @__PURE__ */
|
|
29034
|
+
return /* @__PURE__ */ jsx40(Fragment9, { children: editor });
|
|
29145
29035
|
}
|
|
29146
29036
|
var init_review_details_panel = __esm({
|
|
29147
29037
|
"packages/experience-design-system-cli/src/tui/import/steps/09-review/review-details-panel.tsx"() {
|
|
@@ -29156,7 +29046,7 @@ var init_review_details_panel = __esm({
|
|
|
29156
29046
|
});
|
|
29157
29047
|
|
|
29158
29048
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ReviewDetailsEditor.tsx
|
|
29159
|
-
import { jsx as
|
|
29049
|
+
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
29160
29050
|
import { createElement } from "react";
|
|
29161
29051
|
function toFieldEditorMetadata(reviewMetadata) {
|
|
29162
29052
|
if (!reviewMetadata) return void 0;
|
|
@@ -29190,7 +29080,7 @@ function ReviewDetailsEditor({
|
|
|
29190
29080
|
jsonScrollOffset,
|
|
29191
29081
|
currentTokenSuggestions
|
|
29192
29082
|
} = reviewEditor;
|
|
29193
|
-
return /* @__PURE__ */
|
|
29083
|
+
return /* @__PURE__ */ jsx41(
|
|
29194
29084
|
ReviewDetailsPanel,
|
|
29195
29085
|
{
|
|
29196
29086
|
selectedKey,
|
|
@@ -29237,8 +29127,8 @@ var init_ReviewDetailsEditor = __esm({
|
|
|
29237
29127
|
});
|
|
29238
29128
|
|
|
29239
29129
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ReviewComponentPanel.tsx
|
|
29240
|
-
import { Box as
|
|
29241
|
-
import { Fragment as
|
|
29130
|
+
import { Box as Box32, Text as Text34 } from "ink";
|
|
29131
|
+
import { Fragment as Fragment10, jsx as jsx42, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
29242
29132
|
function buildReviewFieldEditor(reviewEditor, selectedJson, onExit, overrides = {}) {
|
|
29243
29133
|
return {
|
|
29244
29134
|
value: reviewEditor.draftValue || selectedJson,
|
|
@@ -29278,24 +29168,24 @@ function ReviewEmptyComponentsWarning({
|
|
|
29278
29168
|
hidden
|
|
29279
29169
|
}) {
|
|
29280
29170
|
if (hidden || count === 0) return null;
|
|
29281
|
-
return /* @__PURE__ */
|
|
29171
|
+
return /* @__PURE__ */ jsx42(Text34, { color: PALETTE.warning, children: `\u26A0 ${count} component${count === 1 ? "" : "s"} had no classifiable props \u2014 review with care` });
|
|
29282
29172
|
}
|
|
29283
29173
|
function ReviewNoSelection() {
|
|
29284
|
-
return /* @__PURE__ */
|
|
29174
|
+
return /* @__PURE__ */ jsx42(Box32, { flexGrow: 1, paddingLeft: 1, flexDirection: "column", children: /* @__PURE__ */ jsx42(Text34, { color: PALETTE.muted, children: "No component selected" }) });
|
|
29285
29175
|
}
|
|
29286
29176
|
function ReviewFinalizeError({
|
|
29287
29177
|
message,
|
|
29288
29178
|
hidden
|
|
29289
29179
|
}) {
|
|
29290
29180
|
if (hidden || !message) return null;
|
|
29291
|
-
return /* @__PURE__ */
|
|
29181
|
+
return /* @__PURE__ */ jsx42(Text34, { color: PALETTE.error, children: `\u26A0 ${message}` });
|
|
29292
29182
|
}
|
|
29293
29183
|
function ReviewPanelFooter({
|
|
29294
29184
|
reviewEditor,
|
|
29295
29185
|
sidebarFocused,
|
|
29296
29186
|
sidebarFooter
|
|
29297
29187
|
}) {
|
|
29298
|
-
return /* @__PURE__ */
|
|
29188
|
+
return /* @__PURE__ */ jsx42(Fragment10, { children: reviewEditor.panelOpen === "token-review" ? "" : sidebarFocused ? sidebarFooter : reviewEditor.showJson ? " [\u2191\u2193] scroll [Ctrl+u/d] half-page [gg/G] top/bottom [Tab] focus list" : " [Tab] focus list [Enter] edit fields" + (reviewEditor.currentTokenSuggestions().length > 0 ? " [t] review mapped tokens" : "") });
|
|
29299
29189
|
}
|
|
29300
29190
|
function ReviewComponentTitle({
|
|
29301
29191
|
selectedKey,
|
|
@@ -29303,10 +29193,10 @@ function ReviewComponentTitle({
|
|
|
29303
29193
|
slotCount,
|
|
29304
29194
|
sidebarFocused
|
|
29305
29195
|
}) {
|
|
29306
|
-
return /* @__PURE__ */
|
|
29307
|
-
/* @__PURE__ */
|
|
29308
|
-
/* @__PURE__ */
|
|
29309
|
-
/* @__PURE__ */
|
|
29196
|
+
return /* @__PURE__ */ jsxs32(Box32, { paddingLeft: 2, paddingBottom: 1, children: [
|
|
29197
|
+
/* @__PURE__ */ jsx42(Text34, { bold: true, wrap: "truncate-end", children: selectedKey }),
|
|
29198
|
+
/* @__PURE__ */ jsx42(Box32, { flexGrow: 1 }),
|
|
29199
|
+
/* @__PURE__ */ jsxs32(Text34, { color: PALETTE.muted, wrap: "truncate-end", children: [
|
|
29310
29200
|
propCount,
|
|
29311
29201
|
" prop",
|
|
29312
29202
|
propCount !== 1 ? "s" : "",
|
|
@@ -29335,8 +29225,8 @@ function ReviewComponentPanel({
|
|
|
29335
29225
|
const slotCount = selectedEntry.$slots ? Object.keys(selectedEntry.$slots).length : 0;
|
|
29336
29226
|
const contentHeight = Math.max(1, height - 2);
|
|
29337
29227
|
const contentWidth = Math.max(1, width - 1);
|
|
29338
|
-
return /* @__PURE__ */
|
|
29339
|
-
/* @__PURE__ */
|
|
29228
|
+
return /* @__PURE__ */ jsx42(FixedPanel, { width, height, borderStyle: void 0, paddingLeft: 1, children: /* @__PURE__ */ jsxs32(Box32, { flexDirection: "column", width: contentWidth, height, flexShrink: 0, overflowY: "hidden", children: [
|
|
29229
|
+
/* @__PURE__ */ jsx42(Box32, { width: contentWidth, height: contentHeight, flexShrink: 0, overflowY: "hidden", children: /* @__PURE__ */ jsx42(
|
|
29340
29230
|
ReviewDetailsEditor,
|
|
29341
29231
|
{
|
|
29342
29232
|
selectedKey,
|
|
@@ -29349,7 +29239,7 @@ function ReviewComponentPanel({
|
|
|
29349
29239
|
jsonValue,
|
|
29350
29240
|
sidebarFocused,
|
|
29351
29241
|
fieldEditor,
|
|
29352
|
-
header: /* @__PURE__ */
|
|
29242
|
+
header: /* @__PURE__ */ jsx42(
|
|
29353
29243
|
ReviewComponentTitle,
|
|
29354
29244
|
{
|
|
29355
29245
|
selectedKey,
|
|
@@ -29360,8 +29250,8 @@ function ReviewComponentPanel({
|
|
|
29360
29250
|
)
|
|
29361
29251
|
}
|
|
29362
29252
|
) }),
|
|
29363
|
-
/* @__PURE__ */
|
|
29364
|
-
/* @__PURE__ */
|
|
29253
|
+
/* @__PURE__ */ jsx42(Box32, { width: contentWidth, height: 1, flexShrink: 0, children: /* @__PURE__ */ jsx42(Text34, { color: saveError ? PALETTE.error : void 0, wrap: "truncate-end", children: saveError ? "\u2717 " + saveError : " " }) }),
|
|
29254
|
+
/* @__PURE__ */ jsx42(Box32, { width: contentWidth, height: 1, flexShrink: 0, children: /* @__PURE__ */ jsx42(Text34, { color: PALETTE.muted, wrap: "truncate-end", children: /* @__PURE__ */ jsx42(
|
|
29365
29255
|
ReviewPanelFooter,
|
|
29366
29256
|
{
|
|
29367
29257
|
reviewEditor,
|
|
@@ -29382,8 +29272,8 @@ var init_ReviewComponentPanel = __esm({
|
|
|
29382
29272
|
});
|
|
29383
29273
|
|
|
29384
29274
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ReviewStatus.tsx
|
|
29385
|
-
import { Box as
|
|
29386
|
-
import { jsx as
|
|
29275
|
+
import { Box as Box33, Text as Text35 } from "ink";
|
|
29276
|
+
import { jsx as jsx43, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
29387
29277
|
function countReviewStatuses(entries) {
|
|
29388
29278
|
return entries.reduce(
|
|
29389
29279
|
(counts, entry) => {
|
|
@@ -29396,13 +29286,13 @@ function countReviewStatuses(entries) {
|
|
|
29396
29286
|
);
|
|
29397
29287
|
}
|
|
29398
29288
|
function ReviewLoadingState() {
|
|
29399
|
-
return /* @__PURE__ */
|
|
29289
|
+
return /* @__PURE__ */ jsx43(Box33, { paddingX: 2, paddingY: 1, children: /* @__PURE__ */ jsx43(Text35, { color: PALETTE.muted, children: "Loading generated definitions..." }) });
|
|
29400
29290
|
}
|
|
29401
29291
|
function ReviewLoadError({ message }) {
|
|
29402
|
-
return /* @__PURE__ */
|
|
29403
|
-
/* @__PURE__ */
|
|
29404
|
-
/* @__PURE__ */
|
|
29405
|
-
/* @__PURE__ */
|
|
29292
|
+
return /* @__PURE__ */ jsxs33(Box33, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
29293
|
+
/* @__PURE__ */ jsx43(Text35, { color: PALETTE.error, children: message }),
|
|
29294
|
+
/* @__PURE__ */ jsx43(Text35, { children: " " }),
|
|
29295
|
+
/* @__PURE__ */ jsx43(ControlHints, { hints: [{ keys: "q / Enter / Esc", label: "Quit" }] })
|
|
29406
29296
|
] });
|
|
29407
29297
|
}
|
|
29408
29298
|
var init_ReviewStatus = __esm({
|
|
@@ -29626,8 +29516,8 @@ var init_run_live_preview = __esm({
|
|
|
29626
29516
|
});
|
|
29627
29517
|
|
|
29628
29518
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/FinalizeDialog.tsx
|
|
29629
|
-
import { Box as
|
|
29630
|
-
import { Fragment as
|
|
29519
|
+
import { Box as Box34, Text as Text36 } from "ink";
|
|
29520
|
+
import { Fragment as Fragment11, jsx as jsx44, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
29631
29521
|
function FinalizeDialog({
|
|
29632
29522
|
accepted,
|
|
29633
29523
|
rejected,
|
|
@@ -29655,51 +29545,51 @@ function FinalizeDialog({
|
|
|
29655
29545
|
const windowed = removed.slice(offset, offset + FINALIZE_REMOVED_WINDOW);
|
|
29656
29546
|
const hasMoreBelow = offset + FINALIZE_REMOVED_WINDOW < removed.length;
|
|
29657
29547
|
const hasMoreAbove = offset > 0;
|
|
29658
|
-
return /* @__PURE__ */
|
|
29659
|
-
/* @__PURE__ */
|
|
29660
|
-
/* @__PURE__ */
|
|
29661
|
-
/* @__PURE__ */
|
|
29662
|
-
/* @__PURE__ */
|
|
29548
|
+
return /* @__PURE__ */ jsx44(Box34, { width: "100%", paddingX: 2, children: /* @__PURE__ */ jsxs34(Box34, { flexDirection: "column", alignItems: "flex-start", children: [
|
|
29549
|
+
/* @__PURE__ */ jsx44(Text36, { bold: true, children: "Finalize" }),
|
|
29550
|
+
/* @__PURE__ */ jsx44(Text36, { children: " " }),
|
|
29551
|
+
/* @__PURE__ */ jsxs34(Text36, { children: [
|
|
29552
|
+
/* @__PURE__ */ jsxs34(Text36, { color: PALETTE.success, children: [
|
|
29663
29553
|
accepted,
|
|
29664
29554
|
" accepted"
|
|
29665
29555
|
] }),
|
|
29666
|
-
/* @__PURE__ */
|
|
29667
|
-
/* @__PURE__ */
|
|
29556
|
+
/* @__PURE__ */ jsx44(Text36, { children: " \xB7 " }),
|
|
29557
|
+
/* @__PURE__ */ jsxs34(Text36, { color: PALETTE.error, children: [
|
|
29668
29558
|
rejected,
|
|
29669
29559
|
" rejected"
|
|
29670
29560
|
] }),
|
|
29671
|
-
/* @__PURE__ */
|
|
29672
|
-
/* @__PURE__ */
|
|
29561
|
+
/* @__PURE__ */ jsx44(Text36, { children: " \xB7 " }),
|
|
29562
|
+
/* @__PURE__ */ jsxs34(Text36, { color: PALETTE.muted, children: [
|
|
29673
29563
|
needsReview,
|
|
29674
29564
|
" unresolved"
|
|
29675
29565
|
] })
|
|
29676
29566
|
] }),
|
|
29677
|
-
/* @__PURE__ */
|
|
29678
|
-
noneAccepted && /* @__PURE__ */
|
|
29679
|
-
/* @__PURE__ */
|
|
29680
|
-
/* @__PURE__ */
|
|
29681
|
-
/* @__PURE__ */
|
|
29567
|
+
/* @__PURE__ */ jsx44(Text36, { children: " " }),
|
|
29568
|
+
noneAccepted && /* @__PURE__ */ jsxs34(Fragment11, { children: [
|
|
29569
|
+
/* @__PURE__ */ jsx44(Text36, { bold: true, color: PALETTE.warning, children: "\u26A0 No components are accepted \u2014 nothing will be pushed." }),
|
|
29570
|
+
/* @__PURE__ */ jsx44(Text36, { color: PALETTE.warning, children: "Accept at least one component ([a] a row, [A] accept all) to push." }),
|
|
29571
|
+
/* @__PURE__ */ jsx44(Text36, { children: " " })
|
|
29682
29572
|
] }),
|
|
29683
|
-
!allResolved && /* @__PURE__ */
|
|
29684
|
-
/* @__PURE__ */
|
|
29685
|
-
/* @__PURE__ */
|
|
29686
|
-
/* @__PURE__ */
|
|
29573
|
+
!allResolved && /* @__PURE__ */ jsxs34(Fragment11, { children: [
|
|
29574
|
+
/* @__PURE__ */ jsx44(Text36, { color: PALETTE.warning, children: "\u26A0 " + needsReview + " unresolved component" + (needsReview === 1 ? "" : "s") + " will not be pushed." }),
|
|
29575
|
+
/* @__PURE__ */ jsx44(Text36, { color: PALETTE.warning, children: "Only explicitly accepted components ship." }),
|
|
29576
|
+
/* @__PURE__ */ jsx44(Text36, { children: " " })
|
|
29687
29577
|
] }),
|
|
29688
|
-
/* @__PURE__ */
|
|
29689
|
-
previewStatus === "running" ? /* @__PURE__ */
|
|
29690
|
-
/* @__PURE__ */
|
|
29578
|
+
/* @__PURE__ */ jsxs34(Box34, { flexDirection: "column", height: 2, children: [
|
|
29579
|
+
previewStatus === "running" ? /* @__PURE__ */ jsx44(Text36, { color: PALETTE.muted, children: "Previewing deletions against the target space\u2026" }) : previewStatus === "error" ? /* @__PURE__ */ jsx44(Text36, { color: PALETTE.warning, children: "\u26A0 Could not preview deletions (the push will still proceed)." }) : /* @__PURE__ */ jsx44(Text36, { children: " " }),
|
|
29580
|
+
/* @__PURE__ */ jsx44(Text36, { children: " " })
|
|
29691
29581
|
] }),
|
|
29692
|
-
previewStatus === "done" && removed.length > 0 && /* @__PURE__ */
|
|
29693
|
-
/* @__PURE__ */
|
|
29694
|
-
hasMoreAbove && /* @__PURE__ */
|
|
29695
|
-
windowed.map((rc) => /* @__PURE__ */
|
|
29696
|
-
hasMoreBelow && /* @__PURE__ */
|
|
29697
|
-
removed.length > FINALIZE_REMOVED_WINDOW && /* @__PURE__ */
|
|
29698
|
-
/* @__PURE__ */
|
|
29582
|
+
previewStatus === "done" && removed.length > 0 && /* @__PURE__ */ jsxs34(Fragment11, { children: [
|
|
29583
|
+
/* @__PURE__ */ jsx44(Text36, { bold: true, color: PALETTE.error, children: removedComponentsHeader(removed.length, false) }),
|
|
29584
|
+
hasMoreAbove && /* @__PURE__ */ jsx44(Text36, { color: PALETTE.muted, children: "\u2191 more above" }),
|
|
29585
|
+
windowed.map((rc) => /* @__PURE__ */ jsx44(Text36, { color: PALETTE.error, children: removedComponentLine(rc) }, rc.id)),
|
|
29586
|
+
hasMoreBelow && /* @__PURE__ */ jsx44(Text36, { color: PALETTE.muted, children: "\u2193 more below" }),
|
|
29587
|
+
removed.length > FINALIZE_REMOVED_WINDOW && /* @__PURE__ */ jsx44(Text36, { children: "[\u2191\u2193] scroll deletions" }),
|
|
29588
|
+
/* @__PURE__ */ jsx44(Text36, { children: " " })
|
|
29699
29589
|
] }),
|
|
29700
|
-
/* @__PURE__ */
|
|
29701
|
-
/* @__PURE__ */
|
|
29702
|
-
/* @__PURE__ */
|
|
29590
|
+
/* @__PURE__ */ jsx44(Text36, { children: noneAccepted ? "Confirm exit with nothing accepted?" : allResolved ? "Save decisions and exit? All components resolved." : "Save decisions and exit?" }),
|
|
29591
|
+
/* @__PURE__ */ jsx44(Text36, { children: " " }),
|
|
29592
|
+
/* @__PURE__ */ jsx44(
|
|
29703
29593
|
ControlHints,
|
|
29704
29594
|
{
|
|
29705
29595
|
hints: [
|
|
@@ -30167,8 +30057,8 @@ var init_use_review_surface_state = __esm({
|
|
|
30167
30057
|
});
|
|
30168
30058
|
|
|
30169
30059
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/QuitDialog.tsx
|
|
30170
|
-
import { Box as
|
|
30171
|
-
import { Fragment as
|
|
30060
|
+
import { Box as Box35, Text as Text37 } from "ink";
|
|
30061
|
+
import { Fragment as Fragment12, jsx as jsx45, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
30172
30062
|
function QuitDialog({ hasUnsavedDrafts, onConfirm, onCancel }) {
|
|
30173
30063
|
useImmediateInput((input, key) => {
|
|
30174
30064
|
if (input === "y" || key.return) {
|
|
@@ -30177,16 +30067,16 @@ function QuitDialog({ hasUnsavedDrafts, onConfirm, onCancel }) {
|
|
|
30177
30067
|
onCancel();
|
|
30178
30068
|
}
|
|
30179
30069
|
});
|
|
30180
|
-
return /* @__PURE__ */
|
|
30181
|
-
/* @__PURE__ */
|
|
30182
|
-
/* @__PURE__ */
|
|
30183
|
-
hasUnsavedDrafts ? /* @__PURE__ */
|
|
30184
|
-
/* @__PURE__ */
|
|
30185
|
-
/* @__PURE__ */
|
|
30186
|
-
/* @__PURE__ */
|
|
30187
|
-
] }) : /* @__PURE__ */
|
|
30188
|
-
/* @__PURE__ */
|
|
30189
|
-
/* @__PURE__ */
|
|
30070
|
+
return /* @__PURE__ */ jsxs35(Box35, { flexDirection: "column", borderStyle: "round", padding: 1, width: 50, children: [
|
|
30071
|
+
/* @__PURE__ */ jsx45(Text37, { bold: true, children: "\u2500".repeat(19) + " Quit " + "\u2500".repeat(19) }),
|
|
30072
|
+
/* @__PURE__ */ jsx45(Text37, { children: " " }),
|
|
30073
|
+
hasUnsavedDrafts ? /* @__PURE__ */ jsxs35(Fragment12, { children: [
|
|
30074
|
+
/* @__PURE__ */ jsx45(Text37, { children: "You have unsaved draft edits." }),
|
|
30075
|
+
/* @__PURE__ */ jsx45(Text37, { children: "Session state is preserved \u2014 you can resume" }),
|
|
30076
|
+
/* @__PURE__ */ jsx45(Text37, { children: "by running the same review command again." })
|
|
30077
|
+
] }) : /* @__PURE__ */ jsx45(Text37, { children: "Session is saved. Quit without finalizing?" }),
|
|
30078
|
+
/* @__PURE__ */ jsx45(Text37, { children: " " }),
|
|
30079
|
+
/* @__PURE__ */ jsx45(
|
|
30190
30080
|
ControlHints,
|
|
30191
30081
|
{
|
|
30192
30082
|
hints: [
|
|
@@ -30206,8 +30096,8 @@ var init_QuitDialog = __esm({
|
|
|
30206
30096
|
});
|
|
30207
30097
|
|
|
30208
30098
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ReviewDialogs.tsx
|
|
30209
|
-
import { Box as
|
|
30210
|
-
import { Fragment as
|
|
30099
|
+
import { Box as Box36, Text as Text38 } from "ink";
|
|
30100
|
+
import { Fragment as Fragment13, jsx as jsx46, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
30211
30101
|
function ReviewFinalizeDialogs({
|
|
30212
30102
|
showFinalize,
|
|
30213
30103
|
showQuit,
|
|
@@ -30221,8 +30111,8 @@ function ReviewFinalizeDialogs({
|
|
|
30221
30111
|
onQuitCancel
|
|
30222
30112
|
}) {
|
|
30223
30113
|
const { accepted, rejected, needsReview } = countReviewStatuses(components);
|
|
30224
|
-
return /* @__PURE__ */
|
|
30225
|
-
showFinalize && /* @__PURE__ */
|
|
30114
|
+
return /* @__PURE__ */ jsxs36(Fragment13, { children: [
|
|
30115
|
+
showFinalize && /* @__PURE__ */ jsx46(
|
|
30226
30116
|
FinalizeDialog,
|
|
30227
30117
|
{
|
|
30228
30118
|
accepted,
|
|
@@ -30235,7 +30125,7 @@ function ReviewFinalizeDialogs({
|
|
|
30235
30125
|
onCancel: onFinalizeCancel
|
|
30236
30126
|
}
|
|
30237
30127
|
),
|
|
30238
|
-
showQuit && /* @__PURE__ */
|
|
30128
|
+
showQuit && /* @__PURE__ */ jsx46(QuitDialog, { hasUnsavedDrafts: false, onConfirm: onQuitConfirm, onCancel: onQuitCancel })
|
|
30239
30129
|
] });
|
|
30240
30130
|
}
|
|
30241
30131
|
function ReviewStepDialogs({
|
|
@@ -30245,7 +30135,7 @@ function ReviewStepDialogs({
|
|
|
30245
30135
|
onFinalize,
|
|
30246
30136
|
onQuit
|
|
30247
30137
|
}) {
|
|
30248
|
-
return /* @__PURE__ */
|
|
30138
|
+
return /* @__PURE__ */ jsx46(
|
|
30249
30139
|
ReviewFinalizeDialogs,
|
|
30250
30140
|
{
|
|
30251
30141
|
showFinalize: surfaceState.showFinalize,
|
|
@@ -30263,12 +30153,12 @@ function ReviewStepDialogs({
|
|
|
30263
30153
|
}
|
|
30264
30154
|
function ReviewReloadDialog({ open }) {
|
|
30265
30155
|
if (!open) return null;
|
|
30266
|
-
return /* @__PURE__ */
|
|
30267
|
-
/* @__PURE__ */
|
|
30268
|
-
/* @__PURE__ */
|
|
30269
|
-
/* @__PURE__ */
|
|
30270
|
-
/* @__PURE__ */
|
|
30271
|
-
/* @__PURE__ */
|
|
30156
|
+
return /* @__PURE__ */ jsxs36(Box36, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, children: [
|
|
30157
|
+
/* @__PURE__ */ jsx46(Text38, { bold: true, color: PALETTE.warning, children: "Reload from saved state?" }),
|
|
30158
|
+
/* @__PURE__ */ jsx46(Text38, { children: "Unsaved in-memory changes will be lost." }),
|
|
30159
|
+
/* @__PURE__ */ jsx46(Text38, { children: " " }),
|
|
30160
|
+
/* @__PURE__ */ jsx46(Text38, { children: " [Enter] Confirm" }),
|
|
30161
|
+
/* @__PURE__ */ jsx46(Text38, { children: " [Esc] Cancel" })
|
|
30272
30162
|
] });
|
|
30273
30163
|
}
|
|
30274
30164
|
var init_ReviewDialogs = __esm({
|
|
@@ -30791,8 +30681,8 @@ var init_use_review_log = __esm({
|
|
|
30791
30681
|
});
|
|
30792
30682
|
|
|
30793
30683
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/LivePreviewSummary.tsx
|
|
30794
|
-
import { Box as
|
|
30795
|
-
import { jsx as
|
|
30684
|
+
import { Box as Box37, Text as Text39 } from "ink";
|
|
30685
|
+
import { jsx as jsx47, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
30796
30686
|
function LivePreviewSummary({
|
|
30797
30687
|
enabled,
|
|
30798
30688
|
previewAnnotations,
|
|
@@ -30806,19 +30696,19 @@ function LivePreviewSummary({
|
|
|
30806
30696
|
const counts = { new: 0, changed: 0, removed: 0, breaking: 0 };
|
|
30807
30697
|
for (const annotation of previewAnnotations.values()) counts[annotation] += 1;
|
|
30808
30698
|
const hasCounts = counts.new + counts.changed + counts.removed + counts.breaking > 0;
|
|
30809
|
-
if (disabled) return /* @__PURE__ */
|
|
30810
|
-
if (status === "running" && !hasCounts) return /* @__PURE__ */
|
|
30699
|
+
if (disabled) return /* @__PURE__ */ jsx47(Text39, { color: PALETTE.muted, children: "Preview: disabled (creds rejected)" });
|
|
30700
|
+
if (status === "running" && !hasCounts) return /* @__PURE__ */ jsx47(Text39, { color: PALETTE.muted, children: `Preview: ${spinner} running...` });
|
|
30811
30701
|
if (!hasCounts) return null;
|
|
30812
|
-
return /* @__PURE__ */
|
|
30813
|
-
/* @__PURE__ */
|
|
30814
|
-
/* @__PURE__ */
|
|
30815
|
-
/* @__PURE__ */
|
|
30816
|
-
/* @__PURE__ */
|
|
30817
|
-
/* @__PURE__ */
|
|
30818
|
-
/* @__PURE__ */
|
|
30819
|
-
showRemovedListHint && removedCount > 0 && /* @__PURE__ */
|
|
30820
|
-
/* @__PURE__ */
|
|
30821
|
-
/* @__PURE__ */
|
|
30702
|
+
return /* @__PURE__ */ jsxs37(Box37, { children: [
|
|
30703
|
+
/* @__PURE__ */ jsx47(Text39, { children: "Preview: " }),
|
|
30704
|
+
/* @__PURE__ */ jsx47(Text39, { color: PALETTE.success, children: `${counts.new} new` }),
|
|
30705
|
+
/* @__PURE__ */ jsx47(Text39, { children: " \xB7 " }),
|
|
30706
|
+
/* @__PURE__ */ jsx47(Text39, { color: PALETTE.warning, children: `${counts.changed} changed` }),
|
|
30707
|
+
/* @__PURE__ */ jsx47(Text39, { children: " \xB7 " }),
|
|
30708
|
+
/* @__PURE__ */ jsx47(Text39, { color: PALETTE.muted, children: `${counts.removed} removed` }),
|
|
30709
|
+
showRemovedListHint && removedCount > 0 && /* @__PURE__ */ jsx47(Text39, { children: " ([d] removed list)" }),
|
|
30710
|
+
/* @__PURE__ */ jsx47(Text39, { children: " \xB7 " }),
|
|
30711
|
+
/* @__PURE__ */ jsx47(Text39, { color: PALETTE.error, bold: true, children: `${counts.breaking} breaking` })
|
|
30822
30712
|
] });
|
|
30823
30713
|
}
|
|
30824
30714
|
var init_LivePreviewSummary = __esm({
|
|
@@ -30831,8 +30721,8 @@ var init_LivePreviewSummary = __esm({
|
|
|
30831
30721
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/generate-review-step.tsx
|
|
30832
30722
|
import { useCallback as useCallback5, useEffect as useEffect24, useMemo as useMemo6, useRef as useRef17, useState as useState26 } from "react";
|
|
30833
30723
|
import figures8 from "figures";
|
|
30834
|
-
import { Box as
|
|
30835
|
-
import { Fragment as
|
|
30724
|
+
import { Box as Box38, Text as Text40 } from "ink";
|
|
30725
|
+
import { Fragment as Fragment14, jsx as jsx48, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
30836
30726
|
function sortComponentsForSidebar(components, cycleParticipants) {
|
|
30837
30727
|
const isEmpty2 = (entry) => Object.keys(entry.$properties ?? {}).length === 0 && Object.keys(entry.$slots ?? {}).length === 0;
|
|
30838
30728
|
const tier = (c2) => {
|
|
@@ -30873,10 +30763,10 @@ function CyclePathLine({
|
|
|
30873
30763
|
highlightComponents = false,
|
|
30874
30764
|
highlightLine = false
|
|
30875
30765
|
}) {
|
|
30876
|
-
return /* @__PURE__ */
|
|
30766
|
+
return /* @__PURE__ */ jsxs38(Text40, { color: highlightLine ? PALETTE.warning : void 0, children: [
|
|
30877
30767
|
prefix,
|
|
30878
30768
|
segments.map(
|
|
30879
|
-
(segment, index) => segment.kind === "slot" ? /* @__PURE__ */
|
|
30769
|
+
(segment, index) => segment.kind === "slot" ? /* @__PURE__ */ jsx48(Text40, { color: PALETTE.accent, children: segment.text }, index) : segment.kind === "arrow" ? /* @__PURE__ */ jsx48(Text40, { color: PALETTE.muted, children: segment.text }, index) : /* @__PURE__ */ jsx48(Text40, { color: highlightComponents ? PALETTE.warning : void 0, children: segment.text }, index)
|
|
30880
30770
|
)
|
|
30881
30771
|
] });
|
|
30882
30772
|
}
|
|
@@ -30888,31 +30778,31 @@ function CycleDetailPanel({
|
|
|
30888
30778
|
height
|
|
30889
30779
|
}) {
|
|
30890
30780
|
const lines = [
|
|
30891
|
-
/* @__PURE__ */
|
|
30892
|
-
/* @__PURE__ */
|
|
30893
|
-
/* @__PURE__ */
|
|
30894
|
-
/* @__PURE__ */
|
|
30781
|
+
/* @__PURE__ */ jsx48(Text40, { bold: true, color: PALETTE.warning, children: `SLOT DEPENDENCY CYCLES (${cycles.length})` }, "cyc-title"),
|
|
30782
|
+
/* @__PURE__ */ jsx48(Text40, { color: PALETTE.muted, children: "push will fail until these are resolved" }, "cyc-sub"),
|
|
30783
|
+
/* @__PURE__ */ jsx48(Text40, { color: PALETTE.muted, children: "Reject a cycle member or remove a slot edge to break the cycle." }, "cyc-guidance"),
|
|
30784
|
+
/* @__PURE__ */ jsx48(Text40, { children: " " }, "cyc-space")
|
|
30895
30785
|
];
|
|
30896
30786
|
cycles.forEach((cycle, index) => {
|
|
30897
30787
|
const nodeCount = new Set(cycle.path).size;
|
|
30898
30788
|
const isCursor = index === cursor;
|
|
30899
30789
|
lines.push(
|
|
30900
|
-
/* @__PURE__ */
|
|
30901
|
-
/* @__PURE__ */
|
|
30790
|
+
/* @__PURE__ */ jsx48(Text40, { bold: true, inverse: isCursor, children: `${isCursor ? figures8.pointer : " "} Cycle ${index + 1} (${nodeCount} component${nodeCount === 1 ? "" : "s"}):` }, `cyc-h-${index}`),
|
|
30791
|
+
/* @__PURE__ */ jsx48(CyclePathLine, { segments: formatCyclePathSegments2(cycle, 16), prefix: " " }, `cyc-p-${index}`)
|
|
30902
30792
|
);
|
|
30903
30793
|
if (cycle.suggestedBreak) {
|
|
30904
30794
|
lines.push(
|
|
30905
|
-
/* @__PURE__ */
|
|
30795
|
+
/* @__PURE__ */ jsx48(Text40, { color: PALETTE.muted, children: ` Suggested fix: remove [${cycle.suggestedBreak.slotName}] from ${cycle.suggestedBreak.fromComponent}` }, `cyc-fix-${index}`)
|
|
30906
30796
|
);
|
|
30907
30797
|
}
|
|
30908
|
-
lines.push(/* @__PURE__ */
|
|
30798
|
+
lines.push(/* @__PURE__ */ jsx48(Text40, { children: " " }, `cyc-s-${index}`));
|
|
30909
30799
|
});
|
|
30910
30800
|
const footer = "[\u2191\u2193] move [Enter] fix cycle [c/q/Esc] close";
|
|
30911
30801
|
const viewportHeight = Math.max(1, height - 3);
|
|
30912
30802
|
const visible = lines.slice(scrollOffset, scrollOffset + viewportHeight - 1);
|
|
30913
|
-
return /* @__PURE__ */
|
|
30803
|
+
return /* @__PURE__ */ jsxs38(FixedPanel, { width, height, borderStyle: "round", borderColor: PALETTE.warning, paddingLeft: 1, children: [
|
|
30914
30804
|
visible,
|
|
30915
|
-
/* @__PURE__ */
|
|
30805
|
+
/* @__PURE__ */ jsx48(Text40, { color: PALETTE.muted, children: footer })
|
|
30916
30806
|
] });
|
|
30917
30807
|
}
|
|
30918
30808
|
function BreakCyclePanel({
|
|
@@ -30923,14 +30813,14 @@ function BreakCyclePanel({
|
|
|
30923
30813
|
width,
|
|
30924
30814
|
height
|
|
30925
30815
|
}) {
|
|
30926
|
-
return /* @__PURE__ */
|
|
30927
|
-
/* @__PURE__ */
|
|
30928
|
-
cycle && /* @__PURE__ */
|
|
30929
|
-
/* @__PURE__ */
|
|
30930
|
-
/* @__PURE__ */
|
|
30931
|
-
edges.length > 0 && /* @__PURE__ */
|
|
30932
|
-
edges.map((edge, index) => /* @__PURE__ */
|
|
30933
|
-
confirming ? /* @__PURE__ */
|
|
30816
|
+
return /* @__PURE__ */ jsxs38(FixedPanel, { width, height, borderStyle: "round", borderColor: PALETTE.warning, paddingLeft: 1, children: [
|
|
30817
|
+
/* @__PURE__ */ jsx48(Text40, { bold: true, color: PALETTE.warning, children: "BREAK CYCLE \u2014 remove a slot edge" }),
|
|
30818
|
+
cycle && /* @__PURE__ */ jsx48(CyclePathLine, { segments: formatCyclePathSegments2(cycle), prefix: " ", highlightComponents: true }),
|
|
30819
|
+
/* @__PURE__ */ jsx48(Text40, { color: PALETTE.muted, children: cycle ? "Deleting an edge removes it from $allowedComponents (undo with Ctrl+Z)." : "No cycle highlighted." }),
|
|
30820
|
+
/* @__PURE__ */ jsx48(Text40, { children: " " }),
|
|
30821
|
+
edges.length > 0 && /* @__PURE__ */ jsx48(Text40, { color: PALETTE.muted, children: "remove slot edge:" }),
|
|
30822
|
+
edges.map((edge, index) => /* @__PURE__ */ jsx48(Text40, { inverse: index === cursor, children: `${index === cursor ? figures8.pointer : " "} remove '${edge.toComponent}' from ${edge.fromComponent}.$slots.${edge.slotName}.$allowedComponents` }, `${edge.fromComponent}-${edge.slotName}-${edge.toComponent}`)),
|
|
30823
|
+
confirming ? /* @__PURE__ */ jsx48(Text40, { bold: true, color: PALETTE.warning, children: "Delete this slot edge? [y] confirm [n] cancel" }) : /* @__PURE__ */ jsx48(Text40, { children: "[\u2191\u2193] move [Enter] delete [x/Esc] close" })
|
|
30934
30824
|
] });
|
|
30935
30825
|
}
|
|
30936
30826
|
function buildBreakingRows(breakingChanges) {
|
|
@@ -30976,9 +30866,9 @@ function deriveBreakingChanges(response) {
|
|
|
30976
30866
|
}
|
|
30977
30867
|
function GenerateReviewStep(props) {
|
|
30978
30868
|
if (!props.extractSessionId) {
|
|
30979
|
-
return /* @__PURE__ */
|
|
30869
|
+
return /* @__PURE__ */ jsx48(Box38, { paddingX: 2, paddingY: 1, children: /* @__PURE__ */ jsx48(Text40, { color: PALETTE.error, children: "Error: no session ID \u2014 cannot load generated definitions." }) });
|
|
30980
30870
|
}
|
|
30981
|
-
return /* @__PURE__ */
|
|
30871
|
+
return /* @__PURE__ */ jsx48(GenerateReviewStepView, { ...props, extractSessionId: props.extractSessionId });
|
|
30982
30872
|
}
|
|
30983
30873
|
function GenerateReviewStepView({
|
|
30984
30874
|
extractSessionId,
|
|
@@ -31840,13 +31730,13 @@ function GenerateReviewStepView({
|
|
|
31840
31730
|
}
|
|
31841
31731
|
});
|
|
31842
31732
|
if (loading) {
|
|
31843
|
-
return /* @__PURE__ */
|
|
31733
|
+
return /* @__PURE__ */ jsx48(ReviewLoadingState, {});
|
|
31844
31734
|
}
|
|
31845
31735
|
if (loadError) {
|
|
31846
|
-
return /* @__PURE__ */
|
|
31736
|
+
return /* @__PURE__ */ jsx48(ReviewLoadError, { message: loadError });
|
|
31847
31737
|
}
|
|
31848
31738
|
if (showHelp) {
|
|
31849
|
-
return /* @__PURE__ */
|
|
31739
|
+
return /* @__PURE__ */ jsx48(HelpOverlay, { sections: HELP_SECTIONS2, handleInput: false, onClose: () => setShowHelp(false) });
|
|
31850
31740
|
}
|
|
31851
31741
|
const { selected, selectedJson, visibleJsonPanelValue } = getReviewSelectionState(
|
|
31852
31742
|
components,
|
|
@@ -31886,9 +31776,9 @@ function GenerateReviewStepView({
|
|
|
31886
31776
|
for (const c2 of closures.values()) if (c2.nodes.length > 1) return true;
|
|
31887
31777
|
return false;
|
|
31888
31778
|
})();
|
|
31889
|
-
return /* @__PURE__ */
|
|
31890
|
-
/* @__PURE__ */
|
|
31891
|
-
/* @__PURE__ */
|
|
31779
|
+
return /* @__PURE__ */ jsxs38(Box38, { flexDirection: "column", children: [
|
|
31780
|
+
/* @__PURE__ */ jsx48(StepHeader, { step: "review" }),
|
|
31781
|
+
/* @__PURE__ */ jsx48(
|
|
31892
31782
|
ReviewStepDialogs,
|
|
31893
31783
|
{
|
|
31894
31784
|
surfaceState: reviewSurface,
|
|
@@ -31898,16 +31788,16 @@ function GenerateReviewStepView({
|
|
|
31898
31788
|
onQuit
|
|
31899
31789
|
}
|
|
31900
31790
|
),
|
|
31901
|
-
/* @__PURE__ */
|
|
31902
|
-
removedComponents.length > 0 && !dialogOpen && /* @__PURE__ */
|
|
31903
|
-
/* @__PURE__ */
|
|
31904
|
-
!removedBannerCollapsed && /* @__PURE__ */
|
|
31905
|
-
/* @__PURE__ */
|
|
31906
|
-
removedComponents.map((rc) => /* @__PURE__ */
|
|
31791
|
+
/* @__PURE__ */ jsx48(ReviewReloadDialog, { open: showReloadDialog && !dialogOpen }),
|
|
31792
|
+
removedComponents.length > 0 && !dialogOpen && /* @__PURE__ */ jsxs38(Box38, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.error, paddingX: 1, children: [
|
|
31793
|
+
/* @__PURE__ */ jsx48(Text40, { bold: true, color: PALETTE.error, children: removedComponentsHeader(removedComponents.length, true) }),
|
|
31794
|
+
!removedBannerCollapsed && /* @__PURE__ */ jsxs38(Fragment14, { children: [
|
|
31795
|
+
/* @__PURE__ */ jsx48(Text40, { children: " " }),
|
|
31796
|
+
removedComponents.map((rc) => /* @__PURE__ */ jsx48(Text40, { children: removedComponentLine(rc) }, rc.id))
|
|
31907
31797
|
] })
|
|
31908
31798
|
] }),
|
|
31909
|
-
breakingChanges.length > 0 && !dialogOpen && /* @__PURE__ */
|
|
31910
|
-
|
|
31799
|
+
breakingChanges.length > 0 && !dialogOpen && /* @__PURE__ */ jsx48(Box38, { paddingX: 1, children: /* @__PURE__ */ jsx48(
|
|
31800
|
+
Text40,
|
|
31911
31801
|
{
|
|
31912
31802
|
color: PALETTE.warning,
|
|
31913
31803
|
children: `[b] ${breakingChanges.length} breaking change${breakingChanges.length === 1 ? "" : "s"}`
|
|
@@ -31917,14 +31807,14 @@ function GenerateReviewStepView({
|
|
|
31917
31807
|
const row = breakingRows[breakingCursor];
|
|
31918
31808
|
const comp = row ? breakingChanges.find((b) => b.componentName === row.componentName) : void 0;
|
|
31919
31809
|
if (!comp) return null;
|
|
31920
|
-
return /* @__PURE__ */
|
|
31921
|
-
/* @__PURE__ */
|
|
31922
|
-
comp.impact && /* @__PURE__ */
|
|
31923
|
-
comp.changes.length === 0 ? /* @__PURE__ */
|
|
31924
|
-
/* @__PURE__ */
|
|
31810
|
+
return /* @__PURE__ */ jsxs38(Box38, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, children: [
|
|
31811
|
+
/* @__PURE__ */ jsx48(Text40, { bold: true, color: PALETTE.warning, children: `Breaking changes \u2014 ${comp.componentName}` }),
|
|
31812
|
+
comp.impact && /* @__PURE__ */ jsx48(Text40, { color: PALETTE.muted, children: ` affects ${comp.impact.affectedExperiences} experience${comp.impact.affectedExperiences === 1 ? "" : "s"}, ${comp.impact.affectedFragments} fragment${comp.impact.affectedFragments === 1 ? "" : "s"}` }),
|
|
31813
|
+
comp.changes.length === 0 ? /* @__PURE__ */ jsx48(Text40, { color: PALETTE.muted, children: " (no enumerated changes)" }) : comp.changes.map((change, ci) => /* @__PURE__ */ jsx48(Text40, { children: ` \u2022 ${formatBreakingChange(change, comp.current)}` }, `bd-detail-${ci}`)),
|
|
31814
|
+
/* @__PURE__ */ jsx48(Text40, { children: "[D/Esc] close detail" })
|
|
31925
31815
|
] });
|
|
31926
31816
|
})(),
|
|
31927
|
-
!dialogOpen && /* @__PURE__ */
|
|
31817
|
+
!dialogOpen && /* @__PURE__ */ jsx48(
|
|
31928
31818
|
LivePreviewSummary,
|
|
31929
31819
|
{
|
|
31930
31820
|
enabled: livePreview,
|
|
@@ -31943,16 +31833,16 @@ function GenerateReviewStepView({
|
|
|
31943
31833
|
const participantSet = cycleView.structural;
|
|
31944
31834
|
const members = stillRejected.filter((n) => participantSet.has(n)).sort();
|
|
31945
31835
|
const ancestors = stillRejected.filter((n) => !participantSet.has(n)).sort();
|
|
31946
|
-
return /* @__PURE__ */
|
|
31947
|
-
/* @__PURE__ */
|
|
31948
|
-
members.length > 0 && /* @__PURE__ */
|
|
31949
|
-
ancestors.length > 0 && /* @__PURE__ */
|
|
31950
|
-
/* @__PURE__ */
|
|
31836
|
+
return /* @__PURE__ */ jsxs38(Box38, { flexDirection: "column", borderStyle: "single", borderColor: PALETTE.error, paddingX: 1, children: [
|
|
31837
|
+
/* @__PURE__ */ jsx48(Text40, { color: PALETTE.error, bold: true, children: `Cyclic component graph \u2014 auto-rejected ${stillRejected.length} component${stillRejected.length === 1 ? "" : "s"}:` }),
|
|
31838
|
+
members.length > 0 && /* @__PURE__ */ jsx48(Text40, { color: PALETTE.error, children: ` Cycle members: ${members.join(", ")}` }),
|
|
31839
|
+
ancestors.length > 0 && /* @__PURE__ */ jsx48(Text40, { color: PALETTE.error, children: ` Ancestors: ${ancestors.join(", ")}` }),
|
|
31840
|
+
/* @__PURE__ */ jsx48(Text40, { color: PALETTE.muted, children: undoSnapshot ? " [Ctrl+Z] undo \xB7 [r]/[a] manually toggle \xB7 [F] continue" : " [r]/[a] manually toggle \xB7 [F] continue" })
|
|
31951
31841
|
] });
|
|
31952
31842
|
})(),
|
|
31953
|
-
/* @__PURE__ */
|
|
31954
|
-
/* @__PURE__ */
|
|
31955
|
-
!dialogOpen && breakPanel.isOpen && /* @__PURE__ */
|
|
31843
|
+
/* @__PURE__ */ jsx48(ReviewEmptyComponentsWarning, { count: emptyCount, hidden: dialogOpen }),
|
|
31844
|
+
/* @__PURE__ */ jsx48(ReviewFinalizeError, { message: finalizeError, hidden: dialogOpen }),
|
|
31845
|
+
!dialogOpen && breakPanel.isOpen && /* @__PURE__ */ jsx48(
|
|
31956
31846
|
BreakCyclePanel,
|
|
31957
31847
|
{
|
|
31958
31848
|
cycle: cycleRows[cyclesCursor],
|
|
@@ -31963,7 +31853,7 @@ function GenerateReviewStepView({
|
|
|
31963
31853
|
height: panelHeight
|
|
31964
31854
|
}
|
|
31965
31855
|
),
|
|
31966
|
-
!dialogOpen && cyclePanel.isOpen && !breakPanel.isOpen && /* @__PURE__ */
|
|
31856
|
+
!dialogOpen && cyclePanel.isOpen && !breakPanel.isOpen && /* @__PURE__ */ jsx48(
|
|
31967
31857
|
CycleDetailPanel,
|
|
31968
31858
|
{
|
|
31969
31859
|
cycles: cycleRows,
|
|
@@ -31973,8 +31863,8 @@ function GenerateReviewStepView({
|
|
|
31973
31863
|
height: panelHeight
|
|
31974
31864
|
}
|
|
31975
31865
|
),
|
|
31976
|
-
!dialogOpen && !cyclePanel.isOpen && !breakPanel.isOpen && /* @__PURE__ */
|
|
31977
|
-
breakingPanel.isOpen ? /* @__PURE__ */
|
|
31866
|
+
!dialogOpen && !cyclePanel.isOpen && !breakPanel.isOpen && /* @__PURE__ */ jsxs38(Box38, { children: [
|
|
31867
|
+
breakingPanel.isOpen ? /* @__PURE__ */ jsx48(
|
|
31978
31868
|
GotoBanner,
|
|
31979
31869
|
{
|
|
31980
31870
|
title: `Breaking changes \u2014 ${breakingRows[breakingCursor]?.componentName ?? "unknown component"}`,
|
|
@@ -31987,7 +31877,7 @@ function GenerateReviewStepView({
|
|
|
31987
31877
|
width: sidebarWidth,
|
|
31988
31878
|
footerHint: "[\u2191/\u2193] move \xB7 [Enter] jump \xB7 [D] detail \xB7 [Esc] close"
|
|
31989
31879
|
}
|
|
31990
|
-
) : /* @__PURE__ */
|
|
31880
|
+
) : /* @__PURE__ */ jsx48(
|
|
31991
31881
|
GroupedSidebar,
|
|
31992
31882
|
{
|
|
31993
31883
|
items: groupedItems,
|
|
@@ -32028,7 +31918,7 @@ function GenerateReviewStepView({
|
|
|
32028
31918
|
graph: sidebarGraph
|
|
32029
31919
|
}
|
|
32030
31920
|
),
|
|
32031
|
-
selected ? /* @__PURE__ */
|
|
31921
|
+
selected ? /* @__PURE__ */ jsx48(
|
|
32032
31922
|
ReviewComponentPanel,
|
|
32033
31923
|
{
|
|
32034
31924
|
selectedKey: selected.key,
|
|
@@ -32058,12 +31948,12 @@ function GenerateReviewStepView({
|
|
|
32058
31948
|
),
|
|
32059
31949
|
saveError: reviewEditor.saveError
|
|
32060
31950
|
}
|
|
32061
|
-
) : /* @__PURE__ */
|
|
31951
|
+
) : /* @__PURE__ */ jsx48(ReviewNoSelection, {})
|
|
32062
31952
|
] }),
|
|
32063
|
-
!dialogOpen && cycleRows.length > 0 && !cyclePanel.isOpen && !breakPanel.isOpen && /* @__PURE__ */
|
|
32064
|
-
/* @__PURE__ */
|
|
31953
|
+
!dialogOpen && cycleRows.length > 0 && !cyclePanel.isOpen && !breakPanel.isOpen && /* @__PURE__ */ jsxs38(Box38, { flexDirection: "column", children: [
|
|
31954
|
+
/* @__PURE__ */ jsx48(Text40, { color: PALETTE.warning, children: `\u26A0 ${cycleRows.length} slot dependency cycle${cycleRows.length === 1 ? "" : "s"} detected \u2014 push will fail` }),
|
|
32065
31955
|
cycleRows.slice(0, 3).map((cycle, idx) => {
|
|
32066
|
-
return /* @__PURE__ */
|
|
31956
|
+
return /* @__PURE__ */ jsx48(
|
|
32067
31957
|
CyclePathLine,
|
|
32068
31958
|
{
|
|
32069
31959
|
segments: formatCyclePathSegments2(cycle),
|
|
@@ -32074,10 +31964,10 @@ function GenerateReviewStepView({
|
|
|
32074
31964
|
`cyc-banner-${idx}`
|
|
32075
31965
|
);
|
|
32076
31966
|
}),
|
|
32077
|
-
cycleRows.length > 3 && /* @__PURE__ */
|
|
32078
|
-
/* @__PURE__ */
|
|
31967
|
+
cycleRows.length > 3 && /* @__PURE__ */ jsx48(Text40, { color: PALETTE.warning, children: ` \u2026${cycleRows.length - 3} more` }),
|
|
31968
|
+
/* @__PURE__ */ jsx48(Text40, { children: " press [c] for detail" })
|
|
32079
31969
|
] }),
|
|
32080
|
-
/* @__PURE__ */
|
|
31970
|
+
/* @__PURE__ */ jsx48(
|
|
32081
31971
|
SearchMatchSummary,
|
|
32082
31972
|
{
|
|
32083
31973
|
open: searchOpen,
|
|
@@ -32088,7 +31978,7 @@ function GenerateReviewStepView({
|
|
|
32088
31978
|
hidden: dialogOpen
|
|
32089
31979
|
}
|
|
32090
31980
|
),
|
|
32091
|
-
!dialogOpen && sidebarFocused && reviewEditor.panelOpen !== "token-review" && /* @__PURE__ */
|
|
31981
|
+
!dialogOpen && sidebarFocused && reviewEditor.panelOpen !== "token-review" && /* @__PURE__ */ jsx48(CompactControlBar, { hasGroupRoots, searchActive: searchOpen || searchQuery.length > 0 })
|
|
32092
31982
|
] });
|
|
32093
31983
|
}
|
|
32094
31984
|
var HELP_SECTIONS2;
|
|
@@ -32205,17 +32095,17 @@ var init_generate_review_step = __esm({
|
|
|
32205
32095
|
});
|
|
32206
32096
|
|
|
32207
32097
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/components/CustomPromptBanner.tsx
|
|
32208
|
-
import { Box as
|
|
32209
|
-
import { jsx as
|
|
32098
|
+
import { Box as Box39, Text as Text41 } from "ink";
|
|
32099
|
+
import { jsx as jsx49, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
32210
32100
|
function CustomPromptBanner({ generatePromptPath }) {
|
|
32211
32101
|
if (!generatePromptPath) return null;
|
|
32212
|
-
return /* @__PURE__ */
|
|
32213
|
-
/* @__PURE__ */
|
|
32214
|
-
generatePromptPath ? /* @__PURE__ */
|
|
32102
|
+
return /* @__PURE__ */ jsxs39(Box39, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, children: [
|
|
32103
|
+
/* @__PURE__ */ jsx49(Text41, { color: PALETTE.warning, bold: true, children: "WARNING: Custom prompt active" }),
|
|
32104
|
+
generatePromptPath ? /* @__PURE__ */ jsxs39(Text41, { color: PALETTE.warning, children: [
|
|
32215
32105
|
"components: ",
|
|
32216
32106
|
generatePromptPath
|
|
32217
32107
|
] }) : null,
|
|
32218
|
-
/* @__PURE__ */
|
|
32108
|
+
/* @__PURE__ */ jsx49(Text41, { color: PALETTE.warning, children: "Bundled invariants (utility-wrapper rejection, description content rules) do NOT apply." })
|
|
32219
32109
|
] });
|
|
32220
32110
|
}
|
|
32221
32111
|
var init_CustomPromptBanner = __esm({
|
|
@@ -32244,15 +32134,15 @@ var init_contentful_urls2 = __esm({
|
|
|
32244
32134
|
});
|
|
32245
32135
|
|
|
32246
32136
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/components/SpaceEnvironment.tsx
|
|
32247
|
-
import { Box as
|
|
32248
|
-
import { jsx as
|
|
32137
|
+
import { Box as Box40, Text as Text42 } from "ink";
|
|
32138
|
+
import { jsx as jsx50, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
32249
32139
|
function SpaceEnvironment({ spaceId, environmentId }) {
|
|
32250
|
-
return /* @__PURE__ */
|
|
32251
|
-
/* @__PURE__ */
|
|
32252
|
-
/* @__PURE__ */
|
|
32253
|
-
/* @__PURE__ */
|
|
32254
|
-
/* @__PURE__ */
|
|
32255
|
-
/* @__PURE__ */
|
|
32140
|
+
return /* @__PURE__ */ jsxs40(Box40, { gap: 1, marginTop: 1, children: [
|
|
32141
|
+
/* @__PURE__ */ jsx50(Text42, { color: PALETTE.muted, children: "Space:" }),
|
|
32142
|
+
/* @__PURE__ */ jsx50(Text42, { children: spaceId }),
|
|
32143
|
+
/* @__PURE__ */ jsx50(Text42, { color: PALETTE.muted, children: "/" }),
|
|
32144
|
+
/* @__PURE__ */ jsx50(Text42, { color: PALETTE.muted, children: "Environment:" }),
|
|
32145
|
+
/* @__PURE__ */ jsx50(Text42, { children: environmentId })
|
|
32256
32146
|
] });
|
|
32257
32147
|
}
|
|
32258
32148
|
var init_SpaceEnvironment = __esm({
|
|
@@ -32263,19 +32153,19 @@ var init_SpaceEnvironment = __esm({
|
|
|
32263
32153
|
});
|
|
32264
32154
|
|
|
32265
32155
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/screens/DoneStep.tsx
|
|
32266
|
-
import { Box as
|
|
32267
|
-
import { Fragment as
|
|
32156
|
+
import { Box as Box41, Text as Text43 } from "ink";
|
|
32157
|
+
import { Fragment as Fragment15, jsx as jsx51, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
32268
32158
|
function EntityRows({ entity, label }) {
|
|
32269
32159
|
const plural3 = (n) => `${n} ${label}${n !== 1 ? "s" : ""}`;
|
|
32270
|
-
return /* @__PURE__ */
|
|
32271
|
-
ACTIONS.filter((action) => entity[action] > 0).map((action) => /* @__PURE__ */
|
|
32272
|
-
/* @__PURE__ */
|
|
32160
|
+
return /* @__PURE__ */ jsxs41(Fragment15, { children: [
|
|
32161
|
+
ACTIONS.filter((action) => entity[action] > 0).map((action) => /* @__PURE__ */ jsxs41(Text43, { children: [
|
|
32162
|
+
/* @__PURE__ */ jsx51(Text43, { color: PALETTE.success, children: "\u2713" }),
|
|
32273
32163
|
" ",
|
|
32274
32164
|
plural3(entity[action]),
|
|
32275
32165
|
" ",
|
|
32276
32166
|
action
|
|
32277
32167
|
] }, action)),
|
|
32278
|
-
entity.failed > 0 && /* @__PURE__ */
|
|
32168
|
+
entity.failed > 0 && /* @__PURE__ */ jsxs41(Text43, { color: PALETTE.error, children: [
|
|
32279
32169
|
"\u2717 ",
|
|
32280
32170
|
plural3(entity.failed),
|
|
32281
32171
|
" failed \u2014 check logs above"
|
|
@@ -32283,9 +32173,9 @@ function EntityRows({ entity, label }) {
|
|
|
32283
32173
|
] });
|
|
32284
32174
|
}
|
|
32285
32175
|
function LinkRow({ title, url }) {
|
|
32286
|
-
return /* @__PURE__ */
|
|
32287
|
-
/* @__PURE__ */
|
|
32288
|
-
/* @__PURE__ */
|
|
32176
|
+
return /* @__PURE__ */ jsxs41(Box41, { flexDirection: "column", children: [
|
|
32177
|
+
/* @__PURE__ */ jsx51(Text43, { color: PALETTE.muted, children: title }),
|
|
32178
|
+
/* @__PURE__ */ jsx51(Text43, { color: PALETTE.accent, children: url })
|
|
32289
32179
|
] });
|
|
32290
32180
|
}
|
|
32291
32181
|
function DoneStep({
|
|
@@ -32309,29 +32199,29 @@ function DoneStep({
|
|
|
32309
32199
|
const totalPushed = componentTypes.created + componentTypes.updated + componentTypes.removed + designTokens.created + designTokens.updated + designTokens.removed;
|
|
32310
32200
|
const success = totalFailed === 0;
|
|
32311
32201
|
const urlArgs = { host: host ?? "api.contentful.com", spaceId, environmentId };
|
|
32312
|
-
return /* @__PURE__ */
|
|
32313
|
-
/* @__PURE__ */
|
|
32314
|
-
/* @__PURE__ */
|
|
32315
|
-
success ? /* @__PURE__ */
|
|
32316
|
-
totalPushed === 0 && totalFailed === 0 && !summary ? /* @__PURE__ */
|
|
32317
|
-
/* @__PURE__ */
|
|
32318
|
-
/* @__PURE__ */
|
|
32319
|
-
summary && /* @__PURE__ */
|
|
32202
|
+
return /* @__PURE__ */ jsxs41(Box41, { flexDirection: "column", children: [
|
|
32203
|
+
/* @__PURE__ */ jsx51(StepHeader, { step: "done" }),
|
|
32204
|
+
/* @__PURE__ */ jsxs41(Box41, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 1, children: [
|
|
32205
|
+
success ? /* @__PURE__ */ jsx51(Text43, { bold: true, color: PALETTE.success, children: "Done!" }) : /* @__PURE__ */ jsx51(Text43, { bold: true, color: PALETTE.warning, children: "\u26A0 Finished with errors" }),
|
|
32206
|
+
totalPushed === 0 && totalFailed === 0 && !summary ? /* @__PURE__ */ jsx51(Text43, { color: PALETTE.muted, children: credentialsSkipped ? "Nothing was pushed \u2014 you skipped the Contentful credentials, so the files were only saved locally." : "Nothing was pushed \u2014 everything was already up to date." }) : /* @__PURE__ */ jsxs41(Box41, { flexDirection: "column", children: [
|
|
32207
|
+
/* @__PURE__ */ jsx51(EntityRows, { entity: componentTypes, label: "Component" }),
|
|
32208
|
+
/* @__PURE__ */ jsx51(EntityRows, { entity: designTokens, label: "Design Token" }),
|
|
32209
|
+
summary && /* @__PURE__ */ jsx51(Box41, { marginTop: 1, children: /* @__PURE__ */ jsxs41(Text43, { color: PALETTE.muted, children: [
|
|
32320
32210
|
"Push result: ",
|
|
32321
32211
|
summary.succeeded,
|
|
32322
32212
|
"/",
|
|
32323
32213
|
summary.total,
|
|
32324
32214
|
" succeeded",
|
|
32325
|
-
summary.failed > 0 && /* @__PURE__ */
|
|
32215
|
+
summary.failed > 0 && /* @__PURE__ */ jsxs41(Text43, { color: PALETTE.error, children: [
|
|
32326
32216
|
", ",
|
|
32327
32217
|
summary.failed,
|
|
32328
32218
|
" failed"
|
|
32329
32219
|
] })
|
|
32330
32220
|
] }) })
|
|
32331
32221
|
] }),
|
|
32332
|
-
failures.length > 0 && /* @__PURE__ */
|
|
32333
|
-
/* @__PURE__ */
|
|
32334
|
-
failures.map((failure) => /* @__PURE__ */
|
|
32222
|
+
failures.length > 0 && /* @__PURE__ */ jsxs41(Box41, { flexDirection: "column", children: [
|
|
32223
|
+
/* @__PURE__ */ jsx51(Text43, { bold: true, color: PALETTE.error, children: "Failure details" }),
|
|
32224
|
+
failures.map((failure) => /* @__PURE__ */ jsxs41(Text43, { color: PALETTE.error, children: [
|
|
32335
32225
|
failure.entityType,
|
|
32336
32226
|
" ",
|
|
32337
32227
|
failure.entityId,
|
|
@@ -32339,11 +32229,11 @@ function DoneStep({
|
|
|
32339
32229
|
failure.message
|
|
32340
32230
|
] }, `${failure.entityType}:${failure.entityId}`))
|
|
32341
32231
|
] }),
|
|
32342
|
-
/* @__PURE__ */
|
|
32343
|
-
success && totalPushed > 0 && /* @__PURE__ */
|
|
32344
|
-
/* @__PURE__ */
|
|
32345
|
-
produced.components && /* @__PURE__ */
|
|
32346
|
-
produced.tokens && /* @__PURE__ */
|
|
32232
|
+
/* @__PURE__ */ jsx51(SpaceEnvironment, { spaceId, environmentId }),
|
|
32233
|
+
success && totalPushed > 0 && /* @__PURE__ */ jsxs41(Box41, { flexDirection: "column", gap: 1, children: [
|
|
32234
|
+
/* @__PURE__ */ jsx51(Text43, { color: PALETTE.success, children: "Your design system is now in Contentful Experiences." }),
|
|
32235
|
+
produced.components && /* @__PURE__ */ jsx51(LinkRow, { title: "View your components here:", url: buildPostPushUrl2(urlArgs) }),
|
|
32236
|
+
produced.tokens && /* @__PURE__ */ jsx51(
|
|
32347
32237
|
LinkRow,
|
|
32348
32238
|
{
|
|
32349
32239
|
title: "View your design tokens here:",
|
|
@@ -32351,7 +32241,7 @@ function DoneStep({
|
|
|
32351
32241
|
}
|
|
32352
32242
|
)
|
|
32353
32243
|
] }),
|
|
32354
|
-
/* @__PURE__ */
|
|
32244
|
+
/* @__PURE__ */ jsx51(ControlHints, { hints: [{ keys: "Enter / q", label: "Exit" }] })
|
|
32355
32245
|
] })
|
|
32356
32246
|
] });
|
|
32357
32247
|
}
|
|
@@ -32410,10 +32300,10 @@ var init_use_blinking_cursor = __esm({
|
|
|
32410
32300
|
|
|
32411
32301
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/screens/PathPrompt.tsx
|
|
32412
32302
|
import { useState as useState28 } from "react";
|
|
32413
|
-
import { Box as
|
|
32303
|
+
import { Box as Box42, Text as Text44 } from "ink";
|
|
32414
32304
|
import { readdirSync as readdirSync4 } from "node:fs";
|
|
32415
32305
|
import { dirname as dirname17, basename as basename6, join as join23 } from "node:path";
|
|
32416
|
-
import { jsx as
|
|
32306
|
+
import { jsx as jsx52, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
32417
32307
|
function autocomplete(partial) {
|
|
32418
32308
|
if (!partial) return null;
|
|
32419
32309
|
const normalized = normalizePath(partial);
|
|
@@ -32471,20 +32361,20 @@ function PathPrompt({
|
|
|
32471
32361
|
const shown = input || defaultPath;
|
|
32472
32362
|
const isPlaceholder = input === "";
|
|
32473
32363
|
const cursor = cursorVisible ? "\u2588" : " ";
|
|
32474
|
-
return /* @__PURE__ */
|
|
32475
|
-
/* @__PURE__ */
|
|
32476
|
-
/* @__PURE__ */
|
|
32477
|
-
summary && /* @__PURE__ */
|
|
32478
|
-
/* @__PURE__ */
|
|
32479
|
-
/* @__PURE__ */
|
|
32480
|
-
/* @__PURE__ */
|
|
32364
|
+
return /* @__PURE__ */ jsxs42(Box42, { flexDirection: "column", children: [
|
|
32365
|
+
/* @__PURE__ */ jsx52(StepHeader, { step: "push" }),
|
|
32366
|
+
/* @__PURE__ */ jsxs42(Box42, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 1, children: [
|
|
32367
|
+
summary && /* @__PURE__ */ jsx52(Text44, { color: PALETTE.muted, children: summary }),
|
|
32368
|
+
/* @__PURE__ */ jsxs42(Box42, { gap: 1, children: [
|
|
32369
|
+
/* @__PURE__ */ jsx52(Text44, { color: PALETTE.accent, children: "?" }),
|
|
32370
|
+
/* @__PURE__ */ jsxs42(Text44, { bold: true, children: [
|
|
32481
32371
|
label,
|
|
32482
32372
|
":"
|
|
32483
32373
|
] }),
|
|
32484
|
-
/* @__PURE__ */
|
|
32485
|
-
/* @__PURE__ */
|
|
32374
|
+
/* @__PURE__ */ jsx52(Text44, { color: isPlaceholder ? PALETTE.muted : void 0, children: shown }),
|
|
32375
|
+
/* @__PURE__ */ jsx52(Text44, { children: cursor })
|
|
32486
32376
|
] }),
|
|
32487
|
-
/* @__PURE__ */
|
|
32377
|
+
/* @__PURE__ */ jsx52(
|
|
32488
32378
|
ControlHints,
|
|
32489
32379
|
{
|
|
32490
32380
|
hints: [
|
|
@@ -32534,8 +32424,8 @@ var init_produced = __esm({
|
|
|
32534
32424
|
|
|
32535
32425
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/support/use-timed-spinner.tsx
|
|
32536
32426
|
import { useEffect as useEffect26, useState as useState29 } from "react";
|
|
32537
|
-
import { Spinner as
|
|
32538
|
-
import { jsx as
|
|
32427
|
+
import { Spinner as Spinner2 } from "@inkjs/ui";
|
|
32428
|
+
import { jsx as jsx53 } from "react/jsx-runtime";
|
|
32539
32429
|
function useTimedSpinner() {
|
|
32540
32430
|
const [elapsedSeconds, setElapsedSeconds] = useState29(0);
|
|
32541
32431
|
useEffect26(() => {
|
|
@@ -32547,7 +32437,7 @@ function useTimedSpinner() {
|
|
|
32547
32437
|
const mins = Math.floor(elapsedSeconds / 60);
|
|
32548
32438
|
const secs = elapsedSeconds % 60;
|
|
32549
32439
|
return {
|
|
32550
|
-
spinner: /* @__PURE__ */
|
|
32440
|
+
spinner: /* @__PURE__ */ jsx53(Spinner2, {}),
|
|
32551
32441
|
elapsed: mins > 0 ? `${mins}m ${secs}s` : `${secs}s`
|
|
32552
32442
|
};
|
|
32553
32443
|
}
|
|
@@ -32558,52 +32448,51 @@ var init_use_timed_spinner = __esm({
|
|
|
32558
32448
|
});
|
|
32559
32449
|
|
|
32560
32450
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/screens/PushingStep.tsx
|
|
32561
|
-
import { Box as
|
|
32451
|
+
import { Box as Box43, Text as Text45 } from "ink";
|
|
32562
32452
|
import { ProgressBar as ProgressBar2, ThemeProvider as ThemeProvider2 } from "@inkjs/ui";
|
|
32563
|
-
import { jsx as
|
|
32453
|
+
import { jsx as jsx54, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
32564
32454
|
function PushingStep({ progress, produced, counts }) {
|
|
32565
32455
|
const { spinner, elapsed } = useTimedSpinner();
|
|
32566
32456
|
const operationId = progress && progress.kind === "queued" ? progress.operationId : null;
|
|
32567
32457
|
const showGlobal = progress && progress.kind === "progress";
|
|
32568
32458
|
const showCurrent = progress && progress.kind === "progress" && progress.current ? progress.current : null;
|
|
32569
|
-
|
|
32570
|
-
|
|
32571
|
-
/* @__PURE__ */
|
|
32572
|
-
|
|
32573
|
-
/* @__PURE__ */ jsxs44(Box44, { gap: 1, children: [
|
|
32459
|
+
return /* @__PURE__ */ jsxs43(Box43, { flexDirection: "column", children: [
|
|
32460
|
+
/* @__PURE__ */ jsx54(StepHeader, { step: "push" }),
|
|
32461
|
+
/* @__PURE__ */ jsxs43(Box43, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 1, children: [
|
|
32462
|
+
/* @__PURE__ */ jsxs43(Box43, { gap: 1, children: [
|
|
32574
32463
|
spinner,
|
|
32575
|
-
/* @__PURE__ */
|
|
32464
|
+
/* @__PURE__ */ jsxs43(Text45, { children: [
|
|
32576
32465
|
"Writing ",
|
|
32577
32466
|
countedThings(produced, counts),
|
|
32578
32467
|
" to your Contentful space..."
|
|
32579
32468
|
] })
|
|
32580
32469
|
] }),
|
|
32581
|
-
operationId && /* @__PURE__ */
|
|
32582
|
-
/* @__PURE__ */
|
|
32583
|
-
/* @__PURE__ */
|
|
32470
|
+
operationId && /* @__PURE__ */ jsxs43(Box43, { gap: 1, children: [
|
|
32471
|
+
/* @__PURE__ */ jsx54(Text45, { color: PALETTE.muted, children: "Operation:" }),
|
|
32472
|
+
/* @__PURE__ */ jsx54(Text45, { children: operationId })
|
|
32584
32473
|
] }),
|
|
32585
|
-
showGlobal && progress && progress.kind === "progress" && /* @__PURE__ */
|
|
32586
|
-
/* @__PURE__ */
|
|
32587
|
-
/* @__PURE__ */
|
|
32474
|
+
showGlobal && progress && progress.kind === "progress" && /* @__PURE__ */ jsx54(Box43, { gap: 1, flexDirection: "column", children: /* @__PURE__ */ jsxs43(Box43, { gap: 2, children: [
|
|
32475
|
+
/* @__PURE__ */ jsx54(Box43, { width: 40, children: /* @__PURE__ */ jsx54(ThemeProvider2, { theme: PROGRESS_THEME, children: /* @__PURE__ */ jsx54(ProgressBar2, { value: Math.round(progress.processed / progress.total * 100) }) }) }),
|
|
32476
|
+
/* @__PURE__ */ jsxs43(Text45, { color: PALETTE.muted, children: [
|
|
32588
32477
|
progress.processed,
|
|
32589
32478
|
"/",
|
|
32590
32479
|
progress.total,
|
|
32591
32480
|
" entities"
|
|
32592
32481
|
] }),
|
|
32593
|
-
progress.failed > 0 && /* @__PURE__ */
|
|
32482
|
+
progress.failed > 0 && /* @__PURE__ */ jsxs43(Text45, { color: PALETTE.error, children: [
|
|
32594
32483
|
progress.failed,
|
|
32595
32484
|
" failed"
|
|
32596
32485
|
] })
|
|
32597
32486
|
] }) }),
|
|
32598
|
-
showCurrent && /* @__PURE__ */
|
|
32599
|
-
/* @__PURE__ */
|
|
32600
|
-
/* @__PURE__ */
|
|
32487
|
+
showCurrent && /* @__PURE__ */ jsxs43(Box43, { gap: 1, children: [
|
|
32488
|
+
/* @__PURE__ */ jsx54(Text45, { color: PALETTE.muted, children: "Now processing:" }),
|
|
32489
|
+
/* @__PURE__ */ jsx54(Text45, { children: showCurrent })
|
|
32601
32490
|
] }),
|
|
32602
|
-
/* @__PURE__ */
|
|
32491
|
+
/* @__PURE__ */ jsx54(Box43, { marginTop: 1, children: /* @__PURE__ */ jsxs43(Text45, { color: PALETTE.muted, children: [
|
|
32603
32492
|
"Elapsed: ",
|
|
32604
32493
|
elapsed
|
|
32605
32494
|
] }) })
|
|
32606
|
-
] })
|
|
32495
|
+
] })
|
|
32607
32496
|
] });
|
|
32608
32497
|
}
|
|
32609
32498
|
var init_PushingStep = __esm({
|
|
@@ -32612,7 +32501,6 @@ var init_PushingStep = __esm({
|
|
|
32612
32501
|
init_StepHeader();
|
|
32613
32502
|
init_produced();
|
|
32614
32503
|
init_use_timed_spinner();
|
|
32615
|
-
init_activity_panel();
|
|
32616
32504
|
init_theme2();
|
|
32617
32505
|
init_theme();
|
|
32618
32506
|
}
|
|
@@ -32814,8 +32702,8 @@ var init_preview_confirmation_input = __esm({
|
|
|
32814
32702
|
|
|
32815
32703
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/screens/WizardPreviewStep.tsx
|
|
32816
32704
|
import { useEffect as useEffect27, useState as useState30, useMemo as useMemo7 } from "react";
|
|
32817
|
-
import { Box as
|
|
32818
|
-
import { Fragment as
|
|
32705
|
+
import { Box as Box44, Text as Text46 } from "ink";
|
|
32706
|
+
import { Fragment as Fragment16, jsx as jsx55, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
32819
32707
|
function buildPreviewSummaryLines(preview) {
|
|
32820
32708
|
const lines = [];
|
|
32821
32709
|
const { components, tokens } = preview;
|
|
@@ -33067,12 +32955,12 @@ function WizardPreviewStep({
|
|
|
33067
32955
|
return;
|
|
33068
32956
|
}
|
|
33069
32957
|
});
|
|
33070
|
-
return /* @__PURE__ */
|
|
33071
|
-
/* @__PURE__ */
|
|
33072
|
-
/* @__PURE__ */
|
|
33073
|
-
hasAnything ? /* @__PURE__ */
|
|
33074
|
-
/* @__PURE__ */
|
|
33075
|
-
/* @__PURE__ */
|
|
32958
|
+
return /* @__PURE__ */ jsxs44(Box44, { flexDirection: "column", children: [
|
|
32959
|
+
/* @__PURE__ */ jsx55(StepHeader, { step: "push" }),
|
|
32960
|
+
/* @__PURE__ */ jsxs44(Box44, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 2, children: [
|
|
32961
|
+
hasAnything ? /* @__PURE__ */ jsxs44(Fragment16, { children: [
|
|
32962
|
+
/* @__PURE__ */ jsx55(Text46, { children: "Here's what will happen in your space:" }),
|
|
32963
|
+
/* @__PURE__ */ jsxs44(
|
|
33076
32964
|
WindowedPanel,
|
|
33077
32965
|
{
|
|
33078
32966
|
width: Math.max(20, terminalColumns - 4),
|
|
@@ -33080,15 +32968,15 @@ function WizardPreviewStep({
|
|
|
33080
32968
|
title: diffExpanded ? `Diff (${diffLines.length} lines)` : "",
|
|
33081
32969
|
focused: false,
|
|
33082
32970
|
children: [
|
|
33083
|
-
activeLines.slice(boundedScrollOffset, boundedScrollOffset + viewportHeight).map((line) => /* @__PURE__ */
|
|
33084
|
-
/* @__PURE__ */
|
|
32971
|
+
activeLines.slice(boundedScrollOffset, boundedScrollOffset + viewportHeight).map((line) => /* @__PURE__ */ jsx55(Text46, { color: line.color, wrap: "truncate-end", children: line.text }, line.key)),
|
|
32972
|
+
/* @__PURE__ */ jsx55(Text46, { color: PALETTE.muted, wrap: "truncate-end", children: formatPreviewScrollIndicator(activeLines.length, boundedScrollOffset, viewportHeight) })
|
|
33085
32973
|
]
|
|
33086
32974
|
}
|
|
33087
32975
|
)
|
|
33088
|
-
] }) : /* @__PURE__ */
|
|
33089
|
-
breakingWithImpact && /* @__PURE__ */
|
|
33090
|
-
/* @__PURE__ */
|
|
33091
|
-
/* @__PURE__ */
|
|
32976
|
+
] }) : /* @__PURE__ */ jsx55(Text46, { color: PALETTE.muted, children: "Nothing to push \u2014 everything is already up to date." }),
|
|
32977
|
+
breakingWithImpact && /* @__PURE__ */ jsx55(Box44, { marginTop: 1, children: /* @__PURE__ */ jsx55(Text46, { color: PALETTE.error, bold: true, children: "\u26A0 Breaking changes will affect downstream entities. Press Enter to acknowledge and apply." }) }),
|
|
32978
|
+
/* @__PURE__ */ jsx55(SpaceEnvironment, { spaceId, environmentId }),
|
|
32979
|
+
/* @__PURE__ */ jsx55(Box44, { marginTop: 1, children: /* @__PURE__ */ jsx55(
|
|
33092
32980
|
ControlHints,
|
|
33093
32981
|
{
|
|
33094
32982
|
hints: [
|
|
@@ -33335,8 +33223,8 @@ var init_use_flow_log = __esm({
|
|
|
33335
33223
|
});
|
|
33336
33224
|
|
|
33337
33225
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/flow/screen.tsx
|
|
33338
|
-
import { Box as
|
|
33339
|
-
import { jsx as
|
|
33226
|
+
import { Box as Box45 } from "ink";
|
|
33227
|
+
import { jsx as jsx56, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
33340
33228
|
function canEditFromPreview(cdf) {
|
|
33341
33229
|
if (!cdf) return false;
|
|
33342
33230
|
return parseCDFComponents(cdf).components.length > 0;
|
|
@@ -33356,7 +33244,7 @@ function FlowScreen({
|
|
|
33356
33244
|
const content = (() => {
|
|
33357
33245
|
switch (state2.step) {
|
|
33358
33246
|
case "final-review":
|
|
33359
|
-
return /* @__PURE__ */
|
|
33247
|
+
return /* @__PURE__ */ jsx56(
|
|
33360
33248
|
GenerateReviewStep,
|
|
33361
33249
|
{
|
|
33362
33250
|
extractSessionId: state2.extractSessionId,
|
|
@@ -33373,10 +33261,10 @@ function FlowScreen({
|
|
|
33373
33261
|
}
|
|
33374
33262
|
);
|
|
33375
33263
|
case "previewing":
|
|
33376
|
-
return /* @__PURE__ */
|
|
33264
|
+
return /* @__PURE__ */ jsx56(RunningStep, { step: "push", description: `Computing diff for ${things} against your Contentful space...` });
|
|
33377
33265
|
case "preview-gate":
|
|
33378
33266
|
if (!state2.serverPreview) return null;
|
|
33379
|
-
return /* @__PURE__ */
|
|
33267
|
+
return /* @__PURE__ */ jsx56(
|
|
33380
33268
|
WizardPreviewStep,
|
|
33381
33269
|
{
|
|
33382
33270
|
preview: state2.serverPreview,
|
|
@@ -33388,9 +33276,9 @@ function FlowScreen({
|
|
|
33388
33276
|
}
|
|
33389
33277
|
);
|
|
33390
33278
|
case "pushing":
|
|
33391
|
-
return /* @__PURE__ */
|
|
33279
|
+
return /* @__PURE__ */ jsx56(PushingStep, { progress: state2.pushProgress, produced, counts });
|
|
33392
33280
|
case "path-prompt":
|
|
33393
|
-
return /* @__PURE__ */
|
|
33281
|
+
return /* @__PURE__ */ jsx56(
|
|
33394
33282
|
PathPrompt,
|
|
33395
33283
|
{
|
|
33396
33284
|
summary: `Saving ${things}${state2.credentialsSkipped ? "" : " and pushing them to your Contentful space"}.`,
|
|
@@ -33400,10 +33288,10 @@ function FlowScreen({
|
|
|
33400
33288
|
}
|
|
33401
33289
|
);
|
|
33402
33290
|
case "printing":
|
|
33403
|
-
return /* @__PURE__ */
|
|
33291
|
+
return /* @__PURE__ */ jsx56(RunningStep, { step: "push", description: "Writing output files to disk..." });
|
|
33404
33292
|
case "print-gate": {
|
|
33405
33293
|
const teaser = buildRunTeaserLine(state2.lastRunId);
|
|
33406
|
-
return /* @__PURE__ */
|
|
33294
|
+
return /* @__PURE__ */ jsx56(
|
|
33407
33295
|
GateStep,
|
|
33408
33296
|
{
|
|
33409
33297
|
step: "push",
|
|
@@ -33418,7 +33306,7 @@ function FlowScreen({
|
|
|
33418
33306
|
}
|
|
33419
33307
|
case "done": {
|
|
33420
33308
|
const totalFailed = state2.pushResult.componentTypes.failed + state2.pushResult.designTokens.failed;
|
|
33421
|
-
return /* @__PURE__ */
|
|
33309
|
+
return /* @__PURE__ */ jsx56(
|
|
33422
33310
|
DoneStep,
|
|
33423
33311
|
{
|
|
33424
33312
|
componentTypes: state2.pushResult.componentTypes,
|
|
@@ -33435,7 +33323,7 @@ function FlowScreen({
|
|
|
33435
33323
|
);
|
|
33436
33324
|
}
|
|
33437
33325
|
case "preview-validation-error":
|
|
33438
|
-
return /* @__PURE__ */
|
|
33326
|
+
return /* @__PURE__ */ jsx56(
|
|
33439
33327
|
PreviewValidationErrorScreen,
|
|
33440
33328
|
{
|
|
33441
33329
|
errors: state2.previewValidationErrors,
|
|
@@ -33446,7 +33334,7 @@ function FlowScreen({
|
|
|
33446
33334
|
}
|
|
33447
33335
|
);
|
|
33448
33336
|
case "error":
|
|
33449
|
-
return /* @__PURE__ */
|
|
33337
|
+
return /* @__PURE__ */ jsx56(
|
|
33450
33338
|
ErrorStep,
|
|
33451
33339
|
{
|
|
33452
33340
|
stepName: state2.errorStep,
|
|
@@ -33457,8 +33345,8 @@ function FlowScreen({
|
|
|
33457
33345
|
);
|
|
33458
33346
|
}
|
|
33459
33347
|
})();
|
|
33460
|
-
return /* @__PURE__ */
|
|
33461
|
-
/* @__PURE__ */
|
|
33348
|
+
return /* @__PURE__ */ jsxs45(Box45, { flexDirection: "column", children: [
|
|
33349
|
+
/* @__PURE__ */ jsx56(CustomPromptBanner, { generatePromptPath }),
|
|
33462
33350
|
content
|
|
33463
33351
|
] });
|
|
33464
33352
|
}
|
|
@@ -33670,21 +33558,6 @@ var init_preview2 = __esm({
|
|
|
33670
33558
|
}
|
|
33671
33559
|
});
|
|
33672
33560
|
|
|
33673
|
-
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/support/push-progress.ts
|
|
33674
|
-
function activityFromItems(items) {
|
|
33675
|
-
return items.filter((item) => item.status !== "queued").map((item) => ({
|
|
33676
|
-
name: item.id,
|
|
33677
|
-
state: item.status === "failed" ? "failed" : "done",
|
|
33678
|
-
detail: `${item.action} ${item.entityType === "DesignToken" ? "token" : "component"}`,
|
|
33679
|
-
...item.error ? { error: typeof item.error === "string" ? item.error : item.error.message } : {}
|
|
33680
|
-
}));
|
|
33681
|
-
}
|
|
33682
|
-
var init_push_progress = __esm({
|
|
33683
|
-
"packages/experience-design-system-cli/src/tui/import/steps/10-flow/support/push-progress.ts"() {
|
|
33684
|
-
"use strict";
|
|
33685
|
-
}
|
|
33686
|
-
});
|
|
33687
|
-
|
|
33688
33561
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/flow/push.ts
|
|
33689
33562
|
async function runPush(input, deps, onPatch) {
|
|
33690
33563
|
if (shouldRefusePush(input.state)) return buildSkippedPushTransition();
|
|
@@ -33738,14 +33611,7 @@ async function runPush(input, deps, onPatch) {
|
|
|
33738
33611
|
const lastDone = items.length > 0 ? items[items.length - 1] : null;
|
|
33739
33612
|
const current = lastDone && lastDone.status === "succeeded" ? lastDone.id : null;
|
|
33740
33613
|
onPatch({
|
|
33741
|
-
pushProgress: {
|
|
33742
|
-
kind: "progress",
|
|
33743
|
-
processed: done,
|
|
33744
|
-
total: summary.total,
|
|
33745
|
-
failed: summary.failed,
|
|
33746
|
-
current,
|
|
33747
|
-
items: activityFromItems(items)
|
|
33748
|
-
}
|
|
33614
|
+
pushProgress: { kind: "progress", processed: done, total: summary.total, failed: summary.failed, current }
|
|
33749
33615
|
});
|
|
33750
33616
|
}
|
|
33751
33617
|
safeLog(deps, { pollTick: { attempt: pollCount, status: op.sys.status, summary: op.summary } });
|
|
@@ -33857,7 +33723,6 @@ var init_push = __esm({
|
|
|
33857
33723
|
init_src3();
|
|
33858
33724
|
init_src4();
|
|
33859
33725
|
init_user_agent();
|
|
33860
|
-
init_push_progress();
|
|
33861
33726
|
init_wizard_state_transitions();
|
|
33862
33727
|
realPushDeps = (log) => ({
|
|
33863
33728
|
createClient: (options) => new ApiClient({ ...options, userAgent: cliUserAgent() }),
|
|
@@ -34403,14 +34268,14 @@ var init_help_info = __esm({
|
|
|
34403
34268
|
|
|
34404
34269
|
// packages/experience-design-system-cli/src/tui/help/PageContainer.tsx
|
|
34405
34270
|
import { useEffect as useEffect30, useState as useState31 } from "react";
|
|
34406
|
-
import { Box as
|
|
34407
|
-
import { Fragment as
|
|
34271
|
+
import { Box as Box46, Text as Text47, useInput as useInput13 } from "ink";
|
|
34272
|
+
import { Fragment as Fragment17, jsx as jsx57, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
34408
34273
|
function Section({ title, rows }) {
|
|
34409
|
-
return /* @__PURE__ */
|
|
34410
|
-
/* @__PURE__ */
|
|
34411
|
-
rows.map((row) => /* @__PURE__ */
|
|
34412
|
-
/* @__PURE__ */
|
|
34413
|
-
/* @__PURE__ */
|
|
34274
|
+
return /* @__PURE__ */ jsxs46(Box46, { flexDirection: "column", children: [
|
|
34275
|
+
/* @__PURE__ */ jsx57(Text47, { bold: true, color: PALETTE.accent, children: title }),
|
|
34276
|
+
rows.map((row) => /* @__PURE__ */ jsxs46(Box46, { gap: 1, children: [
|
|
34277
|
+
/* @__PURE__ */ jsx57(Box46, { width: 16, flexShrink: 0, children: /* @__PURE__ */ jsx57(Text47, { color: PALETTE.muted, children: row.label }) }),
|
|
34278
|
+
/* @__PURE__ */ jsx57(Text47, { children: row.value })
|
|
34414
34279
|
] }, row.label))
|
|
34415
34280
|
] });
|
|
34416
34281
|
}
|
|
@@ -34434,14 +34299,14 @@ function HelpScreen({ onDone }) {
|
|
|
34434
34299
|
return;
|
|
34435
34300
|
}
|
|
34436
34301
|
});
|
|
34437
|
-
return /* @__PURE__ */
|
|
34438
|
-
/* @__PURE__ */
|
|
34439
|
-
info ? /* @__PURE__ */
|
|
34440
|
-
/* @__PURE__ */
|
|
34441
|
-
/* @__PURE__ */
|
|
34442
|
-
/* @__PURE__ */
|
|
34443
|
-
] }) : /* @__PURE__ */
|
|
34444
|
-
/* @__PURE__ */
|
|
34302
|
+
return /* @__PURE__ */ jsxs46(Box46, { flexDirection: "column", paddingX: 2, paddingY: 1, gap: 1, children: [
|
|
34303
|
+
/* @__PURE__ */ jsx57(Text47, { bold: true, children: "Help" }),
|
|
34304
|
+
info ? /* @__PURE__ */ jsxs46(Fragment17, { children: [
|
|
34305
|
+
/* @__PURE__ */ jsx57(Section, { title: "Where things are stored", rows: info.storage }),
|
|
34306
|
+
/* @__PURE__ */ jsx57(Section, { title: "Troubleshooting", rows: info.troubleshooting }),
|
|
34307
|
+
/* @__PURE__ */ jsx57(Text47, { color: PALETTE.muted, children: "Hit a problem? Turn on Debug Mode in Settings, reproduce it, then share the session folder above. The CMA token is redacted from those logs." })
|
|
34308
|
+
] }) : /* @__PURE__ */ jsx57(Text47, { color: PALETTE.accent, children: "Loading..." }),
|
|
34309
|
+
/* @__PURE__ */ jsx57(
|
|
34445
34310
|
ControlHints,
|
|
34446
34311
|
{
|
|
34447
34312
|
hints: [
|
|
@@ -34464,8 +34329,8 @@ var init_PageContainer2 = __esm({
|
|
|
34464
34329
|
|
|
34465
34330
|
// packages/experience-design-system-cli/src/tui/settings/PageContainer.tsx
|
|
34466
34331
|
import { useState as useState32 } from "react";
|
|
34467
|
-
import { Box as
|
|
34468
|
-
import { jsx as
|
|
34332
|
+
import { Box as Box47, Text as Text48, useInput as useInput14 } from "ink";
|
|
34333
|
+
import { jsx as jsx58, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
34469
34334
|
function SettingsScreen({
|
|
34470
34335
|
onNavigate,
|
|
34471
34336
|
onBack
|
|
@@ -34496,15 +34361,15 @@ function SettingsScreen({
|
|
|
34496
34361
|
onBack();
|
|
34497
34362
|
}
|
|
34498
34363
|
});
|
|
34499
|
-
return /* @__PURE__ */
|
|
34500
|
-
/* @__PURE__ */
|
|
34501
|
-
/* @__PURE__ */
|
|
34502
|
-
items.map((item, i) => /* @__PURE__ */
|
|
34364
|
+
return /* @__PURE__ */ jsxs47(Box47, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
34365
|
+
/* @__PURE__ */ jsx58(Text48, { bold: true, children: "Settings" }),
|
|
34366
|
+
/* @__PURE__ */ jsx58(Text48, { color: PALETTE.muted, children: " " }),
|
|
34367
|
+
items.map((item, i) => /* @__PURE__ */ jsxs47(Text48, { color: i === focusIdx ? PALETTE.accent : void 0, children: [
|
|
34503
34368
|
i === focusIdx ? "> " : " ",
|
|
34504
34369
|
item.label
|
|
34505
34370
|
] }, item.label)),
|
|
34506
|
-
/* @__PURE__ */
|
|
34507
|
-
/* @__PURE__ */
|
|
34371
|
+
/* @__PURE__ */ jsx58(Text48, { children: " " }),
|
|
34372
|
+
/* @__PURE__ */ jsx58(
|
|
34508
34373
|
ControlHints,
|
|
34509
34374
|
{
|
|
34510
34375
|
hints: [
|
|
@@ -34773,15 +34638,15 @@ var init_agent_debug = __esm({
|
|
|
34773
34638
|
});
|
|
34774
34639
|
|
|
34775
34640
|
// packages/experience-design-system-cli/src/tui/settings/configuration/agents/AgentStatusBadge.tsx
|
|
34776
|
-
import { Text as
|
|
34777
|
-
import { jsx as
|
|
34641
|
+
import { Text as Text49 } from "ink";
|
|
34642
|
+
import { jsx as jsx59 } from "react/jsx-runtime";
|
|
34778
34643
|
function AgentStatusBadge({
|
|
34779
34644
|
name,
|
|
34780
34645
|
checks,
|
|
34781
34646
|
binary
|
|
34782
34647
|
}) {
|
|
34783
34648
|
const { symbol, text, tone } = LIST_STATUS[checks ? statusFromChecks(name, checks, binary) : "checking"];
|
|
34784
|
-
return /* @__PURE__ */
|
|
34649
|
+
return /* @__PURE__ */ jsx59(Text49, { color: TONE_COLOR[tone], children: `${symbol} ${text}` });
|
|
34785
34650
|
}
|
|
34786
34651
|
var TONE_COLOR;
|
|
34787
34652
|
var init_AgentStatusBadge = __esm({
|
|
@@ -34799,12 +34664,12 @@ var init_AgentStatusBadge = __esm({
|
|
|
34799
34664
|
|
|
34800
34665
|
// packages/experience-design-system-cli/src/tui/settings/configuration/agents/AgentDetail.tsx
|
|
34801
34666
|
import { useEffect as useEffect31, useState as useState33 } from "react";
|
|
34802
|
-
import { Box as
|
|
34803
|
-
import { jsx as
|
|
34667
|
+
import { Box as Box48, Text as Text50 } from "ink";
|
|
34668
|
+
import { jsx as jsx60, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
34804
34669
|
function StatusHeading() {
|
|
34805
|
-
return /* @__PURE__ */
|
|
34806
|
-
/* @__PURE__ */
|
|
34807
|
-
/* @__PURE__ */
|
|
34670
|
+
return /* @__PURE__ */ jsxs48(Box48, { gap: 1, children: [
|
|
34671
|
+
/* @__PURE__ */ jsx60(Text50, { bold: true, color: PALETTE.muted, children: "STATUS" }),
|
|
34672
|
+
/* @__PURE__ */ jsx60(Text50, { color: PALETTE.muted, children: "\xB7 read only" })
|
|
34808
34673
|
] });
|
|
34809
34674
|
}
|
|
34810
34675
|
function AgentDetail({
|
|
@@ -34867,7 +34732,7 @@ function AgentDetail({
|
|
|
34867
34732
|
};
|
|
34868
34733
|
const formFields = fields(name);
|
|
34869
34734
|
const labelWidth = formLabelWidth([...formFields, action]);
|
|
34870
|
-
return /* @__PURE__ */
|
|
34735
|
+
return /* @__PURE__ */ jsx60(
|
|
34871
34736
|
FieldForm,
|
|
34872
34737
|
{
|
|
34873
34738
|
title: `Settings \u203A Configuration \u203A Agents \u203A ${AGENT_LABELS[name]}`,
|
|
@@ -34884,9 +34749,9 @@ function AgentDetail({
|
|
|
34884
34749
|
actions: [action],
|
|
34885
34750
|
notice: testing ? null : notice,
|
|
34886
34751
|
busy: saving || testing,
|
|
34887
|
-
children: /* @__PURE__ */
|
|
34888
|
-
/* @__PURE__ */
|
|
34889
|
-
statusRows(name, checks, settings.binary).map((row) => /* @__PURE__ */
|
|
34752
|
+
children: /* @__PURE__ */ jsxs48(Box48, { flexDirection: "column", marginTop: 1, children: [
|
|
34753
|
+
/* @__PURE__ */ jsx60(StatusHeading, {}),
|
|
34754
|
+
statusRows(name, checks, settings.binary).map((row) => /* @__PURE__ */ jsx60(FormReadOnlyRow, { label: row.label, labelWidth, children: /* @__PURE__ */ jsx60(Text50, { color: TONE_COLOR[row.tone], children: row.value }) }, row.label))
|
|
34890
34755
|
] })
|
|
34891
34756
|
}
|
|
34892
34757
|
);
|
|
@@ -34912,8 +34777,8 @@ var init_AgentDetail = __esm({
|
|
|
34912
34777
|
|
|
34913
34778
|
// packages/experience-design-system-cli/src/tui/settings/configuration/agents/AgentsScreen.tsx
|
|
34914
34779
|
import { useEffect as useEffect32, useRef as useRef20, useState as useState34 } from "react";
|
|
34915
|
-
import { Box as
|
|
34916
|
-
import { Fragment as
|
|
34780
|
+
import { Box as Box49, Text as Text51, useInput as useInput15 } from "ink";
|
|
34781
|
+
import { Fragment as Fragment18, jsx as jsx61, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
34917
34782
|
function AgentsScreen({ onDone }) {
|
|
34918
34783
|
const [config, setConfig] = useState34(null);
|
|
34919
34784
|
const [focus, setFocus] = useState34(0);
|
|
@@ -35021,21 +34886,21 @@ function AgentsScreen({ onDone }) {
|
|
|
35021
34886
|
}
|
|
35022
34887
|
});
|
|
35023
34888
|
if (!config) {
|
|
35024
|
-
return /* @__PURE__ */
|
|
35025
|
-
/* @__PURE__ */
|
|
35026
|
-
/* @__PURE__ */
|
|
35027
|
-
loadError ? /* @__PURE__ */
|
|
35028
|
-
/* @__PURE__ */
|
|
34889
|
+
return /* @__PURE__ */ jsxs49(Box49, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
34890
|
+
/* @__PURE__ */ jsx61(Text51, { bold: true, children: "Settings \u203A Configuration \u203A Agents" }),
|
|
34891
|
+
/* @__PURE__ */ jsx61(Text51, { children: " " }),
|
|
34892
|
+
loadError ? /* @__PURE__ */ jsxs49(Fragment18, { children: [
|
|
34893
|
+
/* @__PURE__ */ jsxs49(Text51, { color: PALETTE.error, children: [
|
|
35029
34894
|
"\u2717 Could not read the settings: ",
|
|
35030
34895
|
loadError
|
|
35031
34896
|
] }),
|
|
35032
|
-
/* @__PURE__ */
|
|
35033
|
-
/* @__PURE__ */
|
|
35034
|
-
] }) : /* @__PURE__ */
|
|
34897
|
+
/* @__PURE__ */ jsx61(Text51, { children: " " }),
|
|
34898
|
+
/* @__PURE__ */ jsx61(ControlHints, { hints: [{ keys: "Esc/q", label: "back" }] })
|
|
34899
|
+
] }) : /* @__PURE__ */ jsx61(Text51, { color: PALETTE.accent, children: "Loading..." })
|
|
35035
34900
|
] });
|
|
35036
34901
|
}
|
|
35037
34902
|
if (open) {
|
|
35038
|
-
return /* @__PURE__ */
|
|
34903
|
+
return /* @__PURE__ */ jsx61(
|
|
35039
34904
|
AgentDetail,
|
|
35040
34905
|
{
|
|
35041
34906
|
name: open,
|
|
@@ -35056,48 +34921,48 @@ function AgentsScreen({ onDone }) {
|
|
|
35056
34921
|
);
|
|
35057
34922
|
}
|
|
35058
34923
|
const focusedAgent = AGENT_NAMES[focus];
|
|
35059
|
-
return /* @__PURE__ */
|
|
35060
|
-
/* @__PURE__ */
|
|
35061
|
-
/* @__PURE__ */
|
|
35062
|
-
/* @__PURE__ */
|
|
35063
|
-
/* @__PURE__ */
|
|
35064
|
-
/* @__PURE__ */
|
|
35065
|
-
/* @__PURE__ */
|
|
35066
|
-
/* @__PURE__ */
|
|
35067
|
-
saving && /* @__PURE__ */
|
|
34924
|
+
return /* @__PURE__ */ jsxs49(Box49, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
34925
|
+
/* @__PURE__ */ jsx61(Text51, { bold: true, children: "Settings \u203A Configuration \u203A Agents" }),
|
|
34926
|
+
/* @__PURE__ */ jsx61(Text51, { children: " " }),
|
|
34927
|
+
/* @__PURE__ */ jsx61(Text51, { color: PALETTE.muted, children: "The coding agent the CLI runs, and what was found for each one." }),
|
|
34928
|
+
/* @__PURE__ */ jsx61(Text51, { children: " " }),
|
|
34929
|
+
/* @__PURE__ */ jsxs49(Box49, { gap: 1, children: [
|
|
34930
|
+
/* @__PURE__ */ jsx61(Text51, { color: PALETTE.muted, children: "Default agent" }),
|
|
34931
|
+
/* @__PURE__ */ jsx61(Text51, { bold: true, children: AGENT_LABELS[config.defaultAgent] }),
|
|
34932
|
+
saving && /* @__PURE__ */ jsx61(Text51, { color: PALETTE.accent, children: "\u2026 saving" })
|
|
35068
34933
|
] }),
|
|
35069
|
-
/* @__PURE__ */
|
|
35070
|
-
/* @__PURE__ */
|
|
35071
|
-
/* @__PURE__ */
|
|
35072
|
-
/* @__PURE__ */
|
|
35073
|
-
/* @__PURE__ */
|
|
34934
|
+
/* @__PURE__ */ jsxs49(Box49, { marginTop: 1, gap: 1, children: [
|
|
34935
|
+
/* @__PURE__ */ jsx61(Text51, { children: " " }),
|
|
34936
|
+
/* @__PURE__ */ jsx61(Text51, { children: " " }),
|
|
34937
|
+
/* @__PURE__ */ jsx61(Box49, { width: NAME_WIDTH, flexShrink: 0, children: /* @__PURE__ */ jsx61(Text51, { color: PALETTE.muted, children: "AGENT" }) }),
|
|
34938
|
+
/* @__PURE__ */ jsx61(Text51, { color: PALETTE.muted, children: "STATUS" })
|
|
35074
34939
|
] }),
|
|
35075
34940
|
AGENT_NAMES.map((name) => {
|
|
35076
34941
|
const isFocused = focusedAgent === name;
|
|
35077
|
-
return /* @__PURE__ */
|
|
35078
|
-
/* @__PURE__ */
|
|
35079
|
-
/* @__PURE__ */
|
|
35080
|
-
/* @__PURE__ */
|
|
35081
|
-
/* @__PURE__ */
|
|
34942
|
+
return /* @__PURE__ */ jsxs49(Box49, { gap: 1, children: [
|
|
34943
|
+
/* @__PURE__ */ jsx61(Text51, { color: isFocused ? PALETTE.accent : void 0, children: isFocused ? "\u276F" : " " }),
|
|
34944
|
+
/* @__PURE__ */ jsx61(Text51, { color: PALETTE.success, children: name === config.defaultAgent ? "\u2605" : " " }),
|
|
34945
|
+
/* @__PURE__ */ jsx61(Box49, { width: NAME_WIDTH, flexShrink: 0, children: /* @__PURE__ */ jsx61(Text51, { bold: isFocused, color: isFocused ? PALETTE.accent : void 0, children: AGENT_LABELS[name] }) }),
|
|
34946
|
+
/* @__PURE__ */ jsx61(AgentStatusBadge, { name, checks: checks[name], binary: config.agents[name].binary })
|
|
35082
34947
|
] }, name);
|
|
35083
34948
|
}),
|
|
35084
|
-
/* @__PURE__ */
|
|
35085
|
-
/* @__PURE__ */
|
|
35086
|
-
panelRows(focusedAgent, checks[focusedAgent], config.agents[focusedAgent]).map((row) => /* @__PURE__ */
|
|
35087
|
-
/* @__PURE__ */
|
|
35088
|
-
/* @__PURE__ */
|
|
34949
|
+
/* @__PURE__ */ jsxs49(Box49, { flexDirection: "column", marginTop: 1, children: [
|
|
34950
|
+
/* @__PURE__ */ jsx61(Text51, { color: PALETTE.muted, children: `\u2500 ${AGENT_LABELS[focusedAgent]} ${"\u2500".repeat(30)}` }),
|
|
34951
|
+
panelRows(focusedAgent, checks[focusedAgent], config.agents[focusedAgent]).map((row) => /* @__PURE__ */ jsxs49(Box49, { gap: 1, paddingLeft: 1, children: [
|
|
34952
|
+
/* @__PURE__ */ jsx61(Box49, { width: PANEL_LABEL_WIDTH, flexShrink: 0, children: /* @__PURE__ */ jsx61(Text51, { color: PALETTE.muted, children: row.label }) }),
|
|
34953
|
+
/* @__PURE__ */ jsx61(Text51, { color: TONE_COLOR[row.tone], children: row.value })
|
|
35089
34954
|
] }, row.label))
|
|
35090
34955
|
] }),
|
|
35091
|
-
notice && /* @__PURE__ */
|
|
35092
|
-
/* @__PURE__ */
|
|
35093
|
-
/* @__PURE__ */
|
|
34956
|
+
notice && /* @__PURE__ */ jsxs49(Fragment18, { children: [
|
|
34957
|
+
/* @__PURE__ */ jsx61(Text51, { children: " " }),
|
|
34958
|
+
/* @__PURE__ */ jsxs49(Text51, { bold: true, color: notice.kind === "success" ? PALETTE.success : PALETTE.error, children: [
|
|
35094
34959
|
notice.kind === "success" ? "\u2713" : "\u2717",
|
|
35095
34960
|
" ",
|
|
35096
34961
|
notice.text
|
|
35097
34962
|
] })
|
|
35098
34963
|
] }),
|
|
35099
|
-
/* @__PURE__ */
|
|
35100
|
-
/* @__PURE__ */
|
|
34964
|
+
/* @__PURE__ */ jsx61(Text51, { children: " " }),
|
|
34965
|
+
/* @__PURE__ */ jsx61(
|
|
35101
34966
|
ControlHints,
|
|
35102
34967
|
{
|
|
35103
34968
|
hints: [
|
|
@@ -35162,8 +35027,8 @@ var init_project_store = __esm({
|
|
|
35162
35027
|
|
|
35163
35028
|
// packages/experience-design-system-cli/src/tui/settings/configuration/project/ProjectScreen.tsx
|
|
35164
35029
|
import { useEffect as useEffect33, useRef as useRef21, useState as useState35 } from "react";
|
|
35165
|
-
import { Box as
|
|
35166
|
-
import { Fragment as
|
|
35030
|
+
import { Box as Box50, Text as Text52, useInput as useInput16 } from "ink";
|
|
35031
|
+
import { Fragment as Fragment19, jsx as jsx62, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
35167
35032
|
function debugFields(config) {
|
|
35168
35033
|
return {
|
|
35169
35034
|
space_id: config?.spaceId ?? "",
|
|
@@ -35232,17 +35097,17 @@ function ProjectScreen({ onDone }) {
|
|
|
35232
35097
|
}
|
|
35233
35098
|
});
|
|
35234
35099
|
if (!config) {
|
|
35235
|
-
return /* @__PURE__ */
|
|
35236
|
-
/* @__PURE__ */
|
|
35237
|
-
/* @__PURE__ */
|
|
35238
|
-
loadError ? /* @__PURE__ */
|
|
35239
|
-
/* @__PURE__ */
|
|
35100
|
+
return /* @__PURE__ */ jsxs50(Box50, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
35101
|
+
/* @__PURE__ */ jsx62(Text52, { bold: true, children: "Settings \u203A Configuration \u203A Project" }),
|
|
35102
|
+
/* @__PURE__ */ jsx62(Text52, { children: " " }),
|
|
35103
|
+
loadError ? /* @__PURE__ */ jsxs50(Fragment19, { children: [
|
|
35104
|
+
/* @__PURE__ */ jsxs50(Text52, { color: PALETTE.error, children: [
|
|
35240
35105
|
"\u2717 Could not read the settings: ",
|
|
35241
35106
|
loadError
|
|
35242
35107
|
] }),
|
|
35243
|
-
/* @__PURE__ */
|
|
35244
|
-
/* @__PURE__ */
|
|
35245
|
-
] }) : /* @__PURE__ */
|
|
35108
|
+
/* @__PURE__ */ jsx62(Text52, { children: " " }),
|
|
35109
|
+
/* @__PURE__ */ jsx62(ControlHints, { hints: [{ keys: "Esc/q", label: "back" }] })
|
|
35110
|
+
] }) : /* @__PURE__ */ jsx62(Text52, { color: PALETTE.accent, children: "Loading..." })
|
|
35246
35111
|
] });
|
|
35247
35112
|
}
|
|
35248
35113
|
const save = () => {
|
|
@@ -35263,7 +35128,7 @@ function ProjectScreen({ onDone }) {
|
|
|
35263
35128
|
endVisit(config);
|
|
35264
35129
|
onDone();
|
|
35265
35130
|
};
|
|
35266
|
-
return /* @__PURE__ */
|
|
35131
|
+
return /* @__PURE__ */ jsx62(
|
|
35267
35132
|
FieldForm,
|
|
35268
35133
|
{
|
|
35269
35134
|
title: "Settings \u203A Configuration \u203A Project",
|
|
@@ -35309,8 +35174,8 @@ var init_ProjectScreen = __esm({
|
|
|
35309
35174
|
|
|
35310
35175
|
// packages/experience-design-system-cli/src/tui/settings/configuration/ConfigurationScreen.tsx
|
|
35311
35176
|
import { useState as useState36 } from "react";
|
|
35312
|
-
import { Box as
|
|
35313
|
-
import { jsx as
|
|
35177
|
+
import { Box as Box51, Text as Text53, useInput as useInput17 } from "ink";
|
|
35178
|
+
import { jsx as jsx63, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
35314
35179
|
function ConfigurationScreen({ onDone }) {
|
|
35315
35180
|
const [focus, setFocus] = useState36(0);
|
|
35316
35181
|
const [open, setOpen] = useState36(null);
|
|
@@ -35331,18 +35196,18 @@ function ConfigurationScreen({ onDone }) {
|
|
|
35331
35196
|
}
|
|
35332
35197
|
if (key.escape || input === "q") onDone();
|
|
35333
35198
|
});
|
|
35334
|
-
if (open === "project") return /* @__PURE__ */
|
|
35335
|
-
if (open === "agents") return /* @__PURE__ */
|
|
35336
|
-
return /* @__PURE__ */
|
|
35337
|
-
/* @__PURE__ */
|
|
35338
|
-
/* @__PURE__ */
|
|
35339
|
-
SECTIONS.map((section, index) => /* @__PURE__ */
|
|
35340
|
-
/* @__PURE__ */
|
|
35341
|
-
/* @__PURE__ */
|
|
35342
|
-
/* @__PURE__ */
|
|
35199
|
+
if (open === "project") return /* @__PURE__ */ jsx63(ProjectScreen, { onDone: close });
|
|
35200
|
+
if (open === "agents") return /* @__PURE__ */ jsx63(AgentsScreen, { onDone: close });
|
|
35201
|
+
return /* @__PURE__ */ jsxs51(Box51, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
35202
|
+
/* @__PURE__ */ jsx63(Text53, { bold: true, children: "Settings \u203A Configuration" }),
|
|
35203
|
+
/* @__PURE__ */ jsx63(Text53, { children: " " }),
|
|
35204
|
+
SECTIONS.map((section, index) => /* @__PURE__ */ jsxs51(Box51, { gap: 1, children: [
|
|
35205
|
+
/* @__PURE__ */ jsx63(Text53, { color: index === focus ? PALETTE.accent : void 0, children: index === focus ? "\u276F" : " " }),
|
|
35206
|
+
/* @__PURE__ */ jsx63(Box51, { width: 9, flexShrink: 0, children: /* @__PURE__ */ jsx63(Text53, { bold: index === focus, color: index === focus ? PALETTE.accent : void 0, children: section.label }) }),
|
|
35207
|
+
/* @__PURE__ */ jsx63(Text53, { color: PALETTE.muted, children: section.description })
|
|
35343
35208
|
] }, section.id)),
|
|
35344
|
-
/* @__PURE__ */
|
|
35345
|
-
/* @__PURE__ */
|
|
35209
|
+
/* @__PURE__ */ jsx63(Text53, { children: " " }),
|
|
35210
|
+
/* @__PURE__ */ jsx63(
|
|
35346
35211
|
ControlHints,
|
|
35347
35212
|
{
|
|
35348
35213
|
hints: [
|
|
@@ -35375,8 +35240,8 @@ var init_ConfigurationScreen = __esm({
|
|
|
35375
35240
|
|
|
35376
35241
|
// packages/experience-design-system-cli/src/tui/settings/opt-in-analytics/screen.tsx
|
|
35377
35242
|
import { useEffect as useEffect34, useState as useState37 } from "react";
|
|
35378
|
-
import { Box as
|
|
35379
|
-
import { Fragment as
|
|
35243
|
+
import { Box as Box52, Text as Text54, useInput as useInput18 } from "ink";
|
|
35244
|
+
import { Fragment as Fragment20, jsx as jsx64, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
35380
35245
|
function OptInAnalyticsScreen({ onDone }) {
|
|
35381
35246
|
const [loading, setLoading] = useState37(true);
|
|
35382
35247
|
const [enabled, setEnabled] = useState37(true);
|
|
@@ -35407,21 +35272,21 @@ function OptInAnalyticsScreen({ onDone }) {
|
|
|
35407
35272
|
onDone();
|
|
35408
35273
|
}
|
|
35409
35274
|
});
|
|
35410
|
-
return /* @__PURE__ */
|
|
35411
|
-
/* @__PURE__ */
|
|
35412
|
-
/* @__PURE__ */
|
|
35413
|
-
loading ? /* @__PURE__ */
|
|
35414
|
-
/* @__PURE__ */
|
|
35275
|
+
return /* @__PURE__ */ jsxs52(Box52, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
35276
|
+
/* @__PURE__ */ jsx64(Text54, { bold: true, children: "Settings \u203A Opt-in Analytics" }),
|
|
35277
|
+
/* @__PURE__ */ jsx64(Text54, { children: " " }),
|
|
35278
|
+
loading ? /* @__PURE__ */ jsx64(Text54, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs52(Fragment20, { children: [
|
|
35279
|
+
/* @__PURE__ */ jsxs52(Text54, { children: [
|
|
35415
35280
|
"Share anonymous usage data:",
|
|
35416
35281
|
" ",
|
|
35417
|
-
/* @__PURE__ */
|
|
35282
|
+
/* @__PURE__ */ jsx64(Text54, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
|
|
35418
35283
|
] }),
|
|
35419
|
-
/* @__PURE__ */
|
|
35420
|
-
/* @__PURE__ */
|
|
35421
|
-
/* @__PURE__ */
|
|
35284
|
+
/* @__PURE__ */ jsx64(Text54, { children: " " }),
|
|
35285
|
+
/* @__PURE__ */ jsx64(Text54, { color: PALETTE.muted, children: "Shares which CLI commands are used and where imports succeed or fail." }),
|
|
35286
|
+
/* @__PURE__ */ jsx64(Text54, { color: PALETTE.muted, children: "Never includes source code, file paths, credentials, or authored content." })
|
|
35422
35287
|
] }),
|
|
35423
|
-
/* @__PURE__ */
|
|
35424
|
-
/* @__PURE__ */
|
|
35288
|
+
/* @__PURE__ */ jsx64(Text54, { children: " " }),
|
|
35289
|
+
/* @__PURE__ */ jsx64(
|
|
35425
35290
|
ControlHints,
|
|
35426
35291
|
{
|
|
35427
35292
|
hints: [
|
|
@@ -35444,8 +35309,8 @@ var init_screen12 = __esm({
|
|
|
35444
35309
|
|
|
35445
35310
|
// packages/experience-design-system-cli/src/tui/settings/debug-mode/screen.tsx
|
|
35446
35311
|
import { useEffect as useEffect35, useRef as useRef22, useState as useState38 } from "react";
|
|
35447
|
-
import { Box as
|
|
35448
|
-
import { Fragment as
|
|
35312
|
+
import { Box as Box53, Text as Text55, useInput as useInput19 } from "ink";
|
|
35313
|
+
import { Fragment as Fragment21, jsx as jsx65, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
35449
35314
|
function DebugModeScreen({ onDone }) {
|
|
35450
35315
|
const [setting, setSetting] = useState38(null);
|
|
35451
35316
|
const [focus, setFocus] = useState38("enabled");
|
|
@@ -35521,25 +35386,25 @@ function DebugModeScreen({ onDone }) {
|
|
|
35521
35386
|
onDone();
|
|
35522
35387
|
}
|
|
35523
35388
|
});
|
|
35524
|
-
const marker = (row) => /* @__PURE__ */
|
|
35525
|
-
const label = (row, text) => /* @__PURE__ */
|
|
35526
|
-
return /* @__PURE__ */
|
|
35527
|
-
/* @__PURE__ */
|
|
35528
|
-
/* @__PURE__ */
|
|
35529
|
-
setting ? /* @__PURE__ */
|
|
35530
|
-
/* @__PURE__ */
|
|
35389
|
+
const marker = (row) => /* @__PURE__ */ jsx65(Text55, { color: focus === row ? PALETTE.accent : void 0, children: focus === row ? "\u276F" : " " });
|
|
35390
|
+
const label = (row, text) => /* @__PURE__ */ jsx65(Text55, { bold: focus === row, color: focus === row ? PALETTE.accent : PALETTE.muted, children: text });
|
|
35391
|
+
return /* @__PURE__ */ jsxs53(Box53, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
35392
|
+
/* @__PURE__ */ jsx65(Text55, { bold: true, children: "Settings \u203A Debug Mode" }),
|
|
35393
|
+
/* @__PURE__ */ jsx65(Text55, { children: " " }),
|
|
35394
|
+
setting ? /* @__PURE__ */ jsxs53(Fragment21, { children: [
|
|
35395
|
+
/* @__PURE__ */ jsxs53(Box53, { gap: 1, children: [
|
|
35531
35396
|
marker("enabled"),
|
|
35532
35397
|
label("enabled", "Debug logging:"),
|
|
35533
|
-
/* @__PURE__ */
|
|
35398
|
+
/* @__PURE__ */ jsx65(Text55, { bold: true, color: setting.enabled ? PALETTE.success : PALETTE.muted, children: setting.enabled ? "On" : "Off" })
|
|
35534
35399
|
] }),
|
|
35535
|
-
/* @__PURE__ */
|
|
35400
|
+
/* @__PURE__ */ jsxs53(Box53, { gap: 1, children: [
|
|
35536
35401
|
marker("retentionDays"),
|
|
35537
35402
|
label("retentionDays", "Delete logs after:"),
|
|
35538
35403
|
RETENTION_CHOICES.map((days) => {
|
|
35539
35404
|
const highlighted = focus === "retentionDays" && days === pending;
|
|
35540
35405
|
const saved = days === setting.retentionDays;
|
|
35541
|
-
return /* @__PURE__ */
|
|
35542
|
-
|
|
35406
|
+
return /* @__PURE__ */ jsx65(
|
|
35407
|
+
Text55,
|
|
35543
35408
|
{
|
|
35544
35409
|
bold: highlighted || saved,
|
|
35545
35410
|
underline: highlighted,
|
|
@@ -35550,15 +35415,15 @@ function DebugModeScreen({ onDone }) {
|
|
|
35550
35415
|
);
|
|
35551
35416
|
})
|
|
35552
35417
|
] }),
|
|
35553
|
-
/* @__PURE__ */
|
|
35554
|
-
notice ? /* @__PURE__ */
|
|
35418
|
+
/* @__PURE__ */ jsx65(Text55, { children: " " }),
|
|
35419
|
+
notice ? /* @__PURE__ */ jsxs53(Text55, { color: notice.kind === "success" ? PALETTE.success : PALETTE.error, children: [
|
|
35555
35420
|
notice.kind === "success" ? "\u2713" : "\u2717",
|
|
35556
35421
|
" ",
|
|
35557
35422
|
notice.text
|
|
35558
|
-
] }) : /* @__PURE__ */
|
|
35559
|
-
] }) : /* @__PURE__ */
|
|
35560
|
-
/* @__PURE__ */
|
|
35561
|
-
/* @__PURE__ */
|
|
35423
|
+
] }) : /* @__PURE__ */ jsx65(Text55, { color: PALETTE.muted, children: "\u2713 marks what is saved. Older logs are deleted the next time the CLI starts." })
|
|
35424
|
+
] }) : /* @__PURE__ */ jsx65(Text55, { color: PALETTE.muted, children: "Loading\u2026" }),
|
|
35425
|
+
/* @__PURE__ */ jsx65(Text55, { children: " " }),
|
|
35426
|
+
/* @__PURE__ */ jsx65(
|
|
35562
35427
|
ControlHints,
|
|
35563
35428
|
{
|
|
35564
35429
|
hints: [
|
|
@@ -35596,7 +35461,7 @@ __export(app_exports, {
|
|
|
35596
35461
|
runApp: () => runApp
|
|
35597
35462
|
});
|
|
35598
35463
|
import { useEffect as useEffect36, useState as useState39 } from "react";
|
|
35599
|
-
import { Fragment as
|
|
35464
|
+
import { Fragment as Fragment22, jsx as jsx66 } from "react/jsx-runtime";
|
|
35600
35465
|
function App({ importOptions, inkClear }) {
|
|
35601
35466
|
const [screen, setScreen] = useState39("start");
|
|
35602
35467
|
const [importExitCode, setImportExitCode] = useState39();
|
|
@@ -35797,9 +35662,9 @@ function App({ importOptions, inkClear }) {
|
|
|
35797
35662
|
const content = (() => {
|
|
35798
35663
|
switch (screen) {
|
|
35799
35664
|
case "import":
|
|
35800
|
-
if (showImportResult) return /* @__PURE__ */
|
|
35665
|
+
if (showImportResult) return /* @__PURE__ */ jsx66(ImportScreen, { exitCode: importExitCode, onDone: finishImportResult });
|
|
35801
35666
|
if (flow && flowStart) {
|
|
35802
|
-
return /* @__PURE__ */
|
|
35667
|
+
return /* @__PURE__ */ jsx66(
|
|
35803
35668
|
FlowScreen,
|
|
35804
35669
|
{
|
|
35805
35670
|
state: flow.state,
|
|
@@ -35810,7 +35675,7 @@ function App({ importOptions, inkClear }) {
|
|
|
35810
35675
|
);
|
|
35811
35676
|
}
|
|
35812
35677
|
if (tokenReview) {
|
|
35813
|
-
return /* @__PURE__ */
|
|
35678
|
+
return /* @__PURE__ */ jsx66(
|
|
35814
35679
|
TokenReviewScreen,
|
|
35815
35680
|
{
|
|
35816
35681
|
tokensPath: tokenReview.tokensPath,
|
|
@@ -35819,15 +35684,15 @@ function App({ importOptions, inkClear }) {
|
|
|
35819
35684
|
}
|
|
35820
35685
|
);
|
|
35821
35686
|
}
|
|
35822
|
-
if (importDefaults === void 0) return /* @__PURE__ */
|
|
35687
|
+
if (importDefaults === void 0) return /* @__PURE__ */ jsx66(Fragment22, {});
|
|
35823
35688
|
if (target === void 0) {
|
|
35824
|
-
return /* @__PURE__ */
|
|
35689
|
+
return /* @__PURE__ */ jsx66(PreflightScreen, { onChoose: setTarget, onQuit: leaveImport });
|
|
35825
35690
|
}
|
|
35826
35691
|
const inputStep = currentInputStep(target, answers);
|
|
35827
35692
|
if (!extractionRun && !tokensOnlyRun && inputStep !== "credentials") {
|
|
35828
35693
|
switch (inputStep) {
|
|
35829
35694
|
case "project":
|
|
35830
|
-
return /* @__PURE__ */
|
|
35695
|
+
return /* @__PURE__ */ jsx66(
|
|
35831
35696
|
WelcomeScreen,
|
|
35832
35697
|
{
|
|
35833
35698
|
mode: target,
|
|
@@ -35837,7 +35702,7 @@ function App({ importOptions, inkClear }) {
|
|
|
35837
35702
|
}
|
|
35838
35703
|
);
|
|
35839
35704
|
case "token-file":
|
|
35840
|
-
return /* @__PURE__ */
|
|
35705
|
+
return /* @__PURE__ */ jsx66(
|
|
35841
35706
|
TokenInputScreen,
|
|
35842
35707
|
{
|
|
35843
35708
|
mode: target,
|
|
@@ -35847,7 +35712,7 @@ function App({ importOptions, inkClear }) {
|
|
|
35847
35712
|
}
|
|
35848
35713
|
);
|
|
35849
35714
|
case "path-validation":
|
|
35850
|
-
return /* @__PURE__ */
|
|
35715
|
+
return /* @__PURE__ */ jsx66(
|
|
35851
35716
|
PathValidationScreen,
|
|
35852
35717
|
{
|
|
35853
35718
|
mode: target,
|
|
@@ -35862,9 +35727,9 @@ function App({ importOptions, inkClear }) {
|
|
|
35862
35727
|
}
|
|
35863
35728
|
if (tokensOnlyRun) {
|
|
35864
35729
|
if (tokensOnly?.status === "done" && !tokensOnly.result.ok) {
|
|
35865
|
-
return /* @__PURE__ */
|
|
35730
|
+
return /* @__PURE__ */ jsx66(ErrorStep, { stepName: tokensOnly.result.step, message: tokensOnly.result.message, onExit: leaveImport });
|
|
35866
35731
|
}
|
|
35867
|
-
return /* @__PURE__ */
|
|
35732
|
+
return /* @__PURE__ */ jsx66(
|
|
35868
35733
|
RunningStep,
|
|
35869
35734
|
{
|
|
35870
35735
|
step: "generation",
|
|
@@ -35875,10 +35740,10 @@ function App({ importOptions, inkClear }) {
|
|
|
35875
35740
|
}
|
|
35876
35741
|
if (extractionRun) {
|
|
35877
35742
|
if (extraction?.status === "done" && !extraction.result.ok) {
|
|
35878
|
-
return /* @__PURE__ */
|
|
35743
|
+
return /* @__PURE__ */ jsx66(ErrorStep, { stepName: extraction.result.step, message: extraction.result.message, onExit: leaveImport });
|
|
35879
35744
|
}
|
|
35880
35745
|
if (extraction?.status === "running") {
|
|
35881
|
-
return /* @__PURE__ */
|
|
35746
|
+
return /* @__PURE__ */ jsx66(
|
|
35882
35747
|
ExtractionScreen,
|
|
35883
35748
|
{
|
|
35884
35749
|
progress: extraction.progress,
|
|
@@ -35887,14 +35752,14 @@ function App({ importOptions, inkClear }) {
|
|
|
35887
35752
|
}
|
|
35888
35753
|
);
|
|
35889
35754
|
}
|
|
35890
|
-
return /* @__PURE__ */
|
|
35755
|
+
return /* @__PURE__ */ jsx66(Fragment22, {});
|
|
35891
35756
|
}
|
|
35892
35757
|
if (scopeRun && scopeFlow) {
|
|
35893
35758
|
if (scopeFlow.status === "failed") {
|
|
35894
|
-
return /* @__PURE__ */
|
|
35759
|
+
return /* @__PURE__ */ jsx66(ErrorStep, { stepName: "scope gate", message: scopeFlow.message, onExit: leaveImport });
|
|
35895
35760
|
}
|
|
35896
35761
|
if (scopeFlow.status === "deciding") {
|
|
35897
|
-
return /* @__PURE__ */
|
|
35762
|
+
return /* @__PURE__ */ jsx66(
|
|
35898
35763
|
ScopeGateScreen,
|
|
35899
35764
|
{
|
|
35900
35765
|
components: scopeFlow.load.components,
|
|
@@ -35905,10 +35770,10 @@ function App({ importOptions, inkClear }) {
|
|
|
35905
35770
|
);
|
|
35906
35771
|
}
|
|
35907
35772
|
if (generation?.status === "done" && !generation.result.ok) {
|
|
35908
|
-
return /* @__PURE__ */
|
|
35773
|
+
return /* @__PURE__ */ jsx66(ErrorStep, { stepName: generation.result.step, message: generation.result.message, onExit: leaveImport });
|
|
35909
35774
|
}
|
|
35910
35775
|
if (generation?.status === "running") {
|
|
35911
|
-
return /* @__PURE__ */
|
|
35776
|
+
return /* @__PURE__ */ jsx66(
|
|
35912
35777
|
GenerationScreen,
|
|
35913
35778
|
{
|
|
35914
35779
|
progress: generation.progress,
|
|
@@ -35919,9 +35784,9 @@ function App({ importOptions, inkClear }) {
|
|
|
35919
35784
|
}
|
|
35920
35785
|
);
|
|
35921
35786
|
}
|
|
35922
|
-
return /* @__PURE__ */
|
|
35787
|
+
return /* @__PURE__ */ jsx66(Fragment22, {});
|
|
35923
35788
|
}
|
|
35924
|
-
return /* @__PURE__ */
|
|
35789
|
+
return /* @__PURE__ */ jsx66(
|
|
35925
35790
|
CredentialsScreen,
|
|
35926
35791
|
{
|
|
35927
35792
|
mode: target,
|
|
@@ -35932,27 +35797,27 @@ function App({ importOptions, inkClear }) {
|
|
|
35932
35797
|
}
|
|
35933
35798
|
);
|
|
35934
35799
|
case "help":
|
|
35935
|
-
return /* @__PURE__ */
|
|
35800
|
+
return /* @__PURE__ */ jsx66(HelpScreen, { onDone: goToStart });
|
|
35936
35801
|
case "settings":
|
|
35937
|
-
return /* @__PURE__ */
|
|
35802
|
+
return /* @__PURE__ */ jsx66(SettingsScreen, { onNavigate: setScreen, onBack: goToStart });
|
|
35938
35803
|
case "settings-configuration":
|
|
35939
|
-
return /* @__PURE__ */
|
|
35804
|
+
return /* @__PURE__ */ jsx66(ConfigurationScreen, { onDone: goToSettings });
|
|
35940
35805
|
case "settings-opt-in-analytics":
|
|
35941
|
-
return /* @__PURE__ */
|
|
35806
|
+
return /* @__PURE__ */ jsx66(OptInAnalyticsScreen, { onDone: goToSettings });
|
|
35942
35807
|
case "settings-debug-mode":
|
|
35943
|
-
return /* @__PURE__ */
|
|
35808
|
+
return /* @__PURE__ */ jsx66(DebugModeScreen, { onDone: goToSettings });
|
|
35944
35809
|
case "start":
|
|
35945
|
-
return /* @__PURE__ */
|
|
35810
|
+
return /* @__PURE__ */ jsx66(HomeScreen, { onNavigate: setScreen });
|
|
35946
35811
|
}
|
|
35947
35812
|
})();
|
|
35948
|
-
return /* @__PURE__ */
|
|
35813
|
+
return /* @__PURE__ */ jsx66(HiddenStepsContext.Provider, { value: target === "tokens" ? TOKENS_ONLY_HIDDEN_STEPS : [], children: content });
|
|
35949
35814
|
}
|
|
35950
35815
|
async function runApp(renderApp, importOptions) {
|
|
35951
35816
|
const inkClear = () => {
|
|
35952
35817
|
instance.clear?.();
|
|
35953
35818
|
process.stdout.write("\x1B[H\x1B[0J");
|
|
35954
35819
|
};
|
|
35955
|
-
const instance = renderApp(/* @__PURE__ */
|
|
35820
|
+
const instance = renderApp(/* @__PURE__ */ jsx66(App, { importOptions, inkClear }));
|
|
35956
35821
|
await instance.waitUntilExit();
|
|
35957
35822
|
}
|
|
35958
35823
|
var TOKENS_ONLY_HIDDEN_STEPS;
|