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