@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/app.js +473 -769
- package/dist/index.js +542 -872
- package/dist/package.json +1 -1
- package/dist/src/tui/home/home.theme.d.ts +0 -8
- package/dist/src/tui/import/steps/07-scope-gate/sidebar/theme.d.ts +4 -4
- package/dist/src/tui/import/steps/10-flow/theme.d.ts +14 -5
- package/dist/src/tui/settings/contentful-configuration/ContentfulConfigScreen.d.ts +0 -1
- package/dist/src/tui/theme.d.ts +19 -0
- package/legacy/package.json +1 -1
- package/package.json +3 -3
- package/dist/src/tui/help/file-locations.d.ts +0 -23
- package/dist/src/tui/import/steps/09-review/theme.d.ts +0 -9
- package/dist/src/tui/settings/agents/AgentScreens.d.ts +0 -8
- package/dist/src/tui/settings/agents/agent-store.d.ts +0 -14
- package/dist/src/tui/settings/contentful-configuration/ProjectConfigScreen.d.ts +0 -5
- package/dist/src/tui/settings/shared/FieldForm.d.ts +0 -35
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((
|
|
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
|
-
|
|
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((
|
|
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
|
-
|
|
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
|
-
|
|
1594
|
+
resolve27("unauthenticated");
|
|
1595
1595
|
return;
|
|
1596
1596
|
}
|
|
1597
1597
|
try {
|
|
1598
1598
|
const status = JSON.parse(stdout);
|
|
1599
|
-
|
|
1599
|
+
resolve27(status.loggedIn ? "ok" : "unauthenticated");
|
|
1600
1600
|
} catch {
|
|
1601
|
-
|
|
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((
|
|
1611
|
+
return new Promise((resolve27) => {
|
|
1612
1612
|
const child = spawn2(process.platform === "win32" ? "where" : "which", [binary], { stdio: "ignore" });
|
|
1613
|
-
child.on("close", (code) =>
|
|
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((
|
|
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((
|
|
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((
|
|
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
|
|
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
|
-
|
|
19604
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
25701
|
-
/* @__PURE__ */ jsx27(Text23, { color: active ?
|
|
25702
|
-
active && /* @__PURE__ */ jsx27(Text23, { color:
|
|
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 ?
|
|
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 ?
|
|
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 ?
|
|
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 ?
|
|
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:
|
|
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 ?
|
|
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:
|
|
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 ?
|
|
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 :
|
|
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 ?
|
|
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 :
|
|
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 ?
|
|
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:
|
|
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 ?
|
|
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 :
|
|
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 ?
|
|
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 :
|
|
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 ?
|
|
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" ?
|
|
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" ?
|
|
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:
|
|
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 ?
|
|
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:
|
|
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:
|
|
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" ?
|
|
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:
|
|
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" ?
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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 ?
|
|
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:
|
|
26942
|
-
/* @__PURE__ */ jsx27(Text23, { bold: true, color:
|
|
26943
|
-
/* @__PURE__ */ jsx27(Text23, { color:
|
|
26944
|
-
/* @__PURE__ */ jsx27(Text23, { color:
|
|
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:
|
|
26949
|
-
/* @__PURE__ */ jsx27(Text23, { bold: true, color:
|
|
26950
|
-
/* @__PURE__ */ jsx27(Text23, { color:
|
|
26951
|
-
/* @__PURE__ */ jsx27(Text23, { color:
|
|
26952
|
-
/* @__PURE__ */ jsx27(Text23, { color:
|
|
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:
|
|
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 ?
|
|
27172
|
+
borderColor: hasEmptyProperties ? PALETTE.warning : active ? PALETTE.accent : PALETTE.border,
|
|
27164
27173
|
children: [
|
|
27165
|
-
hasEmptyProperties && /* @__PURE__ */ jsx27(Text23, { color:
|
|
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:
|
|
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:
|
|
27227
|
-
/* @__PURE__ */ jsx27(Text23, { color:
|
|
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:
|
|
27234
|
-
lines.map((ln, i) => /* @__PURE__ */ jsx27(Text23, { color:
|
|
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:
|
|
27239
|
-
/* @__PURE__ */ jsx27(Text23, { bold: true, color:
|
|
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:
|
|
27273
|
+
/* @__PURE__ */ jsx27(Text23, { color: PALETTE.muted, children: "press ? or Esc to close" })
|
|
27265
27274
|
] }),
|
|
27266
|
-
validationError && /* @__PURE__ */ jsx27(Text23, { color:
|
|
27267
|
-
/* @__PURE__ */ jsx27(Box21, { paddingTop: 1, children: /* @__PURE__ */ jsx27(Text23, { color:
|
|
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
|
-
|
|
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 ?
|
|
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 :
|
|
27337
|
-
line.suffix && /* @__PURE__ */ jsx28(Text24, { color:
|
|
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 ?
|
|
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
|
-
|
|
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 ?
|
|
27434
|
+
borderColor: active ? PALETTE.text : void 0,
|
|
27426
27435
|
children: [
|
|
27427
|
-
/* @__PURE__ */ jsx29(Box23, { children: /* @__PURE__ */ jsx29(Text25, { bold: true, color: active ? void 0 :
|
|
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
|
-
|
|
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 ?
|
|
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
|
-
|
|
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 :
|
|
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 :
|
|
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
|
-
|
|
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:
|
|
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 ?
|
|
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
|
-
|
|
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 ?
|
|
27667
|
+
borderColor: active ? PALETTE.text : void 0,
|
|
27659
27668
|
children: [
|
|
27660
|
-
/* @__PURE__ */ jsx34(Text28, { bold: true, color: active ? void 0 :
|
|
27661
|
-
/* @__PURE__ */ jsx34(Text28, { color:
|
|
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:
|
|
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(
|
|
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:
|
|
27672
|
-
/* @__PURE__ */ jsx34(Text28, { color:
|
|
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 ?
|
|
27701
|
+
borderColor: active ? PALETTE.text : void 0,
|
|
27685
27702
|
children: [
|
|
27686
|
-
/* @__PURE__ */ jsx34(Text28, { bold: true, color: active ? void 0 :
|
|
27687
|
-
suggestions.length === 0 && /* @__PURE__ */ jsx34(Text28, { color:
|
|
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 ?
|
|
27692
|
-
/* @__PURE__ */ jsx34(Text28, { color:
|
|
27693
|
-
/* @__PURE__ */ jsx34(Text28, { color:
|
|
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
|
-
|
|
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:
|
|
27786
|
-
source ? lines.map((line, index) => /* @__PURE__ */ jsx35(Text29, { color:
|
|
27787
|
-
/* @__PURE__ */ jsx35(Text29, { color:
|
|
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
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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 ?
|
|
28047
|
-
/* @__PURE__ */ jsx37(Box27, { width: contentWidth, height: 1, flexShrink: 0, children: /* @__PURE__ */ jsx37(Text30, { color:
|
|
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
|
-
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
28364
|
-
/* @__PURE__ */ jsx39(Text32, { color:
|
|
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:
|
|
28369
|
-
/* @__PURE__ */ jsx39(Text32, { color:
|
|
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:
|
|
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:
|
|
28378
|
-
hasMoreAbove && /* @__PURE__ */ jsx39(Text32, { color:
|
|
28379
|
-
windowed.map((rc) => /* @__PURE__ */ jsx39(Text32, { color:
|
|
28380
|
-
hasMoreBelow && /* @__PURE__ */ jsx39(Text32, { color:
|
|
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
|
-
|
|
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:
|
|
28922
|
-
/* @__PURE__ */ jsx41(Text34, { bold: true, color:
|
|
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
|
-
|
|
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:
|
|
29344
|
-
if (status === "running" && !hasCounts) return /* @__PURE__ */ jsx42(Text35, { color:
|
|
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:
|
|
29365
|
+
/* @__PURE__ */ jsx42(Text35, { color: PALETTE.success, children: `${counts.new} new` }),
|
|
29349
29366
|
/* @__PURE__ */ jsx42(Text35, { children: " \xB7 " }),
|
|
29350
|
-
/* @__PURE__ */ jsx42(Text35, { color:
|
|
29367
|
+
/* @__PURE__ */ jsx42(Text35, { color: PALETTE.warning, children: `${counts.changed} changed` }),
|
|
29351
29368
|
/* @__PURE__ */ jsx42(Text35, { children: " \xB7 " }),
|
|
29352
|
-
/* @__PURE__ */ jsx42(Text35, { color:
|
|
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:
|
|
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
|
-
|
|
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 ?
|
|
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:
|
|
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:
|
|
29426
|
-
/* @__PURE__ */ jsx43(Text36, { color:
|
|
29427
|
-
/* @__PURE__ */ jsx43(Text36, { color:
|
|
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:
|
|
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:
|
|
29464
|
+
return /* @__PURE__ */ jsxs34(FixedPanel, { width, height, borderStyle: "round", borderColor: PALETTE.warning, paddingLeft: 1, children: [
|
|
29448
29465
|
visible,
|
|
29449
|
-
/* @__PURE__ */ jsx43(Text36, { color:
|
|
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:
|
|
29461
|
-
/* @__PURE__ */ jsx43(Text36, { bold: true, color:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
30431
|
-
/* @__PURE__ */ jsx43(Text36, { bold: true, color:
|
|
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:
|
|
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:
|
|
30449
|
-
/* @__PURE__ */ jsx43(Text36, { bold: true, color:
|
|
30450
|
-
comp.impact && /* @__PURE__ */ jsx43(Text36, { color:
|
|
30451
|
-
comp.changes.length === 0 ? /* @__PURE__ */ jsx43(Text36, { color:
|
|
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:
|
|
30475
|
-
/* @__PURE__ */ jsx43(Text36, { color:
|
|
30476
|
-
members.length > 0 && /* @__PURE__ */ jsx43(Text36, { color:
|
|
30477
|
-
ancestors.length > 0 && /* @__PURE__ */ jsx43(Text36, { color:
|
|
30478
|
-
/* @__PURE__ */ jsx43(Text36, { color:
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
30742
|
-
|
|
30743
|
-
...
|
|
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:
|
|
30766
|
-
/* @__PURE__ */ jsx44(Text37, { color:
|
|
30767
|
-
generatePromptPath ? /* @__PURE__ */ jsxs35(Text37, { color:
|
|
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:
|
|
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:
|
|
30821
|
+
/* @__PURE__ */ jsx45(Text38, { color: PALETTE3.muted, children: "Space:" }),
|
|
30805
30822
|
/* @__PURE__ */ jsx45(Text38, { children: spaceId }),
|
|
30806
|
-
/* @__PURE__ */ jsx45(Text38, { color:
|
|
30807
|
-
/* @__PURE__ */ jsx45(Text38, { color:
|
|
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:
|
|
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:
|
|
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:
|
|
30841
|
-
/* @__PURE__ */ jsx46(Text39, { color:
|
|
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:
|
|
30865
|
-
totalPushed === 0 && totalFailed === 0 && !summary ? /* @__PURE__ */ jsx46(Text39, { color:
|
|
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:
|
|
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:
|
|
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:
|
|
30883
|
-
failures.map((failure) => /* @__PURE__ */ jsxs37(Text39, { color:
|
|
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:
|
|
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 ?
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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 ?
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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" ?
|
|
31592
|
-
/* @__PURE__ */ jsx51(Text43, { color:
|
|
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:
|
|
31597
|
-
breakingWithImpact && /* @__PURE__ */ jsx51(Box40, { marginTop: 1, children: /* @__PURE__ */ jsx51(Text43, { color:
|
|
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((
|
|
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
|
|
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:
|
|
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
|
-
|
|
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/
|
|
33393
|
-
import { useEffect as
|
|
33394
|
-
import { Box as
|
|
33395
|
-
import
|
|
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
|
|
33408
|
-
const [
|
|
33409
|
-
const [
|
|
33410
|
-
const [
|
|
33411
|
-
const [
|
|
33412
|
-
|
|
33413
|
-
|
|
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
|
|
33061
|
+
menuOption: "Configuration",
|
|
33419
33062
|
inputs: debugFields(cfg)
|
|
33420
33063
|
});
|
|
33421
33064
|
});
|
|
33422
33065
|
}, []);
|
|
33423
|
-
|
|
33424
|
-
|
|
33425
|
-
|
|
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
|
-
|
|
33431
|
-
|
|
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: "
|
|
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
|
-
|
|
33440
|
-
|
|
33441
|
-
|
|
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
|
-
|
|
33487
|
-
|
|
33488
|
-
|
|
33489
|
-
|
|
33490
|
-
|
|
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.
|
|
33501
|
-
|
|
33104
|
+
if (key.escape || input === "q") {
|
|
33105
|
+
quit();
|
|
33502
33106
|
return;
|
|
33503
33107
|
}
|
|
33504
|
-
if (
|
|
33505
|
-
|
|
33108
|
+
if (input === "s") {
|
|
33109
|
+
handleSave();
|
|
33506
33110
|
return;
|
|
33507
33111
|
}
|
|
33508
|
-
if (
|
|
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 (
|
|
33511
|
-
|
|
33512
|
-
|
|
33513
|
-
|
|
33514
|
-
|
|
33515
|
-
|
|
33516
|
-
|
|
33517
|
-
|
|
33518
|
-
|
|
33519
|
-
|
|
33520
|
-
/* @__PURE__ */
|
|
33521
|
-
|
|
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: "
|
|
33527
|
-
{ keys: "
|
|
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
|
|
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
|
-
|
|
33192
|
+
init_theme();
|
|
33193
|
+
init_config_store();
|
|
33194
|
+
init_debug_store();
|
|
33538
33195
|
init_control_hints();
|
|
33539
|
-
|
|
33540
|
-
|
|
33541
|
-
|
|
33542
|
-
|
|
33543
|
-
|
|
33544
|
-
|
|
33545
|
-
|
|
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
|
|
33554
|
-
import { Box as
|
|
33555
|
-
import { Fragment as
|
|
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] =
|
|
33558
|
-
const [enabled, setEnabled] =
|
|
33559
|
-
|
|
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
|
-
|
|
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__ */
|
|
33587
|
-
/* @__PURE__ */
|
|
33588
|
-
/* @__PURE__ */
|
|
33589
|
-
loading ? /* @__PURE__ */
|
|
33590
|
-
/* @__PURE__ */
|
|
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__ */
|
|
33262
|
+
/* @__PURE__ */ jsx56(Text47, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
|
|
33594
33263
|
] }),
|
|
33595
|
-
/* @__PURE__ */
|
|
33596
|
-
/* @__PURE__ */
|
|
33597
|
-
/* @__PURE__ */
|
|
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__ */
|
|
33600
|
-
/* @__PURE__ */
|
|
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
|
-
|
|
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
|
|
33623
|
-
import { Box as
|
|
33624
|
-
import { jsx as
|
|
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] =
|
|
33627
|
-
|
|
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
|
-
|
|
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__ */
|
|
33648
|
-
/* @__PURE__ */
|
|
33649
|
-
/* @__PURE__ */
|
|
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__ */
|
|
33652
|
-
/* @__PURE__ */
|
|
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__ */
|
|
33329
|
+
return /* @__PURE__ */ jsx57(Text48, { color: PALETTE.muted, children: "Checking for updates\u2026" });
|
|
33661
33330
|
}
|
|
33662
33331
|
if (upgradeCheck.status === "error") {
|
|
33663
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
33673
|
-
/* @__PURE__ */
|
|
33674
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
33687
|
-
/* @__PURE__ */
|
|
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
|
|
33703
|
-
import { Box as
|
|
33704
|
-
import { jsx as
|
|
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] =
|
|
33707
|
-
const [enabled, setEnabled] =
|
|
33708
|
-
|
|
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
|
-
|
|
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__ */
|
|
33736
|
-
/* @__PURE__ */
|
|
33737
|
-
/* @__PURE__ */
|
|
33738
|
-
loading ? /* @__PURE__ */
|
|
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__ */
|
|
33411
|
+
/* @__PURE__ */ jsx58(Text49, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
|
|
33742
33412
|
] }),
|
|
33743
|
-
/* @__PURE__ */
|
|
33744
|
-
/* @__PURE__ */
|
|
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
|
-
|
|
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
|
|
33771
|
-
import { useEffect as
|
|
33772
|
-
import { Fragment as
|
|
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] =
|
|
33775
|
-
const [importExitCode, setImportExitCode] =
|
|
33444
|
+
const [screen, setScreen] = useState33("start");
|
|
33445
|
+
const [importExitCode, setImportExitCode] = useState33();
|
|
33776
33446
|
const showImportResult = importExitCode !== void 0;
|
|
33777
|
-
const [projectPath, setProjectPath] =
|
|
33778
|
-
const [tokensPath, setTokensPath] =
|
|
33779
|
-
const [scannedFiles, setScannedFiles] =
|
|
33780
|
-
const [pendingLaunch, setPendingLaunch] =
|
|
33781
|
-
const [extractionRun, setExtractionRun] =
|
|
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] =
|
|
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] =
|
|
33468
|
+
const [generationInput, setGenerationInput] = useState33();
|
|
33799
33469
|
const generation = useGeneration(generationInput);
|
|
33800
|
-
const [flowStart, setFlowStart] =
|
|
33470
|
+
const [flowStart, setFlowStart] = useState33();
|
|
33801
33471
|
const flow = useFlow(flowStart, { beforeStepChange: inkClear });
|
|
33802
|
-
const [importDefaults, setImportDefaults] =
|
|
33803
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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__ */
|
|
33599
|
+
if (showImportResult) return /* @__PURE__ */ jsx59(ImportScreen, { exitCode: importExitCode, onDone: finishImportResult });
|
|
33930
33600
|
if (flow && flowStart) {
|
|
33931
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
33611
|
+
if (importDefaults === void 0) return /* @__PURE__ */ jsx59(Fragment19, {});
|
|
33942
33612
|
if (projectPath === void 0) {
|
|
33943
|
-
return /* @__PURE__ */
|
|
33613
|
+
return /* @__PURE__ */ jsx59(WelcomeScreen, { onContinue: setProjectPath, onQuit: leaveImport, initialPath: importDefaults.componentDir });
|
|
33944
33614
|
}
|
|
33945
33615
|
if (tokensPath === void 0) {
|
|
33946
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
33650
|
+
return /* @__PURE__ */ jsx59(Fragment19, {});
|
|
33981
33651
|
}
|
|
33982
33652
|
if (scopeRun && scopeFlow) {
|
|
33983
33653
|
if (scopeFlow.status === "failed") {
|
|
33984
|
-
return /* @__PURE__ */
|
|
33654
|
+
return /* @__PURE__ */ jsx59(ErrorStep, { stepName: "scope gate", message: scopeFlow.message, onExit: leaveImport });
|
|
33985
33655
|
}
|
|
33986
33656
|
if (scopeFlow.status === "deciding") {
|
|
33987
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
33687
|
+
return /* @__PURE__ */ jsx59(Fragment19, {});
|
|
34018
33688
|
}
|
|
34019
33689
|
if (pendingLaunch?.cached) {
|
|
34020
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
33710
|
+
return /* @__PURE__ */ jsx59(HelpScreen, { onDone: goToStart });
|
|
34041
33711
|
case "upgrade":
|
|
34042
|
-
return /* @__PURE__ */
|
|
33712
|
+
return /* @__PURE__ */ jsx59(UpgradeScreen, { onDone: goToStart });
|
|
34043
33713
|
case "settings":
|
|
34044
|
-
return /* @__PURE__ */
|
|
33714
|
+
return /* @__PURE__ */ jsx59(SettingsScreen, { onNavigate: setScreen, onBack: goToStart });
|
|
34045
33715
|
case "settings-configuration":
|
|
34046
|
-
return /* @__PURE__ */
|
|
33716
|
+
return /* @__PURE__ */ jsx59(ConfigurationScreen, { onDone: goToSettings });
|
|
34047
33717
|
case "settings-opt-in-analytics":
|
|
34048
|
-
return /* @__PURE__ */
|
|
33718
|
+
return /* @__PURE__ */ jsx59(OptInAnalyticsScreen, { onDone: goToSettings });
|
|
34049
33719
|
case "settings-debug-mode":
|
|
34050
|
-
return /* @__PURE__ */
|
|
33720
|
+
return /* @__PURE__ */ jsx59(DebugModeScreen, { onDone: goToSettings });
|
|
34051
33721
|
case "start":
|
|
34052
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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((
|
|
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) =>
|
|
33872
|
+
child.on("exit", (code) => resolve27(code ?? 0));
|
|
34203
33873
|
child.on("error", (err) => {
|
|
34204
33874
|
process.stderr.write(`${err.message}
|
|
34205
33875
|
`);
|
|
34206
|
-
|
|
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
|
-
|
|
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
|
|
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 =
|
|
34285
|
-
const oldRuns =
|
|
34286
|
-
const oldDebugMode =
|
|
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",
|