@contentful/experience-design-system-cli 2.37.1-dev-build-d5797739.0 → 2.37.1-dev-build-1cd1ccfb.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/index.js CHANGED
@@ -1500,7 +1500,7 @@ async function runAgent(options) {
1500
1500
  promptLen: prompt.length,
1501
1501
  promptHead: prompt.slice(0, 500)
1502
1502
  });
1503
- return new Promise((resolve28) => {
1503
+ return new Promise((resolve27) => {
1504
1504
  const bedrockEnv = bedrock ? BEDROCK_ENV_BY_AGENT[agent] : void 0;
1505
1505
  const child = spawn(binary, args, {
1506
1506
  stdio: ["pipe", "pipe", "pipe"],
@@ -1549,7 +1549,7 @@ async function runAgent(options) {
1549
1549
  stderrLen: stderr.length,
1550
1550
  stderrTail: stderr.slice(-1e3)
1551
1551
  });
1552
- resolve28(result);
1552
+ resolve27(result);
1553
1553
  });
1554
1554
  });
1555
1555
  }
@@ -1571,7 +1571,7 @@ async function checkAgentAuth(agent) {
1571
1571
  return "not-found";
1572
1572
  if (agent !== "claude")
1573
1573
  return "ok";
1574
- return new Promise((resolve28) => {
1574
+ return new Promise((resolve27) => {
1575
1575
  const child = spawn2(binary, ["auth", "status", "--json"], { stdio: ["ignore", "pipe", "pipe"] });
1576
1576
  let stdout = "";
1577
1577
  let done = false;
@@ -1580,7 +1580,7 @@ async function checkAgentAuth(agent) {
1580
1580
  return;
1581
1581
  done = true;
1582
1582
  child.kill("SIGTERM");
1583
- resolve28("unauthenticated");
1583
+ resolve27("unauthenticated");
1584
1584
  }, 5e3);
1585
1585
  child.stdout?.on("data", (chunk) => {
1586
1586
  stdout += chunk.toString();
@@ -1591,14 +1591,14 @@ async function checkAgentAuth(agent) {
1591
1591
  done = true;
1592
1592
  clearTimeout(timer);
1593
1593
  if (code !== 0) {
1594
- resolve28("unauthenticated");
1594
+ resolve27("unauthenticated");
1595
1595
  return;
1596
1596
  }
1597
1597
  try {
1598
1598
  const status = JSON.parse(stdout);
1599
- resolve28(status.loggedIn ? "ok" : "unauthenticated");
1599
+ resolve27(status.loggedIn ? "ok" : "unauthenticated");
1600
1600
  } catch {
1601
- resolve28("unauthenticated");
1601
+ resolve27("unauthenticated");
1602
1602
  }
1603
1603
  });
1604
1604
  });
@@ -1608,9 +1608,9 @@ async function binaryIsOnPath(binary) {
1608
1608
  const fs = await import("node:fs/promises");
1609
1609
  return fs.access(binary).then(() => true, () => false);
1610
1610
  }
1611
- return new Promise((resolve28) => {
1611
+ return new Promise((resolve27) => {
1612
1612
  const child = spawn2(process.platform === "win32" ? "where" : "which", [binary], { stdio: "ignore" });
1613
- child.on("close", (code) => resolve28(code === 0));
1613
+ child.on("close", (code) => resolve27(code === 0));
1614
1614
  });
1615
1615
  }
1616
1616
  var init_check_agent_auth = __esm({
@@ -14333,7 +14333,7 @@ function errorMessage(error) {
14333
14333
  return error instanceof Error && error.message ? error.message : String(error);
14334
14334
  }
14335
14335
  function defaultSleep(delayMs) {
14336
- return new Promise((resolve28) => setTimeout(resolve28, delayMs));
14336
+ return new Promise((resolve27) => setTimeout(resolve27, delayMs));
14337
14337
  }
14338
14338
  var MAX_RETRY_AFTER_MS;
14339
14339
  var init_http_utils = __esm({
@@ -14609,7 +14609,7 @@ var init_api_client = __esm({
14609
14609
  const progress = maxAttempts > 1 ? attempt / (maxAttempts - 1) : 0;
14610
14610
  const baseDelay = intervalMs + (maxIntervalMs - intervalMs) * progress;
14611
14611
  const jitter = Math.random() * baseDelay * 0.15;
14612
- await new Promise((resolve28) => setTimeout(resolve28, baseDelay + jitter));
14612
+ await new Promise((resolve27) => setTimeout(resolve27, baseDelay + jitter));
14613
14613
  }
14614
14614
  }
14615
14615
  throw new Error(`Operation ${operationId} timed out after ${maxAttempts} attempts`);
@@ -18527,7 +18527,7 @@ async function retryDatabaseWrite(operation, attempts = 8) {
18527
18527
  const message = error instanceof Error ? error.message : String(error);
18528
18528
  if (!/database is locked|database is busy/i.test(message) || attempt >= attempts)
18529
18529
  throw error;
18530
- await new Promise((resolve28) => setTimeout(resolve28, Math.min(250 * attempt, 2e3)));
18530
+ await new Promise((resolve27) => setTimeout(resolve27, Math.min(250 * attempt, 2e3)));
18531
18531
  }
18532
18532
  }
18533
18533
  }
@@ -19586,6 +19586,48 @@ var init_analytics_store = __esm({
19586
19586
  }
19587
19587
  });
19588
19588
 
19589
+ // packages/experience-design-system-cli/src/tui/theme.ts
19590
+ function detectColorMode(env = process.env) {
19591
+ const bg = env.COLORFGBG?.split(";").pop();
19592
+ if (bg === "7" || bg === "15") return "light";
19593
+ return "dark";
19594
+ }
19595
+ var DARK, LIGHT, PALETTE;
19596
+ var init_theme = __esm({
19597
+ "packages/experience-design-system-cli/src/tui/theme.ts"() {
19598
+ "use strict";
19599
+ DARK = {
19600
+ text: "#f7f9fa",
19601
+ // gray/100
19602
+ muted: "#aec1cc",
19603
+ // gray/400
19604
+ border: "#aec1cc",
19605
+ // gray/400
19606
+ accent: "#40a0ff",
19607
+ // blue/400
19608
+ error: "#ff707d",
19609
+ // red/400
19610
+ success: "#00C459",
19611
+ warning: "#FFDA00"
19612
+ };
19613
+ LIGHT = {
19614
+ text: "#111b2b",
19615
+ // gray/900
19616
+ muted: "#5a657c",
19617
+ // gray/600
19618
+ border: "#5a657c",
19619
+ // gray/600
19620
+ accent: "#0059c8",
19621
+ // blue/600, semantic primary
19622
+ error: "#bd002a",
19623
+ // semantic negative
19624
+ success: "#00C459",
19625
+ warning: "#FFDA00"
19626
+ };
19627
+ PALETTE = detectColorMode() === "light" ? LIGHT : DARK;
19628
+ }
19629
+ });
19630
+
19589
19631
  // packages/experience-design-system-cli/src/tui/home/home.theme.ts
19590
19632
  function brandBar(width, ramp = BRAND_RAMP) {
19591
19633
  if (width <= 0 || ramp.length === 0) return [];
@@ -19596,28 +19638,12 @@ function brandBar(width, ramp = BRAND_RAMP) {
19596
19638
  color
19597
19639
  })).filter((segment) => segment.text.length > 0);
19598
19640
  }
19599
- var BRAND, PALETTE, BRAND_RAMP, BAR_CELL, FOCUS_MARKER;
19641
+ var BRAND_RAMP, BAR_CELL, FOCUS_MARKER;
19600
19642
  var init_home_theme = __esm({
19601
19643
  "packages/experience-design-system-cli/src/tui/home/home.theme.ts"() {
19602
19644
  "use strict";
19603
- BRAND = {
19604
- blue: "#1773EB",
19605
- green: "#00C459",
19606
- orange: "#E44F20",
19607
- yellow: "#FFDA00",
19608
- white: "#FFFFFF",
19609
- slate: "#8B8D91",
19610
- steel: "#C4D1DE"
19611
- };
19612
- PALETTE = {
19613
- accent: BRAND.blue,
19614
- success: BRAND.green,
19615
- error: BRAND.orange,
19616
- warning: BRAND.yellow,
19617
- muted: BRAND.slate,
19618
- border: BRAND.steel
19619
- };
19620
- BRAND_RAMP = [BRAND.blue, BRAND.orange, BRAND.yellow];
19645
+ init_theme();
19646
+ BRAND_RAMP = [PALETTE.accent, PALETTE.error, PALETTE.warning];
19621
19647
  BAR_CELL = "\u2501";
19622
19648
  FOCUS_MARKER = "\u276F";
19623
19649
  }
@@ -19799,6 +19825,7 @@ var VERSION, HEADING, SUBTITLE, MIN_TERMINAL_WIDTH, START_ITEMS;
19799
19825
  var init_home = __esm({
19800
19826
  "packages/experience-design-system-cli/src/tui/home/home.tsx"() {
19801
19827
  "use strict";
19828
+ init_theme();
19802
19829
  init_home_theme();
19803
19830
  init_version();
19804
19831
  init_use_terminal_width();
@@ -19839,7 +19866,7 @@ function ImportScreen({ exitCode, onDone }) {
19839
19866
  var init_PageContainer = __esm({
19840
19867
  "packages/experience-design-system-cli/src/tui/import/PageContainer.tsx"() {
19841
19868
  "use strict";
19842
- init_home_theme();
19869
+ init_theme();
19843
19870
  }
19844
19871
  });
19845
19872
 
@@ -19919,7 +19946,7 @@ var RULE, OVERVIEW;
19919
19946
  var init_screen = __esm({
19920
19947
  "packages/experience-design-system-cli/src/tui/import/steps/01-welcome/screen.tsx"() {
19921
19948
  "use strict";
19922
- init_home_theme();
19949
+ init_theme();
19923
19950
  init_controls();
19924
19951
  init_logic();
19925
19952
  RULE = "\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500";
@@ -20068,7 +20095,7 @@ function TokenInputScreen({ onConfirm, onBack, initialPath = "" }) {
20068
20095
  var init_screen2 = __esm({
20069
20096
  "packages/experience-design-system-cli/src/tui/import/steps/02-token-input/screen.tsx"() {
20070
20097
  "use strict";
20071
- init_home_theme();
20098
+ init_theme();
20072
20099
  init_controls2();
20073
20100
  init_logic2();
20074
20101
  init_validate_path();
@@ -20289,7 +20316,7 @@ function PathValidationScreen({
20289
20316
  var init_screen3 = __esm({
20290
20317
  "packages/experience-design-system-cli/src/tui/import/steps/03-path-validation/screen.tsx"() {
20291
20318
  "use strict";
20292
- init_home_theme();
20319
+ init_theme();
20293
20320
  init_resolve_user_path();
20294
20321
  init_controls3();
20295
20322
  init_scan_files();
@@ -20498,7 +20525,7 @@ var LABELS;
20498
20525
  var init_screen4 = __esm({
20499
20526
  "packages/experience-design-system-cli/src/tui/import/steps/04-credentials/screen.tsx"() {
20500
20527
  "use strict";
20501
- init_home_theme();
20528
+ init_theme();
20502
20529
  init_controls4();
20503
20530
  init_src4();
20504
20531
  init_logic4();
@@ -20585,7 +20612,7 @@ function ErrorStep({
20585
20612
  var init_error_step = __esm({
20586
20613
  "packages/experience-design-system-cli/src/tui/import/shared/error-step/error-step.tsx"() {
20587
20614
  "use strict";
20588
- init_home_theme();
20615
+ init_theme();
20589
20616
  init_controls5();
20590
20617
  init_logic5();
20591
20618
  }
@@ -20665,7 +20692,7 @@ function GateStep({
20665
20692
  var init_gate_step = __esm({
20666
20693
  "packages/experience-design-system-cli/src/tui/import/shared/gate-step/gate-step.tsx"() {
20667
20694
  "use strict";
20668
- init_home_theme();
20695
+ init_theme();
20669
20696
  init_controls6();
20670
20697
  init_logic6();
20671
20698
  }
@@ -20693,7 +20720,7 @@ var init_logic7 = __esm({
20693
20720
  // packages/experience-design-system-cli/src/tui/import/shared/running-step/theme.ts
20694
20721
  import { defaultTheme, extendTheme } from "@inkjs/ui";
20695
20722
  var PROGRESS_THEME;
20696
- var init_theme = __esm({
20723
+ var init_theme2 = __esm({
20697
20724
  "packages/experience-design-system-cli/src/tui/import/shared/running-step/theme.ts"() {
20698
20725
  "use strict";
20699
20726
  PROGRESS_THEME = extendTheme(defaultTheme, {
@@ -20774,9 +20801,9 @@ var RULE2;
20774
20801
  var init_running_step = __esm({
20775
20802
  "packages/experience-design-system-cli/src/tui/import/shared/running-step/running-step.tsx"() {
20776
20803
  "use strict";
20777
- init_home_theme();
20778
- init_logic7();
20779
20804
  init_theme();
20805
+ init_logic7();
20806
+ init_theme2();
20780
20807
  init_use_elapsed();
20781
20808
  RULE2 = "\u2500".repeat(40);
20782
20809
  }
@@ -21323,10 +21350,10 @@ var init_use_extraction = __esm({
21323
21350
 
21324
21351
  // packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/theme.ts
21325
21352
  var PALETTE2;
21326
- var init_theme2 = __esm({
21353
+ var init_theme3 = __esm({
21327
21354
  "packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/theme.ts"() {
21328
21355
  "use strict";
21329
- init_home_theme();
21356
+ init_theme();
21330
21357
  PALETTE2 = {
21331
21358
  info: PALETTE.accent,
21332
21359
  success: PALETTE.success,
@@ -21438,7 +21465,7 @@ var TWO_COLUMN_MIN_WIDTH, SCOPE_GATE_MAIN_COLUMN_WIDTH, ACCEPTED_COMPONENTS_COLU
21438
21465
  var init_columns = __esm({
21439
21466
  "packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/columns.ts"() {
21440
21467
  "use strict";
21441
- init_theme2();
21468
+ init_theme3();
21442
21469
  TWO_COLUMN_MIN_WIDTH = 100;
21443
21470
  SCOPE_GATE_MAIN_COLUMN_WIDTH = 54;
21444
21471
  ACCEPTED_COMPONENTS_COLUMN_WIDTH = 36;
@@ -21518,7 +21545,7 @@ var MIN_TERMINAL_PANEL_HEIGHT;
21518
21545
  var init_windowed_panel = __esm({
21519
21546
  "packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/windowed-panel.tsx"() {
21520
21547
  "use strict";
21521
- init_theme2();
21548
+ init_theme3();
21522
21549
  MIN_TERMINAL_PANEL_HEIGHT = 5;
21523
21550
  }
21524
21551
  });
@@ -21569,7 +21596,7 @@ var init_added_column = __esm({
21569
21596
  "packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/panels/added-column.tsx"() {
21570
21597
  "use strict";
21571
21598
  init_columns();
21572
- init_theme2();
21599
+ init_theme3();
21573
21600
  init_windowed_panel();
21574
21601
  }
21575
21602
  });
@@ -21604,7 +21631,7 @@ function CyclesPanel({ cycles, cursor }) {
21604
21631
  var init_cycles_panel = __esm({
21605
21632
  "packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/panels/cycles-panel.tsx"() {
21606
21633
  "use strict";
21607
- init_theme2();
21634
+ init_theme3();
21608
21635
  }
21609
21636
  });
21610
21637
 
@@ -21622,7 +21649,7 @@ function RejectPrompt({ pending }) {
21622
21649
  var init_reject_prompt = __esm({
21623
21650
  "packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/panels/reject-prompt.tsx"() {
21624
21651
  "use strict";
21625
- init_theme2();
21652
+ init_theme3();
21626
21653
  }
21627
21654
  });
21628
21655
 
@@ -21638,7 +21665,7 @@ function legendEntry(keyBracket, label, active = false) {
21638
21665
  var init_LegendEntry = __esm({
21639
21666
  "packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/LegendEntry.tsx"() {
21640
21667
  "use strict";
21641
- init_theme2();
21668
+ init_theme3();
21642
21669
  }
21643
21670
  });
21644
21671
 
@@ -21659,7 +21686,7 @@ function CompactControlBar({ hasGroupRoots, searchActive }) {
21659
21686
  var init_CompactControlBar = __esm({
21660
21687
  "packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/CompactControlBar.tsx"() {
21661
21688
  "use strict";
21662
- init_theme2();
21689
+ init_theme3();
21663
21690
  init_LegendEntry();
21664
21691
  }
21665
21692
  });
@@ -21698,7 +21725,7 @@ function CounterStrip(props) {
21698
21725
  var init_CounterStrip = __esm({
21699
21726
  "packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/CounterStrip.tsx"() {
21700
21727
  "use strict";
21701
- init_theme2();
21728
+ init_theme3();
21702
21729
  }
21703
21730
  });
21704
21731
 
@@ -21763,7 +21790,7 @@ var DEFAULT_MAX_ROWS;
21763
21790
  var init_GotoBanner = __esm({
21764
21791
  "packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/GotoBanner.tsx"() {
21765
21792
  "use strict";
21766
- init_theme2();
21793
+ init_theme3();
21767
21794
  DEFAULT_MAX_ROWS = 15;
21768
21795
  }
21769
21796
  });
@@ -22142,7 +22169,7 @@ function PreviewBadge({
22142
22169
  var init_badge = __esm({
22143
22170
  "packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/badge.tsx"() {
22144
22171
  "use strict";
22145
- init_theme2();
22172
+ init_theme3();
22146
22173
  }
22147
22174
  });
22148
22175
 
@@ -22637,7 +22664,7 @@ var init_GroupedSidebar = __esm({
22637
22664
  "use strict";
22638
22665
  init_composite_closure();
22639
22666
  init_badge();
22640
- init_theme2();
22667
+ init_theme3();
22641
22668
  init_windowed_panel();
22642
22669
  GLYPH_EXPAND_COLLAPSED = "\u25B8";
22643
22670
  GLYPH_EXPAND_EXPANDED = "\u25BE";
@@ -22932,7 +22959,7 @@ function SearchMatchSummary({
22932
22959
  var init_SearchMatchSummary = __esm({
22933
22960
  "packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/SearchMatchSummary.tsx"() {
22934
22961
  "use strict";
22935
- init_theme2();
22962
+ init_theme3();
22936
22963
  init_sidebar_input();
22937
22964
  }
22938
22965
  });
@@ -24300,7 +24327,7 @@ var init_screen7 = __esm({
24300
24327
  init_HelpOverlay();
24301
24328
  init_SearchMatchSummary();
24302
24329
  init_sidebar_help();
24303
- init_theme2();
24330
+ init_theme3();
24304
24331
  init_use_scope_gate();
24305
24332
  HELP_SECTIONS = [
24306
24333
  {
@@ -25188,24 +25215,6 @@ var init_screen9 = __esm({
25188
25215
  }
25189
25216
  });
25190
25217
 
25191
- // packages/experience-design-system-cli/src/tui/import/steps/09-review/theme.ts
25192
- var PALETTE3;
25193
- var init_theme3 = __esm({
25194
- "packages/experience-design-system-cli/src/tui/import/steps/09-review/theme.ts"() {
25195
- "use strict";
25196
- init_home_theme();
25197
- PALETTE3 = {
25198
- info: PALETTE.accent,
25199
- success: PALETTE.success,
25200
- error: PALETTE.error,
25201
- warning: PALETTE.warning,
25202
- muted: PALETTE.muted,
25203
- border: PALETTE.border,
25204
- inverse: "#FFFFFF"
25205
- };
25206
- }
25207
- });
25208
-
25209
25218
  // packages/experience-design-system-cli/src/tui/import/steps/09-review/review-json-panel.ts
25210
25219
  function getReviewJsonPanelValue(selected, showHiddenProps) {
25211
25220
  if (!selected) return "";
@@ -25697,13 +25706,13 @@ function serializeState(state2, originalJson) {
25697
25706
  }
25698
25707
  function Picker({ value, active }) {
25699
25708
  return /* @__PURE__ */ jsxs22(Box21, { children: [
25700
- active && /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.warning, children: "\u2039" }),
25701
- /* @__PURE__ */ jsx27(Text23, { color: active ? PALETTE3.warning : void 0, bold: active, children: value }),
25702
- active && /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.warning, children: "\u203A" })
25709
+ active && /* @__PURE__ */ jsx27(Text23, { color: PALETTE.warning, children: "\u2039" }),
25710
+ /* @__PURE__ */ jsx27(Text23, { color: active ? PALETTE.warning : void 0, bold: active, children: value }),
25711
+ active && /* @__PURE__ */ jsx27(Text23, { color: PALETTE.warning, children: "\u203A" })
25703
25712
  ] });
25704
25713
  }
25705
25714
  function Toggle({ value, active }) {
25706
- return /* @__PURE__ */ jsx27(Box21, { children: /* @__PURE__ */ jsx27(Text23, { color: active ? PALETTE3.warning : value ? PALETTE3.success : PALETTE3.border, children: value ? "[\u2713]" : "[ ]" }) });
25715
+ return /* @__PURE__ */ jsx27(Box21, { children: /* @__PURE__ */ jsx27(Text23, { color: active ? PALETTE.warning : value ? PALETTE.success : PALETTE.border, children: value ? "[\u2713]" : "[ ]" }) });
25707
25716
  }
25708
25717
  function InlinePropField({
25709
25718
  label,
@@ -25713,7 +25722,7 @@ function InlinePropField({
25713
25722
  width
25714
25723
  }) {
25715
25724
  return /* @__PURE__ */ jsxs22(Box21, { width, gap: 1, flexShrink: flexible ? 1 : 0, flexGrow: flexible ? 1 : 0, flexWrap: "wrap", children: [
25716
- /* @__PURE__ */ jsxs22(Text23, { color: focused ? PALETTE3.warning : PALETTE3.muted, bold: focused, wrap: "truncate-end", children: [
25725
+ /* @__PURE__ */ jsxs22(Text23, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, wrap: "truncate-end", children: [
25717
25726
  focused ? "\u203A " : " ",
25718
25727
  label
25719
25728
  ] }),
@@ -25734,7 +25743,7 @@ function DefaultValueRow({
25734
25743
  focused
25735
25744
  }) {
25736
25745
  return /* @__PURE__ */ jsxs22(Box21, { gap: 1, flexWrap: "wrap", flexShrink: 0, children: [
25737
- /* @__PURE__ */ jsxs22(Text23, { color: focused ? PALETTE3.warning : PALETTE3.muted, bold: focused, children: [
25746
+ /* @__PURE__ */ jsxs22(Text23, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
25738
25747
  focused ? "\u203A " : " ",
25739
25748
  "default:"
25740
25749
  ] }),
@@ -25749,7 +25758,7 @@ function RowLabel({
25749
25758
  return /* @__PURE__ */ jsxs22(
25750
25759
  Text23,
25751
25760
  {
25752
- color: selected ? PALETTE3.inverse : PALETTE3.info,
25761
+ color: selected ? PALETTE.text : PALETTE.accent,
25753
25762
  bold: selected,
25754
25763
  backgroundColor: selected ? "blue" : void 0,
25755
25764
  wrap: "truncate-end",
@@ -25767,7 +25776,7 @@ function ValueInputRow({
25767
25776
  cursorVisible
25768
25777
  }) {
25769
25778
  return /* @__PURE__ */ jsxs22(Box21, { paddingLeft: 2, children: [
25770
- /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.info, children: mode === "edit" ? "\u270E " : "+ " }),
25779
+ /* @__PURE__ */ jsx27(Text23, { color: PALETTE.accent, children: mode === "edit" ? "\u270E " : "+ " }),
25771
25780
  /* @__PURE__ */ jsx27(Text23, { children: valueText }),
25772
25781
  /* @__PURE__ */ jsx27(Text23, { inverse: cursorVisible, children: " " })
25773
25782
  ] });
@@ -25784,7 +25793,7 @@ function EditableListItem({
25784
25793
  if (isBeingEdited) {
25785
25794
  return /* @__PURE__ */ jsx27(ValueInputRow, { mode: "edit", valueText, cursorVisible });
25786
25795
  }
25787
- return /* @__PURE__ */ jsx27(Box21, { gap: 1, paddingLeft: 2, children: /* @__PURE__ */ jsx27(Text23, { color: active ? PALETTE3.info : void 0, children: active ? `${figures5.pointer} ${value}` : ` ${value}` }) });
25796
+ return /* @__PURE__ */ jsx27(Box21, { gap: 1, paddingLeft: 2, children: /* @__PURE__ */ jsx27(Text23, { color: active ? PALETTE.accent : void 0, children: active ? `${figures5.pointer} ${value}` : ` ${value}` }) });
25788
25797
  }
25789
25798
  function EditableValueList({
25790
25799
  values,
@@ -25798,7 +25807,7 @@ function EditableValueList({
25798
25807
  showAddInput
25799
25808
  }) {
25800
25809
  return /* @__PURE__ */ jsxs22(Fragment5, { children: [
25801
- values.length === 0 && !editingValue && (emptyPaddingLeft === void 0 ? /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.muted, children: emptyMessage }) : /* @__PURE__ */ jsx27(Box21, { paddingLeft: emptyPaddingLeft, children: /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.muted, children: emptyMessage }) })),
25810
+ values.length === 0 && !editingValue && (emptyPaddingLeft === void 0 ? /* @__PURE__ */ jsx27(Text23, { color: PALETTE.muted, children: emptyMessage }) : /* @__PURE__ */ jsx27(Box21, { paddingLeft: emptyPaddingLeft, children: /* @__PURE__ */ jsx27(Text23, { color: PALETTE.muted, children: emptyMessage }) })),
25802
25811
  values.map((value, index) => /* @__PURE__ */ jsx27(
25803
25812
  EditableListItem,
25804
25813
  {
@@ -25824,11 +25833,11 @@ function DefaultSubRow({
25824
25833
  const cursor = cursorVisible ? "\u2588" : " ";
25825
25834
  if (prop.type === "richtext" || prop.type === "media" || prop.type === "link") {
25826
25835
  return /* @__PURE__ */ jsxs22(Box21, { gap: 1, flexShrink: 0, children: [
25827
- /* @__PURE__ */ jsxs22(Text23, { color: focused ? PALETTE3.warning : PALETTE3.muted, bold: focused, children: [
25836
+ /* @__PURE__ */ jsxs22(Text23, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
25828
25837
  focused ? "\u203A " : " ",
25829
25838
  "default:"
25830
25839
  ] }),
25831
- /* @__PURE__ */ jsx27(Text23, { color: focused ? void 0 : PALETTE3.muted, children: "(not applicable)" })
25840
+ /* @__PURE__ */ jsx27(Text23, { color: focused ? void 0 : PALETTE.muted, children: "(not applicable)" })
25832
25841
  ] });
25833
25842
  }
25834
25843
  if (prop.type === "boolean") {
@@ -25838,11 +25847,11 @@ function DefaultSubRow({
25838
25847
  if (prop.type === "enum") {
25839
25848
  if (prop.values.length === 0) {
25840
25849
  return /* @__PURE__ */ jsxs22(Box21, { gap: 1, flexShrink: 0, children: [
25841
- /* @__PURE__ */ jsxs22(Text23, { color: focused ? PALETTE3.warning : PALETTE3.muted, bold: focused, children: [
25850
+ /* @__PURE__ */ jsxs22(Text23, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
25842
25851
  focused ? "\u203A " : " ",
25843
25852
  "default:"
25844
25853
  ] }),
25845
- /* @__PURE__ */ jsx27(Text23, { color: focused ? void 0 : PALETTE3.muted, children: "(no values defined)" })
25854
+ /* @__PURE__ */ jsx27(Text23, { color: focused ? void 0 : PALETTE.muted, children: "(no values defined)" })
25846
25855
  ] });
25847
25856
  }
25848
25857
  const display = typeof prop.default === "string" && prop.default !== "" ? prop.default : "(unset)";
@@ -25851,11 +25860,11 @@ function DefaultSubRow({
25851
25860
  const value = typeof prop.default === "string" ? prop.default : "";
25852
25861
  if (active) {
25853
25862
  return /* @__PURE__ */ jsxs22(Box21, { flexDirection: "row", flexShrink: 0, children: [
25854
- /* @__PURE__ */ jsxs22(Text23, { color: focused ? PALETTE3.warning : PALETTE3.muted, bold: focused, children: [
25863
+ /* @__PURE__ */ jsxs22(Text23, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
25855
25864
  focused ? "\u203A " : " ",
25856
25865
  "default:"
25857
25866
  ] }),
25858
- /* @__PURE__ */ jsxs22(Box21, { flexGrow: 1, borderStyle: "round", borderColor: PALETTE3.warning, paddingX: 1, children: [
25867
+ /* @__PURE__ */ jsxs22(Box21, { flexGrow: 1, borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, children: [
25859
25868
  /* @__PURE__ */ jsx27(Text23, { children: value.slice(0, textCursor) }),
25860
25869
  /* @__PURE__ */ jsx27(Text23, { inverse: cursorVisible, children: value[textCursor] ?? cursor }),
25861
25870
  /* @__PURE__ */ jsx27(Text23, { children: value.slice(textCursor + 1) })
@@ -25863,11 +25872,11 @@ function DefaultSubRow({
25863
25872
  ] });
25864
25873
  }
25865
25874
  return /* @__PURE__ */ jsxs22(Box21, { gap: 1, flexShrink: 0, children: [
25866
- /* @__PURE__ */ jsxs22(Text23, { color: focused ? PALETTE3.warning : PALETTE3.muted, bold: focused, children: [
25875
+ /* @__PURE__ */ jsxs22(Text23, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
25867
25876
  focused ? "\u203A " : " ",
25868
25877
  "default:"
25869
25878
  ] }),
25870
- /* @__PURE__ */ jsx27(Text23, { color: focused || value ? void 0 : PALETTE3.muted, children: value || "(none)" })
25879
+ /* @__PURE__ */ jsx27(Text23, { color: focused || value ? void 0 : PALETTE.muted, children: value || "(none)" })
25871
25880
  ] });
25872
25881
  }
25873
25882
  function DescriptionField({
@@ -25883,15 +25892,15 @@ function DescriptionField({
25883
25892
  }) {
25884
25893
  if (compact) {
25885
25894
  return /* @__PURE__ */ jsxs22(Box21, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: [
25886
- /* @__PURE__ */ jsxs22(Text23, { color: focused ? PALETTE3.warning : PALETTE3.muted, bold: focused, children: [
25895
+ /* @__PURE__ */ jsxs22(Text23, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
25887
25896
  focused ? "\u203A " : " ",
25888
25897
  label
25889
25898
  ] }),
25890
- /* @__PURE__ */ jsx27(Text23, { wrap: "truncate-end", color: value ? void 0 : PALETTE3.muted, children: value || "\u2014" })
25899
+ /* @__PURE__ */ jsx27(Text23, { wrap: "truncate-end", color: value ? void 0 : PALETTE.muted, children: value || "\u2014" })
25891
25900
  ] });
25892
25901
  }
25893
25902
  return /* @__PURE__ */ jsxs22(Box21, { paddingLeft, flexDirection: "column", width, flexShrink: 0, children: [
25894
- /* @__PURE__ */ jsxs22(Text23, { color: focused ? PALETTE3.warning : PALETTE3.muted, bold: focused, children: [
25903
+ /* @__PURE__ */ jsxs22(Text23, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
25895
25904
  focused ? "\u203A " : " ",
25896
25905
  label
25897
25906
  ] }),
@@ -25955,7 +25964,7 @@ function PropRow({
25955
25964
  ] }),
25956
25965
  prop.type === "token" && /* @__PURE__ */ jsx27(InlinePropField, { label: "kind:", focused: activeField === "tokenKind", width, children: editingField && activeField === "tokenKind" ? /* @__PURE__ */ jsx27(Picker, { value: prop.tokenKind || DESIGN_TOKEN_TYPES2[0], active: true }) : /* @__PURE__ */ jsx27(Text23, { wrap: "wrap", children: prop.tokenKind || "\u2014" }) }),
25957
25966
  prop.type === "enum" && /* @__PURE__ */ jsxs22(Box21, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: [
25958
- /* @__PURE__ */ jsxs22(Text23, { color: activeField === "values" ? PALETTE3.warning : PALETTE3.muted, bold: activeField === "values", children: [
25967
+ /* @__PURE__ */ jsxs22(Text23, { color: activeField === "values" ? PALETTE.warning : PALETTE.muted, bold: activeField === "values", children: [
25959
25968
  activeField === "values" ? "\u203A " : " ",
25960
25969
  "values:"
25961
25970
  ] }),
@@ -25976,27 +25985,27 @@ function PropRow({
25976
25985
  }
25977
25986
  ),
25978
25987
  prop.type === "token" && prop.category === "design" && /* @__PURE__ */ jsxs22(Box21, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: [
25979
- /* @__PURE__ */ jsxs22(Text23, { color: activeField === "allowed" ? PALETTE3.warning : PALETTE3.muted, bold: activeField === "allowed", children: [
25988
+ /* @__PURE__ */ jsxs22(Text23, { color: activeField === "allowed" ? PALETTE.warning : PALETTE.muted, bold: activeField === "allowed", children: [
25980
25989
  activeField === "allowed" ? "\u203A " : " ",
25981
25990
  "allowed:"
25982
25991
  ] }),
25983
- editingField && activeField === "allowed" ? /* @__PURE__ */ jsx27(Box21, { width: Math.max(1, width - 4), borderStyle: "round", borderColor: PALETTE3.warning, paddingX: 1, children: /* @__PURE__ */ jsx27(Text23, { children: "press [t] to edit allowed tokens" }) }) : /* @__PURE__ */ jsx27(
25992
+ editingField && activeField === "allowed" ? /* @__PURE__ */ jsx27(Box21, { width: Math.max(1, width - 4), borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, children: /* @__PURE__ */ jsx27(Text23, { children: "press [t] to edit allowed tokens" }) }) : /* @__PURE__ */ jsx27(
25984
25993
  Text23,
25985
25994
  {
25986
- color: activeField !== "allowed" && prop.allowed.length === 0 ? PALETTE3.muted : void 0,
25995
+ color: activeField !== "allowed" && prop.allowed.length === 0 ? PALETTE.muted : void 0,
25987
25996
  wrap: "wrap",
25988
25997
  children: prop.allowed.length > 0 ? prop.allowed.join(", ") : "(any)"
25989
25998
  }
25990
25999
  )
25991
26000
  ] }),
25992
- selected && showRationale && rationale && rationale.trim().length > 0 && /* @__PURE__ */ jsx27(Box21, { paddingLeft: 2, children: /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.muted, children: (() => {
26001
+ selected && showRationale && rationale && rationale.trim().length > 0 && /* @__PURE__ */ jsx27(Box21, { paddingLeft: 2, children: /* @__PURE__ */ jsx27(Text23, { color: PALETTE.muted, children: (() => {
25993
26002
  const max = Math.max(8, width - 8);
25994
26003
  const text = `~ ${rationale}`;
25995
26004
  return text.length > max ? text.slice(0, max - 1) + "\u2026" : text;
25996
26005
  })() }) }, rowKey ? `rationale-${rowKey}` : void 0),
25997
26006
  selected && prop.type === "enum" && activeField === "values" && /* @__PURE__ */ jsxs22(Box21, { paddingLeft: 2, flexDirection: "column", children: [
25998
26007
  /* @__PURE__ */ jsxs22(Box21, { children: [
25999
- /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.muted, children: "values:" }),
26008
+ /* @__PURE__ */ jsx27(Text23, { color: PALETTE.muted, children: "values:" }),
26000
26009
  activeField === "values" && /* @__PURE__ */ jsx27(Text23, { children: " [a] add [e] edit [r] remove [\u2191\u2193] navigate [K/J] reorder" })
26001
26010
  ] }),
26002
26011
  /* @__PURE__ */ jsx27(
@@ -26057,7 +26066,7 @@ function SlotRow({
26057
26066
  /* @__PURE__ */ jsxs22(
26058
26067
  Text23,
26059
26068
  {
26060
- color: activeField === "allowedComponents" ? PALETTE3.warning : PALETTE3.muted,
26069
+ color: activeField === "allowedComponents" ? PALETTE.warning : PALETTE.muted,
26061
26070
  bold: activeField === "allowedComponents",
26062
26071
  children: [
26063
26072
  activeField === "allowedComponents" ? "\u203A " : " ",
@@ -26065,14 +26074,14 @@ function SlotRow({
26065
26074
  ]
26066
26075
  }
26067
26076
  ),
26068
- slot.allowedComponents.length === 0 ? /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.muted, children: "(any)" }) : /* @__PURE__ */ jsx27(Text23, { wrap: "wrap", children: slot.allowedComponents.join(", ") })
26077
+ slot.allowedComponents.length === 0 ? /* @__PURE__ */ jsx27(Text23, { color: PALETTE.muted, children: "(any)" }) : /* @__PURE__ */ jsx27(Text23, { wrap: "wrap", children: slot.allowedComponents.join(", ") })
26069
26078
  ] }),
26070
26079
  selected && editingField && activeField === "allowedComponents" && /* @__PURE__ */ jsxs22(Box21, { flexDirection: "column", children: [
26071
26080
  /* @__PURE__ */ jsxs22(Box21, { children: [
26072
26081
  /* @__PURE__ */ jsxs22(
26073
26082
  Text23,
26074
26083
  {
26075
- color: activeField === "allowedComponents" ? PALETTE3.warning : PALETTE3.muted,
26084
+ color: activeField === "allowedComponents" ? PALETTE.warning : PALETTE.muted,
26076
26085
  bold: activeField === "allowedComponents",
26077
26086
  children: [
26078
26087
  activeField === "allowedComponents" ? "\u203A " : " ",
@@ -26080,7 +26089,7 @@ function SlotRow({
26080
26089
  ]
26081
26090
  }
26082
26091
  ),
26083
- editingField && activeField === "allowedComponents" && /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.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" })
26092
+ editingField && activeField === "allowedComponents" && /* @__PURE__ */ jsx27(Text23, { 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" })
26084
26093
  ] }),
26085
26094
  /* @__PURE__ */ jsx27(
26086
26095
  EditableValueList,
@@ -26096,21 +26105,21 @@ function SlotRow({
26096
26105
  showAddInput: editingField && activeField === "allowedComponents"
26097
26106
  }
26098
26107
  ),
26099
- editingField && editingValue?.mode === "add" && activeField === "allowedComponents" && pickerCandidates !== null && /* @__PURE__ */ jsx27(Box21, { paddingLeft: 2, flexDirection: "column", children: pickerCandidates.length === 0 ? /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.muted, children: "(no valid components to add \u2014 all remaining candidates would create cycles)" }) : (() => {
26108
+ editingField && editingValue?.mode === "add" && activeField === "allowedComponents" && pickerCandidates !== null && /* @__PURE__ */ jsx27(Box21, { paddingLeft: 2, flexDirection: "column", children: pickerCandidates.length === 0 ? /* @__PURE__ */ jsx27(Text23, { color: PALETTE.muted, children: "(no valid components to add \u2014 all remaining candidates would create cycles)" }) : (() => {
26100
26109
  const filtered = valueText.length === 0 ? pickerCandidates : pickerCandidates.filter((n) => n.toLowerCase().includes(valueText.toLowerCase()));
26101
26110
  if (filtered.length === 0) {
26102
- return /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.muted, children: "(no candidates match \u2014 Enter to add as free text)" });
26111
+ return /* @__PURE__ */ jsx27(Text23, { color: PALETTE.muted, children: "(no candidates match \u2014 Enter to add as free text)" });
26103
26112
  }
26104
26113
  const cursor = pickerCursor % filtered.length;
26105
26114
  const MAX_VISIBLE = 5;
26106
26115
  const start = Math.max(0, Math.min(filtered.length - MAX_VISIBLE, cursor - 2));
26107
26116
  const slice = filtered.slice(start, start + MAX_VISIBLE);
26108
26117
  return /* @__PURE__ */ jsxs22(Box21, { flexDirection: "column", children: [
26109
- /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.muted, children: " candidates (\u2191\u2193 cycle, Enter to add):" }),
26118
+ /* @__PURE__ */ jsx27(Text23, { color: PALETTE.muted, children: " candidates (\u2191\u2193 cycle, Enter to add):" }),
26110
26119
  slice.map((name, i) => {
26111
26120
  const absIdx = start + i;
26112
26121
  const isCursor = absIdx === cursor;
26113
- return /* @__PURE__ */ jsx27(Text23, { color: isCursor ? PALETTE3.info : PALETTE3.muted, children: isCursor ? ` ${figures5.pointer} ${name}` : ` ${name}` }, name);
26122
+ return /* @__PURE__ */ jsx27(Text23, { color: isCursor ? PALETTE.accent : PALETTE.muted, children: isCursor ? ` ${figures5.pointer} ${name}` : ` ${name}` }, name);
26114
26123
  })
26115
26124
  ] });
26116
26125
  })() })
@@ -26938,18 +26947,18 @@ function FieldEditor({
26938
26947
  });
26939
26948
  const innerWidth = Math.max(1, width - 2);
26940
26949
  if (parseErr) {
26941
- return /* @__PURE__ */ jsxs22(Box21, { flexDirection: "column", width, borderStyle: "single", borderColor: PALETTE3.error, children: [
26942
- /* @__PURE__ */ jsx27(Text23, { bold: true, color: PALETTE3.error, children: "FIELD EDITOR \u2014 parse error" }),
26943
- /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.error, children: parseErr }),
26944
- /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.muted, children: "Cannot display structured editor. Fix the JSON first." })
26950
+ return /* @__PURE__ */ jsxs22(Box21, { flexDirection: "column", width, borderStyle: "single", borderColor: PALETTE.error, children: [
26951
+ /* @__PURE__ */ jsx27(Text23, { bold: true, color: PALETTE.error, children: "FIELD EDITOR \u2014 parse error" }),
26952
+ /* @__PURE__ */ jsx27(Text23, { color: PALETTE.error, children: parseErr }),
26953
+ /* @__PURE__ */ jsx27(Text23, { color: PALETTE.muted, children: "Cannot display structured editor. Fix the JSON first." })
26945
26954
  ] });
26946
26955
  }
26947
26956
  if (props.length === 0 && slots.length === 0) {
26948
- return /* @__PURE__ */ jsxs22(Box21, { flexDirection: "column", width, borderStyle: "single", borderColor: PALETTE3.warning, children: [
26949
- /* @__PURE__ */ jsx27(Text23, { bold: true, color: PALETTE3.warning, children: "FIELD EDITOR \u2014 no fields" }),
26950
- /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.warning, children: "\u26A0 No properties classified for this component. The LLM didn't find anything to classify." }),
26951
- /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.muted, children: "You can add fields manually below or reject this component." }),
26952
- /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.muted, children: "Enter to save \xB7 Esc to discard" })
26957
+ return /* @__PURE__ */ jsxs22(Box21, { flexDirection: "column", width, borderStyle: "single", borderColor: PALETTE.warning, children: [
26958
+ /* @__PURE__ */ jsx27(Text23, { bold: true, color: PALETTE.warning, children: "FIELD EDITOR \u2014 no fields" }),
26959
+ /* @__PURE__ */ jsx27(Text23, { color: PALETTE.warning, children: "\u26A0 No properties classified for this component. The LLM didn't find anything to classify." }),
26960
+ /* @__PURE__ */ jsx27(Text23, { color: PALETTE.muted, children: "You can add fields manually below or reject this component." }),
26961
+ /* @__PURE__ */ jsx27(Text23, { color: PALETTE.muted, children: "Enter to save \xB7 Esc to discard" })
26953
26962
  ] });
26954
26963
  }
26955
26964
  const hasEmptyProperties = props.length === 0 && slots.length === 0;
@@ -27078,7 +27087,7 @@ function FieldEditor({
27078
27087
  const renderRow = (row, index) => {
27079
27088
  const key = rowKey(row, index);
27080
27089
  if (row.kind === "header") {
27081
- return /* @__PURE__ */ jsx27(Box21, { flexDirection: "column", paddingTop: 1, children: /* @__PURE__ */ jsx27(Text23, { bold: true, color: PALETTE3.success, children: row.label }) }, key);
27090
+ return /* @__PURE__ */ jsx27(Box21, { flexDirection: "column", paddingTop: 1, children: /* @__PURE__ */ jsx27(Text23, { bold: true, color: PALETTE.success, children: row.label }) }, key);
27082
27091
  }
27083
27092
  if (row.kind === "component-description") {
27084
27093
  const isSelected2 = inComponentDesc && active;
@@ -27160,9 +27169,9 @@ function FieldEditor({
27160
27169
  ...fixedHeight ? { height } : { minHeight: height },
27161
27170
  clipOverflow: fixedHeight,
27162
27171
  borderStyle: "single",
27163
- borderColor: hasEmptyProperties ? PALETTE3.warning : active ? PALETTE3.info : PALETTE3.border,
27172
+ borderColor: hasEmptyProperties ? PALETTE.warning : active ? PALETTE.accent : PALETTE.border,
27164
27173
  children: [
27165
- hasEmptyProperties && /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.warning, children: "\u26A0 No properties classified for this component. The LLM didn't find anything to classify. Reject this component or add fields manually." }),
27174
+ hasEmptyProperties && /* @__PURE__ */ jsx27(Text23, { 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." }),
27166
27175
  header,
27167
27176
  /* @__PURE__ */ jsx27(Box21, { flexDirection: "column", width: innerWidth, flexShrink: 0, children: focusLevel === "field" && !inComponentDesc && currentProp ? /* @__PURE__ */ jsx27(
27168
27177
  PropRow,
@@ -27213,7 +27222,7 @@ function FieldEditor({
27213
27222
  `visible-${key}`
27214
27223
  );
27215
27224
  }) }),
27216
- categoryBelow && /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.success, bold: true, children: `(${categoryBelow} below)` }),
27225
+ categoryBelow && /* @__PURE__ */ jsx27(Text23, { color: PALETTE.success, bold: true, children: `(${categoryBelow} below)` }),
27217
27226
  sourceOpen && !onToggleSourceExternal && (() => {
27218
27227
  const propMeta = !inSlots && !inComponentDesc && currentProp ? metadata?.props?.[currentProp.name] : void 0;
27219
27228
  const start = propMeta?.sourceStartLine ?? null;
@@ -27223,20 +27232,20 @@ function FieldEditor({
27223
27232
  const headerPath = path5 ?? "<unknown source path>";
27224
27233
  if (!start || !end2 || !src) {
27225
27234
  return /* @__PURE__ */ jsxs22(Box21, { flexDirection: "column", borderStyle: "single", borderColor: "gray", paddingX: 1, children: [
27226
- /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.muted, bold: true, children: `source: ${headerPath}` }),
27227
- /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.muted, children: "(no source location captured for this prop)" }),
27235
+ /* @__PURE__ */ jsx27(Text23, { color: PALETTE.muted, bold: true, children: `source: ${headerPath}` }),
27236
+ /* @__PURE__ */ jsx27(Text23, { color: PALETTE.muted, children: "(no source location captured for this prop)" }),
27228
27237
  /* @__PURE__ */ jsx27(Text23, { children: "[s] close" })
27229
27238
  ] });
27230
27239
  }
27231
27240
  const lines = src.split("\n").slice(Math.max(0, start - 1), end2);
27232
27241
  return /* @__PURE__ */ jsxs22(Box21, { flexDirection: "column", borderStyle: "single", borderColor: "gray", paddingX: 1, children: [
27233
- /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.muted, bold: true, children: `${headerPath}: lines ${start}\u2013${end2}` }),
27234
- lines.map((ln, i) => /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.muted, children: ln }, `source-line-${i}`)),
27242
+ /* @__PURE__ */ jsx27(Text23, { color: PALETTE.muted, bold: true, children: `${headerPath}: lines ${start}\u2013${end2}` }),
27243
+ lines.map((ln, i) => /* @__PURE__ */ jsx27(Text23, { color: PALETTE.muted, children: ln }, `source-line-${i}`)),
27235
27244
  /* @__PURE__ */ jsx27(Text23, { children: "[s] close \xB7 [Esc] close" })
27236
27245
  ] });
27237
27246
  })(),
27238
- showHelp && /* @__PURE__ */ jsxs22(Box21, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE3.info, paddingX: 1, children: [
27239
- /* @__PURE__ */ jsx27(Text23, { bold: true, color: PALETTE3.info, children: "Keybindings" }),
27247
+ showHelp && /* @__PURE__ */ jsxs22(Box21, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.accent, paddingX: 1, children: [
27248
+ /* @__PURE__ */ jsx27(Text23, { bold: true, color: PALETTE.accent, children: "Keybindings" }),
27240
27249
  /* @__PURE__ */ jsx27(Text23, { children: " " }),
27241
27250
  /* @__PURE__ */ jsx27(Text23, { bold: true, children: "Row navigation" }),
27242
27251
  /* @__PURE__ */ jsx27(Text23, { children: " \u2191/\u2193 move between rows" }),
@@ -27261,10 +27270,10 @@ function FieldEditor({
27261
27270
  /* @__PURE__ */ jsx27(Text23, { children: " " + componentRationaleKey.padEnd(16) + " toggle component rationale panel" }),
27262
27271
  /* @__PURE__ */ jsx27(Text23, { children: " ? toggle this overlay" }),
27263
27272
  /* @__PURE__ */ jsx27(Text23, { children: " " }),
27264
- /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.muted, children: "press ? or Esc to close" })
27273
+ /* @__PURE__ */ jsx27(Text23, { color: PALETTE.muted, children: "press ? or Esc to close" })
27265
27274
  ] }),
27266
- validationError && /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.error, children: "\u2717 " + validationError }),
27267
- /* @__PURE__ */ jsx27(Box21, { paddingTop: 1, children: /* @__PURE__ */ jsx27(Text23, { color: PALETTE3.muted, children: modeLabel }) })
27275
+ validationError && /* @__PURE__ */ jsx27(Text23, { color: PALETTE.error, children: "\u2717 " + validationError }),
27276
+ /* @__PURE__ */ jsx27(Box21, { paddingTop: 1, children: /* @__PURE__ */ jsx27(Text23, { color: PALETTE.muted, children: modeLabel }) })
27268
27277
  ]
27269
27278
  }
27270
27279
  );
@@ -27273,7 +27282,7 @@ var SLOT_FIELDS;
27273
27282
  var init_FieldEditor = __esm({
27274
27283
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/components/FieldEditor.tsx"() {
27275
27284
  "use strict";
27276
- init_theme3();
27285
+ init_theme();
27277
27286
  init_src5();
27278
27287
  init_useImmediateInput();
27279
27288
  init_scroll_offset();
@@ -27328,21 +27337,21 @@ function RationaleLine({ line, active }) {
27328
27337
  return /* @__PURE__ */ jsx28(Box22, { children: /* @__PURE__ */ jsx28(Text24, { children: " " }) });
27329
27338
  }
27330
27339
  if (line.kind === "heading") {
27331
- return /* @__PURE__ */ jsx28(Box22, { children: /* @__PURE__ */ jsx28(Text24, { bold: true, color: active ? PALETTE3.info : PALETTE3.muted, children: line.text }) });
27340
+ return /* @__PURE__ */ jsx28(Box22, { children: /* @__PURE__ */ jsx28(Text24, { bold: true, color: active ? PALETTE.accent : PALETTE.muted, children: line.text }) });
27332
27341
  }
27333
27342
  if (line.kind === "label") {
27334
27343
  return /* @__PURE__ */ jsxs23(Box22, { children: [
27335
27344
  line.prefix && /* @__PURE__ */ jsx28(Text24, { children: line.prefix }),
27336
- /* @__PURE__ */ jsx28(Text24, { bold: true, color: active ? line.color : PALETTE3.muted, children: line.text }),
27337
- line.suffix && /* @__PURE__ */ jsx28(Text24, { color: PALETTE3.muted, children: line.suffix })
27345
+ /* @__PURE__ */ jsx28(Text24, { bold: true, color: active ? line.color : PALETTE.muted, children: line.text }),
27346
+ line.suffix && /* @__PURE__ */ jsx28(Text24, { color: PALETTE.muted, children: line.suffix })
27338
27347
  ] });
27339
27348
  }
27340
- return /* @__PURE__ */ jsx28(Box22, { children: /* @__PURE__ */ jsx28(Text24, { color: !active || line.dim ? PALETTE3.muted : void 0, children: line.text }) });
27349
+ return /* @__PURE__ */ jsx28(Box22, { children: /* @__PURE__ */ jsx28(Text24, { color: !active || line.dim ? PALETTE.muted : void 0, children: line.text }) });
27341
27350
  }
27342
27351
  var init_RationaleLine = __esm({
27343
27352
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/components/RationaleLine.tsx"() {
27344
27353
  "use strict";
27345
- init_theme3();
27354
+ init_theme();
27346
27355
  }
27347
27356
  });
27348
27357
 
@@ -27422,9 +27431,9 @@ function ComponentRationalePanel({
27422
27431
  width,
27423
27432
  height: height + 2,
27424
27433
  borderStyle: "single",
27425
- borderColor: active ? PALETTE3.inverse : void 0,
27434
+ borderColor: active ? PALETTE.text : void 0,
27426
27435
  children: [
27427
- /* @__PURE__ */ jsx29(Box23, { children: /* @__PURE__ */ jsx29(Text25, { bold: true, color: active ? void 0 : PALETTE3.muted, children: `Component rationale: ${data.name}` }) }),
27436
+ /* @__PURE__ */ jsx29(Box23, { children: /* @__PURE__ */ jsx29(Text25, { bold: true, color: active ? void 0 : PALETTE.muted, children: `Component rationale: ${data.name}` }) }),
27428
27437
  visible.map((line, i) => /* @__PURE__ */ jsx29(RationaleLine, { line, active }, i)),
27429
27438
  /* @__PURE__ */ jsx29(Box23, { children: overflowed ? /* @__PURE__ */ jsx29(Text25, { children: `${visibleStart}-${visibleEnd}/${totalLines} [\u2191\u2193] scroll [I/Esc] close` }) : /* @__PURE__ */ jsx29(Text25, { children: "[I/Esc] close" }) })
27430
27439
  ]
@@ -27435,7 +27444,7 @@ var PLACEHOLDER;
27435
27444
  var init_ComponentRationalePanel = __esm({
27436
27445
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ComponentRationalePanel.tsx"() {
27437
27446
  "use strict";
27438
- init_theme3();
27447
+ init_theme();
27439
27448
  init_wrap_text();
27440
27449
  init_RationaleLine();
27441
27450
  PLACEHOLDER = "(no rationale captured)";
@@ -27446,12 +27455,12 @@ var init_ComponentRationalePanel = __esm({
27446
27455
  import { Text as Text26 } from "ink";
27447
27456
  import { Fragment as Fragment6, jsx as jsx30 } from "react/jsx-runtime";
27448
27457
  function HighlightedLine({ parts }) {
27449
- return /* @__PURE__ */ jsx30(Fragment6, { children: parts.map((part, i) => /* @__PURE__ */ jsx30(Text26, { color: part.dim ? PALETTE3.muted : part.color, children: part.text }, i)) });
27458
+ return /* @__PURE__ */ jsx30(Fragment6, { children: parts.map((part, i) => /* @__PURE__ */ jsx30(Text26, { color: part.dim ? PALETTE.muted : part.color, children: part.text }, i)) });
27450
27459
  }
27451
27460
  var init_HighlightedLine = __esm({
27452
27461
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/components/HighlightedLine.tsx"() {
27453
27462
  "use strict";
27454
- init_theme3();
27463
+ init_theme();
27455
27464
  }
27456
27465
  });
27457
27466
 
@@ -27472,10 +27481,10 @@ function ScrollablePanel({
27472
27481
  const overflowed = totalLines > height;
27473
27482
  return /* @__PURE__ */ jsxs25(Box24, { flexDirection: "column", width, height: height + 2, borderStyle: "single", borderColor, children: [
27474
27483
  /* @__PURE__ */ jsxs25(Box24, { children: [
27475
- /* @__PURE__ */ jsx31(Text27, { bold: true, color: active ? void 0 : PALETTE3.muted, children: title }),
27484
+ /* @__PURE__ */ jsx31(Text27, { bold: true, color: active ? void 0 : PALETTE.muted, children: title }),
27476
27485
  overflowed && /* @__PURE__ */ jsxs25(Fragment7, { children: [
27477
27486
  /* @__PURE__ */ jsx31(Box24, { flexGrow: 1 }),
27478
- /* @__PURE__ */ jsx31(Text27, { color: active ? void 0 : PALETTE3.muted, children: `\u2195 ${visibleStart}-${visibleEnd}/${totalLines}` })
27487
+ /* @__PURE__ */ jsx31(Text27, { color: active ? void 0 : PALETTE.muted, children: `\u2195 ${visibleStart}-${visibleEnd}/${totalLines}` })
27479
27488
  ] })
27480
27489
  ] }),
27481
27490
  children
@@ -27484,7 +27493,7 @@ function ScrollablePanel({
27484
27493
  var init_ScrollablePanel = __esm({
27485
27494
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ScrollablePanel.tsx"() {
27486
27495
  "use strict";
27487
- init_theme3();
27496
+ init_theme();
27488
27497
  }
27489
27498
  });
27490
27499
 
@@ -27575,7 +27584,7 @@ function renderRationaleLines(rows, innerWidth) {
27575
27584
  out.push({
27576
27585
  kind: "label",
27577
27586
  text: row.name,
27578
- color: PALETTE3.info,
27587
+ color: PALETTE.accent,
27579
27588
  suffix: row.kind === "slot" ? " (slot)" : void 0
27580
27589
  });
27581
27590
  for (const line of wrapText(row.rationale, innerWidth)) {
@@ -27611,7 +27620,7 @@ function RationalePanel({
27611
27620
  totalLines,
27612
27621
  visibleStart,
27613
27622
  visibleEnd,
27614
- borderColor: active ? PALETTE3.inverse : void 0,
27623
+ borderColor: active ? PALETTE.text : void 0,
27615
27624
  children: visible.map((line, i) => /* @__PURE__ */ jsx33(RationaleLine, { line, active }, i))
27616
27625
  }
27617
27626
  );
@@ -27619,7 +27628,7 @@ function RationalePanel({
27619
27628
  var init_RationalePanel = __esm({
27620
27629
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/components/RationalePanel.tsx"() {
27621
27630
  "use strict";
27622
- init_theme3();
27631
+ init_theme();
27623
27632
  init_wrap_text();
27624
27633
  init_RationaleLine();
27625
27634
  init_ScrollablePanel();
@@ -27655,21 +27664,29 @@ function TokenReviewPanel({
27655
27664
  width,
27656
27665
  height: height + 2,
27657
27666
  borderStyle: "single",
27658
- borderColor: active ? PALETTE3.inverse : void 0,
27667
+ borderColor: active ? PALETTE.text : void 0,
27659
27668
  children: [
27660
- /* @__PURE__ */ jsx34(Text28, { bold: true, color: active ? void 0 : PALETTE3.muted, wrap: "truncate", children: `TOKEN REVIEW \u2014 ${componentName} \xB7 ${current.propName} (edit allowed)` }),
27661
- /* @__PURE__ */ jsx34(Text28, { color: PALETTE3.muted, wrap: "truncate", children: `select which tokens are allowed (${rangeLabel})` }),
27669
+ /* @__PURE__ */ jsx34(Text28, { bold: true, color: active ? void 0 : PALETTE.muted, wrap: "truncate", children: `TOKEN REVIEW \u2014 ${componentName} \xB7 ${current.propName} (edit allowed)` }),
27670
+ /* @__PURE__ */ jsx34(Text28, { color: PALETTE.muted, wrap: "truncate", children: `select which tokens are allowed (${rangeLabel})` }),
27662
27671
  /* @__PURE__ */ jsx34(Text28, { children: " " }),
27663
- current.paths.length === 0 && /* @__PURE__ */ jsx34(Text28, { color: PALETTE3.muted, children: "(no compatible tokens found for this token kind)" }),
27672
+ current.paths.length === 0 && /* @__PURE__ */ jsx34(Text28, { color: PALETTE.muted, children: "(no compatible tokens found for this token kind)" }),
27664
27673
  visiblePaths.map((path5, i) => {
27665
27674
  const pathIndex = scrollStart + i;
27666
27675
  const checked = editSelection.has(path5);
27667
27676
  const focused = pathIndex === editCursor;
27668
- return /* @__PURE__ */ jsx34(Box26, { children: /* @__PURE__ */ jsx34(Text28, { color: focused ? PALETTE3.info : active ? void 0 : PALETTE3.muted, bold: focused, wrap: "truncate", children: ` [${checked ? "x" : " "}] ${path5}` }) }, path5);
27677
+ return /* @__PURE__ */ jsx34(Box26, { children: /* @__PURE__ */ jsx34(
27678
+ Text28,
27679
+ {
27680
+ color: focused ? PALETTE.accent : active ? void 0 : PALETTE.muted,
27681
+ bold: focused,
27682
+ wrap: "truncate",
27683
+ children: ` [${checked ? "x" : " "}] ${path5}`
27684
+ }
27685
+ ) }, path5);
27669
27686
  }),
27670
27687
  /* @__PURE__ */ jsx34(Text28, { children: " " }),
27671
- /* @__PURE__ */ jsx34(Text28, { color: PALETTE3.muted, wrap: "truncate", children: "[\u2191/\u2193] move [Space] toggle" }),
27672
- /* @__PURE__ */ jsx34(Text28, { color: PALETTE3.muted, wrap: "truncate", children: "[Ctrl+S] save [Esc] cancel" })
27688
+ /* @__PURE__ */ jsx34(Text28, { color: PALETTE.muted, wrap: "truncate", children: "[\u2191/\u2193] move [Space] toggle" }),
27689
+ /* @__PURE__ */ jsx34(Text28, { color: PALETTE.muted, wrap: "truncate", children: "[Ctrl+S] save [Esc] cancel" })
27673
27690
  ]
27674
27691
  }
27675
27692
  );
@@ -27681,16 +27698,16 @@ function TokenReviewPanel({
27681
27698
  width,
27682
27699
  height: height + 2,
27683
27700
  borderStyle: "single",
27684
- borderColor: active ? PALETTE3.inverse : void 0,
27701
+ borderColor: active ? PALETTE.text : void 0,
27685
27702
  children: [
27686
- /* @__PURE__ */ jsx34(Text28, { bold: true, color: active ? void 0 : PALETTE3.muted, children: `TOKEN REVIEW \u2014 ${componentName}` }),
27687
- suggestions.length === 0 && /* @__PURE__ */ jsx34(Text28, { color: PALETTE3.muted, children: "(no token suggestions for this component)" }),
27703
+ /* @__PURE__ */ jsx34(Text28, { bold: true, color: active ? void 0 : PALETTE.muted, children: `TOKEN REVIEW \u2014 ${componentName}` }),
27704
+ suggestions.length === 0 && /* @__PURE__ */ jsx34(Text28, { color: PALETTE.muted, children: "(no token suggestions for this component)" }),
27688
27705
  suggestions.map((s, i) => {
27689
27706
  const focused = i === selectedRow;
27690
27707
  return /* @__PURE__ */ jsxs26(Box26, { flexDirection: "column", children: [
27691
- /* @__PURE__ */ jsx34(Box26, { children: /* @__PURE__ */ jsx34(Text28, { color: focused ? PALETTE3.info : active ? void 0 : PALETTE3.muted, bold: focused, children: `${focused ? figures6.pointer : " "} ${s.propName}` }) }),
27692
- /* @__PURE__ */ jsx34(Text28, { color: PALETTE3.muted, children: ` suggested: ${s.suggested.join(", ")}` }),
27693
- /* @__PURE__ */ jsx34(Text28, { color: PALETTE3.muted, children: ` allowed: ${s.allowed.join(", ")}` })
27708
+ /* @__PURE__ */ jsx34(Box26, { children: /* @__PURE__ */ jsx34(Text28, { color: focused ? PALETTE.accent : active ? void 0 : PALETTE.muted, bold: focused, children: `${focused ? figures6.pointer : " "} ${s.propName}` }) }),
27709
+ /* @__PURE__ */ jsx34(Text28, { color: PALETTE.muted, children: ` suggested: ${s.suggested.join(", ")}` }),
27710
+ /* @__PURE__ */ jsx34(Text28, { color: PALETTE.muted, children: ` allowed: ${s.allowed.join(", ")}` })
27694
27711
  ] }, s.propName);
27695
27712
  }),
27696
27713
  /* @__PURE__ */ jsx34(Text28, { children: " " }),
@@ -27702,7 +27719,7 @@ function TokenReviewPanel({
27702
27719
  var init_TokenReviewPanel = __esm({
27703
27720
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/components/TokenReviewPanel.tsx"() {
27704
27721
  "use strict";
27705
- init_theme3();
27722
+ init_theme();
27706
27723
  }
27707
27724
  });
27708
27725
 
@@ -27782,9 +27799,9 @@ function ReviewDetailsPanel({
27782
27799
  const sourceLineCount = Math.max(1, height - 4);
27783
27800
  const lines = source ? source.split("\n").slice(panelScrollOffset, panelScrollOffset + sourceLineCount) : [];
27784
27801
  return /* @__PURE__ */ jsxs27(FixedPanel, { width, height, borderStyle: "single", borderColor: sourceBorderColor, paddingLeft: 1, children: [
27785
- /* @__PURE__ */ jsx35(Text29, { color: PALETTE3.muted, bold: true, wrap: "truncate-end", children: `source: ${headerPath}` }),
27786
- source ? lines.map((line, index) => /* @__PURE__ */ jsx35(Text29, { color: PALETTE3.muted, wrap: "truncate-end", children: line }, `source-line-${index}`)) : /* @__PURE__ */ jsx35(Text29, { color: PALETTE3.muted, children: "(no source captured)" }),
27787
- /* @__PURE__ */ jsx35(Text29, { color: PALETTE3.muted, wrap: "truncate-end", children: "[s/Esc] close" })
27802
+ /* @__PURE__ */ jsx35(Text29, { color: PALETTE.muted, bold: true, wrap: "truncate-end", children: `source: ${headerPath}` }),
27803
+ source ? lines.map((line, index) => /* @__PURE__ */ jsx35(Text29, { color: PALETTE.muted, wrap: "truncate-end", children: line }, `source-line-${index}`)) : /* @__PURE__ */ jsx35(Text29, { color: PALETTE.muted, children: "(no source captured)" }),
27804
+ /* @__PURE__ */ jsx35(Text29, { color: PALETTE.muted, wrap: "truncate-end", children: "[s/Esc] close" })
27788
27805
  ] });
27789
27806
  }
27790
27807
  if (panelOpen === "token-review") {
@@ -27826,7 +27843,7 @@ var init_review_details_panel = __esm({
27826
27843
  init_RationalePanel();
27827
27844
  init_TokenReviewPanel();
27828
27845
  init_windowed_panel();
27829
- init_theme3();
27846
+ init_theme();
27830
27847
  }
27831
27848
  });
27832
27849
 
@@ -27953,17 +27970,17 @@ function ReviewEmptyComponentsWarning({
27953
27970
  hidden
27954
27971
  }) {
27955
27972
  if (hidden || count === 0) return null;
27956
- return /* @__PURE__ */ jsx37(Text30, { color: PALETTE3.warning, children: `\u26A0 ${count} component${count === 1 ? "" : "s"} had no classifiable props \u2014 review with care` });
27973
+ return /* @__PURE__ */ jsx37(Text30, { color: PALETTE.warning, children: `\u26A0 ${count} component${count === 1 ? "" : "s"} had no classifiable props \u2014 review with care` });
27957
27974
  }
27958
27975
  function ReviewNoSelection() {
27959
- return /* @__PURE__ */ jsx37(Box27, { flexGrow: 1, paddingLeft: 1, flexDirection: "column", children: /* @__PURE__ */ jsx37(Text30, { color: PALETTE3.muted, children: "No component selected" }) });
27976
+ return /* @__PURE__ */ jsx37(Box27, { flexGrow: 1, paddingLeft: 1, flexDirection: "column", children: /* @__PURE__ */ jsx37(Text30, { color: PALETTE.muted, children: "No component selected" }) });
27960
27977
  }
27961
27978
  function ReviewFinalizeError({
27962
27979
  message,
27963
27980
  hidden
27964
27981
  }) {
27965
27982
  if (hidden || !message) return null;
27966
- return /* @__PURE__ */ jsx37(Text30, { color: PALETTE3.error, children: `\u26A0 ${message}` });
27983
+ return /* @__PURE__ */ jsx37(Text30, { color: PALETTE.error, children: `\u26A0 ${message}` });
27967
27984
  }
27968
27985
  function ReviewPanelFooter({
27969
27986
  reviewEditor,
@@ -27987,7 +28004,7 @@ function ReviewComponentTitle({
27987
28004
  return /* @__PURE__ */ jsxs28(Box27, { paddingLeft: 2, paddingBottom: 1, children: [
27988
28005
  /* @__PURE__ */ jsx37(Text30, { bold: true, wrap: "truncate-end", children: selectedKey }),
27989
28006
  /* @__PURE__ */ jsx37(Box27, { flexGrow: 1 }),
27990
- /* @__PURE__ */ jsxs28(Text30, { color: PALETTE3.muted, wrap: "truncate-end", children: [
28007
+ /* @__PURE__ */ jsxs28(Text30, { color: PALETTE.muted, wrap: "truncate-end", children: [
27991
28008
  propCount,
27992
28009
  " prop",
27993
28010
  propCount !== 1 ? "s" : "",
@@ -28043,8 +28060,8 @@ function ReviewComponentPanel({
28043
28060
  )
28044
28061
  }
28045
28062
  ) }),
28046
- /* @__PURE__ */ jsx37(Box27, { width: contentWidth, height: 1, flexShrink: 0, children: /* @__PURE__ */ jsx37(Text30, { color: saveError ? PALETTE3.error : void 0, wrap: "truncate-end", children: saveError ? "\u2717 " + saveError : " " }) }),
28047
- /* @__PURE__ */ jsx37(Box27, { width: contentWidth, height: 1, flexShrink: 0, children: /* @__PURE__ */ jsx37(Text30, { color: PALETTE3.muted, wrap: "truncate-end", children: /* @__PURE__ */ jsx37(
28063
+ /* @__PURE__ */ jsx37(Box27, { width: contentWidth, height: 1, flexShrink: 0, children: /* @__PURE__ */ jsx37(Text30, { color: saveError ? PALETTE.error : void 0, wrap: "truncate-end", children: saveError ? "\u2717 " + saveError : " " }) }),
28064
+ /* @__PURE__ */ jsx37(Box27, { width: contentWidth, height: 1, flexShrink: 0, children: /* @__PURE__ */ jsx37(Text30, { color: PALETTE.muted, wrap: "truncate-end", children: /* @__PURE__ */ jsx37(
28048
28065
  ReviewPanelFooter,
28049
28066
  {
28050
28067
  reviewEditor,
@@ -28059,7 +28076,7 @@ function ReviewComponentPanel({
28059
28076
  var init_ReviewComponentPanel = __esm({
28060
28077
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ReviewComponentPanel.tsx"() {
28061
28078
  "use strict";
28062
- init_theme3();
28079
+ init_theme();
28063
28080
  init_review_json_panel();
28064
28081
  init_ReviewDetailsEditor();
28065
28082
  init_windowed_panel();
@@ -28081,11 +28098,11 @@ function countReviewStatuses(entries) {
28081
28098
  );
28082
28099
  }
28083
28100
  function ReviewLoadingState() {
28084
- return /* @__PURE__ */ jsx38(Box28, { paddingX: 2, paddingY: 1, children: /* @__PURE__ */ jsx38(Text31, { color: PALETTE3.muted, children: "Loading generated definitions..." }) });
28101
+ return /* @__PURE__ */ jsx38(Box28, { paddingX: 2, paddingY: 1, children: /* @__PURE__ */ jsx38(Text31, { color: PALETTE.muted, children: "Loading generated definitions..." }) });
28085
28102
  }
28086
28103
  function ReviewLoadError({ message }) {
28087
28104
  return /* @__PURE__ */ jsxs29(Box28, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
28088
- /* @__PURE__ */ jsx38(Text31, { color: PALETTE3.error, children: message }),
28105
+ /* @__PURE__ */ jsx38(Text31, { color: PALETTE.error, children: message }),
28089
28106
  /* @__PURE__ */ jsx38(Text31, { children: " " }),
28090
28107
  /* @__PURE__ */ jsx38(Text31, { children: "[q / Enter / Esc] Quit" })
28091
28108
  ] });
@@ -28093,7 +28110,7 @@ function ReviewLoadError({ message }) {
28093
28110
  var init_ReviewStatus = __esm({
28094
28111
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ReviewStatus.tsx"() {
28095
28112
  "use strict";
28096
- init_theme3();
28113
+ init_theme();
28097
28114
  }
28098
28115
  });
28099
28116
 
@@ -28343,41 +28360,41 @@ function FinalizeDialog({
28343
28360
  /* @__PURE__ */ jsx39(Text32, { bold: true, children: "\u2500".repeat(22) + " Finalize " + "\u2500".repeat(22) }),
28344
28361
  /* @__PURE__ */ jsx39(Text32, { children: " " }),
28345
28362
  /* @__PURE__ */ jsxs30(Text32, { children: [
28346
- /* @__PURE__ */ jsxs30(Text32, { color: PALETTE3.success, children: [
28363
+ /* @__PURE__ */ jsxs30(Text32, { color: PALETTE.success, children: [
28347
28364
  accepted,
28348
28365
  " accepted"
28349
28366
  ] }),
28350
28367
  /* @__PURE__ */ jsx39(Text32, { children: " \xB7 " }),
28351
- /* @__PURE__ */ jsxs30(Text32, { color: PALETTE3.error, children: [
28368
+ /* @__PURE__ */ jsxs30(Text32, { color: PALETTE.error, children: [
28352
28369
  rejected,
28353
28370
  " rejected"
28354
28371
  ] }),
28355
28372
  /* @__PURE__ */ jsx39(Text32, { children: " \xB7 " }),
28356
- /* @__PURE__ */ jsxs30(Text32, { color: PALETTE3.muted, children: [
28373
+ /* @__PURE__ */ jsxs30(Text32, { color: PALETTE.muted, children: [
28357
28374
  needsReview,
28358
28375
  " unresolved"
28359
28376
  ] })
28360
28377
  ] }),
28361
28378
  /* @__PURE__ */ jsx39(Text32, { children: " " }),
28362
28379
  noneAccepted && /* @__PURE__ */ jsxs30(Fragment10, { children: [
28363
- /* @__PURE__ */ jsx39(Text32, { bold: true, color: PALETTE3.warning, children: "\u26A0 No components are accepted \u2014 nothing will be pushed." }),
28364
- /* @__PURE__ */ jsx39(Text32, { color: PALETTE3.warning, children: "Accept at least one component ([a] a row, [A] accept all) to push." }),
28380
+ /* @__PURE__ */ jsx39(Text32, { bold: true, color: PALETTE.warning, children: "\u26A0 No components are accepted \u2014 nothing will be pushed." }),
28381
+ /* @__PURE__ */ jsx39(Text32, { color: PALETTE.warning, children: "Accept at least one component ([a] a row, [A] accept all) to push." }),
28365
28382
  /* @__PURE__ */ jsx39(Text32, { children: " " })
28366
28383
  ] }),
28367
28384
  !allResolved && /* @__PURE__ */ jsxs30(Fragment10, { children: [
28368
- /* @__PURE__ */ jsx39(Text32, { color: PALETTE3.warning, children: "\u26A0 " + needsReview + " unresolved component" + (needsReview === 1 ? "" : "s") + " will not be pushed." }),
28369
- /* @__PURE__ */ jsx39(Text32, { color: PALETTE3.warning, children: "Only explicitly accepted components ship." }),
28385
+ /* @__PURE__ */ jsx39(Text32, { color: PALETTE.warning, children: "\u26A0 " + needsReview + " unresolved component" + (needsReview === 1 ? "" : "s") + " will not be pushed." }),
28386
+ /* @__PURE__ */ jsx39(Text32, { color: PALETTE.warning, children: "Only explicitly accepted components ship." }),
28370
28387
  /* @__PURE__ */ jsx39(Text32, { children: " " })
28371
28388
  ] }),
28372
28389
  /* @__PURE__ */ jsxs30(Box29, { flexDirection: "column", height: 2, children: [
28373
- previewStatus === "running" ? /* @__PURE__ */ jsx39(Text32, { color: PALETTE3.muted, children: "Previewing deletions against the target space\u2026" }) : previewStatus === "error" ? /* @__PURE__ */ jsx39(Text32, { color: PALETTE3.warning, children: "\u26A0 Could not preview deletions (the push will still proceed)." }) : /* @__PURE__ */ jsx39(Text32, { children: " " }),
28390
+ previewStatus === "running" ? /* @__PURE__ */ jsx39(Text32, { color: PALETTE.muted, children: "Previewing deletions against the target space\u2026" }) : previewStatus === "error" ? /* @__PURE__ */ jsx39(Text32, { color: PALETTE.warning, children: "\u26A0 Could not preview deletions (the push will still proceed)." }) : /* @__PURE__ */ jsx39(Text32, { children: " " }),
28374
28391
  /* @__PURE__ */ jsx39(Text32, { children: " " })
28375
28392
  ] }),
28376
28393
  previewStatus === "done" && removed.length > 0 && /* @__PURE__ */ jsxs30(Fragment10, { children: [
28377
- /* @__PURE__ */ jsx39(Text32, { bold: true, color: PALETTE3.error, children: removedComponentsHeader(removed.length, false) }),
28378
- hasMoreAbove && /* @__PURE__ */ jsx39(Text32, { color: PALETTE3.muted, children: "\u2191 more above" }),
28379
- windowed.map((rc) => /* @__PURE__ */ jsx39(Text32, { color: PALETTE3.error, children: removedComponentLine(rc) }, rc.id)),
28380
- hasMoreBelow && /* @__PURE__ */ jsx39(Text32, { color: PALETTE3.muted, children: "\u2193 more below" }),
28394
+ /* @__PURE__ */ jsx39(Text32, { bold: true, color: PALETTE.error, children: removedComponentsHeader(removed.length, false) }),
28395
+ hasMoreAbove && /* @__PURE__ */ jsx39(Text32, { color: PALETTE.muted, children: "\u2191 more above" }),
28396
+ windowed.map((rc) => /* @__PURE__ */ jsx39(Text32, { color: PALETTE.error, children: removedComponentLine(rc) }, rc.id)),
28397
+ hasMoreBelow && /* @__PURE__ */ jsx39(Text32, { color: PALETTE.muted, children: "\u2193 more below" }),
28381
28398
  removed.length > FINALIZE_REMOVED_WINDOW && /* @__PURE__ */ jsx39(Text32, { children: "[\u2191\u2193] scroll deletions" }),
28382
28399
  /* @__PURE__ */ jsx39(Text32, { children: " " })
28383
28400
  ] }),
@@ -28390,7 +28407,7 @@ var FINALIZE_REMOVED_WINDOW;
28390
28407
  var init_FinalizeDialog = __esm({
28391
28408
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/components/FinalizeDialog.tsx"() {
28392
28409
  "use strict";
28393
- init_theme3();
28410
+ init_theme();
28394
28411
  init_useImmediateInput();
28395
28412
  init_removed_components_text();
28396
28413
  FINALIZE_REMOVED_WINDOW = 6;
@@ -28918,8 +28935,8 @@ function ReviewStepDialogs({
28918
28935
  }
28919
28936
  function ReviewReloadDialog({ open }) {
28920
28937
  if (!open) return null;
28921
- return /* @__PURE__ */ jsxs32(Box31, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE3.warning, paddingX: 1, children: [
28922
- /* @__PURE__ */ jsx41(Text34, { bold: true, color: PALETTE3.warning, children: "Reload from saved state?" }),
28938
+ return /* @__PURE__ */ jsxs32(Box31, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, children: [
28939
+ /* @__PURE__ */ jsx41(Text34, { bold: true, color: PALETTE.warning, children: "Reload from saved state?" }),
28923
28940
  /* @__PURE__ */ jsx41(Text34, { children: "Unsaved in-memory changes will be lost." }),
28924
28941
  /* @__PURE__ */ jsx41(Text34, { children: " " }),
28925
28942
  /* @__PURE__ */ jsx41(Text34, { children: " [Enter] Confirm" }),
@@ -28929,7 +28946,7 @@ function ReviewReloadDialog({ open }) {
28929
28946
  var init_ReviewDialogs = __esm({
28930
28947
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ReviewDialogs.tsx"() {
28931
28948
  "use strict";
28932
- init_theme3();
28949
+ init_theme();
28933
28950
  init_FinalizeDialog();
28934
28951
  init_QuitDialog();
28935
28952
  init_ReviewStatus();
@@ -29340,25 +29357,25 @@ function LivePreviewSummary({
29340
29357
  const counts = { new: 0, changed: 0, removed: 0, breaking: 0 };
29341
29358
  for (const annotation of previewAnnotations.values()) counts[annotation] += 1;
29342
29359
  const hasCounts = counts.new + counts.changed + counts.removed + counts.breaking > 0;
29343
- if (disabled) return /* @__PURE__ */ jsx42(Text35, { color: PALETTE3.muted, children: "Preview: disabled (creds rejected)" });
29344
- if (status === "running" && !hasCounts) return /* @__PURE__ */ jsx42(Text35, { color: PALETTE3.muted, children: `Preview: ${spinner} running...` });
29360
+ if (disabled) return /* @__PURE__ */ jsx42(Text35, { color: PALETTE.muted, children: "Preview: disabled (creds rejected)" });
29361
+ if (status === "running" && !hasCounts) return /* @__PURE__ */ jsx42(Text35, { color: PALETTE.muted, children: `Preview: ${spinner} running...` });
29345
29362
  if (!hasCounts) return null;
29346
29363
  return /* @__PURE__ */ jsxs33(Box32, { children: [
29347
29364
  /* @__PURE__ */ jsx42(Text35, { children: "Preview: " }),
29348
- /* @__PURE__ */ jsx42(Text35, { color: PALETTE3.success, children: `${counts.new} new` }),
29365
+ /* @__PURE__ */ jsx42(Text35, { color: PALETTE.success, children: `${counts.new} new` }),
29349
29366
  /* @__PURE__ */ jsx42(Text35, { children: " \xB7 " }),
29350
- /* @__PURE__ */ jsx42(Text35, { color: PALETTE3.warning, children: `${counts.changed} changed` }),
29367
+ /* @__PURE__ */ jsx42(Text35, { color: PALETTE.warning, children: `${counts.changed} changed` }),
29351
29368
  /* @__PURE__ */ jsx42(Text35, { children: " \xB7 " }),
29352
- /* @__PURE__ */ jsx42(Text35, { color: PALETTE3.muted, children: `${counts.removed} removed` }),
29369
+ /* @__PURE__ */ jsx42(Text35, { color: PALETTE.muted, children: `${counts.removed} removed` }),
29353
29370
  showRemovedListHint && removedCount > 0 && /* @__PURE__ */ jsx42(Text35, { children: " ([d] removed list)" }),
29354
29371
  /* @__PURE__ */ jsx42(Text35, { children: " \xB7 " }),
29355
- /* @__PURE__ */ jsx42(Text35, { color: PALETTE3.error, bold: true, children: `${counts.breaking} breaking` })
29372
+ /* @__PURE__ */ jsx42(Text35, { color: PALETTE.error, bold: true, children: `${counts.breaking} breaking` })
29356
29373
  ] });
29357
29374
  }
29358
29375
  var init_LivePreviewSummary = __esm({
29359
29376
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/components/LivePreviewSummary.tsx"() {
29360
29377
  "use strict";
29361
- init_theme3();
29378
+ init_theme();
29362
29379
  }
29363
29380
  });
29364
29381
 
@@ -29407,10 +29424,10 @@ function CyclePathLine({
29407
29424
  highlightComponents = false,
29408
29425
  highlightLine = false
29409
29426
  }) {
29410
- return /* @__PURE__ */ jsxs34(Text36, { color: highlightLine ? PALETTE3.warning : void 0, children: [
29427
+ return /* @__PURE__ */ jsxs34(Text36, { color: highlightLine ? PALETTE.warning : void 0, children: [
29411
29428
  prefix,
29412
29429
  segments.map(
29413
- (segment, index) => segment.kind === "slot" ? /* @__PURE__ */ jsx43(Text36, { color: PALETTE3.info, children: segment.text }, index) : segment.kind === "arrow" ? /* @__PURE__ */ jsx43(Text36, { color: PALETTE3.muted, children: segment.text }, index) : /* @__PURE__ */ jsx43(Text36, { color: highlightComponents ? PALETTE3.warning : void 0, children: segment.text }, index)
29430
+ (segment, index) => segment.kind === "slot" ? /* @__PURE__ */ jsx43(Text36, { color: PALETTE.accent, children: segment.text }, index) : segment.kind === "arrow" ? /* @__PURE__ */ jsx43(Text36, { color: PALETTE.muted, children: segment.text }, index) : /* @__PURE__ */ jsx43(Text36, { color: highlightComponents ? PALETTE.warning : void 0, children: segment.text }, index)
29414
29431
  )
29415
29432
  ] });
29416
29433
  }
@@ -29422,9 +29439,9 @@ function CycleDetailPanel({
29422
29439
  height
29423
29440
  }) {
29424
29441
  const lines = [
29425
- /* @__PURE__ */ jsx43(Text36, { bold: true, color: PALETTE3.warning, children: `SLOT DEPENDENCY CYCLES (${cycles.length})` }, "cyc-title"),
29426
- /* @__PURE__ */ jsx43(Text36, { color: PALETTE3.muted, children: "push will fail until these are resolved" }, "cyc-sub"),
29427
- /* @__PURE__ */ jsx43(Text36, { color: PALETTE3.muted, children: "Reject a cycle member or remove a slot edge to break the cycle." }, "cyc-guidance"),
29442
+ /* @__PURE__ */ jsx43(Text36, { bold: true, color: PALETTE.warning, children: `SLOT DEPENDENCY CYCLES (${cycles.length})` }, "cyc-title"),
29443
+ /* @__PURE__ */ jsx43(Text36, { color: PALETTE.muted, children: "push will fail until these are resolved" }, "cyc-sub"),
29444
+ /* @__PURE__ */ jsx43(Text36, { color: PALETTE.muted, children: "Reject a cycle member or remove a slot edge to break the cycle." }, "cyc-guidance"),
29428
29445
  /* @__PURE__ */ jsx43(Text36, { children: " " }, "cyc-space")
29429
29446
  ];
29430
29447
  cycles.forEach((cycle, index) => {
@@ -29436,7 +29453,7 @@ function CycleDetailPanel({
29436
29453
  );
29437
29454
  if (cycle.suggestedBreak) {
29438
29455
  lines.push(
29439
- /* @__PURE__ */ jsx43(Text36, { color: PALETTE3.muted, children: ` Suggested fix: remove [${cycle.suggestedBreak.slotName}] from ${cycle.suggestedBreak.fromComponent}` }, `cyc-fix-${index}`)
29456
+ /* @__PURE__ */ jsx43(Text36, { color: PALETTE.muted, children: ` Suggested fix: remove [${cycle.suggestedBreak.slotName}] from ${cycle.suggestedBreak.fromComponent}` }, `cyc-fix-${index}`)
29440
29457
  );
29441
29458
  }
29442
29459
  lines.push(/* @__PURE__ */ jsx43(Text36, { children: " " }, `cyc-s-${index}`));
@@ -29444,9 +29461,9 @@ function CycleDetailPanel({
29444
29461
  const footer = "[\u2191\u2193] move [Enter] fix cycle [c/q/Esc] close";
29445
29462
  const viewportHeight = Math.max(1, height - 3);
29446
29463
  const visible = lines.slice(scrollOffset, scrollOffset + viewportHeight - 1);
29447
- return /* @__PURE__ */ jsxs34(FixedPanel, { width, height, borderStyle: "round", borderColor: PALETTE3.warning, paddingLeft: 1, children: [
29464
+ return /* @__PURE__ */ jsxs34(FixedPanel, { width, height, borderStyle: "round", borderColor: PALETTE.warning, paddingLeft: 1, children: [
29448
29465
  visible,
29449
- /* @__PURE__ */ jsx43(Text36, { color: PALETTE3.muted, children: footer })
29466
+ /* @__PURE__ */ jsx43(Text36, { color: PALETTE.muted, children: footer })
29450
29467
  ] });
29451
29468
  }
29452
29469
  function BreakCyclePanel({
@@ -29457,14 +29474,14 @@ function BreakCyclePanel({
29457
29474
  width,
29458
29475
  height
29459
29476
  }) {
29460
- return /* @__PURE__ */ jsxs34(FixedPanel, { width, height, borderStyle: "round", borderColor: PALETTE3.warning, paddingLeft: 1, children: [
29461
- /* @__PURE__ */ jsx43(Text36, { bold: true, color: PALETTE3.warning, children: "BREAK CYCLE \u2014 remove a slot edge" }),
29477
+ return /* @__PURE__ */ jsxs34(FixedPanel, { width, height, borderStyle: "round", borderColor: PALETTE.warning, paddingLeft: 1, children: [
29478
+ /* @__PURE__ */ jsx43(Text36, { bold: true, color: PALETTE.warning, children: "BREAK CYCLE \u2014 remove a slot edge" }),
29462
29479
  cycle && /* @__PURE__ */ jsx43(CyclePathLine, { segments: formatCyclePathSegments2(cycle), prefix: " ", highlightComponents: true }),
29463
- /* @__PURE__ */ jsx43(Text36, { color: PALETTE3.muted, children: cycle ? "Deleting an edge removes it from $allowedComponents (undo with Ctrl+Z)." : "No cycle highlighted." }),
29480
+ /* @__PURE__ */ jsx43(Text36, { color: PALETTE.muted, children: cycle ? "Deleting an edge removes it from $allowedComponents (undo with Ctrl+Z)." : "No cycle highlighted." }),
29464
29481
  /* @__PURE__ */ jsx43(Text36, { children: " " }),
29465
- edges.length > 0 && /* @__PURE__ */ jsx43(Text36, { color: PALETTE3.muted, children: "remove slot edge:" }),
29482
+ edges.length > 0 && /* @__PURE__ */ jsx43(Text36, { color: PALETTE.muted, children: "remove slot edge:" }),
29466
29483
  edges.map((edge, index) => /* @__PURE__ */ jsx43(Text36, { inverse: index === cursor, children: `${index === cursor ? figures7.pointer : " "} remove '${edge.toComponent}' from ${edge.fromComponent}.$slots.${edge.slotName}.$allowedComponents` }, `${edge.fromComponent}-${edge.slotName}-${edge.toComponent}`)),
29467
- confirming ? /* @__PURE__ */ jsx43(Text36, { bold: true, color: PALETTE3.warning, children: "Delete this slot edge? [y] confirm [n] cancel" }) : /* @__PURE__ */ jsx43(Text36, { children: "[\u2191\u2193] move [Enter] delete [x/Esc] close" })
29484
+ confirming ? /* @__PURE__ */ jsx43(Text36, { bold: true, color: PALETTE.warning, children: "Delete this slot edge? [y] confirm [n] cancel" }) : /* @__PURE__ */ jsx43(Text36, { children: "[\u2191\u2193] move [Enter] delete [x/Esc] close" })
29468
29485
  ] });
29469
29486
  }
29470
29487
  function buildBreakingRows(breakingChanges) {
@@ -29510,7 +29527,7 @@ function deriveBreakingChanges(response) {
29510
29527
  }
29511
29528
  function GenerateReviewStep(props) {
29512
29529
  if (!props.extractSessionId) {
29513
- return /* @__PURE__ */ jsx43(Box33, { paddingX: 2, paddingY: 1, children: /* @__PURE__ */ jsx43(Text36, { color: PALETTE3.error, children: "Error: no session ID \u2014 cannot load generated definitions." }) });
29530
+ return /* @__PURE__ */ jsx43(Box33, { paddingX: 2, paddingY: 1, children: /* @__PURE__ */ jsx43(Text36, { color: PALETTE.error, children: "Error: no session ID \u2014 cannot load generated definitions." }) });
29514
29531
  }
29515
29532
  return /* @__PURE__ */ jsx43(GenerateReviewStepView, { ...props, extractSessionId: props.extractSessionId });
29516
29533
  }
@@ -30427,8 +30444,8 @@ function GenerateReviewStepView({
30427
30444
  }
30428
30445
  ),
30429
30446
  /* @__PURE__ */ jsx43(ReviewReloadDialog, { open: showReloadDialog && !dialogOpen }),
30430
- removedComponents.length > 0 && !dialogOpen && /* @__PURE__ */ jsxs34(Box33, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE3.error, paddingX: 1, children: [
30431
- /* @__PURE__ */ jsx43(Text36, { bold: true, color: PALETTE3.error, children: removedComponentsHeader(removedComponents.length, true) }),
30447
+ removedComponents.length > 0 && !dialogOpen && /* @__PURE__ */ jsxs34(Box33, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.error, paddingX: 1, children: [
30448
+ /* @__PURE__ */ jsx43(Text36, { bold: true, color: PALETTE.error, children: removedComponentsHeader(removedComponents.length, true) }),
30432
30449
  !removedBannerCollapsed && /* @__PURE__ */ jsxs34(Fragment13, { children: [
30433
30450
  /* @__PURE__ */ jsx43(Text36, { children: " " }),
30434
30451
  removedComponents.map((rc) => /* @__PURE__ */ jsx43(Text36, { children: removedComponentLine(rc) }, rc.id))
@@ -30437,7 +30454,7 @@ function GenerateReviewStepView({
30437
30454
  breakingChanges.length > 0 && !dialogOpen && /* @__PURE__ */ jsx43(Box33, { paddingX: 1, children: /* @__PURE__ */ jsx43(
30438
30455
  Text36,
30439
30456
  {
30440
- color: PALETTE3.warning,
30457
+ color: PALETTE.warning,
30441
30458
  children: `[b] ${breakingChanges.length} breaking change${breakingChanges.length === 1 ? "" : "s"}`
30442
30459
  }
30443
30460
  ) }),
@@ -30445,10 +30462,10 @@ function GenerateReviewStepView({
30445
30462
  const row = breakingRows[breakingCursor];
30446
30463
  const comp = row ? breakingChanges.find((b) => b.componentName === row.componentName) : void 0;
30447
30464
  if (!comp) return null;
30448
- return /* @__PURE__ */ jsxs34(Box33, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE3.warning, paddingX: 1, children: [
30449
- /* @__PURE__ */ jsx43(Text36, { bold: true, color: PALETTE3.warning, children: `Breaking changes \u2014 ${comp.componentName}` }),
30450
- comp.impact && /* @__PURE__ */ jsx43(Text36, { color: PALETTE3.muted, children: ` affects ${comp.impact.affectedExperiences} experience${comp.impact.affectedExperiences === 1 ? "" : "s"}, ${comp.impact.affectedFragments} fragment${comp.impact.affectedFragments === 1 ? "" : "s"}` }),
30451
- comp.changes.length === 0 ? /* @__PURE__ */ jsx43(Text36, { color: PALETTE3.muted, children: " (no enumerated changes)" }) : comp.changes.map((change, ci) => /* @__PURE__ */ jsx43(Text36, { children: ` \u2022 ${formatBreakingChange(change, comp.current)}` }, `bd-detail-${ci}`)),
30465
+ return /* @__PURE__ */ jsxs34(Box33, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, children: [
30466
+ /* @__PURE__ */ jsx43(Text36, { bold: true, color: PALETTE.warning, children: `Breaking changes \u2014 ${comp.componentName}` }),
30467
+ comp.impact && /* @__PURE__ */ jsx43(Text36, { color: PALETTE.muted, children: ` affects ${comp.impact.affectedExperiences} experience${comp.impact.affectedExperiences === 1 ? "" : "s"}, ${comp.impact.affectedFragments} fragment${comp.impact.affectedFragments === 1 ? "" : "s"}` }),
30468
+ comp.changes.length === 0 ? /* @__PURE__ */ jsx43(Text36, { color: PALETTE.muted, children: " (no enumerated changes)" }) : comp.changes.map((change, ci) => /* @__PURE__ */ jsx43(Text36, { children: ` \u2022 ${formatBreakingChange(change, comp.current)}` }, `bd-detail-${ci}`)),
30452
30469
  /* @__PURE__ */ jsx43(Text36, { children: "[D/Esc] close detail" })
30453
30470
  ] });
30454
30471
  })(),
@@ -30471,11 +30488,11 @@ function GenerateReviewStepView({
30471
30488
  const participantSet = cycleView.structural;
30472
30489
  const members = stillRejected.filter((n) => participantSet.has(n)).sort();
30473
30490
  const ancestors = stillRejected.filter((n) => !participantSet.has(n)).sort();
30474
- return /* @__PURE__ */ jsxs34(Box33, { flexDirection: "column", borderStyle: "single", borderColor: PALETTE3.error, paddingX: 1, children: [
30475
- /* @__PURE__ */ jsx43(Text36, { color: PALETTE3.error, bold: true, children: `Cyclic component graph \u2014 auto-rejected ${stillRejected.length} component${stillRejected.length === 1 ? "" : "s"}:` }),
30476
- members.length > 0 && /* @__PURE__ */ jsx43(Text36, { color: PALETTE3.error, children: ` Cycle members: ${members.join(", ")}` }),
30477
- ancestors.length > 0 && /* @__PURE__ */ jsx43(Text36, { color: PALETTE3.error, children: ` Ancestors: ${ancestors.join(", ")}` }),
30478
- /* @__PURE__ */ jsx43(Text36, { color: PALETTE3.muted, children: undoSnapshot ? " [Ctrl+Z] undo \xB7 [r]/[a] manually toggle \xB7 [F] continue" : " [r]/[a] manually toggle \xB7 [F] continue" })
30491
+ return /* @__PURE__ */ jsxs34(Box33, { flexDirection: "column", borderStyle: "single", borderColor: PALETTE.error, paddingX: 1, children: [
30492
+ /* @__PURE__ */ jsx43(Text36, { color: PALETTE.error, bold: true, children: `Cyclic component graph \u2014 auto-rejected ${stillRejected.length} component${stillRejected.length === 1 ? "" : "s"}:` }),
30493
+ members.length > 0 && /* @__PURE__ */ jsx43(Text36, { color: PALETTE.error, children: ` Cycle members: ${members.join(", ")}` }),
30494
+ ancestors.length > 0 && /* @__PURE__ */ jsx43(Text36, { color: PALETTE.error, children: ` Ancestors: ${ancestors.join(", ")}` }),
30495
+ /* @__PURE__ */ jsx43(Text36, { color: PALETTE.muted, children: undoSnapshot ? " [Ctrl+Z] undo \xB7 [r]/[a] manually toggle \xB7 [F] continue" : " [r]/[a] manually toggle \xB7 [F] continue" })
30479
30496
  ] });
30480
30497
  })(),
30481
30498
  /* @__PURE__ */ jsx43(ReviewEmptyComponentsWarning, { count: emptyCount, hidden: dialogOpen }),
@@ -30591,7 +30608,7 @@ function GenerateReviewStepView({
30591
30608
  ) : /* @__PURE__ */ jsx43(ReviewNoSelection, {})
30592
30609
  ] }),
30593
30610
  !dialogOpen && cycleRows.length > 0 && !cyclePanel.isOpen && !breakPanel.isOpen && /* @__PURE__ */ jsxs34(Box33, { flexDirection: "column", children: [
30594
- /* @__PURE__ */ jsx43(Text36, { color: PALETTE3.warning, children: `\u26A0 ${cycleRows.length} slot dependency cycle${cycleRows.length === 1 ? "" : "s"} detected \u2014 push will fail` }),
30611
+ /* @__PURE__ */ jsx43(Text36, { color: PALETTE.warning, children: `\u26A0 ${cycleRows.length} slot dependency cycle${cycleRows.length === 1 ? "" : "s"} detected \u2014 push will fail` }),
30595
30612
  cycleRows.slice(0, 3).map((cycle, idx) => {
30596
30613
  return /* @__PURE__ */ jsx43(
30597
30614
  CyclePathLine,
@@ -30604,7 +30621,7 @@ function GenerateReviewStepView({
30604
30621
  `cyc-banner-${idx}`
30605
30622
  );
30606
30623
  }),
30607
- cycleRows.length > 3 && /* @__PURE__ */ jsx43(Text36, { color: PALETTE3.warning, children: ` \u2026${cycleRows.length - 3} more` }),
30624
+ cycleRows.length > 3 && /* @__PURE__ */ jsx43(Text36, { color: PALETTE.warning, children: ` \u2026${cycleRows.length - 3} more` }),
30608
30625
  /* @__PURE__ */ jsx43(Text36, { children: " press [c] for detail" })
30609
30626
  ] }),
30610
30627
  /* @__PURE__ */ jsx43(
@@ -30625,7 +30642,7 @@ var HELP_SECTIONS2;
30625
30642
  var init_generate_review_step = __esm({
30626
30643
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/generate-review-step.tsx"() {
30627
30644
  "use strict";
30628
- init_theme3();
30645
+ init_theme();
30629
30646
  init_review_json_panel();
30630
30647
  init_GroupedSidebar();
30631
30648
  init_composite_closure();
@@ -30734,13 +30751,13 @@ var init_generate_review_step = __esm({
30734
30751
 
30735
30752
  // packages/experience-design-system-cli/src/tui/import/steps/10-flow/theme.ts
30736
30753
  import { defaultTheme as defaultTheme2, extendTheme as extendTheme2 } from "@inkjs/ui";
30737
- var PALETTE4, INK_UI_THEME;
30754
+ var PALETTE3, INK_UI_THEME;
30738
30755
  var init_theme4 = __esm({
30739
30756
  "packages/experience-design-system-cli/src/tui/import/steps/10-flow/theme.ts"() {
30740
30757
  "use strict";
30741
- init_theme3();
30742
- PALETTE4 = {
30743
- ...PALETTE3,
30758
+ init_theme();
30759
+ PALETTE3 = {
30760
+ ...PALETTE,
30744
30761
  link: "#58A6FF"
30745
30762
  };
30746
30763
  INK_UI_THEME = extendTheme2(defaultTheme2, {
@@ -30762,13 +30779,13 @@ import { Box as Box34, Text as Text37 } from "ink";
30762
30779
  import { jsx as jsx44, jsxs as jsxs35 } from "react/jsx-runtime";
30763
30780
  function CustomPromptBanner({ generatePromptPath }) {
30764
30781
  if (!generatePromptPath) return null;
30765
- return /* @__PURE__ */ jsxs35(Box34, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE4.warning, paddingX: 1, children: [
30766
- /* @__PURE__ */ jsx44(Text37, { color: PALETTE4.warning, bold: true, children: "WARNING: Custom prompt active" }),
30767
- generatePromptPath ? /* @__PURE__ */ jsxs35(Text37, { color: PALETTE4.warning, children: [
30782
+ return /* @__PURE__ */ jsxs35(Box34, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE3.warning, paddingX: 1, children: [
30783
+ /* @__PURE__ */ jsx44(Text37, { color: PALETTE3.warning, bold: true, children: "WARNING: Custom prompt active" }),
30784
+ generatePromptPath ? /* @__PURE__ */ jsxs35(Text37, { color: PALETTE3.warning, children: [
30768
30785
  "components: ",
30769
30786
  generatePromptPath
30770
30787
  ] }) : null,
30771
- /* @__PURE__ */ jsx44(Text37, { color: PALETTE4.warning, children: "Bundled invariants (utility-wrapper rejection, description content rules) do NOT apply." })
30788
+ /* @__PURE__ */ jsx44(Text37, { color: PALETTE3.warning, children: "Bundled invariants (utility-wrapper rejection, description content rules) do NOT apply." })
30772
30789
  ] });
30773
30790
  }
30774
30791
  var init_CustomPromptBanner = __esm({
@@ -30801,10 +30818,10 @@ import { Box as Box35, Text as Text38 } from "ink";
30801
30818
  import { jsx as jsx45, jsxs as jsxs36 } from "react/jsx-runtime";
30802
30819
  function SpaceEnvironment({ spaceId, environmentId }) {
30803
30820
  return /* @__PURE__ */ jsxs36(Box35, { gap: 1, marginTop: 1, children: [
30804
- /* @__PURE__ */ jsx45(Text38, { color: PALETTE4.muted, children: "Space:" }),
30821
+ /* @__PURE__ */ jsx45(Text38, { color: PALETTE3.muted, children: "Space:" }),
30805
30822
  /* @__PURE__ */ jsx45(Text38, { children: spaceId }),
30806
- /* @__PURE__ */ jsx45(Text38, { color: PALETTE4.muted, children: "/" }),
30807
- /* @__PURE__ */ jsx45(Text38, { color: PALETTE4.muted, children: "Environment:" }),
30823
+ /* @__PURE__ */ jsx45(Text38, { color: PALETTE3.muted, children: "/" }),
30824
+ /* @__PURE__ */ jsx45(Text38, { color: PALETTE3.muted, children: "Environment:" }),
30808
30825
  /* @__PURE__ */ jsx45(Text38, { children: environmentId })
30809
30826
  ] });
30810
30827
  }
@@ -30822,13 +30839,13 @@ function EntityRows({ entity, label }) {
30822
30839
  const plural3 = (n) => `${n} ${label}${n !== 1 ? "s" : ""}`;
30823
30840
  return /* @__PURE__ */ jsxs37(Fragment14, { children: [
30824
30841
  ACTIONS.filter((action) => entity[action] > 0).map((action) => /* @__PURE__ */ jsxs37(Text39, { children: [
30825
- /* @__PURE__ */ jsx46(Text39, { color: PALETTE4.success, children: "\u2713" }),
30842
+ /* @__PURE__ */ jsx46(Text39, { color: PALETTE3.success, children: "\u2713" }),
30826
30843
  " ",
30827
30844
  plural3(entity[action]),
30828
30845
  " ",
30829
30846
  action
30830
30847
  ] }, action)),
30831
- entity.failed > 0 && /* @__PURE__ */ jsxs37(Text39, { color: PALETTE4.error, children: [
30848
+ entity.failed > 0 && /* @__PURE__ */ jsxs37(Text39, { color: PALETTE3.error, children: [
30832
30849
  "\u2717 ",
30833
30850
  plural3(entity.failed),
30834
30851
  " failed \u2014 check logs above"
@@ -30837,8 +30854,8 @@ function EntityRows({ entity, label }) {
30837
30854
  }
30838
30855
  function LinkRow({ title, url }) {
30839
30856
  return /* @__PURE__ */ jsxs37(Box36, { flexDirection: "column", children: [
30840
- /* @__PURE__ */ jsx46(Text39, { color: PALETTE4.muted, children: title }),
30841
- /* @__PURE__ */ jsx46(Text39, { color: PALETTE4.link, children: url })
30857
+ /* @__PURE__ */ jsx46(Text39, { color: PALETTE3.muted, children: title }),
30858
+ /* @__PURE__ */ jsx46(Text39, { color: PALETTE3.link, children: url })
30842
30859
  ] });
30843
30860
  }
30844
30861
  function DoneStep({
@@ -30861,17 +30878,17 @@ function DoneStep({
30861
30878
  const success = totalFailed === 0;
30862
30879
  const urlArgs = { host: host ?? "api.contentful.com", spaceId, environmentId };
30863
30880
  return /* @__PURE__ */ jsxs37(Box36, { flexDirection: "column", gap: 1, paddingX: 2, paddingY: 1, children: [
30864
- success ? /* @__PURE__ */ jsx46(Text39, { bold: true, color: PALETTE4.success, children: "Done!" }) : /* @__PURE__ */ jsx46(Text39, { bold: true, color: PALETTE4.warning, children: "\u26A0 Finished with errors" }),
30865
- totalPushed === 0 && totalFailed === 0 && !summary ? /* @__PURE__ */ jsx46(Text39, { color: PALETTE4.muted, children: "Nothing was pushed \u2014 everything was already up to date." }) : /* @__PURE__ */ jsxs37(Box36, { flexDirection: "column", children: [
30881
+ success ? /* @__PURE__ */ jsx46(Text39, { bold: true, color: PALETTE3.success, children: "Done!" }) : /* @__PURE__ */ jsx46(Text39, { bold: true, color: PALETTE3.warning, children: "\u26A0 Finished with errors" }),
30882
+ totalPushed === 0 && totalFailed === 0 && !summary ? /* @__PURE__ */ jsx46(Text39, { color: PALETTE3.muted, children: "Nothing was pushed \u2014 everything was already up to date." }) : /* @__PURE__ */ jsxs37(Box36, { flexDirection: "column", children: [
30866
30883
  /* @__PURE__ */ jsx46(EntityRows, { entity: componentTypes, label: "Component Type" }),
30867
30884
  /* @__PURE__ */ jsx46(EntityRows, { entity: designTokens, label: "Design Token" }),
30868
- summary && /* @__PURE__ */ jsx46(Box36, { marginTop: 1, children: /* @__PURE__ */ jsxs37(Text39, { color: PALETTE4.muted, children: [
30885
+ summary && /* @__PURE__ */ jsx46(Box36, { marginTop: 1, children: /* @__PURE__ */ jsxs37(Text39, { color: PALETTE3.muted, children: [
30869
30886
  "Push result: ",
30870
30887
  summary.succeeded,
30871
30888
  "/",
30872
30889
  summary.total,
30873
30890
  " succeeded",
30874
- summary.failed > 0 && /* @__PURE__ */ jsxs37(Text39, { color: PALETTE4.error, children: [
30891
+ summary.failed > 0 && /* @__PURE__ */ jsxs37(Text39, { color: PALETTE3.error, children: [
30875
30892
  ", ",
30876
30893
  summary.failed,
30877
30894
  " failed"
@@ -30879,8 +30896,8 @@ function DoneStep({
30879
30896
  ] }) })
30880
30897
  ] }),
30881
30898
  failures.length > 0 && /* @__PURE__ */ jsxs37(Box36, { flexDirection: "column", children: [
30882
- /* @__PURE__ */ jsx46(Text39, { bold: true, color: PALETTE4.error, children: "Failure details" }),
30883
- failures.map((failure) => /* @__PURE__ */ jsxs37(Text39, { color: PALETTE4.error, children: [
30899
+ /* @__PURE__ */ jsx46(Text39, { bold: true, color: PALETTE3.error, children: "Failure details" }),
30900
+ failures.map((failure) => /* @__PURE__ */ jsxs37(Text39, { color: PALETTE3.error, children: [
30884
30901
  failure.entityType,
30885
30902
  " ",
30886
30903
  failure.entityId,
@@ -30890,7 +30907,7 @@ function DoneStep({
30890
30907
  ] }),
30891
30908
  /* @__PURE__ */ jsx46(SpaceEnvironment, { spaceId, environmentId }),
30892
30909
  success && totalPushed > 0 && /* @__PURE__ */ jsxs37(Box36, { flexDirection: "column", gap: 1, children: [
30893
- /* @__PURE__ */ jsx46(Text39, { color: PALETTE4.success, children: "Your design system is now in Contentful Experiences." }),
30910
+ /* @__PURE__ */ jsx46(Text39, { color: PALETTE3.success, children: "Your design system is now in Contentful Experiences." }),
30894
30911
  /* @__PURE__ */ jsx46(LinkRow, { title: "View your components here:", url: buildPostPushUrl2(urlArgs) }),
30895
30912
  /* @__PURE__ */ jsx46(
30896
30913
  LinkRow,
@@ -31023,7 +31040,7 @@ function PathPrompt({
31023
31040
  label,
31024
31041
  ":"
31025
31042
  ] }),
31026
- /* @__PURE__ */ jsx47(Text40, { color: isPlaceholder ? PALETTE4.muted : void 0, children: shown }),
31043
+ /* @__PURE__ */ jsx47(Text40, { color: isPlaceholder ? PALETTE3.muted : void 0, children: shown }),
31027
31044
  /* @__PURE__ */ jsx47(Text40, { children: cursor })
31028
31045
  ] }),
31029
31046
  /* @__PURE__ */ jsxs38(Box37, { gap: 3, children: [
@@ -31106,12 +31123,12 @@ function PushingStep({ stepNumber, totalSteps, progress }) {
31106
31123
  /* @__PURE__ */ jsx50(StepHeader, { stepNumber, totalSteps, title: "Push to Contentful" }),
31107
31124
  /* @__PURE__ */ jsx50(Text42, { children: "Writing component types and design tokens to your Contentful space..." }),
31108
31125
  operationId && /* @__PURE__ */ jsxs40(Box39, { gap: 1, children: [
31109
- /* @__PURE__ */ jsx50(Text42, { color: PALETTE4.muted, children: "Operation:" }),
31126
+ /* @__PURE__ */ jsx50(Text42, { color: PALETTE3.muted, children: "Operation:" }),
31110
31127
  /* @__PURE__ */ jsx50(Text42, { children: operationId })
31111
31128
  ] }),
31112
31129
  showGlobal && progress && progress.kind === "progress" && /* @__PURE__ */ jsx50(Box39, { gap: 1, flexDirection: "column", children: /* @__PURE__ */ jsxs40(Box39, { gap: 2, children: [
31113
31130
  /* @__PURE__ */ jsx50(Box39, { width: 40, children: /* @__PURE__ */ jsx50(ThemeProvider2, { theme: INK_UI_THEME, children: /* @__PURE__ */ jsx50(ProgressBar2, { value: Math.round(progress.processed / progress.total * 100) }) }) }),
31114
- /* @__PURE__ */ jsxs40(Text42, { color: PALETTE4.muted, children: [
31131
+ /* @__PURE__ */ jsxs40(Text42, { color: PALETTE3.muted, children: [
31115
31132
  progress.processed,
31116
31133
  "/",
31117
31134
  progress.total,
@@ -31119,10 +31136,10 @@ function PushingStep({ stepNumber, totalSteps, progress }) {
31119
31136
  ] })
31120
31137
  ] }) }),
31121
31138
  showCurrent && /* @__PURE__ */ jsxs40(Box39, { gap: 1, children: [
31122
- /* @__PURE__ */ jsx50(Text42, { color: PALETTE4.muted, children: "Now processing:" }),
31139
+ /* @__PURE__ */ jsx50(Text42, { color: PALETTE3.muted, children: "Now processing:" }),
31123
31140
  /* @__PURE__ */ jsx50(Text42, { children: showCurrent })
31124
31141
  ] }),
31125
- /* @__PURE__ */ jsx50(Box39, { marginTop: 1, children: /* @__PURE__ */ jsxs40(Text42, { color: PALETTE4.muted, children: [
31142
+ /* @__PURE__ */ jsx50(Box39, { marginTop: 1, children: /* @__PURE__ */ jsxs40(Text42, { color: PALETTE3.muted, children: [
31126
31143
  "Elapsed: ",
31127
31144
  elapsed
31128
31145
  ] }) })
@@ -31329,25 +31346,25 @@ function buildPreviewSummaryLines(preview) {
31329
31346
  if (components.new.length > 0) {
31330
31347
  lines.push({
31331
31348
  key: "summary-components-new",
31332
- color: PALETTE4.success,
31349
+ color: PALETTE3.success,
31333
31350
  text: ` \uFF0B ${components.new.length} components will be created`
31334
31351
  });
31335
31352
  for (const [index, item] of components.new.entries()) {
31336
31353
  const name = item.key ?? item.$name ?? "unknown";
31337
- lines.push({ key: `summary-components-new-${index}`, color: PALETTE4.success, text: ` + ${name}` });
31354
+ lines.push({ key: `summary-components-new-${index}`, color: PALETTE3.success, text: ` + ${name}` });
31338
31355
  }
31339
31356
  }
31340
31357
  if (components.changed.length > 0) {
31341
31358
  lines.push({
31342
31359
  key: "summary-components-changed",
31343
- color: PALETTE4.warning,
31360
+ color: PALETTE3.warning,
31344
31361
  text: ` \uFF5E ${components.changed.length} components will be updated`
31345
31362
  });
31346
31363
  for (const [index, item] of components.changed.entries()) {
31347
31364
  const isBreaking = item.changeClassification?.classification === "breaking";
31348
31365
  lines.push({
31349
31366
  key: `summary-components-changed-${index}`,
31350
- color: isBreaking ? PALETTE4.error : PALETTE4.warning,
31367
+ color: isBreaking ? PALETTE3.error : PALETTE3.warning,
31351
31368
  text: ` ${isBreaking ? "\u26A0" : "~"} ${item.current.name}`
31352
31369
  });
31353
31370
  }
@@ -31355,11 +31372,11 @@ function buildPreviewSummaryLines(preview) {
31355
31372
  if (components.removed.length > 0) {
31356
31373
  lines.push({
31357
31374
  key: "summary-components-removed",
31358
- color: PALETTE4.warning,
31375
+ color: PALETTE3.warning,
31359
31376
  text: ` \u2298 ${components.removed.length} components will be skipped`
31360
31377
  });
31361
31378
  for (const [index, item] of components.removed.entries()) {
31362
- lines.push({ key: `summary-components-removed-${index}`, color: PALETTE4.warning, text: ` \u2298 ${item.name}` });
31379
+ lines.push({ key: `summary-components-removed-${index}`, color: PALETTE3.warning, text: ` \u2298 ${item.name}` });
31363
31380
  }
31364
31381
  }
31365
31382
  if (components.unchanged.length > 0) {
@@ -31372,21 +31389,21 @@ function buildPreviewSummaryLines(preview) {
31372
31389
  if (tokens.new.length > 0) {
31373
31390
  lines.push({
31374
31391
  key: "summary-tokens-new",
31375
- color: PALETTE4.success,
31392
+ color: PALETTE3.success,
31376
31393
  text: ` \uFF0B ${tokens.new.length} design tokens will be created`
31377
31394
  });
31378
31395
  }
31379
31396
  if (tokens.changed.length > 0) {
31380
31397
  lines.push({
31381
31398
  key: "summary-tokens-changed",
31382
- color: PALETTE4.warning,
31399
+ color: PALETTE3.warning,
31383
31400
  text: ` \uFF5E ${tokens.changed.length} design tokens will be updated`
31384
31401
  });
31385
31402
  }
31386
31403
  if (tokens.removed.length > 0) {
31387
31404
  lines.push({
31388
31405
  key: "summary-tokens-removed",
31389
- color: PALETTE4.warning,
31406
+ color: PALETTE3.warning,
31390
31407
  text: ` \u2298 ${tokens.removed.length} design tokens will be skipped`
31391
31408
  });
31392
31409
  }
@@ -31430,12 +31447,12 @@ function getPreviewScrollOffset(input, downArrow, upArrow, diffExpanded, current
31430
31447
  function appendChangedPreviewLine(lines, keyPrefix, name, hasPendingDraftChanges, changeClassification) {
31431
31448
  lines.push({
31432
31449
  key: `${keyPrefix}-h-${name}`,
31433
- color: PALETTE4.warning,
31450
+ color: PALETTE3.warning,
31434
31451
  text: ` ~ ${name}${hasPendingDraftChanges ? " \u26A1 has pending draft changes" : ""}`
31435
31452
  });
31436
31453
  if (changeClassification?.classification !== "breaking") return;
31437
31454
  const reasons = changeClassification.breakingChanges.map((bc) => `${"slotId" in bc ? bc.slotId : bc.propertyId}: ${bc.reason}`).join(", ");
31438
- lines.push({ key: `${keyPrefix}-b-${name}`, color: PALETTE4.error, text: ` \u26A0 BREAKING: ${reasons}` });
31455
+ lines.push({ key: `${keyPrefix}-b-${name}`, color: PALETTE3.error, text: ` \u26A0 BREAKING: ${reasons}` });
31439
31456
  }
31440
31457
  function buildPreviewDiffLines(preview) {
31441
31458
  const lines = [];
@@ -31443,12 +31460,12 @@ function buildPreviewDiffLines(preview) {
31443
31460
  for (const item of components.new) {
31444
31461
  const raw = item;
31445
31462
  const name = raw.key ?? raw.$name ?? "unknown";
31446
- lines.push({ key: `comp-new-${name}`, color: PALETTE4.success, text: ` + ${name}` });
31463
+ lines.push({ key: `comp-new-${name}`, color: PALETTE3.success, text: ` + ${name}` });
31447
31464
  const slots = raw.$slots ?? {};
31448
31465
  for (const slotName of Object.keys(slots).sort()) {
31449
31466
  lines.push({
31450
31467
  key: `comp-new-${name}-slot-${slotName}`,
31451
- color: PALETTE4.success,
31468
+ color: PALETTE3.success,
31452
31469
  text: ` slot: ${slotName}`
31453
31470
  });
31454
31471
  const allowed = slots[slotName]?.["$allowedComponents"];
@@ -31456,14 +31473,14 @@ function buildPreviewDiffLines(preview) {
31456
31473
  const names = allowed.filter((n) => typeof n === "string");
31457
31474
  lines.push({
31458
31475
  key: `comp-new-${name}-slot-${slotName}-allow`,
31459
- color: PALETTE4.success,
31476
+ color: PALETTE3.success,
31460
31477
  text: ` allowedComponents: [${names.join(", ")}]`
31461
31478
  });
31462
31479
  }
31463
31480
  }
31464
31481
  }
31465
31482
  for (const item of components.removed) {
31466
- lines.push({ key: `comp-rm-${item.name}`, color: PALETTE4.error, text: ` - ${item.name}` });
31483
+ lines.push({ key: `comp-rm-${item.name}`, color: PALETTE3.error, text: ` - ${item.name}` });
31467
31484
  }
31468
31485
  for (const item of components.changed) {
31469
31486
  appendChangedPreviewLine(lines, "comp", item.current.name, item.hasPendingDraftChanges, item.changeClassification);
@@ -31494,10 +31511,10 @@ function buildPreviewDiffLines(preview) {
31494
31511
  for (const item of tokens.new) {
31495
31512
  const raw = item;
31496
31513
  const name = raw.name ?? raw.path ?? "unknown";
31497
- lines.push({ key: `tok-new-${name}`, color: PALETTE4.success, text: ` + ${name}` });
31514
+ lines.push({ key: `tok-new-${name}`, color: PALETTE3.success, text: ` + ${name}` });
31498
31515
  }
31499
31516
  for (const item of tokens.removed) {
31500
- lines.push({ key: `tok-rm-${item.name}`, color: PALETTE4.error, text: ` - ${item.name}` });
31517
+ lines.push({ key: `tok-rm-${item.name}`, color: PALETTE3.error, text: ` - ${item.name}` });
31501
31518
  }
31502
31519
  for (const item of tokens.changed) {
31503
31520
  const tokenName = item.current.name;
@@ -31588,13 +31605,13 @@ function WizardPreviewStep({
31588
31605
  title: diffExpanded ? `Diff (${diffLines.length} lines)` : "",
31589
31606
  focused: false,
31590
31607
  children: [
31591
- activeLines.slice(boundedScrollOffset, boundedScrollOffset + viewportHeight).map((line) => /* @__PURE__ */ jsx51(Text43, { color: line.color === "gray" ? PALETTE4.muted : line.color, wrap: "truncate-end", children: line.text }, line.key)),
31592
- /* @__PURE__ */ jsx51(Text43, { color: PALETTE4.muted, wrap: "truncate-end", children: formatPreviewScrollIndicator(activeLines.length, boundedScrollOffset, viewportHeight) })
31608
+ activeLines.slice(boundedScrollOffset, boundedScrollOffset + viewportHeight).map((line) => /* @__PURE__ */ jsx51(Text43, { color: line.color === "gray" ? PALETTE3.muted : line.color, wrap: "truncate-end", children: line.text }, line.key)),
31609
+ /* @__PURE__ */ jsx51(Text43, { color: PALETTE3.muted, wrap: "truncate-end", children: formatPreviewScrollIndicator(activeLines.length, boundedScrollOffset, viewportHeight) })
31593
31610
  ]
31594
31611
  }
31595
31612
  )
31596
- ] }) : /* @__PURE__ */ jsx51(Text43, { color: PALETTE4.muted, children: "Nothing to push \u2014 everything is already up to date." }),
31597
- breakingWithImpact && /* @__PURE__ */ jsx51(Box40, { marginTop: 1, children: /* @__PURE__ */ jsx51(Text43, { color: PALETTE4.error, bold: true, children: "\u26A0 Breaking changes will affect downstream entities. Press Enter to acknowledge and apply." }) }),
31613
+ ] }) : /* @__PURE__ */ jsx51(Text43, { color: PALETTE3.muted, children: "Nothing to push \u2014 everything is already up to date." }),
31614
+ breakingWithImpact && /* @__PURE__ */ jsx51(Box40, { marginTop: 1, children: /* @__PURE__ */ jsx51(Text43, { color: PALETTE3.error, bold: true, children: "\u26A0 Breaking changes will affect downstream entities. Press Enter to acknowledge and apply." }) }),
31598
31615
  /* @__PURE__ */ jsx51(SpaceEnvironment, { spaceId, environmentId }),
31599
31616
  /* @__PURE__ */ jsxs41(Box40, { gap: 3, marginTop: 1, children: [
31600
31617
  /* @__PURE__ */ jsx51(Text43, { children: "[Enter] Push to Contentful" }),
@@ -32276,7 +32293,7 @@ var init_save = __esm({
32276
32293
  writeFile: (path5, contents) => writeFile7(path5, contents),
32277
32294
  appendRun,
32278
32295
  buildSourceFingerprint,
32279
- sleep: (ms) => new Promise((resolve28) => setTimeout(resolve28, ms)),
32296
+ sleep: (ms) => new Promise((resolve27) => setTimeout(resolve27, ms)),
32280
32297
  warn: (message) => process.stderr.write(message)
32281
32298
  });
32282
32299
  }
@@ -32827,48 +32844,13 @@ var init_debug_store = __esm({
32827
32844
  }
32828
32845
  });
32829
32846
 
32830
- // packages/experience-design-system-cli/src/tui/help/file-locations.ts
32831
- import { join as join27, resolve as resolve27 } from "node:path";
32832
- function describeFileLocations({
32833
- contentfulBaseDir,
32834
- debugModeEnabled,
32835
- currentSessionDir: currentSessionDir2
32836
- }) {
32837
- if (!debugModeEnabled) {
32838
- return {
32839
- debugLogs: "none while Debug Mode is off",
32840
- importFiles: `${join27("<project>", ".contentful")}/ (tokens.json, components.json)`
32841
- };
32842
- }
32843
- const base = contentfulBaseDir ? resolve27(contentfulBaseDir) : "<project>";
32844
- const session = currentSessionDir2 ?? join27(base, ".contentful", "<date>-session-<n>");
32845
- return {
32846
- debugLogs: join27(session, "debug"),
32847
- importFiles: `${join27(session, "dsi-import-<n>")}/ (tokens.json, components.json)`
32848
- };
32849
- }
32850
- var init_file_locations = __esm({
32851
- "packages/experience-design-system-cli/src/tui/help/file-locations.ts"() {
32852
- "use strict";
32853
- }
32854
- });
32855
-
32856
32847
  // packages/experience-design-system-cli/src/tui/help/help-info.ts
32857
32848
  async function readHelpInfo() {
32858
- const [debugMode, settings] = await Promise.all([readDebugModeSetting(), readSettings2()]);
32859
- const base = settings["contentfulBaseDir"];
32860
- const locations = describeFileLocations({
32861
- contentfulBaseDir: typeof base === "string" ? base : "",
32862
- debugModeEnabled: debugMode.enabled,
32863
- currentSessionDir: currentSessionDir()
32864
- });
32849
+ const debugMode = await readDebugModeSetting();
32865
32850
  return {
32866
32851
  storage: [
32867
32852
  { label: "Config folder", value: configRoot2() },
32868
- { label: "Settings file", value: configFilePath2() },
32869
- { label: "Agent settings", value: `${configFilePath2()} (keys: agent, agentModel, agents)` },
32870
- { label: "Debug logs", value: locations.debugLogs },
32871
- { label: "Import files", value: locations.importFiles }
32853
+ { label: "Settings file", value: configFilePath2() }
32872
32854
  ],
32873
32855
  troubleshooting: [
32874
32856
  { label: "CLI version", value: readPackageVersion() },
@@ -32889,7 +32871,6 @@ var init_help_info = __esm({
32889
32871
  init_debug_store();
32890
32872
  init_debug_mode_store();
32891
32873
  init_version();
32892
- init_file_locations();
32893
32874
  }
32894
32875
  });
32895
32876
 
@@ -32901,7 +32882,7 @@ function Section({ title, rows }) {
32901
32882
  return /* @__PURE__ */ jsxs43(Box42, { flexDirection: "column", children: [
32902
32883
  /* @__PURE__ */ jsx53(Text44, { bold: true, color: PALETTE.accent, children: title }),
32903
32884
  rows.map((row) => /* @__PURE__ */ jsxs43(Box42, { gap: 1, children: [
32904
- /* @__PURE__ */ jsx53(Box42, { width: 16, flexShrink: 0, children: /* @__PURE__ */ jsx53(Text44, { color: PALETTE.muted, children: row.label }) }),
32885
+ /* @__PURE__ */ jsx53(Box42, { width: 14, flexShrink: 0, children: /* @__PURE__ */ jsx53(Text44, { color: PALETTE.muted, children: row.label }) }),
32905
32886
  /* @__PURE__ */ jsx53(Text44, { children: row.value })
32906
32887
  ] }, row.label))
32907
32888
  ] });
@@ -32947,7 +32928,7 @@ function HelpScreen({ onDone }) {
32947
32928
  var init_PageContainer2 = __esm({
32948
32929
  "packages/experience-design-system-cli/src/tui/help/PageContainer.tsx"() {
32949
32930
  "use strict";
32950
- init_home_theme();
32931
+ init_theme();
32951
32932
  init_debug_store();
32952
32933
  init_control_hints();
32953
32934
  init_help_info();
@@ -33015,349 +32996,6 @@ var init_PageContainer3 = __esm({
33015
32996
  }
33016
32997
  });
33017
32998
 
33018
- // packages/experience-design-system-cli/src/tui/settings/shared/FieldForm.tsx
33019
- import { useState as useState29 } from "react";
33020
- import { Box as Box44, Text as Text46, useInput as useInput11 } from "ink";
33021
- import TextInput4 from "ink-text-input";
33022
- import { Fragment as Fragment17, jsx as jsx55, jsxs as jsxs45 } from "react/jsx-runtime";
33023
- function FieldForm({
33024
- title,
33025
- subtitle,
33026
- fields,
33027
- values,
33028
- onChange,
33029
- onSave,
33030
- onQuit,
33031
- notice,
33032
- busy = false,
33033
- footer
33034
- }) {
33035
- const [active, setActive] = useState29(0);
33036
- const [editing, setEditing] = useState29(false);
33037
- const [valueBeforeEdit, setValueBeforeEdit] = useState29("");
33038
- const labelWidth = Math.max(...fields.map((field) => field.label.length));
33039
- const current = fields[active];
33040
- useInput11((input, key) => {
33041
- if (busy) return;
33042
- if (editing) {
33043
- if (key.escape) {
33044
- onChange(current.key, valueBeforeEdit);
33045
- setEditing(false);
33046
- }
33047
- return;
33048
- }
33049
- if (key.escape || input === "q") {
33050
- onQuit();
33051
- return;
33052
- }
33053
- if (input === "s") {
33054
- onSave();
33055
- return;
33056
- }
33057
- if (input === "c") {
33058
- onChange(current.key, "");
33059
- return;
33060
- }
33061
- if (key.tab || key.downArrow) {
33062
- setActive((i) => (i + 1) % fields.length);
33063
- return;
33064
- }
33065
- if (key.upArrow) {
33066
- setActive((i) => (i - 1 + fields.length) % fields.length);
33067
- return;
33068
- }
33069
- if (key.return) {
33070
- setValueBeforeEdit(values[current.key]);
33071
- setEditing(true);
33072
- }
33073
- });
33074
- return /* @__PURE__ */ jsxs45(Box44, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
33075
- /* @__PURE__ */ jsx55(Text46, { bold: true, children: title }),
33076
- subtitle && /* @__PURE__ */ jsx55(Text46, { color: PALETTE.muted, children: subtitle }),
33077
- /* @__PURE__ */ jsx55(Text46, { children: " " }),
33078
- /* @__PURE__ */ jsx55(Box44, { flexDirection: "column", children: fields.map((field, index) => {
33079
- const isActive = index === active;
33080
- const value = values[field.key];
33081
- const display = field.masked ? "\u2022".repeat(value.length) : value;
33082
- return /* @__PURE__ */ jsxs45(Box44, { gap: 1, children: [
33083
- /* @__PURE__ */ jsx55(Text46, { color: isActive ? PALETTE.accent : void 0, children: isActive ? "\u276F" : " " }),
33084
- /* @__PURE__ */ jsx55(Box44, { width: labelWidth, flexShrink: 0, children: /* @__PURE__ */ jsx55(Text46, { bold: isActive, color: isActive ? PALETTE.accent : PALETTE.muted, children: field.label }) }),
33085
- isActive && editing ? /* @__PURE__ */ jsx55(
33086
- TextInput4,
33087
- {
33088
- value,
33089
- onChange: (next) => onChange(field.key, next),
33090
- onSubmit: () => setEditing(false),
33091
- mask: field.masked ? "\u2022" : void 0
33092
- }
33093
- ) : /* @__PURE__ */ jsx55(Text46, { bold: !!display, children: display || (field.hint ? "" : /* @__PURE__ */ jsx55(Text46, { color: PALETTE.muted, children: "(empty)" })) }),
33094
- field.hint && /* @__PURE__ */ jsx55(Text46, { color: PALETTE.muted, children: field.hint })
33095
- ] }, field.key);
33096
- }) }),
33097
- notice && /* @__PURE__ */ jsxs45(Fragment17, { children: [
33098
- /* @__PURE__ */ jsx55(Text46, { children: " " }),
33099
- /* @__PURE__ */ jsxs45(Text46, { color: notice.kind === "success" ? PALETTE.success : PALETTE.error, children: [
33100
- notice.kind === "success" ? "\u2713" : "\u2717",
33101
- " ",
33102
- notice.text
33103
- ] })
33104
- ] }),
33105
- footer,
33106
- /* @__PURE__ */ jsx55(Text46, { children: " " }),
33107
- /* @__PURE__ */ jsx55(
33108
- ControlHints,
33109
- {
33110
- hints: editing ? [
33111
- { keys: "type", label: "edit" },
33112
- { keys: "\u2190/\u2192", label: "move cursor" },
33113
- { keys: "\u23CE", label: "done" },
33114
- { keys: "Esc", label: "cancel edit" }
33115
- ] : [
33116
- { keys: "\u2191/\u2193", label: "move" },
33117
- { keys: "\u23CE", label: "edit" },
33118
- { keys: "c", label: "clear" },
33119
- { keys: "s", label: "save" },
33120
- { keys: "Esc/q", label: "back without saving" }
33121
- ]
33122
- }
33123
- )
33124
- ] });
33125
- }
33126
- var init_FieldForm = __esm({
33127
- "packages/experience-design-system-cli/src/tui/settings/shared/FieldForm.tsx"() {
33128
- "use strict";
33129
- init_home_theme();
33130
- init_control_hints();
33131
- }
33132
- });
33133
-
33134
- // packages/experience-design-system-cli/src/tui/settings/agents/agent-store.ts
33135
- function emptyAgents() {
33136
- return Object.fromEntries(AGENT_NAMES.map((name) => [name, { model: "" }]));
33137
- }
33138
- async function readAgentConfig() {
33139
- const store = await readV1Store();
33140
- const stored = asString(store["agent"]);
33141
- const defaultAgent = isAgentName(stored) ? stored : DEFAULT_AGENT3;
33142
- const agents = emptyAgents();
33143
- const saved = store["agents"];
33144
- if (saved && typeof saved === "object") {
33145
- for (const name of AGENT_NAMES) {
33146
- const entry = saved[name];
33147
- if (entry && typeof entry === "object")
33148
- agents[name] = { model: asString(entry["model"]) };
33149
- }
33150
- }
33151
- const legacyModel = asString(store["agentModel"]);
33152
- if (legacyModel && !agents[defaultAgent].model) agents[defaultAgent] = { model: legacyModel };
33153
- return { defaultAgent, agents };
33154
- }
33155
- async function writeAgentConfig(config) {
33156
- const existing = await readV1Store();
33157
- const merged = { ...existing };
33158
- const agents = {};
33159
- for (const name of AGENT_NAMES) {
33160
- const model = config.agents[name].model.trim();
33161
- if (model) agents[name] = { model };
33162
- }
33163
- merged["agent"] = config.defaultAgent;
33164
- const defaultModel = agents[config.defaultAgent]?.model;
33165
- if (defaultModel) merged["agentModel"] = defaultModel;
33166
- else delete merged["agentModel"];
33167
- if (Object.keys(agents).length > 0) merged["agents"] = agents;
33168
- else delete merged["agents"];
33169
- await writeV1Store(merged);
33170
- }
33171
- var DEFAULT_AGENT3, AGENT_LABELS, AGENT_HINTS, asString;
33172
- var init_agent_store = __esm({
33173
- "packages/experience-design-system-cli/src/tui/settings/agents/agent-store.ts"() {
33174
- "use strict";
33175
- init_src4();
33176
- init_v1_store();
33177
- DEFAULT_AGENT3 = "claude";
33178
- AGENT_LABELS = {
33179
- claude: "Claude Code",
33180
- codex: "OpenAI Codex",
33181
- opencode: "OpenCode",
33182
- cursor: "Cursor",
33183
- copilot: "GitHub Copilot"
33184
- };
33185
- AGENT_HINTS = {
33186
- claude: "claude",
33187
- codex: "codex",
33188
- opencode: "opencode",
33189
- cursor: "cursor-agent",
33190
- copilot: "copilot"
33191
- };
33192
- asString = (value) => typeof value === "string" ? value : "";
33193
- }
33194
- });
33195
-
33196
- // packages/experience-design-system-cli/src/tui/settings/agents/AgentScreens.tsx
33197
- import { useEffect as useEffect22, useState as useState30 } from "react";
33198
- import { Box as Box45, Text as Text47, useInput as useInput12 } from "ink";
33199
- import { Fragment as Fragment18, jsx as jsx56, jsxs as jsxs46 } from "react/jsx-runtime";
33200
- function AgentForm({
33201
- name,
33202
- config,
33203
- setConfig,
33204
- onBack
33205
- }) {
33206
- const [saving, setSaving] = useState30(false);
33207
- const [notice, setNotice] = useState30(null);
33208
- const save = () => {
33209
- setSaving(true);
33210
- setNotice(null);
33211
- writeAgentConfig(config).then(() => setNotice({ kind: "success", text: `${AGENT_LABELS[name]} settings saved` })).catch(
33212
- (err) => setNotice({ kind: "error", text: err instanceof Error ? err.message : "Failed to save" })
33213
- ).finally(() => setSaving(false));
33214
- };
33215
- return /* @__PURE__ */ jsx56(
33216
- FieldForm,
33217
- {
33218
- title: AGENT_LABELS[name],
33219
- subtitle: `Runs the \`${AGENT_HINTS[name]}\` command. ${config.defaultAgent === name ? "This is the default agent." : ""}`.trim(),
33220
- fields: MODEL_FIELDS,
33221
- values: { model: config.agents[name].model },
33222
- onChange: (_key, value) => {
33223
- setConfig({ ...config, agents: { ...config.agents, [name]: { model: value } } });
33224
- setNotice(null);
33225
- },
33226
- onSave: save,
33227
- onQuit: onBack,
33228
- notice,
33229
- busy: saving
33230
- }
33231
- );
33232
- }
33233
- function AgentsScreen({ onDone }) {
33234
- const [config, setConfig] = useState30(null);
33235
- const [focus, setFocus] = useState30(0);
33236
- const [open, setOpen] = useState30(null);
33237
- const [notice, setNotice] = useState30(null);
33238
- useEffect22(() => {
33239
- void readAgentConfig().then((loaded) => {
33240
- setConfig(loaded);
33241
- startDebugRun({
33242
- flow: "settings/agents",
33243
- step: "01-agents",
33244
- menuOption: "Configuration > Agents",
33245
- inputs: { default_agent: loaded.defaultAgent }
33246
- });
33247
- });
33248
- }, []);
33249
- const cycleDefault = (step) => {
33250
- if (!config) return;
33251
- const index = AGENT_NAMES.indexOf(config.defaultAgent);
33252
- const next = { ...config, defaultAgent: AGENT_NAMES[(index + step + AGENT_NAMES.length) % AGENT_NAMES.length] };
33253
- setConfig(next);
33254
- writeAgentConfig(next).then(() => setNotice({ kind: "success", text: `Default agent is now ${AGENT_LABELS[next.defaultAgent]}` })).catch(
33255
- (err) => setNotice({ kind: "error", text: err instanceof Error ? err.message : "Failed to save" })
33256
- );
33257
- };
33258
- useInput12((input, key) => {
33259
- if (!config || open) return;
33260
- const row = ROWS[focus];
33261
- if (key.upArrow) {
33262
- setFocus((i) => (i - 1 + ROWS.length) % ROWS.length);
33263
- return;
33264
- }
33265
- if (key.downArrow || key.tab) {
33266
- setFocus((i) => (i + 1) % ROWS.length);
33267
- return;
33268
- }
33269
- if (row.kind === "default" && key.leftArrow) {
33270
- cycleDefault(-1);
33271
- return;
33272
- }
33273
- if (row.kind === "default" && key.rightArrow) {
33274
- cycleDefault(1);
33275
- return;
33276
- }
33277
- if (key.return) {
33278
- if (row.kind === "default") cycleDefault(1);
33279
- else setOpen(row.name);
33280
- return;
33281
- }
33282
- if (key.escape || input === "q") {
33283
- void finishDebugRun({ outputs: { default_agent: config.defaultAgent }, status: "success", exitMethod: "saved" });
33284
- onDone();
33285
- }
33286
- });
33287
- if (!config) {
33288
- return /* @__PURE__ */ jsxs46(Box45, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
33289
- /* @__PURE__ */ jsx56(Text47, { bold: true, children: "Agents" }),
33290
- /* @__PURE__ */ jsx56(Text47, { children: " " }),
33291
- /* @__PURE__ */ jsx56(Text47, { color: PALETTE.accent, children: "Loading..." })
33292
- ] });
33293
- }
33294
- if (open) {
33295
- return /* @__PURE__ */ jsx56(AgentForm, { name: open, config, setConfig, onBack: () => setOpen(null) });
33296
- }
33297
- return /* @__PURE__ */ jsxs46(Box45, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
33298
- /* @__PURE__ */ jsx56(Text47, { bold: true, children: "Agents" }),
33299
- /* @__PURE__ */ jsx56(Text47, { color: PALETTE.muted, children: "The coding agent the CLI runs, and the settings for each one." }),
33300
- /* @__PURE__ */ jsx56(Text47, { children: " " }),
33301
- ROWS.map((row, index) => {
33302
- const isFocused = index === focus;
33303
- const pointer = /* @__PURE__ */ jsx56(Text47, { color: isFocused ? PALETTE.accent : void 0, children: isFocused ? "\u276F" : " " });
33304
- if (row.kind === "default") {
33305
- return /* @__PURE__ */ jsx56(Box45, { flexDirection: "column", marginBottom: 1, children: /* @__PURE__ */ jsxs46(Box45, { gap: 1, children: [
33306
- pointer,
33307
- /* @__PURE__ */ jsx56(Text47, { bold: isFocused, color: isFocused ? PALETTE.accent : PALETTE.muted, children: "Default agent" }),
33308
- /* @__PURE__ */ jsx56(Text47, { bold: true, children: `\u2039 ${AGENT_LABELS[config.defaultAgent]} \u203A` })
33309
- ] }) }, "default");
33310
- }
33311
- const model = config.agents[row.name].model;
33312
- return /* @__PURE__ */ jsxs46(Box45, { gap: 1, children: [
33313
- pointer,
33314
- /* @__PURE__ */ jsx56(Box45, { width: 16, flexShrink: 0, children: /* @__PURE__ */ jsx56(Text47, { bold: isFocused, color: isFocused ? PALETTE.accent : void 0, children: AGENT_LABELS[row.name] }) }),
33315
- /* @__PURE__ */ jsx56(Text47, { color: PALETTE.muted, children: model ? `model: ${model}` : "model: default" }),
33316
- row.name === config.defaultAgent && /* @__PURE__ */ jsx56(Text47, { color: PALETTE.success, children: "(default)" })
33317
- ] }, row.name);
33318
- }),
33319
- notice && /* @__PURE__ */ jsxs46(Fragment18, { children: [
33320
- /* @__PURE__ */ jsx56(Text47, { children: " " }),
33321
- /* @__PURE__ */ jsxs46(Text47, { color: notice.kind === "success" ? PALETTE.success : PALETTE.error, children: [
33322
- notice.kind === "success" ? "\u2713" : "\u2717",
33323
- " ",
33324
- notice.text
33325
- ] })
33326
- ] }),
33327
- /* @__PURE__ */ jsx56(Text47, { children: " " }),
33328
- /* @__PURE__ */ jsx56(
33329
- ControlHints,
33330
- {
33331
- hints: ROWS[focus].kind === "default" ? [
33332
- { keys: "\u2191/\u2193", label: "move" },
33333
- { keys: "\u2190/\u2192", label: "change default agent" },
33334
- { keys: "Esc/q", label: "back" }
33335
- ] : [
33336
- { keys: "\u2191/\u2193", label: "move" },
33337
- { keys: "\u23CE", label: "open" },
33338
- { keys: "Esc/q", label: "back" }
33339
- ]
33340
- }
33341
- )
33342
- ] });
33343
- }
33344
- var MODEL_FIELDS, ROWS;
33345
- var init_AgentScreens = __esm({
33346
- "packages/experience-design-system-cli/src/tui/settings/agents/AgentScreens.tsx"() {
33347
- "use strict";
33348
- init_src4();
33349
- init_home_theme();
33350
- init_control_hints();
33351
- init_debug_store();
33352
- init_FieldForm();
33353
- init_agent_store();
33354
- MODEL_FIELDS = [
33355
- { key: "model", label: "Model", hint: "(empty: the agent\u2019s own default)" }
33356
- ];
33357
- ROWS = [{ kind: "default" }, ...AGENT_NAMES.map((name) => ({ kind: "agent", name }))];
33358
- }
33359
- });
33360
-
33361
32999
  // packages/experience-design-system-cli/src/tui/settings/contentful-configuration/config-store.ts
33362
33000
  async function readCredentials() {
33363
33001
  const store = await readV1Store();
@@ -33389,10 +33027,11 @@ var init_config_store = __esm({
33389
33027
  }
33390
33028
  });
33391
33029
 
33392
- // packages/experience-design-system-cli/src/tui/settings/contentful-configuration/ProjectConfigScreen.tsx
33393
- import { useEffect as useEffect23, useState as useState31 } from "react";
33394
- import { Box as Box46, Text as Text48 } from "ink";
33395
- import { jsx as jsx57, jsxs as jsxs47 } from "react/jsx-runtime";
33030
+ // packages/experience-design-system-cli/src/tui/settings/contentful-configuration/ContentfulConfigScreen.tsx
33031
+ import { useEffect as useEffect22, useState as useState29 } from "react";
33032
+ import { Box as Box44, Text as Text46, useInput as useInput11 } from "ink";
33033
+ import TextInput4 from "ink-text-input";
33034
+ import { Fragment as Fragment17, jsx as jsx55, jsxs as jsxs45 } from "react/jsx-runtime";
33396
33035
  function debugFields(config) {
33397
33036
  return {
33398
33037
  space_id: config?.spaceId ?? "",
@@ -33404,159 +33043,189 @@ function debugFields(config) {
33404
33043
  contentful_base_dir: config?.contentfulBaseDir ?? ""
33405
33044
  };
33406
33045
  }
33407
- function ProjectConfigScreen({ onDone }) {
33408
- const [config, setConfig] = useState31(null);
33409
- const [saving, setSaving] = useState31(false);
33410
- const [notice, setNotice] = useState31(null);
33411
- const [lastSaved, setLastSaved] = useState31(null);
33412
- useEffect23(() => {
33413
- void readCredentials().then((cfg) => {
33046
+ function ConfigurationScreen({ onDone }) {
33047
+ const [stage, setStage] = useState29("loading");
33048
+ const [config, setConfig] = useState29(null);
33049
+ const [activeField, setActiveField] = useState29("spaceId");
33050
+ const [notice, setNotice] = useState29(null);
33051
+ const [lastSaved, setLastSaved] = useState29(null);
33052
+ const [editing, setEditing] = useState29(false);
33053
+ const [valueBeforeEdit, setValueBeforeEdit] = useState29("");
33054
+ useEffect22(() => {
33055
+ readCredentials().then((cfg) => {
33414
33056
  setConfig(cfg);
33057
+ setStage("form");
33415
33058
  startDebugRun({
33416
33059
  flow: "settings/contentful-configuration",
33417
33060
  step: "01-configuration",
33418
- menuOption: "Configuration > Project",
33061
+ menuOption: "Configuration",
33419
33062
  inputs: debugFields(cfg)
33420
33063
  });
33421
33064
  });
33422
33065
  }, []);
33423
- if (!config) {
33424
- return /* @__PURE__ */ jsxs47(Box46, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
33425
- /* @__PURE__ */ jsx57(Text48, { bold: true, children: "Project" }),
33426
- /* @__PURE__ */ jsx57(Text48, { children: " " }),
33427
- /* @__PURE__ */ jsx57(Text48, { color: PALETTE.accent, children: "Loading..." })
33428
- ] });
33066
+ function fieldValue(field) {
33067
+ if (!config) return "";
33068
+ return config[field] || "";
33429
33069
  }
33430
- const save = () => {
33431
- setSaving(true);
33070
+ function setFieldValue(field, value) {
33071
+ if (!config) return;
33072
+ setConfig({ ...config, [field]: value });
33073
+ setNotice(null);
33074
+ }
33075
+ function handleSave() {
33076
+ if (!config) return;
33077
+ setStage("saving");
33432
33078
  setNotice(null);
33433
33079
  writeCredentials(config).then(() => {
33434
33080
  setLastSaved(config);
33435
33081
  if (config.contentfulBaseDir) void startDebugSessionIn(config.contentfulBaseDir, { replace: true });
33436
- setNotice({ kind: "success", text: "Project settings saved" });
33082
+ setNotice({ kind: "success", text: "Configuration saved" });
33083
+ setStage("form");
33437
33084
  }).catch((err) => {
33438
33085
  setNotice({ kind: "error", text: err instanceof Error ? err.message : "Failed to save" });
33439
- }).finally(() => setSaving(false));
33440
- };
33441
- const quit = () => {
33086
+ setStage("form");
33087
+ });
33088
+ }
33089
+ function quit() {
33442
33090
  void finishDebugRun(
33443
33091
  lastSaved ? { outputs: debugFields(lastSaved), status: "success", exitMethod: "saved" } : { outputs: {}, status: "success", exitMethod: "discarded" }
33444
33092
  );
33445
33093
  onDone();
33446
- };
33447
- return /* @__PURE__ */ jsx57(
33448
- FieldForm,
33449
- {
33450
- title: "Project",
33451
- subtitle: "The Contentful space and where the CLI keeps its files.",
33452
- fields: FIELDS2,
33453
- values: valuesOf(config),
33454
- onChange: (key, value) => {
33455
- setConfig({ ...config, [key]: value });
33456
- setNotice(null);
33457
- },
33458
- onSave: save,
33459
- onQuit: quit,
33460
- notice,
33461
- busy: saving
33462
- }
33463
- );
33464
- }
33465
- var FIELDS2, valuesOf;
33466
- var init_ProjectConfigScreen = __esm({
33467
- "packages/experience-design-system-cli/src/tui/settings/contentful-configuration/ProjectConfigScreen.tsx"() {
33468
- "use strict";
33469
- init_home_theme();
33470
- init_debug_store();
33471
- init_FieldForm();
33472
- init_config_store();
33473
- FIELDS2 = [
33474
- { key: "spaceId", label: "Space ID" },
33475
- { key: "environmentId", label: "Environment ID" },
33476
- { key: "cmaToken", label: "CMA Token", masked: true },
33477
- { key: "host", label: "API Host" },
33478
- { key: "defaultComponentDir", label: "Default component directory" },
33479
- { key: "defaultTokenFile", label: "Default token file" },
33480
- { key: "contentfulBaseDir", label: "Root Project Directory", hint: "(where .contentful goes)" }
33481
- ];
33482
- valuesOf = (config) => Object.fromEntries(FIELDS2.map(({ key }) => [key, config[key] || ""]));
33483
33094
  }
33484
- });
33485
-
33486
- // packages/experience-design-system-cli/src/tui/settings/contentful-configuration/ContentfulConfigScreen.tsx
33487
- import { useState as useState32 } from "react";
33488
- import { Box as Box47, Text as Text49, useInput as useInput13 } from "ink";
33489
- import { jsx as jsx58, jsxs as jsxs48 } from "react/jsx-runtime";
33490
- function ConfigurationScreen({ onDone }) {
33491
- const [focus, setFocus] = useState32(0);
33492
- const [open, setOpen] = useState32(null);
33493
- const close = () => setOpen(null);
33494
- useInput13((input, key) => {
33495
- if (open) return;
33496
- if (key.upArrow) {
33497
- setFocus((i) => (i - 1 + SECTIONS.length) % SECTIONS.length);
33095
+ useInput11((input, key) => {
33096
+ if (stage === "loading" || stage === "saving") return;
33097
+ if (editing) {
33098
+ if (key.escape) {
33099
+ setFieldValue(activeField, valueBeforeEdit);
33100
+ setEditing(false);
33101
+ }
33498
33102
  return;
33499
33103
  }
33500
- if (key.downArrow || key.tab) {
33501
- setFocus((i) => (i + 1) % SECTIONS.length);
33104
+ if (key.escape || input === "q") {
33105
+ quit();
33502
33106
  return;
33503
33107
  }
33504
- if (key.return) {
33505
- setOpen(SECTIONS[focus].id);
33108
+ if (input === "s") {
33109
+ handleSave();
33506
33110
  return;
33507
33111
  }
33508
- if (key.escape || input === "q") onDone();
33112
+ if (input === "c") {
33113
+ setFieldValue(activeField, "");
33114
+ return;
33115
+ }
33116
+ if (key.tab || key.downArrow) {
33117
+ const idx = FIELD_ORDER.indexOf(activeField);
33118
+ setActiveField(FIELD_ORDER[(idx + 1) % FIELD_ORDER.length]);
33119
+ return;
33120
+ }
33121
+ if (key.upArrow) {
33122
+ const idx = FIELD_ORDER.indexOf(activeField);
33123
+ setActiveField(FIELD_ORDER[(idx - 1 + FIELD_ORDER.length) % FIELD_ORDER.length]);
33124
+ return;
33125
+ }
33126
+ if (key.return) {
33127
+ setValueBeforeEdit(fieldValue(activeField));
33128
+ setEditing(true);
33129
+ }
33509
33130
  });
33510
- if (open === "project") return /* @__PURE__ */ jsx58(ProjectConfigScreen, { onDone: close });
33511
- if (open === "agents") return /* @__PURE__ */ jsx58(AgentsScreen, { onDone: close });
33512
- return /* @__PURE__ */ jsxs48(Box47, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
33513
- /* @__PURE__ */ jsx58(Text49, { bold: true, children: "Configuration" }),
33514
- /* @__PURE__ */ jsx58(Text49, { children: " " }),
33515
- SECTIONS.map((section, index) => /* @__PURE__ */ jsxs48(Box47, { gap: 1, children: [
33516
- /* @__PURE__ */ jsx58(Text49, { color: index === focus ? PALETTE.accent : void 0, children: index === focus ? "\u276F" : " " }),
33517
- /* @__PURE__ */ jsx58(Box47, { width: 9, flexShrink: 0, children: /* @__PURE__ */ jsx58(Text49, { bold: index === focus, color: index === focus ? PALETTE.accent : void 0, children: section.label }) }),
33518
- /* @__PURE__ */ jsx58(Text49, { color: PALETTE.muted, children: section.description })
33519
- ] }, section.id)),
33520
- /* @__PURE__ */ jsx58(Text49, { children: " " }),
33521
- /* @__PURE__ */ jsx58(
33131
+ if (stage === "loading") {
33132
+ return /* @__PURE__ */ jsxs45(Box44, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
33133
+ /* @__PURE__ */ jsx55(Text46, { bold: true, children: "Configuration" }),
33134
+ /* @__PURE__ */ jsx55(Text46, { children: " " }),
33135
+ /* @__PURE__ */ jsx55(Text46, { color: PALETTE.accent, children: "Loading..." })
33136
+ ] });
33137
+ }
33138
+ return /* @__PURE__ */ jsxs45(Box44, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
33139
+ /* @__PURE__ */ jsx55(Text46, { bold: true, children: "Configuration" }),
33140
+ /* @__PURE__ */ jsx55(Text46, { children: " " }),
33141
+ /* @__PURE__ */ jsx55(Box44, { flexDirection: "column", children: FIELD_ORDER.map((field) => {
33142
+ const isActive = activeField === field;
33143
+ const value = fieldValue(field);
33144
+ const display = field === "cmaToken" ? "\u2022".repeat(value.length) : value;
33145
+ return /* @__PURE__ */ jsxs45(Box44, { gap: 1, children: [
33146
+ /* @__PURE__ */ jsx55(Text46, { color: isActive ? PALETTE.accent : void 0, children: isActive ? "\u276F" : " " }),
33147
+ /* @__PURE__ */ jsx55(Box44, { width: LABEL_WIDTH, flexShrink: 0, children: /* @__PURE__ */ jsx55(Text46, { bold: isActive, color: isActive ? PALETTE.accent : PALETTE.muted, children: FIELD_LABELS[field] }) }),
33148
+ isActive && editing ? /* @__PURE__ */ jsx55(
33149
+ TextInput4,
33150
+ {
33151
+ value,
33152
+ onChange: (next) => setFieldValue(field, next),
33153
+ onSubmit: () => setEditing(false),
33154
+ mask: field === "cmaToken" ? "\u2022" : void 0
33155
+ }
33156
+ ) : /* @__PURE__ */ jsx55(Text46, { bold: !!display, children: display || (FIELD_HINTS[field] ? "" : /* @__PURE__ */ jsx55(Text46, { color: PALETTE.muted, children: "(empty)" })) }),
33157
+ FIELD_HINTS[field] && /* @__PURE__ */ jsx55(Text46, { color: PALETTE.muted, children: FIELD_HINTS[field] })
33158
+ ] }, field);
33159
+ }) }),
33160
+ notice && /* @__PURE__ */ jsxs45(Fragment17, { children: [
33161
+ /* @__PURE__ */ jsx55(Text46, { children: " " }),
33162
+ /* @__PURE__ */ jsxs45(Text46, { color: notice.kind === "success" ? PALETTE.success : PALETTE.error, children: [
33163
+ notice.kind === "success" ? "\u2713" : "\u2717",
33164
+ " ",
33165
+ notice.text
33166
+ ] })
33167
+ ] }),
33168
+ /* @__PURE__ */ jsx55(Text46, { children: " " }),
33169
+ /* @__PURE__ */ jsx55(
33522
33170
  ControlHints,
33523
33171
  {
33524
- hints: [
33172
+ hints: editing ? [
33173
+ { keys: "type", label: "edit" },
33174
+ { keys: "\u2190/\u2192", label: "move cursor" },
33175
+ { keys: "\u23CE", label: "done" },
33176
+ { keys: "Esc", label: "cancel edit" }
33177
+ ] : [
33525
33178
  { keys: "\u2191/\u2193", label: "move" },
33526
- { keys: "\u23CE", label: "open" },
33527
- { keys: "Esc/q", label: "back" }
33179
+ { keys: "\u23CE", label: "edit" },
33180
+ { keys: "c", label: "clear" },
33181
+ { keys: "s", label: "save" },
33182
+ { keys: "Esc/q", label: "quit without saving" }
33528
33183
  ]
33529
33184
  }
33530
33185
  )
33531
33186
  ] });
33532
33187
  }
33533
- var SECTIONS;
33188
+ var FIELD_ORDER, FIELD_LABELS, FIELD_HINTS, LABEL_WIDTH;
33534
33189
  var init_ContentfulConfigScreen = __esm({
33535
33190
  "packages/experience-design-system-cli/src/tui/settings/contentful-configuration/ContentfulConfigScreen.tsx"() {
33536
33191
  "use strict";
33537
- init_home_theme();
33192
+ init_theme();
33193
+ init_config_store();
33194
+ init_debug_store();
33538
33195
  init_control_hints();
33539
- init_AgentScreens();
33540
- init_ProjectConfigScreen();
33541
- SECTIONS = [
33542
- {
33543
- id: "project",
33544
- label: "Project",
33545
- description: "Contentful space, credentials, defaults and where .contentful goes"
33546
- },
33547
- { id: "agents", label: "Agents", description: "Which coding agent the CLI uses, and each agent\u2019s settings" }
33196
+ FIELD_ORDER = [
33197
+ "spaceId",
33198
+ "environmentId",
33199
+ "cmaToken",
33200
+ "host",
33201
+ "defaultComponentDir",
33202
+ "defaultTokenFile",
33203
+ "contentfulBaseDir"
33548
33204
  ];
33205
+ FIELD_LABELS = {
33206
+ spaceId: "Space ID",
33207
+ environmentId: "Environment ID",
33208
+ cmaToken: "CMA Token",
33209
+ host: "API Host",
33210
+ defaultComponentDir: "Default component directory",
33211
+ defaultTokenFile: "Default token file",
33212
+ contentfulBaseDir: "Root Project Directory"
33213
+ };
33214
+ FIELD_HINTS = {
33215
+ contentfulBaseDir: "(where .contentful goes)"
33216
+ };
33217
+ LABEL_WIDTH = Math.max(...Object.values(FIELD_LABELS).map((label) => label.length));
33549
33218
  }
33550
33219
  });
33551
33220
 
33552
33221
  // packages/experience-design-system-cli/src/tui/settings/opt-in-analytics/screen.tsx
33553
- import { useEffect as useEffect24, useState as useState33 } from "react";
33554
- import { Box as Box48, Text as Text50, useInput as useInput14 } from "ink";
33555
- import { Fragment as Fragment19, jsx as jsx59, jsxs as jsxs49 } from "react/jsx-runtime";
33222
+ import { useEffect as useEffect23, useState as useState30 } from "react";
33223
+ import { Box as Box45, Text as Text47, useInput as useInput12 } from "ink";
33224
+ import { Fragment as Fragment18, jsx as jsx56, jsxs as jsxs46 } from "react/jsx-runtime";
33556
33225
  function OptInAnalyticsScreen({ onDone }) {
33557
- const [loading, setLoading] = useState33(true);
33558
- const [enabled, setEnabled] = useState33(true);
33559
- useEffect24(() => {
33226
+ const [loading, setLoading] = useState30(true);
33227
+ const [enabled, setEnabled] = useState30(true);
33228
+ useEffect23(() => {
33560
33229
  readAnalyticsSetting().then((setting) => {
33561
33230
  setEnabled(setting.enabled);
33562
33231
  setLoading(false);
@@ -33568,7 +33237,7 @@ function OptInAnalyticsScreen({ onDone }) {
33568
33237
  });
33569
33238
  });
33570
33239
  }, []);
33571
- useInput14((input, key) => {
33240
+ useInput12((input, key) => {
33572
33241
  if (loading) return;
33573
33242
  if (key.return || input === " ") {
33574
33243
  setEnabled((current) => {
@@ -33583,21 +33252,21 @@ function OptInAnalyticsScreen({ onDone }) {
33583
33252
  onDone();
33584
33253
  }
33585
33254
  });
33586
- return /* @__PURE__ */ jsxs49(Box48, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
33587
- /* @__PURE__ */ jsx59(Text50, { bold: true, children: "Settings \u203A Opt-in Analytics" }),
33588
- /* @__PURE__ */ jsx59(Text50, { children: " " }),
33589
- loading ? /* @__PURE__ */ jsx59(Text50, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs49(Fragment19, { children: [
33590
- /* @__PURE__ */ jsxs49(Text50, { children: [
33255
+ return /* @__PURE__ */ jsxs46(Box45, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
33256
+ /* @__PURE__ */ jsx56(Text47, { bold: true, children: "Settings \u203A Opt-in Analytics" }),
33257
+ /* @__PURE__ */ jsx56(Text47, { children: " " }),
33258
+ loading ? /* @__PURE__ */ jsx56(Text47, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs46(Fragment18, { children: [
33259
+ /* @__PURE__ */ jsxs46(Text47, { children: [
33591
33260
  "Share anonymous usage data:",
33592
33261
  " ",
33593
- /* @__PURE__ */ jsx59(Text50, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
33262
+ /* @__PURE__ */ jsx56(Text47, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
33594
33263
  ] }),
33595
- /* @__PURE__ */ jsx59(Text50, { children: " " }),
33596
- /* @__PURE__ */ jsx59(Text50, { color: PALETTE.muted, children: "Shares which CLI commands are used and where imports succeed or fail." }),
33597
- /* @__PURE__ */ jsx59(Text50, { color: PALETTE.muted, children: "Never includes source code, file paths, credentials, or authored content." })
33264
+ /* @__PURE__ */ jsx56(Text47, { children: " " }),
33265
+ /* @__PURE__ */ jsx56(Text47, { color: PALETTE.muted, children: "Shares which CLI commands are used and where imports succeed or fail." }),
33266
+ /* @__PURE__ */ jsx56(Text47, { color: PALETTE.muted, children: "Never includes source code, file paths, credentials, or authored content." })
33598
33267
  ] }),
33599
- /* @__PURE__ */ jsx59(Text50, { children: " " }),
33600
- /* @__PURE__ */ jsx59(
33268
+ /* @__PURE__ */ jsx56(Text47, { children: " " }),
33269
+ /* @__PURE__ */ jsx56(
33601
33270
  ControlHints,
33602
33271
  {
33603
33272
  hints: [
@@ -33611,7 +33280,7 @@ function OptInAnalyticsScreen({ onDone }) {
33611
33280
  var init_screen11 = __esm({
33612
33281
  "packages/experience-design-system-cli/src/tui/settings/opt-in-analytics/screen.tsx"() {
33613
33282
  "use strict";
33614
- init_home_theme();
33283
+ init_theme();
33615
33284
  init_analytics_store();
33616
33285
  init_debug_store();
33617
33286
  init_control_hints();
@@ -33619,12 +33288,12 @@ var init_screen11 = __esm({
33619
33288
  });
33620
33289
 
33621
33290
  // packages/experience-design-system-cli/src/tui/upgrade/PageContainer.tsx
33622
- import { useEffect as useEffect25, useState as useState34 } from "react";
33623
- import { Box as Box49, Text as Text51, useInput as useInput15 } from "ink";
33624
- import { jsx as jsx60, jsxs as jsxs50 } from "react/jsx-runtime";
33291
+ import { useEffect as useEffect24, useState as useState31 } from "react";
33292
+ import { Box as Box46, Text as Text48, useInput as useInput13 } from "ink";
33293
+ import { jsx as jsx57, jsxs as jsxs47 } from "react/jsx-runtime";
33625
33294
  function UpgradeScreen({ onDone }) {
33626
- const [upgradeCheck, setUpgradeCheck] = useState34();
33627
- useEffect25(() => {
33295
+ const [upgradeCheck, setUpgradeCheck] = useState31();
33296
+ useEffect24(() => {
33628
33297
  startDebugRun({
33629
33298
  flow: "upgrade",
33630
33299
  step: "01-upgrade",
@@ -33633,7 +33302,7 @@ function UpgradeScreen({ onDone }) {
33633
33302
  });
33634
33303
  checkForUpgrade().then(setUpgradeCheck).catch(() => setUpgradeCheck({ status: "error" }));
33635
33304
  }, []);
33636
- useInput15((_input, key) => {
33305
+ useInput13((_input, key) => {
33637
33306
  if (key.return) {
33638
33307
  void finishDebugRun({
33639
33308
  outputs: upgradeCheck ?? {},
@@ -33644,12 +33313,12 @@ function UpgradeScreen({ onDone }) {
33644
33313
  return;
33645
33314
  }
33646
33315
  });
33647
- return /* @__PURE__ */ jsxs50(Box49, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
33648
- /* @__PURE__ */ jsx60(Text51, { bold: true, children: "Upgrade" }),
33649
- /* @__PURE__ */ jsx60(Text51, { children: " " }),
33316
+ return /* @__PURE__ */ jsxs47(Box46, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
33317
+ /* @__PURE__ */ jsx57(Text48, { bold: true, children: "Upgrade" }),
33318
+ /* @__PURE__ */ jsx57(Text48, { children: " " }),
33650
33319
  renderBody(upgradeCheck),
33651
- /* @__PURE__ */ jsx60(Text51, { children: " " }),
33652
- /* @__PURE__ */ jsxs50(Text51, { bold: true, color: PALETTE.accent, children: [
33320
+ /* @__PURE__ */ jsx57(Text48, { children: " " }),
33321
+ /* @__PURE__ */ jsxs47(Text48, { bold: true, color: PALETTE.accent, children: [
33653
33322
  FOCUS_MARKER,
33654
33323
  " Go Back"
33655
33324
  ] })
@@ -33657,40 +33326,41 @@ function UpgradeScreen({ onDone }) {
33657
33326
  }
33658
33327
  function renderBody(upgradeCheck) {
33659
33328
  if (!upgradeCheck) {
33660
- return /* @__PURE__ */ jsx60(Text51, { color: PALETTE.muted, children: "Checking for updates\u2026" });
33329
+ return /* @__PURE__ */ jsx57(Text48, { color: PALETTE.muted, children: "Checking for updates\u2026" });
33661
33330
  }
33662
33331
  if (upgradeCheck.status === "error") {
33663
- return /* @__PURE__ */ jsx60(Text51, { color: PALETTE.warning, children: "Couldn't check for updates \u2014 check your network connection and try again." });
33332
+ return /* @__PURE__ */ jsx57(Text48, { color: PALETTE.warning, children: "Couldn't check for updates \u2014 check your network connection and try again." });
33664
33333
  }
33665
33334
  if (upgradeCheck.status === "up-to-date") {
33666
- return /* @__PURE__ */ jsxs50(Text51, { color: PALETTE.success, children: [
33335
+ return /* @__PURE__ */ jsxs47(Text48, { color: PALETTE.success, children: [
33667
33336
  "You're already on the latest version (v",
33668
33337
  upgradeCheck.current,
33669
33338
  ")."
33670
33339
  ] });
33671
33340
  }
33672
- return /* @__PURE__ */ jsxs50(Box49, { flexDirection: "column", children: [
33673
- /* @__PURE__ */ jsxs50(Text51, { color: PALETTE.muted, children: [
33674
- /* @__PURE__ */ jsxs50(Text51, { bold: true, color: PALETTE.success, children: [
33341
+ return /* @__PURE__ */ jsxs47(Box46, { flexDirection: "column", children: [
33342
+ /* @__PURE__ */ jsxs47(Text48, { color: PALETTE.muted, children: [
33343
+ /* @__PURE__ */ jsxs47(Text48, { bold: true, color: PALETTE.success, children: [
33675
33344
  "v",
33676
33345
  upgradeCheck.latest
33677
33346
  ] }),
33678
33347
  " ",
33679
33348
  "is available (you're on ",
33680
- /* @__PURE__ */ jsxs50(Text51, { bold: true, children: [
33349
+ /* @__PURE__ */ jsxs47(Text48, { bold: true, children: [
33681
33350
  "v",
33682
33351
  upgradeCheck.current
33683
33352
  ] }),
33684
33353
  "). Exit this program, cd into the root of your local clone of contentful/experience-design-system-sdk-public, then run:"
33685
33354
  ] }),
33686
- /* @__PURE__ */ jsx60(Text51, { children: " " }),
33687
- /* @__PURE__ */ jsx60(Box49, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.border, paddingX: 1, children: UPGRADE_COMMANDS.map((cmd) => /* @__PURE__ */ jsx60(Text51, { bold: true, children: cmd }, cmd)) })
33355
+ /* @__PURE__ */ jsx57(Text48, { children: " " }),
33356
+ /* @__PURE__ */ jsx57(Box46, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.border, paddingX: 1, children: UPGRADE_COMMANDS.map((cmd) => /* @__PURE__ */ jsx57(Text48, { bold: true, children: cmd }, cmd)) })
33688
33357
  ] });
33689
33358
  }
33690
33359
  var UPGRADE_COMMANDS;
33691
33360
  var init_PageContainer4 = __esm({
33692
33361
  "packages/experience-design-system-cli/src/tui/upgrade/PageContainer.tsx"() {
33693
33362
  "use strict";
33363
+ init_theme();
33694
33364
  init_home_theme();
33695
33365
  init_version();
33696
33366
  init_debug_store();
@@ -33699,13 +33369,13 @@ var init_PageContainer4 = __esm({
33699
33369
  });
33700
33370
 
33701
33371
  // packages/experience-design-system-cli/src/tui/settings/debug-mode/screen.tsx
33702
- import { useEffect as useEffect26, useState as useState35 } from "react";
33703
- import { Box as Box50, Text as Text52, useInput as useInput16 } from "ink";
33704
- import { jsx as jsx61, jsxs as jsxs51 } from "react/jsx-runtime";
33372
+ import { useEffect as useEffect25, useState as useState32 } from "react";
33373
+ import { Box as Box47, Text as Text49, useInput as useInput14 } from "ink";
33374
+ import { jsx as jsx58, jsxs as jsxs48 } from "react/jsx-runtime";
33705
33375
  function DebugModeScreen({ onDone }) {
33706
- const [loading, setLoading] = useState35(true);
33707
- const [enabled, setEnabled] = useState35(true);
33708
- useEffect26(() => {
33376
+ const [loading, setLoading] = useState32(true);
33377
+ const [enabled, setEnabled] = useState32(true);
33378
+ useEffect25(() => {
33709
33379
  readDebugModeSetting().then((setting) => {
33710
33380
  setEnabled(setting.enabled);
33711
33381
  setLoading(false);
@@ -33717,7 +33387,7 @@ function DebugModeScreen({ onDone }) {
33717
33387
  });
33718
33388
  });
33719
33389
  }, []);
33720
- useInput16((input, key) => {
33390
+ useInput14((input, key) => {
33721
33391
  if (loading) return;
33722
33392
  if (key.return || input === " ") {
33723
33393
  setEnabled((current) => {
@@ -33732,16 +33402,16 @@ function DebugModeScreen({ onDone }) {
33732
33402
  onDone();
33733
33403
  }
33734
33404
  });
33735
- return /* @__PURE__ */ jsxs51(Box50, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
33736
- /* @__PURE__ */ jsx61(Text52, { bold: true, children: "Settings \u203A Debug Mode" }),
33737
- /* @__PURE__ */ jsx61(Text52, { children: " " }),
33738
- loading ? /* @__PURE__ */ jsx61(Text52, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs51(Text52, { children: [
33405
+ return /* @__PURE__ */ jsxs48(Box47, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
33406
+ /* @__PURE__ */ jsx58(Text49, { bold: true, children: "Settings \u203A Debug Mode" }),
33407
+ /* @__PURE__ */ jsx58(Text49, { children: " " }),
33408
+ loading ? /* @__PURE__ */ jsx58(Text49, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs48(Text49, { children: [
33739
33409
  "Debug logging:",
33740
33410
  " ",
33741
- /* @__PURE__ */ jsx61(Text52, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
33411
+ /* @__PURE__ */ jsx58(Text49, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
33742
33412
  ] }),
33743
- /* @__PURE__ */ jsx61(Text52, { children: " " }),
33744
- /* @__PURE__ */ jsx61(
33413
+ /* @__PURE__ */ jsx58(Text49, { children: " " }),
33414
+ /* @__PURE__ */ jsx58(
33745
33415
  ControlHints,
33746
33416
  {
33747
33417
  hints: [
@@ -33755,7 +33425,7 @@ function DebugModeScreen({ onDone }) {
33755
33425
  var init_screen12 = __esm({
33756
33426
  "packages/experience-design-system-cli/src/tui/settings/debug-mode/screen.tsx"() {
33757
33427
  "use strict";
33758
- init_home_theme();
33428
+ init_theme();
33759
33429
  init_debug_mode_store();
33760
33430
  init_debug_store();
33761
33431
  init_control_hints();
@@ -33767,20 +33437,20 @@ var app_exports = {};
33767
33437
  __export(app_exports, {
33768
33438
  runApp: () => runApp
33769
33439
  });
33770
- import { join as join28 } from "node:path";
33771
- import { useEffect as useEffect27, useState as useState36 } from "react";
33772
- import { Fragment as Fragment20, jsx as jsx62 } from "react/jsx-runtime";
33440
+ import { join as join27 } from "node:path";
33441
+ import { useEffect as useEffect26, useState as useState33 } from "react";
33442
+ import { Fragment as Fragment19, jsx as jsx59 } from "react/jsx-runtime";
33773
33443
  function App({ importOptions, inkClear }) {
33774
- const [screen, setScreen] = useState36("start");
33775
- const [importExitCode, setImportExitCode] = useState36();
33444
+ const [screen, setScreen] = useState33("start");
33445
+ const [importExitCode, setImportExitCode] = useState33();
33776
33446
  const showImportResult = importExitCode !== void 0;
33777
- const [projectPath, setProjectPath] = useState36();
33778
- const [tokensPath, setTokensPath] = useState36();
33779
- const [scannedFiles, setScannedFiles] = useState36();
33780
- const [pendingLaunch, setPendingLaunch] = useState36();
33781
- const [extractionRun, setExtractionRun] = useState36();
33447
+ const [projectPath, setProjectPath] = useState33();
33448
+ const [tokensPath, setTokensPath] = useState33();
33449
+ const [scannedFiles, setScannedFiles] = useState33();
33450
+ const [pendingLaunch, setPendingLaunch] = useState33();
33451
+ const [extractionRun, setExtractionRun] = useState33();
33782
33452
  const extraction = useExtraction(extractionRun?.input);
33783
- const [scopeRun, setScopeRun] = useState36();
33453
+ const [scopeRun, setScopeRun] = useState33();
33784
33454
  const scopeFlow = useScopeGateFlow(
33785
33455
  scopeRun && {
33786
33456
  sessionId: scopeRun.extraction.sessionId,
@@ -33795,12 +33465,12 @@ function App({ importOptions, inkClear }) {
33795
33465
  }
33796
33466
  }
33797
33467
  );
33798
- const [generationInput, setGenerationInput] = useState36();
33468
+ const [generationInput, setGenerationInput] = useState33();
33799
33469
  const generation = useGeneration(generationInput);
33800
- const [flowStart, setFlowStart] = useState36();
33470
+ const [flowStart, setFlowStart] = useState33();
33801
33471
  const flow = useFlow(flowStart, { beforeStepChange: inkClear });
33802
- const [importDefaults, setImportDefaults] = useState36();
33803
- useEffect27(() => {
33472
+ const [importDefaults, setImportDefaults] = useState33();
33473
+ useEffect26(() => {
33804
33474
  if (screen !== "import") {
33805
33475
  setImportDefaults(void 0);
33806
33476
  return;
@@ -33818,7 +33488,7 @@ function App({ importOptions, inkClear }) {
33818
33488
  const launch = { projectPath: projectPath2, tokens, filePaths, ...importOptions };
33819
33489
  const state2 = await inspectTokens({
33820
33490
  rawTokensPath: tokens,
33821
- contentfulDir: join28(resolveUserPath(projectPath2), ".contentful"),
33491
+ contentfulDir: join27(resolveUserPath(projectPath2), ".contentful"),
33822
33492
  cache: importOptions.cache
33823
33493
  });
33824
33494
  if (state2.kind === "cached") {
@@ -33860,12 +33530,12 @@ function App({ importOptions, inkClear }) {
33860
33530
  }
33861
33531
  });
33862
33532
  };
33863
- useEffect27(() => {
33533
+ useEffect26(() => {
33864
33534
  if (!extractionRun || extraction?.status !== "done" || !extraction.result.ok) return;
33865
33535
  setExtractionRun(void 0);
33866
33536
  setScopeRun({ ...extractionRun, extraction: extraction.result.extraction });
33867
33537
  }, [extraction, extractionRun]);
33868
- useEffect27(() => {
33538
+ useEffect26(() => {
33869
33539
  if (!scopeRun || scopeFlow?.status !== "confirmed" || generationInput) return;
33870
33540
  const { extraction: produced, input, generatePromptPath } = scopeRun;
33871
33541
  setGenerationInput({
@@ -33883,7 +33553,7 @@ function App({ importOptions, inkClear }) {
33883
33553
  ...generatePromptPath ? { generatePromptPath } : {}
33884
33554
  });
33885
33555
  }, [scopeFlow, scopeRun, generationInput]);
33886
- useEffect27(() => {
33556
+ useEffect26(() => {
33887
33557
  if (!scopeRun || generation?.status !== "done" || !generation.result.ok) return;
33888
33558
  const { credentialsSkipped, tokenStrategy, extraction: produced, input, generatePromptPath } = scopeRun;
33889
33559
  inkClear();
@@ -33926,9 +33596,9 @@ function App({ importOptions, inkClear }) {
33926
33596
  };
33927
33597
  switch (screen) {
33928
33598
  case "import":
33929
- if (showImportResult) return /* @__PURE__ */ jsx62(ImportScreen, { exitCode: importExitCode, onDone: finishImportResult });
33599
+ if (showImportResult) return /* @__PURE__ */ jsx59(ImportScreen, { exitCode: importExitCode, onDone: finishImportResult });
33930
33600
  if (flow && flowStart) {
33931
- return /* @__PURE__ */ jsx62(
33601
+ return /* @__PURE__ */ jsx59(
33932
33602
  FlowScreen,
33933
33603
  {
33934
33604
  state: flow.state,
@@ -33938,12 +33608,12 @@ function App({ importOptions, inkClear }) {
33938
33608
  }
33939
33609
  );
33940
33610
  }
33941
- if (importDefaults === void 0) return /* @__PURE__ */ jsx62(Fragment20, {});
33611
+ if (importDefaults === void 0) return /* @__PURE__ */ jsx59(Fragment19, {});
33942
33612
  if (projectPath === void 0) {
33943
- return /* @__PURE__ */ jsx62(WelcomeScreen, { onContinue: setProjectPath, onQuit: leaveImport, initialPath: importDefaults.componentDir });
33613
+ return /* @__PURE__ */ jsx59(WelcomeScreen, { onContinue: setProjectPath, onQuit: leaveImport, initialPath: importDefaults.componentDir });
33944
33614
  }
33945
33615
  if (tokensPath === void 0) {
33946
- return /* @__PURE__ */ jsx62(
33616
+ return /* @__PURE__ */ jsx59(
33947
33617
  TokenInputScreen,
33948
33618
  {
33949
33619
  initialPath: importDefaults.tokenFile,
@@ -33953,7 +33623,7 @@ function App({ importOptions, inkClear }) {
33953
33623
  );
33954
33624
  }
33955
33625
  if (scannedFiles === void 0) {
33956
- return /* @__PURE__ */ jsx62(
33626
+ return /* @__PURE__ */ jsx59(
33957
33627
  PathValidationScreen,
33958
33628
  {
33959
33629
  projectPath,
@@ -33965,10 +33635,10 @@ function App({ importOptions, inkClear }) {
33965
33635
  }
33966
33636
  if (extractionRun) {
33967
33637
  if (extraction?.status === "done" && !extraction.result.ok) {
33968
- return /* @__PURE__ */ jsx62(ErrorStep, { stepName: extraction.result.step, message: extraction.result.message, onExit: leaveImport });
33638
+ return /* @__PURE__ */ jsx59(ErrorStep, { stepName: extraction.result.step, message: extraction.result.message, onExit: leaveImport });
33969
33639
  }
33970
33640
  if (extraction?.status === "running") {
33971
- return /* @__PURE__ */ jsx62(
33641
+ return /* @__PURE__ */ jsx59(
33972
33642
  ExtractionScreen,
33973
33643
  {
33974
33644
  progress: extraction.progress,
@@ -33977,14 +33647,14 @@ function App({ importOptions, inkClear }) {
33977
33647
  }
33978
33648
  );
33979
33649
  }
33980
- return /* @__PURE__ */ jsx62(Fragment20, {});
33650
+ return /* @__PURE__ */ jsx59(Fragment19, {});
33981
33651
  }
33982
33652
  if (scopeRun && scopeFlow) {
33983
33653
  if (scopeFlow.status === "failed") {
33984
- return /* @__PURE__ */ jsx62(ErrorStep, { stepName: "scope gate", message: scopeFlow.message, onExit: leaveImport });
33654
+ return /* @__PURE__ */ jsx59(ErrorStep, { stepName: "scope gate", message: scopeFlow.message, onExit: leaveImport });
33985
33655
  }
33986
33656
  if (scopeFlow.status === "deciding") {
33987
- return /* @__PURE__ */ jsx62(
33657
+ return /* @__PURE__ */ jsx59(
33988
33658
  ScopeGateScreen,
33989
33659
  {
33990
33660
  components: scopeFlow.load.components,
@@ -33994,7 +33664,7 @@ function App({ importOptions, inkClear }) {
33994
33664
  );
33995
33665
  }
33996
33666
  if (generation?.status === "done" && !generation.result.ok) {
33997
- return /* @__PURE__ */ jsx62(ErrorStep, { stepName: generation.result.step, message: generation.result.message, onExit: leaveImport });
33667
+ return /* @__PURE__ */ jsx59(ErrorStep, { stepName: generation.result.step, message: generation.result.message, onExit: leaveImport });
33998
33668
  }
33999
33669
  if (generation?.status === "running") {
34000
33670
  const hasRawTokens = scopeRun.input.rawTokensPath !== "";
@@ -34002,7 +33672,7 @@ function App({ importOptions, inkClear }) {
34002
33672
  hasRawTokens,
34003
33673
  mapTokensEligible: generation.progress.mapTokensEligible
34004
33674
  });
34005
- return /* @__PURE__ */ jsx62(
33675
+ return /* @__PURE__ */ jsx59(
34006
33676
  GenerationScreen,
34007
33677
  {
34008
33678
  progress: generation.progress,
@@ -34014,10 +33684,10 @@ function App({ importOptions, inkClear }) {
34014
33684
  }
34015
33685
  );
34016
33686
  }
34017
- return /* @__PURE__ */ jsx62(Fragment20, {});
33687
+ return /* @__PURE__ */ jsx59(Fragment19, {});
34018
33688
  }
34019
33689
  if (pendingLaunch?.cached) {
34020
- return /* @__PURE__ */ jsx62(
33690
+ return /* @__PURE__ */ jsx59(
34021
33691
  TokenReuseScreen,
34022
33692
  {
34023
33693
  tokensPath: pendingLaunch.cached.tokensPath,
@@ -34028,7 +33698,7 @@ function App({ importOptions, inkClear }) {
34028
33698
  }
34029
33699
  );
34030
33700
  }
34031
- return /* @__PURE__ */ jsx62(
33701
+ return /* @__PURE__ */ jsx59(
34032
33702
  CredentialsScreen,
34033
33703
  {
34034
33704
  initial: importDefaults.credentials,
@@ -34037,19 +33707,19 @@ function App({ importOptions, inkClear }) {
34037
33707
  }
34038
33708
  );
34039
33709
  case "help":
34040
- return /* @__PURE__ */ jsx62(HelpScreen, { onDone: goToStart });
33710
+ return /* @__PURE__ */ jsx59(HelpScreen, { onDone: goToStart });
34041
33711
  case "upgrade":
34042
- return /* @__PURE__ */ jsx62(UpgradeScreen, { onDone: goToStart });
33712
+ return /* @__PURE__ */ jsx59(UpgradeScreen, { onDone: goToStart });
34043
33713
  case "settings":
34044
- return /* @__PURE__ */ jsx62(SettingsScreen, { onNavigate: setScreen, onBack: goToStart });
33714
+ return /* @__PURE__ */ jsx59(SettingsScreen, { onNavigate: setScreen, onBack: goToStart });
34045
33715
  case "settings-configuration":
34046
- return /* @__PURE__ */ jsx62(ConfigurationScreen, { onDone: goToSettings });
33716
+ return /* @__PURE__ */ jsx59(ConfigurationScreen, { onDone: goToSettings });
34047
33717
  case "settings-opt-in-analytics":
34048
- return /* @__PURE__ */ jsx62(OptInAnalyticsScreen, { onDone: goToSettings });
33718
+ return /* @__PURE__ */ jsx59(OptInAnalyticsScreen, { onDone: goToSettings });
34049
33719
  case "settings-debug-mode":
34050
- return /* @__PURE__ */ jsx62(DebugModeScreen, { onDone: goToSettings });
33720
+ return /* @__PURE__ */ jsx59(DebugModeScreen, { onDone: goToSettings });
34051
33721
  case "start":
34052
- return /* @__PURE__ */ jsx62(HomeScreen, { onNavigate: setScreen });
33722
+ return /* @__PURE__ */ jsx59(HomeScreen, { onNavigate: setScreen });
34053
33723
  }
34054
33724
  }
34055
33725
  async function runApp(renderApp, importOptions) {
@@ -34057,7 +33727,7 @@ async function runApp(renderApp, importOptions) {
34057
33727
  instance.clear?.();
34058
33728
  process.stdout.write("\x1B[H\x1B[0J");
34059
33729
  };
34060
- const instance = renderApp(/* @__PURE__ */ jsx62(App, { importOptions, inkClear }));
33730
+ const instance = renderApp(/* @__PURE__ */ jsx59(App, { importOptions, inkClear }));
34061
33731
  await instance.waitUntilExit();
34062
33732
  }
34063
33733
  var init_app = __esm({
@@ -34092,7 +33762,7 @@ var init_app = __esm({
34092
33762
  // packages/experience-design-system-cli/program.ts
34093
33763
  init_src4();
34094
33764
  import { readFileSync as readFileSync9 } from "node:fs";
34095
- import { join as join29 } from "node:path";
33765
+ import { join as join28 } from "node:path";
34096
33766
  import { Command } from "commander";
34097
33767
 
34098
33768
  // packages/experience-design-system-cli/src/legacy/run-legacy.ts
@@ -34196,14 +33866,14 @@ function runDevWatch(args) {
34196
33866
  process.stderr.write("--watch only works from a checkout of the repo (scripts/dev.mjs is not in the package).\n");
34197
33867
  return Promise.resolve(1);
34198
33868
  }
34199
- return new Promise((resolve28) => {
33869
+ return new Promise((resolve27) => {
34200
33870
  const child = spawn4(process.execPath, [script, ...args], { stdio: "inherit" });
34201
33871
  process.on("SIGINT", () => void 0);
34202
- child.on("exit", (code) => resolve28(code ?? 0));
33872
+ child.on("exit", (code) => resolve27(code ?? 0));
34203
33873
  child.on("error", (err) => {
34204
33874
  process.stderr.write(`${err.message}
34205
33875
  `);
34206
- resolve28(1);
33876
+ resolve27(1);
34207
33877
  });
34208
33878
  });
34209
33879
  }
@@ -34229,7 +33899,7 @@ init_analytics_store();
34229
33899
  init_package_root();
34230
33900
  var pkg = JSON.parse(
34231
33901
  readFileSync9(
34232
- join29(findPackageRoot(import.meta.url, "@contentful/experience-design-system-cli"), "package.json"),
33902
+ join28(findPackageRoot(import.meta.url, "@contentful/experience-design-system-cli"), "package.json"),
34233
33903
  "utf8"
34234
33904
  )
34235
33905
  );
@@ -34270,7 +33940,7 @@ init_config();
34270
33940
  init_package_root();
34271
33941
  import { existsSync as existsSync12 } from "node:fs";
34272
33942
  import { mkdir as mkdir10, readFile as readFile19, rename as rename3, rmdir, unlink } from "node:fs/promises";
34273
- import { dirname as dirname16, join as join30 } from "node:path";
33943
+ import { dirname as dirname16, join as join29 } from "node:path";
34274
33944
  var PACKAGE_NAME4 = "@contentful/experience-design-system-cli";
34275
33945
  async function readJson(path5) {
34276
33946
  try {
@@ -34281,9 +33951,9 @@ async function readJson(path5) {
34281
33951
  }
34282
33952
  async function migrateOldConfig() {
34283
33953
  try {
34284
- const oldCredentials = join30(oldConfigDir2(), "credentials.json");
34285
- const oldRuns = join30(oldConfigDir2(), "runs.json");
34286
- const oldDebugMode = join30(
33954
+ const oldCredentials = join29(oldConfigDir2(), "credentials.json");
33955
+ const oldRuns = join29(oldConfigDir2(), "runs.json");
33956
+ const oldDebugMode = join29(
34287
33957
  findPackageRoot(import.meta.url, PACKAGE_NAME4),
34288
33958
  ".contentful",
34289
33959
  "config",