@contentful/experience-design-system-cli 2.42.1-dev-build-62049584.0 → 2.42.1-dev-build-9c1908dc.0

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