@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/app.js
CHANGED
|
@@ -2711,7 +2711,7 @@ function ImportScreen({ exitCode, onDone }) {
|
|
|
2711
2711
|
|
|
2712
2712
|
// packages/experience-design-system-cli/src/tui/import/steps/00-preflight/screen.tsx
|
|
2713
2713
|
import { useEffect as useEffect4, useRef, useState as useState4 } from "react";
|
|
2714
|
-
import { Box as
|
|
2714
|
+
import { Box as Box9, Text as Text9 } from "ink";
|
|
2715
2715
|
init_debug_store();
|
|
2716
2716
|
|
|
2717
2717
|
// packages/experience-design-system-cli/src/tui/import/steps/00-preflight/controls.ts
|
|
@@ -3050,8 +3050,8 @@ function OverviewBox({ steps }) {
|
|
|
3050
3050
|
}
|
|
3051
3051
|
|
|
3052
3052
|
// packages/experience-design-system-cli/src/tui/import/shared/running-step/running-step.tsx
|
|
3053
|
-
import { Box as
|
|
3054
|
-
import { ProgressBar, Spinner
|
|
3053
|
+
import { Box as Box8, Text as Text8 } from "ink";
|
|
3054
|
+
import { ProgressBar, Spinner, ThemeProvider } from "@inkjs/ui";
|
|
3055
3055
|
|
|
3056
3056
|
// packages/experience-design-system-cli/src/tui/import/shared/running-step/logic.ts
|
|
3057
3057
|
function lineState(line) {
|
|
@@ -3100,115 +3100,53 @@ function useElapsed() {
|
|
|
3100
3100
|
return formatElapsed(seconds2);
|
|
3101
3101
|
}
|
|
3102
3102
|
|
|
3103
|
-
// packages/experience-design-system-cli/src/tui/import/shared/running-step/activity-panel.tsx
|
|
3104
|
-
import { Box as Box8, Text as Text8 } from "ink";
|
|
3105
|
-
import { Spinner } from "@inkjs/ui";
|
|
3106
|
-
|
|
3107
|
-
// packages/experience-design-system-cli/src/tui/import/shared/running-step/activity.ts
|
|
3108
|
-
var BESIDE_MIN_COLUMNS = 110;
|
|
3109
|
-
var PANEL_COLUMNS = 46;
|
|
3110
|
-
function panelLayout(columns) {
|
|
3111
|
-
return columns >= BESIDE_MIN_COLUMNS ? "beside" : "below";
|
|
3112
|
-
}
|
|
3113
|
-
var PRIORITY = { failed: 0, running: 1, done: 2 };
|
|
3114
|
-
function visibleActivity(items, max) {
|
|
3115
|
-
if (items.length <= max) return { shown: [...items], hidden: 0 };
|
|
3116
|
-
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);
|
|
3117
|
-
return { shown: chosen.map((index) => items[index]), hidden: items.length - chosen.length };
|
|
3118
|
-
}
|
|
3119
|
-
function truncate(text, max) {
|
|
3120
|
-
return text.length <= max ? text : `${text.slice(0, Math.max(0, max - 1))}\u2026`;
|
|
3121
|
-
}
|
|
3122
|
-
|
|
3123
|
-
// packages/experience-design-system-cli/src/tui/import/shared/running-step/activity-panel.tsx
|
|
3124
|
-
import { Fragment, jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
3125
|
-
var MAX_ROWS = 8;
|
|
3126
|
-
var ICON = { done: "\u2713", failed: "\u2717" };
|
|
3127
|
-
var COLOR = { done: PALETTE.success, failed: PALETTE.error };
|
|
3128
|
-
function Row({ item, width }) {
|
|
3129
|
-
const time = item.ms !== void 0 ? formatDuration(item.ms) : "";
|
|
3130
|
-
const note = item.detail ? ` ${item.detail}` : "";
|
|
3131
|
-
const name = truncate(`${item.name}${note}`, Math.max(8, width - 12));
|
|
3132
|
-
return /* @__PURE__ */ jsxs8(Box8, { flexDirection: "column", children: [
|
|
3133
|
-
/* @__PURE__ */ jsxs8(Box8, { gap: 1, children: [
|
|
3134
|
-
item.state === "running" ? /* @__PURE__ */ jsx8(Spinner, {}) : /* @__PURE__ */ jsx8(Text8, { color: COLOR[item.state], children: ICON[item.state] }),
|
|
3135
|
-
/* @__PURE__ */ jsx8(Text8, { color: item.state === "failed" ? PALETTE.error : PALETTE.muted, children: name }),
|
|
3136
|
-
time && /* @__PURE__ */ jsx8(Text8, { color: PALETTE.muted, children: time })
|
|
3137
|
-
] }),
|
|
3138
|
-
item.state === "failed" && item.error && /* @__PURE__ */ jsx8(Text8, { color: PALETTE.error, children: ` ${truncate(item.error, Math.max(12, width - 6))}` })
|
|
3139
|
-
] });
|
|
3140
|
-
}
|
|
3141
|
-
function ActivityPanel({ title, items }) {
|
|
3142
|
-
const columns = useTerminalWidth();
|
|
3143
|
-
const width = panelLayout(columns) === "beside" ? PANEL_COLUMNS : Math.max(30, columns - 4);
|
|
3144
|
-
const { shown, hidden } = visibleActivity(items, MAX_ROWS);
|
|
3145
|
-
return /* @__PURE__ */ jsxs8(Box8, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.muted, paddingX: 1, width, children: [
|
|
3146
|
-
/* @__PURE__ */ jsx8(Text8, { bold: true, children: title }),
|
|
3147
|
-
shown.map((item, index) => /* @__PURE__ */ jsx8(Row, { item, width }, `${index}-${item.name}`)),
|
|
3148
|
-
hidden > 0 && /* @__PURE__ */ jsx8(Text8, { color: PALETTE.muted, children: `+ ${hidden} more` })
|
|
3149
|
-
] });
|
|
3150
|
-
}
|
|
3151
|
-
function AsideLayout({
|
|
3152
|
-
aside,
|
|
3153
|
-
children
|
|
3154
|
-
}) {
|
|
3155
|
-
const columns = useTerminalWidth();
|
|
3156
|
-
if (!aside) return /* @__PURE__ */ jsx8(Fragment, { children });
|
|
3157
|
-
const beside = panelLayout(columns) === "beside";
|
|
3158
|
-
return /* @__PURE__ */ jsxs8(Box8, { flexDirection: beside ? "row" : "column", alignItems: "flex-start", children: [
|
|
3159
|
-
children,
|
|
3160
|
-
/* @__PURE__ */ jsx8(Box8, { paddingX: beside ? 0 : 2, paddingBottom: 1, children: aside })
|
|
3161
|
-
] });
|
|
3162
|
-
}
|
|
3163
|
-
|
|
3164
3103
|
// packages/experience-design-system-cli/src/tui/import/shared/running-step/running-step.tsx
|
|
3165
|
-
import { jsx as
|
|
3104
|
+
import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
3166
3105
|
var STATE_ICON = { done: "\u2713", warning: "!", failed: "\u2717" };
|
|
3167
3106
|
var STATE_COLOR = { done: PALETTE.success, warning: PALETTE.warning, failed: PALETTE.error };
|
|
3168
3107
|
var textColor = (state2) => state2 === "warning" || state2 === "failed" ? STATE_COLOR[state2] : PALETTE.muted;
|
|
3169
3108
|
function Line({ line }) {
|
|
3170
3109
|
if (line.progress) {
|
|
3171
|
-
return /* @__PURE__ */
|
|
3172
|
-
/* @__PURE__ */
|
|
3173
|
-
/* @__PURE__ */
|
|
3174
|
-
/* @__PURE__ */
|
|
3110
|
+
return /* @__PURE__ */ jsxs8(Box8, { flexDirection: "column", gap: 1, children: [
|
|
3111
|
+
/* @__PURE__ */ jsxs8(Box8, { gap: 2, children: [
|
|
3112
|
+
/* @__PURE__ */ jsx8(Box8, { width: 40, children: /* @__PURE__ */ jsx8(ThemeProvider, { theme: PROGRESS_THEME, children: /* @__PURE__ */ jsx8(ProgressBar, { value: progressPercent(line.progress) }) }) }),
|
|
3113
|
+
/* @__PURE__ */ jsxs8(Text8, { color: PALETTE.muted, children: [
|
|
3175
3114
|
line.progress.done,
|
|
3176
3115
|
"/",
|
|
3177
3116
|
line.progress.total
|
|
3178
3117
|
] })
|
|
3179
3118
|
] }),
|
|
3180
|
-
/* @__PURE__ */
|
|
3119
|
+
/* @__PURE__ */ jsx8(Text8, { color: textColor(lineState(line)), children: line.text })
|
|
3181
3120
|
] });
|
|
3182
3121
|
}
|
|
3183
3122
|
const state2 = lineState(line);
|
|
3184
|
-
return /* @__PURE__ */
|
|
3185
|
-
state2 === "running" ? /* @__PURE__ */
|
|
3186
|
-
/* @__PURE__ */
|
|
3187
|
-
line.ms !== void 0 && /* @__PURE__ */
|
|
3123
|
+
return /* @__PURE__ */ jsxs8(Box8, { gap: 1, children: [
|
|
3124
|
+
state2 === "running" ? /* @__PURE__ */ jsx8(Spinner, {}) : /* @__PURE__ */ jsx8(Text8, { color: STATE_COLOR[state2], children: STATE_ICON[state2] }),
|
|
3125
|
+
/* @__PURE__ */ jsx8(Text8, { color: textColor(state2), children: line.text }),
|
|
3126
|
+
line.ms !== void 0 && /* @__PURE__ */ jsx8(Text8, { color: PALETTE.muted, children: formatDuration(line.ms) })
|
|
3188
3127
|
] });
|
|
3189
3128
|
}
|
|
3190
3129
|
function RunningStep({
|
|
3191
3130
|
step,
|
|
3192
3131
|
description,
|
|
3193
|
-
lines = [{ text: "Running..." }]
|
|
3194
|
-
aside
|
|
3132
|
+
lines = [{ text: "Running..." }]
|
|
3195
3133
|
}) {
|
|
3196
3134
|
const elapsed = useElapsed();
|
|
3197
|
-
return /* @__PURE__ */
|
|
3198
|
-
/* @__PURE__ */
|
|
3199
|
-
/* @__PURE__ */
|
|
3200
|
-
/* @__PURE__ */
|
|
3201
|
-
/* @__PURE__ */
|
|
3202
|
-
/* @__PURE__ */
|
|
3135
|
+
return /* @__PURE__ */ jsxs8(Box8, { flexDirection: "column", children: [
|
|
3136
|
+
/* @__PURE__ */ jsx8(StepHeader, { step }),
|
|
3137
|
+
/* @__PURE__ */ jsxs8(Box8, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 1, children: [
|
|
3138
|
+
/* @__PURE__ */ jsx8(Text8, { children: description }),
|
|
3139
|
+
/* @__PURE__ */ jsx8(Box8, { marginTop: 1, flexDirection: "column", gap: 1, children: lines.map((line, index) => /* @__PURE__ */ jsx8(Line, { line }, index)) }),
|
|
3140
|
+
/* @__PURE__ */ jsx8(Box8, { marginTop: 1, children: /* @__PURE__ */ jsxs8(Text8, { color: PALETTE.muted, children: [
|
|
3203
3141
|
"Elapsed: ",
|
|
3204
3142
|
elapsed
|
|
3205
3143
|
] }) })
|
|
3206
|
-
] })
|
|
3144
|
+
] })
|
|
3207
3145
|
] });
|
|
3208
3146
|
}
|
|
3209
3147
|
|
|
3210
3148
|
// packages/experience-design-system-cli/src/tui/import/steps/00-preflight/screen.tsx
|
|
3211
|
-
import { jsx as
|
|
3149
|
+
import { jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
3212
3150
|
var optionAt = (index) => IMPORT_TARGET_OPTIONS[index].target;
|
|
3213
3151
|
function PreflightScreen({ onChoose, onQuit }) {
|
|
3214
3152
|
const [focus, setFocus] = useState4(0);
|
|
@@ -3238,33 +3176,33 @@ function PreflightScreen({ onChoose, onQuit }) {
|
|
|
3238
3176
|
onQuit();
|
|
3239
3177
|
};
|
|
3240
3178
|
usePreflightControls({ focus, onFocus: moveTo, onChoose: choose, onQuit: quit });
|
|
3241
|
-
return /* @__PURE__ */
|
|
3242
|
-
/* @__PURE__ */
|
|
3243
|
-
/* @__PURE__ */
|
|
3244
|
-
/* @__PURE__ */
|
|
3245
|
-
/* @__PURE__ */
|
|
3179
|
+
return /* @__PURE__ */ jsxs9(Box9, { flexDirection: "column", children: [
|
|
3180
|
+
/* @__PURE__ */ jsx9(StepHeader, { step: "setup" }),
|
|
3181
|
+
/* @__PURE__ */ jsxs9(Box9, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 1, children: [
|
|
3182
|
+
/* @__PURE__ */ jsx9(Text9, { bold: true, color: PALETTE.text, children: "What do you want to import?" }),
|
|
3183
|
+
/* @__PURE__ */ jsx9(Box9, { flexDirection: "column", children: IMPORT_TARGET_OPTIONS.map((option, index) => {
|
|
3246
3184
|
const focused = index === focus;
|
|
3247
|
-
return /* @__PURE__ */
|
|
3248
|
-
/* @__PURE__ */
|
|
3249
|
-
/* @__PURE__ */
|
|
3185
|
+
return /* @__PURE__ */ jsxs9(Box9, { gap: 1, children: [
|
|
3186
|
+
/* @__PURE__ */ jsx9(Text9, { color: PALETTE.accent, children: focused ? "\u276F" : " " }),
|
|
3187
|
+
/* @__PURE__ */ jsx9(Text9, { bold: focused, color: focused ? PALETTE.accent : void 0, children: option.label })
|
|
3250
3188
|
] }, option.target);
|
|
3251
3189
|
}) }),
|
|
3252
|
-
/* @__PURE__ */
|
|
3253
|
-
/* @__PURE__ */
|
|
3190
|
+
/* @__PURE__ */ jsx9(OverviewBox, { steps: overviewFor(optionAt(focus)) }),
|
|
3191
|
+
/* @__PURE__ */ jsx9(ControlHints, { hints: PREFLIGHT_CONTROLS })
|
|
3254
3192
|
] })
|
|
3255
3193
|
] });
|
|
3256
3194
|
}
|
|
3257
3195
|
|
|
3258
3196
|
// packages/experience-design-system-cli/src/tui/import/steps/01-welcome/screen.tsx
|
|
3259
3197
|
import { useEffect as useEffect5, useRef as useRef3, useState as useState5 } from "react";
|
|
3260
|
-
import { Box as
|
|
3198
|
+
import { Box as Box10, Text as Text10 } from "ink";
|
|
3261
3199
|
init_debug_store();
|
|
3262
3200
|
|
|
3263
3201
|
// packages/experience-design-system-cli/src/tui/shared/components/ClearableTextInput.tsx
|
|
3264
3202
|
import { useRef as useRef2 } from "react";
|
|
3265
3203
|
import { useInput as useInput6 } from "ink";
|
|
3266
3204
|
import TextInput from "ink-text-input";
|
|
3267
|
-
import { jsx as
|
|
3205
|
+
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
3268
3206
|
function isClearKey(input, key) {
|
|
3269
3207
|
return key.ctrl && input === "d";
|
|
3270
3208
|
}
|
|
@@ -3278,7 +3216,7 @@ function ClearableTextInput({ onChange, ...props }) {
|
|
|
3278
3216
|
}, 0);
|
|
3279
3217
|
onChange("");
|
|
3280
3218
|
});
|
|
3281
|
-
return /* @__PURE__ */
|
|
3219
|
+
return /* @__PURE__ */ jsx10(
|
|
3282
3220
|
TextInput,
|
|
3283
3221
|
{
|
|
3284
3222
|
...props,
|
|
@@ -3314,7 +3252,7 @@ function useWelcomeControls(onQuit) {
|
|
|
3314
3252
|
}
|
|
3315
3253
|
|
|
3316
3254
|
// packages/experience-design-system-cli/src/tui/import/steps/01-welcome/screen.tsx
|
|
3317
|
-
import { jsx as
|
|
3255
|
+
import { jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
3318
3256
|
function WelcomeScreen({ mode, onContinue, onQuit, initialPath = "" }) {
|
|
3319
3257
|
const [projectPath, setProjectPath] = useState5(initialPath);
|
|
3320
3258
|
const visit = useRef3({ emptySubmits: 0 }).current;
|
|
@@ -3356,25 +3294,25 @@ function WelcomeScreen({ mode, onContinue, onQuit, initialPath = "" }) {
|
|
|
3356
3294
|
});
|
|
3357
3295
|
onContinue(path5);
|
|
3358
3296
|
};
|
|
3359
|
-
return /* @__PURE__ */
|
|
3360
|
-
/* @__PURE__ */
|
|
3361
|
-
/* @__PURE__ */
|
|
3362
|
-
/* @__PURE__ */
|
|
3363
|
-
/* @__PURE__ */
|
|
3364
|
-
/* @__PURE__ */
|
|
3365
|
-
/* @__PURE__ */
|
|
3366
|
-
/* @__PURE__ */
|
|
3367
|
-
/* @__PURE__ */
|
|
3297
|
+
return /* @__PURE__ */ jsxs10(Box10, { flexDirection: "column", children: [
|
|
3298
|
+
/* @__PURE__ */ jsx11(StepHeader, { step: "setup" }),
|
|
3299
|
+
/* @__PURE__ */ jsxs10(Box10, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 1, children: [
|
|
3300
|
+
/* @__PURE__ */ jsxs10(Box10, { flexDirection: "column", gap: 1, children: [
|
|
3301
|
+
/* @__PURE__ */ jsx11(Text10, { color: PALETTE.text, children: "Where is your component library?" }),
|
|
3302
|
+
/* @__PURE__ */ jsxs10(Box10, { children: [
|
|
3303
|
+
/* @__PURE__ */ jsx11(Text10, { color: PALETTE.accent, children: "? " }),
|
|
3304
|
+
/* @__PURE__ */ jsx11(Text10, { children: "Project path: " }),
|
|
3305
|
+
/* @__PURE__ */ jsx11(ClearableTextInput, { value: projectPath, onChange: setProjectPath, onSubmit: submit })
|
|
3368
3306
|
] })
|
|
3369
3307
|
] }),
|
|
3370
|
-
/* @__PURE__ */
|
|
3308
|
+
/* @__PURE__ */ jsx11(Box10, { children: /* @__PURE__ */ jsx11(ControlHints, { hints: WELCOME_CONTROLS }) })
|
|
3371
3309
|
] })
|
|
3372
3310
|
] });
|
|
3373
3311
|
}
|
|
3374
3312
|
|
|
3375
3313
|
// packages/experience-design-system-cli/src/tui/import/steps/02-token-input/screen.tsx
|
|
3376
3314
|
import { useEffect as useEffect6, useRef as useRef4, useState as useState6 } from "react";
|
|
3377
|
-
import { Box as
|
|
3315
|
+
import { Box as Box11, Text as Text11 } from "ink";
|
|
3378
3316
|
init_debug_store();
|
|
3379
3317
|
|
|
3380
3318
|
// packages/experience-design-system-cli/src/tui/import/steps/02-token-input/controls.ts
|
|
@@ -3441,7 +3379,7 @@ function validateTokenPath(rawPath) {
|
|
|
3441
3379
|
}
|
|
3442
3380
|
|
|
3443
3381
|
// packages/experience-design-system-cli/src/tui/import/steps/02-token-input/screen.tsx
|
|
3444
|
-
import { jsx as
|
|
3382
|
+
import { jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
3445
3383
|
var MAX_LOGGED_ATTEMPTS = 10;
|
|
3446
3384
|
function TokenInputScreen({
|
|
3447
3385
|
mode,
|
|
@@ -3505,36 +3443,36 @@ function TokenInputScreen({
|
|
|
3505
3443
|
});
|
|
3506
3444
|
onConfirm(check.path);
|
|
3507
3445
|
};
|
|
3508
|
-
return /* @__PURE__ */
|
|
3509
|
-
/* @__PURE__ */
|
|
3510
|
-
/* @__PURE__ */
|
|
3511
|
-
/* @__PURE__ */
|
|
3512
|
-
/* @__PURE__ */
|
|
3513
|
-
/* @__PURE__ */
|
|
3514
|
-
/* @__PURE__ */
|
|
3515
|
-
/* @__PURE__ */
|
|
3516
|
-
/* @__PURE__ */
|
|
3517
|
-
/* @__PURE__ */
|
|
3446
|
+
return /* @__PURE__ */ jsxs11(Box11, { flexDirection: "column", children: [
|
|
3447
|
+
/* @__PURE__ */ jsx12(StepHeader, { step: "setup" }),
|
|
3448
|
+
/* @__PURE__ */ jsxs11(Box11, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 1, children: [
|
|
3449
|
+
/* @__PURE__ */ jsx12(Text11, { bold: true, children: "Design tokens" }),
|
|
3450
|
+
/* @__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)." }),
|
|
3451
|
+
/* @__PURE__ */ jsxs11(Box11, { flexDirection: "column", children: [
|
|
3452
|
+
/* @__PURE__ */ jsxs11(Box11, { gap: 1, children: [
|
|
3453
|
+
/* @__PURE__ */ jsx12(Text11, { color: PALETTE.accent, children: "?" }),
|
|
3454
|
+
/* @__PURE__ */ jsx12(Text11, { children: "Token path:" }),
|
|
3455
|
+
/* @__PURE__ */ jsx12(ClearableTextInput, { value: tokenPath, onChange: change, onSubmit: submit })
|
|
3518
3456
|
] }),
|
|
3519
|
-
failure && /* @__PURE__ */
|
|
3520
|
-
/* @__PURE__ */
|
|
3457
|
+
failure && /* @__PURE__ */ jsxs11(Box11, { flexDirection: "column", children: [
|
|
3458
|
+
/* @__PURE__ */ jsxs11(Text11, { color: PALETTE.error, children: [
|
|
3521
3459
|
"\u2717 ",
|
|
3522
3460
|
failure.error
|
|
3523
3461
|
] }),
|
|
3524
|
-
failure.resolvedPath && /* @__PURE__ */
|
|
3462
|
+
failure.resolvedPath && /* @__PURE__ */ jsxs11(Text11, { color: PALETTE.muted, children: [
|
|
3525
3463
|
" Resolved to: ",
|
|
3526
3464
|
failure.resolvedPath
|
|
3527
3465
|
] })
|
|
3528
3466
|
] })
|
|
3529
3467
|
] }),
|
|
3530
|
-
/* @__PURE__ */
|
|
3468
|
+
/* @__PURE__ */ jsx12(Box11, { marginTop: 1, children: /* @__PURE__ */ jsx12(ControlHints, { hints: TOKEN_INPUT_CONTROLS }) })
|
|
3531
3469
|
] })
|
|
3532
3470
|
] });
|
|
3533
3471
|
}
|
|
3534
3472
|
|
|
3535
3473
|
// packages/experience-design-system-cli/src/tui/import/steps/03-path-validation/screen.tsx
|
|
3536
3474
|
import { useEffect as useEffect7, useMemo, useState as useState7 } from "react";
|
|
3537
|
-
import { Box as
|
|
3475
|
+
import { Box as Box12, Text as Text12 } from "ink";
|
|
3538
3476
|
init_debug_store();
|
|
3539
3477
|
|
|
3540
3478
|
// packages/experience-design-system-cli/src/tui/import/steps/03-path-validation/controls.ts
|
|
@@ -18150,9 +18088,9 @@ function foldSvelteAndMdIntoOther(counts) {
|
|
|
18150
18088
|
}
|
|
18151
18089
|
|
|
18152
18090
|
// packages/experience-design-system-cli/src/tui/import/steps/03-path-validation/screen.tsx
|
|
18153
|
-
import { jsx as
|
|
18154
|
-
function
|
|
18155
|
-
return /* @__PURE__ */
|
|
18091
|
+
import { jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
18092
|
+
function Row({ row }) {
|
|
18093
|
+
return /* @__PURE__ */ jsxs12(Text12, { color: row.tone === "accent" ? PALETTE.accent : row.tone === "muted" ? PALETTE.muted : void 0, children: [
|
|
18156
18094
|
" \u2022 ",
|
|
18157
18095
|
String(row.count).padStart(3),
|
|
18158
18096
|
" ",
|
|
@@ -18161,12 +18099,12 @@ function Row2({ row }) {
|
|
|
18161
18099
|
}
|
|
18162
18100
|
function Failure({ scan, path: path5 }) {
|
|
18163
18101
|
const { headline, hints } = describeFailure(scan.failure, path5);
|
|
18164
|
-
return /* @__PURE__ */
|
|
18165
|
-
/* @__PURE__ */
|
|
18102
|
+
return /* @__PURE__ */ jsxs12(Box12, { flexDirection: "column", children: [
|
|
18103
|
+
/* @__PURE__ */ jsxs12(Text12, { color: PALETTE.error, children: [
|
|
18166
18104
|
"\u2717 ",
|
|
18167
18105
|
headline
|
|
18168
18106
|
] }),
|
|
18169
|
-
hints.map((hint) => /* @__PURE__ */
|
|
18107
|
+
hints.map((hint) => /* @__PURE__ */ jsx13(Text12, { color: PALETTE.muted, children: hint }, hint))
|
|
18170
18108
|
] });
|
|
18171
18109
|
}
|
|
18172
18110
|
function Summary({
|
|
@@ -18175,24 +18113,24 @@ function Summary({
|
|
|
18175
18113
|
hasTokens
|
|
18176
18114
|
}) {
|
|
18177
18115
|
const { total, rows, warning } = summarize(scan.counts, { hasTokens });
|
|
18178
|
-
return /* @__PURE__ */
|
|
18179
|
-
/* @__PURE__ */
|
|
18116
|
+
return /* @__PURE__ */ jsxs12(Box12, { flexDirection: "column", gap: 1, children: [
|
|
18117
|
+
/* @__PURE__ */ jsxs12(Text12, { children: [
|
|
18180
18118
|
"Scanned ",
|
|
18181
|
-
/* @__PURE__ */
|
|
18119
|
+
/* @__PURE__ */ jsx13(Text12, { bold: true, children: path5 })
|
|
18182
18120
|
] }),
|
|
18183
|
-
/* @__PURE__ */
|
|
18184
|
-
/* @__PURE__ */
|
|
18121
|
+
/* @__PURE__ */ jsxs12(Box12, { flexDirection: "column", children: [
|
|
18122
|
+
/* @__PURE__ */ jsxs12(Text12, { color: PALETTE.success, children: [
|
|
18185
18123
|
"\u2713 Found ",
|
|
18186
18124
|
total,
|
|
18187
18125
|
" files:"
|
|
18188
18126
|
] }),
|
|
18189
|
-
rows.map((row) => /* @__PURE__ */
|
|
18127
|
+
rows.map((row) => /* @__PURE__ */ jsx13(Row, { row }, row.label))
|
|
18190
18128
|
] }),
|
|
18191
|
-
warning && /* @__PURE__ */
|
|
18129
|
+
warning && /* @__PURE__ */ jsxs12(Text12, { color: PALETTE.warning, children: [
|
|
18192
18130
|
"\u26A0 ",
|
|
18193
18131
|
warning
|
|
18194
18132
|
] }),
|
|
18195
|
-
/* @__PURE__ */
|
|
18133
|
+
/* @__PURE__ */ jsx13(Text12, { children: "Does this look right?" })
|
|
18196
18134
|
] });
|
|
18197
18135
|
}
|
|
18198
18136
|
function PathValidationScreen({
|
|
@@ -18239,30 +18177,30 @@ function PathValidationScreen({
|
|
|
18239
18177
|
onBack();
|
|
18240
18178
|
}
|
|
18241
18179
|
});
|
|
18242
|
-
return /* @__PURE__ */
|
|
18243
|
-
/* @__PURE__ */
|
|
18244
|
-
/* @__PURE__ */
|
|
18245
|
-
scan === void 0 && /* @__PURE__ */
|
|
18180
|
+
return /* @__PURE__ */ jsxs12(Box12, { flexDirection: "column", children: [
|
|
18181
|
+
/* @__PURE__ */ jsx13(StepHeader, { step: "setup" }),
|
|
18182
|
+
/* @__PURE__ */ jsxs12(Box12, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 1, children: [
|
|
18183
|
+
scan === void 0 && /* @__PURE__ */ jsxs12(Text12, { color: PALETTE.muted, children: [
|
|
18246
18184
|
"Scanning ",
|
|
18247
|
-
/* @__PURE__ */
|
|
18185
|
+
/* @__PURE__ */ jsx13(Text12, { bold: true, children: resolvedPath }),
|
|
18248
18186
|
"..."
|
|
18249
18187
|
] }),
|
|
18250
|
-
scan?.ok === false && /* @__PURE__ */
|
|
18251
|
-
scan?.ok === true && /* @__PURE__ */
|
|
18252
|
-
/* @__PURE__ */
|
|
18188
|
+
scan?.ok === false && /* @__PURE__ */ jsx13(Failure, { scan, path: resolvedPath }),
|
|
18189
|
+
scan?.ok === true && /* @__PURE__ */ jsx13(Summary, { scan, path: resolvedPath, hasTokens }),
|
|
18190
|
+
/* @__PURE__ */ jsx13(Box12, { marginTop: 1, children: /* @__PURE__ */ jsx13(ControlHints, { hints: controlsFor(phase) }) })
|
|
18253
18191
|
] })
|
|
18254
18192
|
] });
|
|
18255
18193
|
}
|
|
18256
18194
|
|
|
18257
18195
|
// packages/experience-design-system-cli/src/tui/import/steps/04-credentials/screen.tsx
|
|
18258
18196
|
import { useEffect as useEffect8, useRef as useRef5, useState as useState9 } from "react";
|
|
18259
|
-
import { Box as
|
|
18197
|
+
import { Box as Box14, Text as Text14, useInput as useInput11 } from "ink";
|
|
18260
18198
|
init_debug_store();
|
|
18261
18199
|
|
|
18262
18200
|
// packages/experience-design-system-cli/src/tui/shared/components/FieldForm.tsx
|
|
18263
18201
|
import { useState as useState8 } from "react";
|
|
18264
|
-
import { Box as
|
|
18265
|
-
import { Fragment
|
|
18202
|
+
import { Box as Box13, Text as Text13, useInput as useInput10 } from "ink";
|
|
18203
|
+
import { Fragment, jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
18266
18204
|
function formLabelWidth(rows) {
|
|
18267
18205
|
return Math.max(...rows.map((row) => row.label.length));
|
|
18268
18206
|
}
|
|
@@ -18271,9 +18209,9 @@ function FormReadOnlyRow({
|
|
|
18271
18209
|
labelWidth,
|
|
18272
18210
|
children
|
|
18273
18211
|
}) {
|
|
18274
|
-
return /* @__PURE__ */
|
|
18275
|
-
/* @__PURE__ */
|
|
18276
|
-
/* @__PURE__ */
|
|
18212
|
+
return /* @__PURE__ */ jsxs13(Box13, { gap: 1, children: [
|
|
18213
|
+
/* @__PURE__ */ jsx14(Text13, { children: " " }),
|
|
18214
|
+
/* @__PURE__ */ jsx14(Box13, { width: labelWidth, flexShrink: 0, children: /* @__PURE__ */ jsx14(Text13, { color: PALETTE.muted, children: label }) }),
|
|
18277
18215
|
children
|
|
18278
18216
|
] });
|
|
18279
18217
|
}
|
|
@@ -18360,23 +18298,23 @@ function FieldForm({
|
|
|
18360
18298
|
setValueBeforeEdit(values[next.key]);
|
|
18361
18299
|
setActive(active + 1);
|
|
18362
18300
|
};
|
|
18363
|
-
const pointer = (isActive) => /* @__PURE__ */
|
|
18364
|
-
return /* @__PURE__ */
|
|
18301
|
+
const pointer = (isActive) => /* @__PURE__ */ jsx14(Text13, { color: isActive ? PALETTE.accent : void 0, children: isActive ? "\u276F" : " " });
|
|
18302
|
+
return /* @__PURE__ */ jsxs13(Box13, { flexDirection: "column", children: [
|
|
18365
18303
|
header,
|
|
18366
|
-
/* @__PURE__ */
|
|
18367
|
-
/* @__PURE__ */
|
|
18368
|
-
/* @__PURE__ */
|
|
18369
|
-
subtitle && /* @__PURE__ */
|
|
18370
|
-
/* @__PURE__ */
|
|
18371
|
-
/* @__PURE__ */
|
|
18304
|
+
/* @__PURE__ */ jsxs13(Box13, { flexDirection: "column", paddingX: 2, paddingTop: header ? 0 : 1, paddingBottom: 1, children: [
|
|
18305
|
+
/* @__PURE__ */ jsx14(Text13, { bold: true, children: title }),
|
|
18306
|
+
/* @__PURE__ */ jsx14(Text13, { children: " " }),
|
|
18307
|
+
subtitle && /* @__PURE__ */ jsx14(Text13, { color: PALETTE.muted, children: subtitle }),
|
|
18308
|
+
/* @__PURE__ */ jsx14(Text13, { children: " " }),
|
|
18309
|
+
/* @__PURE__ */ jsxs13(Box13, { flexDirection: "column", children: [
|
|
18372
18310
|
fields2.map((field, index) => {
|
|
18373
18311
|
const isActive = index === active;
|
|
18374
18312
|
const value = values[field.key];
|
|
18375
18313
|
const display = field.masked ? "\u2022".repeat(value.length) : value;
|
|
18376
|
-
return /* @__PURE__ */
|
|
18314
|
+
return /* @__PURE__ */ jsxs13(Box13, { gap: 1, children: [
|
|
18377
18315
|
pointer(isActive),
|
|
18378
|
-
/* @__PURE__ */
|
|
18379
|
-
isActive && editing ? /* @__PURE__ */
|
|
18316
|
+
/* @__PURE__ */ jsx14(Box13, { width: labelWidth, flexShrink: 0, children: /* @__PURE__ */ jsx14(Text13, { bold: isActive, color: isActive ? PALETTE.accent : PALETTE.muted, children: field.label }) }),
|
|
18317
|
+
isActive && editing ? /* @__PURE__ */ jsx14(
|
|
18380
18318
|
ClearableTextInput,
|
|
18381
18319
|
{
|
|
18382
18320
|
value,
|
|
@@ -18384,34 +18322,34 @@ function FieldForm({
|
|
|
18384
18322
|
onSubmit: submitField,
|
|
18385
18323
|
mask: field.masked ? "\u2022" : void 0
|
|
18386
18324
|
}
|
|
18387
|
-
) : display ? /* @__PURE__ */
|
|
18325
|
+
) : display ? /* @__PURE__ */ jsx14(Text13, { bold: true, children: display }) : (
|
|
18388
18326
|
// An empty value shows its hint (or "(empty)") in the value's place, not after an empty element, so the
|
|
18389
18327
|
// text starts in the same column as every other row's.
|
|
18390
|
-
/* @__PURE__ */
|
|
18328
|
+
/* @__PURE__ */ jsx14(Text13, { color: PALETTE.muted, children: field.hint ?? "(empty)" })
|
|
18391
18329
|
),
|
|
18392
|
-
display && field.hint && /* @__PURE__ */
|
|
18330
|
+
display && field.hint && /* @__PURE__ */ jsx14(Text13, { color: PALETTE.muted, children: field.hint })
|
|
18393
18331
|
] }, field.key);
|
|
18394
18332
|
}),
|
|
18395
18333
|
actions.map((action, index) => {
|
|
18396
18334
|
const isActive = fields2.length + index === active;
|
|
18397
|
-
return /* @__PURE__ */
|
|
18335
|
+
return /* @__PURE__ */ jsxs13(Box13, { gap: 1, children: [
|
|
18398
18336
|
pointer(isActive),
|
|
18399
|
-
/* @__PURE__ */
|
|
18400
|
-
/* @__PURE__ */
|
|
18337
|
+
/* @__PURE__ */ jsx14(Box13, { width: labelWidth, flexShrink: 0, children: /* @__PURE__ */ jsx14(Text13, { bold: isActive, color: isActive ? PALETTE.accent : PALETTE.muted, children: action.label }) }),
|
|
18338
|
+
/* @__PURE__ */ jsx14(Text13, { color: action.running ? PALETTE.accent : PALETTE.muted, children: action.running ? action.runningText ?? "running..." : action.description })
|
|
18401
18339
|
] }, action.label);
|
|
18402
18340
|
})
|
|
18403
18341
|
] }),
|
|
18404
|
-
notice && /* @__PURE__ */
|
|
18405
|
-
/* @__PURE__ */
|
|
18406
|
-
/* @__PURE__ */
|
|
18342
|
+
notice && /* @__PURE__ */ jsxs13(Fragment, { children: [
|
|
18343
|
+
/* @__PURE__ */ jsx14(Text13, { children: " " }),
|
|
18344
|
+
/* @__PURE__ */ jsxs13(Text13, { color: notice.kind === "success" ? PALETTE.success : PALETTE.error, children: [
|
|
18407
18345
|
notice.kind === "success" ? "\u2713" : "\u2717",
|
|
18408
18346
|
" ",
|
|
18409
18347
|
notice.text
|
|
18410
18348
|
] })
|
|
18411
18349
|
] }),
|
|
18412
18350
|
children,
|
|
18413
|
-
/* @__PURE__ */
|
|
18414
|
-
/* @__PURE__ */
|
|
18351
|
+
/* @__PURE__ */ jsx14(Text13, { children: " " }),
|
|
18352
|
+
/* @__PURE__ */ jsx14(
|
|
18415
18353
|
ControlHints,
|
|
18416
18354
|
{
|
|
18417
18355
|
hints: editing ? [
|
|
@@ -18547,7 +18485,7 @@ function toUserError(error, host) {
|
|
|
18547
18485
|
}
|
|
18548
18486
|
|
|
18549
18487
|
// packages/experience-design-system-cli/src/tui/import/steps/04-credentials/screen.tsx
|
|
18550
|
-
import { Fragment as
|
|
18488
|
+
import { Fragment as Fragment2, jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
18551
18489
|
var FIELDS2 = [
|
|
18552
18490
|
{ key: "spaceId", label: "Space ID" },
|
|
18553
18491
|
{ key: "environmentId", label: "Environment ID" },
|
|
@@ -18676,24 +18614,24 @@ function CredentialsScreen({
|
|
|
18676
18614
|
});
|
|
18677
18615
|
const labelWidth = formLabelWidth([...FIELDS2, ...MENU]);
|
|
18678
18616
|
const changed = !isUnchanged(normalize(values), initialValues);
|
|
18679
|
-
return /* @__PURE__ */
|
|
18680
|
-
/* @__PURE__ */
|
|
18681
|
-
/* @__PURE__ */
|
|
18682
|
-
/* @__PURE__ */
|
|
18683
|
-
/* @__PURE__ */
|
|
18684
|
-
/* @__PURE__ */
|
|
18685
|
-
/* @__PURE__ */
|
|
18686
|
-
/* @__PURE__ */
|
|
18617
|
+
return /* @__PURE__ */ jsxs14(Box14, { flexDirection: "column", children: [
|
|
18618
|
+
/* @__PURE__ */ jsx15(StepHeader, { step: "setup" }),
|
|
18619
|
+
/* @__PURE__ */ jsxs14(Box14, { flexDirection: "column", paddingX: 2, paddingBottom: 1, children: [
|
|
18620
|
+
/* @__PURE__ */ jsx15(Text14, { bold: true, color: PALETTE.accent, children: "Contentful Credentials" }),
|
|
18621
|
+
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
18622
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.muted, children: prefilled ? "Credentials pre-filled from the configuration settings." : "Enter the Contentful space you want to import into." }),
|
|
18623
|
+
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
18624
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.muted, children: "Actions" }),
|
|
18687
18625
|
MENU.map((item, index) => {
|
|
18688
18626
|
const focused = !editing && index === focus;
|
|
18689
|
-
return /* @__PURE__ */
|
|
18690
|
-
/* @__PURE__ */
|
|
18691
|
-
/* @__PURE__ */
|
|
18692
|
-
/* @__PURE__ */
|
|
18627
|
+
return /* @__PURE__ */ jsxs14(Box14, { gap: 1, children: [
|
|
18628
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.accent, children: focused ? "\u276F" : " " }),
|
|
18629
|
+
/* @__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 }) }),
|
|
18630
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.muted, children: item.description })
|
|
18693
18631
|
] }, item.choice);
|
|
18694
18632
|
}),
|
|
18695
|
-
/* @__PURE__ */
|
|
18696
|
-
|
|
18633
|
+
/* @__PURE__ */ jsxs14(
|
|
18634
|
+
Box14,
|
|
18697
18635
|
{
|
|
18698
18636
|
flexDirection: "column",
|
|
18699
18637
|
marginTop: 1,
|
|
@@ -18703,15 +18641,15 @@ function CredentialsScreen({
|
|
|
18703
18641
|
borderLeft: false,
|
|
18704
18642
|
borderRight: false,
|
|
18705
18643
|
children: [
|
|
18706
|
-
/* @__PURE__ */
|
|
18644
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.muted, children: "Space" }),
|
|
18707
18645
|
FIELDS2.map((field, index) => {
|
|
18708
18646
|
const open = editing && index === active;
|
|
18709
18647
|
const value = values[field.key];
|
|
18710
18648
|
const display = field.masked ? "\u2022".repeat(value.length) : value;
|
|
18711
|
-
return /* @__PURE__ */
|
|
18712
|
-
/* @__PURE__ */
|
|
18713
|
-
/* @__PURE__ */
|
|
18714
|
-
open ? /* @__PURE__ */
|
|
18649
|
+
return /* @__PURE__ */ jsxs14(Box14, { gap: 1, children: [
|
|
18650
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.accent, children: open ? "\u276F" : " " }),
|
|
18651
|
+
/* @__PURE__ */ jsx15(Box14, { width: labelWidth, flexShrink: 0, children: /* @__PURE__ */ jsx15(Text14, { bold: open, color: open ? PALETTE.accent : PALETTE.muted, children: field.label }) }),
|
|
18652
|
+
open ? /* @__PURE__ */ jsx15(
|
|
18715
18653
|
ClearableTextInput,
|
|
18716
18654
|
{
|
|
18717
18655
|
value,
|
|
@@ -18722,35 +18660,35 @@ function CredentialsScreen({
|
|
|
18722
18660
|
onSubmit: stopEditing,
|
|
18723
18661
|
mask: field.masked ? "\u2022" : void 0
|
|
18724
18662
|
}
|
|
18725
|
-
) : /* @__PURE__ */
|
|
18663
|
+
) : /* @__PURE__ */ jsx15(Text14, { color: display ? PALETTE.text : PALETTE.muted, children: display || (field.hint ?? "(empty)") })
|
|
18726
18664
|
] }, field.key);
|
|
18727
18665
|
})
|
|
18728
18666
|
]
|
|
18729
18667
|
}
|
|
18730
18668
|
),
|
|
18731
|
-
notice && /* @__PURE__ */
|
|
18732
|
-
/* @__PURE__ */
|
|
18733
|
-
/* @__PURE__ */
|
|
18669
|
+
notice && /* @__PURE__ */ jsxs14(Fragment2, { children: [
|
|
18670
|
+
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
18671
|
+
/* @__PURE__ */ jsxs14(Text14, { color: PALETTE.error, children: [
|
|
18734
18672
|
"\u2717 ",
|
|
18735
18673
|
notice.text
|
|
18736
18674
|
] })
|
|
18737
18675
|
] }),
|
|
18738
|
-
validating && /* @__PURE__ */
|
|
18739
|
-
/* @__PURE__ */
|
|
18740
|
-
/* @__PURE__ */
|
|
18676
|
+
validating && /* @__PURE__ */ jsxs14(Fragment2, { children: [
|
|
18677
|
+
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
18678
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.accent, children: "Validating credentials..." })
|
|
18741
18679
|
] }),
|
|
18742
|
-
!prefilled && !validating && !notice && /* @__PURE__ */
|
|
18743
|
-
/* @__PURE__ */
|
|
18744
|
-
/* @__PURE__ */
|
|
18745
|
-
/* @__PURE__ */
|
|
18680
|
+
!prefilled && !validating && !notice && /* @__PURE__ */ jsxs14(Fragment2, { children: [
|
|
18681
|
+
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
18682
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.muted, children: credentialsPurpose(tokensOnly) }),
|
|
18683
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.muted, children: "Tip: save these under Settings \u2192 Configuration so they pre-fill here." })
|
|
18746
18684
|
] }),
|
|
18747
|
-
changed && !validating && !notice && /* @__PURE__ */
|
|
18748
|
-
/* @__PURE__ */
|
|
18749
|
-
/* @__PURE__ */
|
|
18685
|
+
changed && !validating && !notice && /* @__PURE__ */ jsxs14(Fragment2, { children: [
|
|
18686
|
+
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
18687
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.muted, children: "Changed values are saved after they validate." })
|
|
18750
18688
|
] }),
|
|
18751
|
-
editing && /* @__PURE__ */
|
|
18752
|
-
/* @__PURE__ */
|
|
18753
|
-
/* @__PURE__ */
|
|
18689
|
+
editing && /* @__PURE__ */ jsxs14(Fragment2, { children: [
|
|
18690
|
+
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
18691
|
+
/* @__PURE__ */ jsx15(
|
|
18754
18692
|
ControlHints,
|
|
18755
18693
|
{
|
|
18756
18694
|
hints: [
|
|
@@ -18893,9 +18831,9 @@ function resolveAgentChoice(flag, stored) {
|
|
|
18893
18831
|
}
|
|
18894
18832
|
|
|
18895
18833
|
// packages/experience-design-system-cli/src/tui/import/steps/06-extraction/screen.tsx
|
|
18896
|
-
import { jsx as
|
|
18834
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
18897
18835
|
function ExtractionScreen({ progress, agent, rowMs }) {
|
|
18898
|
-
return /* @__PURE__ */
|
|
18836
|
+
return /* @__PURE__ */ jsx16(
|
|
18899
18837
|
RunningStep,
|
|
18900
18838
|
{
|
|
18901
18839
|
step: "extraction",
|
|
@@ -18907,7 +18845,7 @@ function ExtractionScreen({ progress, agent, rowMs }) {
|
|
|
18907
18845
|
|
|
18908
18846
|
// packages/experience-design-system-cli/src/tui/import/steps/05-token-review/screen.tsx
|
|
18909
18847
|
import { useEffect as useEffect9, useMemo as useMemo2, useState as useState10 } from "react";
|
|
18910
|
-
import { Box as
|
|
18848
|
+
import { Box as Box15, Text as Text15, useInput as useInput12 } from "ink";
|
|
18911
18849
|
init_debug_store();
|
|
18912
18850
|
|
|
18913
18851
|
// packages/experience-design-system-cli/src/tui/import/steps/05-token-review/load.ts
|
|
@@ -18964,7 +18902,7 @@ function loadTokenRows(tokensPath) {
|
|
|
18964
18902
|
}
|
|
18965
18903
|
|
|
18966
18904
|
// packages/experience-design-system-cli/src/tui/import/steps/05-token-review/screen.tsx
|
|
18967
|
-
import { jsx as
|
|
18905
|
+
import { jsx as jsx17, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
18968
18906
|
var VISIBLE_ROWS = 15;
|
|
18969
18907
|
var COLUMN_GAP = 3;
|
|
18970
18908
|
function TokenReviewScreen({ tokensPath, onContinue, onQuit }) {
|
|
@@ -19009,22 +18947,22 @@ function TokenReviewScreen({ tokensPath, onContinue, onQuit }) {
|
|
|
19009
18947
|
const typeWidth = Math.max(4, ...rows.map((row) => row.type.length)) + COLUMN_GAP;
|
|
19010
18948
|
const valueWidth = Math.max(10, innerWidth - pathWidth - typeWidth - 2);
|
|
19011
18949
|
const clip = (text, width) => text.length > width ? `${text.slice(0, Math.max(0, width - 1))}\u2026` : text.padEnd(width);
|
|
19012
|
-
return /* @__PURE__ */
|
|
19013
|
-
/* @__PURE__ */
|
|
19014
|
-
/* @__PURE__ */
|
|
19015
|
-
/* @__PURE__ */
|
|
19016
|
-
/* @__PURE__ */
|
|
18950
|
+
return /* @__PURE__ */ jsxs15(Box15, { flexDirection: "column", children: [
|
|
18951
|
+
/* @__PURE__ */ jsx17(StepHeader, { step: "review" }),
|
|
18952
|
+
/* @__PURE__ */ jsxs15(Box15, { flexDirection: "column", paddingX: 2, paddingBottom: 1, children: [
|
|
18953
|
+
/* @__PURE__ */ jsx17(Text15, { bold: true, children: "Review design tokens" }),
|
|
18954
|
+
/* @__PURE__ */ jsx17(Box15, { marginTop: 1, children: loaded.ok ? /* @__PURE__ */ jsxs15(Text15, { color: PALETTE.muted, children: [
|
|
19017
18955
|
rows.length,
|
|
19018
18956
|
" ",
|
|
19019
18957
|
rows.length === 1 ? "token" : "tokens",
|
|
19020
18958
|
" generated from ",
|
|
19021
18959
|
tokensPath
|
|
19022
|
-
] }) : /* @__PURE__ */
|
|
18960
|
+
] }) : /* @__PURE__ */ jsxs15(Text15, { color: PALETTE.error, children: [
|
|
19023
18961
|
"Could not read the generated tokens: ",
|
|
19024
18962
|
loaded.message
|
|
19025
18963
|
] }) }),
|
|
19026
|
-
/* @__PURE__ */
|
|
19027
|
-
/* @__PURE__ */
|
|
18964
|
+
/* @__PURE__ */ jsxs15(Box15, { flexDirection: "column", marginTop: 1, children: [
|
|
18965
|
+
/* @__PURE__ */ jsxs15(Text15, { bold: true, color: PALETTE.muted, wrap: "truncate-end", children: [
|
|
19028
18966
|
" ",
|
|
19029
18967
|
clip("Token name", pathWidth),
|
|
19030
18968
|
" ",
|
|
@@ -19034,7 +18972,7 @@ function TokenReviewScreen({ tokensPath, onContinue, onQuit }) {
|
|
|
19034
18972
|
] }),
|
|
19035
18973
|
rows.slice(start, end).map((row, offset) => {
|
|
19036
18974
|
const active = start + offset === selected;
|
|
19037
|
-
return /* @__PURE__ */
|
|
18975
|
+
return /* @__PURE__ */ jsxs15(Text15, { color: active ? PALETTE.accent : void 0, bold: active, wrap: "truncate-end", children: [
|
|
19038
18976
|
active ? "\u203A " : " ",
|
|
19039
18977
|
clip(row.path, pathWidth),
|
|
19040
18978
|
" ",
|
|
@@ -19044,14 +18982,14 @@ function TokenReviewScreen({ tokensPath, onContinue, onQuit }) {
|
|
|
19044
18982
|
] }, row.path);
|
|
19045
18983
|
})
|
|
19046
18984
|
] }),
|
|
19047
|
-
rows.length > VISIBLE_ROWS && /* @__PURE__ */
|
|
18985
|
+
rows.length > VISIBLE_ROWS && /* @__PURE__ */ jsx17(Box15, { marginTop: 1, children: /* @__PURE__ */ jsxs15(Text15, { color: PALETTE.muted, children: [
|
|
19048
18986
|
start + 1,
|
|
19049
18987
|
"-",
|
|
19050
18988
|
end,
|
|
19051
18989
|
" of ",
|
|
19052
18990
|
rows.length
|
|
19053
18991
|
] }) }),
|
|
19054
|
-
/* @__PURE__ */
|
|
18992
|
+
/* @__PURE__ */ jsx17(Box15, { marginTop: 1, children: /* @__PURE__ */ jsx17(ControlHints, { hints: TOKEN_REVIEW_CONTROLS }) })
|
|
19055
18993
|
] })
|
|
19056
18994
|
] });
|
|
19057
18995
|
}
|
|
@@ -19332,7 +19270,7 @@ function useExtraction(input) {
|
|
|
19332
19270
|
}),
|
|
19333
19271
|
rowMs: []
|
|
19334
19272
|
});
|
|
19335
|
-
let
|
|
19273
|
+
let lastProgress;
|
|
19336
19274
|
const startedAt = Date.now();
|
|
19337
19275
|
let rowMs = [];
|
|
19338
19276
|
startDebugRun({
|
|
@@ -19342,13 +19280,13 @@ function useExtraction(input) {
|
|
|
19342
19280
|
inputs: extractionLogInputs(input)
|
|
19343
19281
|
});
|
|
19344
19282
|
void runExtraction(input, (progress) => {
|
|
19345
|
-
|
|
19283
|
+
lastProgress = progress;
|
|
19346
19284
|
rowMs = trackFinished(rowMs, progressRows(progress, input.agent), Date.now() - startedAt);
|
|
19347
19285
|
if (current.current === input) setState({ status: "running", progress, rowMs });
|
|
19348
19286
|
}).then((result) => {
|
|
19349
19287
|
if (current.current !== input) return;
|
|
19350
19288
|
void finishDebugRun({
|
|
19351
|
-
...extractionLogOutputs(result,
|
|
19289
|
+
...extractionLogOutputs(result, lastProgress, input.credentials?.cmaToken ?? ""),
|
|
19352
19290
|
exitMethod: result.ok ? "saved" : "discarded"
|
|
19353
19291
|
});
|
|
19354
19292
|
setState({ status: "done", result });
|
|
@@ -19416,7 +19354,7 @@ function useTokensOnly(input) {
|
|
|
19416
19354
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/screen.tsx
|
|
19417
19355
|
init_debug_store();
|
|
19418
19356
|
import { useEffect as useEffect14, useMemo as useMemo4 } from "react";
|
|
19419
|
-
import { Box as
|
|
19357
|
+
import { Box as Box25, Text as Text26 } from "ink";
|
|
19420
19358
|
|
|
19421
19359
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/log.ts
|
|
19422
19360
|
var MAX_NAMES = 20;
|
|
@@ -19446,12 +19384,12 @@ function scopeGateLogOutputs(components, decisions) {
|
|
|
19446
19384
|
}
|
|
19447
19385
|
|
|
19448
19386
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/panels/tokens-column.tsx
|
|
19449
|
-
import { Box as
|
|
19387
|
+
import { Box as Box17, Text as Text17 } from "ink";
|
|
19450
19388
|
import figures2 from "figures";
|
|
19451
19389
|
|
|
19452
19390
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/windowed-panel.tsx
|
|
19453
|
-
import { Box as
|
|
19454
|
-
import { jsx as
|
|
19391
|
+
import { Box as Box16, Text as Text16 } from "ink";
|
|
19392
|
+
import { jsx as jsx18, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
19455
19393
|
var MIN_TERMINAL_PANEL_HEIGHT = 5;
|
|
19456
19394
|
function terminalPanelHeight(rows, reservedRows = 4) {
|
|
19457
19395
|
return Math.max(MIN_TERMINAL_PANEL_HEIGHT, rows - reservedRows);
|
|
@@ -19467,8 +19405,8 @@ function FixedPanel({
|
|
|
19467
19405
|
clipOverflow = true,
|
|
19468
19406
|
children
|
|
19469
19407
|
}) {
|
|
19470
|
-
return /* @__PURE__ */
|
|
19471
|
-
|
|
19408
|
+
return /* @__PURE__ */ jsx18(
|
|
19409
|
+
Box16,
|
|
19472
19410
|
{
|
|
19473
19411
|
flexDirection: "column",
|
|
19474
19412
|
width,
|
|
@@ -19484,7 +19422,7 @@ function FixedPanel({
|
|
|
19484
19422
|
);
|
|
19485
19423
|
}
|
|
19486
19424
|
function WindowedPanel({ width, height, title, focused, children }) {
|
|
19487
|
-
return /* @__PURE__ */
|
|
19425
|
+
return /* @__PURE__ */ jsxs16(
|
|
19488
19426
|
FixedPanel,
|
|
19489
19427
|
{
|
|
19490
19428
|
width,
|
|
@@ -19493,7 +19431,7 @@ function WindowedPanel({ width, height, title, focused, children }) {
|
|
|
19493
19431
|
...height === void 0 ? {} : { height },
|
|
19494
19432
|
focused,
|
|
19495
19433
|
children: [
|
|
19496
|
-
title && /* @__PURE__ */
|
|
19434
|
+
title && /* @__PURE__ */ jsx18(WindowedPanelHeader, { title, width, focused }),
|
|
19497
19435
|
children
|
|
19498
19436
|
]
|
|
19499
19437
|
}
|
|
@@ -19504,9 +19442,9 @@ function WindowedPanelHeader({
|
|
|
19504
19442
|
width,
|
|
19505
19443
|
focused
|
|
19506
19444
|
}) {
|
|
19507
|
-
return /* @__PURE__ */
|
|
19508
|
-
/* @__PURE__ */
|
|
19509
|
-
/* @__PURE__ */
|
|
19445
|
+
return /* @__PURE__ */ jsxs16(Box16, { flexDirection: "column", children: [
|
|
19446
|
+
/* @__PURE__ */ jsx18(Text16, { bold: true, color: PALETTE.accent, inverse: focused, children: title }),
|
|
19447
|
+
/* @__PURE__ */ jsx18(Text16, { color: PALETTE.muted, children: "\u2500".repeat(Math.max(0, width - 2)) })
|
|
19510
19448
|
] });
|
|
19511
19449
|
}
|
|
19512
19450
|
function formatWindowIndicator(direction, count) {
|
|
@@ -19515,38 +19453,38 @@ function formatWindowIndicator(direction, count) {
|
|
|
19515
19453
|
}
|
|
19516
19454
|
function WindowFooter({ above, below }) {
|
|
19517
19455
|
const parts = [above > 0 ? `\u2191 ${above}` : "", below > 0 ? `\u2193 ${below}` : ""].filter(Boolean);
|
|
19518
|
-
return /* @__PURE__ */
|
|
19456
|
+
return /* @__PURE__ */ jsx18(Text16, { color: PALETTE.muted, children: parts.length === 0 ? " " : `${parts.join(" \xB7 ")} more` });
|
|
19519
19457
|
}
|
|
19520
19458
|
function WindowIndicator({ direction, count }) {
|
|
19521
|
-
return /* @__PURE__ */
|
|
19459
|
+
return /* @__PURE__ */ jsx18(Text16, { color: PALETTE.muted, children: formatWindowIndicator(direction, count) });
|
|
19522
19460
|
}
|
|
19523
19461
|
|
|
19524
19462
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/panels/tokens-column.tsx
|
|
19525
|
-
import { jsx as
|
|
19463
|
+
import { jsx as jsx19, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
19526
19464
|
function TokensColumn(props) {
|
|
19527
19465
|
const { title, width, height, tokens, cursor, focused, visibleCount } = props;
|
|
19528
19466
|
const nameWidth = Math.min(longestEntries(tokens).path + 2, Math.floor((width - 8) / 2));
|
|
19529
19467
|
const window = computeColumnWindow(tokens.length, cursor, Math.max(1, visibleCount));
|
|
19530
|
-
return /* @__PURE__ */
|
|
19531
|
-
/* @__PURE__ */
|
|
19468
|
+
return /* @__PURE__ */ jsxs17(WindowedPanel, { width, height, title, focused, children: [
|
|
19469
|
+
/* @__PURE__ */ jsx19(WindowIndicator, { direction: "up", count: window.above }),
|
|
19532
19470
|
tokens.slice(window.start, window.end).map((token, offset) => {
|
|
19533
19471
|
const isCursor = focused && window.start + offset === cursor;
|
|
19534
|
-
return /* @__PURE__ */
|
|
19535
|
-
/* @__PURE__ */
|
|
19536
|
-
/* @__PURE__ */
|
|
19472
|
+
return /* @__PURE__ */ jsxs17(Box17, { children: [
|
|
19473
|
+
/* @__PURE__ */ jsx19(Text17, { color: PALETTE.accent, bold: true, children: isCursor ? figures2.pointer : " " }),
|
|
19474
|
+
/* @__PURE__ */ jsxs17(Text17, { wrap: "truncate-end", color: isCursor ? PALETTE.accent : void 0, bold: isCursor, children: [
|
|
19537
19475
|
` ${token.path.padEnd(nameWidth)}`,
|
|
19538
|
-
/* @__PURE__ */
|
|
19476
|
+
/* @__PURE__ */ jsx19(Text17, { color: PALETTE.muted, children: token.value })
|
|
19539
19477
|
] })
|
|
19540
19478
|
] }, token.path);
|
|
19541
19479
|
}),
|
|
19542
|
-
/* @__PURE__ */
|
|
19480
|
+
/* @__PURE__ */ jsx19(WindowIndicator, { direction: "down", count: window.below })
|
|
19543
19481
|
] });
|
|
19544
19482
|
}
|
|
19545
19483
|
|
|
19546
19484
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/panels/cycles-panel.tsx
|
|
19547
|
-
import { Box as
|
|
19485
|
+
import { Box as Box18, Text as Text18 } from "ink";
|
|
19548
19486
|
import figures3 from "figures";
|
|
19549
|
-
import { jsx as
|
|
19487
|
+
import { jsx as jsx20, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
19550
19488
|
function cycleLabel(cycle, index) {
|
|
19551
19489
|
const parts = [];
|
|
19552
19490
|
for (let i = 0; i < cycle.edges.length; i++) {
|
|
@@ -19557,36 +19495,36 @@ function cycleLabel(cycle, index) {
|
|
|
19557
19495
|
return `Cycle ${index + 1}: ${parts.join(" \u2192 ")}`;
|
|
19558
19496
|
}
|
|
19559
19497
|
function CyclesPanel({ cycles, cursor }) {
|
|
19560
|
-
return /* @__PURE__ */
|
|
19561
|
-
/* @__PURE__ */
|
|
19562
|
-
/* @__PURE__ */
|
|
19498
|
+
return /* @__PURE__ */ jsxs18(Box18, { flexDirection: "column", borderStyle: "single", borderColor: PALETTE.warning, paddingX: 1, marginTop: 1, children: [
|
|
19499
|
+
/* @__PURE__ */ jsx20(Text18, { bold: true, color: PALETTE.warning, children: `Cycles detected (${cycles.length}):` }),
|
|
19500
|
+
/* @__PURE__ */ jsx20(Text18, { children: " " }),
|
|
19563
19501
|
cycles.map((cycle, i) => {
|
|
19564
19502
|
const isCursor = i === cursor;
|
|
19565
|
-
return /* @__PURE__ */
|
|
19566
|
-
isCursor ? /* @__PURE__ */
|
|
19567
|
-
/* @__PURE__ */
|
|
19503
|
+
return /* @__PURE__ */ jsxs18(Text18, { children: [
|
|
19504
|
+
isCursor ? /* @__PURE__ */ jsx20(Text18, { color: PALETTE.accent, bold: true, children: figures3.pointer }) : /* @__PURE__ */ jsx20(Text18, { children: " " }),
|
|
19505
|
+
/* @__PURE__ */ jsx20(Text18, { color: PALETTE.warning, inverse: isCursor, children: " " + cycleLabel(cycle, i) })
|
|
19568
19506
|
] }, i);
|
|
19569
19507
|
}),
|
|
19570
|
-
/* @__PURE__ */
|
|
19508
|
+
/* @__PURE__ */ jsx20(Text18, { children: "[\u2191/\u2193] move \xB7 [Enter] jump \xB7 [c/Esc] close" })
|
|
19571
19509
|
] });
|
|
19572
19510
|
}
|
|
19573
19511
|
|
|
19574
19512
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/panels/reject-prompt.tsx
|
|
19575
|
-
import { Box as
|
|
19576
|
-
import { jsx as
|
|
19513
|
+
import { Box as Box19, Text as Text19 } from "ink";
|
|
19514
|
+
import { jsx as jsx21, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
19577
19515
|
function RejectPrompt({ pending }) {
|
|
19578
|
-
return /* @__PURE__ */
|
|
19579
|
-
/* @__PURE__ */
|
|
19580
|
-
pending.ancestors.length > 0 && /* @__PURE__ */
|
|
19581
|
-
pending.descendants.length > 0 && /* @__PURE__ */
|
|
19582
|
-
/* @__PURE__ */
|
|
19516
|
+
return /* @__PURE__ */ jsxs19(Box19, { flexDirection: "column", borderStyle: "single", borderColor: PALETTE.warning, paddingX: 1, marginTop: 1, children: [
|
|
19517
|
+
/* @__PURE__ */ jsx21(Text19, { bold: true, color: PALETTE.warning, children: `Rejecting ${pending.target} will:` }),
|
|
19518
|
+
pending.ancestors.length > 0 && /* @__PURE__ */ jsx21(Text19, { children: `- Reject ancestors: ${pending.ancestors.join(", ")}` }),
|
|
19519
|
+
pending.descendants.length > 0 && /* @__PURE__ */ jsx21(Text19, { children: `- Deselect descendants: ${pending.descendants.join(", ")}` }),
|
|
19520
|
+
/* @__PURE__ */ jsx21(Text19, { children: "[y] confirm \xB7 [n]/[Esc] cancel" })
|
|
19583
19521
|
] });
|
|
19584
19522
|
}
|
|
19585
19523
|
|
|
19586
19524
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/CompactControlBar.tsx
|
|
19587
|
-
import { jsx as
|
|
19525
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
19588
19526
|
function CompactControlBar({ hasGroupRoots, searchActive }) {
|
|
19589
|
-
return /* @__PURE__ */
|
|
19527
|
+
return /* @__PURE__ */ jsx22(
|
|
19590
19528
|
ControlHints,
|
|
19591
19529
|
{
|
|
19592
19530
|
hints: [
|
|
@@ -19603,8 +19541,8 @@ function CompactControlBar({ hasGroupRoots, searchActive }) {
|
|
|
19603
19541
|
}
|
|
19604
19542
|
|
|
19605
19543
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/CounterStrip.tsx
|
|
19606
|
-
import { Box as
|
|
19607
|
-
import { jsx as
|
|
19544
|
+
import { Box as Box20, Text as Text20 } from "ink";
|
|
19545
|
+
import { jsx as jsx23, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
19608
19546
|
function CounterStrip(props) {
|
|
19609
19547
|
const { counters, totalWidth } = props;
|
|
19610
19548
|
const condensed = totalWidth < 60;
|
|
@@ -19613,38 +19551,38 @@ function CounterStrip(props) {
|
|
|
19613
19551
|
const labelRej = condensed ? "Rej" : "Rejected";
|
|
19614
19552
|
const labelUnd = condensed ? "Und" : "Undecided";
|
|
19615
19553
|
const sep = condensed ? " | " : " ";
|
|
19616
|
-
return /* @__PURE__ */
|
|
19617
|
-
/* @__PURE__ */
|
|
19554
|
+
return /* @__PURE__ */ jsx23(Box20, { children: /* @__PURE__ */ jsxs20(Text20, { children: [
|
|
19555
|
+
/* @__PURE__ */ jsxs20(Text20, { color: PALETTE.muted, children: [
|
|
19618
19556
|
labelGrp,
|
|
19619
19557
|
" "
|
|
19620
19558
|
] }),
|
|
19621
|
-
/* @__PURE__ */
|
|
19622
|
-
/* @__PURE__ */
|
|
19623
|
-
/* @__PURE__ */
|
|
19559
|
+
/* @__PURE__ */ jsx23(Text20, { bold: true, children: counters.groups }),
|
|
19560
|
+
/* @__PURE__ */ jsx23(Text20, { color: PALETTE.muted, children: sep }),
|
|
19561
|
+
/* @__PURE__ */ jsxs20(Text20, { color: PALETTE.muted, children: [
|
|
19624
19562
|
labelAcc,
|
|
19625
19563
|
" "
|
|
19626
19564
|
] }),
|
|
19627
|
-
/* @__PURE__ */
|
|
19628
|
-
/* @__PURE__ */
|
|
19629
|
-
/* @__PURE__ */
|
|
19565
|
+
/* @__PURE__ */ jsx23(Text20, { bold: true, children: `${counters.accepted}/${counters.total}` }),
|
|
19566
|
+
/* @__PURE__ */ jsx23(Text20, { color: PALETTE.muted, children: sep }),
|
|
19567
|
+
/* @__PURE__ */ jsxs20(Text20, { color: PALETTE.muted, children: [
|
|
19630
19568
|
labelRej,
|
|
19631
19569
|
" "
|
|
19632
19570
|
] }),
|
|
19633
|
-
/* @__PURE__ */
|
|
19634
|
-
/* @__PURE__ */
|
|
19635
|
-
/* @__PURE__ */
|
|
19571
|
+
/* @__PURE__ */ jsx23(Text20, { bold: true, children: counters.rejected }),
|
|
19572
|
+
/* @__PURE__ */ jsx23(Text20, { color: PALETTE.muted, children: sep }),
|
|
19573
|
+
/* @__PURE__ */ jsxs20(Text20, { color: PALETTE.muted, children: [
|
|
19636
19574
|
labelUnd,
|
|
19637
19575
|
" "
|
|
19638
19576
|
] }),
|
|
19639
|
-
/* @__PURE__ */
|
|
19640
|
-
/* @__PURE__ */
|
|
19577
|
+
/* @__PURE__ */ jsx23(Text20, { bold: true, children: counters.undecided }),
|
|
19578
|
+
/* @__PURE__ */ jsx23(Text20, { color: PALETTE.muted, children: sep })
|
|
19641
19579
|
] }) });
|
|
19642
19580
|
}
|
|
19643
19581
|
|
|
19644
19582
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/GotoBanner.tsx
|
|
19645
19583
|
import figures4 from "figures";
|
|
19646
|
-
import { Box as
|
|
19647
|
-
import { jsx as
|
|
19584
|
+
import { Box as Box21, Text as Text21 } from "ink";
|
|
19585
|
+
import { jsx as jsx24, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
19648
19586
|
var DEFAULT_MAX_ROWS = 15;
|
|
19649
19587
|
function windowStart(rowCount, highlightIndex, maxRows) {
|
|
19650
19588
|
if (rowCount <= maxRows) return 0;
|
|
@@ -19655,9 +19593,9 @@ function windowStart(rowCount, highlightIndex, maxRows) {
|
|
|
19655
19593
|
return start;
|
|
19656
19594
|
}
|
|
19657
19595
|
function defaultRenderRow(row, index, isCursor) {
|
|
19658
|
-
return /* @__PURE__ */
|
|
19659
|
-
isCursor ? /* @__PURE__ */
|
|
19660
|
-
/* @__PURE__ */
|
|
19596
|
+
return /* @__PURE__ */ jsxs21(Text21, { children: [
|
|
19597
|
+
isCursor ? /* @__PURE__ */ jsx24(Text21, { color: PALETTE.accent, bold: true, children: figures4.pointer }) : /* @__PURE__ */ jsx24(Text21, { children: " " }),
|
|
19598
|
+
/* @__PURE__ */ jsx24(Text21, { inverse: isCursor, children: " " + row.label })
|
|
19661
19599
|
] }, index);
|
|
19662
19600
|
}
|
|
19663
19601
|
function GotoBanner({
|
|
@@ -19676,8 +19614,8 @@ function GotoBanner({
|
|
|
19676
19614
|
const visible = rows.slice(start, end);
|
|
19677
19615
|
const moreAbove = start;
|
|
19678
19616
|
const moreBelow = rows.length - end;
|
|
19679
|
-
return /* @__PURE__ */
|
|
19680
|
-
|
|
19617
|
+
return /* @__PURE__ */ jsxs21(
|
|
19618
|
+
Box21,
|
|
19681
19619
|
{
|
|
19682
19620
|
flexDirection: "column",
|
|
19683
19621
|
borderStyle: "single",
|
|
@@ -19688,14 +19626,14 @@ function GotoBanner({
|
|
|
19688
19626
|
width,
|
|
19689
19627
|
flexShrink: 0,
|
|
19690
19628
|
children: [
|
|
19691
|
-
/* @__PURE__ */
|
|
19692
|
-
moreAbove > 0 && /* @__PURE__ */
|
|
19629
|
+
/* @__PURE__ */ jsx24(Text21, { bold: true, children: title }),
|
|
19630
|
+
moreAbove > 0 && /* @__PURE__ */ jsx24(Text21, { color: PALETTE.muted, children: ` \u25B2 ${moreAbove} more` }),
|
|
19693
19631
|
visible.map((row, vi) => {
|
|
19694
19632
|
const i = start + vi;
|
|
19695
19633
|
return renderRow(row, i, i === highlightIndex);
|
|
19696
19634
|
}),
|
|
19697
|
-
moreBelow > 0 && /* @__PURE__ */
|
|
19698
|
-
footerHint !== void 0 && /* @__PURE__ */
|
|
19635
|
+
moreBelow > 0 && /* @__PURE__ */ jsx24(Text21, { color: PALETTE.muted, children: ` \u25BC ${moreBelow} more` }),
|
|
19636
|
+
footerHint !== void 0 && /* @__PURE__ */ jsx24(Box21, { marginTop: 1, children: /* @__PURE__ */ jsx24(Text21, { color: PALETTE.muted, children: footerHint }) })
|
|
19699
19637
|
]
|
|
19700
19638
|
}
|
|
19701
19639
|
);
|
|
@@ -19703,7 +19641,7 @@ function GotoBanner({
|
|
|
19703
19641
|
|
|
19704
19642
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/GroupedSidebar.tsx
|
|
19705
19643
|
import figures5 from "figures";
|
|
19706
|
-
import { Box as
|
|
19644
|
+
import { Box as Box22, Text as Text23 } from "ink";
|
|
19707
19645
|
|
|
19708
19646
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/graph/cycle-detection.ts
|
|
19709
19647
|
function buildGraph(components) {
|
|
@@ -20043,8 +19981,8 @@ function findSharedDeps(closures) {
|
|
|
20043
19981
|
}
|
|
20044
19982
|
|
|
20045
19983
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/badge.tsx
|
|
20046
|
-
import { Text as
|
|
20047
|
-
import { jsx as
|
|
19984
|
+
import { Text as Text22 } from "ink";
|
|
19985
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
20048
19986
|
function previewBadge(annotation) {
|
|
20049
19987
|
switch (annotation) {
|
|
20050
19988
|
case "new":
|
|
@@ -20063,11 +20001,11 @@ function PreviewBadge({
|
|
|
20063
20001
|
badge,
|
|
20064
20002
|
highlighted = false
|
|
20065
20003
|
}) {
|
|
20066
|
-
return badge ? /* @__PURE__ */
|
|
20004
|
+
return badge ? /* @__PURE__ */ jsx25(Text22, { color: !highlighted && badge.dim ? PALETTE.muted : badge.color, bold: badge.bold, children: badge.char }) : /* @__PURE__ */ jsx25(Text22, { children: " " });
|
|
20067
20005
|
}
|
|
20068
20006
|
|
|
20069
20007
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/GroupedSidebar.tsx
|
|
20070
|
-
import { jsx as
|
|
20008
|
+
import { jsx as jsx26, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
20071
20009
|
var GLYPH_EXPAND_COLLAPSED = "\u25B8";
|
|
20072
20010
|
var GLYPH_EXPAND_EXPANDED = "\u25BE";
|
|
20073
20011
|
var GLYPH_TREE_MID = "\u251C\u2500";
|
|
@@ -20492,8 +20430,8 @@ function GroupedSidebar(props) {
|
|
|
20492
20430
|
const start = windowed ? Math.max(0, scrollOffset ?? 0) : 0;
|
|
20493
20431
|
const end = windowed ? start + (visibleCount ?? allRows.length) + 1 : allRows.length;
|
|
20494
20432
|
const rows = windowed ? allRows.slice(start, end) : allRows;
|
|
20495
|
-
return /* @__PURE__ */
|
|
20496
|
-
allRows.length === 0 && emptyMessage !== void 0 && /* @__PURE__ */
|
|
20433
|
+
return /* @__PURE__ */ jsxs22(WindowedPanel, { width, height: props.height, title, focused, children: [
|
|
20434
|
+
allRows.length === 0 && emptyMessage !== void 0 && /* @__PURE__ */ jsxs22(Text23, { color: PALETTE.warning, children: [
|
|
20497
20435
|
" ",
|
|
20498
20436
|
emptyMessage
|
|
20499
20437
|
] }),
|
|
@@ -20523,13 +20461,13 @@ function GroupedSidebar(props) {
|
|
|
20523
20461
|
isOwn: rs?.isOwn ?? false,
|
|
20524
20462
|
isCursor
|
|
20525
20463
|
});
|
|
20526
|
-
return /* @__PURE__ */
|
|
20527
|
-
isCursor ? /* @__PURE__ */
|
|
20528
|
-
/* @__PURE__ */
|
|
20529
|
-
selectionStateByKey !== void 0 && (selGlyph && !isSynthetic ? /* @__PURE__ */
|
|
20530
|
-
aiFlaggedByKey !== void 0 && (aiFlagged ? /* @__PURE__ */
|
|
20531
|
-
/* @__PURE__ */
|
|
20532
|
-
|
|
20464
|
+
return /* @__PURE__ */ jsxs22(Box22, { children: [
|
|
20465
|
+
isCursor ? /* @__PURE__ */ jsx26(Text23, { color: PALETTE.accent, bold: true, children: figures5.pointer }) : /* @__PURE__ */ jsx26(Text23, { children: " " }),
|
|
20466
|
+
/* @__PURE__ */ jsx26(PreviewBadge, { badge, highlighted: isSelected }),
|
|
20467
|
+
selectionStateByKey !== void 0 && (selGlyph && !isSynthetic ? /* @__PURE__ */ jsx26(Text23, { color: !isSelected && selDim ? PALETTE.muted : selColor, bold: selBold, children: " " + selGlyph }) : /* @__PURE__ */ jsx26(Text23, { children: " " })),
|
|
20468
|
+
aiFlaggedByKey !== void 0 && (aiFlagged ? /* @__PURE__ */ jsx26(Text23, { color: PALETTE.warning, bold: true, children: " [\xD7]" }) : /* @__PURE__ */ jsx26(Text23, { children: " " })),
|
|
20469
|
+
/* @__PURE__ */ jsxs22(
|
|
20470
|
+
Text23,
|
|
20533
20471
|
{
|
|
20534
20472
|
color: isSelected ? PALETTE.accent : labelStyle.dim ? PALETTE.muted : labelStyle.color,
|
|
20535
20473
|
bold: isSelected || labelStyle.bold,
|
|
@@ -20542,16 +20480,16 @@ function GroupedSidebar(props) {
|
|
|
20542
20480
|
]
|
|
20543
20481
|
}
|
|
20544
20482
|
),
|
|
20545
|
-
inheritanceStyle.glyph && /* @__PURE__ */
|
|
20483
|
+
inheritanceStyle.glyph && /* @__PURE__ */ jsx26(Text23, { color: inheritanceStyle.dim ? PALETTE.muted : inheritanceStyle.color, bold: inheritanceStyle.bold, children: " " + inheritanceStyle.glyph })
|
|
20546
20484
|
] }, row.key);
|
|
20547
20485
|
}),
|
|
20548
|
-
windowed && /* @__PURE__ */
|
|
20486
|
+
windowed && /* @__PURE__ */ jsx26(WindowFooter, { above: start, below: Math.max(0, allRows.length - end) })
|
|
20549
20487
|
] });
|
|
20550
20488
|
}
|
|
20551
20489
|
|
|
20552
20490
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/HelpOverlay.tsx
|
|
20553
20491
|
import React11 from "react";
|
|
20554
|
-
import { Box as
|
|
20492
|
+
import { Box as Box23, Text as Text24 } from "ink";
|
|
20555
20493
|
|
|
20556
20494
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/hooks/useImmediateInput.ts
|
|
20557
20495
|
import { useLayoutEffect, useRef as useRef8 } from "react";
|
|
@@ -20650,7 +20588,7 @@ function useTerminalSize() {
|
|
|
20650
20588
|
}
|
|
20651
20589
|
|
|
20652
20590
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/HelpOverlay.tsx
|
|
20653
|
-
import { Fragment as
|
|
20591
|
+
import { Fragment as Fragment3, jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
20654
20592
|
function HelpOverlay(props) {
|
|
20655
20593
|
const { onClose } = props;
|
|
20656
20594
|
const { columns: terminalColumns, rows: terminalRows } = useTerminalSize();
|
|
@@ -20661,8 +20599,8 @@ function HelpOverlay(props) {
|
|
|
20661
20599
|
if (input === "h" || key.escape) onClose();
|
|
20662
20600
|
}, props.handleInput !== false);
|
|
20663
20601
|
if (props.sections) {
|
|
20664
|
-
return /* @__PURE__ */
|
|
20665
|
-
|
|
20602
|
+
return /* @__PURE__ */ jsxs23(
|
|
20603
|
+
Box23,
|
|
20666
20604
|
{
|
|
20667
20605
|
flexDirection: "column",
|
|
20668
20606
|
borderStyle: "round",
|
|
@@ -20671,19 +20609,19 @@ function HelpOverlay(props) {
|
|
|
20671
20609
|
height: panelHeight,
|
|
20672
20610
|
overflowY: "hidden",
|
|
20673
20611
|
children: [
|
|
20674
|
-
/* @__PURE__ */
|
|
20675
|
-
props.sections.map((section) => /* @__PURE__ */
|
|
20676
|
-
/* @__PURE__ */
|
|
20677
|
-
/* @__PURE__ */
|
|
20678
|
-
section.entries.map((entry) => /* @__PURE__ */
|
|
20612
|
+
/* @__PURE__ */ jsx27(Text24, { bold: true, children: "\u2500".repeat(titleRule) + " Help " + "\u2500".repeat(titleRule) }),
|
|
20613
|
+
props.sections.map((section) => /* @__PURE__ */ jsxs23(React11.Fragment, { children: [
|
|
20614
|
+
/* @__PURE__ */ jsx27(Text24, { children: " " }),
|
|
20615
|
+
/* @__PURE__ */ jsx27(Text24, { bold: true, children: section.title }),
|
|
20616
|
+
section.entries.map((entry) => /* @__PURE__ */ jsx27(Text24, { children: entry.keys ? " " + entry.keys.padEnd(16) + " " + entry.label : " " + entry.label }, entry.keys + entry.label))
|
|
20679
20617
|
] }, section.title))
|
|
20680
20618
|
]
|
|
20681
20619
|
}
|
|
20682
20620
|
);
|
|
20683
20621
|
}
|
|
20684
20622
|
const mode = props.mode;
|
|
20685
|
-
return /* @__PURE__ */
|
|
20686
|
-
|
|
20623
|
+
return /* @__PURE__ */ jsxs23(
|
|
20624
|
+
Box23,
|
|
20687
20625
|
{
|
|
20688
20626
|
flexDirection: "column",
|
|
20689
20627
|
borderStyle: "round",
|
|
@@ -20692,38 +20630,38 @@ function HelpOverlay(props) {
|
|
|
20692
20630
|
height: panelHeight,
|
|
20693
20631
|
overflowY: "hidden",
|
|
20694
20632
|
children: [
|
|
20695
|
-
/* @__PURE__ */
|
|
20696
|
-
/* @__PURE__ */
|
|
20697
|
-
/* @__PURE__ */
|
|
20698
|
-
/* @__PURE__ */
|
|
20699
|
-
/* @__PURE__ */
|
|
20700
|
-
/* @__PURE__ */
|
|
20701
|
-
/* @__PURE__ */
|
|
20702
|
-
mode === "review" && /* @__PURE__ */
|
|
20703
|
-
/* @__PURE__ */
|
|
20704
|
-
/* @__PURE__ */
|
|
20705
|
-
/* @__PURE__ */
|
|
20706
|
-
/* @__PURE__ */
|
|
20707
|
-
/* @__PURE__ */
|
|
20708
|
-
/* @__PURE__ */
|
|
20709
|
-
/* @__PURE__ */
|
|
20710
|
-
/* @__PURE__ */
|
|
20711
|
-
/* @__PURE__ */
|
|
20712
|
-
/* @__PURE__ */
|
|
20713
|
-
/* @__PURE__ */
|
|
20714
|
-
/* @__PURE__ */
|
|
20715
|
-
/* @__PURE__ */
|
|
20633
|
+
/* @__PURE__ */ jsx27(Text24, { bold: true, children: "\u2500".repeat(titleRule) + " Help " + "\u2500".repeat(titleRule) }),
|
|
20634
|
+
/* @__PURE__ */ jsx27(Text24, { children: " " }),
|
|
20635
|
+
/* @__PURE__ */ jsx27(Text24, { bold: true, children: "Navigation" }),
|
|
20636
|
+
/* @__PURE__ */ jsx27(Text24, { children: " \u2191 / k / PgUp Scroll up" }),
|
|
20637
|
+
/* @__PURE__ */ jsx27(Text24, { children: " \u2193 / j / PgDn Scroll down" }),
|
|
20638
|
+
/* @__PURE__ */ jsx27(Text24, { children: " g / Home Jump to top" }),
|
|
20639
|
+
/* @__PURE__ */ jsx27(Text24, { children: " G / End Jump to bottom" }),
|
|
20640
|
+
mode === "review" && /* @__PURE__ */ jsxs23(Fragment3, { children: [
|
|
20641
|
+
/* @__PURE__ */ jsx27(Text24, { children: " " }),
|
|
20642
|
+
/* @__PURE__ */ jsx27(Text24, { bold: true, children: "[Review mode only]" }),
|
|
20643
|
+
/* @__PURE__ */ jsx27(Text24, { children: " Tab Toggle sidebar/detail" }),
|
|
20644
|
+
/* @__PURE__ */ jsx27(Text24, { children: " a Accept component" }),
|
|
20645
|
+
/* @__PURE__ */ jsx27(Text24, { children: " r Reject component" }),
|
|
20646
|
+
/* @__PURE__ */ jsx27(Text24, { children: " e Edit proposal" }),
|
|
20647
|
+
/* @__PURE__ */ jsx27(Text24, { children: " s Toggle source code" }),
|
|
20648
|
+
/* @__PURE__ */ jsx27(Text24, { children: " A Approve all" }),
|
|
20649
|
+
/* @__PURE__ */ jsx27(Text24, { children: " F Open finalize dialog" }),
|
|
20650
|
+
/* @__PURE__ */ jsx27(Text24, { children: " Ctrl+S Save draft" }),
|
|
20651
|
+
/* @__PURE__ */ jsx27(Text24, { children: " Ctrl+Z Undo" }),
|
|
20652
|
+
/* @__PURE__ */ jsx27(Text24, { children: " Ctrl+Y Redo" }),
|
|
20653
|
+
/* @__PURE__ */ jsx27(Text24, { children: " Esc Exit edit / close" })
|
|
20716
20654
|
] }),
|
|
20717
|
-
/* @__PURE__ */
|
|
20718
|
-
/* @__PURE__ */
|
|
20719
|
-
/* @__PURE__ */
|
|
20655
|
+
/* @__PURE__ */ jsx27(Text24, { children: " " }),
|
|
20656
|
+
/* @__PURE__ */ jsx27(Text24, { children: " h Close help" }),
|
|
20657
|
+
/* @__PURE__ */ jsx27(Text24, { children: " q Quit" })
|
|
20720
20658
|
]
|
|
20721
20659
|
}
|
|
20722
20660
|
);
|
|
20723
20661
|
}
|
|
20724
20662
|
|
|
20725
20663
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/SearchMatchSummary.tsx
|
|
20726
|
-
import { Box as
|
|
20664
|
+
import { Box as Box24, Text as Text25 } from "ink";
|
|
20727
20665
|
|
|
20728
20666
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/autocomplete.ts
|
|
20729
20667
|
function longestCommonPrefix(names) {
|
|
@@ -20780,7 +20718,7 @@ function formatSearchMatchSummary(matches, total) {
|
|
|
20780
20718
|
}
|
|
20781
20719
|
|
|
20782
20720
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/SearchMatchSummary.tsx
|
|
20783
|
-
import { Fragment as
|
|
20721
|
+
import { Fragment as Fragment4, jsx as jsx28, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
20784
20722
|
function SearchMatchSummary({
|
|
20785
20723
|
open,
|
|
20786
20724
|
query,
|
|
@@ -20791,17 +20729,17 @@ function SearchMatchSummary({
|
|
|
20791
20729
|
marginTop
|
|
20792
20730
|
}) {
|
|
20793
20731
|
if (hidden) return null;
|
|
20794
|
-
return /* @__PURE__ */
|
|
20795
|
-
open && /* @__PURE__ */
|
|
20796
|
-
/* @__PURE__ */
|
|
20732
|
+
return /* @__PURE__ */ jsxs24(Fragment4, { children: [
|
|
20733
|
+
open && /* @__PURE__ */ jsxs24(Box24, { marginTop, flexDirection: "column", children: [
|
|
20734
|
+
/* @__PURE__ */ jsxs24(Text25, { children: [
|
|
20797
20735
|
`/${query}`,
|
|
20798
|
-
/* @__PURE__ */
|
|
20799
|
-
query && /* @__PURE__ */
|
|
20800
|
-
/* @__PURE__ */
|
|
20736
|
+
/* @__PURE__ */ jsx28(Text25, { color: PALETTE.accent, children: "\u258E" }),
|
|
20737
|
+
query && /* @__PURE__ */ jsx28(Text25, { color: PALETTE.muted, children: formatSearchMatchSummary(matches, total) }),
|
|
20738
|
+
/* @__PURE__ */ jsx28(Text25, { children: " \xB7 [Esc] leave" })
|
|
20801
20739
|
] }),
|
|
20802
|
-
autocompleteCandidates.length > 1 && /* @__PURE__ */
|
|
20740
|
+
autocompleteCandidates.length > 1 && /* @__PURE__ */ jsx28(Text25, { color: PALETTE.muted, children: ` possibilities: ${autocompleteCandidates.join(" \xB7 ").slice(0, 120)}` })
|
|
20803
20741
|
] }),
|
|
20804
|
-
!open && query && /* @__PURE__ */
|
|
20742
|
+
!open && query && /* @__PURE__ */ jsx28(Box24, { marginTop, children: /* @__PURE__ */ jsx28(Text25, { children: `/${query}${formatSearchMatchSummary(matches, total)} \xB7 [Esc] clear` }) })
|
|
20805
20743
|
] });
|
|
20806
20744
|
}
|
|
20807
20745
|
|
|
@@ -21648,7 +21586,7 @@ function useScopeGate({ components, tokenCount, tokensWidth, onConfirm, onQuit }
|
|
|
21648
21586
|
panelOpen: false,
|
|
21649
21587
|
entryCount: 0
|
|
21650
21588
|
});
|
|
21651
|
-
const
|
|
21589
|
+
const panelLayout = useMemo3(() => computePanelLayout(visibleCount), [visibleCount]);
|
|
21652
21590
|
useEffect13(() => {
|
|
21653
21591
|
setNav((prev) => {
|
|
21654
21592
|
const maxIdx = Math.max(0, visibleRows.length - 1);
|
|
@@ -21932,7 +21870,7 @@ function useScopeGate({ components, tokenCount, tokensWidth, onConfirm, onQuit }
|
|
|
21932
21870
|
// layout
|
|
21933
21871
|
totalWidth,
|
|
21934
21872
|
columnPlan,
|
|
21935
|
-
panelLayout
|
|
21873
|
+
panelLayout,
|
|
21936
21874
|
visibleCount,
|
|
21937
21875
|
panelMaxRows,
|
|
21938
21876
|
// sidebar
|
|
@@ -21971,7 +21909,7 @@ function useScopeGate({ components, tokenCount, tokensWidth, onConfirm, onQuit }
|
|
|
21971
21909
|
}
|
|
21972
21910
|
|
|
21973
21911
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/screen.tsx
|
|
21974
|
-
import { Fragment as
|
|
21912
|
+
import { Fragment as Fragment5, jsx as jsx29, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
21975
21913
|
var HELP_SECTIONS = [
|
|
21976
21914
|
{
|
|
21977
21915
|
title: "Navigation",
|
|
@@ -22045,24 +21983,24 @@ function ScopeGateScreen({
|
|
|
22045
21983
|
onQuit();
|
|
22046
21984
|
}
|
|
22047
21985
|
});
|
|
22048
|
-
const { search, graph, columnPlan, panelLayout
|
|
21986
|
+
const { search, graph, columnPlan, panelLayout, counters } = gate;
|
|
22049
21987
|
if (gate.showHelp) {
|
|
22050
|
-
return /* @__PURE__ */
|
|
22051
|
-
}
|
|
22052
|
-
return /* @__PURE__ */
|
|
22053
|
-
/* @__PURE__ */
|
|
22054
|
-
/* @__PURE__ */
|
|
22055
|
-
/* @__PURE__ */
|
|
22056
|
-
/* @__PURE__ */
|
|
22057
|
-
gate.aiExcludedCount > 0 && /* @__PURE__ */
|
|
21988
|
+
return /* @__PURE__ */ jsx29(HelpOverlay, { sections: HELP_SECTIONS, handleInput: false, onClose: gate.closeHelp });
|
|
21989
|
+
}
|
|
21990
|
+
return /* @__PURE__ */ jsxs25(Box25, { flexDirection: "column", children: [
|
|
21991
|
+
/* @__PURE__ */ jsx29(StepHeader, { step: "scope-gate" }),
|
|
21992
|
+
/* @__PURE__ */ jsxs25(Box25, { flexDirection: "column", paddingX: 2, children: [
|
|
21993
|
+
/* @__PURE__ */ jsxs25(Box25, { flexDirection: "row", flexWrap: "wrap", children: [
|
|
21994
|
+
/* @__PURE__ */ jsx29(CounterStrip, { counters, totalWidth: gate.totalWidth }),
|
|
21995
|
+
gate.aiExcludedCount > 0 && /* @__PURE__ */ jsxs25(Text26, { color: PALETTE.muted, children: [
|
|
22058
21996
|
`${gate.aiExcludedCount} component${gate.aiExcludedCount === 1 ? "" : "s"} flagged by AI`,
|
|
22059
|
-
gate.aiRows.length > 0 && /* @__PURE__ */
|
|
21997
|
+
gate.aiRows.length > 0 && /* @__PURE__ */ jsx29(Text26, { color: PALETTE.accent, children: " \u2014 press [x] to see why" })
|
|
22060
21998
|
] })
|
|
22061
21999
|
] }),
|
|
22062
|
-
tokens.length > 0 && columnPlan.layout === "single" && /* @__PURE__ */
|
|
22063
|
-
graph.cycles.length > 0 && /* @__PURE__ */
|
|
22064
|
-
/* @__PURE__ */
|
|
22065
|
-
gate.aiRationalePanelOpen ? /* @__PURE__ */
|
|
22000
|
+
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.` }),
|
|
22001
|
+
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." }) }),
|
|
22002
|
+
/* @__PURE__ */ jsxs25(Box25, { flexDirection: "row", alignItems: "stretch", children: [
|
|
22003
|
+
gate.aiRationalePanelOpen ? /* @__PURE__ */ jsx29(
|
|
22066
22004
|
GotoBanner,
|
|
22067
22005
|
{
|
|
22068
22006
|
title: `Review flags (${gate.aiExcludedCount})`,
|
|
@@ -22072,7 +22010,7 @@ function ScopeGateScreen({
|
|
|
22072
22010
|
width: columnPlan.main,
|
|
22073
22011
|
footerHint: "[\u2191/\u2193] move \xB7 [Enter] jump \xB7 [x/Esc] close"
|
|
22074
22012
|
}
|
|
22075
|
-
) : /* @__PURE__ */
|
|
22013
|
+
) : /* @__PURE__ */ jsx29(
|
|
22076
22014
|
GroupedSidebar,
|
|
22077
22015
|
{
|
|
22078
22016
|
items: gate.groupedItems,
|
|
@@ -22084,7 +22022,7 @@ function ScopeGateScreen({
|
|
|
22084
22022
|
expandedGroups: gate.expandedGroups,
|
|
22085
22023
|
onToggleExpanded: gate.toggleExpanded,
|
|
22086
22024
|
width: columnPlan.main,
|
|
22087
|
-
height:
|
|
22025
|
+
height: panelLayout.height,
|
|
22088
22026
|
title: "Components",
|
|
22089
22027
|
wrapLabels: true,
|
|
22090
22028
|
focused: gate.focusedColumn === "main",
|
|
@@ -22100,25 +22038,25 @@ function ScopeGateScreen({
|
|
|
22100
22038
|
graph: graph.nodes
|
|
22101
22039
|
}
|
|
22102
22040
|
),
|
|
22103
|
-
columnPlan.layout === "two-column" && /* @__PURE__ */
|
|
22104
|
-
/* @__PURE__ */
|
|
22105
|
-
/* @__PURE__ */
|
|
22041
|
+
columnPlan.layout === "two-column" && /* @__PURE__ */ jsxs25(Fragment5, { children: [
|
|
22042
|
+
/* @__PURE__ */ jsx29(Box25, { width: 2, flexShrink: 0 }),
|
|
22043
|
+
/* @__PURE__ */ jsx29(
|
|
22106
22044
|
TokensColumn,
|
|
22107
22045
|
{
|
|
22108
22046
|
width: columnPlan.tokens,
|
|
22109
22047
|
tokens,
|
|
22110
22048
|
cursor: gate.safeTokensCursor,
|
|
22111
22049
|
focused: gate.focusedColumn === "tokens",
|
|
22112
|
-
height:
|
|
22050
|
+
height: panelLayout.height,
|
|
22113
22051
|
title: `Design tokens (${tokens.length}) \xB7 read only`,
|
|
22114
|
-
visibleCount:
|
|
22052
|
+
visibleCount: panelLayout.sideVisibleCount
|
|
22115
22053
|
}
|
|
22116
22054
|
)
|
|
22117
22055
|
] })
|
|
22118
22056
|
] }),
|
|
22119
|
-
gate.cyclesPanelOpen && /* @__PURE__ */
|
|
22120
|
-
gate.pendingRejectCascade && /* @__PURE__ */
|
|
22121
|
-
/* @__PURE__ */
|
|
22057
|
+
gate.cyclesPanelOpen && /* @__PURE__ */ jsx29(CyclesPanel, { cycles: gate.slotCycles, cursor: gate.cyclesCursor }),
|
|
22058
|
+
gate.pendingRejectCascade && /* @__PURE__ */ jsx29(RejectPrompt, { pending: gate.pendingRejectCascade }),
|
|
22059
|
+
/* @__PURE__ */ jsx29(
|
|
22122
22060
|
SearchMatchSummary,
|
|
22123
22061
|
{
|
|
22124
22062
|
open: search.searchOpen,
|
|
@@ -22129,7 +22067,7 @@ function ScopeGateScreen({
|
|
|
22129
22067
|
marginTop: 1
|
|
22130
22068
|
}
|
|
22131
22069
|
),
|
|
22132
|
-
/* @__PURE__ */
|
|
22070
|
+
/* @__PURE__ */ jsx29(
|
|
22133
22071
|
CompactControlBar,
|
|
22134
22072
|
{
|
|
22135
22073
|
hasGroupRoots: gate.hasGroupRoots,
|
|
@@ -22233,20 +22171,8 @@ function generationLogInputs(input) {
|
|
|
22233
22171
|
has_tokens: input.hasTokens
|
|
22234
22172
|
};
|
|
22235
22173
|
}
|
|
22236
|
-
var MAX_LOGGED_FAILURES = 10;
|
|
22237
|
-
var MAX_LOGGED_ERROR = 300;
|
|
22238
|
-
function lastProgress(progress) {
|
|
22239
|
-
const { activity, ...rest } = progress;
|
|
22240
|
-
const failed = activity.filter((item) => item.state === "failed");
|
|
22241
|
-
return {
|
|
22242
|
-
final_progress: rest,
|
|
22243
|
-
...failed.length > 0 ? {
|
|
22244
|
-
failed_components: failed.slice(0, MAX_LOGGED_FAILURES).map((item) => ({ name: item.name, error: truncate(item.error ?? "", MAX_LOGGED_ERROR) }))
|
|
22245
|
-
} : {}
|
|
22246
|
-
};
|
|
22247
|
-
}
|
|
22248
22174
|
function generationLogOutputs(result, progress) {
|
|
22249
|
-
const last = progress ?
|
|
22175
|
+
const last = progress ? { final_progress: progress } : {};
|
|
22250
22176
|
if (!result.ok) {
|
|
22251
22177
|
return { outputs: { result: "failed", failed_step: result.step, error: result.message, ...last }, status: "error" };
|
|
22252
22178
|
}
|
|
@@ -22265,21 +22191,7 @@ function generationLogOutputs(result, progress) {
|
|
|
22265
22191
|
};
|
|
22266
22192
|
}
|
|
22267
22193
|
function initialProgress2() {
|
|
22268
|
-
return { components: null,
|
|
22269
|
-
}
|
|
22270
|
-
function applyActivityEvent(event, previous, now) {
|
|
22271
|
-
if (event.kind !== "component:started" && event.kind !== "component:completed" && event.kind !== "component:cached" && event.kind !== "component:failed") {
|
|
22272
|
-
return [...previous];
|
|
22273
|
-
}
|
|
22274
|
-
const index = previous.findIndex((item2) => item2.name === event.name);
|
|
22275
|
-
const startedAt = previous[index]?.startedAt ?? now;
|
|
22276
|
-
const item = event.kind === "component:started" ? {
|
|
22277
|
-
name: event.name,
|
|
22278
|
-
state: "running",
|
|
22279
|
-
startedAt,
|
|
22280
|
-
...event.attempt > 1 ? { detail: `attempt ${event.attempt}` } : {}
|
|
22281
|
-
} : 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 };
|
|
22282
|
-
return index >= 0 ? previous.map((existing, i) => i === index ? item : existing) : [...previous, item];
|
|
22194
|
+
return { components: null, mapTokens: "idle", mapTokensEligible: null };
|
|
22283
22195
|
}
|
|
22284
22196
|
function shouldRunMapTokens(counts) {
|
|
22285
22197
|
return counts.mappablePropCount > 0 && counts.rawTokenCount > 0;
|
|
@@ -22326,7 +22238,7 @@ function progressRows2(progress, agent, rowMs = []) {
|
|
|
22326
22238
|
}
|
|
22327
22239
|
|
|
22328
22240
|
// packages/experience-design-system-cli/src/tui/import/steps/08-generation/screen.tsx
|
|
22329
|
-
import { jsx as
|
|
22241
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
22330
22242
|
function GenerationScreen({
|
|
22331
22243
|
progress,
|
|
22332
22244
|
agent,
|
|
@@ -22334,13 +22246,12 @@ function GenerationScreen({
|
|
|
22334
22246
|
hasTokens,
|
|
22335
22247
|
rowMs
|
|
22336
22248
|
}) {
|
|
22337
|
-
return /* @__PURE__ */
|
|
22249
|
+
return /* @__PURE__ */ jsx30(
|
|
22338
22250
|
RunningStep,
|
|
22339
22251
|
{
|
|
22340
22252
|
step: "generation",
|
|
22341
22253
|
description: describeGeneration({ acceptedCount, agent, hasTokens }),
|
|
22342
|
-
lines: progressRows2(progress, agent, rowMs)
|
|
22343
|
-
aside: progress.activity.length > 0 ? /* @__PURE__ */ jsx31(ActivityPanel, { title: "Components", items: progress.activity }) : void 0
|
|
22254
|
+
lines: progressRows2(progress, agent, rowMs)
|
|
22344
22255
|
}
|
|
22345
22256
|
);
|
|
22346
22257
|
}
|
|
@@ -22401,7 +22312,7 @@ var realDeps4 = {
|
|
|
22401
22312
|
var fail2 = (step, message) => ({ ok: false, step, message });
|
|
22402
22313
|
var errorMessage3 = (error) => error instanceof Error ? error.message : String(error);
|
|
22403
22314
|
async function runGeneration(input, onProgress, deps = realDeps4) {
|
|
22404
|
-
let progress = { components: null,
|
|
22315
|
+
let progress = { components: null, mapTokens: "idle", mapTokensEligible: null };
|
|
22405
22316
|
const update = (change) => {
|
|
22406
22317
|
progress = { ...progress, ...change };
|
|
22407
22318
|
onProgress(progress);
|
|
@@ -22429,10 +22340,7 @@ async function runGeneration(input, onProgress, deps = realDeps4) {
|
|
|
22429
22340
|
noCache: input.noCache,
|
|
22430
22341
|
existingEntitiesPath: input.existingEntitiesPath,
|
|
22431
22342
|
precomputedCachedNames: new Set(handedOverNames),
|
|
22432
|
-
onProgress: (event) => update({
|
|
22433
|
-
components: applyProgressEvent2(event, progress.components, accepted.length),
|
|
22434
|
-
activity: applyActivityEvent(event, progress.activity, Date.now())
|
|
22435
|
-
})
|
|
22343
|
+
onProgress: (event) => update({ components: applyProgressEvent2(event, progress.components, accepted.length) })
|
|
22436
22344
|
});
|
|
22437
22345
|
} catch (error) {
|
|
22438
22346
|
return fail2("generate components", errorMessage3(error));
|
|
@@ -22529,7 +22437,7 @@ function useGeneration(input) {
|
|
|
22529
22437
|
return;
|
|
22530
22438
|
}
|
|
22531
22439
|
setState({ status: "running", progress: initialProgress2(), rowMs: [] });
|
|
22532
|
-
let
|
|
22440
|
+
let lastProgress;
|
|
22533
22441
|
const startedAt = Date.now();
|
|
22534
22442
|
let rowMs = [];
|
|
22535
22443
|
startDebugRun({
|
|
@@ -22539,13 +22447,13 @@ function useGeneration(input) {
|
|
|
22539
22447
|
inputs: generationLogInputs(input)
|
|
22540
22448
|
});
|
|
22541
22449
|
void runGeneration(input, (progress) => {
|
|
22542
|
-
|
|
22450
|
+
lastProgress = progress;
|
|
22543
22451
|
rowMs = trackFinished(rowMs, progressRows2(progress, input.agent), Date.now() - startedAt);
|
|
22544
22452
|
if (current.current === input) setState({ status: "running", progress, rowMs });
|
|
22545
22453
|
}).then((result) => {
|
|
22546
22454
|
if (current.current !== input) return;
|
|
22547
22455
|
void finishDebugRun({
|
|
22548
|
-
...generationLogOutputs(result,
|
|
22456
|
+
...generationLogOutputs(result, lastProgress),
|
|
22549
22457
|
exitMethod: result.ok ? "saved" : "discarded"
|
|
22550
22458
|
});
|
|
22551
22459
|
setState({ status: "done", result });
|
|
@@ -22585,7 +22493,7 @@ function buildFlowStart(input) {
|
|
|
22585
22493
|
}
|
|
22586
22494
|
|
|
22587
22495
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/flow/screen.tsx
|
|
22588
|
-
import { Box as
|
|
22496
|
+
import { Box as Box45 } from "ink";
|
|
22589
22497
|
|
|
22590
22498
|
// packages/experience-design-system-types/dist/src/cdf/validate.js
|
|
22591
22499
|
import { Ajv as Ajv2 } from "ajv";
|
|
@@ -23071,7 +22979,7 @@ function skipLabel(matchedNames) {
|
|
|
23071
22979
|
}
|
|
23072
22980
|
|
|
23073
22981
|
// packages/experience-design-system-cli/src/tui/import/steps/preview-validation-error/screen.tsx
|
|
23074
|
-
import { jsx as
|
|
22982
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
23075
22983
|
function PreviewValidationErrorScreen({
|
|
23076
22984
|
errors,
|
|
23077
22985
|
missingNames,
|
|
@@ -23080,7 +22988,7 @@ function PreviewValidationErrorScreen({
|
|
|
23080
22988
|
onQuit
|
|
23081
22989
|
}) {
|
|
23082
22990
|
const matchedNames = matchedComponentNames(errors, missingNames);
|
|
23083
|
-
return /* @__PURE__ */
|
|
22991
|
+
return /* @__PURE__ */ jsx31(
|
|
23084
22992
|
GateStep,
|
|
23085
22993
|
{
|
|
23086
22994
|
intent: "error",
|
|
@@ -23116,7 +23024,7 @@ function getReviewJsonPanelValue(selected, showHiddenProps) {
|
|
|
23116
23024
|
}
|
|
23117
23025
|
|
|
23118
23026
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/generate-review-step.tsx
|
|
23119
|
-
import { Box as
|
|
23027
|
+
import { Box as Box38, Text as Text40 } from "ink";
|
|
23120
23028
|
|
|
23121
23029
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/graph/cycle-view.ts
|
|
23122
23030
|
function computeCycleView(components) {
|
|
@@ -23355,12 +23263,12 @@ function enumerateCycleBreaks(cycle, components) {
|
|
|
23355
23263
|
}
|
|
23356
23264
|
|
|
23357
23265
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ReviewComponentPanel.tsx
|
|
23358
|
-
import { Box as
|
|
23266
|
+
import { Box as Box32, Text as Text34 } from "ink";
|
|
23359
23267
|
|
|
23360
23268
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/FieldEditor.tsx
|
|
23361
23269
|
import React13, { useEffect as useEffect17, useLayoutEffect as useLayoutEffect2, useState as useState19 } from "react";
|
|
23362
23270
|
import figures6 from "figures";
|
|
23363
|
-
import { Box as
|
|
23271
|
+
import { Box as Box26, measureElement, Text as Text27 } from "ink";
|
|
23364
23272
|
|
|
23365
23273
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/scroll-offset.ts
|
|
23366
23274
|
function computeNextScrollOffset(current, input, key, totalLines, panelHeight) {
|
|
@@ -23391,7 +23299,7 @@ function computeNextScrollOffset(current, input, key, totalLines, panelHeight) {
|
|
|
23391
23299
|
}
|
|
23392
23300
|
|
|
23393
23301
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/FieldEditor.tsx
|
|
23394
|
-
import { Fragment as
|
|
23302
|
+
import { Fragment as Fragment6, jsx as jsx32, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
23395
23303
|
function createCommonRowProps(selected, focusLevel, editingField, textCursor, valueCursor, cursorVisible, editingValue, valueText, width) {
|
|
23396
23304
|
return {
|
|
23397
23305
|
selected,
|
|
@@ -23529,14 +23437,14 @@ function serializeState(state2, originalJson) {
|
|
|
23529
23437
|
return JSON.stringify(entry, null, 2);
|
|
23530
23438
|
}
|
|
23531
23439
|
function Picker({ value, active }) {
|
|
23532
|
-
return /* @__PURE__ */
|
|
23533
|
-
active && /* @__PURE__ */
|
|
23534
|
-
/* @__PURE__ */
|
|
23535
|
-
active && /* @__PURE__ */
|
|
23440
|
+
return /* @__PURE__ */ jsxs26(Box26, { children: [
|
|
23441
|
+
active && /* @__PURE__ */ jsx32(Text27, { color: PALETTE.warning, children: "\u2039" }),
|
|
23442
|
+
/* @__PURE__ */ jsx32(Text27, { color: active ? PALETTE.warning : void 0, bold: active, children: value }),
|
|
23443
|
+
active && /* @__PURE__ */ jsx32(Text27, { color: PALETTE.warning, children: "\u203A" })
|
|
23536
23444
|
] });
|
|
23537
23445
|
}
|
|
23538
23446
|
function Toggle({ value, active }) {
|
|
23539
|
-
return /* @__PURE__ */
|
|
23447
|
+
return /* @__PURE__ */ jsx32(Box26, { children: /* @__PURE__ */ jsx32(Text27, { color: active ? PALETTE.warning : value ? PALETTE.success : PALETTE.border, children: value ? "[\u2713]" : "[ ]" }) });
|
|
23540
23448
|
}
|
|
23541
23449
|
function InlinePropField({
|
|
23542
23450
|
label,
|
|
@@ -23545,8 +23453,8 @@ function InlinePropField({
|
|
|
23545
23453
|
flexible = false,
|
|
23546
23454
|
width
|
|
23547
23455
|
}) {
|
|
23548
|
-
return /* @__PURE__ */
|
|
23549
|
-
/* @__PURE__ */
|
|
23456
|
+
return /* @__PURE__ */ jsxs26(Box26, { width, gap: 1, flexShrink: flexible ? 1 : 0, flexGrow: flexible ? 1 : 0, flexWrap: "wrap", children: [
|
|
23457
|
+
/* @__PURE__ */ jsxs26(Text27, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, wrap: "truncate-end", children: [
|
|
23550
23458
|
focused ? "\u203A " : " ",
|
|
23551
23459
|
label
|
|
23552
23460
|
] }),
|
|
@@ -23559,19 +23467,19 @@ function RequiredField({
|
|
|
23559
23467
|
editingField,
|
|
23560
23468
|
activeField
|
|
23561
23469
|
}) {
|
|
23562
|
-
return /* @__PURE__ */
|
|
23470
|
+
return /* @__PURE__ */ jsx32(InlinePropField, { label: "req:", focused, children: /* @__PURE__ */ jsx32(Toggle, { value, active: editingField && activeField === "required" }) });
|
|
23563
23471
|
}
|
|
23564
23472
|
function DefaultValueRow({
|
|
23565
23473
|
display,
|
|
23566
23474
|
active,
|
|
23567
23475
|
focused
|
|
23568
23476
|
}) {
|
|
23569
|
-
return /* @__PURE__ */
|
|
23570
|
-
/* @__PURE__ */
|
|
23477
|
+
return /* @__PURE__ */ jsxs26(Box26, { gap: 1, flexWrap: "wrap", flexShrink: 0, children: [
|
|
23478
|
+
/* @__PURE__ */ jsxs26(Text27, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
|
|
23571
23479
|
focused ? "\u203A " : " ",
|
|
23572
23480
|
"default:"
|
|
23573
23481
|
] }),
|
|
23574
|
-
active ? /* @__PURE__ */
|
|
23482
|
+
active ? /* @__PURE__ */ jsx32(Picker, { value: display, active: true }) : /* @__PURE__ */ jsx32(Text27, { wrap: "wrap", children: display })
|
|
23575
23483
|
] });
|
|
23576
23484
|
}
|
|
23577
23485
|
function RowLabel({
|
|
@@ -23579,8 +23487,8 @@ function RowLabel({
|
|
|
23579
23487
|
selected,
|
|
23580
23488
|
trailing = true
|
|
23581
23489
|
}) {
|
|
23582
|
-
return /* @__PURE__ */
|
|
23583
|
-
|
|
23490
|
+
return /* @__PURE__ */ jsxs26(
|
|
23491
|
+
Text27,
|
|
23584
23492
|
{
|
|
23585
23493
|
color: selected ? PALETTE.onAccent : PALETTE.accent,
|
|
23586
23494
|
bold: selected,
|
|
@@ -23599,10 +23507,10 @@ function ValueInputRow({
|
|
|
23599
23507
|
valueText,
|
|
23600
23508
|
cursorVisible
|
|
23601
23509
|
}) {
|
|
23602
|
-
return /* @__PURE__ */
|
|
23603
|
-
/* @__PURE__ */
|
|
23604
|
-
/* @__PURE__ */
|
|
23605
|
-
/* @__PURE__ */
|
|
23510
|
+
return /* @__PURE__ */ jsxs26(Box26, { paddingLeft: 2, children: [
|
|
23511
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.accent, children: mode === "edit" ? "\u270E " : "+ " }),
|
|
23512
|
+
/* @__PURE__ */ jsx32(Text27, { children: valueText }),
|
|
23513
|
+
/* @__PURE__ */ jsx32(Text27, { inverse: cursorVisible, children: " " })
|
|
23606
23514
|
] });
|
|
23607
23515
|
}
|
|
23608
23516
|
function EditableListItem({
|
|
@@ -23615,9 +23523,9 @@ function EditableListItem({
|
|
|
23615
23523
|
}) {
|
|
23616
23524
|
const isBeingEdited = editingValue?.mode === "edit" && editingValue.index === index;
|
|
23617
23525
|
if (isBeingEdited) {
|
|
23618
|
-
return /* @__PURE__ */
|
|
23526
|
+
return /* @__PURE__ */ jsx32(ValueInputRow, { mode: "edit", valueText, cursorVisible });
|
|
23619
23527
|
}
|
|
23620
|
-
return /* @__PURE__ */
|
|
23528
|
+
return /* @__PURE__ */ jsx32(Box26, { gap: 1, paddingLeft: 2, children: /* @__PURE__ */ jsx32(Text27, { color: active ? PALETTE.accent : void 0, children: active ? `${figures6.pointer} ${value}` : ` ${value}` }) });
|
|
23621
23529
|
}
|
|
23622
23530
|
function EditableValueList({
|
|
23623
23531
|
values,
|
|
@@ -23630,9 +23538,9 @@ function EditableValueList({
|
|
|
23630
23538
|
emptyPaddingLeft,
|
|
23631
23539
|
showAddInput
|
|
23632
23540
|
}) {
|
|
23633
|
-
return /* @__PURE__ */
|
|
23634
|
-
values.length === 0 && !editingValue && (emptyPaddingLeft === void 0 ? /* @__PURE__ */
|
|
23635
|
-
values.map((value, index) => /* @__PURE__ */
|
|
23541
|
+
return /* @__PURE__ */ jsxs26(Fragment6, { children: [
|
|
23542
|
+
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 }) })),
|
|
23543
|
+
values.map((value, index) => /* @__PURE__ */ jsx32(
|
|
23636
23544
|
EditableListItem,
|
|
23637
23545
|
{
|
|
23638
23546
|
value,
|
|
@@ -23644,7 +23552,7 @@ function EditableValueList({
|
|
|
23644
23552
|
},
|
|
23645
23553
|
index
|
|
23646
23554
|
)),
|
|
23647
|
-
showAddInput && editingValue?.mode === "add" && /* @__PURE__ */
|
|
23555
|
+
showAddInput && editingValue?.mode === "add" && /* @__PURE__ */ jsx32(ValueInputRow, { mode: "add", valueText, cursorVisible })
|
|
23648
23556
|
] });
|
|
23649
23557
|
}
|
|
23650
23558
|
function DefaultSubRow({
|
|
@@ -23656,51 +23564,51 @@ function DefaultSubRow({
|
|
|
23656
23564
|
}) {
|
|
23657
23565
|
const cursor = cursorVisible ? "\u2588" : " ";
|
|
23658
23566
|
if (prop.type === "richtext" || prop.type === "media" || prop.type === "link") {
|
|
23659
|
-
return /* @__PURE__ */
|
|
23660
|
-
/* @__PURE__ */
|
|
23567
|
+
return /* @__PURE__ */ jsxs26(Box26, { gap: 1, flexShrink: 0, children: [
|
|
23568
|
+
/* @__PURE__ */ jsxs26(Text27, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
|
|
23661
23569
|
focused ? "\u203A " : " ",
|
|
23662
23570
|
"default:"
|
|
23663
23571
|
] }),
|
|
23664
|
-
/* @__PURE__ */
|
|
23572
|
+
/* @__PURE__ */ jsx32(Text27, { color: focused ? void 0 : PALETTE.muted, children: "(not applicable)" })
|
|
23665
23573
|
] });
|
|
23666
23574
|
}
|
|
23667
23575
|
if (prop.type === "boolean") {
|
|
23668
23576
|
const display = prop.default === true ? "true" : prop.default === false ? "false" : "(unset)";
|
|
23669
|
-
return /* @__PURE__ */
|
|
23577
|
+
return /* @__PURE__ */ jsx32(DefaultValueRow, { display, active, focused });
|
|
23670
23578
|
}
|
|
23671
23579
|
if (prop.type === "enum") {
|
|
23672
23580
|
if (prop.values.length === 0) {
|
|
23673
|
-
return /* @__PURE__ */
|
|
23674
|
-
/* @__PURE__ */
|
|
23581
|
+
return /* @__PURE__ */ jsxs26(Box26, { gap: 1, flexShrink: 0, children: [
|
|
23582
|
+
/* @__PURE__ */ jsxs26(Text27, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
|
|
23675
23583
|
focused ? "\u203A " : " ",
|
|
23676
23584
|
"default:"
|
|
23677
23585
|
] }),
|
|
23678
|
-
/* @__PURE__ */
|
|
23586
|
+
/* @__PURE__ */ jsx32(Text27, { color: focused ? void 0 : PALETTE.muted, children: "(no values defined)" })
|
|
23679
23587
|
] });
|
|
23680
23588
|
}
|
|
23681
23589
|
const display = typeof prop.default === "string" && prop.default !== "" ? prop.default : "(unset)";
|
|
23682
|
-
return /* @__PURE__ */
|
|
23590
|
+
return /* @__PURE__ */ jsx32(DefaultValueRow, { display, active, focused });
|
|
23683
23591
|
}
|
|
23684
23592
|
const value = typeof prop.default === "string" ? prop.default : "";
|
|
23685
23593
|
if (active) {
|
|
23686
|
-
return /* @__PURE__ */
|
|
23687
|
-
/* @__PURE__ */
|
|
23594
|
+
return /* @__PURE__ */ jsxs26(Box26, { flexDirection: "row", flexShrink: 0, children: [
|
|
23595
|
+
/* @__PURE__ */ jsxs26(Text27, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
|
|
23688
23596
|
focused ? "\u203A " : " ",
|
|
23689
23597
|
"default:"
|
|
23690
23598
|
] }),
|
|
23691
|
-
/* @__PURE__ */
|
|
23692
|
-
/* @__PURE__ */
|
|
23693
|
-
/* @__PURE__ */
|
|
23694
|
-
/* @__PURE__ */
|
|
23599
|
+
/* @__PURE__ */ jsxs26(Box26, { flexGrow: 1, borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, children: [
|
|
23600
|
+
/* @__PURE__ */ jsx32(Text27, { children: value.slice(0, textCursor) }),
|
|
23601
|
+
/* @__PURE__ */ jsx32(Text27, { inverse: cursorVisible, children: value[textCursor] ?? cursor }),
|
|
23602
|
+
/* @__PURE__ */ jsx32(Text27, { children: value.slice(textCursor + 1) })
|
|
23695
23603
|
] })
|
|
23696
23604
|
] });
|
|
23697
23605
|
}
|
|
23698
|
-
return /* @__PURE__ */
|
|
23699
|
-
/* @__PURE__ */
|
|
23606
|
+
return /* @__PURE__ */ jsxs26(Box26, { gap: 1, flexShrink: 0, children: [
|
|
23607
|
+
/* @__PURE__ */ jsxs26(Text27, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
|
|
23700
23608
|
focused ? "\u203A " : " ",
|
|
23701
23609
|
"default:"
|
|
23702
23610
|
] }),
|
|
23703
|
-
/* @__PURE__ */
|
|
23611
|
+
/* @__PURE__ */ jsx32(Text27, { color: focused || value ? void 0 : PALETTE.muted, children: value || "(none)" })
|
|
23704
23612
|
] });
|
|
23705
23613
|
}
|
|
23706
23614
|
function DescriptionField({
|
|
@@ -23715,20 +23623,20 @@ function DescriptionField({
|
|
|
23715
23623
|
paddingLeft = 2
|
|
23716
23624
|
}) {
|
|
23717
23625
|
if (compact) {
|
|
23718
|
-
return /* @__PURE__ */
|
|
23719
|
-
/* @__PURE__ */
|
|
23626
|
+
return /* @__PURE__ */ jsxs26(Box26, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: [
|
|
23627
|
+
/* @__PURE__ */ jsxs26(Text27, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
|
|
23720
23628
|
focused ? "\u203A " : " ",
|
|
23721
23629
|
label
|
|
23722
23630
|
] }),
|
|
23723
|
-
/* @__PURE__ */
|
|
23631
|
+
/* @__PURE__ */ jsx32(Text27, { wrap: "truncate-end", color: value ? void 0 : PALETTE.muted, children: value || "\u2014" })
|
|
23724
23632
|
] });
|
|
23725
23633
|
}
|
|
23726
|
-
return /* @__PURE__ */
|
|
23727
|
-
/* @__PURE__ */
|
|
23634
|
+
return /* @__PURE__ */ jsxs26(Box26, { paddingLeft, flexDirection: "column", width, flexShrink: 0, children: [
|
|
23635
|
+
/* @__PURE__ */ jsxs26(Text27, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
|
|
23728
23636
|
focused ? "\u203A " : " ",
|
|
23729
23637
|
label
|
|
23730
23638
|
] }),
|
|
23731
|
-
editing ? /* @__PURE__ */
|
|
23639
|
+
editing ? /* @__PURE__ */ jsx32(EditableDescription, { cursorVisible, value, textCursor }) : /* @__PURE__ */ jsx32(Text27, { wrap: "wrap", children: value || "\u2014" })
|
|
23732
23640
|
] });
|
|
23733
23641
|
}
|
|
23734
23642
|
function EditableDescription({
|
|
@@ -23736,9 +23644,9 @@ function EditableDescription({
|
|
|
23736
23644
|
value,
|
|
23737
23645
|
textCursor
|
|
23738
23646
|
}) {
|
|
23739
|
-
return /* @__PURE__ */
|
|
23647
|
+
return /* @__PURE__ */ jsxs26(Text27, { wrap: "wrap", children: [
|
|
23740
23648
|
value.slice(0, textCursor),
|
|
23741
|
-
/* @__PURE__ */
|
|
23649
|
+
/* @__PURE__ */ jsx32(Text27, { inverse: cursorVisible, children: value[textCursor] ?? " " }),
|
|
23742
23650
|
value.slice(textCursor + 1)
|
|
23743
23651
|
] });
|
|
23744
23652
|
}
|
|
@@ -23759,9 +23667,9 @@ function PropRow({
|
|
|
23759
23667
|
}) {
|
|
23760
23668
|
const descFocused = activeField === "description";
|
|
23761
23669
|
const descActive = editingField && descFocused;
|
|
23762
|
-
return /* @__PURE__ */
|
|
23763
|
-
/* @__PURE__ */
|
|
23764
|
-
/* @__PURE__ */
|
|
23670
|
+
return /* @__PURE__ */ jsxs26(Box26, { flexDirection: "column", width, flexShrink: 0, children: [
|
|
23671
|
+
/* @__PURE__ */ jsx32(Box26, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: /* @__PURE__ */ jsx32(RowLabel, { name: prop.name, selected }) }),
|
|
23672
|
+
/* @__PURE__ */ jsx32(
|
|
23765
23673
|
DescriptionField,
|
|
23766
23674
|
{
|
|
23767
23675
|
value: prop.description,
|
|
@@ -23774,8 +23682,8 @@ function PropRow({
|
|
|
23774
23682
|
paddingLeft: 0
|
|
23775
23683
|
}
|
|
23776
23684
|
),
|
|
23777
|
-
/* @__PURE__ */
|
|
23778
|
-
/* @__PURE__ */
|
|
23685
|
+
/* @__PURE__ */ jsxs26(Box26, { flexDirection: "column", width, flexShrink: 0, children: [
|
|
23686
|
+
/* @__PURE__ */ jsx32(
|
|
23779
23687
|
RequiredField,
|
|
23780
23688
|
{
|
|
23781
23689
|
value: prop.required,
|
|
@@ -23784,21 +23692,21 @@ function PropRow({
|
|
|
23784
23692
|
activeField
|
|
23785
23693
|
}
|
|
23786
23694
|
),
|
|
23787
|
-
/* @__PURE__ */
|
|
23695
|
+
/* @__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 }) })
|
|
23788
23696
|
] }),
|
|
23789
|
-
prop.type === "token" && /* @__PURE__ */
|
|
23790
|
-
prop.type === "enum" && /* @__PURE__ */
|
|
23791
|
-
/* @__PURE__ */
|
|
23697
|
+
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" }) }),
|
|
23698
|
+
prop.type === "enum" && /* @__PURE__ */ jsxs26(Box26, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: [
|
|
23699
|
+
/* @__PURE__ */ jsxs26(Text27, { color: activeField === "values" ? PALETTE.warning : PALETTE.muted, bold: activeField === "values", children: [
|
|
23792
23700
|
activeField === "values" ? "\u203A " : " ",
|
|
23793
23701
|
"values:"
|
|
23794
23702
|
] }),
|
|
23795
|
-
/* @__PURE__ */
|
|
23703
|
+
/* @__PURE__ */ jsxs26(Text27, { wrap: "wrap", children: [
|
|
23796
23704
|
"[",
|
|
23797
23705
|
prop.values.join(", "),
|
|
23798
23706
|
"]"
|
|
23799
23707
|
] })
|
|
23800
23708
|
] }),
|
|
23801
|
-
/* @__PURE__ */
|
|
23709
|
+
/* @__PURE__ */ jsx32(
|
|
23802
23710
|
DefaultSubRow,
|
|
23803
23711
|
{
|
|
23804
23712
|
prop,
|
|
@@ -23808,13 +23716,13 @@ function PropRow({
|
|
|
23808
23716
|
cursorVisible
|
|
23809
23717
|
}
|
|
23810
23718
|
),
|
|
23811
|
-
prop.type === "token" && prop.category === "design" && /* @__PURE__ */
|
|
23812
|
-
/* @__PURE__ */
|
|
23719
|
+
prop.type === "token" && prop.category === "design" && /* @__PURE__ */ jsxs26(Box26, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: [
|
|
23720
|
+
/* @__PURE__ */ jsxs26(Text27, { color: activeField === "allowed" ? PALETTE.warning : PALETTE.muted, bold: activeField === "allowed", children: [
|
|
23813
23721
|
activeField === "allowed" ? "\u203A " : " ",
|
|
23814
23722
|
"allowed:"
|
|
23815
23723
|
] }),
|
|
23816
|
-
editingField && activeField === "allowed" ? /* @__PURE__ */
|
|
23817
|
-
|
|
23724
|
+
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(
|
|
23725
|
+
Text27,
|
|
23818
23726
|
{
|
|
23819
23727
|
color: activeField !== "allowed" && prop.allowed.length === 0 ? PALETTE.muted : void 0,
|
|
23820
23728
|
wrap: "wrap",
|
|
@@ -23822,17 +23730,17 @@ function PropRow({
|
|
|
23822
23730
|
}
|
|
23823
23731
|
)
|
|
23824
23732
|
] }),
|
|
23825
|
-
selected && showRationale && rationale && rationale.trim().length > 0 && /* @__PURE__ */
|
|
23733
|
+
selected && showRationale && rationale && rationale.trim().length > 0 && /* @__PURE__ */ jsx32(Box26, { paddingLeft: 2, children: /* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: (() => {
|
|
23826
23734
|
const max = Math.max(8, width - 8);
|
|
23827
23735
|
const text = `~ ${rationale}`;
|
|
23828
23736
|
return text.length > max ? text.slice(0, max - 1) + "\u2026" : text;
|
|
23829
23737
|
})() }) }, rowKey ? `rationale-${rowKey}` : void 0),
|
|
23830
|
-
selected && prop.type === "enum" && activeField === "values" && /* @__PURE__ */
|
|
23831
|
-
/* @__PURE__ */
|
|
23832
|
-
/* @__PURE__ */
|
|
23833
|
-
activeField === "values" && /* @__PURE__ */
|
|
23738
|
+
selected && prop.type === "enum" && activeField === "values" && /* @__PURE__ */ jsxs26(Box26, { paddingLeft: 2, flexDirection: "column", children: [
|
|
23739
|
+
/* @__PURE__ */ jsxs26(Box26, { children: [
|
|
23740
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: "values:" }),
|
|
23741
|
+
activeField === "values" && /* @__PURE__ */ jsx32(Text27, { children: " [a] add [e] edit [r] remove [\u2191\u2193] navigate [K/J] reorder" })
|
|
23834
23742
|
] }),
|
|
23835
|
-
/* @__PURE__ */
|
|
23743
|
+
/* @__PURE__ */ jsx32(
|
|
23836
23744
|
EditableValueList,
|
|
23837
23745
|
{
|
|
23838
23746
|
values: prop.values,
|
|
@@ -23862,9 +23770,9 @@ function SlotRow({
|
|
|
23862
23770
|
pickerCandidates,
|
|
23863
23771
|
pickerCursor
|
|
23864
23772
|
}) {
|
|
23865
|
-
return /* @__PURE__ */
|
|
23866
|
-
/* @__PURE__ */
|
|
23867
|
-
/* @__PURE__ */
|
|
23773
|
+
return /* @__PURE__ */ jsxs26(Box26, { flexDirection: "column", width, flexShrink: 0, children: [
|
|
23774
|
+
/* @__PURE__ */ jsx32(Box26, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: /* @__PURE__ */ jsx32(RowLabel, { name: slot.name, selected, trailing: false }) }),
|
|
23775
|
+
/* @__PURE__ */ jsx32(
|
|
23868
23776
|
DescriptionField,
|
|
23869
23777
|
{
|
|
23870
23778
|
value: slot.description,
|
|
@@ -23877,7 +23785,7 @@ function SlotRow({
|
|
|
23877
23785
|
paddingLeft: 0
|
|
23878
23786
|
}
|
|
23879
23787
|
),
|
|
23880
|
-
/* @__PURE__ */
|
|
23788
|
+
/* @__PURE__ */ jsx32(Box26, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: /* @__PURE__ */ jsx32(
|
|
23881
23789
|
RequiredField,
|
|
23882
23790
|
{
|
|
23883
23791
|
value: slot.required,
|
|
@@ -23886,9 +23794,9 @@ function SlotRow({
|
|
|
23886
23794
|
activeField
|
|
23887
23795
|
}
|
|
23888
23796
|
) }),
|
|
23889
|
-
!(selected && editingField && activeField === "allowedComponents") && /* @__PURE__ */
|
|
23890
|
-
/* @__PURE__ */
|
|
23891
|
-
|
|
23797
|
+
!(selected && editingField && activeField === "allowedComponents") && /* @__PURE__ */ jsxs26(Box26, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: [
|
|
23798
|
+
/* @__PURE__ */ jsxs26(
|
|
23799
|
+
Text27,
|
|
23892
23800
|
{
|
|
23893
23801
|
color: activeField === "allowedComponents" ? PALETTE.warning : PALETTE.muted,
|
|
23894
23802
|
bold: activeField === "allowedComponents",
|
|
@@ -23898,12 +23806,12 @@ function SlotRow({
|
|
|
23898
23806
|
]
|
|
23899
23807
|
}
|
|
23900
23808
|
),
|
|
23901
|
-
slot.allowedComponents.length === 0 ? /* @__PURE__ */
|
|
23809
|
+
slot.allowedComponents.length === 0 ? /* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: "(any)" }) : /* @__PURE__ */ jsx32(Text27, { wrap: "wrap", children: slot.allowedComponents.join(", ") })
|
|
23902
23810
|
] }),
|
|
23903
|
-
selected && editingField && activeField === "allowedComponents" && /* @__PURE__ */
|
|
23904
|
-
/* @__PURE__ */
|
|
23905
|
-
/* @__PURE__ */
|
|
23906
|
-
|
|
23811
|
+
selected && editingField && activeField === "allowedComponents" && /* @__PURE__ */ jsxs26(Box26, { flexDirection: "column", children: [
|
|
23812
|
+
/* @__PURE__ */ jsxs26(Box26, { children: [
|
|
23813
|
+
/* @__PURE__ */ jsxs26(
|
|
23814
|
+
Text27,
|
|
23907
23815
|
{
|
|
23908
23816
|
color: activeField === "allowedComponents" ? PALETTE.warning : PALETTE.muted,
|
|
23909
23817
|
bold: activeField === "allowedComponents",
|
|
@@ -23913,9 +23821,9 @@ function SlotRow({
|
|
|
23913
23821
|
]
|
|
23914
23822
|
}
|
|
23915
23823
|
),
|
|
23916
|
-
editingField && activeField === "allowedComponents" && /* @__PURE__ */
|
|
23824
|
+
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" })
|
|
23917
23825
|
] }),
|
|
23918
|
-
/* @__PURE__ */
|
|
23826
|
+
/* @__PURE__ */ jsx32(
|
|
23919
23827
|
EditableValueList,
|
|
23920
23828
|
{
|
|
23921
23829
|
values: slot.allowedComponents,
|
|
@@ -23929,21 +23837,21 @@ function SlotRow({
|
|
|
23929
23837
|
showAddInput: editingField && activeField === "allowedComponents"
|
|
23930
23838
|
}
|
|
23931
23839
|
),
|
|
23932
|
-
editingField && editingValue?.mode === "add" && activeField === "allowedComponents" && pickerCandidates !== null && /* @__PURE__ */
|
|
23840
|
+
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)" }) : (() => {
|
|
23933
23841
|
const filtered = valueText.length === 0 ? pickerCandidates : pickerCandidates.filter((n) => n.toLowerCase().includes(valueText.toLowerCase()));
|
|
23934
23842
|
if (filtered.length === 0) {
|
|
23935
|
-
return /* @__PURE__ */
|
|
23843
|
+
return /* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: "(no candidates match \u2014 Enter to add as free text)" });
|
|
23936
23844
|
}
|
|
23937
23845
|
const cursor = pickerCursor % filtered.length;
|
|
23938
23846
|
const MAX_VISIBLE = 5;
|
|
23939
23847
|
const start = Math.max(0, Math.min(filtered.length - MAX_VISIBLE, cursor - 2));
|
|
23940
23848
|
const slice = filtered.slice(start, start + MAX_VISIBLE);
|
|
23941
|
-
return /* @__PURE__ */
|
|
23942
|
-
/* @__PURE__ */
|
|
23849
|
+
return /* @__PURE__ */ jsxs26(Box26, { flexDirection: "column", children: [
|
|
23850
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: " candidates (\u2191\u2193 cycle, Enter to add):" }),
|
|
23943
23851
|
slice.map((name, i) => {
|
|
23944
23852
|
const absIdx = start + i;
|
|
23945
23853
|
const isCursor = absIdx === cursor;
|
|
23946
|
-
return /* @__PURE__ */
|
|
23854
|
+
return /* @__PURE__ */ jsx32(Text27, { color: isCursor ? PALETTE.accent : PALETTE.muted, children: isCursor ? ` ${figures6.pointer} ${name}` : ` ${name}` }, name);
|
|
23947
23855
|
})
|
|
23948
23856
|
] });
|
|
23949
23857
|
})() })
|
|
@@ -24823,18 +24731,18 @@ function FieldEditor({
|
|
|
24823
24731
|
});
|
|
24824
24732
|
const innerWidth = Math.max(1, width - 2);
|
|
24825
24733
|
if (parseErr) {
|
|
24826
|
-
return /* @__PURE__ */
|
|
24827
|
-
/* @__PURE__ */
|
|
24828
|
-
/* @__PURE__ */
|
|
24829
|
-
/* @__PURE__ */
|
|
24734
|
+
return /* @__PURE__ */ jsxs26(Box26, { flexDirection: "column", width, borderStyle: "single", borderColor: PALETTE.error, children: [
|
|
24735
|
+
/* @__PURE__ */ jsx32(Text27, { bold: true, color: PALETTE.error, children: "FIELD EDITOR \u2014 parse error" }),
|
|
24736
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.error, children: parseErr }),
|
|
24737
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: "Cannot display structured editor. Fix the JSON first." })
|
|
24830
24738
|
] });
|
|
24831
24739
|
}
|
|
24832
24740
|
if (props.length === 0 && slots.length === 0) {
|
|
24833
|
-
return /* @__PURE__ */
|
|
24834
|
-
/* @__PURE__ */
|
|
24835
|
-
/* @__PURE__ */
|
|
24836
|
-
/* @__PURE__ */
|
|
24837
|
-
/* @__PURE__ */
|
|
24741
|
+
return /* @__PURE__ */ jsxs26(Box26, { flexDirection: "column", width, borderStyle: "single", borderColor: PALETTE.warning, children: [
|
|
24742
|
+
/* @__PURE__ */ jsx32(Text27, { bold: true, color: PALETTE.warning, children: "FIELD EDITOR \u2014 no fields" }),
|
|
24743
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.warning, children: "\u26A0 No properties classified for this component. The LLM didn't find anything to classify." }),
|
|
24744
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: "You can add fields manually below or reject this component." }),
|
|
24745
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: "Enter to save \xB7 Esc to discard" })
|
|
24838
24746
|
] });
|
|
24839
24747
|
}
|
|
24840
24748
|
const hasEmptyProperties = props.length === 0 && slots.length === 0;
|
|
@@ -24967,12 +24875,12 @@ function FieldEditor({
|
|
|
24967
24875
|
const renderRow = (row, index) => {
|
|
24968
24876
|
const key = rowKey(row, index);
|
|
24969
24877
|
if (row.kind === "header") {
|
|
24970
|
-
return /* @__PURE__ */
|
|
24878
|
+
return /* @__PURE__ */ jsx32(Box26, { flexDirection: "column", paddingTop: 1, children: /* @__PURE__ */ jsx32(Text27, { bold: true, color: PALETTE.success, children: row.label }) }, key);
|
|
24971
24879
|
}
|
|
24972
24880
|
if (row.kind === "component-description") {
|
|
24973
24881
|
const isSelected2 = inComponentDesc && active;
|
|
24974
24882
|
const isEditing = isSelected2 && focusLevel === "field" && editingField && activeField === "description";
|
|
24975
|
-
return /* @__PURE__ */
|
|
24883
|
+
return /* @__PURE__ */ jsx32(
|
|
24976
24884
|
DescriptionField,
|
|
24977
24885
|
{
|
|
24978
24886
|
value: editorState.componentDescription,
|
|
@@ -25003,7 +24911,7 @@ function FieldEditor({
|
|
|
25003
24911
|
valueText,
|
|
25004
24912
|
innerWidth
|
|
25005
24913
|
);
|
|
25006
|
-
return /* @__PURE__ */
|
|
24914
|
+
return /* @__PURE__ */ jsx32(
|
|
25007
24915
|
PropRow,
|
|
25008
24916
|
{
|
|
25009
24917
|
prop: p,
|
|
@@ -25030,7 +24938,7 @@ function FieldEditor({
|
|
|
25030
24938
|
valueText,
|
|
25031
24939
|
innerWidth
|
|
25032
24940
|
);
|
|
25033
|
-
return /* @__PURE__ */
|
|
24941
|
+
return /* @__PURE__ */ jsx32(
|
|
25034
24942
|
SlotRow,
|
|
25035
24943
|
{
|
|
25036
24944
|
slot: s,
|
|
@@ -25042,7 +24950,7 @@ function FieldEditor({
|
|
|
25042
24950
|
key
|
|
25043
24951
|
);
|
|
25044
24952
|
};
|
|
25045
|
-
return /* @__PURE__ */
|
|
24953
|
+
return /* @__PURE__ */ jsxs26(
|
|
25046
24954
|
FixedPanel,
|
|
25047
24955
|
{
|
|
25048
24956
|
width,
|
|
@@ -25051,9 +24959,9 @@ function FieldEditor({
|
|
|
25051
24959
|
borderStyle: "single",
|
|
25052
24960
|
borderColor: hasEmptyProperties ? PALETTE.warning : active ? PALETTE.accent : PALETTE.border,
|
|
25053
24961
|
children: [
|
|
25054
|
-
hasEmptyProperties && /* @__PURE__ */
|
|
24962
|
+
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." }),
|
|
25055
24963
|
header,
|
|
25056
|
-
/* @__PURE__ */
|
|
24964
|
+
/* @__PURE__ */ jsx32(Box26, { flexDirection: "column", width: innerWidth, flexShrink: 0, children: focusLevel === "field" && !inComponentDesc && currentProp ? /* @__PURE__ */ jsx32(
|
|
25057
24965
|
PropRow,
|
|
25058
24966
|
{
|
|
25059
24967
|
prop: currentProp,
|
|
@@ -25069,7 +24977,7 @@ function FieldEditor({
|
|
|
25069
24977
|
rationale: metadata?.props?.[currentProp.name]?.rationale ?? null,
|
|
25070
24978
|
showRationale: showInlineRationales
|
|
25071
24979
|
}
|
|
25072
|
-
) : focusLevel === "field" && inSlots && currentSlot ? /* @__PURE__ */
|
|
24980
|
+
) : focusLevel === "field" && inSlots && currentSlot ? /* @__PURE__ */ jsx32(
|
|
25073
24981
|
SlotRow,
|
|
25074
24982
|
{
|
|
25075
24983
|
slot: currentSlot,
|
|
@@ -25088,8 +24996,8 @@ function FieldEditor({
|
|
|
25088
24996
|
) : visibleRowSlice.map((row, index) => {
|
|
25089
24997
|
const absoluteIndex = scrollStart + index;
|
|
25090
24998
|
const key = rowKey(row, absoluteIndex);
|
|
25091
|
-
return /* @__PURE__ */
|
|
25092
|
-
|
|
24999
|
+
return /* @__PURE__ */ jsx32(
|
|
25000
|
+
Box26,
|
|
25093
25001
|
{
|
|
25094
25002
|
ref: (node) => {
|
|
25095
25003
|
if (node) rowMeasureRefs.current.set(key, node);
|
|
@@ -25102,7 +25010,7 @@ function FieldEditor({
|
|
|
25102
25010
|
`visible-${key}`
|
|
25103
25011
|
);
|
|
25104
25012
|
}) }),
|
|
25105
|
-
categoryBelow && /* @__PURE__ */
|
|
25013
|
+
categoryBelow && /* @__PURE__ */ jsx32(Text27, { color: PALETTE.success, bold: true, children: `(${categoryBelow} below)` }),
|
|
25106
25014
|
sourceOpen && !onToggleSourceExternal && (() => {
|
|
25107
25015
|
const propMeta = !inSlots && !inComponentDesc && currentProp ? metadata?.props?.[currentProp.name] : void 0;
|
|
25108
25016
|
const start = propMeta?.sourceStartLine ?? null;
|
|
@@ -25111,60 +25019,60 @@ function FieldEditor({
|
|
|
25111
25019
|
const src = metadata?.componentSource ?? null;
|
|
25112
25020
|
const headerPath = path5 ?? "<unknown source path>";
|
|
25113
25021
|
if (!start || !end2 || !src) {
|
|
25114
|
-
return /* @__PURE__ */
|
|
25115
|
-
/* @__PURE__ */
|
|
25116
|
-
/* @__PURE__ */
|
|
25117
|
-
/* @__PURE__ */
|
|
25022
|
+
return /* @__PURE__ */ jsxs26(Box26, { flexDirection: "column", borderStyle: "single", borderColor: "gray", paddingX: 1, children: [
|
|
25023
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, bold: true, children: `source: ${headerPath}` }),
|
|
25024
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: "(no source location captured for this prop)" }),
|
|
25025
|
+
/* @__PURE__ */ jsx32(Text27, { children: "[s] close" })
|
|
25118
25026
|
] });
|
|
25119
25027
|
}
|
|
25120
25028
|
const lines = src.split("\n").slice(Math.max(0, start - 1), end2);
|
|
25121
|
-
return /* @__PURE__ */
|
|
25122
|
-
/* @__PURE__ */
|
|
25123
|
-
lines.map((ln, i) => /* @__PURE__ */
|
|
25124
|
-
/* @__PURE__ */
|
|
25029
|
+
return /* @__PURE__ */ jsxs26(Box26, { flexDirection: "column", borderStyle: "single", borderColor: "gray", paddingX: 1, children: [
|
|
25030
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, bold: true, children: `${headerPath}: lines ${start}\u2013${end2}` }),
|
|
25031
|
+
lines.map((ln, i) => /* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: ln }, `source-line-${i}`)),
|
|
25032
|
+
/* @__PURE__ */ jsx32(Text27, { children: "[s] close \xB7 [Esc] close" })
|
|
25125
25033
|
] });
|
|
25126
25034
|
})(),
|
|
25127
|
-
showHelp && /* @__PURE__ */
|
|
25128
|
-
/* @__PURE__ */
|
|
25129
|
-
/* @__PURE__ */
|
|
25130
|
-
/* @__PURE__ */
|
|
25131
|
-
/* @__PURE__ */
|
|
25132
|
-
/* @__PURE__ */
|
|
25133
|
-
/* @__PURE__ */
|
|
25134
|
-
/* @__PURE__ */
|
|
25135
|
-
/* @__PURE__ */
|
|
25136
|
-
/* @__PURE__ */
|
|
25137
|
-
/* @__PURE__ */
|
|
25138
|
-
/* @__PURE__ */
|
|
25139
|
-
/* @__PURE__ */
|
|
25140
|
-
/* @__PURE__ */
|
|
25141
|
-
/* @__PURE__ */
|
|
25142
|
-
/* @__PURE__ */
|
|
25143
|
-
/* @__PURE__ */
|
|
25144
|
-
/* @__PURE__ */
|
|
25145
|
-
/* @__PURE__ */
|
|
25146
|
-
/* @__PURE__ */
|
|
25147
|
-
/* @__PURE__ */
|
|
25148
|
-
/* @__PURE__ */
|
|
25149
|
-
/* @__PURE__ */
|
|
25150
|
-
/* @__PURE__ */
|
|
25151
|
-
/* @__PURE__ */
|
|
25152
|
-
/* @__PURE__ */
|
|
25153
|
-
/* @__PURE__ */
|
|
25154
|
-
/* @__PURE__ */
|
|
25035
|
+
showHelp && /* @__PURE__ */ jsxs26(Box26, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.accent, paddingX: 1, children: [
|
|
25036
|
+
/* @__PURE__ */ jsx32(Text27, { bold: true, color: PALETTE.accent, children: "Keybindings" }),
|
|
25037
|
+
/* @__PURE__ */ jsx32(Text27, { children: " " }),
|
|
25038
|
+
/* @__PURE__ */ jsx32(Text27, { bold: true, children: "Row navigation" }),
|
|
25039
|
+
/* @__PURE__ */ jsx32(Text27, { children: " \u2191/\u2193 move between rows" }),
|
|
25040
|
+
/* @__PURE__ */ jsx32(Text27, { children: " Enter edit fields on the current row" }),
|
|
25041
|
+
/* @__PURE__ */ jsx32(Text27, { children: " d delete the current prop or slot (asks to confirm)" }),
|
|
25042
|
+
/* @__PURE__ */ jsx32(Text27, { children: " Esc exit the panel" }),
|
|
25043
|
+
/* @__PURE__ */ jsx32(Text27, { children: " " }),
|
|
25044
|
+
/* @__PURE__ */ jsx32(Text27, { bold: true, children: "Field editing" }),
|
|
25045
|
+
/* @__PURE__ */ jsx32(Text27, { children: " \u2191/\u2193/\u2190\u2192 cycle through fields" }),
|
|
25046
|
+
/* @__PURE__ */ jsx32(Text27, { children: " \u2190/\u2192 cycle picker values \xB7 move cursor in text inputs" }),
|
|
25047
|
+
/* @__PURE__ */ jsx32(Text27, { children: " Space/Enter toggle required" }),
|
|
25048
|
+
/* @__PURE__ */ jsx32(Text27, { children: " Type edit description / string default" }),
|
|
25049
|
+
/* @__PURE__ */ jsx32(Text27, { children: " Esc exit field-edit back to the row" }),
|
|
25050
|
+
/* @__PURE__ */ jsx32(Text27, { children: " " }),
|
|
25051
|
+
/* @__PURE__ */ jsx32(Text27, { bold: true, children: "Values / allowedComponents" }),
|
|
25052
|
+
/* @__PURE__ */ jsx32(Text27, { children: " a / e / r add \xB7 edit \xB7 remove" }),
|
|
25053
|
+
/* @__PURE__ */ jsx32(Text27, { children: " \u2191\u2193 navigate the list" }),
|
|
25054
|
+
/* @__PURE__ */ jsx32(Text27, { children: " K / J reorder up \xB7 down" }),
|
|
25055
|
+
/* @__PURE__ */ jsx32(Text27, { children: " " }),
|
|
25056
|
+
/* @__PURE__ */ jsx32(Text27, { bold: true, children: "Panels" }),
|
|
25057
|
+
/* @__PURE__ */ jsx32(Text27, { children: " s toggle source-view for the current prop" }),
|
|
25058
|
+
/* @__PURE__ */ jsx32(Text27, { children: " " + propRationaleKey.padEnd(16) + " toggle prop rationale panel" }),
|
|
25059
|
+
/* @__PURE__ */ jsx32(Text27, { children: " " + componentRationaleKey.padEnd(16) + " toggle component rationale panel" }),
|
|
25060
|
+
/* @__PURE__ */ jsx32(Text27, { children: " ? toggle this overlay" }),
|
|
25061
|
+
/* @__PURE__ */ jsx32(Text27, { children: " " }),
|
|
25062
|
+
/* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: "press ? or Esc to close" })
|
|
25155
25063
|
] }),
|
|
25156
|
-
validationError && /* @__PURE__ */
|
|
25157
|
-
/* @__PURE__ */
|
|
25064
|
+
validationError && /* @__PURE__ */ jsx32(Text27, { color: PALETTE.error, children: "\u2717 " + validationError }),
|
|
25065
|
+
/* @__PURE__ */ jsx32(Box26, { paddingTop: 1, children: /* @__PURE__ */ jsx32(Text27, { color: pendingDelete ? PALETTE.text : PALETTE.muted, children: modeLabel }) })
|
|
25158
25066
|
]
|
|
25159
25067
|
}
|
|
25160
25068
|
);
|
|
25161
25069
|
}
|
|
25162
25070
|
|
|
25163
25071
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/review-details-panel.tsx
|
|
25164
|
-
import { Text as
|
|
25072
|
+
import { Text as Text33 } from "ink";
|
|
25165
25073
|
|
|
25166
25074
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ComponentRationalePanel.tsx
|
|
25167
|
-
import { Box as
|
|
25075
|
+
import { Box as Box28, Text as Text29 } from "ink";
|
|
25168
25076
|
|
|
25169
25077
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/wrap-text.ts
|
|
25170
25078
|
function appendLongWordChunks(word, width, lines) {
|
|
@@ -25199,27 +25107,27 @@ function wrapText(text, innerWidth) {
|
|
|
25199
25107
|
}
|
|
25200
25108
|
|
|
25201
25109
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/RationaleLine.tsx
|
|
25202
|
-
import { Box as
|
|
25203
|
-
import { jsx as
|
|
25110
|
+
import { Box as Box27, Text as Text28 } from "ink";
|
|
25111
|
+
import { jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
25204
25112
|
function RationaleLine({ line, active }) {
|
|
25205
25113
|
if (line.kind === "blank") {
|
|
25206
|
-
return /* @__PURE__ */
|
|
25114
|
+
return /* @__PURE__ */ jsx33(Box27, { children: /* @__PURE__ */ jsx33(Text28, { children: " " }) });
|
|
25207
25115
|
}
|
|
25208
25116
|
if (line.kind === "heading") {
|
|
25209
|
-
return /* @__PURE__ */
|
|
25117
|
+
return /* @__PURE__ */ jsx33(Box27, { children: /* @__PURE__ */ jsx33(Text28, { bold: true, color: active ? PALETTE.accent : PALETTE.muted, children: line.text }) });
|
|
25210
25118
|
}
|
|
25211
25119
|
if (line.kind === "label") {
|
|
25212
|
-
return /* @__PURE__ */
|
|
25213
|
-
line.prefix && /* @__PURE__ */
|
|
25214
|
-
/* @__PURE__ */
|
|
25215
|
-
line.suffix && /* @__PURE__ */
|
|
25120
|
+
return /* @__PURE__ */ jsxs27(Box27, { children: [
|
|
25121
|
+
line.prefix && /* @__PURE__ */ jsx33(Text28, { children: line.prefix }),
|
|
25122
|
+
/* @__PURE__ */ jsx33(Text28, { bold: true, color: active ? line.color : PALETTE.muted, children: line.text }),
|
|
25123
|
+
line.suffix && /* @__PURE__ */ jsx33(Text28, { color: PALETTE.muted, children: line.suffix })
|
|
25216
25124
|
] });
|
|
25217
25125
|
}
|
|
25218
|
-
return /* @__PURE__ */
|
|
25126
|
+
return /* @__PURE__ */ jsx33(Box27, { children: /* @__PURE__ */ jsx33(Text28, { color: !active || line.dim ? PALETTE.muted : void 0, children: line.text }) });
|
|
25219
25127
|
}
|
|
25220
25128
|
|
|
25221
25129
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ComponentRationalePanel.tsx
|
|
25222
|
-
import { jsx as
|
|
25130
|
+
import { jsx as jsx34, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
25223
25131
|
var PLACEHOLDER = "(no rationale captured)";
|
|
25224
25132
|
function renderComponentRationaleLines(data, innerWidth) {
|
|
25225
25133
|
const out = [];
|
|
@@ -25287,8 +25195,8 @@ function ComponentRationalePanel({
|
|
|
25287
25195
|
const overflowed = totalLines > contentHeight;
|
|
25288
25196
|
const visibleStart = totalLines === 0 ? 0 : scrollOffset + 1;
|
|
25289
25197
|
const visibleEnd = Math.min(totalLines, scrollOffset + contentHeight);
|
|
25290
|
-
return /* @__PURE__ */
|
|
25291
|
-
|
|
25198
|
+
return /* @__PURE__ */ jsxs28(
|
|
25199
|
+
Box28,
|
|
25292
25200
|
{
|
|
25293
25201
|
flexDirection: "column",
|
|
25294
25202
|
width,
|
|
@@ -25296,27 +25204,27 @@ function ComponentRationalePanel({
|
|
|
25296
25204
|
borderStyle: "single",
|
|
25297
25205
|
borderColor: active ? PALETTE.text : void 0,
|
|
25298
25206
|
children: [
|
|
25299
|
-
/* @__PURE__ */
|
|
25300
|
-
visible.map((line, i) => /* @__PURE__ */
|
|
25301
|
-
/* @__PURE__ */
|
|
25207
|
+
/* @__PURE__ */ jsx34(Box28, { children: /* @__PURE__ */ jsx34(Text29, { bold: true, color: active ? void 0 : PALETTE.muted, children: `Component rationale: ${data.name}` }) }),
|
|
25208
|
+
visible.map((line, i) => /* @__PURE__ */ jsx34(RationaleLine, { line, active }, i)),
|
|
25209
|
+
/* @__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" }) })
|
|
25302
25210
|
]
|
|
25303
25211
|
}
|
|
25304
25212
|
);
|
|
25305
25213
|
}
|
|
25306
25214
|
|
|
25307
25215
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/JsonPanel.tsx
|
|
25308
|
-
import { Box as
|
|
25216
|
+
import { Box as Box30 } from "ink";
|
|
25309
25217
|
|
|
25310
25218
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/HighlightedLine.tsx
|
|
25311
|
-
import { Text as
|
|
25312
|
-
import { Fragment as
|
|
25219
|
+
import { Text as Text30 } from "ink";
|
|
25220
|
+
import { Fragment as Fragment7, jsx as jsx35 } from "react/jsx-runtime";
|
|
25313
25221
|
function HighlightedLine({ parts }) {
|
|
25314
|
-
return /* @__PURE__ */
|
|
25222
|
+
return /* @__PURE__ */ jsx35(Fragment7, { children: parts.map((part, i) => /* @__PURE__ */ jsx35(Text30, { color: part.dim ? PALETTE.muted : part.color, children: part.text }, i)) });
|
|
25315
25223
|
}
|
|
25316
25224
|
|
|
25317
25225
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ScrollablePanel.tsx
|
|
25318
|
-
import { Box as
|
|
25319
|
-
import { Fragment as
|
|
25226
|
+
import { Box as Box29, Text as Text31 } from "ink";
|
|
25227
|
+
import { Fragment as Fragment8, jsx as jsx36, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
25320
25228
|
function ScrollablePanel({
|
|
25321
25229
|
title,
|
|
25322
25230
|
width,
|
|
@@ -25329,12 +25237,12 @@ function ScrollablePanel({
|
|
|
25329
25237
|
children
|
|
25330
25238
|
}) {
|
|
25331
25239
|
const overflowed = totalLines > height;
|
|
25332
|
-
return /* @__PURE__ */
|
|
25333
|
-
/* @__PURE__ */
|
|
25334
|
-
/* @__PURE__ */
|
|
25335
|
-
overflowed && /* @__PURE__ */
|
|
25336
|
-
/* @__PURE__ */
|
|
25337
|
-
/* @__PURE__ */
|
|
25240
|
+
return /* @__PURE__ */ jsxs29(Box29, { flexDirection: "column", width, height: height + 2, borderStyle: "single", borderColor, children: [
|
|
25241
|
+
/* @__PURE__ */ jsxs29(Box29, { children: [
|
|
25242
|
+
/* @__PURE__ */ jsx36(Text31, { bold: true, color: active ? void 0 : PALETTE.muted, children: title }),
|
|
25243
|
+
overflowed && /* @__PURE__ */ jsxs29(Fragment8, { children: [
|
|
25244
|
+
/* @__PURE__ */ jsx36(Box29, { flexGrow: 1 }),
|
|
25245
|
+
/* @__PURE__ */ jsx36(Text31, { color: active ? void 0 : PALETTE.muted, children: `\u2195 ${visibleStart}-${visibleEnd}/${totalLines}` })
|
|
25338
25246
|
] })
|
|
25339
25247
|
] }),
|
|
25340
25248
|
children
|
|
@@ -25342,7 +25250,7 @@ function ScrollablePanel({
|
|
|
25342
25250
|
}
|
|
25343
25251
|
|
|
25344
25252
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/JsonPanel.tsx
|
|
25345
|
-
import { jsx as
|
|
25253
|
+
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
25346
25254
|
function highlightJson(line) {
|
|
25347
25255
|
const parts = [];
|
|
25348
25256
|
let remaining = line;
|
|
@@ -25380,7 +25288,7 @@ function highlightJson(line) {
|
|
|
25380
25288
|
parts.push({ text: remaining[0] });
|
|
25381
25289
|
remaining = remaining.slice(1);
|
|
25382
25290
|
}
|
|
25383
|
-
return /* @__PURE__ */
|
|
25291
|
+
return /* @__PURE__ */ jsx37(HighlightedLine, { parts });
|
|
25384
25292
|
}
|
|
25385
25293
|
function truncateLine(line, maxWidth) {
|
|
25386
25294
|
if (line.length <= maxWidth) return line;
|
|
@@ -25393,7 +25301,7 @@ function JsonPanel({ label, value, scrollOffset, width, height, active }) {
|
|
|
25393
25301
|
const totalLines = allLines.length;
|
|
25394
25302
|
const visibleStart = totalLines === 0 ? 0 : scrollOffset + 1;
|
|
25395
25303
|
const visibleEnd = Math.min(totalLines, scrollOffset + height);
|
|
25396
|
-
return /* @__PURE__ */
|
|
25304
|
+
return /* @__PURE__ */ jsx37(
|
|
25397
25305
|
ScrollablePanel,
|
|
25398
25306
|
{
|
|
25399
25307
|
title: label,
|
|
@@ -25406,14 +25314,14 @@ function JsonPanel({ label, value, scrollOffset, width, height, active }) {
|
|
|
25406
25314
|
borderColor: active ? "white" : void 0,
|
|
25407
25315
|
children: visibleLines.map((line, i) => {
|
|
25408
25316
|
const truncated = truncateLine(line, innerWidth);
|
|
25409
|
-
return /* @__PURE__ */
|
|
25317
|
+
return /* @__PURE__ */ jsx37(Box30, { children: highlightJson(truncated) }, i);
|
|
25410
25318
|
})
|
|
25411
25319
|
}
|
|
25412
25320
|
);
|
|
25413
25321
|
}
|
|
25414
25322
|
|
|
25415
25323
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/RationalePanel.tsx
|
|
25416
|
-
import { jsx as
|
|
25324
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
25417
25325
|
function renderRationaleLines(rows, innerWidth) {
|
|
25418
25326
|
const out = [];
|
|
25419
25327
|
rows.forEach((row, idx) => {
|
|
@@ -25446,7 +25354,7 @@ function RationalePanel({
|
|
|
25446
25354
|
const visible = allLines.slice(scrollOffset, scrollOffset + height);
|
|
25447
25355
|
const visibleStart = totalLines === 0 ? 0 : scrollOffset + 1;
|
|
25448
25356
|
const visibleEnd = Math.min(totalLines, scrollOffset + height);
|
|
25449
|
-
return /* @__PURE__ */
|
|
25357
|
+
return /* @__PURE__ */ jsx38(
|
|
25450
25358
|
ScrollablePanel,
|
|
25451
25359
|
{
|
|
25452
25360
|
title: `RATIONALE \u2014 ${componentName}`,
|
|
@@ -25457,15 +25365,15 @@ function RationalePanel({
|
|
|
25457
25365
|
visibleStart,
|
|
25458
25366
|
visibleEnd,
|
|
25459
25367
|
borderColor: active ? PALETTE.text : void 0,
|
|
25460
|
-
children: visible.map((line, i) => /* @__PURE__ */
|
|
25368
|
+
children: visible.map((line, i) => /* @__PURE__ */ jsx38(RationaleLine, { line, active }, i))
|
|
25461
25369
|
}
|
|
25462
25370
|
);
|
|
25463
25371
|
}
|
|
25464
25372
|
|
|
25465
25373
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/TokenReviewPanel.tsx
|
|
25466
25374
|
import figures7 from "figures";
|
|
25467
|
-
import { Box as
|
|
25468
|
-
import { jsx as
|
|
25375
|
+
import { Box as Box31, Text as Text32 } from "ink";
|
|
25376
|
+
import { jsx as jsx39, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
25469
25377
|
function TokenReviewPanel({
|
|
25470
25378
|
componentName,
|
|
25471
25379
|
suggestions,
|
|
@@ -25484,8 +25392,8 @@ function TokenReviewPanel({
|
|
|
25484
25392
|
const scrollStart = Math.max(0, Math.min(editCursor - Math.floor(visibleCount / 2), maxStart));
|
|
25485
25393
|
const visiblePaths = current.paths.slice(scrollStart, scrollStart + visibleCount);
|
|
25486
25394
|
const rangeLabel = current.paths.length === 0 ? "no compatible tokens" : `${scrollStart + 1}-${scrollStart + visiblePaths.length} of ${current.paths.length}`;
|
|
25487
|
-
return /* @__PURE__ */
|
|
25488
|
-
|
|
25395
|
+
return /* @__PURE__ */ jsxs30(
|
|
25396
|
+
Box31,
|
|
25489
25397
|
{
|
|
25490
25398
|
flexDirection: "column",
|
|
25491
25399
|
width,
|
|
@@ -25493,16 +25401,16 @@ function TokenReviewPanel({
|
|
|
25493
25401
|
borderStyle: "single",
|
|
25494
25402
|
borderColor: active ? PALETTE.text : void 0,
|
|
25495
25403
|
children: [
|
|
25496
|
-
/* @__PURE__ */
|
|
25497
|
-
/* @__PURE__ */
|
|
25498
|
-
/* @__PURE__ */
|
|
25499
|
-
current.paths.length === 0 && /* @__PURE__ */
|
|
25404
|
+
/* @__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(", ")})` : ""}` }),
|
|
25405
|
+
/* @__PURE__ */ jsx39(Text32, { color: PALETTE.muted, wrap: "truncate", children: `Tick the tokens this property may use (${rangeLabel}).` }),
|
|
25406
|
+
/* @__PURE__ */ jsx39(Text32, { children: " " }),
|
|
25407
|
+
current.paths.length === 0 && /* @__PURE__ */ jsx39(Text32, { color: PALETTE.muted, children: "(no compatible tokens found for this token kind)" }),
|
|
25500
25408
|
visiblePaths.map((path5, i) => {
|
|
25501
25409
|
const pathIndex = scrollStart + i;
|
|
25502
25410
|
const checked = editSelection.has(path5);
|
|
25503
25411
|
const focused = pathIndex === editCursor;
|
|
25504
|
-
return /* @__PURE__ */
|
|
25505
|
-
|
|
25412
|
+
return /* @__PURE__ */ jsx39(Box31, { children: /* @__PURE__ */ jsx39(
|
|
25413
|
+
Text32,
|
|
25506
25414
|
{
|
|
25507
25415
|
color: focused ? PALETTE.accent : active ? void 0 : PALETTE.muted,
|
|
25508
25416
|
bold: focused,
|
|
@@ -25511,15 +25419,15 @@ function TokenReviewPanel({
|
|
|
25511
25419
|
}
|
|
25512
25420
|
) }, path5);
|
|
25513
25421
|
}),
|
|
25514
|
-
/* @__PURE__ */
|
|
25515
|
-
/* @__PURE__ */
|
|
25516
|
-
/* @__PURE__ */
|
|
25422
|
+
/* @__PURE__ */ jsx39(Text32, { children: " " }),
|
|
25423
|
+
/* @__PURE__ */ jsx39(Text32, { color: PALETTE.muted, wrap: "truncate", children: "[\u2191/\u2193] move [Space] toggle" }),
|
|
25424
|
+
/* @__PURE__ */ jsx39(Text32, { color: PALETTE.muted, wrap: "truncate", children: "[Ctrl+S] save [Esc] cancel" })
|
|
25517
25425
|
]
|
|
25518
25426
|
}
|
|
25519
25427
|
);
|
|
25520
25428
|
}
|
|
25521
|
-
return /* @__PURE__ */
|
|
25522
|
-
|
|
25429
|
+
return /* @__PURE__ */ jsxs30(
|
|
25430
|
+
Box31,
|
|
25523
25431
|
{
|
|
25524
25432
|
flexDirection: "column",
|
|
25525
25433
|
width,
|
|
@@ -25527,40 +25435,40 @@ function TokenReviewPanel({
|
|
|
25527
25435
|
borderStyle: "single",
|
|
25528
25436
|
borderColor: active ? PALETTE.text : void 0,
|
|
25529
25437
|
children: [
|
|
25530
|
-
/* @__PURE__ */
|
|
25531
|
-
/* @__PURE__ */
|
|
25532
|
-
/* @__PURE__ */
|
|
25533
|
-
/* @__PURE__ */
|
|
25534
|
-
suggestions.length === 0 && /* @__PURE__ */
|
|
25438
|
+
/* @__PURE__ */ jsx39(Text32, { bold: true, color: active ? void 0 : PALETTE.muted, children: `Review mapped tokens \u2014 ${componentName}` }),
|
|
25439
|
+
/* @__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.` }),
|
|
25440
|
+
/* @__PURE__ */ jsx39(Text32, { color: PALETTE.muted, wrap: "truncate", children: "Suggested tokens come from the agent. Allowed tokens are what editors can pick in Contentful." }),
|
|
25441
|
+
/* @__PURE__ */ jsx39(Text32, { children: " " }),
|
|
25442
|
+
suggestions.length === 0 && /* @__PURE__ */ jsx39(Text32, { color: PALETTE.muted, children: "(no token suggestions for this component)" }),
|
|
25535
25443
|
suggestions.map((s, i) => {
|
|
25536
25444
|
const focused = i === selectedRow;
|
|
25537
|
-
return /* @__PURE__ */
|
|
25538
|
-
/* @__PURE__ */
|
|
25539
|
-
/* @__PURE__ */
|
|
25540
|
-
|
|
25445
|
+
return /* @__PURE__ */ jsxs30(Box31, { flexDirection: "column", children: [
|
|
25446
|
+
/* @__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(", ")})` : ""}` }) }),
|
|
25447
|
+
/* @__PURE__ */ jsx39(
|
|
25448
|
+
Text32,
|
|
25541
25449
|
{
|
|
25542
25450
|
color: PALETTE.muted,
|
|
25543
25451
|
children: ` suggested: ${s.suggested.length > 0 ? s.suggested.join(", ") : "none"}`
|
|
25544
25452
|
}
|
|
25545
25453
|
),
|
|
25546
|
-
/* @__PURE__ */
|
|
25547
|
-
|
|
25454
|
+
/* @__PURE__ */ jsx39(
|
|
25455
|
+
Text32,
|
|
25548
25456
|
{
|
|
25549
25457
|
color: PALETTE.muted,
|
|
25550
25458
|
children: ` allowed: ${s.allowed.length > 0 ? s.allowed.join(", ") : "none (any token)"}`
|
|
25551
25459
|
}
|
|
25552
25460
|
),
|
|
25553
|
-
/* @__PURE__ */
|
|
25461
|
+
/* @__PURE__ */ jsx39(Text32, { children: " " })
|
|
25554
25462
|
] }, s.propName);
|
|
25555
25463
|
}),
|
|
25556
|
-
/* @__PURE__ */
|
|
25464
|
+
/* @__PURE__ */ jsx39(Text32, { color: PALETTE.muted, children: "[\u2191/\u2193] move [Enter] edit allowed tokens [Esc] close" })
|
|
25557
25465
|
]
|
|
25558
25466
|
}
|
|
25559
25467
|
);
|
|
25560
25468
|
}
|
|
25561
25469
|
|
|
25562
25470
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/review-details-panel.tsx
|
|
25563
|
-
import { Fragment as
|
|
25471
|
+
import { Fragment as Fragment9, jsx as jsx40, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
25564
25472
|
function ReviewDetailsPanel({
|
|
25565
25473
|
selectedKey,
|
|
25566
25474
|
panelOpen,
|
|
@@ -25595,7 +25503,7 @@ function ReviewDetailsPanel({
|
|
|
25595
25503
|
rationale: s.rationale ?? ""
|
|
25596
25504
|
}))
|
|
25597
25505
|
];
|
|
25598
|
-
return /* @__PURE__ */
|
|
25506
|
+
return /* @__PURE__ */ jsx40(
|
|
25599
25507
|
RationalePanel,
|
|
25600
25508
|
{
|
|
25601
25509
|
componentName: componentRationale?.name ?? selectedKey,
|
|
@@ -25608,7 +25516,7 @@ function ReviewDetailsPanel({
|
|
|
25608
25516
|
);
|
|
25609
25517
|
}
|
|
25610
25518
|
if (panelOpen === "component-rationale") {
|
|
25611
|
-
return /* @__PURE__ */
|
|
25519
|
+
return /* @__PURE__ */ jsx40(
|
|
25612
25520
|
ComponentRationalePanel,
|
|
25613
25521
|
{
|
|
25614
25522
|
data: componentRationale ?? {
|
|
@@ -25633,14 +25541,14 @@ function ReviewDetailsPanel({
|
|
|
25633
25541
|
const headerPath = path5 ?? "<unknown source path>";
|
|
25634
25542
|
const sourceLineCount = Math.max(1, height - 4);
|
|
25635
25543
|
const lines = source ? source.split("\n").slice(panelScrollOffset, panelScrollOffset + sourceLineCount) : [];
|
|
25636
|
-
return /* @__PURE__ */
|
|
25637
|
-
/* @__PURE__ */
|
|
25638
|
-
source ? lines.map((line, index) => /* @__PURE__ */
|
|
25639
|
-
/* @__PURE__ */
|
|
25544
|
+
return /* @__PURE__ */ jsxs31(FixedPanel, { width, height, borderStyle: "single", borderColor: sourceBorderColor, paddingLeft: 1, children: [
|
|
25545
|
+
/* @__PURE__ */ jsx40(Text33, { color: PALETTE.muted, bold: true, wrap: "truncate-end", children: `source: ${headerPath}` }),
|
|
25546
|
+
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)" }),
|
|
25547
|
+
/* @__PURE__ */ jsx40(Text33, { color: PALETTE.muted, wrap: "truncate-end", children: "[s/Esc] close" })
|
|
25640
25548
|
] });
|
|
25641
25549
|
}
|
|
25642
25550
|
if (panelOpen === "token-review") {
|
|
25643
|
-
return /* @__PURE__ */
|
|
25551
|
+
return /* @__PURE__ */ jsx40(
|
|
25644
25552
|
TokenReviewPanel,
|
|
25645
25553
|
{
|
|
25646
25554
|
componentName: selectedKey,
|
|
@@ -25656,7 +25564,7 @@ function ReviewDetailsPanel({
|
|
|
25656
25564
|
);
|
|
25657
25565
|
}
|
|
25658
25566
|
if (showJson) {
|
|
25659
|
-
return /* @__PURE__ */
|
|
25567
|
+
return /* @__PURE__ */ jsx40(
|
|
25660
25568
|
JsonPanel,
|
|
25661
25569
|
{
|
|
25662
25570
|
label: "GENERATED DEFINITION (read-only)",
|
|
@@ -25668,11 +25576,11 @@ function ReviewDetailsPanel({
|
|
|
25668
25576
|
}
|
|
25669
25577
|
);
|
|
25670
25578
|
}
|
|
25671
|
-
return /* @__PURE__ */
|
|
25579
|
+
return /* @__PURE__ */ jsx40(Fragment9, { children: editor });
|
|
25672
25580
|
}
|
|
25673
25581
|
|
|
25674
25582
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ReviewDetailsEditor.tsx
|
|
25675
|
-
import { jsx as
|
|
25583
|
+
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
25676
25584
|
import { createElement } from "react";
|
|
25677
25585
|
function toFieldEditorMetadata(reviewMetadata) {
|
|
25678
25586
|
if (!reviewMetadata) return void 0;
|
|
@@ -25706,7 +25614,7 @@ function ReviewDetailsEditor({
|
|
|
25706
25614
|
jsonScrollOffset,
|
|
25707
25615
|
currentTokenSuggestions
|
|
25708
25616
|
} = reviewEditor;
|
|
25709
|
-
return /* @__PURE__ */
|
|
25617
|
+
return /* @__PURE__ */ jsx41(
|
|
25710
25618
|
ReviewDetailsPanel,
|
|
25711
25619
|
{
|
|
25712
25620
|
selectedKey,
|
|
@@ -25746,7 +25654,7 @@ function ReviewDetailsEditor({
|
|
|
25746
25654
|
}
|
|
25747
25655
|
|
|
25748
25656
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ReviewComponentPanel.tsx
|
|
25749
|
-
import { Fragment as
|
|
25657
|
+
import { Fragment as Fragment10, jsx as jsx42, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
25750
25658
|
function buildReviewFieldEditor(reviewEditor, selectedJson, onExit, overrides = {}) {
|
|
25751
25659
|
return {
|
|
25752
25660
|
value: reviewEditor.draftValue || selectedJson,
|
|
@@ -25786,24 +25694,24 @@ function ReviewEmptyComponentsWarning({
|
|
|
25786
25694
|
hidden
|
|
25787
25695
|
}) {
|
|
25788
25696
|
if (hidden || count === 0) return null;
|
|
25789
|
-
return /* @__PURE__ */
|
|
25697
|
+
return /* @__PURE__ */ jsx42(Text34, { color: PALETTE.warning, children: `\u26A0 ${count} component${count === 1 ? "" : "s"} had no classifiable props \u2014 review with care` });
|
|
25790
25698
|
}
|
|
25791
25699
|
function ReviewNoSelection() {
|
|
25792
|
-
return /* @__PURE__ */
|
|
25700
|
+
return /* @__PURE__ */ jsx42(Box32, { flexGrow: 1, paddingLeft: 1, flexDirection: "column", children: /* @__PURE__ */ jsx42(Text34, { color: PALETTE.muted, children: "No component selected" }) });
|
|
25793
25701
|
}
|
|
25794
25702
|
function ReviewFinalizeError({
|
|
25795
25703
|
message,
|
|
25796
25704
|
hidden
|
|
25797
25705
|
}) {
|
|
25798
25706
|
if (hidden || !message) return null;
|
|
25799
|
-
return /* @__PURE__ */
|
|
25707
|
+
return /* @__PURE__ */ jsx42(Text34, { color: PALETTE.error, children: `\u26A0 ${message}` });
|
|
25800
25708
|
}
|
|
25801
25709
|
function ReviewPanelFooter({
|
|
25802
25710
|
reviewEditor,
|
|
25803
25711
|
sidebarFocused,
|
|
25804
25712
|
sidebarFooter
|
|
25805
25713
|
}) {
|
|
25806
|
-
return /* @__PURE__ */
|
|
25714
|
+
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" : "") });
|
|
25807
25715
|
}
|
|
25808
25716
|
function ReviewComponentTitle({
|
|
25809
25717
|
selectedKey,
|
|
@@ -25811,10 +25719,10 @@ function ReviewComponentTitle({
|
|
|
25811
25719
|
slotCount,
|
|
25812
25720
|
sidebarFocused
|
|
25813
25721
|
}) {
|
|
25814
|
-
return /* @__PURE__ */
|
|
25815
|
-
/* @__PURE__ */
|
|
25816
|
-
/* @__PURE__ */
|
|
25817
|
-
/* @__PURE__ */
|
|
25722
|
+
return /* @__PURE__ */ jsxs32(Box32, { paddingLeft: 2, paddingBottom: 1, children: [
|
|
25723
|
+
/* @__PURE__ */ jsx42(Text34, { bold: true, wrap: "truncate-end", children: selectedKey }),
|
|
25724
|
+
/* @__PURE__ */ jsx42(Box32, { flexGrow: 1 }),
|
|
25725
|
+
/* @__PURE__ */ jsxs32(Text34, { color: PALETTE.muted, wrap: "truncate-end", children: [
|
|
25818
25726
|
propCount,
|
|
25819
25727
|
" prop",
|
|
25820
25728
|
propCount !== 1 ? "s" : "",
|
|
@@ -25843,8 +25751,8 @@ function ReviewComponentPanel({
|
|
|
25843
25751
|
const slotCount = selectedEntry.$slots ? Object.keys(selectedEntry.$slots).length : 0;
|
|
25844
25752
|
const contentHeight = Math.max(1, height - 2);
|
|
25845
25753
|
const contentWidth = Math.max(1, width - 1);
|
|
25846
|
-
return /* @__PURE__ */
|
|
25847
|
-
/* @__PURE__ */
|
|
25754
|
+
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: [
|
|
25755
|
+
/* @__PURE__ */ jsx42(Box32, { width: contentWidth, height: contentHeight, flexShrink: 0, overflowY: "hidden", children: /* @__PURE__ */ jsx42(
|
|
25848
25756
|
ReviewDetailsEditor,
|
|
25849
25757
|
{
|
|
25850
25758
|
selectedKey,
|
|
@@ -25857,7 +25765,7 @@ function ReviewComponentPanel({
|
|
|
25857
25765
|
jsonValue,
|
|
25858
25766
|
sidebarFocused,
|
|
25859
25767
|
fieldEditor,
|
|
25860
|
-
header: /* @__PURE__ */
|
|
25768
|
+
header: /* @__PURE__ */ jsx42(
|
|
25861
25769
|
ReviewComponentTitle,
|
|
25862
25770
|
{
|
|
25863
25771
|
selectedKey,
|
|
@@ -25868,8 +25776,8 @@ function ReviewComponentPanel({
|
|
|
25868
25776
|
)
|
|
25869
25777
|
}
|
|
25870
25778
|
) }),
|
|
25871
|
-
/* @__PURE__ */
|
|
25872
|
-
/* @__PURE__ */
|
|
25779
|
+
/* @__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 : " " }) }),
|
|
25780
|
+
/* @__PURE__ */ jsx42(Box32, { width: contentWidth, height: 1, flexShrink: 0, children: /* @__PURE__ */ jsx42(Text34, { color: PALETTE.muted, wrap: "truncate-end", children: /* @__PURE__ */ jsx42(
|
|
25873
25781
|
ReviewPanelFooter,
|
|
25874
25782
|
{
|
|
25875
25783
|
reviewEditor,
|
|
@@ -25881,8 +25789,8 @@ function ReviewComponentPanel({
|
|
|
25881
25789
|
}
|
|
25882
25790
|
|
|
25883
25791
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ReviewStatus.tsx
|
|
25884
|
-
import { Box as
|
|
25885
|
-
import { jsx as
|
|
25792
|
+
import { Box as Box33, Text as Text35 } from "ink";
|
|
25793
|
+
import { jsx as jsx43, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
25886
25794
|
function countReviewStatuses(entries) {
|
|
25887
25795
|
return entries.reduce(
|
|
25888
25796
|
(counts, entry) => {
|
|
@@ -25895,13 +25803,13 @@ function countReviewStatuses(entries) {
|
|
|
25895
25803
|
);
|
|
25896
25804
|
}
|
|
25897
25805
|
function ReviewLoadingState() {
|
|
25898
|
-
return /* @__PURE__ */
|
|
25806
|
+
return /* @__PURE__ */ jsx43(Box33, { paddingX: 2, paddingY: 1, children: /* @__PURE__ */ jsx43(Text35, { color: PALETTE.muted, children: "Loading generated definitions..." }) });
|
|
25899
25807
|
}
|
|
25900
25808
|
function ReviewLoadError({ message }) {
|
|
25901
|
-
return /* @__PURE__ */
|
|
25902
|
-
/* @__PURE__ */
|
|
25903
|
-
/* @__PURE__ */
|
|
25904
|
-
/* @__PURE__ */
|
|
25809
|
+
return /* @__PURE__ */ jsxs33(Box33, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
25810
|
+
/* @__PURE__ */ jsx43(Text35, { color: PALETTE.error, children: message }),
|
|
25811
|
+
/* @__PURE__ */ jsx43(Text35, { children: " " }),
|
|
25812
|
+
/* @__PURE__ */ jsx43(ControlHints, { hints: [{ keys: "q / Enter / Esc", label: "Quit" }] })
|
|
25905
25813
|
] });
|
|
25906
25814
|
}
|
|
25907
25815
|
|
|
@@ -26101,8 +26009,8 @@ async function runLivePreview(opts) {
|
|
|
26101
26009
|
}
|
|
26102
26010
|
|
|
26103
26011
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/FinalizeDialog.tsx
|
|
26104
|
-
import { Box as
|
|
26105
|
-
import { Fragment as
|
|
26012
|
+
import { Box as Box34, Text as Text36 } from "ink";
|
|
26013
|
+
import { Fragment as Fragment11, jsx as jsx44, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
26106
26014
|
var FINALIZE_REMOVED_WINDOW = 6;
|
|
26107
26015
|
function FinalizeDialog({
|
|
26108
26016
|
accepted,
|
|
@@ -26131,51 +26039,51 @@ function FinalizeDialog({
|
|
|
26131
26039
|
const windowed = removed.slice(offset, offset + FINALIZE_REMOVED_WINDOW);
|
|
26132
26040
|
const hasMoreBelow = offset + FINALIZE_REMOVED_WINDOW < removed.length;
|
|
26133
26041
|
const hasMoreAbove = offset > 0;
|
|
26134
|
-
return /* @__PURE__ */
|
|
26135
|
-
/* @__PURE__ */
|
|
26136
|
-
/* @__PURE__ */
|
|
26137
|
-
/* @__PURE__ */
|
|
26138
|
-
/* @__PURE__ */
|
|
26042
|
+
return /* @__PURE__ */ jsx44(Box34, { width: "100%", paddingX: 2, children: /* @__PURE__ */ jsxs34(Box34, { flexDirection: "column", alignItems: "flex-start", children: [
|
|
26043
|
+
/* @__PURE__ */ jsx44(Text36, { bold: true, children: "Finalize" }),
|
|
26044
|
+
/* @__PURE__ */ jsx44(Text36, { children: " " }),
|
|
26045
|
+
/* @__PURE__ */ jsxs34(Text36, { children: [
|
|
26046
|
+
/* @__PURE__ */ jsxs34(Text36, { color: PALETTE.success, children: [
|
|
26139
26047
|
accepted,
|
|
26140
26048
|
" accepted"
|
|
26141
26049
|
] }),
|
|
26142
|
-
/* @__PURE__ */
|
|
26143
|
-
/* @__PURE__ */
|
|
26050
|
+
/* @__PURE__ */ jsx44(Text36, { children: " \xB7 " }),
|
|
26051
|
+
/* @__PURE__ */ jsxs34(Text36, { color: PALETTE.error, children: [
|
|
26144
26052
|
rejected,
|
|
26145
26053
|
" rejected"
|
|
26146
26054
|
] }),
|
|
26147
|
-
/* @__PURE__ */
|
|
26148
|
-
/* @__PURE__ */
|
|
26055
|
+
/* @__PURE__ */ jsx44(Text36, { children: " \xB7 " }),
|
|
26056
|
+
/* @__PURE__ */ jsxs34(Text36, { color: PALETTE.muted, children: [
|
|
26149
26057
|
needsReview,
|
|
26150
26058
|
" unresolved"
|
|
26151
26059
|
] })
|
|
26152
26060
|
] }),
|
|
26153
|
-
/* @__PURE__ */
|
|
26154
|
-
noneAccepted && /* @__PURE__ */
|
|
26155
|
-
/* @__PURE__ */
|
|
26156
|
-
/* @__PURE__ */
|
|
26157
|
-
/* @__PURE__ */
|
|
26061
|
+
/* @__PURE__ */ jsx44(Text36, { children: " " }),
|
|
26062
|
+
noneAccepted && /* @__PURE__ */ jsxs34(Fragment11, { children: [
|
|
26063
|
+
/* @__PURE__ */ jsx44(Text36, { bold: true, color: PALETTE.warning, children: "\u26A0 No components are accepted \u2014 nothing will be pushed." }),
|
|
26064
|
+
/* @__PURE__ */ jsx44(Text36, { color: PALETTE.warning, children: "Accept at least one component ([a] a row, [A] accept all) to push." }),
|
|
26065
|
+
/* @__PURE__ */ jsx44(Text36, { children: " " })
|
|
26158
26066
|
] }),
|
|
26159
|
-
!allResolved && /* @__PURE__ */
|
|
26160
|
-
/* @__PURE__ */
|
|
26161
|
-
/* @__PURE__ */
|
|
26162
|
-
/* @__PURE__ */
|
|
26067
|
+
!allResolved && /* @__PURE__ */ jsxs34(Fragment11, { children: [
|
|
26068
|
+
/* @__PURE__ */ jsx44(Text36, { color: PALETTE.warning, children: "\u26A0 " + needsReview + " unresolved component" + (needsReview === 1 ? "" : "s") + " will not be pushed." }),
|
|
26069
|
+
/* @__PURE__ */ jsx44(Text36, { color: PALETTE.warning, children: "Only explicitly accepted components ship." }),
|
|
26070
|
+
/* @__PURE__ */ jsx44(Text36, { children: " " })
|
|
26163
26071
|
] }),
|
|
26164
|
-
/* @__PURE__ */
|
|
26165
|
-
previewStatus === "running" ? /* @__PURE__ */
|
|
26166
|
-
/* @__PURE__ */
|
|
26072
|
+
/* @__PURE__ */ jsxs34(Box34, { flexDirection: "column", height: 2, children: [
|
|
26073
|
+
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: " " }),
|
|
26074
|
+
/* @__PURE__ */ jsx44(Text36, { children: " " })
|
|
26167
26075
|
] }),
|
|
26168
|
-
previewStatus === "done" && removed.length > 0 && /* @__PURE__ */
|
|
26169
|
-
/* @__PURE__ */
|
|
26170
|
-
hasMoreAbove && /* @__PURE__ */
|
|
26171
|
-
windowed.map((rc) => /* @__PURE__ */
|
|
26172
|
-
hasMoreBelow && /* @__PURE__ */
|
|
26173
|
-
removed.length > FINALIZE_REMOVED_WINDOW && /* @__PURE__ */
|
|
26174
|
-
/* @__PURE__ */
|
|
26076
|
+
previewStatus === "done" && removed.length > 0 && /* @__PURE__ */ jsxs34(Fragment11, { children: [
|
|
26077
|
+
/* @__PURE__ */ jsx44(Text36, { bold: true, color: PALETTE.error, children: removedComponentsHeader(removed.length, false) }),
|
|
26078
|
+
hasMoreAbove && /* @__PURE__ */ jsx44(Text36, { color: PALETTE.muted, children: "\u2191 more above" }),
|
|
26079
|
+
windowed.map((rc) => /* @__PURE__ */ jsx44(Text36, { color: PALETTE.error, children: removedComponentLine(rc) }, rc.id)),
|
|
26080
|
+
hasMoreBelow && /* @__PURE__ */ jsx44(Text36, { color: PALETTE.muted, children: "\u2193 more below" }),
|
|
26081
|
+
removed.length > FINALIZE_REMOVED_WINDOW && /* @__PURE__ */ jsx44(Text36, { children: "[\u2191\u2193] scroll deletions" }),
|
|
26082
|
+
/* @__PURE__ */ jsx44(Text36, { children: " " })
|
|
26175
26083
|
] }),
|
|
26176
|
-
/* @__PURE__ */
|
|
26177
|
-
/* @__PURE__ */
|
|
26178
|
-
/* @__PURE__ */
|
|
26084
|
+
/* @__PURE__ */ jsx44(Text36, { children: noneAccepted ? "Confirm exit with nothing accepted?" : allResolved ? "Save decisions and exit? All components resolved." : "Save decisions and exit?" }),
|
|
26085
|
+
/* @__PURE__ */ jsx44(Text36, { children: " " }),
|
|
26086
|
+
/* @__PURE__ */ jsx44(
|
|
26179
26087
|
ControlHints,
|
|
26180
26088
|
{
|
|
26181
26089
|
hints: [
|
|
@@ -26599,11 +26507,11 @@ function useReviewSurfaceState(initialFinalizeError = null) {
|
|
|
26599
26507
|
}
|
|
26600
26508
|
|
|
26601
26509
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ReviewDialogs.tsx
|
|
26602
|
-
import { Box as
|
|
26510
|
+
import { Box as Box36, Text as Text38 } from "ink";
|
|
26603
26511
|
|
|
26604
26512
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/QuitDialog.tsx
|
|
26605
|
-
import { Box as
|
|
26606
|
-
import { Fragment as
|
|
26513
|
+
import { Box as Box35, Text as Text37 } from "ink";
|
|
26514
|
+
import { Fragment as Fragment12, jsx as jsx45, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
26607
26515
|
function QuitDialog({ hasUnsavedDrafts, onConfirm, onCancel }) {
|
|
26608
26516
|
useImmediateInput((input, key) => {
|
|
26609
26517
|
if (input === "y" || key.return) {
|
|
@@ -26612,16 +26520,16 @@ function QuitDialog({ hasUnsavedDrafts, onConfirm, onCancel }) {
|
|
|
26612
26520
|
onCancel();
|
|
26613
26521
|
}
|
|
26614
26522
|
});
|
|
26615
|
-
return /* @__PURE__ */
|
|
26616
|
-
/* @__PURE__ */
|
|
26617
|
-
/* @__PURE__ */
|
|
26618
|
-
hasUnsavedDrafts ? /* @__PURE__ */
|
|
26619
|
-
/* @__PURE__ */
|
|
26620
|
-
/* @__PURE__ */
|
|
26621
|
-
/* @__PURE__ */
|
|
26622
|
-
] }) : /* @__PURE__ */
|
|
26623
|
-
/* @__PURE__ */
|
|
26624
|
-
/* @__PURE__ */
|
|
26523
|
+
return /* @__PURE__ */ jsxs35(Box35, { flexDirection: "column", borderStyle: "round", padding: 1, width: 50, children: [
|
|
26524
|
+
/* @__PURE__ */ jsx45(Text37, { bold: true, children: "\u2500".repeat(19) + " Quit " + "\u2500".repeat(19) }),
|
|
26525
|
+
/* @__PURE__ */ jsx45(Text37, { children: " " }),
|
|
26526
|
+
hasUnsavedDrafts ? /* @__PURE__ */ jsxs35(Fragment12, { children: [
|
|
26527
|
+
/* @__PURE__ */ jsx45(Text37, { children: "You have unsaved draft edits." }),
|
|
26528
|
+
/* @__PURE__ */ jsx45(Text37, { children: "Session state is preserved \u2014 you can resume" }),
|
|
26529
|
+
/* @__PURE__ */ jsx45(Text37, { children: "by running the same review command again." })
|
|
26530
|
+
] }) : /* @__PURE__ */ jsx45(Text37, { children: "Session is saved. Quit without finalizing?" }),
|
|
26531
|
+
/* @__PURE__ */ jsx45(Text37, { children: " " }),
|
|
26532
|
+
/* @__PURE__ */ jsx45(
|
|
26625
26533
|
ControlHints,
|
|
26626
26534
|
{
|
|
26627
26535
|
hints: [
|
|
@@ -26634,7 +26542,7 @@ function QuitDialog({ hasUnsavedDrafts, onConfirm, onCancel }) {
|
|
|
26634
26542
|
}
|
|
26635
26543
|
|
|
26636
26544
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ReviewDialogs.tsx
|
|
26637
|
-
import { Fragment as
|
|
26545
|
+
import { Fragment as Fragment13, jsx as jsx46, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
26638
26546
|
function ReviewFinalizeDialogs({
|
|
26639
26547
|
showFinalize,
|
|
26640
26548
|
showQuit,
|
|
@@ -26648,8 +26556,8 @@ function ReviewFinalizeDialogs({
|
|
|
26648
26556
|
onQuitCancel
|
|
26649
26557
|
}) {
|
|
26650
26558
|
const { accepted, rejected, needsReview } = countReviewStatuses(components);
|
|
26651
|
-
return /* @__PURE__ */
|
|
26652
|
-
showFinalize && /* @__PURE__ */
|
|
26559
|
+
return /* @__PURE__ */ jsxs36(Fragment13, { children: [
|
|
26560
|
+
showFinalize && /* @__PURE__ */ jsx46(
|
|
26653
26561
|
FinalizeDialog,
|
|
26654
26562
|
{
|
|
26655
26563
|
accepted,
|
|
@@ -26662,7 +26570,7 @@ function ReviewFinalizeDialogs({
|
|
|
26662
26570
|
onCancel: onFinalizeCancel
|
|
26663
26571
|
}
|
|
26664
26572
|
),
|
|
26665
|
-
showQuit && /* @__PURE__ */
|
|
26573
|
+
showQuit && /* @__PURE__ */ jsx46(QuitDialog, { hasUnsavedDrafts: false, onConfirm: onQuitConfirm, onCancel: onQuitCancel })
|
|
26666
26574
|
] });
|
|
26667
26575
|
}
|
|
26668
26576
|
function ReviewStepDialogs({
|
|
@@ -26672,7 +26580,7 @@ function ReviewStepDialogs({
|
|
|
26672
26580
|
onFinalize,
|
|
26673
26581
|
onQuit
|
|
26674
26582
|
}) {
|
|
26675
|
-
return /* @__PURE__ */
|
|
26583
|
+
return /* @__PURE__ */ jsx46(
|
|
26676
26584
|
ReviewFinalizeDialogs,
|
|
26677
26585
|
{
|
|
26678
26586
|
showFinalize: surfaceState.showFinalize,
|
|
@@ -26690,12 +26598,12 @@ function ReviewStepDialogs({
|
|
|
26690
26598
|
}
|
|
26691
26599
|
function ReviewReloadDialog({ open }) {
|
|
26692
26600
|
if (!open) return null;
|
|
26693
|
-
return /* @__PURE__ */
|
|
26694
|
-
/* @__PURE__ */
|
|
26695
|
-
/* @__PURE__ */
|
|
26696
|
-
/* @__PURE__ */
|
|
26697
|
-
/* @__PURE__ */
|
|
26698
|
-
/* @__PURE__ */
|
|
26601
|
+
return /* @__PURE__ */ jsxs36(Box36, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, children: [
|
|
26602
|
+
/* @__PURE__ */ jsx46(Text38, { bold: true, color: PALETTE.warning, children: "Reload from saved state?" }),
|
|
26603
|
+
/* @__PURE__ */ jsx46(Text38, { children: "Unsaved in-memory changes will be lost." }),
|
|
26604
|
+
/* @__PURE__ */ jsx46(Text38, { children: " " }),
|
|
26605
|
+
/* @__PURE__ */ jsx46(Text38, { children: " [Enter] Confirm" }),
|
|
26606
|
+
/* @__PURE__ */ jsx46(Text38, { children: " [Esc] Cancel" })
|
|
26699
26607
|
] });
|
|
26700
26608
|
}
|
|
26701
26609
|
|
|
@@ -27173,8 +27081,8 @@ function useReviewLog({
|
|
|
27173
27081
|
}
|
|
27174
27082
|
|
|
27175
27083
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/LivePreviewSummary.tsx
|
|
27176
|
-
import { Box as
|
|
27177
|
-
import { jsx as
|
|
27084
|
+
import { Box as Box37, Text as Text39 } from "ink";
|
|
27085
|
+
import { jsx as jsx47, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
27178
27086
|
function LivePreviewSummary({
|
|
27179
27087
|
enabled,
|
|
27180
27088
|
previewAnnotations,
|
|
@@ -27188,24 +27096,24 @@ function LivePreviewSummary({
|
|
|
27188
27096
|
const counts = { new: 0, changed: 0, removed: 0, breaking: 0 };
|
|
27189
27097
|
for (const annotation of previewAnnotations.values()) counts[annotation] += 1;
|
|
27190
27098
|
const hasCounts = counts.new + counts.changed + counts.removed + counts.breaking > 0;
|
|
27191
|
-
if (disabled) return /* @__PURE__ */
|
|
27192
|
-
if (status === "running" && !hasCounts) return /* @__PURE__ */
|
|
27099
|
+
if (disabled) return /* @__PURE__ */ jsx47(Text39, { color: PALETTE.muted, children: "Preview: disabled (creds rejected)" });
|
|
27100
|
+
if (status === "running" && !hasCounts) return /* @__PURE__ */ jsx47(Text39, { color: PALETTE.muted, children: `Preview: ${spinner} running...` });
|
|
27193
27101
|
if (!hasCounts) return null;
|
|
27194
|
-
return /* @__PURE__ */
|
|
27195
|
-
/* @__PURE__ */
|
|
27196
|
-
/* @__PURE__ */
|
|
27197
|
-
/* @__PURE__ */
|
|
27198
|
-
/* @__PURE__ */
|
|
27199
|
-
/* @__PURE__ */
|
|
27200
|
-
/* @__PURE__ */
|
|
27201
|
-
showRemovedListHint && removedCount > 0 && /* @__PURE__ */
|
|
27202
|
-
/* @__PURE__ */
|
|
27203
|
-
/* @__PURE__ */
|
|
27102
|
+
return /* @__PURE__ */ jsxs37(Box37, { children: [
|
|
27103
|
+
/* @__PURE__ */ jsx47(Text39, { children: "Preview: " }),
|
|
27104
|
+
/* @__PURE__ */ jsx47(Text39, { color: PALETTE.success, children: `${counts.new} new` }),
|
|
27105
|
+
/* @__PURE__ */ jsx47(Text39, { children: " \xB7 " }),
|
|
27106
|
+
/* @__PURE__ */ jsx47(Text39, { color: PALETTE.warning, children: `${counts.changed} changed` }),
|
|
27107
|
+
/* @__PURE__ */ jsx47(Text39, { children: " \xB7 " }),
|
|
27108
|
+
/* @__PURE__ */ jsx47(Text39, { color: PALETTE.muted, children: `${counts.removed} removed` }),
|
|
27109
|
+
showRemovedListHint && removedCount > 0 && /* @__PURE__ */ jsx47(Text39, { children: " ([d] removed list)" }),
|
|
27110
|
+
/* @__PURE__ */ jsx47(Text39, { children: " \xB7 " }),
|
|
27111
|
+
/* @__PURE__ */ jsx47(Text39, { color: PALETTE.error, bold: true, children: `${counts.breaking} breaking` })
|
|
27204
27112
|
] });
|
|
27205
27113
|
}
|
|
27206
27114
|
|
|
27207
27115
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/generate-review-step.tsx
|
|
27208
|
-
import { Fragment as
|
|
27116
|
+
import { Fragment as Fragment14, jsx as jsx48, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
27209
27117
|
function sortComponentsForSidebar(components, cycleParticipants) {
|
|
27210
27118
|
const isEmpty2 = (entry) => Object.keys(entry.$properties ?? {}).length === 0 && Object.keys(entry.$slots ?? {}).length === 0;
|
|
27211
27119
|
const tier = (c2) => {
|
|
@@ -27246,10 +27154,10 @@ function CyclePathLine({
|
|
|
27246
27154
|
highlightComponents = false,
|
|
27247
27155
|
highlightLine = false
|
|
27248
27156
|
}) {
|
|
27249
|
-
return /* @__PURE__ */
|
|
27157
|
+
return /* @__PURE__ */ jsxs38(Text40, { color: highlightLine ? PALETTE.warning : void 0, children: [
|
|
27250
27158
|
prefix,
|
|
27251
27159
|
segments.map(
|
|
27252
|
-
(segment, index) => segment.kind === "slot" ? /* @__PURE__ */
|
|
27160
|
+
(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)
|
|
27253
27161
|
)
|
|
27254
27162
|
] });
|
|
27255
27163
|
}
|
|
@@ -27261,31 +27169,31 @@ function CycleDetailPanel({
|
|
|
27261
27169
|
height
|
|
27262
27170
|
}) {
|
|
27263
27171
|
const lines = [
|
|
27264
|
-
/* @__PURE__ */
|
|
27265
|
-
/* @__PURE__ */
|
|
27266
|
-
/* @__PURE__ */
|
|
27267
|
-
/* @__PURE__ */
|
|
27172
|
+
/* @__PURE__ */ jsx48(Text40, { bold: true, color: PALETTE.warning, children: `SLOT DEPENDENCY CYCLES (${cycles.length})` }, "cyc-title"),
|
|
27173
|
+
/* @__PURE__ */ jsx48(Text40, { color: PALETTE.muted, children: "push will fail until these are resolved" }, "cyc-sub"),
|
|
27174
|
+
/* @__PURE__ */ jsx48(Text40, { color: PALETTE.muted, children: "Reject a cycle member or remove a slot edge to break the cycle." }, "cyc-guidance"),
|
|
27175
|
+
/* @__PURE__ */ jsx48(Text40, { children: " " }, "cyc-space")
|
|
27268
27176
|
];
|
|
27269
27177
|
cycles.forEach((cycle, index) => {
|
|
27270
27178
|
const nodeCount = new Set(cycle.path).size;
|
|
27271
27179
|
const isCursor = index === cursor;
|
|
27272
27180
|
lines.push(
|
|
27273
|
-
/* @__PURE__ */
|
|
27274
|
-
/* @__PURE__ */
|
|
27181
|
+
/* @__PURE__ */ jsx48(Text40, { bold: true, inverse: isCursor, children: `${isCursor ? figures8.pointer : " "} Cycle ${index + 1} (${nodeCount} component${nodeCount === 1 ? "" : "s"}):` }, `cyc-h-${index}`),
|
|
27182
|
+
/* @__PURE__ */ jsx48(CyclePathLine, { segments: formatCyclePathSegments2(cycle, 16), prefix: " " }, `cyc-p-${index}`)
|
|
27275
27183
|
);
|
|
27276
27184
|
if (cycle.suggestedBreak) {
|
|
27277
27185
|
lines.push(
|
|
27278
|
-
/* @__PURE__ */
|
|
27186
|
+
/* @__PURE__ */ jsx48(Text40, { color: PALETTE.muted, children: ` Suggested fix: remove [${cycle.suggestedBreak.slotName}] from ${cycle.suggestedBreak.fromComponent}` }, `cyc-fix-${index}`)
|
|
27279
27187
|
);
|
|
27280
27188
|
}
|
|
27281
|
-
lines.push(/* @__PURE__ */
|
|
27189
|
+
lines.push(/* @__PURE__ */ jsx48(Text40, { children: " " }, `cyc-s-${index}`));
|
|
27282
27190
|
});
|
|
27283
27191
|
const footer = "[\u2191\u2193] move [Enter] fix cycle [c/q/Esc] close";
|
|
27284
27192
|
const viewportHeight = Math.max(1, height - 3);
|
|
27285
27193
|
const visible = lines.slice(scrollOffset, scrollOffset + viewportHeight - 1);
|
|
27286
|
-
return /* @__PURE__ */
|
|
27194
|
+
return /* @__PURE__ */ jsxs38(FixedPanel, { width, height, borderStyle: "round", borderColor: PALETTE.warning, paddingLeft: 1, children: [
|
|
27287
27195
|
visible,
|
|
27288
|
-
/* @__PURE__ */
|
|
27196
|
+
/* @__PURE__ */ jsx48(Text40, { color: PALETTE.muted, children: footer })
|
|
27289
27197
|
] });
|
|
27290
27198
|
}
|
|
27291
27199
|
function BreakCyclePanel({
|
|
@@ -27296,14 +27204,14 @@ function BreakCyclePanel({
|
|
|
27296
27204
|
width,
|
|
27297
27205
|
height
|
|
27298
27206
|
}) {
|
|
27299
|
-
return /* @__PURE__ */
|
|
27300
|
-
/* @__PURE__ */
|
|
27301
|
-
cycle && /* @__PURE__ */
|
|
27302
|
-
/* @__PURE__ */
|
|
27303
|
-
/* @__PURE__ */
|
|
27304
|
-
edges.length > 0 && /* @__PURE__ */
|
|
27305
|
-
edges.map((edge, index) => /* @__PURE__ */
|
|
27306
|
-
confirming ? /* @__PURE__ */
|
|
27207
|
+
return /* @__PURE__ */ jsxs38(FixedPanel, { width, height, borderStyle: "round", borderColor: PALETTE.warning, paddingLeft: 1, children: [
|
|
27208
|
+
/* @__PURE__ */ jsx48(Text40, { bold: true, color: PALETTE.warning, children: "BREAK CYCLE \u2014 remove a slot edge" }),
|
|
27209
|
+
cycle && /* @__PURE__ */ jsx48(CyclePathLine, { segments: formatCyclePathSegments2(cycle), prefix: " ", highlightComponents: true }),
|
|
27210
|
+
/* @__PURE__ */ jsx48(Text40, { color: PALETTE.muted, children: cycle ? "Deleting an edge removes it from $allowedComponents (undo with Ctrl+Z)." : "No cycle highlighted." }),
|
|
27211
|
+
/* @__PURE__ */ jsx48(Text40, { children: " " }),
|
|
27212
|
+
edges.length > 0 && /* @__PURE__ */ jsx48(Text40, { color: PALETTE.muted, children: "remove slot edge:" }),
|
|
27213
|
+
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}`)),
|
|
27214
|
+
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" })
|
|
27307
27215
|
] });
|
|
27308
27216
|
}
|
|
27309
27217
|
var HELP_SECTIONS2 = [
|
|
@@ -27409,9 +27317,9 @@ function deriveBreakingChanges(response) {
|
|
|
27409
27317
|
}
|
|
27410
27318
|
function GenerateReviewStep(props) {
|
|
27411
27319
|
if (!props.extractSessionId) {
|
|
27412
|
-
return /* @__PURE__ */
|
|
27320
|
+
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." }) });
|
|
27413
27321
|
}
|
|
27414
|
-
return /* @__PURE__ */
|
|
27322
|
+
return /* @__PURE__ */ jsx48(GenerateReviewStepView, { ...props, extractSessionId: props.extractSessionId });
|
|
27415
27323
|
}
|
|
27416
27324
|
function GenerateReviewStepView({
|
|
27417
27325
|
extractSessionId,
|
|
@@ -28273,13 +28181,13 @@ function GenerateReviewStepView({
|
|
|
28273
28181
|
}
|
|
28274
28182
|
});
|
|
28275
28183
|
if (loading) {
|
|
28276
|
-
return /* @__PURE__ */
|
|
28184
|
+
return /* @__PURE__ */ jsx48(ReviewLoadingState, {});
|
|
28277
28185
|
}
|
|
28278
28186
|
if (loadError) {
|
|
28279
|
-
return /* @__PURE__ */
|
|
28187
|
+
return /* @__PURE__ */ jsx48(ReviewLoadError, { message: loadError });
|
|
28280
28188
|
}
|
|
28281
28189
|
if (showHelp) {
|
|
28282
|
-
return /* @__PURE__ */
|
|
28190
|
+
return /* @__PURE__ */ jsx48(HelpOverlay, { sections: HELP_SECTIONS2, handleInput: false, onClose: () => setShowHelp(false) });
|
|
28283
28191
|
}
|
|
28284
28192
|
const { selected, selectedJson, visibleJsonPanelValue } = getReviewSelectionState(
|
|
28285
28193
|
components,
|
|
@@ -28319,9 +28227,9 @@ function GenerateReviewStepView({
|
|
|
28319
28227
|
for (const c2 of closures.values()) if (c2.nodes.length > 1) return true;
|
|
28320
28228
|
return false;
|
|
28321
28229
|
})();
|
|
28322
|
-
return /* @__PURE__ */
|
|
28323
|
-
/* @__PURE__ */
|
|
28324
|
-
/* @__PURE__ */
|
|
28230
|
+
return /* @__PURE__ */ jsxs38(Box38, { flexDirection: "column", children: [
|
|
28231
|
+
/* @__PURE__ */ jsx48(StepHeader, { step: "review" }),
|
|
28232
|
+
/* @__PURE__ */ jsx48(
|
|
28325
28233
|
ReviewStepDialogs,
|
|
28326
28234
|
{
|
|
28327
28235
|
surfaceState: reviewSurface,
|
|
@@ -28331,16 +28239,16 @@ function GenerateReviewStepView({
|
|
|
28331
28239
|
onQuit
|
|
28332
28240
|
}
|
|
28333
28241
|
),
|
|
28334
|
-
/* @__PURE__ */
|
|
28335
|
-
removedComponents.length > 0 && !dialogOpen && /* @__PURE__ */
|
|
28336
|
-
/* @__PURE__ */
|
|
28337
|
-
!removedBannerCollapsed && /* @__PURE__ */
|
|
28338
|
-
/* @__PURE__ */
|
|
28339
|
-
removedComponents.map((rc) => /* @__PURE__ */
|
|
28242
|
+
/* @__PURE__ */ jsx48(ReviewReloadDialog, { open: showReloadDialog && !dialogOpen }),
|
|
28243
|
+
removedComponents.length > 0 && !dialogOpen && /* @__PURE__ */ jsxs38(Box38, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.error, paddingX: 1, children: [
|
|
28244
|
+
/* @__PURE__ */ jsx48(Text40, { bold: true, color: PALETTE.error, children: removedComponentsHeader(removedComponents.length, true) }),
|
|
28245
|
+
!removedBannerCollapsed && /* @__PURE__ */ jsxs38(Fragment14, { children: [
|
|
28246
|
+
/* @__PURE__ */ jsx48(Text40, { children: " " }),
|
|
28247
|
+
removedComponents.map((rc) => /* @__PURE__ */ jsx48(Text40, { children: removedComponentLine(rc) }, rc.id))
|
|
28340
28248
|
] })
|
|
28341
28249
|
] }),
|
|
28342
|
-
breakingChanges.length > 0 && !dialogOpen && /* @__PURE__ */
|
|
28343
|
-
|
|
28250
|
+
breakingChanges.length > 0 && !dialogOpen && /* @__PURE__ */ jsx48(Box38, { paddingX: 1, children: /* @__PURE__ */ jsx48(
|
|
28251
|
+
Text40,
|
|
28344
28252
|
{
|
|
28345
28253
|
color: PALETTE.warning,
|
|
28346
28254
|
children: `[b] ${breakingChanges.length} breaking change${breakingChanges.length === 1 ? "" : "s"}`
|
|
@@ -28350,14 +28258,14 @@ function GenerateReviewStepView({
|
|
|
28350
28258
|
const row = breakingRows[breakingCursor];
|
|
28351
28259
|
const comp = row ? breakingChanges.find((b) => b.componentName === row.componentName) : void 0;
|
|
28352
28260
|
if (!comp) return null;
|
|
28353
|
-
return /* @__PURE__ */
|
|
28354
|
-
/* @__PURE__ */
|
|
28355
|
-
comp.impact && /* @__PURE__ */
|
|
28356
|
-
comp.changes.length === 0 ? /* @__PURE__ */
|
|
28357
|
-
/* @__PURE__ */
|
|
28261
|
+
return /* @__PURE__ */ jsxs38(Box38, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, children: [
|
|
28262
|
+
/* @__PURE__ */ jsx48(Text40, { bold: true, color: PALETTE.warning, children: `Breaking changes \u2014 ${comp.componentName}` }),
|
|
28263
|
+
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"}` }),
|
|
28264
|
+
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}`)),
|
|
28265
|
+
/* @__PURE__ */ jsx48(Text40, { children: "[D/Esc] close detail" })
|
|
28358
28266
|
] });
|
|
28359
28267
|
})(),
|
|
28360
|
-
!dialogOpen && /* @__PURE__ */
|
|
28268
|
+
!dialogOpen && /* @__PURE__ */ jsx48(
|
|
28361
28269
|
LivePreviewSummary,
|
|
28362
28270
|
{
|
|
28363
28271
|
enabled: livePreview,
|
|
@@ -28376,16 +28284,16 @@ function GenerateReviewStepView({
|
|
|
28376
28284
|
const participantSet = cycleView.structural;
|
|
28377
28285
|
const members = stillRejected.filter((n) => participantSet.has(n)).sort();
|
|
28378
28286
|
const ancestors = stillRejected.filter((n) => !participantSet.has(n)).sort();
|
|
28379
|
-
return /* @__PURE__ */
|
|
28380
|
-
/* @__PURE__ */
|
|
28381
|
-
members.length > 0 && /* @__PURE__ */
|
|
28382
|
-
ancestors.length > 0 && /* @__PURE__ */
|
|
28383
|
-
/* @__PURE__ */
|
|
28287
|
+
return /* @__PURE__ */ jsxs38(Box38, { flexDirection: "column", borderStyle: "single", borderColor: PALETTE.error, paddingX: 1, children: [
|
|
28288
|
+
/* @__PURE__ */ jsx48(Text40, { color: PALETTE.error, bold: true, children: `Cyclic component graph \u2014 auto-rejected ${stillRejected.length} component${stillRejected.length === 1 ? "" : "s"}:` }),
|
|
28289
|
+
members.length > 0 && /* @__PURE__ */ jsx48(Text40, { color: PALETTE.error, children: ` Cycle members: ${members.join(", ")}` }),
|
|
28290
|
+
ancestors.length > 0 && /* @__PURE__ */ jsx48(Text40, { color: PALETTE.error, children: ` Ancestors: ${ancestors.join(", ")}` }),
|
|
28291
|
+
/* @__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" })
|
|
28384
28292
|
] });
|
|
28385
28293
|
})(),
|
|
28386
|
-
/* @__PURE__ */
|
|
28387
|
-
/* @__PURE__ */
|
|
28388
|
-
!dialogOpen && breakPanel.isOpen && /* @__PURE__ */
|
|
28294
|
+
/* @__PURE__ */ jsx48(ReviewEmptyComponentsWarning, { count: emptyCount, hidden: dialogOpen }),
|
|
28295
|
+
/* @__PURE__ */ jsx48(ReviewFinalizeError, { message: finalizeError, hidden: dialogOpen }),
|
|
28296
|
+
!dialogOpen && breakPanel.isOpen && /* @__PURE__ */ jsx48(
|
|
28389
28297
|
BreakCyclePanel,
|
|
28390
28298
|
{
|
|
28391
28299
|
cycle: cycleRows[cyclesCursor],
|
|
@@ -28396,7 +28304,7 @@ function GenerateReviewStepView({
|
|
|
28396
28304
|
height: panelHeight
|
|
28397
28305
|
}
|
|
28398
28306
|
),
|
|
28399
|
-
!dialogOpen && cyclePanel.isOpen && !breakPanel.isOpen && /* @__PURE__ */
|
|
28307
|
+
!dialogOpen && cyclePanel.isOpen && !breakPanel.isOpen && /* @__PURE__ */ jsx48(
|
|
28400
28308
|
CycleDetailPanel,
|
|
28401
28309
|
{
|
|
28402
28310
|
cycles: cycleRows,
|
|
@@ -28406,8 +28314,8 @@ function GenerateReviewStepView({
|
|
|
28406
28314
|
height: panelHeight
|
|
28407
28315
|
}
|
|
28408
28316
|
),
|
|
28409
|
-
!dialogOpen && !cyclePanel.isOpen && !breakPanel.isOpen && /* @__PURE__ */
|
|
28410
|
-
breakingPanel.isOpen ? /* @__PURE__ */
|
|
28317
|
+
!dialogOpen && !cyclePanel.isOpen && !breakPanel.isOpen && /* @__PURE__ */ jsxs38(Box38, { children: [
|
|
28318
|
+
breakingPanel.isOpen ? /* @__PURE__ */ jsx48(
|
|
28411
28319
|
GotoBanner,
|
|
28412
28320
|
{
|
|
28413
28321
|
title: `Breaking changes \u2014 ${breakingRows[breakingCursor]?.componentName ?? "unknown component"}`,
|
|
@@ -28420,7 +28328,7 @@ function GenerateReviewStepView({
|
|
|
28420
28328
|
width: sidebarWidth,
|
|
28421
28329
|
footerHint: "[\u2191/\u2193] move \xB7 [Enter] jump \xB7 [D] detail \xB7 [Esc] close"
|
|
28422
28330
|
}
|
|
28423
|
-
) : /* @__PURE__ */
|
|
28331
|
+
) : /* @__PURE__ */ jsx48(
|
|
28424
28332
|
GroupedSidebar,
|
|
28425
28333
|
{
|
|
28426
28334
|
items: groupedItems,
|
|
@@ -28461,7 +28369,7 @@ function GenerateReviewStepView({
|
|
|
28461
28369
|
graph: sidebarGraph
|
|
28462
28370
|
}
|
|
28463
28371
|
),
|
|
28464
|
-
selected ? /* @__PURE__ */
|
|
28372
|
+
selected ? /* @__PURE__ */ jsx48(
|
|
28465
28373
|
ReviewComponentPanel,
|
|
28466
28374
|
{
|
|
28467
28375
|
selectedKey: selected.key,
|
|
@@ -28491,12 +28399,12 @@ function GenerateReviewStepView({
|
|
|
28491
28399
|
),
|
|
28492
28400
|
saveError: reviewEditor.saveError
|
|
28493
28401
|
}
|
|
28494
|
-
) : /* @__PURE__ */
|
|
28402
|
+
) : /* @__PURE__ */ jsx48(ReviewNoSelection, {})
|
|
28495
28403
|
] }),
|
|
28496
|
-
!dialogOpen && cycleRows.length > 0 && !cyclePanel.isOpen && !breakPanel.isOpen && /* @__PURE__ */
|
|
28497
|
-
/* @__PURE__ */
|
|
28404
|
+
!dialogOpen && cycleRows.length > 0 && !cyclePanel.isOpen && !breakPanel.isOpen && /* @__PURE__ */ jsxs38(Box38, { flexDirection: "column", children: [
|
|
28405
|
+
/* @__PURE__ */ jsx48(Text40, { color: PALETTE.warning, children: `\u26A0 ${cycleRows.length} slot dependency cycle${cycleRows.length === 1 ? "" : "s"} detected \u2014 push will fail` }),
|
|
28498
28406
|
cycleRows.slice(0, 3).map((cycle, idx) => {
|
|
28499
|
-
return /* @__PURE__ */
|
|
28407
|
+
return /* @__PURE__ */ jsx48(
|
|
28500
28408
|
CyclePathLine,
|
|
28501
28409
|
{
|
|
28502
28410
|
segments: formatCyclePathSegments2(cycle),
|
|
@@ -28507,10 +28415,10 @@ function GenerateReviewStepView({
|
|
|
28507
28415
|
`cyc-banner-${idx}`
|
|
28508
28416
|
);
|
|
28509
28417
|
}),
|
|
28510
|
-
cycleRows.length > 3 && /* @__PURE__ */
|
|
28511
|
-
/* @__PURE__ */
|
|
28418
|
+
cycleRows.length > 3 && /* @__PURE__ */ jsx48(Text40, { color: PALETTE.warning, children: ` \u2026${cycleRows.length - 3} more` }),
|
|
28419
|
+
/* @__PURE__ */ jsx48(Text40, { children: " press [c] for detail" })
|
|
28512
28420
|
] }),
|
|
28513
|
-
/* @__PURE__ */
|
|
28421
|
+
/* @__PURE__ */ jsx48(
|
|
28514
28422
|
SearchMatchSummary,
|
|
28515
28423
|
{
|
|
28516
28424
|
open: searchOpen,
|
|
@@ -28521,27 +28429,27 @@ function GenerateReviewStepView({
|
|
|
28521
28429
|
hidden: dialogOpen
|
|
28522
28430
|
}
|
|
28523
28431
|
),
|
|
28524
|
-
!dialogOpen && sidebarFocused && reviewEditor.panelOpen !== "token-review" && /* @__PURE__ */
|
|
28432
|
+
!dialogOpen && sidebarFocused && reviewEditor.panelOpen !== "token-review" && /* @__PURE__ */ jsx48(CompactControlBar, { hasGroupRoots, searchActive: searchOpen || searchQuery.length > 0 })
|
|
28525
28433
|
] });
|
|
28526
28434
|
}
|
|
28527
28435
|
|
|
28528
28436
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/components/CustomPromptBanner.tsx
|
|
28529
|
-
import { Box as
|
|
28530
|
-
import { jsx as
|
|
28437
|
+
import { Box as Box39, Text as Text41 } from "ink";
|
|
28438
|
+
import { jsx as jsx49, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
28531
28439
|
function CustomPromptBanner({ generatePromptPath }) {
|
|
28532
28440
|
if (!generatePromptPath) return null;
|
|
28533
|
-
return /* @__PURE__ */
|
|
28534
|
-
/* @__PURE__ */
|
|
28535
|
-
generatePromptPath ? /* @__PURE__ */
|
|
28441
|
+
return /* @__PURE__ */ jsxs39(Box39, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, children: [
|
|
28442
|
+
/* @__PURE__ */ jsx49(Text41, { color: PALETTE.warning, bold: true, children: "WARNING: Custom prompt active" }),
|
|
28443
|
+
generatePromptPath ? /* @__PURE__ */ jsxs39(Text41, { color: PALETTE.warning, children: [
|
|
28536
28444
|
"components: ",
|
|
28537
28445
|
generatePromptPath
|
|
28538
28446
|
] }) : null,
|
|
28539
|
-
/* @__PURE__ */
|
|
28447
|
+
/* @__PURE__ */ jsx49(Text41, { color: PALETTE.warning, children: "Bundled invariants (utility-wrapper rejection, description content rules) do NOT apply." })
|
|
28540
28448
|
] });
|
|
28541
28449
|
}
|
|
28542
28450
|
|
|
28543
28451
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/screens/DoneStep.tsx
|
|
28544
|
-
import { Box as
|
|
28452
|
+
import { Box as Box41, Text as Text43 } from "ink";
|
|
28545
28453
|
|
|
28546
28454
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/support/contentful-urls.ts
|
|
28547
28455
|
function normalizeHost(host) {
|
|
@@ -28557,32 +28465,32 @@ function buildPostPushUrl2({ host, spaceId, environmentId, view = "components" }
|
|
|
28557
28465
|
}
|
|
28558
28466
|
|
|
28559
28467
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/components/SpaceEnvironment.tsx
|
|
28560
|
-
import { Box as
|
|
28561
|
-
import { jsx as
|
|
28468
|
+
import { Box as Box40, Text as Text42 } from "ink";
|
|
28469
|
+
import { jsx as jsx50, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
28562
28470
|
function SpaceEnvironment({ spaceId, environmentId }) {
|
|
28563
|
-
return /* @__PURE__ */
|
|
28564
|
-
/* @__PURE__ */
|
|
28565
|
-
/* @__PURE__ */
|
|
28566
|
-
/* @__PURE__ */
|
|
28567
|
-
/* @__PURE__ */
|
|
28568
|
-
/* @__PURE__ */
|
|
28471
|
+
return /* @__PURE__ */ jsxs40(Box40, { gap: 1, marginTop: 1, children: [
|
|
28472
|
+
/* @__PURE__ */ jsx50(Text42, { color: PALETTE.muted, children: "Space:" }),
|
|
28473
|
+
/* @__PURE__ */ jsx50(Text42, { children: spaceId }),
|
|
28474
|
+
/* @__PURE__ */ jsx50(Text42, { color: PALETTE.muted, children: "/" }),
|
|
28475
|
+
/* @__PURE__ */ jsx50(Text42, { color: PALETTE.muted, children: "Environment:" }),
|
|
28476
|
+
/* @__PURE__ */ jsx50(Text42, { children: environmentId })
|
|
28569
28477
|
] });
|
|
28570
28478
|
}
|
|
28571
28479
|
|
|
28572
28480
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/screens/DoneStep.tsx
|
|
28573
|
-
import { Fragment as
|
|
28481
|
+
import { Fragment as Fragment15, jsx as jsx51, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
28574
28482
|
var ACTIONS = ["created", "updated", "removed"];
|
|
28575
28483
|
function EntityRows({ entity, label }) {
|
|
28576
28484
|
const plural3 = (n) => `${n} ${label}${n !== 1 ? "s" : ""}`;
|
|
28577
|
-
return /* @__PURE__ */
|
|
28578
|
-
ACTIONS.filter((action) => entity[action] > 0).map((action) => /* @__PURE__ */
|
|
28579
|
-
/* @__PURE__ */
|
|
28485
|
+
return /* @__PURE__ */ jsxs41(Fragment15, { children: [
|
|
28486
|
+
ACTIONS.filter((action) => entity[action] > 0).map((action) => /* @__PURE__ */ jsxs41(Text43, { children: [
|
|
28487
|
+
/* @__PURE__ */ jsx51(Text43, { color: PALETTE.success, children: "\u2713" }),
|
|
28580
28488
|
" ",
|
|
28581
28489
|
plural3(entity[action]),
|
|
28582
28490
|
" ",
|
|
28583
28491
|
action
|
|
28584
28492
|
] }, action)),
|
|
28585
|
-
entity.failed > 0 && /* @__PURE__ */
|
|
28493
|
+
entity.failed > 0 && /* @__PURE__ */ jsxs41(Text43, { color: PALETTE.error, children: [
|
|
28586
28494
|
"\u2717 ",
|
|
28587
28495
|
plural3(entity.failed),
|
|
28588
28496
|
" failed \u2014 check logs above"
|
|
@@ -28590,9 +28498,9 @@ function EntityRows({ entity, label }) {
|
|
|
28590
28498
|
] });
|
|
28591
28499
|
}
|
|
28592
28500
|
function LinkRow({ title, url }) {
|
|
28593
|
-
return /* @__PURE__ */
|
|
28594
|
-
/* @__PURE__ */
|
|
28595
|
-
/* @__PURE__ */
|
|
28501
|
+
return /* @__PURE__ */ jsxs41(Box41, { flexDirection: "column", children: [
|
|
28502
|
+
/* @__PURE__ */ jsx51(Text43, { color: PALETTE.muted, children: title }),
|
|
28503
|
+
/* @__PURE__ */ jsx51(Text43, { color: PALETTE.accent, children: url })
|
|
28596
28504
|
] });
|
|
28597
28505
|
}
|
|
28598
28506
|
function DoneStep({
|
|
@@ -28616,29 +28524,29 @@ function DoneStep({
|
|
|
28616
28524
|
const totalPushed = componentTypes.created + componentTypes.updated + componentTypes.removed + designTokens.created + designTokens.updated + designTokens.removed;
|
|
28617
28525
|
const success = totalFailed === 0;
|
|
28618
28526
|
const urlArgs = { host: host ?? "api.contentful.com", spaceId, environmentId };
|
|
28619
|
-
return /* @__PURE__ */
|
|
28620
|
-
/* @__PURE__ */
|
|
28621
|
-
/* @__PURE__ */
|
|
28622
|
-
success ? /* @__PURE__ */
|
|
28623
|
-
totalPushed === 0 && totalFailed === 0 && !summary ? /* @__PURE__ */
|
|
28624
|
-
/* @__PURE__ */
|
|
28625
|
-
/* @__PURE__ */
|
|
28626
|
-
summary && /* @__PURE__ */
|
|
28527
|
+
return /* @__PURE__ */ jsxs41(Box41, { flexDirection: "column", children: [
|
|
28528
|
+
/* @__PURE__ */ jsx51(StepHeader, { step: "done" }),
|
|
28529
|
+
/* @__PURE__ */ jsxs41(Box41, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 1, children: [
|
|
28530
|
+
success ? /* @__PURE__ */ jsx51(Text43, { bold: true, color: PALETTE.success, children: "Done!" }) : /* @__PURE__ */ jsx51(Text43, { bold: true, color: PALETTE.warning, children: "\u26A0 Finished with errors" }),
|
|
28531
|
+
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: [
|
|
28532
|
+
/* @__PURE__ */ jsx51(EntityRows, { entity: componentTypes, label: "Component" }),
|
|
28533
|
+
/* @__PURE__ */ jsx51(EntityRows, { entity: designTokens, label: "Design Token" }),
|
|
28534
|
+
summary && /* @__PURE__ */ jsx51(Box41, { marginTop: 1, children: /* @__PURE__ */ jsxs41(Text43, { color: PALETTE.muted, children: [
|
|
28627
28535
|
"Push result: ",
|
|
28628
28536
|
summary.succeeded,
|
|
28629
28537
|
"/",
|
|
28630
28538
|
summary.total,
|
|
28631
28539
|
" succeeded",
|
|
28632
|
-
summary.failed > 0 && /* @__PURE__ */
|
|
28540
|
+
summary.failed > 0 && /* @__PURE__ */ jsxs41(Text43, { color: PALETTE.error, children: [
|
|
28633
28541
|
", ",
|
|
28634
28542
|
summary.failed,
|
|
28635
28543
|
" failed"
|
|
28636
28544
|
] })
|
|
28637
28545
|
] }) })
|
|
28638
28546
|
] }),
|
|
28639
|
-
failures.length > 0 && /* @__PURE__ */
|
|
28640
|
-
/* @__PURE__ */
|
|
28641
|
-
failures.map((failure) => /* @__PURE__ */
|
|
28547
|
+
failures.length > 0 && /* @__PURE__ */ jsxs41(Box41, { flexDirection: "column", children: [
|
|
28548
|
+
/* @__PURE__ */ jsx51(Text43, { bold: true, color: PALETTE.error, children: "Failure details" }),
|
|
28549
|
+
failures.map((failure) => /* @__PURE__ */ jsxs41(Text43, { color: PALETTE.error, children: [
|
|
28642
28550
|
failure.entityType,
|
|
28643
28551
|
" ",
|
|
28644
28552
|
failure.entityId,
|
|
@@ -28646,11 +28554,11 @@ function DoneStep({
|
|
|
28646
28554
|
failure.message
|
|
28647
28555
|
] }, `${failure.entityType}:${failure.entityId}`))
|
|
28648
28556
|
] }),
|
|
28649
|
-
/* @__PURE__ */
|
|
28650
|
-
success && totalPushed > 0 && /* @__PURE__ */
|
|
28651
|
-
/* @__PURE__ */
|
|
28652
|
-
produced.components && /* @__PURE__ */
|
|
28653
|
-
produced.tokens && /* @__PURE__ */
|
|
28557
|
+
/* @__PURE__ */ jsx51(SpaceEnvironment, { spaceId, environmentId }),
|
|
28558
|
+
success && totalPushed > 0 && /* @__PURE__ */ jsxs41(Box41, { flexDirection: "column", gap: 1, children: [
|
|
28559
|
+
/* @__PURE__ */ jsx51(Text43, { color: PALETTE.success, children: "Your design system is now in Contentful Experiences." }),
|
|
28560
|
+
produced.components && /* @__PURE__ */ jsx51(LinkRow, { title: "View your components here:", url: buildPostPushUrl2(urlArgs) }),
|
|
28561
|
+
produced.tokens && /* @__PURE__ */ jsx51(
|
|
28654
28562
|
LinkRow,
|
|
28655
28563
|
{
|
|
28656
28564
|
title: "View your design tokens here:",
|
|
@@ -28658,14 +28566,14 @@ function DoneStep({
|
|
|
28658
28566
|
}
|
|
28659
28567
|
)
|
|
28660
28568
|
] }),
|
|
28661
|
-
/* @__PURE__ */
|
|
28569
|
+
/* @__PURE__ */ jsx51(ControlHints, { hints: [{ keys: "Enter / q", label: "Exit" }] })
|
|
28662
28570
|
] })
|
|
28663
28571
|
] });
|
|
28664
28572
|
}
|
|
28665
28573
|
|
|
28666
28574
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/screens/PathPrompt.tsx
|
|
28667
28575
|
import { useState as useState28 } from "react";
|
|
28668
|
-
import { Box as
|
|
28576
|
+
import { Box as Box42, Text as Text44 } from "ink";
|
|
28669
28577
|
import { readdirSync as readdirSync4 } from "node:fs";
|
|
28670
28578
|
import { dirname as dirname17, basename as basename6, join as join22 } from "node:path";
|
|
28671
28579
|
|
|
@@ -28699,7 +28607,7 @@ function useBlinkingCursor() {
|
|
|
28699
28607
|
}
|
|
28700
28608
|
|
|
28701
28609
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/screens/PathPrompt.tsx
|
|
28702
|
-
import { jsx as
|
|
28610
|
+
import { jsx as jsx52, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
28703
28611
|
function autocomplete(partial) {
|
|
28704
28612
|
if (!partial) return null;
|
|
28705
28613
|
const normalized = normalizePath(partial);
|
|
@@ -28757,20 +28665,20 @@ function PathPrompt({
|
|
|
28757
28665
|
const shown = input || defaultPath;
|
|
28758
28666
|
const isPlaceholder = input === "";
|
|
28759
28667
|
const cursor = cursorVisible ? "\u2588" : " ";
|
|
28760
|
-
return /* @__PURE__ */
|
|
28761
|
-
/* @__PURE__ */
|
|
28762
|
-
/* @__PURE__ */
|
|
28763
|
-
summary && /* @__PURE__ */
|
|
28764
|
-
/* @__PURE__ */
|
|
28765
|
-
/* @__PURE__ */
|
|
28766
|
-
/* @__PURE__ */
|
|
28668
|
+
return /* @__PURE__ */ jsxs42(Box42, { flexDirection: "column", children: [
|
|
28669
|
+
/* @__PURE__ */ jsx52(StepHeader, { step: "push" }),
|
|
28670
|
+
/* @__PURE__ */ jsxs42(Box42, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 1, children: [
|
|
28671
|
+
summary && /* @__PURE__ */ jsx52(Text44, { color: PALETTE.muted, children: summary }),
|
|
28672
|
+
/* @__PURE__ */ jsxs42(Box42, { gap: 1, children: [
|
|
28673
|
+
/* @__PURE__ */ jsx52(Text44, { color: PALETTE.accent, children: "?" }),
|
|
28674
|
+
/* @__PURE__ */ jsxs42(Text44, { bold: true, children: [
|
|
28767
28675
|
label,
|
|
28768
28676
|
":"
|
|
28769
28677
|
] }),
|
|
28770
|
-
/* @__PURE__ */
|
|
28771
|
-
/* @__PURE__ */
|
|
28678
|
+
/* @__PURE__ */ jsx52(Text44, { color: isPlaceholder ? PALETTE.muted : void 0, children: shown }),
|
|
28679
|
+
/* @__PURE__ */ jsx52(Text44, { children: cursor })
|
|
28772
28680
|
] }),
|
|
28773
|
-
/* @__PURE__ */
|
|
28681
|
+
/* @__PURE__ */ jsx52(
|
|
28774
28682
|
ControlHints,
|
|
28775
28683
|
{
|
|
28776
28684
|
hints: [
|
|
@@ -28785,7 +28693,7 @@ function PathPrompt({
|
|
|
28785
28693
|
}
|
|
28786
28694
|
|
|
28787
28695
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/screens/PushingStep.tsx
|
|
28788
|
-
import { Box as
|
|
28696
|
+
import { Box as Box43, Text as Text45 } from "ink";
|
|
28789
28697
|
import { ProgressBar as ProgressBar2, ThemeProvider as ThemeProvider2 } from "@inkjs/ui";
|
|
28790
28698
|
|
|
28791
28699
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/support/produced.ts
|
|
@@ -28808,8 +28716,8 @@ function countedThings({ components, tokens }, counts = {}) {
|
|
|
28808
28716
|
|
|
28809
28717
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/support/use-timed-spinner.tsx
|
|
28810
28718
|
import { useEffect as useEffect26, useState as useState29 } from "react";
|
|
28811
|
-
import { Spinner as
|
|
28812
|
-
import { jsx as
|
|
28719
|
+
import { Spinner as Spinner2 } from "@inkjs/ui";
|
|
28720
|
+
import { jsx as jsx53 } from "react/jsx-runtime";
|
|
28813
28721
|
function useTimedSpinner() {
|
|
28814
28722
|
const [elapsedSeconds, setElapsedSeconds] = useState29(0);
|
|
28815
28723
|
useEffect26(() => {
|
|
@@ -28821,62 +28729,61 @@ function useTimedSpinner() {
|
|
|
28821
28729
|
const mins = Math.floor(elapsedSeconds / 60);
|
|
28822
28730
|
const secs = elapsedSeconds % 60;
|
|
28823
28731
|
return {
|
|
28824
|
-
spinner: /* @__PURE__ */
|
|
28732
|
+
spinner: /* @__PURE__ */ jsx53(Spinner2, {}),
|
|
28825
28733
|
elapsed: mins > 0 ? `${mins}m ${secs}s` : `${secs}s`
|
|
28826
28734
|
};
|
|
28827
28735
|
}
|
|
28828
28736
|
|
|
28829
28737
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/screens/PushingStep.tsx
|
|
28830
|
-
import { jsx as
|
|
28738
|
+
import { jsx as jsx54, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
28831
28739
|
function PushingStep({ progress, produced, counts }) {
|
|
28832
28740
|
const { spinner, elapsed } = useTimedSpinner();
|
|
28833
28741
|
const operationId = progress && progress.kind === "queued" ? progress.operationId : null;
|
|
28834
28742
|
const showGlobal = progress && progress.kind === "progress";
|
|
28835
28743
|
const showCurrent = progress && progress.kind === "progress" && progress.current ? progress.current : null;
|
|
28836
|
-
|
|
28837
|
-
|
|
28838
|
-
/* @__PURE__ */
|
|
28839
|
-
|
|
28840
|
-
/* @__PURE__ */ jsxs44(Box44, { gap: 1, children: [
|
|
28744
|
+
return /* @__PURE__ */ jsxs43(Box43, { flexDirection: "column", children: [
|
|
28745
|
+
/* @__PURE__ */ jsx54(StepHeader, { step: "push" }),
|
|
28746
|
+
/* @__PURE__ */ jsxs43(Box43, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 1, children: [
|
|
28747
|
+
/* @__PURE__ */ jsxs43(Box43, { gap: 1, children: [
|
|
28841
28748
|
spinner,
|
|
28842
|
-
/* @__PURE__ */
|
|
28749
|
+
/* @__PURE__ */ jsxs43(Text45, { children: [
|
|
28843
28750
|
"Writing ",
|
|
28844
28751
|
countedThings(produced, counts),
|
|
28845
28752
|
" to your Contentful space..."
|
|
28846
28753
|
] })
|
|
28847
28754
|
] }),
|
|
28848
|
-
operationId && /* @__PURE__ */
|
|
28849
|
-
/* @__PURE__ */
|
|
28850
|
-
/* @__PURE__ */
|
|
28755
|
+
operationId && /* @__PURE__ */ jsxs43(Box43, { gap: 1, children: [
|
|
28756
|
+
/* @__PURE__ */ jsx54(Text45, { color: PALETTE.muted, children: "Operation:" }),
|
|
28757
|
+
/* @__PURE__ */ jsx54(Text45, { children: operationId })
|
|
28851
28758
|
] }),
|
|
28852
|
-
showGlobal && progress && progress.kind === "progress" && /* @__PURE__ */
|
|
28853
|
-
/* @__PURE__ */
|
|
28854
|
-
/* @__PURE__ */
|
|
28759
|
+
showGlobal && progress && progress.kind === "progress" && /* @__PURE__ */ jsx54(Box43, { gap: 1, flexDirection: "column", children: /* @__PURE__ */ jsxs43(Box43, { gap: 2, children: [
|
|
28760
|
+
/* @__PURE__ */ jsx54(Box43, { width: 40, children: /* @__PURE__ */ jsx54(ThemeProvider2, { theme: PROGRESS_THEME, children: /* @__PURE__ */ jsx54(ProgressBar2, { value: Math.round(progress.processed / progress.total * 100) }) }) }),
|
|
28761
|
+
/* @__PURE__ */ jsxs43(Text45, { color: PALETTE.muted, children: [
|
|
28855
28762
|
progress.processed,
|
|
28856
28763
|
"/",
|
|
28857
28764
|
progress.total,
|
|
28858
28765
|
" entities"
|
|
28859
28766
|
] }),
|
|
28860
|
-
progress.failed > 0 && /* @__PURE__ */
|
|
28767
|
+
progress.failed > 0 && /* @__PURE__ */ jsxs43(Text45, { color: PALETTE.error, children: [
|
|
28861
28768
|
progress.failed,
|
|
28862
28769
|
" failed"
|
|
28863
28770
|
] })
|
|
28864
28771
|
] }) }),
|
|
28865
|
-
showCurrent && /* @__PURE__ */
|
|
28866
|
-
/* @__PURE__ */
|
|
28867
|
-
/* @__PURE__ */
|
|
28772
|
+
showCurrent && /* @__PURE__ */ jsxs43(Box43, { gap: 1, children: [
|
|
28773
|
+
/* @__PURE__ */ jsx54(Text45, { color: PALETTE.muted, children: "Now processing:" }),
|
|
28774
|
+
/* @__PURE__ */ jsx54(Text45, { children: showCurrent })
|
|
28868
28775
|
] }),
|
|
28869
|
-
/* @__PURE__ */
|
|
28776
|
+
/* @__PURE__ */ jsx54(Box43, { marginTop: 1, children: /* @__PURE__ */ jsxs43(Text45, { color: PALETTE.muted, children: [
|
|
28870
28777
|
"Elapsed: ",
|
|
28871
28778
|
elapsed
|
|
28872
28779
|
] }) })
|
|
28873
|
-
] })
|
|
28780
|
+
] })
|
|
28874
28781
|
] });
|
|
28875
28782
|
}
|
|
28876
28783
|
|
|
28877
28784
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/screens/WizardPreviewStep.tsx
|
|
28878
28785
|
import { useEffect as useEffect27, useState as useState30, useMemo as useMemo7 } from "react";
|
|
28879
|
-
import { Box as
|
|
28786
|
+
import { Box as Box44, Text as Text46 } from "ink";
|
|
28880
28787
|
|
|
28881
28788
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/support/preview-diff.ts
|
|
28882
28789
|
function computeComponentDiffLines(current, proposed, changeClassification) {
|
|
@@ -29062,7 +28969,7 @@ function usePreviewConfirmationInput(breakingWithImpact, onConfirm) {
|
|
|
29062
28969
|
}
|
|
29063
28970
|
|
|
29064
28971
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/screens/WizardPreviewStep.tsx
|
|
29065
|
-
import { Fragment as
|
|
28972
|
+
import { Fragment as Fragment16, jsx as jsx55, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
29066
28973
|
function buildPreviewSummaryLines(preview) {
|
|
29067
28974
|
const lines = [];
|
|
29068
28975
|
const { components, tokens } = preview;
|
|
@@ -29314,12 +29221,12 @@ function WizardPreviewStep({
|
|
|
29314
29221
|
return;
|
|
29315
29222
|
}
|
|
29316
29223
|
});
|
|
29317
|
-
return /* @__PURE__ */
|
|
29318
|
-
/* @__PURE__ */
|
|
29319
|
-
/* @__PURE__ */
|
|
29320
|
-
hasAnything ? /* @__PURE__ */
|
|
29321
|
-
/* @__PURE__ */
|
|
29322
|
-
/* @__PURE__ */
|
|
29224
|
+
return /* @__PURE__ */ jsxs44(Box44, { flexDirection: "column", children: [
|
|
29225
|
+
/* @__PURE__ */ jsx55(StepHeader, { step: "push" }),
|
|
29226
|
+
/* @__PURE__ */ jsxs44(Box44, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 2, children: [
|
|
29227
|
+
hasAnything ? /* @__PURE__ */ jsxs44(Fragment16, { children: [
|
|
29228
|
+
/* @__PURE__ */ jsx55(Text46, { children: "Here's what will happen in your space:" }),
|
|
29229
|
+
/* @__PURE__ */ jsxs44(
|
|
29323
29230
|
WindowedPanel,
|
|
29324
29231
|
{
|
|
29325
29232
|
width: Math.max(20, terminalColumns - 4),
|
|
@@ -29327,15 +29234,15 @@ function WizardPreviewStep({
|
|
|
29327
29234
|
title: diffExpanded ? `Diff (${diffLines.length} lines)` : "",
|
|
29328
29235
|
focused: false,
|
|
29329
29236
|
children: [
|
|
29330
|
-
activeLines.slice(boundedScrollOffset, boundedScrollOffset + viewportHeight).map((line) => /* @__PURE__ */
|
|
29331
|
-
/* @__PURE__ */
|
|
29237
|
+
activeLines.slice(boundedScrollOffset, boundedScrollOffset + viewportHeight).map((line) => /* @__PURE__ */ jsx55(Text46, { color: line.color, wrap: "truncate-end", children: line.text }, line.key)),
|
|
29238
|
+
/* @__PURE__ */ jsx55(Text46, { color: PALETTE.muted, wrap: "truncate-end", children: formatPreviewScrollIndicator(activeLines.length, boundedScrollOffset, viewportHeight) })
|
|
29332
29239
|
]
|
|
29333
29240
|
}
|
|
29334
29241
|
)
|
|
29335
|
-
] }) : /* @__PURE__ */
|
|
29336
|
-
breakingWithImpact && /* @__PURE__ */
|
|
29337
|
-
/* @__PURE__ */
|
|
29338
|
-
/* @__PURE__ */
|
|
29242
|
+
] }) : /* @__PURE__ */ jsx55(Text46, { color: PALETTE.muted, children: "Nothing to push \u2014 everything is already up to date." }),
|
|
29243
|
+
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." }) }),
|
|
29244
|
+
/* @__PURE__ */ jsx55(SpaceEnvironment, { spaceId, environmentId }),
|
|
29245
|
+
/* @__PURE__ */ jsx55(Box44, { marginTop: 1, children: /* @__PURE__ */ jsx55(
|
|
29339
29246
|
ControlHints,
|
|
29340
29247
|
{
|
|
29341
29248
|
hints: [
|
|
@@ -29551,7 +29458,7 @@ function useFlowLog(state2) {
|
|
|
29551
29458
|
}
|
|
29552
29459
|
|
|
29553
29460
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/flow/screen.tsx
|
|
29554
|
-
import { jsx as
|
|
29461
|
+
import { jsx as jsx56, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
29555
29462
|
function canEditFromPreview(cdf) {
|
|
29556
29463
|
if (!cdf) return false;
|
|
29557
29464
|
return parseCDFComponents(cdf).components.length > 0;
|
|
@@ -29571,7 +29478,7 @@ function FlowScreen({
|
|
|
29571
29478
|
const content = (() => {
|
|
29572
29479
|
switch (state2.step) {
|
|
29573
29480
|
case "final-review":
|
|
29574
|
-
return /* @__PURE__ */
|
|
29481
|
+
return /* @__PURE__ */ jsx56(
|
|
29575
29482
|
GenerateReviewStep,
|
|
29576
29483
|
{
|
|
29577
29484
|
extractSessionId: state2.extractSessionId,
|
|
@@ -29588,10 +29495,10 @@ function FlowScreen({
|
|
|
29588
29495
|
}
|
|
29589
29496
|
);
|
|
29590
29497
|
case "previewing":
|
|
29591
|
-
return /* @__PURE__ */
|
|
29498
|
+
return /* @__PURE__ */ jsx56(RunningStep, { step: "push", description: `Computing diff for ${things} against your Contentful space...` });
|
|
29592
29499
|
case "preview-gate":
|
|
29593
29500
|
if (!state2.serverPreview) return null;
|
|
29594
|
-
return /* @__PURE__ */
|
|
29501
|
+
return /* @__PURE__ */ jsx56(
|
|
29595
29502
|
WizardPreviewStep,
|
|
29596
29503
|
{
|
|
29597
29504
|
preview: state2.serverPreview,
|
|
@@ -29603,9 +29510,9 @@ function FlowScreen({
|
|
|
29603
29510
|
}
|
|
29604
29511
|
);
|
|
29605
29512
|
case "pushing":
|
|
29606
|
-
return /* @__PURE__ */
|
|
29513
|
+
return /* @__PURE__ */ jsx56(PushingStep, { progress: state2.pushProgress, produced, counts });
|
|
29607
29514
|
case "path-prompt":
|
|
29608
|
-
return /* @__PURE__ */
|
|
29515
|
+
return /* @__PURE__ */ jsx56(
|
|
29609
29516
|
PathPrompt,
|
|
29610
29517
|
{
|
|
29611
29518
|
summary: `Saving ${things}${state2.credentialsSkipped ? "" : " and pushing them to your Contentful space"}.`,
|
|
@@ -29615,10 +29522,10 @@ function FlowScreen({
|
|
|
29615
29522
|
}
|
|
29616
29523
|
);
|
|
29617
29524
|
case "printing":
|
|
29618
|
-
return /* @__PURE__ */
|
|
29525
|
+
return /* @__PURE__ */ jsx56(RunningStep, { step: "push", description: "Writing output files to disk..." });
|
|
29619
29526
|
case "print-gate": {
|
|
29620
29527
|
const teaser = buildRunTeaserLine(state2.lastRunId);
|
|
29621
|
-
return /* @__PURE__ */
|
|
29528
|
+
return /* @__PURE__ */ jsx56(
|
|
29622
29529
|
GateStep,
|
|
29623
29530
|
{
|
|
29624
29531
|
step: "push",
|
|
@@ -29633,7 +29540,7 @@ function FlowScreen({
|
|
|
29633
29540
|
}
|
|
29634
29541
|
case "done": {
|
|
29635
29542
|
const totalFailed = state2.pushResult.componentTypes.failed + state2.pushResult.designTokens.failed;
|
|
29636
|
-
return /* @__PURE__ */
|
|
29543
|
+
return /* @__PURE__ */ jsx56(
|
|
29637
29544
|
DoneStep,
|
|
29638
29545
|
{
|
|
29639
29546
|
componentTypes: state2.pushResult.componentTypes,
|
|
@@ -29650,7 +29557,7 @@ function FlowScreen({
|
|
|
29650
29557
|
);
|
|
29651
29558
|
}
|
|
29652
29559
|
case "preview-validation-error":
|
|
29653
|
-
return /* @__PURE__ */
|
|
29560
|
+
return /* @__PURE__ */ jsx56(
|
|
29654
29561
|
PreviewValidationErrorScreen,
|
|
29655
29562
|
{
|
|
29656
29563
|
errors: state2.previewValidationErrors,
|
|
@@ -29661,7 +29568,7 @@ function FlowScreen({
|
|
|
29661
29568
|
}
|
|
29662
29569
|
);
|
|
29663
29570
|
case "error":
|
|
29664
|
-
return /* @__PURE__ */
|
|
29571
|
+
return /* @__PURE__ */ jsx56(
|
|
29665
29572
|
ErrorStep,
|
|
29666
29573
|
{
|
|
29667
29574
|
stepName: state2.errorStep,
|
|
@@ -29672,8 +29579,8 @@ function FlowScreen({
|
|
|
29672
29579
|
);
|
|
29673
29580
|
}
|
|
29674
29581
|
})();
|
|
29675
|
-
return /* @__PURE__ */
|
|
29676
|
-
/* @__PURE__ */
|
|
29582
|
+
return /* @__PURE__ */ jsxs45(Box45, { flexDirection: "column", children: [
|
|
29583
|
+
/* @__PURE__ */ jsx56(CustomPromptBanner, { generatePromptPath }),
|
|
29677
29584
|
content
|
|
29678
29585
|
] });
|
|
29679
29586
|
}
|
|
@@ -29862,16 +29769,6 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
29862
29769
|
};
|
|
29863
29770
|
}
|
|
29864
29771
|
|
|
29865
|
-
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/support/push-progress.ts
|
|
29866
|
-
function activityFromItems(items) {
|
|
29867
|
-
return items.filter((item) => item.status !== "queued").map((item) => ({
|
|
29868
|
-
name: item.id,
|
|
29869
|
-
state: item.status === "failed" ? "failed" : "done",
|
|
29870
|
-
detail: `${item.action} ${item.entityType === "DesignToken" ? "token" : "component"}`,
|
|
29871
|
-
...item.error ? { error: typeof item.error === "string" ? item.error : item.error.message } : {}
|
|
29872
|
-
}));
|
|
29873
|
-
}
|
|
29874
|
-
|
|
29875
29772
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/flow/push.ts
|
|
29876
29773
|
var realPushDeps = (log) => ({
|
|
29877
29774
|
createClient: (options) => new ApiClient({ ...options, userAgent: cliUserAgent() }),
|
|
@@ -29937,14 +29834,7 @@ async function runPush(input, deps, onPatch) {
|
|
|
29937
29834
|
const lastDone = items.length > 0 ? items[items.length - 1] : null;
|
|
29938
29835
|
const current = lastDone && lastDone.status === "succeeded" ? lastDone.id : null;
|
|
29939
29836
|
onPatch({
|
|
29940
|
-
pushProgress: {
|
|
29941
|
-
kind: "progress",
|
|
29942
|
-
processed: done,
|
|
29943
|
-
total: summary.total,
|
|
29944
|
-
failed: summary.failed,
|
|
29945
|
-
current,
|
|
29946
|
-
items: activityFromItems(items)
|
|
29947
|
-
}
|
|
29837
|
+
pushProgress: { kind: "progress", processed: done, total: summary.total, failed: summary.failed, current }
|
|
29948
29838
|
});
|
|
29949
29839
|
}
|
|
29950
29840
|
safeLog(deps, { pollTick: { attempt: pollCount, status: op.sys.status, summary: op.summary } });
|
|
@@ -30470,7 +30360,7 @@ function useFlow(start, options = {}) {
|
|
|
30470
30360
|
|
|
30471
30361
|
// packages/experience-design-system-cli/src/tui/help/PageContainer.tsx
|
|
30472
30362
|
import { useEffect as useEffect30, useState as useState31 } from "react";
|
|
30473
|
-
import { Box as
|
|
30363
|
+
import { Box as Box46, Text as Text47, useInput as useInput13 } from "ink";
|
|
30474
30364
|
init_debug_store();
|
|
30475
30365
|
|
|
30476
30366
|
// packages/experience-design-system-cli/src/tui/help/help-info.ts
|
|
@@ -30531,13 +30421,13 @@ async function readHelpInfo() {
|
|
|
30531
30421
|
}
|
|
30532
30422
|
|
|
30533
30423
|
// packages/experience-design-system-cli/src/tui/help/PageContainer.tsx
|
|
30534
|
-
import { Fragment as
|
|
30424
|
+
import { Fragment as Fragment17, jsx as jsx57, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
30535
30425
|
function Section({ title, rows }) {
|
|
30536
|
-
return /* @__PURE__ */
|
|
30537
|
-
/* @__PURE__ */
|
|
30538
|
-
rows.map((row) => /* @__PURE__ */
|
|
30539
|
-
/* @__PURE__ */
|
|
30540
|
-
/* @__PURE__ */
|
|
30426
|
+
return /* @__PURE__ */ jsxs46(Box46, { flexDirection: "column", children: [
|
|
30427
|
+
/* @__PURE__ */ jsx57(Text47, { bold: true, color: PALETTE.accent, children: title }),
|
|
30428
|
+
rows.map((row) => /* @__PURE__ */ jsxs46(Box46, { gap: 1, children: [
|
|
30429
|
+
/* @__PURE__ */ jsx57(Box46, { width: 16, flexShrink: 0, children: /* @__PURE__ */ jsx57(Text47, { color: PALETTE.muted, children: row.label }) }),
|
|
30430
|
+
/* @__PURE__ */ jsx57(Text47, { children: row.value })
|
|
30541
30431
|
] }, row.label))
|
|
30542
30432
|
] });
|
|
30543
30433
|
}
|
|
@@ -30561,14 +30451,14 @@ function HelpScreen({ onDone }) {
|
|
|
30561
30451
|
return;
|
|
30562
30452
|
}
|
|
30563
30453
|
});
|
|
30564
|
-
return /* @__PURE__ */
|
|
30565
|
-
/* @__PURE__ */
|
|
30566
|
-
info ? /* @__PURE__ */
|
|
30567
|
-
/* @__PURE__ */
|
|
30568
|
-
/* @__PURE__ */
|
|
30569
|
-
/* @__PURE__ */
|
|
30570
|
-
] }) : /* @__PURE__ */
|
|
30571
|
-
/* @__PURE__ */
|
|
30454
|
+
return /* @__PURE__ */ jsxs46(Box46, { flexDirection: "column", paddingX: 2, paddingY: 1, gap: 1, children: [
|
|
30455
|
+
/* @__PURE__ */ jsx57(Text47, { bold: true, children: "Help" }),
|
|
30456
|
+
info ? /* @__PURE__ */ jsxs46(Fragment17, { children: [
|
|
30457
|
+
/* @__PURE__ */ jsx57(Section, { title: "Where things are stored", rows: info.storage }),
|
|
30458
|
+
/* @__PURE__ */ jsx57(Section, { title: "Troubleshooting", rows: info.troubleshooting }),
|
|
30459
|
+
/* @__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." })
|
|
30460
|
+
] }) : /* @__PURE__ */ jsx57(Text47, { color: PALETTE.accent, children: "Loading..." }),
|
|
30461
|
+
/* @__PURE__ */ jsx57(
|
|
30572
30462
|
ControlHints,
|
|
30573
30463
|
{
|
|
30574
30464
|
hints: [
|
|
@@ -30582,8 +30472,8 @@ function HelpScreen({ onDone }) {
|
|
|
30582
30472
|
|
|
30583
30473
|
// packages/experience-design-system-cli/src/tui/settings/PageContainer.tsx
|
|
30584
30474
|
import { useState as useState32 } from "react";
|
|
30585
|
-
import { Box as
|
|
30586
|
-
import { jsx as
|
|
30475
|
+
import { Box as Box47, Text as Text48, useInput as useInput14 } from "ink";
|
|
30476
|
+
import { jsx as jsx58, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
30587
30477
|
function SettingsScreen({
|
|
30588
30478
|
onNavigate,
|
|
30589
30479
|
onBack
|
|
@@ -30614,15 +30504,15 @@ function SettingsScreen({
|
|
|
30614
30504
|
onBack();
|
|
30615
30505
|
}
|
|
30616
30506
|
});
|
|
30617
|
-
return /* @__PURE__ */
|
|
30618
|
-
/* @__PURE__ */
|
|
30619
|
-
/* @__PURE__ */
|
|
30620
|
-
items.map((item, i) => /* @__PURE__ */
|
|
30507
|
+
return /* @__PURE__ */ jsxs47(Box47, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
30508
|
+
/* @__PURE__ */ jsx58(Text48, { bold: true, children: "Settings" }),
|
|
30509
|
+
/* @__PURE__ */ jsx58(Text48, { color: PALETTE.muted, children: " " }),
|
|
30510
|
+
items.map((item, i) => /* @__PURE__ */ jsxs47(Text48, { color: i === focusIdx ? PALETTE.accent : void 0, children: [
|
|
30621
30511
|
i === focusIdx ? "> " : " ",
|
|
30622
30512
|
item.label
|
|
30623
30513
|
] }, item.label)),
|
|
30624
|
-
/* @__PURE__ */
|
|
30625
|
-
/* @__PURE__ */
|
|
30514
|
+
/* @__PURE__ */ jsx58(Text48, { children: " " }),
|
|
30515
|
+
/* @__PURE__ */ jsx58(
|
|
30626
30516
|
ControlHints,
|
|
30627
30517
|
{
|
|
30628
30518
|
hints: [
|
|
@@ -30637,11 +30527,11 @@ function SettingsScreen({
|
|
|
30637
30527
|
|
|
30638
30528
|
// packages/experience-design-system-cli/src/tui/settings/configuration/ConfigurationScreen.tsx
|
|
30639
30529
|
import { useState as useState36 } from "react";
|
|
30640
|
-
import { Box as
|
|
30530
|
+
import { Box as Box51, Text as Text53, useInput as useInput17 } from "ink";
|
|
30641
30531
|
|
|
30642
30532
|
// packages/experience-design-system-cli/src/tui/settings/configuration/agents/AgentsScreen.tsx
|
|
30643
30533
|
import { useEffect as useEffect32, useRef as useRef20, useState as useState34 } from "react";
|
|
30644
|
-
import { Box as
|
|
30534
|
+
import { Box as Box49, Text as Text51, useInput as useInput15 } from "ink";
|
|
30645
30535
|
init_debug_store();
|
|
30646
30536
|
|
|
30647
30537
|
// packages/experience-design-system-cli/src/tui/settings/configuration/agents/agent-status.ts
|
|
@@ -30937,11 +30827,11 @@ async function writeAgentConfig(config) {
|
|
|
30937
30827
|
|
|
30938
30828
|
// packages/experience-design-system-cli/src/tui/settings/configuration/agents/AgentDetail.tsx
|
|
30939
30829
|
import { useEffect as useEffect31, useState as useState33 } from "react";
|
|
30940
|
-
import { Box as
|
|
30830
|
+
import { Box as Box48, Text as Text50 } from "ink";
|
|
30941
30831
|
|
|
30942
30832
|
// packages/experience-design-system-cli/src/tui/settings/configuration/agents/AgentStatusBadge.tsx
|
|
30943
|
-
import { Text as
|
|
30944
|
-
import { jsx as
|
|
30833
|
+
import { Text as Text49 } from "ink";
|
|
30834
|
+
import { jsx as jsx59 } from "react/jsx-runtime";
|
|
30945
30835
|
var TONE_COLOR = {
|
|
30946
30836
|
ok: PALETTE.success,
|
|
30947
30837
|
bad: PALETTE.error,
|
|
@@ -30953,7 +30843,7 @@ function AgentStatusBadge({
|
|
|
30953
30843
|
binary
|
|
30954
30844
|
}) {
|
|
30955
30845
|
const { symbol, text, tone } = LIST_STATUS[checks ? statusFromChecks(name, checks, binary) : "checking"];
|
|
30956
|
-
return /* @__PURE__ */
|
|
30846
|
+
return /* @__PURE__ */ jsx59(Text49, { color: TONE_COLOR[tone], children: `${symbol} ${text}` });
|
|
30957
30847
|
}
|
|
30958
30848
|
|
|
30959
30849
|
// packages/experience-design-system-cli/src/tui/settings/configuration/agents/apply-binary-overrides.ts
|
|
@@ -30975,16 +30865,16 @@ function applyBinaryOverrides(config) {
|
|
|
30975
30865
|
}
|
|
30976
30866
|
|
|
30977
30867
|
// packages/experience-design-system-cli/src/tui/settings/configuration/agents/AgentDetail.tsx
|
|
30978
|
-
import { jsx as
|
|
30868
|
+
import { jsx as jsx60, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
30979
30869
|
var fields = (name) => [
|
|
30980
30870
|
{ key: "binary", label: "Command path", hint: `(empty: \`${AGENT_BINARIES[name]}\` from the PATH)` },
|
|
30981
30871
|
{ key: "model", label: "Model", hint: `(empty: ${defaultModelLabel(name)})` }
|
|
30982
30872
|
];
|
|
30983
30873
|
var INSPECT_DELAY_MS = 400;
|
|
30984
30874
|
function StatusHeading() {
|
|
30985
|
-
return /* @__PURE__ */
|
|
30986
|
-
/* @__PURE__ */
|
|
30987
|
-
/* @__PURE__ */
|
|
30875
|
+
return /* @__PURE__ */ jsxs48(Box48, { gap: 1, children: [
|
|
30876
|
+
/* @__PURE__ */ jsx60(Text50, { bold: true, color: PALETTE.muted, children: "STATUS" }),
|
|
30877
|
+
/* @__PURE__ */ jsx60(Text50, { color: PALETTE.muted, children: "\xB7 read only" })
|
|
30988
30878
|
] });
|
|
30989
30879
|
}
|
|
30990
30880
|
function AgentDetail({
|
|
@@ -31047,7 +30937,7 @@ function AgentDetail({
|
|
|
31047
30937
|
};
|
|
31048
30938
|
const formFields = fields(name);
|
|
31049
30939
|
const labelWidth = formLabelWidth([...formFields, action]);
|
|
31050
|
-
return /* @__PURE__ */
|
|
30940
|
+
return /* @__PURE__ */ jsx60(
|
|
31051
30941
|
FieldForm,
|
|
31052
30942
|
{
|
|
31053
30943
|
title: `Settings \u203A Configuration \u203A Agents \u203A ${AGENT_LABELS[name]}`,
|
|
@@ -31064,16 +30954,16 @@ function AgentDetail({
|
|
|
31064
30954
|
actions: [action],
|
|
31065
30955
|
notice: testing ? null : notice,
|
|
31066
30956
|
busy: saving || testing,
|
|
31067
|
-
children: /* @__PURE__ */
|
|
31068
|
-
/* @__PURE__ */
|
|
31069
|
-
statusRows(name, checks, settings.binary).map((row) => /* @__PURE__ */
|
|
30957
|
+
children: /* @__PURE__ */ jsxs48(Box48, { flexDirection: "column", marginTop: 1, children: [
|
|
30958
|
+
/* @__PURE__ */ jsx60(StatusHeading, {}),
|
|
30959
|
+
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))
|
|
31070
30960
|
] })
|
|
31071
30961
|
}
|
|
31072
30962
|
);
|
|
31073
30963
|
}
|
|
31074
30964
|
|
|
31075
30965
|
// packages/experience-design-system-cli/src/tui/settings/configuration/agents/AgentsScreen.tsx
|
|
31076
|
-
import { Fragment as
|
|
30966
|
+
import { Fragment as Fragment18, jsx as jsx61, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
31077
30967
|
var NAME_WIDTH = 16;
|
|
31078
30968
|
var PANEL_LABEL_WIDTH = "Command".length;
|
|
31079
30969
|
function AgentsScreen({ onDone }) {
|
|
@@ -31183,21 +31073,21 @@ function AgentsScreen({ onDone }) {
|
|
|
31183
31073
|
}
|
|
31184
31074
|
});
|
|
31185
31075
|
if (!config) {
|
|
31186
|
-
return /* @__PURE__ */
|
|
31187
|
-
/* @__PURE__ */
|
|
31188
|
-
/* @__PURE__ */
|
|
31189
|
-
loadError ? /* @__PURE__ */
|
|
31190
|
-
/* @__PURE__ */
|
|
31076
|
+
return /* @__PURE__ */ jsxs49(Box49, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
31077
|
+
/* @__PURE__ */ jsx61(Text51, { bold: true, children: "Settings \u203A Configuration \u203A Agents" }),
|
|
31078
|
+
/* @__PURE__ */ jsx61(Text51, { children: " " }),
|
|
31079
|
+
loadError ? /* @__PURE__ */ jsxs49(Fragment18, { children: [
|
|
31080
|
+
/* @__PURE__ */ jsxs49(Text51, { color: PALETTE.error, children: [
|
|
31191
31081
|
"\u2717 Could not read the settings: ",
|
|
31192
31082
|
loadError
|
|
31193
31083
|
] }),
|
|
31194
|
-
/* @__PURE__ */
|
|
31195
|
-
/* @__PURE__ */
|
|
31196
|
-
] }) : /* @__PURE__ */
|
|
31084
|
+
/* @__PURE__ */ jsx61(Text51, { children: " " }),
|
|
31085
|
+
/* @__PURE__ */ jsx61(ControlHints, { hints: [{ keys: "Esc/q", label: "back" }] })
|
|
31086
|
+
] }) : /* @__PURE__ */ jsx61(Text51, { color: PALETTE.accent, children: "Loading..." })
|
|
31197
31087
|
] });
|
|
31198
31088
|
}
|
|
31199
31089
|
if (open) {
|
|
31200
|
-
return /* @__PURE__ */
|
|
31090
|
+
return /* @__PURE__ */ jsx61(
|
|
31201
31091
|
AgentDetail,
|
|
31202
31092
|
{
|
|
31203
31093
|
name: open,
|
|
@@ -31218,48 +31108,48 @@ function AgentsScreen({ onDone }) {
|
|
|
31218
31108
|
);
|
|
31219
31109
|
}
|
|
31220
31110
|
const focusedAgent = AGENT_NAMES[focus];
|
|
31221
|
-
return /* @__PURE__ */
|
|
31222
|
-
/* @__PURE__ */
|
|
31223
|
-
/* @__PURE__ */
|
|
31224
|
-
/* @__PURE__ */
|
|
31225
|
-
/* @__PURE__ */
|
|
31226
|
-
/* @__PURE__ */
|
|
31227
|
-
/* @__PURE__ */
|
|
31228
|
-
/* @__PURE__ */
|
|
31229
|
-
saving && /* @__PURE__ */
|
|
31111
|
+
return /* @__PURE__ */ jsxs49(Box49, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
31112
|
+
/* @__PURE__ */ jsx61(Text51, { bold: true, children: "Settings \u203A Configuration \u203A Agents" }),
|
|
31113
|
+
/* @__PURE__ */ jsx61(Text51, { children: " " }),
|
|
31114
|
+
/* @__PURE__ */ jsx61(Text51, { color: PALETTE.muted, children: "The coding agent the CLI runs, and what was found for each one." }),
|
|
31115
|
+
/* @__PURE__ */ jsx61(Text51, { children: " " }),
|
|
31116
|
+
/* @__PURE__ */ jsxs49(Box49, { gap: 1, children: [
|
|
31117
|
+
/* @__PURE__ */ jsx61(Text51, { color: PALETTE.muted, children: "Default agent" }),
|
|
31118
|
+
/* @__PURE__ */ jsx61(Text51, { bold: true, children: AGENT_LABELS[config.defaultAgent] }),
|
|
31119
|
+
saving && /* @__PURE__ */ jsx61(Text51, { color: PALETTE.accent, children: "\u2026 saving" })
|
|
31230
31120
|
] }),
|
|
31231
|
-
/* @__PURE__ */
|
|
31232
|
-
/* @__PURE__ */
|
|
31233
|
-
/* @__PURE__ */
|
|
31234
|
-
/* @__PURE__ */
|
|
31235
|
-
/* @__PURE__ */
|
|
31121
|
+
/* @__PURE__ */ jsxs49(Box49, { marginTop: 1, gap: 1, children: [
|
|
31122
|
+
/* @__PURE__ */ jsx61(Text51, { children: " " }),
|
|
31123
|
+
/* @__PURE__ */ jsx61(Text51, { children: " " }),
|
|
31124
|
+
/* @__PURE__ */ jsx61(Box49, { width: NAME_WIDTH, flexShrink: 0, children: /* @__PURE__ */ jsx61(Text51, { color: PALETTE.muted, children: "AGENT" }) }),
|
|
31125
|
+
/* @__PURE__ */ jsx61(Text51, { color: PALETTE.muted, children: "STATUS" })
|
|
31236
31126
|
] }),
|
|
31237
31127
|
AGENT_NAMES.map((name) => {
|
|
31238
31128
|
const isFocused = focusedAgent === name;
|
|
31239
|
-
return /* @__PURE__ */
|
|
31240
|
-
/* @__PURE__ */
|
|
31241
|
-
/* @__PURE__ */
|
|
31242
|
-
/* @__PURE__ */
|
|
31243
|
-
/* @__PURE__ */
|
|
31129
|
+
return /* @__PURE__ */ jsxs49(Box49, { gap: 1, children: [
|
|
31130
|
+
/* @__PURE__ */ jsx61(Text51, { color: isFocused ? PALETTE.accent : void 0, children: isFocused ? "\u276F" : " " }),
|
|
31131
|
+
/* @__PURE__ */ jsx61(Text51, { color: PALETTE.success, children: name === config.defaultAgent ? "\u2605" : " " }),
|
|
31132
|
+
/* @__PURE__ */ jsx61(Box49, { width: NAME_WIDTH, flexShrink: 0, children: /* @__PURE__ */ jsx61(Text51, { bold: isFocused, color: isFocused ? PALETTE.accent : void 0, children: AGENT_LABELS[name] }) }),
|
|
31133
|
+
/* @__PURE__ */ jsx61(AgentStatusBadge, { name, checks: checks[name], binary: config.agents[name].binary })
|
|
31244
31134
|
] }, name);
|
|
31245
31135
|
}),
|
|
31246
|
-
/* @__PURE__ */
|
|
31247
|
-
/* @__PURE__ */
|
|
31248
|
-
panelRows(focusedAgent, checks[focusedAgent], config.agents[focusedAgent]).map((row) => /* @__PURE__ */
|
|
31249
|
-
/* @__PURE__ */
|
|
31250
|
-
/* @__PURE__ */
|
|
31136
|
+
/* @__PURE__ */ jsxs49(Box49, { flexDirection: "column", marginTop: 1, children: [
|
|
31137
|
+
/* @__PURE__ */ jsx61(Text51, { color: PALETTE.muted, children: `\u2500 ${AGENT_LABELS[focusedAgent]} ${"\u2500".repeat(30)}` }),
|
|
31138
|
+
panelRows(focusedAgent, checks[focusedAgent], config.agents[focusedAgent]).map((row) => /* @__PURE__ */ jsxs49(Box49, { gap: 1, paddingLeft: 1, children: [
|
|
31139
|
+
/* @__PURE__ */ jsx61(Box49, { width: PANEL_LABEL_WIDTH, flexShrink: 0, children: /* @__PURE__ */ jsx61(Text51, { color: PALETTE.muted, children: row.label }) }),
|
|
31140
|
+
/* @__PURE__ */ jsx61(Text51, { color: TONE_COLOR[row.tone], children: row.value })
|
|
31251
31141
|
] }, row.label))
|
|
31252
31142
|
] }),
|
|
31253
|
-
notice && /* @__PURE__ */
|
|
31254
|
-
/* @__PURE__ */
|
|
31255
|
-
/* @__PURE__ */
|
|
31143
|
+
notice && /* @__PURE__ */ jsxs49(Fragment18, { children: [
|
|
31144
|
+
/* @__PURE__ */ jsx61(Text51, { children: " " }),
|
|
31145
|
+
/* @__PURE__ */ jsxs49(Text51, { bold: true, color: notice.kind === "success" ? PALETTE.success : PALETTE.error, children: [
|
|
31256
31146
|
notice.kind === "success" ? "\u2713" : "\u2717",
|
|
31257
31147
|
" ",
|
|
31258
31148
|
notice.text
|
|
31259
31149
|
] })
|
|
31260
31150
|
] }),
|
|
31261
|
-
/* @__PURE__ */
|
|
31262
|
-
/* @__PURE__ */
|
|
31151
|
+
/* @__PURE__ */ jsx61(Text51, { children: " " }),
|
|
31152
|
+
/* @__PURE__ */ jsx61(
|
|
31263
31153
|
ControlHints,
|
|
31264
31154
|
{
|
|
31265
31155
|
hints: [
|
|
@@ -31275,7 +31165,7 @@ function AgentsScreen({ onDone }) {
|
|
|
31275
31165
|
|
|
31276
31166
|
// packages/experience-design-system-cli/src/tui/settings/configuration/project/ProjectScreen.tsx
|
|
31277
31167
|
import { useEffect as useEffect33, useRef as useRef21, useState as useState35 } from "react";
|
|
31278
|
-
import { Box as
|
|
31168
|
+
import { Box as Box50, Text as Text52, useInput as useInput16 } from "ink";
|
|
31279
31169
|
init_debug_store();
|
|
31280
31170
|
|
|
31281
31171
|
// packages/experience-design-system-cli/src/tui/settings/configuration/project/project-store.ts
|
|
@@ -31304,7 +31194,7 @@ async function writeCredentials(config) {
|
|
|
31304
31194
|
}
|
|
31305
31195
|
|
|
31306
31196
|
// packages/experience-design-system-cli/src/tui/settings/configuration/project/ProjectScreen.tsx
|
|
31307
|
-
import { Fragment as
|
|
31197
|
+
import { Fragment as Fragment19, jsx as jsx62, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
31308
31198
|
var FIELDS3 = [
|
|
31309
31199
|
{ key: "spaceId", label: "Space ID" },
|
|
31310
31200
|
{ key: "environmentId", label: "Environment ID" },
|
|
@@ -31384,17 +31274,17 @@ function ProjectScreen({ onDone }) {
|
|
|
31384
31274
|
}
|
|
31385
31275
|
});
|
|
31386
31276
|
if (!config) {
|
|
31387
|
-
return /* @__PURE__ */
|
|
31388
|
-
/* @__PURE__ */
|
|
31389
|
-
/* @__PURE__ */
|
|
31390
|
-
loadError ? /* @__PURE__ */
|
|
31391
|
-
/* @__PURE__ */
|
|
31277
|
+
return /* @__PURE__ */ jsxs50(Box50, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
31278
|
+
/* @__PURE__ */ jsx62(Text52, { bold: true, children: "Settings \u203A Configuration \u203A Project" }),
|
|
31279
|
+
/* @__PURE__ */ jsx62(Text52, { children: " " }),
|
|
31280
|
+
loadError ? /* @__PURE__ */ jsxs50(Fragment19, { children: [
|
|
31281
|
+
/* @__PURE__ */ jsxs50(Text52, { color: PALETTE.error, children: [
|
|
31392
31282
|
"\u2717 Could not read the settings: ",
|
|
31393
31283
|
loadError
|
|
31394
31284
|
] }),
|
|
31395
|
-
/* @__PURE__ */
|
|
31396
|
-
/* @__PURE__ */
|
|
31397
|
-
] }) : /* @__PURE__ */
|
|
31285
|
+
/* @__PURE__ */ jsx62(Text52, { children: " " }),
|
|
31286
|
+
/* @__PURE__ */ jsx62(ControlHints, { hints: [{ keys: "Esc/q", label: "back" }] })
|
|
31287
|
+
] }) : /* @__PURE__ */ jsx62(Text52, { color: PALETTE.accent, children: "Loading..." })
|
|
31398
31288
|
] });
|
|
31399
31289
|
}
|
|
31400
31290
|
const save = () => {
|
|
@@ -31415,7 +31305,7 @@ function ProjectScreen({ onDone }) {
|
|
|
31415
31305
|
endVisit(config);
|
|
31416
31306
|
onDone();
|
|
31417
31307
|
};
|
|
31418
|
-
return /* @__PURE__ */
|
|
31308
|
+
return /* @__PURE__ */ jsx62(
|
|
31419
31309
|
FieldForm,
|
|
31420
31310
|
{
|
|
31421
31311
|
title: "Settings \u203A Configuration \u203A Project",
|
|
@@ -31437,7 +31327,7 @@ function ProjectScreen({ onDone }) {
|
|
|
31437
31327
|
}
|
|
31438
31328
|
|
|
31439
31329
|
// packages/experience-design-system-cli/src/tui/settings/configuration/ConfigurationScreen.tsx
|
|
31440
|
-
import { jsx as
|
|
31330
|
+
import { jsx as jsx63, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
31441
31331
|
var SECTIONS = [
|
|
31442
31332
|
{
|
|
31443
31333
|
id: "project",
|
|
@@ -31466,18 +31356,18 @@ function ConfigurationScreen({ onDone }) {
|
|
|
31466
31356
|
}
|
|
31467
31357
|
if (key.escape || input === "q") onDone();
|
|
31468
31358
|
});
|
|
31469
|
-
if (open === "project") return /* @__PURE__ */
|
|
31470
|
-
if (open === "agents") return /* @__PURE__ */
|
|
31471
|
-
return /* @__PURE__ */
|
|
31472
|
-
/* @__PURE__ */
|
|
31473
|
-
/* @__PURE__ */
|
|
31474
|
-
SECTIONS.map((section, index) => /* @__PURE__ */
|
|
31475
|
-
/* @__PURE__ */
|
|
31476
|
-
/* @__PURE__ */
|
|
31477
|
-
/* @__PURE__ */
|
|
31359
|
+
if (open === "project") return /* @__PURE__ */ jsx63(ProjectScreen, { onDone: close });
|
|
31360
|
+
if (open === "agents") return /* @__PURE__ */ jsx63(AgentsScreen, { onDone: close });
|
|
31361
|
+
return /* @__PURE__ */ jsxs51(Box51, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
31362
|
+
/* @__PURE__ */ jsx63(Text53, { bold: true, children: "Settings \u203A Configuration" }),
|
|
31363
|
+
/* @__PURE__ */ jsx63(Text53, { children: " " }),
|
|
31364
|
+
SECTIONS.map((section, index) => /* @__PURE__ */ jsxs51(Box51, { gap: 1, children: [
|
|
31365
|
+
/* @__PURE__ */ jsx63(Text53, { color: index === focus ? PALETTE.accent : void 0, children: index === focus ? "\u276F" : " " }),
|
|
31366
|
+
/* @__PURE__ */ jsx63(Box51, { width: 9, flexShrink: 0, children: /* @__PURE__ */ jsx63(Text53, { bold: index === focus, color: index === focus ? PALETTE.accent : void 0, children: section.label }) }),
|
|
31367
|
+
/* @__PURE__ */ jsx63(Text53, { color: PALETTE.muted, children: section.description })
|
|
31478
31368
|
] }, section.id)),
|
|
31479
|
-
/* @__PURE__ */
|
|
31480
|
-
/* @__PURE__ */
|
|
31369
|
+
/* @__PURE__ */ jsx63(Text53, { children: " " }),
|
|
31370
|
+
/* @__PURE__ */ jsx63(
|
|
31481
31371
|
ControlHints,
|
|
31482
31372
|
{
|
|
31483
31373
|
hints: [
|
|
@@ -31492,7 +31382,7 @@ function ConfigurationScreen({ onDone }) {
|
|
|
31492
31382
|
|
|
31493
31383
|
// packages/experience-design-system-cli/src/tui/settings/opt-in-analytics/screen.tsx
|
|
31494
31384
|
import { useEffect as useEffect34, useState as useState37 } from "react";
|
|
31495
|
-
import { Box as
|
|
31385
|
+
import { Box as Box52, Text as Text54, useInput as useInput18 } from "ink";
|
|
31496
31386
|
|
|
31497
31387
|
// packages/experience-design-system-cli/src/tui/settings/opt-in-analytics/analytics-store.ts
|
|
31498
31388
|
async function readAnalyticsSetting() {
|
|
@@ -31511,7 +31401,7 @@ async function writeAnalyticsSetting(setting) {
|
|
|
31511
31401
|
|
|
31512
31402
|
// packages/experience-design-system-cli/src/tui/settings/opt-in-analytics/screen.tsx
|
|
31513
31403
|
init_debug_store();
|
|
31514
|
-
import { Fragment as
|
|
31404
|
+
import { Fragment as Fragment20, jsx as jsx64, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
31515
31405
|
function OptInAnalyticsScreen({ onDone }) {
|
|
31516
31406
|
const [loading, setLoading] = useState37(true);
|
|
31517
31407
|
const [enabled, setEnabled] = useState37(true);
|
|
@@ -31542,21 +31432,21 @@ function OptInAnalyticsScreen({ onDone }) {
|
|
|
31542
31432
|
onDone();
|
|
31543
31433
|
}
|
|
31544
31434
|
});
|
|
31545
|
-
return /* @__PURE__ */
|
|
31546
|
-
/* @__PURE__ */
|
|
31547
|
-
/* @__PURE__ */
|
|
31548
|
-
loading ? /* @__PURE__ */
|
|
31549
|
-
/* @__PURE__ */
|
|
31435
|
+
return /* @__PURE__ */ jsxs52(Box52, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
31436
|
+
/* @__PURE__ */ jsx64(Text54, { bold: true, children: "Settings \u203A Opt-in Analytics" }),
|
|
31437
|
+
/* @__PURE__ */ jsx64(Text54, { children: " " }),
|
|
31438
|
+
loading ? /* @__PURE__ */ jsx64(Text54, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs52(Fragment20, { children: [
|
|
31439
|
+
/* @__PURE__ */ jsxs52(Text54, { children: [
|
|
31550
31440
|
"Share anonymous usage data:",
|
|
31551
31441
|
" ",
|
|
31552
|
-
/* @__PURE__ */
|
|
31442
|
+
/* @__PURE__ */ jsx64(Text54, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
|
|
31553
31443
|
] }),
|
|
31554
|
-
/* @__PURE__ */
|
|
31555
|
-
/* @__PURE__ */
|
|
31556
|
-
/* @__PURE__ */
|
|
31444
|
+
/* @__PURE__ */ jsx64(Text54, { children: " " }),
|
|
31445
|
+
/* @__PURE__ */ jsx64(Text54, { color: PALETTE.muted, children: "Shares which CLI commands are used and where imports succeed or fail." }),
|
|
31446
|
+
/* @__PURE__ */ jsx64(Text54, { color: PALETTE.muted, children: "Never includes source code, file paths, credentials, or authored content." })
|
|
31557
31447
|
] }),
|
|
31558
|
-
/* @__PURE__ */
|
|
31559
|
-
/* @__PURE__ */
|
|
31448
|
+
/* @__PURE__ */ jsx64(Text54, { children: " " }),
|
|
31449
|
+
/* @__PURE__ */ jsx64(
|
|
31560
31450
|
ControlHints,
|
|
31561
31451
|
{
|
|
31562
31452
|
hints: [
|
|
@@ -31570,10 +31460,10 @@ function OptInAnalyticsScreen({ onDone }) {
|
|
|
31570
31460
|
|
|
31571
31461
|
// packages/experience-design-system-cli/src/tui/settings/debug-mode/screen.tsx
|
|
31572
31462
|
import { useEffect as useEffect35, useRef as useRef22, useState as useState38 } from "react";
|
|
31573
|
-
import { Box as
|
|
31463
|
+
import { Box as Box53, Text as Text55, useInput as useInput19 } from "ink";
|
|
31574
31464
|
init_debug_mode_store();
|
|
31575
31465
|
init_debug_store();
|
|
31576
|
-
import { Fragment as
|
|
31466
|
+
import { Fragment as Fragment21, jsx as jsx65, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
31577
31467
|
var ROWS = ["enabled", "retentionDays"];
|
|
31578
31468
|
var snapshotOf2 = (setting) => ({
|
|
31579
31469
|
enabled: String(setting.enabled),
|
|
@@ -31654,25 +31544,25 @@ function DebugModeScreen({ onDone }) {
|
|
|
31654
31544
|
onDone();
|
|
31655
31545
|
}
|
|
31656
31546
|
});
|
|
31657
|
-
const marker = (row) => /* @__PURE__ */
|
|
31658
|
-
const label = (row, text) => /* @__PURE__ */
|
|
31659
|
-
return /* @__PURE__ */
|
|
31660
|
-
/* @__PURE__ */
|
|
31661
|
-
/* @__PURE__ */
|
|
31662
|
-
setting ? /* @__PURE__ */
|
|
31663
|
-
/* @__PURE__ */
|
|
31547
|
+
const marker = (row) => /* @__PURE__ */ jsx65(Text55, { color: focus === row ? PALETTE.accent : void 0, children: focus === row ? "\u276F" : " " });
|
|
31548
|
+
const label = (row, text) => /* @__PURE__ */ jsx65(Text55, { bold: focus === row, color: focus === row ? PALETTE.accent : PALETTE.muted, children: text });
|
|
31549
|
+
return /* @__PURE__ */ jsxs53(Box53, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
31550
|
+
/* @__PURE__ */ jsx65(Text55, { bold: true, children: "Settings \u203A Debug Mode" }),
|
|
31551
|
+
/* @__PURE__ */ jsx65(Text55, { children: " " }),
|
|
31552
|
+
setting ? /* @__PURE__ */ jsxs53(Fragment21, { children: [
|
|
31553
|
+
/* @__PURE__ */ jsxs53(Box53, { gap: 1, children: [
|
|
31664
31554
|
marker("enabled"),
|
|
31665
31555
|
label("enabled", "Debug logging:"),
|
|
31666
|
-
/* @__PURE__ */
|
|
31556
|
+
/* @__PURE__ */ jsx65(Text55, { bold: true, color: setting.enabled ? PALETTE.success : PALETTE.muted, children: setting.enabled ? "On" : "Off" })
|
|
31667
31557
|
] }),
|
|
31668
|
-
/* @__PURE__ */
|
|
31558
|
+
/* @__PURE__ */ jsxs53(Box53, { gap: 1, children: [
|
|
31669
31559
|
marker("retentionDays"),
|
|
31670
31560
|
label("retentionDays", "Delete logs after:"),
|
|
31671
31561
|
RETENTION_CHOICES.map((days) => {
|
|
31672
31562
|
const highlighted = focus === "retentionDays" && days === pending;
|
|
31673
31563
|
const saved = days === setting.retentionDays;
|
|
31674
|
-
return /* @__PURE__ */
|
|
31675
|
-
|
|
31564
|
+
return /* @__PURE__ */ jsx65(
|
|
31565
|
+
Text55,
|
|
31676
31566
|
{
|
|
31677
31567
|
bold: highlighted || saved,
|
|
31678
31568
|
underline: highlighted,
|
|
@@ -31683,15 +31573,15 @@ function DebugModeScreen({ onDone }) {
|
|
|
31683
31573
|
);
|
|
31684
31574
|
})
|
|
31685
31575
|
] }),
|
|
31686
|
-
/* @__PURE__ */
|
|
31687
|
-
notice ? /* @__PURE__ */
|
|
31576
|
+
/* @__PURE__ */ jsx65(Text55, { children: " " }),
|
|
31577
|
+
notice ? /* @__PURE__ */ jsxs53(Text55, { color: notice.kind === "success" ? PALETTE.success : PALETTE.error, children: [
|
|
31688
31578
|
notice.kind === "success" ? "\u2713" : "\u2717",
|
|
31689
31579
|
" ",
|
|
31690
31580
|
notice.text
|
|
31691
|
-
] }) : /* @__PURE__ */
|
|
31692
|
-
] }) : /* @__PURE__ */
|
|
31693
|
-
/* @__PURE__ */
|
|
31694
|
-
/* @__PURE__ */
|
|
31581
|
+
] }) : /* @__PURE__ */ jsx65(Text55, { color: PALETTE.muted, children: "\u2713 marks what is saved. Older logs are deleted the next time the CLI starts." })
|
|
31582
|
+
] }) : /* @__PURE__ */ jsx65(Text55, { color: PALETTE.muted, children: "Loading\u2026" }),
|
|
31583
|
+
/* @__PURE__ */ jsx65(Text55, { children: " " }),
|
|
31584
|
+
/* @__PURE__ */ jsx65(
|
|
31695
31585
|
ControlHints,
|
|
31696
31586
|
{
|
|
31697
31587
|
hints: [
|
|
@@ -31708,7 +31598,7 @@ function DebugModeScreen({ onDone }) {
|
|
|
31708
31598
|
}
|
|
31709
31599
|
|
|
31710
31600
|
// packages/experience-design-system-cli/app.tsx
|
|
31711
|
-
import { Fragment as
|
|
31601
|
+
import { Fragment as Fragment22, jsx as jsx66 } from "react/jsx-runtime";
|
|
31712
31602
|
var TOKENS_ONLY_HIDDEN_STEPS = ["extraction", "scope-gate"];
|
|
31713
31603
|
function App({ importOptions, inkClear }) {
|
|
31714
31604
|
const [screen, setScreen] = useState39("start");
|
|
@@ -31910,9 +31800,9 @@ function App({ importOptions, inkClear }) {
|
|
|
31910
31800
|
const content = (() => {
|
|
31911
31801
|
switch (screen) {
|
|
31912
31802
|
case "import":
|
|
31913
|
-
if (showImportResult) return /* @__PURE__ */
|
|
31803
|
+
if (showImportResult) return /* @__PURE__ */ jsx66(ImportScreen, { exitCode: importExitCode, onDone: finishImportResult });
|
|
31914
31804
|
if (flow && flowStart) {
|
|
31915
|
-
return /* @__PURE__ */
|
|
31805
|
+
return /* @__PURE__ */ jsx66(
|
|
31916
31806
|
FlowScreen,
|
|
31917
31807
|
{
|
|
31918
31808
|
state: flow.state,
|
|
@@ -31923,7 +31813,7 @@ function App({ importOptions, inkClear }) {
|
|
|
31923
31813
|
);
|
|
31924
31814
|
}
|
|
31925
31815
|
if (tokenReview) {
|
|
31926
|
-
return /* @__PURE__ */
|
|
31816
|
+
return /* @__PURE__ */ jsx66(
|
|
31927
31817
|
TokenReviewScreen,
|
|
31928
31818
|
{
|
|
31929
31819
|
tokensPath: tokenReview.tokensPath,
|
|
@@ -31932,15 +31822,15 @@ function App({ importOptions, inkClear }) {
|
|
|
31932
31822
|
}
|
|
31933
31823
|
);
|
|
31934
31824
|
}
|
|
31935
|
-
if (importDefaults === void 0) return /* @__PURE__ */
|
|
31825
|
+
if (importDefaults === void 0) return /* @__PURE__ */ jsx66(Fragment22, {});
|
|
31936
31826
|
if (target === void 0) {
|
|
31937
|
-
return /* @__PURE__ */
|
|
31827
|
+
return /* @__PURE__ */ jsx66(PreflightScreen, { onChoose: setTarget, onQuit: leaveImport });
|
|
31938
31828
|
}
|
|
31939
31829
|
const inputStep = currentInputStep(target, answers);
|
|
31940
31830
|
if (!extractionRun && !tokensOnlyRun && inputStep !== "credentials") {
|
|
31941
31831
|
switch (inputStep) {
|
|
31942
31832
|
case "project":
|
|
31943
|
-
return /* @__PURE__ */
|
|
31833
|
+
return /* @__PURE__ */ jsx66(
|
|
31944
31834
|
WelcomeScreen,
|
|
31945
31835
|
{
|
|
31946
31836
|
mode: target,
|
|
@@ -31950,7 +31840,7 @@ function App({ importOptions, inkClear }) {
|
|
|
31950
31840
|
}
|
|
31951
31841
|
);
|
|
31952
31842
|
case "token-file":
|
|
31953
|
-
return /* @__PURE__ */
|
|
31843
|
+
return /* @__PURE__ */ jsx66(
|
|
31954
31844
|
TokenInputScreen,
|
|
31955
31845
|
{
|
|
31956
31846
|
mode: target,
|
|
@@ -31960,7 +31850,7 @@ function App({ importOptions, inkClear }) {
|
|
|
31960
31850
|
}
|
|
31961
31851
|
);
|
|
31962
31852
|
case "path-validation":
|
|
31963
|
-
return /* @__PURE__ */
|
|
31853
|
+
return /* @__PURE__ */ jsx66(
|
|
31964
31854
|
PathValidationScreen,
|
|
31965
31855
|
{
|
|
31966
31856
|
mode: target,
|
|
@@ -31975,9 +31865,9 @@ function App({ importOptions, inkClear }) {
|
|
|
31975
31865
|
}
|
|
31976
31866
|
if (tokensOnlyRun) {
|
|
31977
31867
|
if (tokensOnly?.status === "done" && !tokensOnly.result.ok) {
|
|
31978
|
-
return /* @__PURE__ */
|
|
31868
|
+
return /* @__PURE__ */ jsx66(ErrorStep, { stepName: tokensOnly.result.step, message: tokensOnly.result.message, onExit: leaveImport });
|
|
31979
31869
|
}
|
|
31980
|
-
return /* @__PURE__ */
|
|
31870
|
+
return /* @__PURE__ */ jsx66(
|
|
31981
31871
|
RunningStep,
|
|
31982
31872
|
{
|
|
31983
31873
|
step: "generation",
|
|
@@ -31988,10 +31878,10 @@ function App({ importOptions, inkClear }) {
|
|
|
31988
31878
|
}
|
|
31989
31879
|
if (extractionRun) {
|
|
31990
31880
|
if (extraction?.status === "done" && !extraction.result.ok) {
|
|
31991
|
-
return /* @__PURE__ */
|
|
31881
|
+
return /* @__PURE__ */ jsx66(ErrorStep, { stepName: extraction.result.step, message: extraction.result.message, onExit: leaveImport });
|
|
31992
31882
|
}
|
|
31993
31883
|
if (extraction?.status === "running") {
|
|
31994
|
-
return /* @__PURE__ */
|
|
31884
|
+
return /* @__PURE__ */ jsx66(
|
|
31995
31885
|
ExtractionScreen,
|
|
31996
31886
|
{
|
|
31997
31887
|
progress: extraction.progress,
|
|
@@ -32000,14 +31890,14 @@ function App({ importOptions, inkClear }) {
|
|
|
32000
31890
|
}
|
|
32001
31891
|
);
|
|
32002
31892
|
}
|
|
32003
|
-
return /* @__PURE__ */
|
|
31893
|
+
return /* @__PURE__ */ jsx66(Fragment22, {});
|
|
32004
31894
|
}
|
|
32005
31895
|
if (scopeRun && scopeFlow) {
|
|
32006
31896
|
if (scopeFlow.status === "failed") {
|
|
32007
|
-
return /* @__PURE__ */
|
|
31897
|
+
return /* @__PURE__ */ jsx66(ErrorStep, { stepName: "scope gate", message: scopeFlow.message, onExit: leaveImport });
|
|
32008
31898
|
}
|
|
32009
31899
|
if (scopeFlow.status === "deciding") {
|
|
32010
|
-
return /* @__PURE__ */
|
|
31900
|
+
return /* @__PURE__ */ jsx66(
|
|
32011
31901
|
ScopeGateScreen,
|
|
32012
31902
|
{
|
|
32013
31903
|
components: scopeFlow.load.components,
|
|
@@ -32018,10 +31908,10 @@ function App({ importOptions, inkClear }) {
|
|
|
32018
31908
|
);
|
|
32019
31909
|
}
|
|
32020
31910
|
if (generation?.status === "done" && !generation.result.ok) {
|
|
32021
|
-
return /* @__PURE__ */
|
|
31911
|
+
return /* @__PURE__ */ jsx66(ErrorStep, { stepName: generation.result.step, message: generation.result.message, onExit: leaveImport });
|
|
32022
31912
|
}
|
|
32023
31913
|
if (generation?.status === "running") {
|
|
32024
|
-
return /* @__PURE__ */
|
|
31914
|
+
return /* @__PURE__ */ jsx66(
|
|
32025
31915
|
GenerationScreen,
|
|
32026
31916
|
{
|
|
32027
31917
|
progress: generation.progress,
|
|
@@ -32032,9 +31922,9 @@ function App({ importOptions, inkClear }) {
|
|
|
32032
31922
|
}
|
|
32033
31923
|
);
|
|
32034
31924
|
}
|
|
32035
|
-
return /* @__PURE__ */
|
|
31925
|
+
return /* @__PURE__ */ jsx66(Fragment22, {});
|
|
32036
31926
|
}
|
|
32037
|
-
return /* @__PURE__ */
|
|
31927
|
+
return /* @__PURE__ */ jsx66(
|
|
32038
31928
|
CredentialsScreen,
|
|
32039
31929
|
{
|
|
32040
31930
|
mode: target,
|
|
@@ -32045,27 +31935,27 @@ function App({ importOptions, inkClear }) {
|
|
|
32045
31935
|
}
|
|
32046
31936
|
);
|
|
32047
31937
|
case "help":
|
|
32048
|
-
return /* @__PURE__ */
|
|
31938
|
+
return /* @__PURE__ */ jsx66(HelpScreen, { onDone: goToStart });
|
|
32049
31939
|
case "settings":
|
|
32050
|
-
return /* @__PURE__ */
|
|
31940
|
+
return /* @__PURE__ */ jsx66(SettingsScreen, { onNavigate: setScreen, onBack: goToStart });
|
|
32051
31941
|
case "settings-configuration":
|
|
32052
|
-
return /* @__PURE__ */
|
|
31942
|
+
return /* @__PURE__ */ jsx66(ConfigurationScreen, { onDone: goToSettings });
|
|
32053
31943
|
case "settings-opt-in-analytics":
|
|
32054
|
-
return /* @__PURE__ */
|
|
31944
|
+
return /* @__PURE__ */ jsx66(OptInAnalyticsScreen, { onDone: goToSettings });
|
|
32055
31945
|
case "settings-debug-mode":
|
|
32056
|
-
return /* @__PURE__ */
|
|
31946
|
+
return /* @__PURE__ */ jsx66(DebugModeScreen, { onDone: goToSettings });
|
|
32057
31947
|
case "start":
|
|
32058
|
-
return /* @__PURE__ */
|
|
31948
|
+
return /* @__PURE__ */ jsx66(HomeScreen, { onNavigate: setScreen });
|
|
32059
31949
|
}
|
|
32060
31950
|
})();
|
|
32061
|
-
return /* @__PURE__ */
|
|
31951
|
+
return /* @__PURE__ */ jsx66(HiddenStepsContext.Provider, { value: target === "tokens" ? TOKENS_ONLY_HIDDEN_STEPS : [], children: content });
|
|
32062
31952
|
}
|
|
32063
31953
|
async function runApp(renderApp, importOptions) {
|
|
32064
31954
|
const inkClear = () => {
|
|
32065
31955
|
instance.clear?.();
|
|
32066
31956
|
process.stdout.write("\x1B[H\x1B[0J");
|
|
32067
31957
|
};
|
|
32068
|
-
const instance = renderApp(/* @__PURE__ */
|
|
31958
|
+
const instance = renderApp(/* @__PURE__ */ jsx66(App, { importOptions, inkClear }));
|
|
32069
31959
|
await instance.waitUntilExit();
|
|
32070
31960
|
}
|
|
32071
31961
|
export {
|