@contentful/experience-design-system-cli 2.34.5-dev-build-ea694b2.0 → 2.34.5-dev-build-04d687d.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/package.json +1 -1
- package/dist/src/import/tui/steps/GenerateReviewStep.d.ts +14 -3
- package/dist/src/import/tui/steps/ScopeGateStep.d.ts +1 -1
- package/dist/src/index.js +589 -641
- package/package.json +6 -6
- package/dist/src/import/tui/final-review-host.d.ts +0 -6
- package/dist/src/import/tui/review-step-props.d.ts +0 -13
- package/dist/src/import/tui/scope-gate-host.d.ts +0 -19
- package/dist/src/import/tui/steps/useTerminalColumns.d.ts +0 -1
package/dist/src/index.js
CHANGED
|
@@ -10318,13 +10318,6 @@ function WizardPreviewStep({
|
|
|
10318
10318
|
maxScroll > 0 && /* @__PURE__ */ jsx18(Text16, { dimColor: true, children: " \u2195 j/k to scroll, f/b to page" })
|
|
10319
10319
|
] })
|
|
10320
10320
|
] }) : /* @__PURE__ */ jsx18(Text16, { dimColor: true, children: "Nothing to push \u2014 everything is already up to date." }),
|
|
10321
|
-
/* @__PURE__ */ jsxs16(Box16, { gap: 1, marginTop: 1, children: [
|
|
10322
|
-
/* @__PURE__ */ jsx18(Text16, { dimColor: true, children: "Space:" }),
|
|
10323
|
-
/* @__PURE__ */ jsx18(Text16, { children: spaceId }),
|
|
10324
|
-
/* @__PURE__ */ jsx18(Text16, { dimColor: true, children: "/" }),
|
|
10325
|
-
/* @__PURE__ */ jsx18(Text16, { dimColor: true, children: "Environment:" }),
|
|
10326
|
-
/* @__PURE__ */ jsx18(Text16, { children: environmentId })
|
|
10327
|
-
] }),
|
|
10328
10321
|
breakingWithImpact && /* @__PURE__ */ jsx18(Box16, { marginTop: 1, children: /* @__PURE__ */ jsx18(Text16, { color: PALETTE.error, bold: true, children: "\u26A0 Breaking changes will affect downstream entities. Press Enter to acknowledge and apply." }) }),
|
|
10329
10322
|
/* @__PURE__ */ jsx18(SpaceEnvironment, { spaceId, environmentId }),
|
|
10330
10323
|
/* @__PURE__ */ jsxs16(Box16, { gap: 3, marginTop: 1, children: [
|
|
@@ -20062,7 +20055,17 @@ function toSidebarEntry(c2) {
|
|
|
20062
20055
|
if (Object.keys($slots).length > 0) entry.$slots = $slots;
|
|
20063
20056
|
return entry;
|
|
20064
20057
|
}
|
|
20065
|
-
function ScopeGateStep(
|
|
20058
|
+
function ScopeGateStep(props) {
|
|
20059
|
+
if (props.components.length === 0) {
|
|
20060
|
+
return /* @__PURE__ */ jsx32(Box28, { paddingX: 2, paddingY: 1, children: /* @__PURE__ */ jsx32(Text29, { color: PALETTE.error, children: "Error: no components found for this session \u2014 please re-run analyze extract." }) });
|
|
20061
|
+
}
|
|
20062
|
+
return /* @__PURE__ */ jsx32(ScopeGateStepView, { ...props, components: [...props.components] });
|
|
20063
|
+
}
|
|
20064
|
+
function ScopeGateStepView({
|
|
20065
|
+
components,
|
|
20066
|
+
onConfirm,
|
|
20067
|
+
onQuit
|
|
20068
|
+
}) {
|
|
20066
20069
|
const { stdout } = useStdout2();
|
|
20067
20070
|
const totalWidth = stdout?.columns ?? 80;
|
|
20068
20071
|
const columnPlan = useMemo2(() => computeColumnWidths(totalWidth), [totalWidth]);
|
|
@@ -21025,23 +21028,6 @@ var init_ScopeGateStep = __esm({
|
|
|
21025
21028
|
}
|
|
21026
21029
|
});
|
|
21027
21030
|
|
|
21028
|
-
// packages/experience-design-system-cli/src/import/tui/scope-gate-host.tsx
|
|
21029
|
-
import { Box as Box29, Text as Text30 } from "ink";
|
|
21030
|
-
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
21031
|
-
function ScopeGateHost({ components, onConfirm, onQuit }) {
|
|
21032
|
-
if (components.length === 0) {
|
|
21033
|
-
return /* @__PURE__ */ jsx33(Box29, { paddingX: 2, paddingY: 1, children: /* @__PURE__ */ jsx33(Text30, { color: PALETTE.error, children: "Error: no components found for this session \u2014 please re-run analyze extract." }) });
|
|
21034
|
-
}
|
|
21035
|
-
return /* @__PURE__ */ jsx33(ScopeGateStep, { components: [...components], onConfirm, onQuit });
|
|
21036
|
-
}
|
|
21037
|
-
var init_scope_gate_host = __esm({
|
|
21038
|
-
"packages/experience-design-system-cli/src/import/tui/scope-gate-host.tsx"() {
|
|
21039
|
-
"use strict";
|
|
21040
|
-
init_theme();
|
|
21041
|
-
init_ScopeGateStep();
|
|
21042
|
-
}
|
|
21043
|
-
});
|
|
21044
|
-
|
|
21045
21031
|
// packages/experience-design-system-cli/src/import/tui/steps/review-json-panel.ts
|
|
21046
21032
|
function getReviewJsonPanelValue(selected, showHiddenProps) {
|
|
21047
21033
|
if (!selected) return "";
|
|
@@ -21383,8 +21369,8 @@ var init_cycle_auto_reject = __esm({
|
|
|
21383
21369
|
|
|
21384
21370
|
// packages/experience-design-system-cli/src/analyze/select/tui/components/LineagePanel.tsx
|
|
21385
21371
|
import figures4 from "figures";
|
|
21386
|
-
import { Text as
|
|
21387
|
-
import { jsx as
|
|
21372
|
+
import { Text as Text30 } from "ink";
|
|
21373
|
+
import { jsx as jsx33, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
21388
21374
|
function LineagePanel({
|
|
21389
21375
|
focusedComponentKey,
|
|
21390
21376
|
entries,
|
|
@@ -21399,7 +21385,7 @@ function LineagePanel({
|
|
|
21399
21385
|
kind: e.kind
|
|
21400
21386
|
}));
|
|
21401
21387
|
const cursorRowIndex = jumpables[cursor]?.i ?? 0;
|
|
21402
|
-
return /* @__PURE__ */
|
|
21388
|
+
return /* @__PURE__ */ jsx33(
|
|
21403
21389
|
GotoBanner,
|
|
21404
21390
|
{
|
|
21405
21391
|
title: `Lineage: ${focusedComponentKey}`,
|
|
@@ -21411,20 +21397,20 @@ function LineagePanel({
|
|
|
21411
21397
|
footerHint: LINEAGE_FOOTER_HINT,
|
|
21412
21398
|
renderRow: (row, i, isCursor) => {
|
|
21413
21399
|
if (row.kind === "section") {
|
|
21414
|
-
return /* @__PURE__ */ jsxs30(
|
|
21400
|
+
return /* @__PURE__ */ jsxs30(Text30, { bold: true, children: [
|
|
21415
21401
|
" ",
|
|
21416
21402
|
row.label
|
|
21417
21403
|
] }, i);
|
|
21418
21404
|
}
|
|
21419
21405
|
if (row.kind === "empty") {
|
|
21420
|
-
return /* @__PURE__ */ jsxs30(
|
|
21421
|
-
/* @__PURE__ */
|
|
21422
|
-
/* @__PURE__ */
|
|
21406
|
+
return /* @__PURE__ */ jsxs30(Text30, { children: [
|
|
21407
|
+
/* @__PURE__ */ jsx33(Text30, { children: " " }),
|
|
21408
|
+
/* @__PURE__ */ jsx33(Text30, { dimColor: true, children: " " + row.label })
|
|
21423
21409
|
] }, i);
|
|
21424
21410
|
}
|
|
21425
|
-
return /* @__PURE__ */ jsxs30(
|
|
21426
|
-
isCursor ? /* @__PURE__ */
|
|
21427
|
-
/* @__PURE__ */
|
|
21411
|
+
return /* @__PURE__ */ jsxs30(Text30, { children: [
|
|
21412
|
+
isCursor ? /* @__PURE__ */ jsx33(Text30, { color: PALETTE.info, bold: true, children: figures4.pointer }) : /* @__PURE__ */ jsx33(Text30, { children: " " }),
|
|
21413
|
+
/* @__PURE__ */ jsx33(Text30, { inverse: isCursor, children: " " + row.label })
|
|
21428
21414
|
] }, i);
|
|
21429
21415
|
}
|
|
21430
21416
|
}
|
|
@@ -21597,13 +21583,13 @@ var init_scroll_offset = __esm({
|
|
|
21597
21583
|
// packages/experience-design-system-cli/src/analyze/select/tui/components/FieldEditor.tsx
|
|
21598
21584
|
import React15, { useState as useState15 } from "react";
|
|
21599
21585
|
import figures5 from "figures";
|
|
21600
|
-
import { Box as
|
|
21586
|
+
import { Box as Box29, Text as Text31 } from "ink";
|
|
21601
21587
|
import {
|
|
21602
21588
|
CDF_PROPERTY_TYPES,
|
|
21603
21589
|
CDF_PROPERTY_CATEGORIES,
|
|
21604
21590
|
DESIGN_TOKEN_TYPES as DESIGN_TOKEN_TYPES2
|
|
21605
21591
|
} from "@contentful/experience-design-system-types";
|
|
21606
|
-
import { Fragment as Fragment9, jsx as
|
|
21592
|
+
import { Fragment as Fragment9, jsx as jsx34, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
21607
21593
|
function removeAt(values, index) {
|
|
21608
21594
|
return values.filter((_, i) => i !== index);
|
|
21609
21595
|
}
|
|
@@ -21726,25 +21712,25 @@ function serializeState(state, originalJson) {
|
|
|
21726
21712
|
return JSON.stringify(entry, null, 2);
|
|
21727
21713
|
}
|
|
21728
21714
|
function Picker({ value, active }) {
|
|
21729
|
-
return /* @__PURE__ */ jsxs31(
|
|
21730
|
-
active && /* @__PURE__ */
|
|
21731
|
-
/* @__PURE__ */
|
|
21732
|
-
active && /* @__PURE__ */
|
|
21715
|
+
return /* @__PURE__ */ jsxs31(Box29, { children: [
|
|
21716
|
+
active && /* @__PURE__ */ jsx34(Text31, { color: PALETTE.info, children: "\u2039" }),
|
|
21717
|
+
/* @__PURE__ */ jsx34(Text31, { color: active ? PALETTE.info : PALETTE.inverse, bold: active, children: value }),
|
|
21718
|
+
active && /* @__PURE__ */ jsx34(Text31, { color: PALETTE.info, children: "\u203A" })
|
|
21733
21719
|
] });
|
|
21734
21720
|
}
|
|
21735
21721
|
function Toggle({ value, active }) {
|
|
21736
|
-
return /* @__PURE__ */
|
|
21722
|
+
return /* @__PURE__ */ jsx34(Box29, { children: /* @__PURE__ */ jsx34(Text31, { color: active ? PALETTE.info : value ? PALETTE.success : void 0, children: value ? "[\u2713]" : "[ ]" }) });
|
|
21737
21723
|
}
|
|
21738
21724
|
function DefaultValueRow({ display, active }) {
|
|
21739
|
-
return /* @__PURE__ */ jsxs31(
|
|
21740
|
-
/* @__PURE__ */
|
|
21741
|
-
active ? /* @__PURE__ */
|
|
21725
|
+
return /* @__PURE__ */ jsxs31(Box29, { paddingLeft: 2, gap: 1, children: [
|
|
21726
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "default:" }),
|
|
21727
|
+
active ? /* @__PURE__ */ jsx34(Picker, { value: display, active: true }) : /* @__PURE__ */ jsx34(Text31, { color: PALETTE.inverse, children: display })
|
|
21742
21728
|
] });
|
|
21743
21729
|
}
|
|
21744
21730
|
function RowLabel({ name, selected }) {
|
|
21745
21731
|
const nameDisplay = name.length > 14 ? name.slice(0, 13) + "\u2026" : name.padEnd(14);
|
|
21746
21732
|
return /* @__PURE__ */ jsxs31(
|
|
21747
|
-
|
|
21733
|
+
Text31,
|
|
21748
21734
|
{
|
|
21749
21735
|
color: selected ? PALETTE.inverse : PALETTE.info,
|
|
21750
21736
|
bold: selected,
|
|
@@ -21762,10 +21748,10 @@ function ValueInputRow({
|
|
|
21762
21748
|
valueText,
|
|
21763
21749
|
cursorVisible
|
|
21764
21750
|
}) {
|
|
21765
|
-
return /* @__PURE__ */ jsxs31(
|
|
21766
|
-
/* @__PURE__ */
|
|
21767
|
-
/* @__PURE__ */
|
|
21768
|
-
/* @__PURE__ */
|
|
21751
|
+
return /* @__PURE__ */ jsxs31(Box29, { paddingLeft: 2, children: [
|
|
21752
|
+
/* @__PURE__ */ jsx34(Text31, { color: PALETTE.info, children: mode === "edit" ? "\u270E " : "+ " }),
|
|
21753
|
+
/* @__PURE__ */ jsx34(Text31, { children: valueText }),
|
|
21754
|
+
/* @__PURE__ */ jsx34(Text31, { inverse: cursorVisible, children: " " })
|
|
21769
21755
|
] });
|
|
21770
21756
|
}
|
|
21771
21757
|
function EditableListItem({
|
|
@@ -21778,9 +21764,9 @@ function EditableListItem({
|
|
|
21778
21764
|
}) {
|
|
21779
21765
|
const isBeingEdited = editingValue?.mode === "edit" && editingValue.index === index;
|
|
21780
21766
|
if (isBeingEdited) {
|
|
21781
|
-
return /* @__PURE__ */
|
|
21767
|
+
return /* @__PURE__ */ jsx34(ValueInputRow, { mode: "edit", valueText, cursorVisible });
|
|
21782
21768
|
}
|
|
21783
|
-
return /* @__PURE__ */
|
|
21769
|
+
return /* @__PURE__ */ jsx34(Box29, { gap: 1, paddingLeft: 2, children: /* @__PURE__ */ jsx34(Text31, { color: active ? PALETTE.info : PALETTE.inverse, children: active ? `${figures5.pointer} ${value}` : ` ${value}` }) });
|
|
21784
21770
|
}
|
|
21785
21771
|
function EditableValueList({
|
|
21786
21772
|
values,
|
|
@@ -21794,8 +21780,8 @@ function EditableValueList({
|
|
|
21794
21780
|
showAddInput
|
|
21795
21781
|
}) {
|
|
21796
21782
|
return /* @__PURE__ */ jsxs31(Fragment9, { children: [
|
|
21797
|
-
values.length === 0 && !editingValue && (emptyPaddingLeft === void 0 ? /* @__PURE__ */
|
|
21798
|
-
values.map((value, index) => /* @__PURE__ */
|
|
21783
|
+
values.length === 0 && !editingValue && (emptyPaddingLeft === void 0 ? /* @__PURE__ */ jsx34(Text31, { dimColor: true, children: emptyMessage }) : /* @__PURE__ */ jsx34(Box29, { paddingLeft: emptyPaddingLeft, children: /* @__PURE__ */ jsx34(Text31, { dimColor: true, children: emptyMessage }) })),
|
|
21784
|
+
values.map((value, index) => /* @__PURE__ */ jsx34(
|
|
21799
21785
|
EditableListItem,
|
|
21800
21786
|
{
|
|
21801
21787
|
value,
|
|
@@ -21807,7 +21793,7 @@ function EditableValueList({
|
|
|
21807
21793
|
},
|
|
21808
21794
|
index
|
|
21809
21795
|
)),
|
|
21810
|
-
showAddInput && editingValue?.mode === "add" && /* @__PURE__ */
|
|
21796
|
+
showAddInput && editingValue?.mode === "add" && /* @__PURE__ */ jsx34(ValueInputRow, { mode: "add", valueText, cursorVisible })
|
|
21811
21797
|
] });
|
|
21812
21798
|
}
|
|
21813
21799
|
function DefaultSubRow({
|
|
@@ -21818,39 +21804,39 @@ function DefaultSubRow({
|
|
|
21818
21804
|
}) {
|
|
21819
21805
|
const cursor = cursorVisible ? "\u2588" : " ";
|
|
21820
21806
|
if (prop.type === "richtext" || prop.type === "media" || prop.type === "link") {
|
|
21821
|
-
return /* @__PURE__ */ jsxs31(
|
|
21822
|
-
/* @__PURE__ */
|
|
21823
|
-
/* @__PURE__ */
|
|
21807
|
+
return /* @__PURE__ */ jsxs31(Box29, { paddingLeft: 2, gap: 1, children: [
|
|
21808
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "default:" }),
|
|
21809
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "(not applicable)" })
|
|
21824
21810
|
] });
|
|
21825
21811
|
}
|
|
21826
21812
|
if (prop.type === "boolean") {
|
|
21827
21813
|
const display = prop.default === true ? "true" : prop.default === false ? "false" : "(unset)";
|
|
21828
|
-
return /* @__PURE__ */
|
|
21814
|
+
return /* @__PURE__ */ jsx34(DefaultValueRow, { display, active });
|
|
21829
21815
|
}
|
|
21830
21816
|
if (prop.type === "enum") {
|
|
21831
21817
|
if (prop.values.length === 0) {
|
|
21832
|
-
return /* @__PURE__ */ jsxs31(
|
|
21833
|
-
/* @__PURE__ */
|
|
21834
|
-
/* @__PURE__ */
|
|
21818
|
+
return /* @__PURE__ */ jsxs31(Box29, { paddingLeft: 2, gap: 1, children: [
|
|
21819
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "default:" }),
|
|
21820
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "(no values defined)" })
|
|
21835
21821
|
] });
|
|
21836
21822
|
}
|
|
21837
21823
|
const display = typeof prop.default === "string" && prop.default !== "" ? prop.default : "(unset)";
|
|
21838
|
-
return /* @__PURE__ */
|
|
21824
|
+
return /* @__PURE__ */ jsx34(DefaultValueRow, { display, active });
|
|
21839
21825
|
}
|
|
21840
21826
|
const value = typeof prop.default === "string" ? prop.default : "";
|
|
21841
21827
|
if (active) {
|
|
21842
|
-
return /* @__PURE__ */ jsxs31(
|
|
21843
|
-
/* @__PURE__ */
|
|
21844
|
-
/* @__PURE__ */ jsxs31(
|
|
21845
|
-
/* @__PURE__ */
|
|
21846
|
-
/* @__PURE__ */
|
|
21847
|
-
/* @__PURE__ */
|
|
21828
|
+
return /* @__PURE__ */ jsxs31(Box29, { paddingLeft: 2, flexDirection: "row", children: [
|
|
21829
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "default:" }),
|
|
21830
|
+
/* @__PURE__ */ jsxs31(Box29, { flexGrow: 1, borderStyle: "round", borderColor: PALETTE.info, paddingX: 1, children: [
|
|
21831
|
+
/* @__PURE__ */ jsx34(Text31, { children: value.slice(0, textCursor) }),
|
|
21832
|
+
/* @__PURE__ */ jsx34(Text31, { inverse: cursorVisible, children: value[textCursor] ?? cursor }),
|
|
21833
|
+
/* @__PURE__ */ jsx34(Text31, { children: value.slice(textCursor + 1) })
|
|
21848
21834
|
] })
|
|
21849
21835
|
] });
|
|
21850
21836
|
}
|
|
21851
|
-
return /* @__PURE__ */ jsxs31(
|
|
21852
|
-
/* @__PURE__ */
|
|
21853
|
-
/* @__PURE__ */
|
|
21837
|
+
return /* @__PURE__ */ jsxs31(Box29, { paddingLeft: 2, gap: 1, children: [
|
|
21838
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "default:" }),
|
|
21839
|
+
/* @__PURE__ */ jsx34(Text31, { color: value ? PALETTE.inverse : void 0, dimColor: !value, children: value || "(none)" })
|
|
21854
21840
|
] });
|
|
21855
21841
|
}
|
|
21856
21842
|
function PropRow({
|
|
@@ -21868,28 +21854,28 @@ function PropRow({
|
|
|
21868
21854
|
}) {
|
|
21869
21855
|
const cursor = cursorVisible ? "\u2588" : " ";
|
|
21870
21856
|
const descActive = activeField === "description";
|
|
21871
|
-
return /* @__PURE__ */ jsxs31(
|
|
21872
|
-
/* @__PURE__ */ jsxs31(
|
|
21873
|
-
/* @__PURE__ */
|
|
21874
|
-
/* @__PURE__ */
|
|
21875
|
-
activeField === "type" ? /* @__PURE__ */
|
|
21876
|
-
activeField === "category" && /* @__PURE__ */
|
|
21877
|
-
/* @__PURE__ */
|
|
21878
|
-
activeField === "required" ? /* @__PURE__ */
|
|
21857
|
+
return /* @__PURE__ */ jsxs31(Box29, { flexDirection: "column", width, children: [
|
|
21858
|
+
/* @__PURE__ */ jsxs31(Box29, { gap: 1, children: [
|
|
21859
|
+
/* @__PURE__ */ jsx34(RowLabel, { name: prop.name, selected }),
|
|
21860
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: !selected, children: "type:" }),
|
|
21861
|
+
activeField === "type" ? /* @__PURE__ */ jsx34(Picker, { value: prop.type, active: true }) : /* @__PURE__ */ jsx34(Text31, { color: selected ? PALETTE.warning : PALETTE.inverse, children: prop.type }),
|
|
21862
|
+
activeField === "category" && /* @__PURE__ */ jsx34(Picker, { value: prop.category, active: true }),
|
|
21863
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: !selected, children: "req:" }),
|
|
21864
|
+
activeField === "required" ? /* @__PURE__ */ jsx34(Toggle, { value: prop.required, active: true }) : /* @__PURE__ */ jsx34(Toggle, { value: prop.required, active: false }),
|
|
21879
21865
|
prop.type === "enum" && /* @__PURE__ */ jsxs31(Fragment9, { children: [
|
|
21880
|
-
/* @__PURE__ */
|
|
21881
|
-
/* @__PURE__ */ jsxs31(
|
|
21866
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: !selected, children: "values:" }),
|
|
21867
|
+
/* @__PURE__ */ jsxs31(Text31, { color: selected ? PALETTE.warning : PALETTE.inverse, children: [
|
|
21882
21868
|
"[",
|
|
21883
21869
|
prop.values.join(", "),
|
|
21884
21870
|
"]"
|
|
21885
21871
|
] })
|
|
21886
21872
|
] }),
|
|
21887
21873
|
prop.type === "token" && /* @__PURE__ */ jsxs31(Fragment9, { children: [
|
|
21888
|
-
/* @__PURE__ */
|
|
21889
|
-
activeField === "tokenKind" ? /* @__PURE__ */
|
|
21874
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: !selected, children: "kind:" }),
|
|
21875
|
+
activeField === "tokenKind" ? /* @__PURE__ */ jsx34(Picker, { value: prop.tokenKind || DESIGN_TOKEN_TYPES2[0], active: true }) : /* @__PURE__ */ jsx34(Text31, { color: selected ? PALETTE.success : PALETTE.inverse, children: prop.tokenKind || "\u2014" })
|
|
21890
21876
|
] })
|
|
21891
21877
|
] }),
|
|
21892
|
-
selected && /* @__PURE__ */
|
|
21878
|
+
selected && /* @__PURE__ */ jsx34(
|
|
21893
21879
|
DefaultSubRow,
|
|
21894
21880
|
{
|
|
21895
21881
|
prop,
|
|
@@ -21898,33 +21884,33 @@ function PropRow({
|
|
|
21898
21884
|
cursorVisible
|
|
21899
21885
|
}
|
|
21900
21886
|
),
|
|
21901
|
-
selected && descActive && /* @__PURE__ */ jsxs31(
|
|
21902
|
-
/* @__PURE__ */
|
|
21903
|
-
/* @__PURE__ */ jsxs31(
|
|
21904
|
-
/* @__PURE__ */
|
|
21905
|
-
/* @__PURE__ */
|
|
21906
|
-
/* @__PURE__ */
|
|
21887
|
+
selected && descActive && /* @__PURE__ */ jsxs31(Box29, { paddingLeft: 2, flexDirection: "row", children: [
|
|
21888
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "desc:" }),
|
|
21889
|
+
/* @__PURE__ */ jsxs31(Box29, { flexGrow: 1, borderStyle: "round", borderColor: PALETTE.info, paddingX: 1, children: [
|
|
21890
|
+
/* @__PURE__ */ jsx34(Text31, { children: prop.description.slice(0, textCursor) }),
|
|
21891
|
+
/* @__PURE__ */ jsx34(Text31, { inverse: cursorVisible, children: prop.description[textCursor] ?? cursor }),
|
|
21892
|
+
/* @__PURE__ */ jsx34(Text31, { children: prop.description.slice(textCursor + 1) })
|
|
21907
21893
|
] })
|
|
21908
21894
|
] }),
|
|
21909
|
-
selected && !descActive && /* @__PURE__ */ jsxs31(
|
|
21910
|
-
/* @__PURE__ */
|
|
21911
|
-
/* @__PURE__ */
|
|
21895
|
+
selected && !descActive && /* @__PURE__ */ jsxs31(Box29, { paddingLeft: 2, gap: 1, children: [
|
|
21896
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "desc:" }),
|
|
21897
|
+
/* @__PURE__ */ jsx34(Text31, { color: PALETTE.success, children: prop.description || "\u2014" })
|
|
21912
21898
|
] }),
|
|
21913
|
-
selected && prop.type === "token" && prop.category === "design" && /* @__PURE__ */ jsxs31(
|
|
21914
|
-
/* @__PURE__ */
|
|
21915
|
-
activeField === "allowed" ? /* @__PURE__ */
|
|
21899
|
+
selected && prop.type === "token" && prop.category === "design" && /* @__PURE__ */ jsxs31(Box29, { paddingLeft: 2, flexDirection: "row", gap: 1, children: [
|
|
21900
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "allowed:" }),
|
|
21901
|
+
activeField === "allowed" ? /* @__PURE__ */ jsx34(Box29, { flexGrow: 1, borderStyle: "round", borderColor: PALETTE.info, paddingX: 1, children: /* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "press [t] to edit allowed tokens" }) }) : /* @__PURE__ */ jsx34(Text31, { color: prop.allowed.length > 0 ? PALETTE.info : void 0, dimColor: prop.allowed.length === 0, children: prop.allowed.length > 0 ? prop.allowed.join(", ") : "(any)" })
|
|
21916
21902
|
] }),
|
|
21917
|
-
selected && rationale && rationale.trim().length > 0 && /* @__PURE__ */
|
|
21903
|
+
selected && rationale && rationale.trim().length > 0 && /* @__PURE__ */ jsx34(Box29, { paddingLeft: 2, children: /* @__PURE__ */ jsx34(Text31, { dimColor: true, children: (() => {
|
|
21918
21904
|
const max = Math.max(8, width - 8);
|
|
21919
21905
|
const text = `~ ${rationale}`;
|
|
21920
21906
|
return text.length > max ? text.slice(0, max - 1) + "\u2026" : text;
|
|
21921
21907
|
})() }) }, rowKey ? `rationale-${rowKey}` : void 0),
|
|
21922
|
-
selected && prop.type === "enum" && activeField === "values" && /* @__PURE__ */ jsxs31(
|
|
21923
|
-
/* @__PURE__ */ jsxs31(
|
|
21924
|
-
/* @__PURE__ */
|
|
21925
|
-
activeField === "values" && /* @__PURE__ */
|
|
21908
|
+
selected && prop.type === "enum" && activeField === "values" && /* @__PURE__ */ jsxs31(Box29, { paddingLeft: 2, flexDirection: "column", children: [
|
|
21909
|
+
/* @__PURE__ */ jsxs31(Box29, { children: [
|
|
21910
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "values:" }),
|
|
21911
|
+
activeField === "values" && /* @__PURE__ */ jsx34(Text31, { dimColor: true, children: " [a]dd [e]dit [r]emove [\u2191\u2193] navigate [K/J] reorder" })
|
|
21926
21912
|
] }),
|
|
21927
|
-
/* @__PURE__ */
|
|
21913
|
+
/* @__PURE__ */ jsx34(
|
|
21928
21914
|
EditableValueList,
|
|
21929
21915
|
{
|
|
21930
21916
|
values: prop.values,
|
|
@@ -21954,22 +21940,22 @@ function SlotRow({
|
|
|
21954
21940
|
pickerCursor
|
|
21955
21941
|
}) {
|
|
21956
21942
|
const cursor = cursorVisible ? "\u2588" : " ";
|
|
21957
|
-
return /* @__PURE__ */ jsxs31(
|
|
21958
|
-
/* @__PURE__ */ jsxs31(
|
|
21959
|
-
/* @__PURE__ */
|
|
21960
|
-
/* @__PURE__ */
|
|
21961
|
-
activeField === "required" ? /* @__PURE__ */
|
|
21943
|
+
return /* @__PURE__ */ jsxs31(Box29, { flexDirection: "column", width, children: [
|
|
21944
|
+
/* @__PURE__ */ jsxs31(Box29, { gap: 1, children: [
|
|
21945
|
+
/* @__PURE__ */ jsx34(RowLabel, { name: slot.name, selected }),
|
|
21946
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: !selected, children: "req:" }),
|
|
21947
|
+
activeField === "required" ? /* @__PURE__ */ jsx34(Toggle, { value: slot.required, active: true }) : /* @__PURE__ */ jsx34(Toggle, { value: slot.required, active: false })
|
|
21962
21948
|
] }),
|
|
21963
|
-
!selected && /* @__PURE__ */ jsxs31(
|
|
21964
|
-
/* @__PURE__ */
|
|
21965
|
-
slot.allowedComponents.length === 0 ? /* @__PURE__ */
|
|
21949
|
+
!selected && /* @__PURE__ */ jsxs31(Box29, { paddingLeft: 2, gap: 1, children: [
|
|
21950
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "allowed:" }),
|
|
21951
|
+
slot.allowedComponents.length === 0 ? /* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "(any)" }) : /* @__PURE__ */ jsx34(Text31, { color: PALETTE.info, children: slot.allowedComponents.join(", ") })
|
|
21966
21952
|
] }),
|
|
21967
|
-
selected && /* @__PURE__ */ jsxs31(
|
|
21968
|
-
/* @__PURE__ */ jsxs31(
|
|
21969
|
-
/* @__PURE__ */
|
|
21970
|
-
activeField === "allowedComponents" && /* @__PURE__ */
|
|
21953
|
+
selected && /* @__PURE__ */ jsxs31(Box29, { paddingLeft: 2, flexDirection: "column", children: [
|
|
21954
|
+
/* @__PURE__ */ jsxs31(Box29, { children: [
|
|
21955
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "allowed:" }),
|
|
21956
|
+
activeField === "allowedComponents" && /* @__PURE__ */ jsx34(Text31, { dimColor: true, children: slot.allowedComponents.length > 0 ? " [a]dd [e]dit [r]emove [\u2190\u2192] cycle [\u2191\u2193] navigate [K/J] reorder" : " [a]dd [e]dit [r]emove [\u2191\u2193] navigate [K/J] reorder" })
|
|
21971
21957
|
] }),
|
|
21972
|
-
/* @__PURE__ */
|
|
21958
|
+
/* @__PURE__ */ jsx34(
|
|
21973
21959
|
EditableValueList,
|
|
21974
21960
|
{
|
|
21975
21961
|
values: slot.allowedComponents,
|
|
@@ -21983,36 +21969,36 @@ function SlotRow({
|
|
|
21983
21969
|
showAddInput: activeField === "allowedComponents"
|
|
21984
21970
|
}
|
|
21985
21971
|
),
|
|
21986
|
-
editingValue?.mode === "add" && activeField === "allowedComponents" && pickerCandidates !== null && /* @__PURE__ */
|
|
21972
|
+
editingValue?.mode === "add" && activeField === "allowedComponents" && pickerCandidates !== null && /* @__PURE__ */ jsx34(Box29, { paddingLeft: 2, flexDirection: "column", children: pickerCandidates.length === 0 ? /* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "(no valid components to add \u2014 all remaining candidates would create cycles)" }) : (() => {
|
|
21987
21973
|
const filtered = valueText.length === 0 ? pickerCandidates : pickerCandidates.filter((n) => n.toLowerCase().includes(valueText.toLowerCase()));
|
|
21988
21974
|
if (filtered.length === 0) {
|
|
21989
|
-
return /* @__PURE__ */
|
|
21975
|
+
return /* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "(no candidates match \u2014 Enter to add as free text)" });
|
|
21990
21976
|
}
|
|
21991
21977
|
const cursor2 = pickerCursor % filtered.length;
|
|
21992
21978
|
const MAX_VISIBLE = 5;
|
|
21993
21979
|
const start = Math.max(0, Math.min(filtered.length - MAX_VISIBLE, cursor2 - 2));
|
|
21994
21980
|
const slice = filtered.slice(start, start + MAX_VISIBLE);
|
|
21995
|
-
return /* @__PURE__ */ jsxs31(
|
|
21996
|
-
/* @__PURE__ */
|
|
21981
|
+
return /* @__PURE__ */ jsxs31(Box29, { flexDirection: "column", children: [
|
|
21982
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: " candidates (\u2191\u2193 cycle, Enter to add):" }),
|
|
21997
21983
|
slice.map((name, i) => {
|
|
21998
21984
|
const absIdx = start + i;
|
|
21999
21985
|
const isCursor = absIdx === cursor2;
|
|
22000
|
-
return /* @__PURE__ */
|
|
21986
|
+
return /* @__PURE__ */ jsx34(Text31, { color: isCursor ? PALETTE.info : void 0, dimColor: !isCursor, children: isCursor ? ` ${figures5.pointer} ${name}` : ` ${name}` }, name);
|
|
22001
21987
|
})
|
|
22002
21988
|
] });
|
|
22003
21989
|
})() })
|
|
22004
21990
|
] }),
|
|
22005
|
-
selected && activeField === "description" && /* @__PURE__ */ jsxs31(
|
|
22006
|
-
/* @__PURE__ */
|
|
22007
|
-
/* @__PURE__ */ jsxs31(
|
|
22008
|
-
/* @__PURE__ */
|
|
22009
|
-
/* @__PURE__ */
|
|
22010
|
-
/* @__PURE__ */
|
|
21991
|
+
selected && activeField === "description" && /* @__PURE__ */ jsxs31(Box29, { paddingLeft: 2, flexDirection: "row", children: [
|
|
21992
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "desc:" }),
|
|
21993
|
+
/* @__PURE__ */ jsxs31(Box29, { flexGrow: 1, borderStyle: "round", borderColor: PALETTE.info, paddingX: 1, children: [
|
|
21994
|
+
/* @__PURE__ */ jsx34(Text31, { children: slot.description.slice(0, textCursor) }),
|
|
21995
|
+
/* @__PURE__ */ jsx34(Text31, { inverse: cursorVisible, children: slot.description[textCursor] ?? cursor }),
|
|
21996
|
+
/* @__PURE__ */ jsx34(Text31, { children: slot.description.slice(textCursor + 1) })
|
|
22011
21997
|
] })
|
|
22012
21998
|
] }),
|
|
22013
|
-
selected && activeField !== "description" && /* @__PURE__ */ jsxs31(
|
|
22014
|
-
/* @__PURE__ */
|
|
22015
|
-
/* @__PURE__ */
|
|
21999
|
+
selected && activeField !== "description" && /* @__PURE__ */ jsxs31(Box29, { paddingLeft: 2, gap: 1, children: [
|
|
22000
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "desc:" }),
|
|
22001
|
+
/* @__PURE__ */ jsx34(Text31, { color: PALETTE.success, children: slot.description || "\u2014" })
|
|
22016
22002
|
] })
|
|
22017
22003
|
] });
|
|
22018
22004
|
}
|
|
@@ -22796,18 +22782,18 @@ function FieldEditor({
|
|
|
22796
22782
|
});
|
|
22797
22783
|
const innerWidth = Math.max(1, width - 2);
|
|
22798
22784
|
if (parseErr) {
|
|
22799
|
-
return /* @__PURE__ */ jsxs31(
|
|
22800
|
-
/* @__PURE__ */
|
|
22801
|
-
/* @__PURE__ */
|
|
22802
|
-
/* @__PURE__ */
|
|
22785
|
+
return /* @__PURE__ */ jsxs31(Box29, { flexDirection: "column", width, borderStyle: "single", borderColor: PALETTE.error, children: [
|
|
22786
|
+
/* @__PURE__ */ jsx34(Text31, { bold: true, color: PALETTE.error, children: "FIELD EDITOR \u2014 parse error" }),
|
|
22787
|
+
/* @__PURE__ */ jsx34(Text31, { color: PALETTE.error, children: parseErr }),
|
|
22788
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "Cannot display structured editor. Fix the JSON first." })
|
|
22803
22789
|
] });
|
|
22804
22790
|
}
|
|
22805
22791
|
if (props.length === 0 && slots.length === 0) {
|
|
22806
|
-
return /* @__PURE__ */ jsxs31(
|
|
22807
|
-
/* @__PURE__ */
|
|
22808
|
-
/* @__PURE__ */
|
|
22809
|
-
/* @__PURE__ */
|
|
22810
|
-
/* @__PURE__ */
|
|
22792
|
+
return /* @__PURE__ */ jsxs31(Box29, { flexDirection: "column", width, borderStyle: "single", borderColor: PALETTE.warning, children: [
|
|
22793
|
+
/* @__PURE__ */ jsx34(Text31, { bold: true, color: PALETTE.warning, children: "FIELD EDITOR \u2014 no fields" }),
|
|
22794
|
+
/* @__PURE__ */ jsx34(Text31, { color: PALETTE.warning, children: "\u26A0 No properties classified for this component. The LLM didn't find anything to classify." }),
|
|
22795
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "You can add fields manually below or reject this component." }),
|
|
22796
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "Ctrl+S to save \xB7 Esc to discard" })
|
|
22811
22797
|
] });
|
|
22812
22798
|
}
|
|
22813
22799
|
const hasEmptyProperties = props.length === 0 && slots.length === 0;
|
|
@@ -22859,25 +22845,25 @@ function FieldEditor({
|
|
|
22859
22845
|
const scrollStart = selectedRowIdx < 0 ? 0 : Math.max(0, Math.min(selectedRowIdx, rows.length - visibleRows));
|
|
22860
22846
|
const visibleRowSlice = rows.slice(scrollStart, scrollStart + visibleRows);
|
|
22861
22847
|
return /* @__PURE__ */ jsxs31(
|
|
22862
|
-
|
|
22848
|
+
Box29,
|
|
22863
22849
|
{
|
|
22864
22850
|
flexDirection: "column",
|
|
22865
22851
|
width,
|
|
22866
22852
|
borderStyle: "single",
|
|
22867
22853
|
borderColor: hasEmptyProperties ? PALETTE.warning : PALETTE.info,
|
|
22868
22854
|
children: [
|
|
22869
|
-
hasEmptyProperties && /* @__PURE__ */
|
|
22870
|
-
/* @__PURE__ */
|
|
22855
|
+
hasEmptyProperties && /* @__PURE__ */ jsx34(Text31, { 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." }),
|
|
22856
|
+
/* @__PURE__ */ jsx34(Box29, { flexDirection: "column", width: innerWidth, children: visibleRowSlice.map((row, i) => {
|
|
22871
22857
|
if (row.kind === "header") {
|
|
22872
|
-
return /* @__PURE__ */
|
|
22858
|
+
return /* @__PURE__ */ jsx34(Text31, { bold: true, color: PALETTE.success, children: row.label }, `header-${i}`);
|
|
22873
22859
|
}
|
|
22874
22860
|
if (row.kind === "component-description") {
|
|
22875
22861
|
const isSelected2 = inComponentDesc;
|
|
22876
22862
|
const isEditing = isSelected2 && focusLevel === "field" && activeField === "description";
|
|
22877
22863
|
const desc = editorState.componentDescription;
|
|
22878
|
-
return /* @__PURE__ */
|
|
22879
|
-
/* @__PURE__ */
|
|
22880
|
-
|
|
22864
|
+
return /* @__PURE__ */ jsx34(Box29, { flexDirection: "column", children: /* @__PURE__ */ jsxs31(Box29, { gap: 1, children: [
|
|
22865
|
+
/* @__PURE__ */ jsx34(
|
|
22866
|
+
Text31,
|
|
22881
22867
|
{
|
|
22882
22868
|
color: isSelected2 ? PALETTE.inverse : PALETTE.info,
|
|
22883
22869
|
bold: isSelected2,
|
|
@@ -22885,18 +22871,18 @@ function FieldEditor({
|
|
|
22885
22871
|
children: " description: "
|
|
22886
22872
|
}
|
|
22887
22873
|
),
|
|
22888
|
-
isEditing ? /* @__PURE__ */ jsxs31(
|
|
22889
|
-
/* @__PURE__ */
|
|
22890
|
-
/* @__PURE__ */
|
|
22891
|
-
/* @__PURE__ */
|
|
22892
|
-
] }) : /* @__PURE__ */
|
|
22874
|
+
isEditing ? /* @__PURE__ */ jsxs31(Box29, { flexGrow: 1, borderStyle: "round", borderColor: PALETTE.info, paddingX: 1, children: [
|
|
22875
|
+
/* @__PURE__ */ jsx34(Text31, { children: desc.slice(0, textCursor) }),
|
|
22876
|
+
/* @__PURE__ */ jsx34(Text31, { inverse: cursorVisible, children: desc[textCursor] ?? (cursorVisible ? "\u2588" : " ") }),
|
|
22877
|
+
/* @__PURE__ */ jsx34(Text31, { children: desc.slice(textCursor + 1) })
|
|
22878
|
+
] }) : /* @__PURE__ */ jsx34(Text31, { color: isSelected2 ? PALETTE.warning : PALETTE.inverse, dimColor: !desc, children: desc || "(none \u2014 Return to edit)" })
|
|
22893
22879
|
] }) }, `component-description-${i}`);
|
|
22894
22880
|
}
|
|
22895
22881
|
if (row.kind === "prop") {
|
|
22896
22882
|
const p = props[row.idx];
|
|
22897
22883
|
const isSelected2 = !inSlots && !inComponentDesc && row.idx === propIdx;
|
|
22898
22884
|
const propMeta = metadata?.props?.[p.name];
|
|
22899
|
-
return /* @__PURE__ */
|
|
22885
|
+
return /* @__PURE__ */ jsx34(
|
|
22900
22886
|
PropRow,
|
|
22901
22887
|
{
|
|
22902
22888
|
prop: p,
|
|
@@ -22917,7 +22903,7 @@ function FieldEditor({
|
|
|
22917
22903
|
const s = slots[row.idx];
|
|
22918
22904
|
const isSelected = inSlots && row.idx === slotIdx;
|
|
22919
22905
|
const slotPickerCandidates = isSelected && editingValue?.mode === "add" && activeField === "allowedComponents" && projectSlotGraph && currentComponentName ? computeAllowedComponentCandidates(projectSlotGraph, currentComponentName, slots, s.name) : null;
|
|
22920
|
-
return /* @__PURE__ */
|
|
22906
|
+
return /* @__PURE__ */ jsx34(
|
|
22921
22907
|
SlotRow,
|
|
22922
22908
|
{
|
|
22923
22909
|
slot: s,
|
|
@@ -22943,50 +22929,50 @@ function FieldEditor({
|
|
|
22943
22929
|
const src = metadata?.componentSource ?? null;
|
|
22944
22930
|
const headerPath = path ?? "<unknown source path>";
|
|
22945
22931
|
if (!start || !end || !src) {
|
|
22946
|
-
return /* @__PURE__ */ jsxs31(
|
|
22947
|
-
/* @__PURE__ */
|
|
22948
|
-
/* @__PURE__ */
|
|
22949
|
-
/* @__PURE__ */
|
|
22932
|
+
return /* @__PURE__ */ jsxs31(Box29, { flexDirection: "column", borderStyle: "single", borderColor: "gray", paddingX: 1, children: [
|
|
22933
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, bold: true, children: `source: ${headerPath}` }),
|
|
22934
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "(no source location captured for this prop)" }),
|
|
22935
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "[s] close" })
|
|
22950
22936
|
] });
|
|
22951
22937
|
}
|
|
22952
22938
|
const lines = src.split("\n").slice(Math.max(0, start - 1), end);
|
|
22953
|
-
return /* @__PURE__ */ jsxs31(
|
|
22954
|
-
/* @__PURE__ */
|
|
22955
|
-
lines.map((ln, i) => /* @__PURE__ */
|
|
22956
|
-
/* @__PURE__ */
|
|
22939
|
+
return /* @__PURE__ */ jsxs31(Box29, { flexDirection: "column", borderStyle: "single", borderColor: "gray", paddingX: 1, children: [
|
|
22940
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, bold: true, children: `${headerPath}: lines ${start}\u2013${end}` }),
|
|
22941
|
+
lines.map((ln, i) => /* @__PURE__ */ jsx34(Text31, { dimColor: true, children: ln }, `source-line-${i}`)),
|
|
22942
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "[s] close \xB7 [Esc] close" })
|
|
22957
22943
|
] });
|
|
22958
22944
|
})(),
|
|
22959
|
-
showHelp && /* @__PURE__ */ jsxs31(
|
|
22960
|
-
/* @__PURE__ */
|
|
22961
|
-
/* @__PURE__ */
|
|
22962
|
-
/* @__PURE__ */
|
|
22963
|
-
/* @__PURE__ */
|
|
22964
|
-
/* @__PURE__ */
|
|
22965
|
-
/* @__PURE__ */
|
|
22966
|
-
/* @__PURE__ */
|
|
22967
|
-
/* @__PURE__ */
|
|
22968
|
-
/* @__PURE__ */
|
|
22969
|
-
/* @__PURE__ */
|
|
22970
|
-
/* @__PURE__ */
|
|
22971
|
-
/* @__PURE__ */
|
|
22972
|
-
/* @__PURE__ */
|
|
22973
|
-
/* @__PURE__ */
|
|
22974
|
-
/* @__PURE__ */
|
|
22975
|
-
/* @__PURE__ */
|
|
22976
|
-
/* @__PURE__ */
|
|
22977
|
-
/* @__PURE__ */
|
|
22978
|
-
/* @__PURE__ */
|
|
22979
|
-
/* @__PURE__ */
|
|
22980
|
-
/* @__PURE__ */
|
|
22981
|
-
/* @__PURE__ */
|
|
22982
|
-
/* @__PURE__ */
|
|
22983
|
-
/* @__PURE__ */
|
|
22984
|
-
/* @__PURE__ */
|
|
22985
|
-
/* @__PURE__ */
|
|
22986
|
-
/* @__PURE__ */
|
|
22945
|
+
showHelp && /* @__PURE__ */ jsxs31(Box29, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.info, paddingX: 1, children: [
|
|
22946
|
+
/* @__PURE__ */ jsx34(Text31, { bold: true, color: PALETTE.info, children: "Keybindings" }),
|
|
22947
|
+
/* @__PURE__ */ jsx34(Text31, { children: " " }),
|
|
22948
|
+
/* @__PURE__ */ jsx34(Text31, { bold: true, children: "Row navigation" }),
|
|
22949
|
+
/* @__PURE__ */ jsx34(Text31, { children: " \u2191/\u2193 or j/k move between rows" }),
|
|
22950
|
+
/* @__PURE__ */ jsx34(Text31, { children: " Enter edit fields on the current row" }),
|
|
22951
|
+
/* @__PURE__ */ jsx34(Text31, { children: " Esc exit the panel" }),
|
|
22952
|
+
/* @__PURE__ */ jsx34(Text31, { children: " " }),
|
|
22953
|
+
/* @__PURE__ */ jsx34(Text31, { bold: true, children: "Field editing" }),
|
|
22954
|
+
/* @__PURE__ */ jsx34(Text31, { children: " \u2191/\u2193 or j/k cycle through fields (j/k literal in text inputs)" }),
|
|
22955
|
+
/* @__PURE__ */ jsx34(Text31, { children: " \u2190/\u2192 cycle picker values \xB7 move cursor in text inputs" }),
|
|
22956
|
+
/* @__PURE__ */ jsx34(Text31, { children: " Space/Enter toggle required" }),
|
|
22957
|
+
/* @__PURE__ */ jsx34(Text31, { children: " Type edit description / string default" }),
|
|
22958
|
+
/* @__PURE__ */ jsx34(Text31, { children: " Ctrl+S save changes" }),
|
|
22959
|
+
/* @__PURE__ */ jsx34(Text31, { children: " Esc exit field-edit back to the row" }),
|
|
22960
|
+
/* @__PURE__ */ jsx34(Text31, { children: " " }),
|
|
22961
|
+
/* @__PURE__ */ jsx34(Text31, { bold: true, children: "Values / allowedComponents" }),
|
|
22962
|
+
/* @__PURE__ */ jsx34(Text31, { children: " a / e / r add \xB7 edit \xB7 remove" }),
|
|
22963
|
+
/* @__PURE__ */ jsx34(Text31, { children: " \u2191\u2193 or j/k navigate the list" }),
|
|
22964
|
+
/* @__PURE__ */ jsx34(Text31, { children: " K / J reorder up \xB7 down" }),
|
|
22965
|
+
/* @__PURE__ */ jsx34(Text31, { children: " " }),
|
|
22966
|
+
/* @__PURE__ */ jsx34(Text31, { bold: true, children: "Panels" }),
|
|
22967
|
+
/* @__PURE__ */ jsx34(Text31, { children: " s toggle source-view for the current prop" }),
|
|
22968
|
+
/* @__PURE__ */ jsx34(Text31, { children: " " + propRationaleKey.padEnd(16) + " toggle prop rationale panel" }),
|
|
22969
|
+
/* @__PURE__ */ jsx34(Text31, { children: " " + componentRationaleKey.padEnd(16) + " toggle component rationale panel" }),
|
|
22970
|
+
/* @__PURE__ */ jsx34(Text31, { children: " ? toggle this overlay" }),
|
|
22971
|
+
/* @__PURE__ */ jsx34(Text31, { children: " " }),
|
|
22972
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: "press ? or Esc to close" })
|
|
22987
22973
|
] }),
|
|
22988
|
-
validationError && /* @__PURE__ */
|
|
22989
|
-
/* @__PURE__ */
|
|
22974
|
+
validationError && /* @__PURE__ */ jsx34(Text31, { color: PALETTE.error, children: "\u2717 " + validationError }),
|
|
22975
|
+
/* @__PURE__ */ jsx34(Text31, { dimColor: true, children: modeLabel })
|
|
22990
22976
|
]
|
|
22991
22977
|
}
|
|
22992
22978
|
);
|
|
@@ -23041,23 +23027,23 @@ var init_wrap_text = __esm({
|
|
|
23041
23027
|
});
|
|
23042
23028
|
|
|
23043
23029
|
// packages/experience-design-system-cli/src/analyze/select/tui/components/RationaleLine.tsx
|
|
23044
|
-
import { Box as
|
|
23045
|
-
import { jsx as
|
|
23030
|
+
import { Box as Box30, Text as Text32 } from "ink";
|
|
23031
|
+
import { jsx as jsx35, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
23046
23032
|
function RationaleLine({ line, active }) {
|
|
23047
23033
|
if (line.kind === "blank") {
|
|
23048
|
-
return /* @__PURE__ */
|
|
23034
|
+
return /* @__PURE__ */ jsx35(Box30, { children: /* @__PURE__ */ jsx35(Text32, { children: " " }) });
|
|
23049
23035
|
}
|
|
23050
23036
|
if (line.kind === "heading") {
|
|
23051
|
-
return /* @__PURE__ */
|
|
23037
|
+
return /* @__PURE__ */ jsx35(Box30, { children: /* @__PURE__ */ jsx35(Text32, { bold: true, color: PALETTE.info, dimColor: !active, children: line.text }) });
|
|
23052
23038
|
}
|
|
23053
23039
|
if (line.kind === "label") {
|
|
23054
|
-
return /* @__PURE__ */ jsxs32(
|
|
23055
|
-
line.prefix && /* @__PURE__ */
|
|
23056
|
-
/* @__PURE__ */
|
|
23057
|
-
line.suffix && /* @__PURE__ */
|
|
23040
|
+
return /* @__PURE__ */ jsxs32(Box30, { children: [
|
|
23041
|
+
line.prefix && /* @__PURE__ */ jsx35(Text32, { children: line.prefix }),
|
|
23042
|
+
/* @__PURE__ */ jsx35(Text32, { bold: true, color: line.color, dimColor: !active, children: line.text }),
|
|
23043
|
+
line.suffix && /* @__PURE__ */ jsx35(Text32, { dimColor: true, children: line.suffix })
|
|
23058
23044
|
] });
|
|
23059
23045
|
}
|
|
23060
|
-
return /* @__PURE__ */
|
|
23046
|
+
return /* @__PURE__ */ jsx35(Box30, { children: /* @__PURE__ */ jsx35(Text32, { dimColor: !active || line.dim, children: line.text }) });
|
|
23061
23047
|
}
|
|
23062
23048
|
var init_RationaleLine = __esm({
|
|
23063
23049
|
"packages/experience-design-system-cli/src/analyze/select/tui/components/RationaleLine.tsx"() {
|
|
@@ -23067,8 +23053,8 @@ var init_RationaleLine = __esm({
|
|
|
23067
23053
|
});
|
|
23068
23054
|
|
|
23069
23055
|
// packages/experience-design-system-cli/src/analyze/select/tui/components/ComponentRationalePanel.tsx
|
|
23070
|
-
import { Box as
|
|
23071
|
-
import { jsx as
|
|
23056
|
+
import { Box as Box31, Text as Text33 } from "ink";
|
|
23057
|
+
import { jsx as jsx36, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
23072
23058
|
function renderComponentRationaleLines(data, innerWidth) {
|
|
23073
23059
|
const out = [];
|
|
23074
23060
|
const pushSection = (heading, body) => {
|
|
@@ -23136,7 +23122,7 @@ function ComponentRationalePanel({
|
|
|
23136
23122
|
const visibleStart = totalLines === 0 ? 0 : scrollOffset + 1;
|
|
23137
23123
|
const visibleEnd = Math.min(totalLines, scrollOffset + contentHeight);
|
|
23138
23124
|
return /* @__PURE__ */ jsxs33(
|
|
23139
|
-
|
|
23125
|
+
Box31,
|
|
23140
23126
|
{
|
|
23141
23127
|
flexDirection: "column",
|
|
23142
23128
|
width,
|
|
@@ -23144,9 +23130,9 @@ function ComponentRationalePanel({
|
|
|
23144
23130
|
borderStyle: "single",
|
|
23145
23131
|
borderColor: active ? PALETTE.inverse : void 0,
|
|
23146
23132
|
children: [
|
|
23147
|
-
/* @__PURE__ */
|
|
23148
|
-
visible.map((line, i) => /* @__PURE__ */
|
|
23149
|
-
/* @__PURE__ */
|
|
23133
|
+
/* @__PURE__ */ jsx36(Box31, { children: /* @__PURE__ */ jsx36(Text33, { bold: true, dimColor: !active, children: `Component rationale: ${data.name}` }) }),
|
|
23134
|
+
visible.map((line, i) => /* @__PURE__ */ jsx36(RationaleLine, { line, active }, i)),
|
|
23135
|
+
/* @__PURE__ */ jsx36(Box31, { children: overflowed ? /* @__PURE__ */ jsx36(Text33, { dimColor: true, children: `${visibleStart}-${visibleEnd}/${totalLines} [j/k] scroll [I/Esc] close` }) : /* @__PURE__ */ jsx36(Text33, { dimColor: true, children: "[I/Esc] close" }) })
|
|
23150
23136
|
]
|
|
23151
23137
|
}
|
|
23152
23138
|
);
|
|
@@ -23163,10 +23149,10 @@ var init_ComponentRationalePanel = __esm({
|
|
|
23163
23149
|
});
|
|
23164
23150
|
|
|
23165
23151
|
// packages/experience-design-system-cli/src/analyze/select/tui/components/HighlightedLine.tsx
|
|
23166
|
-
import { Text as
|
|
23167
|
-
import { Fragment as Fragment10, jsx as
|
|
23152
|
+
import { Text as Text34 } from "ink";
|
|
23153
|
+
import { Fragment as Fragment10, jsx as jsx37 } from "react/jsx-runtime";
|
|
23168
23154
|
function HighlightedLine({ parts }) {
|
|
23169
|
-
return /* @__PURE__ */
|
|
23155
|
+
return /* @__PURE__ */ jsx37(Fragment10, { children: parts.map((part, i) => /* @__PURE__ */ jsx37(Text34, { color: part.color, dimColor: part.dim, children: part.text }, i)) });
|
|
23170
23156
|
}
|
|
23171
23157
|
var init_HighlightedLine = __esm({
|
|
23172
23158
|
"packages/experience-design-system-cli/src/analyze/select/tui/components/HighlightedLine.tsx"() {
|
|
@@ -23175,8 +23161,8 @@ var init_HighlightedLine = __esm({
|
|
|
23175
23161
|
});
|
|
23176
23162
|
|
|
23177
23163
|
// packages/experience-design-system-cli/src/analyze/select/tui/components/ScrollablePanel.tsx
|
|
23178
|
-
import { Box as
|
|
23179
|
-
import { Fragment as Fragment11, jsx as
|
|
23164
|
+
import { Box as Box32, Text as Text35 } from "ink";
|
|
23165
|
+
import { Fragment as Fragment11, jsx as jsx38, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
23180
23166
|
function ScrollablePanel({
|
|
23181
23167
|
header,
|
|
23182
23168
|
width,
|
|
@@ -23189,12 +23175,12 @@ function ScrollablePanel({
|
|
|
23189
23175
|
children
|
|
23190
23176
|
}) {
|
|
23191
23177
|
const overflowed = totalLines > height;
|
|
23192
|
-
return /* @__PURE__ */ jsxs34(
|
|
23193
|
-
/* @__PURE__ */ jsxs34(
|
|
23178
|
+
return /* @__PURE__ */ jsxs34(Box32, { flexDirection: "column", width, height: height + 2, borderStyle: "single", borderColor, children: [
|
|
23179
|
+
/* @__PURE__ */ jsxs34(Box32, { children: [
|
|
23194
23180
|
header,
|
|
23195
23181
|
overflowed && /* @__PURE__ */ jsxs34(Fragment11, { children: [
|
|
23196
|
-
/* @__PURE__ */
|
|
23197
|
-
/* @__PURE__ */
|
|
23182
|
+
/* @__PURE__ */ jsx38(Box32, { flexGrow: 1 }),
|
|
23183
|
+
/* @__PURE__ */ jsx38(Text35, { dimColor: !active, children: `\u2195 ${visibleStart}-${visibleEnd}/${totalLines}` })
|
|
23198
23184
|
] })
|
|
23199
23185
|
] }),
|
|
23200
23186
|
children
|
|
@@ -23207,8 +23193,8 @@ var init_ScrollablePanel = __esm({
|
|
|
23207
23193
|
});
|
|
23208
23194
|
|
|
23209
23195
|
// packages/experience-design-system-cli/src/analyze/select/tui/components/JsonPanel.tsx
|
|
23210
|
-
import { Box as
|
|
23211
|
-
import { jsx as
|
|
23196
|
+
import { Box as Box33, Text as Text36 } from "ink";
|
|
23197
|
+
import { jsx as jsx39 } from "react/jsx-runtime";
|
|
23212
23198
|
function highlightJson(line) {
|
|
23213
23199
|
const parts = [];
|
|
23214
23200
|
let remaining = line;
|
|
@@ -23246,7 +23232,7 @@ function highlightJson(line) {
|
|
|
23246
23232
|
parts.push({ text: remaining[0] });
|
|
23247
23233
|
remaining = remaining.slice(1);
|
|
23248
23234
|
}
|
|
23249
|
-
return /* @__PURE__ */
|
|
23235
|
+
return /* @__PURE__ */ jsx39(HighlightedLine, { parts });
|
|
23250
23236
|
}
|
|
23251
23237
|
function truncateLine(line, maxWidth) {
|
|
23252
23238
|
if (line.length <= maxWidth) return line;
|
|
@@ -23259,10 +23245,10 @@ function JsonPanel({ label, value, scrollOffset, width, height, active }) {
|
|
|
23259
23245
|
const totalLines = allLines.length;
|
|
23260
23246
|
const visibleStart = totalLines === 0 ? 0 : scrollOffset + 1;
|
|
23261
23247
|
const visibleEnd = Math.min(totalLines, scrollOffset + height);
|
|
23262
|
-
return /* @__PURE__ */
|
|
23248
|
+
return /* @__PURE__ */ jsx39(
|
|
23263
23249
|
ScrollablePanel,
|
|
23264
23250
|
{
|
|
23265
|
-
header: /* @__PURE__ */
|
|
23251
|
+
header: /* @__PURE__ */ jsx39(Text36, { bold: true, dimColor: !active, children: label }),
|
|
23266
23252
|
width,
|
|
23267
23253
|
height,
|
|
23268
23254
|
active,
|
|
@@ -23272,7 +23258,7 @@ function JsonPanel({ label, value, scrollOffset, width, height, active }) {
|
|
|
23272
23258
|
borderColor: active ? "white" : void 0,
|
|
23273
23259
|
children: visibleLines.map((line, i) => {
|
|
23274
23260
|
const truncated = truncateLine(line, innerWidth);
|
|
23275
|
-
return /* @__PURE__ */
|
|
23261
|
+
return /* @__PURE__ */ jsx39(Box33, { children: highlightJson(truncated) }, i);
|
|
23276
23262
|
})
|
|
23277
23263
|
}
|
|
23278
23264
|
);
|
|
@@ -23286,8 +23272,8 @@ var init_JsonPanel = __esm({
|
|
|
23286
23272
|
});
|
|
23287
23273
|
|
|
23288
23274
|
// packages/experience-design-system-cli/src/analyze/select/tui/components/RationalePanel.tsx
|
|
23289
|
-
import { Text as
|
|
23290
|
-
import { jsx as
|
|
23275
|
+
import { Text as Text37 } from "ink";
|
|
23276
|
+
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
23291
23277
|
function renderRationaleLines(rows, innerWidth) {
|
|
23292
23278
|
const out = [];
|
|
23293
23279
|
rows.forEach((row, idx) => {
|
|
@@ -23320,10 +23306,10 @@ function RationalePanel({
|
|
|
23320
23306
|
const visible = allLines.slice(scrollOffset, scrollOffset + height);
|
|
23321
23307
|
const visibleStart = totalLines === 0 ? 0 : scrollOffset + 1;
|
|
23322
23308
|
const visibleEnd = Math.min(totalLines, scrollOffset + height);
|
|
23323
|
-
return /* @__PURE__ */
|
|
23309
|
+
return /* @__PURE__ */ jsx40(
|
|
23324
23310
|
ScrollablePanel,
|
|
23325
23311
|
{
|
|
23326
|
-
header: /* @__PURE__ */
|
|
23312
|
+
header: /* @__PURE__ */ jsx40(Text37, { bold: true, dimColor: !active, children: `RATIONALE \u2014 ${componentName}` }),
|
|
23327
23313
|
width,
|
|
23328
23314
|
height,
|
|
23329
23315
|
active,
|
|
@@ -23331,7 +23317,7 @@ function RationalePanel({
|
|
|
23331
23317
|
visibleStart,
|
|
23332
23318
|
visibleEnd,
|
|
23333
23319
|
borderColor: active ? PALETTE.inverse : void 0,
|
|
23334
|
-
children: visible.map((line, i) => /* @__PURE__ */
|
|
23320
|
+
children: visible.map((line, i) => /* @__PURE__ */ jsx40(RationaleLine, { line, active }, i))
|
|
23335
23321
|
}
|
|
23336
23322
|
);
|
|
23337
23323
|
}
|
|
@@ -23347,8 +23333,8 @@ var init_RationalePanel = __esm({
|
|
|
23347
23333
|
|
|
23348
23334
|
// packages/experience-design-system-cli/src/analyze/select/tui/components/TokenReviewPanel.tsx
|
|
23349
23335
|
import figures6 from "figures";
|
|
23350
|
-
import { Box as
|
|
23351
|
-
import { jsx as
|
|
23336
|
+
import { Box as Box34, Text as Text38 } from "ink";
|
|
23337
|
+
import { jsx as jsx41, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
23352
23338
|
function collectTokenSuggestions(entry, availableTokens = []) {
|
|
23353
23339
|
return Object.entries(entry.$properties).filter(([, def]) => {
|
|
23354
23340
|
const rawKind = def["$token.kind"];
|
|
@@ -23383,7 +23369,7 @@ function TokenReviewPanel({
|
|
|
23383
23369
|
const visiblePaths = current.paths.slice(scrollStart, scrollStart + visibleCount);
|
|
23384
23370
|
const rangeLabel = current.paths.length === 0 ? "no compatible tokens" : `${scrollStart + 1}-${scrollStart + visiblePaths.length} of ${current.paths.length}`;
|
|
23385
23371
|
return /* @__PURE__ */ jsxs35(
|
|
23386
|
-
|
|
23372
|
+
Box34,
|
|
23387
23373
|
{
|
|
23388
23374
|
flexDirection: "column",
|
|
23389
23375
|
width,
|
|
@@ -23391,25 +23377,25 @@ function TokenReviewPanel({
|
|
|
23391
23377
|
borderStyle: "single",
|
|
23392
23378
|
borderColor: active ? PALETTE.inverse : void 0,
|
|
23393
23379
|
children: [
|
|
23394
|
-
/* @__PURE__ */
|
|
23395
|
-
/* @__PURE__ */
|
|
23396
|
-
/* @__PURE__ */
|
|
23397
|
-
current.paths.length === 0 && /* @__PURE__ */
|
|
23380
|
+
/* @__PURE__ */ jsx41(Text38, { bold: true, dimColor: !active, wrap: "truncate", children: `TOKEN REVIEW \u2014 ${componentName} \xB7 ${current.propName} (edit allowed)` }),
|
|
23381
|
+
/* @__PURE__ */ jsx41(Text38, { dimColor: true, wrap: "truncate", children: `select which tokens are allowed (${rangeLabel})` }),
|
|
23382
|
+
/* @__PURE__ */ jsx41(Text38, { children: " " }),
|
|
23383
|
+
current.paths.length === 0 && /* @__PURE__ */ jsx41(Text38, { dimColor: true, children: "(no compatible tokens found for this token kind)" }),
|
|
23398
23384
|
visiblePaths.map((path, i) => {
|
|
23399
23385
|
const pathIndex = scrollStart + i;
|
|
23400
23386
|
const checked = editSelection.has(path);
|
|
23401
23387
|
const focused = pathIndex === editCursor;
|
|
23402
|
-
return /* @__PURE__ */
|
|
23388
|
+
return /* @__PURE__ */ jsx41(Box34, { children: /* @__PURE__ */ jsx41(Text38, { color: focused ? PALETTE.info : void 0, bold: focused, dimColor: !active, wrap: "truncate", children: ` [${checked ? "x" : " "}] ${path}` }) }, path);
|
|
23403
23389
|
}),
|
|
23404
|
-
/* @__PURE__ */
|
|
23405
|
-
/* @__PURE__ */
|
|
23406
|
-
/* @__PURE__ */
|
|
23390
|
+
/* @__PURE__ */ jsx41(Text38, { children: " " }),
|
|
23391
|
+
/* @__PURE__ */ jsx41(Text38, { dimColor: true, wrap: "truncate", children: "[\u2191/\u2193] move [Space] toggle" }),
|
|
23392
|
+
/* @__PURE__ */ jsx41(Text38, { dimColor: true, wrap: "truncate", children: "[Ctrl+S] save [Esc] cancel" })
|
|
23407
23393
|
]
|
|
23408
23394
|
}
|
|
23409
23395
|
);
|
|
23410
23396
|
}
|
|
23411
23397
|
return /* @__PURE__ */ jsxs35(
|
|
23412
|
-
|
|
23398
|
+
Box34,
|
|
23413
23399
|
{
|
|
23414
23400
|
flexDirection: "column",
|
|
23415
23401
|
width,
|
|
@@ -23417,18 +23403,18 @@ function TokenReviewPanel({
|
|
|
23417
23403
|
borderStyle: "single",
|
|
23418
23404
|
borderColor: active ? PALETTE.inverse : void 0,
|
|
23419
23405
|
children: [
|
|
23420
|
-
/* @__PURE__ */
|
|
23421
|
-
suggestions.length === 0 && /* @__PURE__ */
|
|
23406
|
+
/* @__PURE__ */ jsx41(Text38, { bold: true, dimColor: !active, children: `TOKEN REVIEW \u2014 ${componentName}` }),
|
|
23407
|
+
suggestions.length === 0 && /* @__PURE__ */ jsx41(Text38, { dimColor: true, children: "(no token suggestions for this component)" }),
|
|
23422
23408
|
suggestions.map((s, i) => {
|
|
23423
23409
|
const focused = i === selectedRow;
|
|
23424
|
-
return /* @__PURE__ */ jsxs35(
|
|
23425
|
-
/* @__PURE__ */
|
|
23426
|
-
/* @__PURE__ */
|
|
23427
|
-
/* @__PURE__ */
|
|
23410
|
+
return /* @__PURE__ */ jsxs35(Box34, { flexDirection: "column", children: [
|
|
23411
|
+
/* @__PURE__ */ jsx41(Box34, { children: /* @__PURE__ */ jsx41(Text38, { color: focused ? PALETTE.info : void 0, bold: focused, dimColor: !active, children: `${focused ? figures6.pointer : " "} ${s.propName}` }) }),
|
|
23412
|
+
/* @__PURE__ */ jsx41(Text38, { dimColor: true, children: ` suggested: ${s.suggested.join(", ")}` }),
|
|
23413
|
+
/* @__PURE__ */ jsx41(Text38, { dimColor: true, children: ` allowed: ${s.allowed.join(", ")}` })
|
|
23428
23414
|
] }, s.propName);
|
|
23429
23415
|
}),
|
|
23430
|
-
/* @__PURE__ */
|
|
23431
|
-
/* @__PURE__ */
|
|
23416
|
+
/* @__PURE__ */ jsx41(Text38, { children: " " }),
|
|
23417
|
+
/* @__PURE__ */ jsx41(Text38, { dimColor: true, children: "[\u2191/\u2193] move [Enter] edit allowed [Esc] close" })
|
|
23432
23418
|
]
|
|
23433
23419
|
}
|
|
23434
23420
|
);
|
|
@@ -23441,8 +23427,8 @@ var init_TokenReviewPanel = __esm({
|
|
|
23441
23427
|
});
|
|
23442
23428
|
|
|
23443
23429
|
// packages/experience-design-system-cli/src/import/tui/steps/review-details-panel.tsx
|
|
23444
|
-
import { Box as
|
|
23445
|
-
import { Fragment as Fragment12, jsx as
|
|
23430
|
+
import { Box as Box35, Text as Text39 } from "ink";
|
|
23431
|
+
import { Fragment as Fragment12, jsx as jsx42, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
23446
23432
|
function ReviewDetailsPanel({
|
|
23447
23433
|
selectedKey,
|
|
23448
23434
|
panelOpen,
|
|
@@ -23476,7 +23462,7 @@ function ReviewDetailsPanel({
|
|
|
23476
23462
|
rationale: s.rationale ?? ""
|
|
23477
23463
|
}))
|
|
23478
23464
|
];
|
|
23479
|
-
return /* @__PURE__ */
|
|
23465
|
+
return /* @__PURE__ */ jsx42(
|
|
23480
23466
|
RationalePanel,
|
|
23481
23467
|
{
|
|
23482
23468
|
componentName: componentRationale?.name ?? selectedKey,
|
|
@@ -23489,7 +23475,7 @@ function ReviewDetailsPanel({
|
|
|
23489
23475
|
);
|
|
23490
23476
|
}
|
|
23491
23477
|
if (panelOpen === "component-rationale") {
|
|
23492
|
-
return /* @__PURE__ */
|
|
23478
|
+
return /* @__PURE__ */ jsx42(
|
|
23493
23479
|
ComponentRationalePanel,
|
|
23494
23480
|
{
|
|
23495
23481
|
data: componentRationale ?? {
|
|
@@ -23513,14 +23499,14 @@ function ReviewDetailsPanel({
|
|
|
23513
23499
|
const source = reviewMetadata?.componentSource ?? null;
|
|
23514
23500
|
const headerPath = path ?? "<unknown source path>";
|
|
23515
23501
|
const lines = source ? source.split("\n").slice(panelScrollOffset, panelScrollOffset + height) : [];
|
|
23516
|
-
return /* @__PURE__ */ jsxs36(
|
|
23517
|
-
/* @__PURE__ */
|
|
23518
|
-
source ? lines.map((line, index) => /* @__PURE__ */
|
|
23519
|
-
/* @__PURE__ */
|
|
23502
|
+
return /* @__PURE__ */ jsxs36(Box35, { flexDirection: "column", width, borderStyle: "single", borderColor: sourceBorderColor, paddingX: 1, children: [
|
|
23503
|
+
/* @__PURE__ */ jsx42(Text39, { dimColor: true, bold: true, children: `source: ${headerPath}` }),
|
|
23504
|
+
source ? lines.map((line, index) => /* @__PURE__ */ jsx42(Text39, { dimColor: true, children: line }, `source-line-${index}`)) : /* @__PURE__ */ jsx42(Text39, { dimColor: true, children: "(no source captured)" }),
|
|
23505
|
+
/* @__PURE__ */ jsx42(Text39, { dimColor: true, children: "[s/Esc] close" })
|
|
23520
23506
|
] });
|
|
23521
23507
|
}
|
|
23522
23508
|
if (panelOpen === "token-review") {
|
|
23523
|
-
return /* @__PURE__ */
|
|
23509
|
+
return /* @__PURE__ */ jsx42(
|
|
23524
23510
|
TokenReviewPanel,
|
|
23525
23511
|
{
|
|
23526
23512
|
componentName: selectedKey,
|
|
@@ -23536,7 +23522,7 @@ function ReviewDetailsPanel({
|
|
|
23536
23522
|
);
|
|
23537
23523
|
}
|
|
23538
23524
|
if (showJson) {
|
|
23539
|
-
return /* @__PURE__ */
|
|
23525
|
+
return /* @__PURE__ */ jsx42(
|
|
23540
23526
|
JsonPanel,
|
|
23541
23527
|
{
|
|
23542
23528
|
label: "GENERATED DEFINITION (read-only)",
|
|
@@ -23548,7 +23534,7 @@ function ReviewDetailsPanel({
|
|
|
23548
23534
|
}
|
|
23549
23535
|
);
|
|
23550
23536
|
}
|
|
23551
|
-
return /* @__PURE__ */
|
|
23537
|
+
return /* @__PURE__ */ jsx42(Fragment12, { children: editor });
|
|
23552
23538
|
}
|
|
23553
23539
|
var init_review_details_panel = __esm({
|
|
23554
23540
|
"packages/experience-design-system-cli/src/import/tui/steps/review-details-panel.tsx"() {
|
|
@@ -23561,7 +23547,7 @@ var init_review_details_panel = __esm({
|
|
|
23561
23547
|
});
|
|
23562
23548
|
|
|
23563
23549
|
// packages/experience-design-system-cli/src/import/tui/components/ReviewDetailsEditor.tsx
|
|
23564
|
-
import { jsx as
|
|
23550
|
+
import { jsx as jsx43 } from "react/jsx-runtime";
|
|
23565
23551
|
import { createElement as createElement5 } from "react";
|
|
23566
23552
|
function toFieldEditorMetadata(reviewMetadata) {
|
|
23567
23553
|
if (!reviewMetadata) return void 0;
|
|
@@ -23594,7 +23580,7 @@ function ReviewDetailsEditor({
|
|
|
23594
23580
|
jsonScrollOffset,
|
|
23595
23581
|
currentTokenSuggestions
|
|
23596
23582
|
} = reviewEditor;
|
|
23597
|
-
return /* @__PURE__ */
|
|
23583
|
+
return /* @__PURE__ */ jsx43(
|
|
23598
23584
|
ReviewDetailsPanel,
|
|
23599
23585
|
{
|
|
23600
23586
|
selectedKey,
|
|
@@ -23637,8 +23623,8 @@ var init_ReviewDetailsEditor = __esm({
|
|
|
23637
23623
|
});
|
|
23638
23624
|
|
|
23639
23625
|
// packages/experience-design-system-cli/src/import/tui/components/ReviewComponentPanel.tsx
|
|
23640
|
-
import { Box as
|
|
23641
|
-
import { Fragment as Fragment13, jsx as
|
|
23626
|
+
import { Box as Box36, Text as Text40 } from "ink";
|
|
23627
|
+
import { Fragment as Fragment13, jsx as jsx44, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
23642
23628
|
function buildReviewFieldEditor(reviewEditor, selectedJson, onExit, overrides = {}) {
|
|
23643
23629
|
return {
|
|
23644
23630
|
value: reviewEditor.draftValue || selectedJson,
|
|
@@ -23678,17 +23664,17 @@ function ReviewEmptyComponentsWarning({
|
|
|
23678
23664
|
hidden
|
|
23679
23665
|
}) {
|
|
23680
23666
|
if (hidden || count === 0) return null;
|
|
23681
|
-
return /* @__PURE__ */
|
|
23667
|
+
return /* @__PURE__ */ jsx44(Text40, { color: PALETTE.warning, children: `\u26A0 ${count} component${count === 1 ? "" : "s"} had no classifiable props \u2014 review with care` });
|
|
23682
23668
|
}
|
|
23683
23669
|
function ReviewNoSelection() {
|
|
23684
|
-
return /* @__PURE__ */
|
|
23670
|
+
return /* @__PURE__ */ jsx44(Box36, { flexGrow: 1, paddingLeft: 1, flexDirection: "column", children: /* @__PURE__ */ jsx44(Text40, { dimColor: true, children: "No component selected" }) });
|
|
23685
23671
|
}
|
|
23686
23672
|
function ReviewFinalizeError({
|
|
23687
23673
|
message,
|
|
23688
23674
|
hidden
|
|
23689
23675
|
}) {
|
|
23690
23676
|
if (hidden || !message) return null;
|
|
23691
|
-
return /* @__PURE__ */
|
|
23677
|
+
return /* @__PURE__ */ jsx44(Text40, { color: PALETTE.error, children: `\u26A0 ${message}` });
|
|
23692
23678
|
}
|
|
23693
23679
|
function ReviewPanelFooter({
|
|
23694
23680
|
reviewEditor,
|
|
@@ -23699,8 +23685,8 @@ function ReviewPanelFooter({
|
|
|
23699
23685
|
}) {
|
|
23700
23686
|
return /* @__PURE__ */ jsxs37(Fragment13, { children: [
|
|
23701
23687
|
reviewEditor.panelOpen === "token-review" ? " [\u2191/\u2193] move [Enter] edit allowed [Esc] close" : sidebarFocused ? sidebarFooter : reviewEditor.showJson ? " [j/k] scroll [Ctrl+u/d] half-page [gg/G] top/bottom [Tab] focus list" : " [Tab] focus list (edit fields)" + (reviewEditor.currentTokenSuggestions().length > 0 ? " [t] token review" : ""),
|
|
23702
|
-
livePreview.status === "running" && /* @__PURE__ */
|
|
23703
|
-
livePreview.disabled && /* @__PURE__ */
|
|
23688
|
+
livePreview.status === "running" && /* @__PURE__ */ jsx44(Text40, { children: ` ${livePreviewSpinner} live preview` }),
|
|
23689
|
+
livePreview.disabled && /* @__PURE__ */ jsx44(Text40, { children: " \xB7 live preview disabled" })
|
|
23704
23690
|
] });
|
|
23705
23691
|
}
|
|
23706
23692
|
function ReviewComponentPanel({
|
|
@@ -23722,11 +23708,11 @@ function ReviewComponentPanel({
|
|
|
23722
23708
|
}) {
|
|
23723
23709
|
const propCount = Object.keys(selectedEntry.$properties).length;
|
|
23724
23710
|
const slotCount = selectedEntry.$slots ? Object.keys(selectedEntry.$slots).length : 0;
|
|
23725
|
-
return /* @__PURE__ */ jsxs37(
|
|
23726
|
-
/* @__PURE__ */ jsxs37(
|
|
23727
|
-
/* @__PURE__ */
|
|
23728
|
-
/* @__PURE__ */
|
|
23729
|
-
/* @__PURE__ */ jsxs37(
|
|
23711
|
+
return /* @__PURE__ */ jsxs37(Box36, { flexGrow: 1, paddingLeft: 1, flexDirection: "column", children: [
|
|
23712
|
+
/* @__PURE__ */ jsxs37(Box36, { children: [
|
|
23713
|
+
/* @__PURE__ */ jsx44(Text40, { bold: true, children: selectedKey }),
|
|
23714
|
+
/* @__PURE__ */ jsx44(Box36, { flexGrow: 1 }),
|
|
23715
|
+
/* @__PURE__ */ jsxs37(Text40, { dimColor: true, children: [
|
|
23730
23716
|
propCount,
|
|
23731
23717
|
" prop",
|
|
23732
23718
|
propCount !== 1 ? "s" : "",
|
|
@@ -23735,7 +23721,7 @@ function ReviewComponentPanel({
|
|
|
23735
23721
|
sidebarFocused ? "[Tab] focus panel" : "[Tab] focus list"
|
|
23736
23722
|
] })
|
|
23737
23723
|
] }),
|
|
23738
|
-
/* @__PURE__ */
|
|
23724
|
+
/* @__PURE__ */ jsx44(
|
|
23739
23725
|
ReviewDetailsEditor,
|
|
23740
23726
|
{
|
|
23741
23727
|
selectedKey,
|
|
@@ -23750,8 +23736,8 @@ function ReviewComponentPanel({
|
|
|
23750
23736
|
fieldEditor
|
|
23751
23737
|
}
|
|
23752
23738
|
),
|
|
23753
|
-
saveError && /* @__PURE__ */
|
|
23754
|
-
/* @__PURE__ */
|
|
23739
|
+
saveError && /* @__PURE__ */ jsx44(Text40, { color: PALETTE.error, children: "\u2717 " + saveError }),
|
|
23740
|
+
/* @__PURE__ */ jsx44(Text40, { dimColor: true, children: /* @__PURE__ */ jsx44(
|
|
23755
23741
|
ReviewPanelFooter,
|
|
23756
23742
|
{
|
|
23757
23743
|
reviewEditor,
|
|
@@ -23773,30 +23759,30 @@ var init_ReviewComponentPanel = __esm({
|
|
|
23773
23759
|
});
|
|
23774
23760
|
|
|
23775
23761
|
// packages/experience-design-system-cli/src/analyze/select/tui/components/StatusBar.tsx
|
|
23776
|
-
import { Box as
|
|
23777
|
-
import { jsx as
|
|
23762
|
+
import { Box as Box37, Text as Text41 } from "ink";
|
|
23763
|
+
import { jsx as jsx45, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
23778
23764
|
function StatusBar({ accepted, rejected, reviewed, needsReview }) {
|
|
23779
23765
|
const allResolved = needsReview === 0;
|
|
23780
|
-
return /* @__PURE__ */ jsxs38(
|
|
23781
|
-
/* @__PURE__ */ jsxs38(
|
|
23766
|
+
return /* @__PURE__ */ jsxs38(Box37, { gap: 2, flexWrap: "wrap", children: [
|
|
23767
|
+
/* @__PURE__ */ jsxs38(Text41, { color: PALETTE.success, children: [
|
|
23782
23768
|
accepted,
|
|
23783
23769
|
" accepted"
|
|
23784
23770
|
] }),
|
|
23785
|
-
/* @__PURE__ */ jsxs38(
|
|
23771
|
+
/* @__PURE__ */ jsxs38(Text41, { color: PALETTE.error, children: [
|
|
23786
23772
|
rejected,
|
|
23787
23773
|
" rejected"
|
|
23788
23774
|
] }),
|
|
23789
|
-
/* @__PURE__ */ jsxs38(
|
|
23775
|
+
/* @__PURE__ */ jsxs38(Text41, { dimColor: true, children: [
|
|
23790
23776
|
needsReview,
|
|
23791
23777
|
" pending"
|
|
23792
23778
|
] }),
|
|
23793
|
-
/* @__PURE__ */ jsxs38(
|
|
23779
|
+
/* @__PURE__ */ jsxs38(Text41, { color: PALETTE.info, children: [
|
|
23794
23780
|
reviewed,
|
|
23795
23781
|
" reviewed"
|
|
23796
23782
|
] }),
|
|
23797
|
-
/* @__PURE__ */
|
|
23798
|
-
/* @__PURE__ */
|
|
23799
|
-
/* @__PURE__ */
|
|
23783
|
+
/* @__PURE__ */ jsx45(Text41, { dimColor: true, children: "\xB7" }),
|
|
23784
|
+
/* @__PURE__ */ jsx45(Text41, { dimColor: true, children: "[A] accept all" }),
|
|
23785
|
+
/* @__PURE__ */ jsx45(Text41, { bold: allResolved, color: allResolved ? PALETTE.success : PALETTE.fg, children: "[F] finalize" })
|
|
23800
23786
|
] });
|
|
23801
23787
|
}
|
|
23802
23788
|
var init_StatusBar = __esm({
|
|
@@ -23807,8 +23793,8 @@ var init_StatusBar = __esm({
|
|
|
23807
23793
|
});
|
|
23808
23794
|
|
|
23809
23795
|
// packages/experience-design-system-cli/src/import/tui/components/ReviewStatus.tsx
|
|
23810
|
-
import { Box as
|
|
23811
|
-
import { jsx as
|
|
23796
|
+
import { Box as Box38, Text as Text42 } from "ink";
|
|
23797
|
+
import { jsx as jsx46, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
23812
23798
|
function countReviewStatuses(entries) {
|
|
23813
23799
|
return entries.reduce(
|
|
23814
23800
|
(counts, entry) => {
|
|
@@ -23826,7 +23812,7 @@ function ReviewStatusBar({
|
|
|
23826
23812
|
onFinalize
|
|
23827
23813
|
}) {
|
|
23828
23814
|
const { accepted, rejected, needsReview } = countReviewStatuses(entries);
|
|
23829
|
-
return /* @__PURE__ */
|
|
23815
|
+
return /* @__PURE__ */ jsx46(
|
|
23830
23816
|
StatusBar,
|
|
23831
23817
|
{
|
|
23832
23818
|
accepted,
|
|
@@ -23839,13 +23825,13 @@ function ReviewStatusBar({
|
|
|
23839
23825
|
);
|
|
23840
23826
|
}
|
|
23841
23827
|
function ReviewLoadingState() {
|
|
23842
|
-
return /* @__PURE__ */
|
|
23828
|
+
return /* @__PURE__ */ jsx46(Box38, { paddingX: 2, paddingY: 1, children: /* @__PURE__ */ jsx46(Text42, { dimColor: true, children: "Loading generated definitions..." }) });
|
|
23843
23829
|
}
|
|
23844
23830
|
function ReviewLoadError({ message }) {
|
|
23845
|
-
return /* @__PURE__ */ jsxs39(
|
|
23846
|
-
/* @__PURE__ */
|
|
23847
|
-
/* @__PURE__ */
|
|
23848
|
-
/* @__PURE__ */
|
|
23831
|
+
return /* @__PURE__ */ jsxs39(Box38, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
23832
|
+
/* @__PURE__ */ jsx46(Text42, { color: PALETTE.error, children: message }),
|
|
23833
|
+
/* @__PURE__ */ jsx46(Text42, { children: " " }),
|
|
23834
|
+
/* @__PURE__ */ jsx46(Text42, { dimColor: true, children: "[q / Enter / Esc] Quit" })
|
|
23849
23835
|
] });
|
|
23850
23836
|
}
|
|
23851
23837
|
var init_ReviewStatus = __esm({
|
|
@@ -23980,8 +23966,8 @@ var init_runLivePreview = __esm({
|
|
|
23980
23966
|
});
|
|
23981
23967
|
|
|
23982
23968
|
// packages/experience-design-system-cli/src/analyze/select/tui/components/FinalizeDialog.tsx
|
|
23983
|
-
import { Box as
|
|
23984
|
-
import { Fragment as Fragment14, jsx as
|
|
23969
|
+
import { Box as Box39, Text as Text43 } from "ink";
|
|
23970
|
+
import { Fragment as Fragment14, jsx as jsx47, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
23985
23971
|
function FinalizeDialog({
|
|
23986
23972
|
accepted,
|
|
23987
23973
|
rejected,
|
|
@@ -24009,55 +23995,55 @@ function FinalizeDialog({
|
|
|
24009
23995
|
const windowed = removed.slice(offset, offset + FINALIZE_REMOVED_WINDOW);
|
|
24010
23996
|
const hasMoreBelow = offset + FINALIZE_REMOVED_WINDOW < removed.length;
|
|
24011
23997
|
const hasMoreAbove = offset > 0;
|
|
24012
|
-
return /* @__PURE__ */ jsxs40(
|
|
24013
|
-
/* @__PURE__ */
|
|
24014
|
-
/* @__PURE__ */
|
|
24015
|
-
/* @__PURE__ */ jsxs40(
|
|
24016
|
-
/* @__PURE__ */ jsxs40(
|
|
23998
|
+
return /* @__PURE__ */ jsxs40(Box39, { flexDirection: "column", borderStyle: "round", padding: 1, width: 58, children: [
|
|
23999
|
+
/* @__PURE__ */ jsx47(Text43, { bold: true, children: "\u2500".repeat(17) + " Finalize " + "\u2500".repeat(17) }),
|
|
24000
|
+
/* @__PURE__ */ jsx47(Text43, { children: " " }),
|
|
24001
|
+
/* @__PURE__ */ jsxs40(Text43, { children: [
|
|
24002
|
+
/* @__PURE__ */ jsxs40(Text43, { color: PALETTE.success, children: [
|
|
24017
24003
|
accepted,
|
|
24018
24004
|
" accepted"
|
|
24019
24005
|
] }),
|
|
24020
|
-
/* @__PURE__ */
|
|
24021
|
-
/* @__PURE__ */ jsxs40(
|
|
24006
|
+
/* @__PURE__ */ jsx47(Text43, { children: " \xB7 " }),
|
|
24007
|
+
/* @__PURE__ */ jsxs40(Text43, { color: PALETTE.error, children: [
|
|
24022
24008
|
rejected,
|
|
24023
24009
|
" rejected"
|
|
24024
24010
|
] }),
|
|
24025
|
-
/* @__PURE__ */
|
|
24026
|
-
/* @__PURE__ */ jsxs40(
|
|
24011
|
+
/* @__PURE__ */ jsx47(Text43, { children: " \xB7 " }),
|
|
24012
|
+
/* @__PURE__ */ jsxs40(Text43, { dimColor: true, children: [
|
|
24027
24013
|
needsReview,
|
|
24028
24014
|
" unresolved"
|
|
24029
24015
|
] })
|
|
24030
24016
|
] }),
|
|
24031
|
-
/* @__PURE__ */
|
|
24017
|
+
/* @__PURE__ */ jsx47(Text43, { children: " " }),
|
|
24032
24018
|
noneAccepted && /* @__PURE__ */ jsxs40(Fragment14, { children: [
|
|
24033
|
-
/* @__PURE__ */
|
|
24034
|
-
/* @__PURE__ */
|
|
24035
|
-
/* @__PURE__ */
|
|
24019
|
+
/* @__PURE__ */ jsx47(Text43, { bold: true, color: PALETTE.warning, children: "\u26A0 No components are accepted \u2014 nothing will be pushed." }),
|
|
24020
|
+
/* @__PURE__ */ jsx47(Text43, { color: PALETTE.warning, children: " Accept at least one component ([a] a row, [A] accept all) to push." }),
|
|
24021
|
+
/* @__PURE__ */ jsx47(Text43, { children: " " })
|
|
24036
24022
|
] }),
|
|
24037
24023
|
!allResolved && /* @__PURE__ */ jsxs40(Fragment14, { children: [
|
|
24038
|
-
/* @__PURE__ */
|
|
24039
|
-
/* @__PURE__ */
|
|
24040
|
-
/* @__PURE__ */
|
|
24024
|
+
/* @__PURE__ */ jsx47(Text43, { color: PALETTE.warning, children: "\u26A0 " + needsReview + " unresolved component" + (needsReview === 1 ? "" : "s") + " will not be pushed." }),
|
|
24025
|
+
/* @__PURE__ */ jsx47(Text43, { color: PALETTE.warning, children: " Only explicitly accepted components ship." }),
|
|
24026
|
+
/* @__PURE__ */ jsx47(Text43, { children: " " })
|
|
24041
24027
|
] }),
|
|
24042
24028
|
previewStatus === "running" && /* @__PURE__ */ jsxs40(Fragment14, { children: [
|
|
24043
|
-
/* @__PURE__ */
|
|
24044
|
-
/* @__PURE__ */
|
|
24029
|
+
/* @__PURE__ */ jsx47(Text43, { dimColor: true, children: "Previewing deletions against the target space\u2026" }),
|
|
24030
|
+
/* @__PURE__ */ jsx47(Text43, { children: " " })
|
|
24045
24031
|
] }),
|
|
24046
24032
|
previewStatus === "error" && /* @__PURE__ */ jsxs40(Fragment14, { children: [
|
|
24047
|
-
/* @__PURE__ */
|
|
24048
|
-
/* @__PURE__ */
|
|
24033
|
+
/* @__PURE__ */ jsx47(Text43, { color: PALETTE.warning, children: "\u26A0 Could not preview deletions (the push will still proceed)." }),
|
|
24034
|
+
/* @__PURE__ */ jsx47(Text43, { children: " " })
|
|
24049
24035
|
] }),
|
|
24050
24036
|
previewStatus === "done" && removed.length > 0 && /* @__PURE__ */ jsxs40(Fragment14, { children: [
|
|
24051
|
-
/* @__PURE__ */
|
|
24052
|
-
hasMoreAbove && /* @__PURE__ */
|
|
24053
|
-
windowed.map((rc) => /* @__PURE__ */
|
|
24054
|
-
hasMoreBelow && /* @__PURE__ */
|
|
24055
|
-
removed.length > FINALIZE_REMOVED_WINDOW && /* @__PURE__ */
|
|
24056
|
-
/* @__PURE__ */
|
|
24037
|
+
/* @__PURE__ */ jsx47(Text43, { bold: true, color: PALETTE.error, children: removedComponentsHeader(removed.length, false) }),
|
|
24038
|
+
hasMoreAbove && /* @__PURE__ */ jsx47(Text43, { dimColor: true, children: " \u2191 more above" }),
|
|
24039
|
+
windowed.map((rc) => /* @__PURE__ */ jsx47(Text43, { color: PALETTE.error, children: removedComponentLine(rc) }, rc.id)),
|
|
24040
|
+
hasMoreBelow && /* @__PURE__ */ jsx47(Text43, { dimColor: true, children: " \u2193 more below" }),
|
|
24041
|
+
removed.length > FINALIZE_REMOVED_WINDOW && /* @__PURE__ */ jsx47(Text43, { dimColor: true, children: " [j/k] scroll deletions" }),
|
|
24042
|
+
/* @__PURE__ */ jsx47(Text43, { children: " " })
|
|
24057
24043
|
] }),
|
|
24058
|
-
/* @__PURE__ */
|
|
24059
|
-
/* @__PURE__ */
|
|
24060
|
-
/* @__PURE__ */
|
|
24044
|
+
/* @__PURE__ */ jsx47(Text43, { children: noneAccepted ? "Confirm exit with nothing accepted?" : allResolved ? "Save decisions and exit? All components resolved." : "Save decisions and exit?" }),
|
|
24045
|
+
/* @__PURE__ */ jsx47(Text43, { children: " " }),
|
|
24046
|
+
/* @__PURE__ */ jsx47(Text43, { children: " [y / Enter] Confirm [n / Esc] Cancel" })
|
|
24061
24047
|
] });
|
|
24062
24048
|
}
|
|
24063
24049
|
var FINALIZE_REMOVED_WINDOW;
|
|
@@ -24562,8 +24548,8 @@ var init_useReviewSurfaceState = __esm({
|
|
|
24562
24548
|
});
|
|
24563
24549
|
|
|
24564
24550
|
// packages/experience-design-system-cli/src/analyze/select/tui/components/QuitDialog.tsx
|
|
24565
|
-
import { Box as
|
|
24566
|
-
import { Fragment as Fragment15, jsx as
|
|
24551
|
+
import { Box as Box40, Text as Text44 } from "ink";
|
|
24552
|
+
import { Fragment as Fragment15, jsx as jsx48, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
24567
24553
|
function QuitDialog({ hasUnsavedDrafts, onConfirm, onCancel }) {
|
|
24568
24554
|
useImmediateInput((input, key) => {
|
|
24569
24555
|
if (input === "y" || key.return) {
|
|
@@ -24572,16 +24558,16 @@ function QuitDialog({ hasUnsavedDrafts, onConfirm, onCancel }) {
|
|
|
24572
24558
|
onCancel();
|
|
24573
24559
|
}
|
|
24574
24560
|
});
|
|
24575
|
-
return /* @__PURE__ */ jsxs41(
|
|
24576
|
-
/* @__PURE__ */
|
|
24577
|
-
/* @__PURE__ */
|
|
24561
|
+
return /* @__PURE__ */ jsxs41(Box40, { flexDirection: "column", borderStyle: "round", padding: 1, width: 50, children: [
|
|
24562
|
+
/* @__PURE__ */ jsx48(Text44, { bold: true, children: "\u2500".repeat(19) + " Quit " + "\u2500".repeat(19) }),
|
|
24563
|
+
/* @__PURE__ */ jsx48(Text44, { children: " " }),
|
|
24578
24564
|
hasUnsavedDrafts ? /* @__PURE__ */ jsxs41(Fragment15, { children: [
|
|
24579
|
-
/* @__PURE__ */
|
|
24580
|
-
/* @__PURE__ */
|
|
24581
|
-
/* @__PURE__ */
|
|
24582
|
-
] }) : /* @__PURE__ */
|
|
24583
|
-
/* @__PURE__ */
|
|
24584
|
-
/* @__PURE__ */
|
|
24565
|
+
/* @__PURE__ */ jsx48(Text44, { children: "You have unsaved draft edits." }),
|
|
24566
|
+
/* @__PURE__ */ jsx48(Text44, { children: "Session state is preserved \u2014 you can resume" }),
|
|
24567
|
+
/* @__PURE__ */ jsx48(Text44, { children: "by running the same review command again." })
|
|
24568
|
+
] }) : /* @__PURE__ */ jsx48(Text44, { children: "Session is saved. Quit without finalizing?" }),
|
|
24569
|
+
/* @__PURE__ */ jsx48(Text44, { children: " " }),
|
|
24570
|
+
/* @__PURE__ */ jsx48(Text44, { children: " [y / Enter] Quit [n / Esc] Stay" })
|
|
24585
24571
|
] });
|
|
24586
24572
|
}
|
|
24587
24573
|
var init_QuitDialog = __esm({
|
|
@@ -24592,8 +24578,8 @@ var init_QuitDialog = __esm({
|
|
|
24592
24578
|
});
|
|
24593
24579
|
|
|
24594
24580
|
// packages/experience-design-system-cli/src/import/tui/components/ReviewDialogs.tsx
|
|
24595
|
-
import { Box as
|
|
24596
|
-
import { Fragment as Fragment16, jsx as
|
|
24581
|
+
import { Box as Box41, Text as Text45 } from "ink";
|
|
24582
|
+
import { Fragment as Fragment16, jsx as jsx49, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
24597
24583
|
function ReviewFinalizeDialogs({
|
|
24598
24584
|
showFinalize,
|
|
24599
24585
|
showQuit,
|
|
@@ -24608,7 +24594,7 @@ function ReviewFinalizeDialogs({
|
|
|
24608
24594
|
}) {
|
|
24609
24595
|
const { accepted, rejected, needsReview } = countReviewStatuses(components);
|
|
24610
24596
|
return /* @__PURE__ */ jsxs42(Fragment16, { children: [
|
|
24611
|
-
showFinalize && /* @__PURE__ */
|
|
24597
|
+
showFinalize && /* @__PURE__ */ jsx49(
|
|
24612
24598
|
FinalizeDialog,
|
|
24613
24599
|
{
|
|
24614
24600
|
accepted,
|
|
@@ -24621,7 +24607,7 @@ function ReviewFinalizeDialogs({
|
|
|
24621
24607
|
onCancel: onFinalizeCancel
|
|
24622
24608
|
}
|
|
24623
24609
|
),
|
|
24624
|
-
showQuit && /* @__PURE__ */
|
|
24610
|
+
showQuit && /* @__PURE__ */ jsx49(QuitDialog, { hasUnsavedDrafts: false, onConfirm: onQuitConfirm, onCancel: onQuitCancel })
|
|
24625
24611
|
] });
|
|
24626
24612
|
}
|
|
24627
24613
|
function ReviewStepDialogs({
|
|
@@ -24631,7 +24617,7 @@ function ReviewStepDialogs({
|
|
|
24631
24617
|
onFinalize,
|
|
24632
24618
|
onQuit
|
|
24633
24619
|
}) {
|
|
24634
|
-
return /* @__PURE__ */
|
|
24620
|
+
return /* @__PURE__ */ jsx49(
|
|
24635
24621
|
ReviewFinalizeDialogs,
|
|
24636
24622
|
{
|
|
24637
24623
|
showFinalize: surfaceState.showFinalize,
|
|
@@ -24649,12 +24635,12 @@ function ReviewStepDialogs({
|
|
|
24649
24635
|
}
|
|
24650
24636
|
function ReviewReloadDialog({ open }) {
|
|
24651
24637
|
if (!open) return null;
|
|
24652
|
-
return /* @__PURE__ */ jsxs42(
|
|
24653
|
-
/* @__PURE__ */
|
|
24654
|
-
/* @__PURE__ */
|
|
24655
|
-
/* @__PURE__ */
|
|
24656
|
-
/* @__PURE__ */
|
|
24657
|
-
/* @__PURE__ */
|
|
24638
|
+
return /* @__PURE__ */ jsxs42(Box41, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, children: [
|
|
24639
|
+
/* @__PURE__ */ jsx49(Text45, { bold: true, color: PALETTE.warning, children: "Reload from saved state?" }),
|
|
24640
|
+
/* @__PURE__ */ jsx49(Text45, { children: "Unsaved in-memory changes will be lost." }),
|
|
24641
|
+
/* @__PURE__ */ jsx49(Text45, { children: " " }),
|
|
24642
|
+
/* @__PURE__ */ jsx49(Text45, { children: " [Enter] Confirm" }),
|
|
24643
|
+
/* @__PURE__ */ jsx49(Text45, { children: " [Esc] Cancel" })
|
|
24658
24644
|
] });
|
|
24659
24645
|
}
|
|
24660
24646
|
var init_ReviewDialogs = __esm({
|
|
@@ -25062,8 +25048,8 @@ var init_useReviewPreview = __esm({
|
|
|
25062
25048
|
});
|
|
25063
25049
|
|
|
25064
25050
|
// packages/experience-design-system-cli/src/import/tui/components/LivePreviewSummary.tsx
|
|
25065
|
-
import { Box as
|
|
25066
|
-
import { jsx as
|
|
25051
|
+
import { Box as Box42, Text as Text46 } from "ink";
|
|
25052
|
+
import { jsx as jsx50, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
25067
25053
|
function LivePreviewSummary({
|
|
25068
25054
|
enabled,
|
|
25069
25055
|
previewAnnotations,
|
|
@@ -25077,19 +25063,19 @@ function LivePreviewSummary({
|
|
|
25077
25063
|
const counts = { new: 0, changed: 0, removed: 0, breaking: 0 };
|
|
25078
25064
|
for (const annotation of previewAnnotations.values()) counts[annotation] += 1;
|
|
25079
25065
|
const hasCounts = counts.new + counts.changed + counts.removed + counts.breaking > 0;
|
|
25080
|
-
if (disabled) return /* @__PURE__ */
|
|
25081
|
-
if (status === "running" && !hasCounts) return /* @__PURE__ */
|
|
25066
|
+
if (disabled) return /* @__PURE__ */ jsx50(Text46, { dimColor: true, children: "Preview: disabled (creds rejected)" });
|
|
25067
|
+
if (status === "running" && !hasCounts) return /* @__PURE__ */ jsx50(Text46, { dimColor: true, children: `Preview: ${spinner} running...` });
|
|
25082
25068
|
if (!hasCounts) return null;
|
|
25083
|
-
return /* @__PURE__ */ jsxs43(
|
|
25084
|
-
/* @__PURE__ */
|
|
25085
|
-
/* @__PURE__ */
|
|
25086
|
-
/* @__PURE__ */
|
|
25087
|
-
/* @__PURE__ */
|
|
25088
|
-
/* @__PURE__ */
|
|
25089
|
-
/* @__PURE__ */
|
|
25090
|
-
showRemovedListHint && removedCount > 0 && /* @__PURE__ */
|
|
25091
|
-
/* @__PURE__ */
|
|
25092
|
-
/* @__PURE__ */
|
|
25069
|
+
return /* @__PURE__ */ jsxs43(Box42, { children: [
|
|
25070
|
+
/* @__PURE__ */ jsx50(Text46, { children: "Preview: " }),
|
|
25071
|
+
/* @__PURE__ */ jsx50(Text46, { color: PALETTE.success, children: `${counts.new} new` }),
|
|
25072
|
+
/* @__PURE__ */ jsx50(Text46, { children: " \xB7 " }),
|
|
25073
|
+
/* @__PURE__ */ jsx50(Text46, { color: PALETTE.warning, children: `${counts.changed} changed` }),
|
|
25074
|
+
/* @__PURE__ */ jsx50(Text46, { children: " \xB7 " }),
|
|
25075
|
+
/* @__PURE__ */ jsx50(Text46, { dimColor: true, children: `${counts.removed} removed` }),
|
|
25076
|
+
showRemovedListHint && removedCount > 0 && /* @__PURE__ */ jsx50(Text46, { dimColor: true, children: " ([d] removed list)" }),
|
|
25077
|
+
/* @__PURE__ */ jsx50(Text46, { children: " \xB7 " }),
|
|
25078
|
+
/* @__PURE__ */ jsx50(Text46, { color: PALETTE.error, bold: true, children: `${counts.breaking} breaking` })
|
|
25093
25079
|
] });
|
|
25094
25080
|
}
|
|
25095
25081
|
var init_LivePreviewSummary = __esm({
|
|
@@ -25102,8 +25088,8 @@ var init_LivePreviewSummary = __esm({
|
|
|
25102
25088
|
// packages/experience-design-system-cli/src/import/tui/steps/GenerateReviewStep.tsx
|
|
25103
25089
|
import { useCallback as useCallback6, useEffect as useEffect10, useMemo as useMemo4, useRef as useRef8, useState as useState22 } from "react";
|
|
25104
25090
|
import figures7 from "figures";
|
|
25105
|
-
import { Box as
|
|
25106
|
-
import { Fragment as Fragment17, jsx as
|
|
25091
|
+
import { Box as Box43, Text as Text47, useStdout as useStdout3 } from "ink";
|
|
25092
|
+
import { Fragment as Fragment17, jsx as jsx51, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
25107
25093
|
function sortComponentsForSidebar(components, cycleParticipants) {
|
|
25108
25094
|
const isEmpty2 = (entry) => Object.keys(entry.$properties ?? {}).length === 0 && Object.keys(entry.$slots ?? {}).length === 0;
|
|
25109
25095
|
const tier = (c2) => {
|
|
@@ -25144,10 +25130,10 @@ function CyclePathLine({
|
|
|
25144
25130
|
highlightComponents = false,
|
|
25145
25131
|
highlightLine = false
|
|
25146
25132
|
}) {
|
|
25147
|
-
return /* @__PURE__ */ jsxs44(
|
|
25133
|
+
return /* @__PURE__ */ jsxs44(Text47, { color: highlightLine ? PALETTE.warning : void 0, children: [
|
|
25148
25134
|
prefix,
|
|
25149
25135
|
segments.map(
|
|
25150
|
-
(segment, index) => segment.kind === "slot" ? /* @__PURE__ */
|
|
25136
|
+
(segment, index) => segment.kind === "slot" ? /* @__PURE__ */ jsx51(Text47, { color: PALETTE.info, children: segment.text }, index) : segment.kind === "arrow" ? /* @__PURE__ */ jsx51(Text47, { dimColor: true, children: segment.text }, index) : /* @__PURE__ */ jsx51(Text47, { color: highlightComponents ? PALETTE.warning : void 0, children: segment.text }, index)
|
|
25151
25137
|
)
|
|
25152
25138
|
] });
|
|
25153
25139
|
}
|
|
@@ -25192,7 +25178,13 @@ function deriveBreakingChanges(response) {
|
|
|
25192
25178
|
}
|
|
25193
25179
|
return out;
|
|
25194
25180
|
}
|
|
25195
|
-
function GenerateReviewStep({
|
|
25181
|
+
function GenerateReviewStep(props) {
|
|
25182
|
+
if (!props.extractSessionId) {
|
|
25183
|
+
return /* @__PURE__ */ jsx51(Box43, { paddingX: 2, paddingY: 1, children: /* @__PURE__ */ jsx51(Text47, { color: PALETTE.error, children: "Error: no session ID \u2014 cannot load generated definitions." }) });
|
|
25184
|
+
}
|
|
25185
|
+
return /* @__PURE__ */ jsx51(GenerateReviewStepView, { ...props, extractSessionId: props.extractSessionId });
|
|
25186
|
+
}
|
|
25187
|
+
function GenerateReviewStepView({
|
|
25196
25188
|
extractSessionId,
|
|
25197
25189
|
tokenSessionId,
|
|
25198
25190
|
onFinalize,
|
|
@@ -26058,30 +26050,30 @@ function GenerateReviewStep({
|
|
|
26058
26050
|
}
|
|
26059
26051
|
});
|
|
26060
26052
|
if (loading) {
|
|
26061
|
-
return /* @__PURE__ */
|
|
26053
|
+
return /* @__PURE__ */ jsx51(ReviewLoadingState, {});
|
|
26062
26054
|
}
|
|
26063
26055
|
if (loadError) {
|
|
26064
|
-
return /* @__PURE__ */
|
|
26056
|
+
return /* @__PURE__ */ jsx51(ReviewLoadError, { message: loadError });
|
|
26065
26057
|
}
|
|
26066
26058
|
if (showHelp) {
|
|
26067
|
-
return /* @__PURE__ */
|
|
26059
|
+
return /* @__PURE__ */ jsx51(HelpOverlay, { sections: HELP_SECTIONS2, onClose: () => setShowHelp(false) });
|
|
26068
26060
|
}
|
|
26069
26061
|
const renderBreakOverlay = (width) => {
|
|
26070
26062
|
const highlightedCycle = slotCycles[cyclesCursor];
|
|
26071
|
-
return /* @__PURE__ */ jsxs44(
|
|
26072
|
-
/* @__PURE__ */
|
|
26073
|
-
highlightedCycle && /* @__PURE__ */
|
|
26074
|
-
/* @__PURE__ */
|
|
26075
|
-
/* @__PURE__ */
|
|
26076
|
-
breakEdges.length > 0 && /* @__PURE__ */
|
|
26063
|
+
return /* @__PURE__ */ jsxs44(Box43, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, width, children: [
|
|
26064
|
+
/* @__PURE__ */ jsx51(Text47, { bold: true, color: PALETTE.warning, children: `BREAK CYCLE ${cyclesCursor + 1} \u2014 remove a slot edge or reject a member` }),
|
|
26065
|
+
highlightedCycle && /* @__PURE__ */ jsx51(CyclePathLine, { segments: formatCyclePathSegments(highlightedCycle), prefix: " ", highlightComponents: true }),
|
|
26066
|
+
/* @__PURE__ */ jsx51(Text47, { dimColor: true, children: highlightedCycle ? "Deleting an edge removes it from $allowedComponents (undo with Ctrl+Z)." : "No cycle highlighted." }),
|
|
26067
|
+
/* @__PURE__ */ jsx51(Text47, { children: " " }),
|
|
26068
|
+
breakEdges.length > 0 && /* @__PURE__ */ jsx51(Text47, { dimColor: true, children: "remove slot edge:" }),
|
|
26077
26069
|
breakEdges.map((edge, idx) => {
|
|
26078
26070
|
const isCursor = idx === breakCursor;
|
|
26079
|
-
return /* @__PURE__ */
|
|
26071
|
+
return /* @__PURE__ */ jsx51(Text47, { inverse: isCursor, children: `${isCursor ? figures7.pointer : " "} remove '${edge.toComponent}' from ${edge.fromComponent}.$slots.${edge.slotName}.$allowedComponents` }, `break-${idx}`);
|
|
26080
26072
|
}),
|
|
26081
26073
|
breakConfirm ? /* @__PURE__ */ jsxs44(Fragment17, { children: [
|
|
26082
|
-
/* @__PURE__ */
|
|
26083
|
-
/* @__PURE__ */
|
|
26084
|
-
] }) : /* @__PURE__ */
|
|
26074
|
+
/* @__PURE__ */ jsx51(Text47, { children: " " }),
|
|
26075
|
+
/* @__PURE__ */ jsx51(Text47, { bold: true, color: PALETTE.warning, children: "Delete this slot edge? [y] confirm [n] cancel" })
|
|
26076
|
+
] }) : /* @__PURE__ */ jsx51(Text47, { dimColor: true, children: "[\u2191\u2193/j/k] move [Enter] delete [x/Esc] close" })
|
|
26085
26077
|
] });
|
|
26086
26078
|
};
|
|
26087
26079
|
const breakOverlayFullScreen = breakPanel.isOpen && shouldBreakOverlayGoFullScreen({
|
|
@@ -26125,8 +26117,8 @@ function GenerateReviewStep({
|
|
|
26125
26117
|
for (const c2 of closures.values()) if (c2.nodes.length > 1) return true;
|
|
26126
26118
|
return false;
|
|
26127
26119
|
})();
|
|
26128
|
-
return /* @__PURE__ */ jsxs44(
|
|
26129
|
-
/* @__PURE__ */
|
|
26120
|
+
return /* @__PURE__ */ jsxs44(Box43, { flexDirection: "column", children: [
|
|
26121
|
+
/* @__PURE__ */ jsx51(
|
|
26130
26122
|
ReviewStepDialogs,
|
|
26131
26123
|
{
|
|
26132
26124
|
surfaceState: reviewSurface,
|
|
@@ -26136,24 +26128,24 @@ function GenerateReviewStep({
|
|
|
26136
26128
|
onQuit
|
|
26137
26129
|
}
|
|
26138
26130
|
),
|
|
26139
|
-
showUnsavedWarning && !dialogOpen && /* @__PURE__ */ jsxs44(
|
|
26140
|
-
/* @__PURE__ */
|
|
26141
|
-
/* @__PURE__ */
|
|
26142
|
-
/* @__PURE__ */
|
|
26143
|
-
/* @__PURE__ */
|
|
26144
|
-
/* @__PURE__ */
|
|
26145
|
-
/* @__PURE__ */
|
|
26131
|
+
showUnsavedWarning && !dialogOpen && /* @__PURE__ */ jsxs44(Box43, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, children: [
|
|
26132
|
+
/* @__PURE__ */ jsx51(Text47, { bold: true, color: PALETTE.warning, children: "Unsaved changes" }),
|
|
26133
|
+
/* @__PURE__ */ jsx51(Text47, { children: "You have unsaved edits in the current field editor." }),
|
|
26134
|
+
/* @__PURE__ */ jsx51(Text47, { children: " " }),
|
|
26135
|
+
/* @__PURE__ */ jsx51(Text47, { children: " [Enter] Save and continue" }),
|
|
26136
|
+
/* @__PURE__ */ jsx51(Text47, { children: " [Esc] Discard changes and continue" }),
|
|
26137
|
+
/* @__PURE__ */ jsx51(Text47, { children: " [Tab] Stay in the panel" })
|
|
26146
26138
|
] }),
|
|
26147
|
-
/* @__PURE__ */
|
|
26148
|
-
removedComponents.length > 0 && !dialogOpen && /* @__PURE__ */ jsxs44(
|
|
26149
|
-
/* @__PURE__ */
|
|
26139
|
+
/* @__PURE__ */ jsx51(ReviewReloadDialog, { open: showReloadDialog && !dialogOpen }),
|
|
26140
|
+
removedComponents.length > 0 && !dialogOpen && /* @__PURE__ */ jsxs44(Box43, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.error, paddingX: 1, children: [
|
|
26141
|
+
/* @__PURE__ */ jsx51(Text47, { bold: true, color: PALETTE.error, children: removedComponentsHeader(removedComponents.length, true) }),
|
|
26150
26142
|
!removedBannerCollapsed && /* @__PURE__ */ jsxs44(Fragment17, { children: [
|
|
26151
|
-
/* @__PURE__ */
|
|
26152
|
-
removedComponents.map((rc) => /* @__PURE__ */
|
|
26143
|
+
/* @__PURE__ */ jsx51(Text47, { children: " " }),
|
|
26144
|
+
removedComponents.map((rc) => /* @__PURE__ */ jsx51(Text47, { children: removedComponentLine(rc) }, rc.id))
|
|
26153
26145
|
] })
|
|
26154
26146
|
] }),
|
|
26155
|
-
breakingChanges.length > 0 && !dialogOpen && /* @__PURE__ */
|
|
26156
|
-
|
|
26147
|
+
breakingChanges.length > 0 && !dialogOpen && /* @__PURE__ */ jsx51(Box43, { paddingX: 1, children: /* @__PURE__ */ jsx51(
|
|
26148
|
+
Text47,
|
|
26157
26149
|
{
|
|
26158
26150
|
color: PALETTE.warning,
|
|
26159
26151
|
children: `[b] ${breakingChanges.length} breaking change${breakingChanges.length === 1 ? "" : "s"}`
|
|
@@ -26163,32 +26155,32 @@ function GenerateReviewStep({
|
|
|
26163
26155
|
const row = breakingRows[breakingCursor];
|
|
26164
26156
|
const comp = row ? breakingChanges.find((b) => b.componentName === row.componentName) : void 0;
|
|
26165
26157
|
if (!comp) return null;
|
|
26166
|
-
return /* @__PURE__ */ jsxs44(
|
|
26167
|
-
/* @__PURE__ */
|
|
26168
|
-
comp.impact && /* @__PURE__ */
|
|
26169
|
-
comp.changes.length === 0 ? /* @__PURE__ */
|
|
26170
|
-
/* @__PURE__ */
|
|
26158
|
+
return /* @__PURE__ */ jsxs44(Box43, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, children: [
|
|
26159
|
+
/* @__PURE__ */ jsx51(Text47, { bold: true, color: PALETTE.warning, children: `Breaking changes \u2014 ${comp.componentName}` }),
|
|
26160
|
+
comp.impact && /* @__PURE__ */ jsx51(Text47, { dimColor: true, children: ` affects ${comp.impact.affectedExperiences} experience${comp.impact.affectedExperiences === 1 ? "" : "s"}, ${comp.impact.affectedFragments} fragment${comp.impact.affectedFragments === 1 ? "" : "s"}` }),
|
|
26161
|
+
comp.changes.length === 0 ? /* @__PURE__ */ jsx51(Text47, { dimColor: true, children: " (no enumerated changes)" }) : comp.changes.map((change, ci) => /* @__PURE__ */ jsx51(Text47, { children: ` \u2022 ${formatBreakingChange(change, comp.current)}` }, `bd-detail-${ci}`)),
|
|
26162
|
+
/* @__PURE__ */ jsx51(Text47, { dimColor: true, children: "[D/Esc] close detail" })
|
|
26171
26163
|
] });
|
|
26172
26164
|
})(),
|
|
26173
26165
|
cyclePanel.isOpen && !dialogOpen && (() => {
|
|
26174
26166
|
const PANEL_H = 20;
|
|
26175
26167
|
const lines = [];
|
|
26176
26168
|
lines.push(
|
|
26177
|
-
/* @__PURE__ */
|
|
26169
|
+
/* @__PURE__ */ jsx51(Text47, { bold: true, color: PALETTE.warning, children: `SLOT DEPENDENCY CYCLES (${slotCycles.length})` }, "cyc-title")
|
|
26178
26170
|
);
|
|
26179
26171
|
lines.push(
|
|
26180
|
-
/* @__PURE__ */
|
|
26172
|
+
/* @__PURE__ */ jsx51(Text47, { dimColor: true, children: "push will fail until these are resolved" }, "cyc-sub")
|
|
26181
26173
|
);
|
|
26182
26174
|
lines.push(
|
|
26183
|
-
/* @__PURE__ */
|
|
26175
|
+
/* @__PURE__ */ jsx51(Text47, { dimColor: true, children: "To fix: reject a cycle member, or break the cycle by removing a slot edge." }, "cyc-guide")
|
|
26184
26176
|
);
|
|
26185
|
-
lines.push(/* @__PURE__ */
|
|
26177
|
+
lines.push(/* @__PURE__ */ jsx51(Text47, { children: " " }, "cyc-space"));
|
|
26186
26178
|
slotCycles.forEach((cycle, idx) => {
|
|
26187
26179
|
const nodeCount = new Set(cycle.path).size;
|
|
26188
26180
|
const isCursor = idx === cyclesCursor;
|
|
26189
26181
|
lines.push(
|
|
26190
|
-
/* @__PURE__ */
|
|
26191
|
-
|
|
26182
|
+
/* @__PURE__ */ jsx51(
|
|
26183
|
+
Text47,
|
|
26192
26184
|
{
|
|
26193
26185
|
bold: true,
|
|
26194
26186
|
inverse: isCursor,
|
|
@@ -26198,23 +26190,23 @@ function GenerateReviewStep({
|
|
|
26198
26190
|
)
|
|
26199
26191
|
);
|
|
26200
26192
|
lines.push(
|
|
26201
|
-
/* @__PURE__ */
|
|
26193
|
+
/* @__PURE__ */ jsx51(CyclePathLine, { segments: formatCyclePathSegments(cycle, 16), prefix: " " }, `cyc-p-${idx}`)
|
|
26202
26194
|
);
|
|
26203
26195
|
if (cycle.suggestedBreak) {
|
|
26204
26196
|
const b = cycle.suggestedBreak;
|
|
26205
26197
|
lines.push(
|
|
26206
|
-
/* @__PURE__ */
|
|
26198
|
+
/* @__PURE__ */ jsx51(Text47, { dimColor: true, children: ` Suggested fix: remove '${b.toComponent}' from ${b.fromComponent}.$slots.${b.slotName}.$allowedComponents` }, `cyc-f-${idx}`)
|
|
26207
26199
|
);
|
|
26208
26200
|
}
|
|
26209
|
-
lines.push(/* @__PURE__ */
|
|
26201
|
+
lines.push(/* @__PURE__ */ jsx51(Text47, { children: " " }, `cyc-s-${idx}`));
|
|
26210
26202
|
});
|
|
26211
26203
|
const visible = lines.slice(cyclePanelScroll, cyclePanelScroll + PANEL_H);
|
|
26212
|
-
return /* @__PURE__ */ jsxs44(
|
|
26204
|
+
return /* @__PURE__ */ jsxs44(Box43, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, children: [
|
|
26213
26205
|
visible,
|
|
26214
|
-
/* @__PURE__ */
|
|
26206
|
+
/* @__PURE__ */ jsx51(Text47, { dimColor: true, children: "[\u2191\u2193/j/k] move [Enter] jump [x] break cycle [c/q/Esc] close" })
|
|
26215
26207
|
] });
|
|
26216
26208
|
})(),
|
|
26217
|
-
!dialogOpen && /* @__PURE__ */
|
|
26209
|
+
!dialogOpen && /* @__PURE__ */ jsx51(
|
|
26218
26210
|
LivePreviewSummary,
|
|
26219
26211
|
{
|
|
26220
26212
|
enabled: livePreview,
|
|
@@ -26233,17 +26225,17 @@ function GenerateReviewStep({
|
|
|
26233
26225
|
const participantSet = cycleView.structural;
|
|
26234
26226
|
const members = stillRejected.filter((n) => participantSet.has(n)).sort();
|
|
26235
26227
|
const ancestors = stillRejected.filter((n) => !participantSet.has(n)).sort();
|
|
26236
|
-
return /* @__PURE__ */ jsxs44(
|
|
26237
|
-
/* @__PURE__ */
|
|
26238
|
-
members.length > 0 && /* @__PURE__ */
|
|
26239
|
-
ancestors.length > 0 && /* @__PURE__ */
|
|
26240
|
-
/* @__PURE__ */
|
|
26228
|
+
return /* @__PURE__ */ jsxs44(Box43, { flexDirection: "column", borderStyle: "single", borderColor: PALETTE.error, paddingX: 1, children: [
|
|
26229
|
+
/* @__PURE__ */ jsx51(Text47, { color: PALETTE.error, bold: true, children: `Cyclic component graph \u2014 auto-rejected ${stillRejected.length} component${stillRejected.length === 1 ? "" : "s"}:` }),
|
|
26230
|
+
members.length > 0 && /* @__PURE__ */ jsx51(Text47, { color: PALETTE.error, children: ` Cycle members: ${members.join(", ")}` }),
|
|
26231
|
+
ancestors.length > 0 && /* @__PURE__ */ jsx51(Text47, { color: PALETTE.error, children: ` Ancestors: ${ancestors.join(", ")}` }),
|
|
26232
|
+
/* @__PURE__ */ jsx51(Text47, { dimColor: true, children: undoSnapshot ? " [Ctrl+Z] undo \xB7 [r]/[a] manually toggle \xB7 [F] continue" : " [r]/[a] manually toggle \xB7 [F] continue" })
|
|
26241
26233
|
] });
|
|
26242
26234
|
})(),
|
|
26243
|
-
/* @__PURE__ */
|
|
26244
|
-
/* @__PURE__ */
|
|
26245
|
-
!dialogOpen && /* @__PURE__ */ jsxs44(
|
|
26246
|
-
breakingPanel.isOpen ? /* @__PURE__ */
|
|
26235
|
+
/* @__PURE__ */ jsx51(ReviewEmptyComponentsWarning, { count: emptyCount, hidden: dialogOpen }),
|
|
26236
|
+
/* @__PURE__ */ jsx51(ReviewFinalizeError, { message: finalizeError, hidden: dialogOpen }),
|
|
26237
|
+
!dialogOpen && /* @__PURE__ */ jsxs44(Box43, { children: [
|
|
26238
|
+
breakingPanel.isOpen ? /* @__PURE__ */ jsx51(
|
|
26247
26239
|
GotoBanner,
|
|
26248
26240
|
{
|
|
26249
26241
|
title: "Breaking changes",
|
|
@@ -26256,7 +26248,7 @@ function GenerateReviewStep({
|
|
|
26256
26248
|
width: sidebarWidth,
|
|
26257
26249
|
footerHint: "[\u2191/\u2193] move \xB7 [Enter] jump \xB7 [D] detail \xB7 [Esc] close"
|
|
26258
26250
|
}
|
|
26259
|
-
) : lineagePanel.isOpen && focusedComponentKey ? /* @__PURE__ */
|
|
26251
|
+
) : lineagePanel.isOpen && focusedComponentKey ? /* @__PURE__ */ jsx51(
|
|
26260
26252
|
LineagePanel,
|
|
26261
26253
|
{
|
|
26262
26254
|
focusedComponentKey,
|
|
@@ -26266,7 +26258,7 @@ function GenerateReviewStep({
|
|
|
26266
26258
|
maxRows: panelMaxRows,
|
|
26267
26259
|
width: sidebarWidth
|
|
26268
26260
|
}
|
|
26269
|
-
) : /* @__PURE__ */
|
|
26261
|
+
) : /* @__PURE__ */ jsx51(
|
|
26270
26262
|
GroupedSidebar,
|
|
26271
26263
|
{
|
|
26272
26264
|
items: groupedItems,
|
|
@@ -26304,7 +26296,7 @@ function GenerateReviewStep({
|
|
|
26304
26296
|
graph: sidebarGraph
|
|
26305
26297
|
}
|
|
26306
26298
|
),
|
|
26307
|
-
selected ? /* @__PURE__ */
|
|
26299
|
+
selected ? /* @__PURE__ */ jsx51(
|
|
26308
26300
|
ReviewComponentPanel,
|
|
26309
26301
|
{
|
|
26310
26302
|
selectedKey: selected.key,
|
|
@@ -26331,13 +26323,13 @@ function GenerateReviewStep({
|
|
|
26331
26323
|
livePreview: livePreviewHook,
|
|
26332
26324
|
livePreviewSpinner
|
|
26333
26325
|
}
|
|
26334
|
-
) : /* @__PURE__ */
|
|
26326
|
+
) : /* @__PURE__ */ jsx51(ReviewNoSelection, {})
|
|
26335
26327
|
] }),
|
|
26336
26328
|
breakPanel.isOpen && !breakOverlayFullScreen && !dialogOpen && renderBreakOverlay(),
|
|
26337
|
-
!dialogOpen && slotCycles.length > 0 && !cyclePanel.isOpen && !breakPanel.isOpen && /* @__PURE__ */ jsxs44(
|
|
26338
|
-
/* @__PURE__ */
|
|
26329
|
+
!dialogOpen && slotCycles.length > 0 && !cyclePanel.isOpen && !breakPanel.isOpen && /* @__PURE__ */ jsxs44(Box43, { flexDirection: "column", children: [
|
|
26330
|
+
/* @__PURE__ */ jsx51(Text47, { color: PALETTE.warning, children: `\u26A0 ${slotCycles.length} slot dependency cycle${slotCycles.length === 1 ? "" : "s"} detected \u2014 push will fail` }),
|
|
26339
26331
|
slotCycles.slice(0, 3).map((cycle, idx) => {
|
|
26340
|
-
return /* @__PURE__ */
|
|
26332
|
+
return /* @__PURE__ */ jsx51(
|
|
26341
26333
|
CyclePathLine,
|
|
26342
26334
|
{
|
|
26343
26335
|
segments: formatCyclePathSegments(cycle),
|
|
@@ -26348,10 +26340,10 @@ function GenerateReviewStep({
|
|
|
26348
26340
|
`cyc-banner-${idx}`
|
|
26349
26341
|
);
|
|
26350
26342
|
}),
|
|
26351
|
-
slotCycles.length > 3 && /* @__PURE__ */
|
|
26352
|
-
/* @__PURE__ */
|
|
26343
|
+
slotCycles.length > 3 && /* @__PURE__ */ jsx51(Text47, { color: PALETTE.warning, children: ` \u2026${slotCycles.length - 3} more` }),
|
|
26344
|
+
/* @__PURE__ */ jsx51(Text47, { dimColor: true, children: " press [c] for detail" })
|
|
26353
26345
|
] }),
|
|
26354
|
-
/* @__PURE__ */
|
|
26346
|
+
/* @__PURE__ */ jsx51(
|
|
26355
26347
|
SearchMatchSummary,
|
|
26356
26348
|
{
|
|
26357
26349
|
open: searchOpen,
|
|
@@ -26362,7 +26354,7 @@ function GenerateReviewStep({
|
|
|
26362
26354
|
hidden: dialogOpen
|
|
26363
26355
|
}
|
|
26364
26356
|
),
|
|
26365
|
-
!dialogOpen && sidebarFocused && /* @__PURE__ */
|
|
26357
|
+
!dialogOpen && sidebarFocused && /* @__PURE__ */ jsx51(Box43, { columnGap: 2, flexWrap: "wrap", children: reviewEditor.panelOpen === "token-review" ? /* @__PURE__ */ jsxs44(Fragment17, { children: [
|
|
26366
26358
|
legendEntry("[\u2191/\u2193]", "move"),
|
|
26367
26359
|
legendEntry("[Enter]", "edit allowed"),
|
|
26368
26360
|
legendEntry("[Esc]", "close")
|
|
@@ -26398,7 +26390,7 @@ function GenerateReviewStep({
|
|
|
26398
26390
|
legendEntry("[?]", "help"),
|
|
26399
26391
|
legendEntry("[q]", "quit")
|
|
26400
26392
|
] }) }),
|
|
26401
|
-
!dialogOpen && /* @__PURE__ */
|
|
26393
|
+
!dialogOpen && /* @__PURE__ */ jsx51(
|
|
26402
26394
|
ReviewStatusBar,
|
|
26403
26395
|
{
|
|
26404
26396
|
entries: components,
|
|
@@ -26464,7 +26456,7 @@ var init_GenerateReviewStep = __esm({
|
|
|
26464
26456
|
{
|
|
26465
26457
|
title: "Navigation",
|
|
26466
26458
|
entries: [
|
|
26467
|
-
{ keys: "
|
|
26459
|
+
{ keys: "\u2191 / \u2193", label: "Move cursor" },
|
|
26468
26460
|
{ keys: "Tab", label: "Toggle sidebar/panel" },
|
|
26469
26461
|
{ keys: "Enter", label: "Drill to source" }
|
|
26470
26462
|
]
|
|
@@ -26521,50 +26513,6 @@ var init_GenerateReviewStep = __esm({
|
|
|
26521
26513
|
}
|
|
26522
26514
|
});
|
|
26523
26515
|
|
|
26524
|
-
// packages/experience-design-system-cli/src/import/tui/final-review-host.tsx
|
|
26525
|
-
import { Box as Box45, Text as Text49 } from "ink";
|
|
26526
|
-
import { jsx as jsx53 } from "react/jsx-runtime";
|
|
26527
|
-
function FinalReviewHost({
|
|
26528
|
-
extractSessionId,
|
|
26529
|
-
tokenSessionId,
|
|
26530
|
-
onFinalize,
|
|
26531
|
-
onQuit,
|
|
26532
|
-
livePreview,
|
|
26533
|
-
spaceId,
|
|
26534
|
-
environmentId,
|
|
26535
|
-
cmaToken,
|
|
26536
|
-
host,
|
|
26537
|
-
tokensPath,
|
|
26538
|
-
initialFinalizeError
|
|
26539
|
-
}) {
|
|
26540
|
-
if (!extractSessionId) {
|
|
26541
|
-
return /* @__PURE__ */ jsx53(Box45, { paddingX: 2, paddingY: 1, children: /* @__PURE__ */ jsx53(Text49, { color: PALETTE.error, children: "Error: no session ID \u2014 cannot load generated definitions." }) });
|
|
26542
|
-
}
|
|
26543
|
-
return /* @__PURE__ */ jsx53(
|
|
26544
|
-
GenerateReviewStep,
|
|
26545
|
-
{
|
|
26546
|
-
extractSessionId,
|
|
26547
|
-
tokenSessionId,
|
|
26548
|
-
onFinalize,
|
|
26549
|
-
onQuit,
|
|
26550
|
-
livePreview,
|
|
26551
|
-
spaceId,
|
|
26552
|
-
environmentId,
|
|
26553
|
-
cmaToken,
|
|
26554
|
-
host,
|
|
26555
|
-
tokensPath,
|
|
26556
|
-
initialFinalizeError
|
|
26557
|
-
}
|
|
26558
|
-
);
|
|
26559
|
-
}
|
|
26560
|
-
var init_final_review_host = __esm({
|
|
26561
|
-
"packages/experience-design-system-cli/src/import/tui/final-review-host.tsx"() {
|
|
26562
|
-
"use strict";
|
|
26563
|
-
init_theme();
|
|
26564
|
-
init_GenerateReviewStep();
|
|
26565
|
-
}
|
|
26566
|
-
});
|
|
26567
|
-
|
|
26568
26516
|
// packages/experience-design-system-cli/src/import/tui/runScopeGate.ts
|
|
26569
26517
|
async function runScopeGate(opts) {
|
|
26570
26518
|
const db = openPipelineDb();
|
|
@@ -26766,7 +26714,7 @@ __export(WizardApp_exports, {
|
|
|
26766
26714
|
shouldRunMapTokens: () => shouldRunMapTokens
|
|
26767
26715
|
});
|
|
26768
26716
|
import { useEffect as useEffect11, useRef as useRef9, useState as useState23 } from "react";
|
|
26769
|
-
import { Box as
|
|
26717
|
+
import { Box as Box44, Text as Text48, useStdout as useStdout4 } from "ink";
|
|
26770
26718
|
import { join as join20, resolve as resolve17 } from "node:path";
|
|
26771
26719
|
import { appendFileSync as appendFileSync2, writeFileSync } from "node:fs";
|
|
26772
26720
|
import { access as access7, stat as stat5, writeFile as writeFile6 } from "node:fs/promises";
|
|
@@ -26774,7 +26722,7 @@ import { tmpdir } from "node:os";
|
|
|
26774
26722
|
import { execFile as execFile2, spawn as spawn3 } from "node:child_process";
|
|
26775
26723
|
import { mkdir as mkdir5 } from "node:fs/promises";
|
|
26776
26724
|
import { buildCDF as buildCDF3, validateCDF as validateCDF3, validateSlotReferences as validateSlotReferences2 } from "@contentful/experience-design-system-types";
|
|
26777
|
-
import { jsx as
|
|
26725
|
+
import { jsx as jsx52, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
26778
26726
|
function buildGenerateComponentsArgs(opts) {
|
|
26779
26727
|
const args = ["__generate", "components", "--agent", opts.agent, "--session", opts.sessionId];
|
|
26780
26728
|
if (opts.tokensPath) args.push("--tokens", opts.tokensPath);
|
|
@@ -27961,7 +27909,7 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
27961
27909
|
const stepContent = (() => {
|
|
27962
27910
|
switch (state.step) {
|
|
27963
27911
|
case "welcome":
|
|
27964
|
-
return /* @__PURE__ */
|
|
27912
|
+
return /* @__PURE__ */ jsx52(
|
|
27965
27913
|
WelcomeStep,
|
|
27966
27914
|
{
|
|
27967
27915
|
onContinue: (path) => {
|
|
@@ -27973,7 +27921,7 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
27973
27921
|
}
|
|
27974
27922
|
);
|
|
27975
27923
|
case "token-input":
|
|
27976
|
-
return /* @__PURE__ */
|
|
27924
|
+
return /* @__PURE__ */ jsx52(
|
|
27977
27925
|
TokenInputStep,
|
|
27978
27926
|
{
|
|
27979
27927
|
onConfirm: (rawTokensPath) => {
|
|
@@ -27984,7 +27932,7 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
27984
27932
|
}
|
|
27985
27933
|
);
|
|
27986
27934
|
case "token-reuse-gate":
|
|
27987
|
-
return /* @__PURE__ */
|
|
27935
|
+
return /* @__PURE__ */ jsx52(
|
|
27988
27936
|
GateStep,
|
|
27989
27937
|
{
|
|
27990
27938
|
successMessage: "Existing tokens.json found",
|
|
@@ -28006,7 +27954,7 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
28006
27954
|
}
|
|
28007
27955
|
);
|
|
28008
27956
|
case "checking-claude-auth":
|
|
28009
|
-
return /* @__PURE__ */
|
|
27957
|
+
return /* @__PURE__ */ jsx52(
|
|
28010
27958
|
RunningStep,
|
|
28011
27959
|
{
|
|
28012
27960
|
stepNumber: state.authCheckStepNumber,
|
|
@@ -28016,7 +27964,7 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
28016
27964
|
}
|
|
28017
27965
|
);
|
|
28018
27966
|
case "generating-tokens":
|
|
28019
|
-
return /* @__PURE__ */
|
|
27967
|
+
return /* @__PURE__ */ jsx52(
|
|
28020
27968
|
RunningStep,
|
|
28021
27969
|
{
|
|
28022
27970
|
stepNumber: 1,
|
|
@@ -28026,7 +27974,7 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
28026
27974
|
}
|
|
28027
27975
|
);
|
|
28028
27976
|
case "path-validation":
|
|
28029
|
-
return /* @__PURE__ */
|
|
27977
|
+
return /* @__PURE__ */ jsx52(
|
|
28030
27978
|
PathValidationStep,
|
|
28031
27979
|
{
|
|
28032
27980
|
projectPath: state.projectPath,
|
|
@@ -28061,7 +28009,7 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
28061
28009
|
if (phase === "done") return "Composition mapping resolved \u2713";
|
|
28062
28010
|
return `Composition: ${phase}`;
|
|
28063
28011
|
})();
|
|
28064
|
-
return /* @__PURE__ */
|
|
28012
|
+
return /* @__PURE__ */ jsx52(
|
|
28065
28013
|
RunningStep,
|
|
28066
28014
|
{
|
|
28067
28015
|
stepNumber: hasTokens ? 2 : 1,
|
|
@@ -28075,7 +28023,7 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
28075
28023
|
}
|
|
28076
28024
|
case "scope-gate": {
|
|
28077
28025
|
if (!state.extractSessionId) {
|
|
28078
|
-
return /* @__PURE__ */
|
|
28026
|
+
return /* @__PURE__ */ jsx52(Box44, { paddingX: 2, paddingY: 1, children: /* @__PURE__ */ jsx52(Text48, { color: PALETTE.error, children: "Error: extract session ID missing \u2014 please re-run." }) });
|
|
28079
28027
|
}
|
|
28080
28028
|
const sessionId2 = state.extractSessionId;
|
|
28081
28029
|
const db = openPipelineDb();
|
|
@@ -28085,8 +28033,8 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
28085
28033
|
} finally {
|
|
28086
28034
|
db.close();
|
|
28087
28035
|
}
|
|
28088
|
-
return /* @__PURE__ */
|
|
28089
|
-
|
|
28036
|
+
return /* @__PURE__ */ jsx52(
|
|
28037
|
+
ScopeGateStep,
|
|
28090
28038
|
{
|
|
28091
28039
|
components,
|
|
28092
28040
|
onConfirm: (decisions) => {
|
|
@@ -28118,7 +28066,7 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
28118
28066
|
const p = state.generateProgress;
|
|
28119
28067
|
const stepNum = hasTokens ? 4 : 3;
|
|
28120
28068
|
const progressDetail = p ? `[${p.done}/${p.total}] ${p.current} \u2014 this can take 10\u201330 minutes for large libraries` : `Starting up ${state.agent}... (this can take 10\u201330 minutes for large libraries \u2014 grab a coffee)`;
|
|
28121
|
-
return /* @__PURE__ */
|
|
28069
|
+
return /* @__PURE__ */ jsx52(
|
|
28122
28070
|
RunningStep,
|
|
28123
28071
|
{
|
|
28124
28072
|
stepNumber: stepNum,
|
|
@@ -28131,7 +28079,7 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
28131
28079
|
}
|
|
28132
28080
|
case "mapping-tokens": {
|
|
28133
28081
|
const stepNum = hasTokens ? 5 : 4;
|
|
28134
|
-
return /* @__PURE__ */
|
|
28082
|
+
return /* @__PURE__ */ jsx52(
|
|
28135
28083
|
RunningStep,
|
|
28136
28084
|
{
|
|
28137
28085
|
stepNumber: stepNum,
|
|
@@ -28143,8 +28091,8 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
28143
28091
|
);
|
|
28144
28092
|
}
|
|
28145
28093
|
case "final-review": {
|
|
28146
|
-
return /* @__PURE__ */
|
|
28147
|
-
|
|
28094
|
+
return /* @__PURE__ */ jsx52(
|
|
28095
|
+
GenerateReviewStep,
|
|
28148
28096
|
{
|
|
28149
28097
|
extractSessionId: state.extractSessionId,
|
|
28150
28098
|
tokenSessionId: state.tokenSessionId,
|
|
@@ -28202,7 +28150,7 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
28202
28150
|
const files = hasComponents || hasTokens ? "components.json" : null;
|
|
28203
28151
|
const count = state.generatedAcceptedCount > 0 ? state.generatedAcceptedCount : state.generatedCount;
|
|
28204
28152
|
const summary = hasComponents ? `${count} component definition${count !== 1 ? "s" : ""} ready${hasTokens ? ", design tokens ready" : ""}.` : hasTokens ? "Design tokens ready." : "Ready to continue.";
|
|
28205
|
-
return /* @__PURE__ */
|
|
28153
|
+
return /* @__PURE__ */ jsx52(
|
|
28206
28154
|
PushDecisionGateStep,
|
|
28207
28155
|
{
|
|
28208
28156
|
summary,
|
|
@@ -28234,7 +28182,7 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
28234
28182
|
);
|
|
28235
28183
|
}
|
|
28236
28184
|
case "credentials":
|
|
28237
|
-
return /* @__PURE__ */
|
|
28185
|
+
return /* @__PURE__ */ jsx52(
|
|
28238
28186
|
CredentialsStep,
|
|
28239
28187
|
{
|
|
28240
28188
|
initialSpaceId: state.spaceId,
|
|
@@ -28266,7 +28214,7 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
28266
28214
|
}
|
|
28267
28215
|
);
|
|
28268
28216
|
case "previewing":
|
|
28269
|
-
return /* @__PURE__ */
|
|
28217
|
+
return /* @__PURE__ */ jsx52(
|
|
28270
28218
|
RunningStep,
|
|
28271
28219
|
{
|
|
28272
28220
|
stepNumber: totalSteps,
|
|
@@ -28277,7 +28225,7 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
28277
28225
|
);
|
|
28278
28226
|
case "preview-gate": {
|
|
28279
28227
|
const editableComponentCount = extractComponents(state.cdf).length;
|
|
28280
|
-
return /* @__PURE__ */
|
|
28228
|
+
return /* @__PURE__ */ jsx52(
|
|
28281
28229
|
WizardPreviewStep,
|
|
28282
28230
|
{
|
|
28283
28231
|
preview: state.serverPreview,
|
|
@@ -28305,9 +28253,9 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
28305
28253
|
);
|
|
28306
28254
|
}
|
|
28307
28255
|
case "pushing":
|
|
28308
|
-
return /* @__PURE__ */
|
|
28256
|
+
return /* @__PURE__ */ jsx52(PushingStep, { stepNumber: totalSteps, totalSteps, progress: state.pushProgress });
|
|
28309
28257
|
case "path-prompt":
|
|
28310
|
-
return /* @__PURE__ */
|
|
28258
|
+
return /* @__PURE__ */ jsx52(
|
|
28311
28259
|
PathPrompt,
|
|
28312
28260
|
{
|
|
28313
28261
|
defaultPath: state.outDir,
|
|
@@ -28326,7 +28274,7 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
28326
28274
|
}
|
|
28327
28275
|
);
|
|
28328
28276
|
case "save-conflict-gate":
|
|
28329
|
-
return /* @__PURE__ */
|
|
28277
|
+
return /* @__PURE__ */ jsx52(
|
|
28330
28278
|
SaveConflictGate,
|
|
28331
28279
|
{
|
|
28332
28280
|
path: state.outDir,
|
|
@@ -28344,7 +28292,7 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
28344
28292
|
}
|
|
28345
28293
|
);
|
|
28346
28294
|
case "printing":
|
|
28347
|
-
return /* @__PURE__ */
|
|
28295
|
+
return /* @__PURE__ */ jsx52(
|
|
28348
28296
|
RunningStep,
|
|
28349
28297
|
{
|
|
28350
28298
|
stepNumber: totalSteps,
|
|
@@ -28355,7 +28303,7 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
28355
28303
|
);
|
|
28356
28304
|
case "print-gate": {
|
|
28357
28305
|
const teaser = buildRunTeaserLine(state.lastRunId);
|
|
28358
|
-
return /* @__PURE__ */
|
|
28306
|
+
return /* @__PURE__ */ jsx52(
|
|
28359
28307
|
GateStep,
|
|
28360
28308
|
{
|
|
28361
28309
|
successMessage: "Files saved",
|
|
@@ -28373,7 +28321,7 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
28373
28321
|
case "done": {
|
|
28374
28322
|
const totalFailed = state.pushResult.componentTypes.failed + state.pushResult.designTokens.failed;
|
|
28375
28323
|
const teaser = buildRunTeaserLine(state.lastRunId);
|
|
28376
|
-
return /* @__PURE__ */
|
|
28324
|
+
return /* @__PURE__ */ jsx52(
|
|
28377
28325
|
DoneStep,
|
|
28378
28326
|
{
|
|
28379
28327
|
componentTypes: state.pushResult.componentTypes,
|
|
@@ -28389,7 +28337,7 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
28389
28337
|
);
|
|
28390
28338
|
}
|
|
28391
28339
|
case "preview-validation-error": {
|
|
28392
|
-
return /* @__PURE__ */
|
|
28340
|
+
return /* @__PURE__ */ jsx52(
|
|
28393
28341
|
PreviewValidationErrorStep,
|
|
28394
28342
|
{
|
|
28395
28343
|
errors: state.previewValidationErrors,
|
|
@@ -28405,7 +28353,7 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
28405
28353
|
);
|
|
28406
28354
|
}
|
|
28407
28355
|
case "error":
|
|
28408
|
-
return /* @__PURE__ */
|
|
28356
|
+
return /* @__PURE__ */ jsx52(
|
|
28409
28357
|
ErrorStep,
|
|
28410
28358
|
{
|
|
28411
28359
|
stepName: state.errorStep,
|
|
@@ -28427,9 +28375,9 @@ If using a custom host configuration, make sure the space exists on that host.`
|
|
|
28427
28375
|
return null;
|
|
28428
28376
|
}
|
|
28429
28377
|
})();
|
|
28430
|
-
return /* @__PURE__ */ jsxs45(
|
|
28431
|
-
/* @__PURE__ */
|
|
28432
|
-
/* @__PURE__ */
|
|
28378
|
+
return /* @__PURE__ */ jsxs45(Box44, { flexDirection: "column", width: terminalWidth, children: [
|
|
28379
|
+
/* @__PURE__ */ jsx52(TopBar, { subcommand: "import", hints }),
|
|
28380
|
+
/* @__PURE__ */ jsx52(CustomPromptBanner, { generatePromptPath }),
|
|
28433
28381
|
stepContent
|
|
28434
28382
|
] });
|
|
28435
28383
|
}
|
|
@@ -28472,8 +28420,8 @@ var init_WizardApp = __esm({
|
|
|
28472
28420
|
init_tokens();
|
|
28473
28421
|
init_preview_utils();
|
|
28474
28422
|
init_db();
|
|
28475
|
-
|
|
28476
|
-
|
|
28423
|
+
init_ScopeGateStep();
|
|
28424
|
+
init_GenerateReviewStep();
|
|
28477
28425
|
init_runScopeGate();
|
|
28478
28426
|
init_src();
|
|
28479
28427
|
init_path_utils();
|
|
@@ -28941,8 +28889,8 @@ var init_command7 = __esm({
|
|
|
28941
28889
|
|
|
28942
28890
|
// packages/experience-design-system-cli/src/setup/SetupStepper.tsx
|
|
28943
28891
|
import React18 from "react";
|
|
28944
|
-
import { Box as
|
|
28945
|
-
import { jsx as
|
|
28892
|
+
import { Box as Box45, Text as Text49 } from "ink";
|
|
28893
|
+
import { jsx as jsx53, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
28946
28894
|
function stepLabel(step, title, state, wide) {
|
|
28947
28895
|
if (state === "complete") return wide ? `\u2713 ${title}` : "\u2713";
|
|
28948
28896
|
if (state === "active") return wide ? `[${step} ${title}]` : `[${step}]`;
|
|
@@ -28955,12 +28903,12 @@ function stepColor(state) {
|
|
|
28955
28903
|
}
|
|
28956
28904
|
function SetupStepper({ activeStep, columns }) {
|
|
28957
28905
|
const wide = columns !== void 0 && columns >= WIDE_MIN_COLUMNS;
|
|
28958
|
-
return /* @__PURE__ */
|
|
28906
|
+
return /* @__PURE__ */ jsx53(Box45, { columnGap: wide ? 0 : COMPACT_GAP, children: SETUP_SCREENS.map((title, index) => {
|
|
28959
28907
|
const step = index + 1;
|
|
28960
28908
|
const state = step < activeStep ? "complete" : step === activeStep ? "active" : "pending";
|
|
28961
28909
|
return /* @__PURE__ */ jsxs46(React18.Fragment, { children: [
|
|
28962
|
-
wide && index > 0 && /* @__PURE__ */
|
|
28963
|
-
/* @__PURE__ */
|
|
28910
|
+
wide && index > 0 && /* @__PURE__ */ jsx53(Text49, { dimColor: true, children: WIDE_SEPARATOR }),
|
|
28911
|
+
/* @__PURE__ */ jsx53(Text49, { bold: state === "active", dimColor: state === "pending", color: stepColor(state), children: stepLabel(step, title, state, wide) })
|
|
28964
28912
|
] }, step);
|
|
28965
28913
|
}) });
|
|
28966
28914
|
}
|
|
@@ -28979,33 +28927,33 @@ var init_SetupStepper = __esm({
|
|
|
28979
28927
|
});
|
|
28980
28928
|
|
|
28981
28929
|
// packages/experience-design-system-cli/src/setup/steps/StepLayout.tsx
|
|
28982
|
-
import { Box as
|
|
28983
|
-
import { jsx as
|
|
28930
|
+
import { Box as Box46, Text as Text50 } from "ink";
|
|
28931
|
+
import { jsx as jsx54, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
28984
28932
|
function StepLayout({ helpText, children, prompt }) {
|
|
28985
|
-
return /* @__PURE__ */ jsxs47(
|
|
28933
|
+
return /* @__PURE__ */ jsxs47(Box46, { flexDirection: "column", children: [
|
|
28986
28934
|
children,
|
|
28987
|
-
prompt && /* @__PURE__ */
|
|
28988
|
-
helpText && /* @__PURE__ */
|
|
28935
|
+
prompt && /* @__PURE__ */ jsx54(Box46, { marginTop: 1, children: prompt }),
|
|
28936
|
+
helpText && /* @__PURE__ */ jsx54(Box46, { marginTop: 1, children: /* @__PURE__ */ jsx54(Text50, { dimColor: true, children: helpText }) })
|
|
28989
28937
|
] });
|
|
28990
28938
|
}
|
|
28991
28939
|
function StepSuccess({ children }) {
|
|
28992
|
-
return /* @__PURE__ */ jsxs47(
|
|
28940
|
+
return /* @__PURE__ */ jsxs47(Text50, { color: PALETTE.success, children: [
|
|
28993
28941
|
"\u2713 ",
|
|
28994
28942
|
children
|
|
28995
28943
|
] });
|
|
28996
28944
|
}
|
|
28997
28945
|
function StepWarning({ children }) {
|
|
28998
|
-
return /* @__PURE__ */ jsxs47(
|
|
28946
|
+
return /* @__PURE__ */ jsxs47(Text50, { color: PALETTE.warning, children: [
|
|
28999
28947
|
"\u26A0 ",
|
|
29000
28948
|
children
|
|
29001
28949
|
] });
|
|
29002
28950
|
}
|
|
29003
28951
|
function StepValue({ label, value }) {
|
|
29004
28952
|
const color = value ? void 0 : PALETTE.warning;
|
|
29005
|
-
return /* @__PURE__ */ jsxs47(
|
|
29006
|
-
/* @__PURE__ */
|
|
29007
|
-
/* @__PURE__ */
|
|
29008
|
-
/* @__PURE__ */
|
|
28953
|
+
return /* @__PURE__ */ jsxs47(Box46, { children: [
|
|
28954
|
+
/* @__PURE__ */ jsx54(Box46, { width: 2, children: /* @__PURE__ */ jsx54(Text50, { color, children: value ? "" : "\u26A0" }) }),
|
|
28955
|
+
/* @__PURE__ */ jsx54(Box46, { width: 20, flexShrink: 0, children: /* @__PURE__ */ jsx54(Text50, { color, children: label }) }),
|
|
28956
|
+
/* @__PURE__ */ jsx54(Text50, { color, children: value || "(not set)" })
|
|
29009
28957
|
] });
|
|
29010
28958
|
}
|
|
29011
28959
|
var init_StepLayout = __esm({
|
|
@@ -29017,9 +28965,9 @@ var init_StepLayout = __esm({
|
|
|
29017
28965
|
|
|
29018
28966
|
// packages/experience-design-system-cli/src/setup/steps/CodingAgentScreen.tsx
|
|
29019
28967
|
import { useEffect as useEffect12, useRef as useRef10, useState as useState24 } from "react";
|
|
29020
|
-
import { Box as
|
|
28968
|
+
import { Box as Box47, Text as Text51 } from "ink";
|
|
29021
28969
|
import { Select, TextInput } from "@inkjs/ui";
|
|
29022
|
-
import { jsx as
|
|
28970
|
+
import { jsx as jsx55, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
29023
28971
|
async function detectAgents(exists = binaryExists) {
|
|
29024
28972
|
const found = await Promise.all(AGENT_DEFS.map(async (agent) => await exists(agent.binary) ? agent : void 0));
|
|
29025
28973
|
return found.filter((agent) => agent !== void 0);
|
|
@@ -29052,7 +29000,7 @@ function CodingAgentScreen({ onDone, deps }) {
|
|
|
29052
29000
|
const found = await detectAgents(exists);
|
|
29053
29001
|
if (found.length === 1) {
|
|
29054
29002
|
const only = found[0];
|
|
29055
|
-
setNotes([/* @__PURE__ */
|
|
29003
|
+
setNotes([/* @__PURE__ */ jsx55(StepSuccess, { children: `${only.name} (${only.binary}) found` }, "found")]);
|
|
29056
29004
|
afterSelection(only);
|
|
29057
29005
|
return;
|
|
29058
29006
|
}
|
|
@@ -29060,7 +29008,7 @@ function CodingAgentScreen({ onDone, deps }) {
|
|
|
29060
29008
|
setPhase({ kind: "choose", found });
|
|
29061
29009
|
return;
|
|
29062
29010
|
}
|
|
29063
|
-
setNotes([/* @__PURE__ */
|
|
29011
|
+
setNotes([/* @__PURE__ */ jsx55(StepWarning, { children: "No coding agent found on PATH" }, "none")]);
|
|
29064
29012
|
setPhase({ kind: "install-choice" });
|
|
29065
29013
|
})();
|
|
29066
29014
|
}, []);
|
|
@@ -29072,12 +29020,12 @@ function CodingAgentScreen({ onDone, deps }) {
|
|
|
29072
29020
|
onDone("failed");
|
|
29073
29021
|
return;
|
|
29074
29022
|
}
|
|
29075
|
-
setNotes((current) => [...current, /* @__PURE__ */
|
|
29023
|
+
setNotes((current) => [...current, /* @__PURE__ */ jsx55(StepSuccess, { children: `${agent.name} installed` }, "installed")]);
|
|
29076
29024
|
afterSelection(agent);
|
|
29077
29025
|
};
|
|
29078
|
-
const chooser = (question, options, describe, onPick) => /* @__PURE__ */ jsxs48(
|
|
29079
|
-
/* @__PURE__ */
|
|
29080
|
-
/* @__PURE__ */
|
|
29026
|
+
const chooser = (question, options, describe, onPick) => /* @__PURE__ */ jsxs48(Box47, { flexDirection: "column", children: [
|
|
29027
|
+
/* @__PURE__ */ jsx55(Text51, { children: question }),
|
|
29028
|
+
/* @__PURE__ */ jsx55(Box47, { marginTop: 1, children: /* @__PURE__ */ jsx55(
|
|
29081
29029
|
Select,
|
|
29082
29030
|
{
|
|
29083
29031
|
options: [
|
|
@@ -29089,7 +29037,7 @@ function CodingAgentScreen({ onDone, deps }) {
|
|
|
29089
29037
|
) })
|
|
29090
29038
|
] });
|
|
29091
29039
|
if (phase.kind === "choose") {
|
|
29092
|
-
return /* @__PURE__ */
|
|
29040
|
+
return /* @__PURE__ */ jsx55(
|
|
29093
29041
|
StepLayout,
|
|
29094
29042
|
{
|
|
29095
29043
|
helpText: AGENT_HELP,
|
|
@@ -29104,7 +29052,7 @@ function CodingAgentScreen({ onDone, deps }) {
|
|
|
29104
29052
|
);
|
|
29105
29053
|
}
|
|
29106
29054
|
if (phase.kind === "install-choice") {
|
|
29107
|
-
return /* @__PURE__ */
|
|
29055
|
+
return /* @__PURE__ */ jsx55(
|
|
29108
29056
|
StepLayout,
|
|
29109
29057
|
{
|
|
29110
29058
|
helpText: AGENT_HELP,
|
|
@@ -29119,13 +29067,13 @@ function CodingAgentScreen({ onDone, deps }) {
|
|
|
29119
29067
|
);
|
|
29120
29068
|
}
|
|
29121
29069
|
if (phase.kind === "model") {
|
|
29122
|
-
return /* @__PURE__ */
|
|
29070
|
+
return /* @__PURE__ */ jsx55(
|
|
29123
29071
|
StepLayout,
|
|
29124
29072
|
{
|
|
29125
29073
|
helpText: AGENT_HELP,
|
|
29126
|
-
prompt: /* @__PURE__ */ jsxs48(
|
|
29127
|
-
/* @__PURE__ */
|
|
29128
|
-
/* @__PURE__ */
|
|
29074
|
+
prompt: /* @__PURE__ */ jsxs48(Box47, { children: [
|
|
29075
|
+
/* @__PURE__ */ jsx55(Text51, { children: "Model name (optional - press Enter for Codex default): " }),
|
|
29076
|
+
/* @__PURE__ */ jsx55(
|
|
29129
29077
|
TextInput,
|
|
29130
29078
|
{
|
|
29131
29079
|
onSubmit: (value) => void save(phase.agent.binary, value.trim() || void 0)
|
|
@@ -29135,19 +29083,19 @@ function CodingAgentScreen({ onDone, deps }) {
|
|
|
29135
29083
|
] }),
|
|
29136
29084
|
children: [
|
|
29137
29085
|
...notes,
|
|
29138
|
-
/* @__PURE__ */
|
|
29139
|
-
/* @__PURE__ */
|
|
29086
|
+
/* @__PURE__ */ jsx55(StepWarning, { children: "No OPENAI_API_KEY \u2014 using ChatGPT account authentication." }, "no-key"),
|
|
29087
|
+
/* @__PURE__ */ jsx55(Text51, { dimColor: true, children: "Tip: run codex then type /model to browse all available models." }, "tip")
|
|
29140
29088
|
]
|
|
29141
29089
|
}
|
|
29142
29090
|
);
|
|
29143
29091
|
}
|
|
29144
29092
|
if (phase.kind === "installing") {
|
|
29145
|
-
return /* @__PURE__ */
|
|
29093
|
+
return /* @__PURE__ */ jsx55(StepLayout, { helpText: AGENT_HELP, children: [...notes, /* @__PURE__ */ jsx55(Text51, { children: `Installing ${phase.agent.name}\u2026` }, "installing")] });
|
|
29146
29094
|
}
|
|
29147
29095
|
if (phase.kind === "failed") {
|
|
29148
|
-
return /* @__PURE__ */
|
|
29096
|
+
return /* @__PURE__ */ jsx55(StepLayout, { helpText: AGENT_HELP, children: [...notes, /* @__PURE__ */ jsx55(Text51, { children: `\u2717 ${phase.message}` }, "failed")] });
|
|
29149
29097
|
}
|
|
29150
|
-
return /* @__PURE__ */
|
|
29098
|
+
return /* @__PURE__ */ jsx55(Text51, { dimColor: true, children: "Looking for a coding agent\u2026" });
|
|
29151
29099
|
}
|
|
29152
29100
|
var AGENT_HELP, SKIP_VALUE;
|
|
29153
29101
|
var init_CodingAgentScreen = __esm({
|
|
@@ -29164,9 +29112,9 @@ var init_CodingAgentScreen = __esm({
|
|
|
29164
29112
|
|
|
29165
29113
|
// packages/experience-design-system-cli/src/setup/steps/ContentfulCredentialsScreen.tsx
|
|
29166
29114
|
import { useEffect as useEffect13, useRef as useRef11, useState as useState25 } from "react";
|
|
29167
|
-
import { Box as
|
|
29115
|
+
import { Box as Box48, Text as Text52 } from "ink";
|
|
29168
29116
|
import { PasswordInput, Select as Select2, TextInput as TextInput2 } from "@inkjs/ui";
|
|
29169
|
-
import { Fragment as Fragment18, jsx as
|
|
29117
|
+
import { Fragment as Fragment18, jsx as jsx56, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
29170
29118
|
function envShadowingWarning(env) {
|
|
29171
29119
|
const set = ENV_KEYS.filter((key) => env[key]);
|
|
29172
29120
|
if (set.length === 0) return null;
|
|
@@ -29183,21 +29131,21 @@ function ContentfulCredentialsScreen({ onDone }) {
|
|
|
29183
29131
|
useEffect13(() => {
|
|
29184
29132
|
void readExperiencesCredentials().then(setStored);
|
|
29185
29133
|
}, []);
|
|
29186
|
-
if (!stored) return /* @__PURE__ */
|
|
29134
|
+
if (!stored) return /* @__PURE__ */ jsx56(Text52, { dimColor: true, children: "Reading saved credentials\u2026" });
|
|
29187
29135
|
const currentHost = stored.host ?? DEFAULT_CONFIGURED_HOST;
|
|
29188
29136
|
const hasAny = Boolean(stored.spaceId || stored.environmentId || stored.cmaToken);
|
|
29189
29137
|
const allSet = Boolean(stored.spaceId && stored.environmentId && stored.cmaToken);
|
|
29190
29138
|
const shadowing = envShadowingWarning(process.env);
|
|
29191
29139
|
const summary = /* @__PURE__ */ jsxs49(Fragment18, { children: [
|
|
29192
|
-
shadowing && /* @__PURE__ */
|
|
29193
|
-
hasAny && /* @__PURE__ */ jsxs49(
|
|
29194
|
-
/* @__PURE__ */
|
|
29195
|
-
/* @__PURE__ */
|
|
29196
|
-
/* @__PURE__ */
|
|
29197
|
-
/* @__PURE__ */
|
|
29198
|
-
/* @__PURE__ */
|
|
29140
|
+
shadowing && /* @__PURE__ */ jsx56(StepWarning, { children: shadowing }),
|
|
29141
|
+
hasAny && /* @__PURE__ */ jsxs49(Box48, { flexDirection: "column", marginTop: shadowing ? 1 : 0, children: [
|
|
29142
|
+
/* @__PURE__ */ jsx56(Text52, { children: "Current values:" }),
|
|
29143
|
+
/* @__PURE__ */ jsx56(StepValue, { label: "Space ID", value: stored.spaceId }),
|
|
29144
|
+
/* @__PURE__ */ jsx56(StepValue, { label: "Environment ID", value: stored.environmentId }),
|
|
29145
|
+
/* @__PURE__ */ jsx56(StepValue, { label: "CMA Token", value: stored.cmaToken ? maskToken(stored.cmaToken) : void 0 }),
|
|
29146
|
+
/* @__PURE__ */ jsx56(StepValue, { label: "API Host", value: currentHost })
|
|
29199
29147
|
] }),
|
|
29200
|
-
error && /* @__PURE__ */
|
|
29148
|
+
error && /* @__PURE__ */ jsx56(StepWarning, { children: error })
|
|
29201
29149
|
] });
|
|
29202
29150
|
const helpText = `Saved to ${experiencesCredentialsPath()} \u2014 loaded automatically by experiences import.`;
|
|
29203
29151
|
if (field === "confirm") {
|
|
@@ -29205,13 +29153,13 @@ function ContentfulCredentialsScreen({ onDone }) {
|
|
|
29205
29153
|
{ label: hasAny ? "Update the saved credentials" : "Enter credentials now", value: ENTER },
|
|
29206
29154
|
{ label: allSet ? "Keep them as they are" : "Skip for now", value: KEEP }
|
|
29207
29155
|
];
|
|
29208
|
-
return /* @__PURE__ */
|
|
29156
|
+
return /* @__PURE__ */ jsx56(
|
|
29209
29157
|
StepLayout,
|
|
29210
29158
|
{
|
|
29211
29159
|
helpText,
|
|
29212
|
-
prompt: /* @__PURE__ */ jsxs49(
|
|
29213
|
-
/* @__PURE__ */
|
|
29214
|
-
/* @__PURE__ */
|
|
29160
|
+
prompt: /* @__PURE__ */ jsxs49(Box48, { flexDirection: "column", children: [
|
|
29161
|
+
/* @__PURE__ */ jsx56(Text52, { children: "Contentful credentials" }),
|
|
29162
|
+
/* @__PURE__ */ jsx56(Box48, { marginTop: 1, children: /* @__PURE__ */ jsx56(
|
|
29215
29163
|
Select2,
|
|
29216
29164
|
{
|
|
29217
29165
|
options: allSet ? [...options].reverse() : options,
|
|
@@ -29252,24 +29200,24 @@ function ContentfulCredentialsScreen({ onDone }) {
|
|
|
29252
29200
|
onDone("completed");
|
|
29253
29201
|
};
|
|
29254
29202
|
const prompts = {
|
|
29255
|
-
spaceId: /* @__PURE__ */ jsxs49(
|
|
29256
|
-
/* @__PURE__ */
|
|
29257
|
-
/* @__PURE__ */
|
|
29203
|
+
spaceId: /* @__PURE__ */ jsxs49(Box48, { children: [
|
|
29204
|
+
/* @__PURE__ */ jsx56(Text52, { children: `Space ID${stored.spaceId ? ` [${stored.spaceId}]` : ""}: ` }),
|
|
29205
|
+
/* @__PURE__ */ jsx56(TextInput2, { onSubmit: (v) => advance("spaceId", v) }, "spaceId")
|
|
29258
29206
|
] }),
|
|
29259
|
-
environmentId: /* @__PURE__ */ jsxs49(
|
|
29260
|
-
/* @__PURE__ */
|
|
29261
|
-
/* @__PURE__ */
|
|
29207
|
+
environmentId: /* @__PURE__ */ jsxs49(Box48, { children: [
|
|
29208
|
+
/* @__PURE__ */ jsx56(Text52, { children: `Environment ID [${stored.environmentId || "master"}]: ` }),
|
|
29209
|
+
/* @__PURE__ */ jsx56(TextInput2, { onSubmit: (v) => advance("environmentId", v) }, "environmentId")
|
|
29262
29210
|
] }),
|
|
29263
|
-
cmaToken: /* @__PURE__ */ jsxs49(
|
|
29264
|
-
/* @__PURE__ */
|
|
29265
|
-
/* @__PURE__ */
|
|
29211
|
+
cmaToken: /* @__PURE__ */ jsxs49(Box48, { children: [
|
|
29212
|
+
/* @__PURE__ */ jsx56(Text52, { children: `CMA token${stored.cmaToken ? " [press Enter to keep existing]" : " (paste here)"}: ` }),
|
|
29213
|
+
/* @__PURE__ */ jsx56(PasswordInput, { onSubmit: (v) => advance("cmaToken", v) }, "cmaToken")
|
|
29266
29214
|
] }),
|
|
29267
|
-
host: /* @__PURE__ */ jsxs49(
|
|
29268
|
-
/* @__PURE__ */
|
|
29269
|
-
/* @__PURE__ */
|
|
29215
|
+
host: /* @__PURE__ */ jsxs49(Box48, { children: [
|
|
29216
|
+
/* @__PURE__ */ jsx56(Text52, { children: `API host [${currentHost}]: ` }),
|
|
29217
|
+
/* @__PURE__ */ jsx56(TextInput2, { onSubmit: (v) => advance("host", v) }, "host")
|
|
29270
29218
|
] })
|
|
29271
29219
|
};
|
|
29272
|
-
return /* @__PURE__ */
|
|
29220
|
+
return /* @__PURE__ */ jsx56(StepLayout, { helpText, prompt: prompts[field], children: summary });
|
|
29273
29221
|
}
|
|
29274
29222
|
var ENV_KEYS, ENTER, KEEP, FIELD_ORDER;
|
|
29275
29223
|
var init_ContentfulCredentialsScreen = __esm({
|
|
@@ -29287,9 +29235,9 @@ var init_ContentfulCredentialsScreen = __esm({
|
|
|
29287
29235
|
|
|
29288
29236
|
// packages/experience-design-system-cli/src/setup/steps/preferences/BooleanInput.tsx
|
|
29289
29237
|
import { useEffect as useEffect14, useState as useState26 } from "react";
|
|
29290
|
-
import { Box as
|
|
29238
|
+
import { Box as Box49, Text as Text53 } from "ink";
|
|
29291
29239
|
import { Select as Select3 } from "@inkjs/ui";
|
|
29292
|
-
import { jsx as
|
|
29240
|
+
import { jsx as jsx57, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
29293
29241
|
function tick(labels, forOn, current) {
|
|
29294
29242
|
const label = forOn ? labels.on : labels.off;
|
|
29295
29243
|
return forOn === current ? `${label} \u2713` : label;
|
|
@@ -29307,7 +29255,7 @@ function BooleanInput({
|
|
|
29307
29255
|
useEffect14(() => {
|
|
29308
29256
|
void readExperiencesCredentials().then(setStored);
|
|
29309
29257
|
}, []);
|
|
29310
|
-
if (!stored) return /* @__PURE__ */
|
|
29258
|
+
if (!stored) return /* @__PURE__ */ jsx57(Text53, { dimColor: true, children: "Reading saved preferences\u2026" });
|
|
29311
29259
|
const current = read(stored) ?? fallback;
|
|
29312
29260
|
const submit = (value) => {
|
|
29313
29261
|
if (value === current) {
|
|
@@ -29316,13 +29264,13 @@ function BooleanInput({
|
|
|
29316
29264
|
}
|
|
29317
29265
|
void writeExperiencesCredentials(write2(stored, value)).then(() => onDone("completed"));
|
|
29318
29266
|
};
|
|
29319
|
-
return /* @__PURE__ */
|
|
29267
|
+
return /* @__PURE__ */ jsx57(
|
|
29320
29268
|
StepLayout,
|
|
29321
29269
|
{
|
|
29322
29270
|
helpText,
|
|
29323
|
-
prompt: /* @__PURE__ */ jsxs50(
|
|
29324
|
-
/* @__PURE__ */
|
|
29325
|
-
/* @__PURE__ */
|
|
29271
|
+
prompt: /* @__PURE__ */ jsxs50(Box49, { flexDirection: "column", children: [
|
|
29272
|
+
/* @__PURE__ */ jsx57(Text53, { children: question }),
|
|
29273
|
+
/* @__PURE__ */ jsx57(Box49, { marginTop: 1, children: /* @__PURE__ */ jsx57(
|
|
29326
29274
|
Select3,
|
|
29327
29275
|
{
|
|
29328
29276
|
options: [
|
|
@@ -29347,9 +29295,9 @@ var init_BooleanInput = __esm({
|
|
|
29347
29295
|
});
|
|
29348
29296
|
|
|
29349
29297
|
// packages/experience-design-system-cli/src/setup/steps/preferences/AnalyticsScreen.tsx
|
|
29350
|
-
import { jsx as
|
|
29298
|
+
import { jsx as jsx58 } from "react/jsx-runtime";
|
|
29351
29299
|
function AnalyticsScreen({ onDone }) {
|
|
29352
|
-
return /* @__PURE__ */
|
|
29300
|
+
return /* @__PURE__ */ jsx58(
|
|
29353
29301
|
BooleanInput,
|
|
29354
29302
|
{
|
|
29355
29303
|
helpText: "Shares anonymous usage data about which CLI commands are used and where imports succeed or fail. Never includes source code, file paths, credentials, or authored content",
|
|
@@ -29370,9 +29318,9 @@ var init_AnalyticsScreen = __esm({
|
|
|
29370
29318
|
});
|
|
29371
29319
|
|
|
29372
29320
|
// packages/experience-design-system-cli/src/setup/steps/preferences/ColorPreferenceScreen.tsx
|
|
29373
|
-
import { jsx as
|
|
29321
|
+
import { jsx as jsx59 } from "react/jsx-runtime";
|
|
29374
29322
|
function ColorPreferenceScreen({ onDone }) {
|
|
29375
|
-
return /* @__PURE__ */
|
|
29323
|
+
return /* @__PURE__ */ jsx59(
|
|
29376
29324
|
BooleanInput,
|
|
29377
29325
|
{
|
|
29378
29326
|
helpText: `Prints plain text with no color, which suits CI logs and basic terminals.`,
|
|
@@ -29394,9 +29342,9 @@ var init_ColorPreferenceScreen = __esm({
|
|
|
29394
29342
|
|
|
29395
29343
|
// packages/experience-design-system-cli/src/setup/steps/preferences/CustomPromptScreen.tsx
|
|
29396
29344
|
import { useEffect as useEffect15, useState as useState27 } from "react";
|
|
29397
|
-
import { Box as
|
|
29345
|
+
import { Box as Box50, Text as Text54 } from "ink";
|
|
29398
29346
|
import { ConfirmInput, TextInput as TextInput3 } from "@inkjs/ui";
|
|
29399
|
-
import { jsx as
|
|
29347
|
+
import { jsx as jsx60, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
29400
29348
|
function parseCustomSkillPath(answer) {
|
|
29401
29349
|
const trimmed = answer.trim();
|
|
29402
29350
|
if (trimmed === "") return void 0;
|
|
@@ -29418,19 +29366,19 @@ function CustomPromptsScreen({ onDone }) {
|
|
|
29418
29366
|
useEffect15(() => {
|
|
29419
29367
|
void readExperiencesCredentials().then(setStored);
|
|
29420
29368
|
}, []);
|
|
29421
|
-
if (!stored) return /* @__PURE__ */
|
|
29369
|
+
if (!stored) return /* @__PURE__ */ jsx60(Text54, { dimColor: true, children: "Reading saved prompt paths\u2026" });
|
|
29422
29370
|
const submit = (answer) => {
|
|
29423
29371
|
const next = applyCustomSkillPath(stored, parseCustomSkillPath(answer));
|
|
29424
29372
|
void writeExperiencesCredentials(next).then(() => onDone("completed"));
|
|
29425
29373
|
};
|
|
29426
29374
|
if (phase === "confirm") {
|
|
29427
|
-
return /* @__PURE__ */
|
|
29375
|
+
return /* @__PURE__ */ jsx60(
|
|
29428
29376
|
StepLayout,
|
|
29429
29377
|
{
|
|
29430
29378
|
helpText: CUSTOM_PROMPTS_HELP,
|
|
29431
|
-
prompt: /* @__PURE__ */ jsxs51(
|
|
29432
|
-
/* @__PURE__ */
|
|
29433
|
-
/* @__PURE__ */
|
|
29379
|
+
prompt: /* @__PURE__ */ jsxs51(Box50, { children: [
|
|
29380
|
+
/* @__PURE__ */ jsx60(Text54, { children: "Use your own prompt file instead of the built-in one? " }),
|
|
29381
|
+
/* @__PURE__ */ jsx60(
|
|
29434
29382
|
ConfirmInput,
|
|
29435
29383
|
{
|
|
29436
29384
|
defaultChoice: "cancel",
|
|
@@ -29442,13 +29390,13 @@ function CustomPromptsScreen({ onDone }) {
|
|
|
29442
29390
|
}
|
|
29443
29391
|
);
|
|
29444
29392
|
}
|
|
29445
|
-
return /* @__PURE__ */
|
|
29393
|
+
return /* @__PURE__ */ jsx60(
|
|
29446
29394
|
StepLayout,
|
|
29447
29395
|
{
|
|
29448
29396
|
helpText: CUSTOM_PROMPTS_HELP,
|
|
29449
|
-
prompt: /* @__PURE__ */ jsxs51(
|
|
29450
|
-
/* @__PURE__ */
|
|
29451
|
-
/* @__PURE__ */
|
|
29397
|
+
prompt: /* @__PURE__ */ jsxs51(Box50, { children: [
|
|
29398
|
+
/* @__PURE__ */ jsx60(Text54, { children: customSkillPathQuestion(stored.generatePromptPath) }),
|
|
29399
|
+
/* @__PURE__ */ jsx60(TextInput3, { onSubmit: submit })
|
|
29452
29400
|
] })
|
|
29453
29401
|
}
|
|
29454
29402
|
);
|
|
@@ -29464,9 +29412,9 @@ var init_CustomPromptScreen = __esm({
|
|
|
29464
29412
|
});
|
|
29465
29413
|
|
|
29466
29414
|
// packages/experience-design-system-cli/src/setup/steps/preferences/DebugLogsScreen.tsx
|
|
29467
|
-
import { jsx as
|
|
29415
|
+
import { jsx as jsx61 } from "react/jsx-runtime";
|
|
29468
29416
|
function DebugLogsScreen({ onDone }) {
|
|
29469
|
-
return /* @__PURE__ */
|
|
29417
|
+
return /* @__PURE__ */ jsx61(
|
|
29470
29418
|
BooleanInput,
|
|
29471
29419
|
{
|
|
29472
29420
|
helpText: `Writes a verbose trace of every command decision, for troubleshooting.`,
|
|
@@ -29488,16 +29436,16 @@ var init_DebugLogsScreen = __esm({
|
|
|
29488
29436
|
|
|
29489
29437
|
// packages/experience-design-system-cli/src/setup/steps/preferences/PreferencesMenu.tsx
|
|
29490
29438
|
import { useState as useState28 } from "react";
|
|
29491
|
-
import { Box as
|
|
29439
|
+
import { Box as Box51, Text as Text55 } from "ink";
|
|
29492
29440
|
import { Select as Select4 } from "@inkjs/ui";
|
|
29493
|
-
import { jsx as
|
|
29441
|
+
import { jsx as jsx62, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
29494
29442
|
function PreferencesMenu({ onDone }) {
|
|
29495
29443
|
const [open, setOpen] = useState28(null);
|
|
29496
29444
|
const [changed, setChanged] = useState28(/* @__PURE__ */ new Set());
|
|
29497
29445
|
const entry = open === null ? void 0 : PREFERENCE_OPTIONS.find((option) => option.key === open);
|
|
29498
|
-
if (!entry) return /* @__PURE__ */
|
|
29446
|
+
if (!entry) return /* @__PURE__ */ jsx62(PreferenceList, { changed, onOpen: setOpen, onDone });
|
|
29499
29447
|
const { key, Screen } = entry;
|
|
29500
|
-
return /* @__PURE__ */
|
|
29448
|
+
return /* @__PURE__ */ jsx62(
|
|
29501
29449
|
Screen,
|
|
29502
29450
|
{
|
|
29503
29451
|
onDone: (status) => {
|
|
@@ -29514,13 +29462,13 @@ function PreferenceList({ changed, onOpen, onDone }) {
|
|
|
29514
29462
|
...PREFERENCE_OPTIONS.map((option) => ({ label: option.label, value: option.key })),
|
|
29515
29463
|
{ label: "Done", value: DONE_VALUE }
|
|
29516
29464
|
];
|
|
29517
|
-
return /* @__PURE__ */
|
|
29465
|
+
return /* @__PURE__ */ jsx62(
|
|
29518
29466
|
StepLayout,
|
|
29519
29467
|
{
|
|
29520
29468
|
helpText: PREFERENCES_MENU_HELP,
|
|
29521
|
-
prompt: /* @__PURE__ */ jsxs52(
|
|
29522
|
-
/* @__PURE__ */
|
|
29523
|
-
/* @__PURE__ */
|
|
29469
|
+
prompt: /* @__PURE__ */ jsxs52(Box51, { flexDirection: "column", children: [
|
|
29470
|
+
/* @__PURE__ */ jsx62(Text55, { children: "Preferences" }),
|
|
29471
|
+
/* @__PURE__ */ jsx62(Box51, { marginTop: 1, children: /* @__PURE__ */ jsx62(
|
|
29524
29472
|
Select4,
|
|
29525
29473
|
{
|
|
29526
29474
|
options,
|
|
@@ -29553,22 +29501,22 @@ var init_PreferencesMenu = __esm({
|
|
|
29553
29501
|
{
|
|
29554
29502
|
key: "customPrompts",
|
|
29555
29503
|
label: "Custom prompts",
|
|
29556
|
-
Screen: ({ onDone }) => /* @__PURE__ */
|
|
29504
|
+
Screen: ({ onDone }) => /* @__PURE__ */ jsx62(CustomPromptsScreen, { onDone })
|
|
29557
29505
|
},
|
|
29558
29506
|
{
|
|
29559
29507
|
key: "debug",
|
|
29560
29508
|
label: "Debug logging",
|
|
29561
|
-
Screen: ({ onDone }) => /* @__PURE__ */
|
|
29509
|
+
Screen: ({ onDone }) => /* @__PURE__ */ jsx62(DebugLogsScreen, { onDone })
|
|
29562
29510
|
},
|
|
29563
29511
|
{
|
|
29564
29512
|
key: "analytics",
|
|
29565
29513
|
label: "Usage analytics",
|
|
29566
|
-
Screen: ({ onDone }) => /* @__PURE__ */
|
|
29514
|
+
Screen: ({ onDone }) => /* @__PURE__ */ jsx62(AnalyticsScreen, { onDone })
|
|
29567
29515
|
},
|
|
29568
29516
|
{
|
|
29569
29517
|
key: "noColor",
|
|
29570
29518
|
label: "Terminal colors",
|
|
29571
|
-
Screen: ({ onDone }) => /* @__PURE__ */
|
|
29519
|
+
Screen: ({ onDone }) => /* @__PURE__ */ jsx62(ColorPreferenceScreen, { onDone })
|
|
29572
29520
|
}
|
|
29573
29521
|
];
|
|
29574
29522
|
DONE_VALUE = "menu:done";
|
|
@@ -29784,23 +29732,23 @@ var init_prerequisites = __esm({
|
|
|
29784
29732
|
|
|
29785
29733
|
// packages/experience-design-system-cli/src/setup/steps/prerequisites/PrerequisitesScreen.tsx
|
|
29786
29734
|
import { useEffect as useEffect16, useRef as useRef12, useState as useState29 } from "react";
|
|
29787
|
-
import { Box as
|
|
29735
|
+
import { Box as Box52, Text as Text56 } from "ink";
|
|
29788
29736
|
import { ConfirmInput as ConfirmInput2 } from "@inkjs/ui";
|
|
29789
|
-
import { jsx as
|
|
29737
|
+
import { jsx as jsx63, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
29790
29738
|
function EventLine({ event }) {
|
|
29791
|
-
if (event.kind === "success") return /* @__PURE__ */ jsxs53(
|
|
29739
|
+
if (event.kind === "success") return /* @__PURE__ */ jsxs53(Text56, { color: PALETTE.success, children: [
|
|
29792
29740
|
"\u2713 ",
|
|
29793
29741
|
event.message
|
|
29794
29742
|
] });
|
|
29795
|
-
if (event.kind === "failure") return /* @__PURE__ */ jsxs53(
|
|
29743
|
+
if (event.kind === "failure") return /* @__PURE__ */ jsxs53(Text56, { color: PALETTE.error, children: [
|
|
29796
29744
|
"\u2717 ",
|
|
29797
29745
|
event.message
|
|
29798
29746
|
] });
|
|
29799
|
-
if (event.kind === "warning") return /* @__PURE__ */ jsxs53(
|
|
29747
|
+
if (event.kind === "warning") return /* @__PURE__ */ jsxs53(Text56, { color: PALETTE.warning, children: [
|
|
29800
29748
|
"\u26A0 ",
|
|
29801
29749
|
event.message
|
|
29802
29750
|
] });
|
|
29803
|
-
return /* @__PURE__ */
|
|
29751
|
+
return /* @__PURE__ */ jsx63(Text56, { children: event.message });
|
|
29804
29752
|
}
|
|
29805
29753
|
function PrerequisitesScreen({
|
|
29806
29754
|
repoRoot,
|
|
@@ -29839,15 +29787,15 @@ function PrerequisitesScreen({
|
|
|
29839
29787
|
...skipBuild !== void 0 ? { skipBuild } : {}
|
|
29840
29788
|
}).then(onDone);
|
|
29841
29789
|
}, []);
|
|
29842
|
-
return /* @__PURE__ */
|
|
29790
|
+
return /* @__PURE__ */ jsx63(
|
|
29843
29791
|
StepLayout,
|
|
29844
29792
|
{
|
|
29845
|
-
prompt: confirm ? /* @__PURE__ */ jsxs53(
|
|
29846
|
-
/* @__PURE__ */ jsxs53(
|
|
29793
|
+
prompt: confirm ? /* @__PURE__ */ jsxs53(Box52, { children: [
|
|
29794
|
+
/* @__PURE__ */ jsxs53(Text56, { children: [
|
|
29847
29795
|
confirm.question,
|
|
29848
29796
|
" "
|
|
29849
29797
|
] }),
|
|
29850
|
-
/* @__PURE__ */
|
|
29798
|
+
/* @__PURE__ */ jsx63(
|
|
29851
29799
|
ConfirmInput2,
|
|
29852
29800
|
{
|
|
29853
29801
|
defaultChoice: confirm.defaultYes ? "confirm" : "cancel",
|
|
@@ -29856,8 +29804,8 @@ function PrerequisitesScreen({
|
|
|
29856
29804
|
},
|
|
29857
29805
|
confirm.question
|
|
29858
29806
|
)
|
|
29859
|
-
] }) : /* @__PURE__ */
|
|
29860
|
-
children: /* @__PURE__ */
|
|
29807
|
+
] }) : /* @__PURE__ */ jsx63(Text56, { color: PALETTE.info, children: "\u27F3 Checking prerequisites\u2026" }),
|
|
29808
|
+
children: /* @__PURE__ */ jsx63(Box52, { flexDirection: "column", children: events.map((event, index) => /* @__PURE__ */ jsx63(EventLine, { event }, `${index}-${event.message}`)) })
|
|
29861
29809
|
}
|
|
29862
29810
|
);
|
|
29863
29811
|
}
|
|
@@ -29878,8 +29826,8 @@ __export(SetupScreen_exports, {
|
|
|
29878
29826
|
formatSetupCompletionMessage: () => formatSetupCompletionMessage
|
|
29879
29827
|
});
|
|
29880
29828
|
import { useEffect as useEffect17, useRef as useRef13, useState as useState30 } from "react";
|
|
29881
|
-
import { Box as
|
|
29882
|
-
import { jsx as
|
|
29829
|
+
import { Box as Box53, Text as Text57, useStdout as useStdout5 } from "ink";
|
|
29830
|
+
import { jsx as jsx64, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
29883
29831
|
function countRequiredFailures(results) {
|
|
29884
29832
|
return results.filter((result) => result.required && result.status === "failed").length;
|
|
29885
29833
|
}
|
|
@@ -29910,7 +29858,7 @@ function SetupScreen({
|
|
|
29910
29858
|
});
|
|
29911
29859
|
void (async () => {
|
|
29912
29860
|
const results = [];
|
|
29913
|
-
const prerequisites = await runScreen((done) => /* @__PURE__ */
|
|
29861
|
+
const prerequisites = await runScreen((done) => /* @__PURE__ */ jsx64(
|
|
29914
29862
|
PrerequisitesScreen,
|
|
29915
29863
|
{
|
|
29916
29864
|
repoRoot,
|
|
@@ -29944,21 +29892,21 @@ function SetupScreen({
|
|
|
29944
29892
|
if (skip.skipAgent) {
|
|
29945
29893
|
results.push({ name: "Coding agent", status: "skipped", required: false });
|
|
29946
29894
|
} else {
|
|
29947
|
-
const status = await runScreen((done) => /* @__PURE__ */
|
|
29895
|
+
const status = await runScreen((done) => /* @__PURE__ */ jsx64(CodingAgentScreen, { onDone: done }));
|
|
29948
29896
|
results.push({ name: "Coding agent", status, required: true });
|
|
29949
29897
|
}
|
|
29950
29898
|
setActiveStep(3);
|
|
29951
29899
|
if (skip.skipCredentials) {
|
|
29952
29900
|
results.push({ name: "Contentful credentials", status: "skipped", required: false });
|
|
29953
29901
|
} else {
|
|
29954
|
-
const status = await runScreen((done) => /* @__PURE__ */
|
|
29902
|
+
const status = await runScreen((done) => /* @__PURE__ */ jsx64(ContentfulCredentialsScreen, { onDone: done }));
|
|
29955
29903
|
results.push({ name: "Contentful credentials", status, required: false });
|
|
29956
29904
|
}
|
|
29957
29905
|
setActiveStep(4);
|
|
29958
29906
|
if (skip.skipOptional) {
|
|
29959
29907
|
results.push({ name: "Preferences", status: "skipped", required: false });
|
|
29960
29908
|
} else {
|
|
29961
|
-
const status = await runScreen((done) => /* @__PURE__ */
|
|
29909
|
+
const status = await runScreen((done) => /* @__PURE__ */ jsx64(PreferencesMenu, { onDone: done }));
|
|
29962
29910
|
results.push({ name: "Preferences", status, required: false });
|
|
29963
29911
|
}
|
|
29964
29912
|
const exitCode = countRequiredFailures(results) === 0 ? 0 : 1;
|
|
@@ -29967,37 +29915,37 @@ function SetupScreen({
|
|
|
29967
29915
|
onComplete(finalOutcome);
|
|
29968
29916
|
})();
|
|
29969
29917
|
}, []);
|
|
29970
|
-
return /* @__PURE__ */ jsxs54(
|
|
29971
|
-
/* @__PURE__ */ jsxs54(
|
|
29972
|
-
/* @__PURE__ */
|
|
29973
|
-
/* @__PURE__ */
|
|
29918
|
+
return /* @__PURE__ */ jsxs54(Box53, { flexDirection: "column", paddingX: 1, children: [
|
|
29919
|
+
/* @__PURE__ */ jsxs54(Box53, { justifyContent: "space-between", columnGap: 1, ...columns !== void 0 ? { width: columns - 2 } : {}, children: [
|
|
29920
|
+
/* @__PURE__ */ jsx64(Box53, { flexShrink: 0, children: /* @__PURE__ */ jsx64(Text57, { bold: true, children: "experiences setup" }) }),
|
|
29921
|
+
/* @__PURE__ */ jsx64(Box53, { flexShrink: 0, children: /* @__PURE__ */ jsxs54(Text57, { dimColor: true, children: [
|
|
29974
29922
|
"v",
|
|
29975
29923
|
version
|
|
29976
29924
|
] }) })
|
|
29977
29925
|
] }),
|
|
29978
|
-
/* @__PURE__ */
|
|
29979
|
-
outcome ? /* @__PURE__ */
|
|
29926
|
+
/* @__PURE__ */ jsx64(Box53, { marginTop: 1, children: /* @__PURE__ */ jsx64(SetupStepper, { activeStep, columns }) }),
|
|
29927
|
+
outcome ? /* @__PURE__ */ jsx64(SetupSummary, { outcome, notice }) : screen && /* @__PURE__ */ jsx64(Box53, { marginTop: 1, children: screen })
|
|
29980
29928
|
] });
|
|
29981
29929
|
}
|
|
29982
29930
|
function SetupSummary({ outcome, notice }) {
|
|
29983
29931
|
const requiredFailed = countRequiredFailures(outcome.results);
|
|
29984
|
-
return /* @__PURE__ */ jsxs54(
|
|
29985
|
-
/* @__PURE__ */
|
|
29932
|
+
return /* @__PURE__ */ jsxs54(Box53, { flexDirection: "column", marginTop: 1, children: [
|
|
29933
|
+
/* @__PURE__ */ jsx64(Text57, { bold: true, children: "Summary" }),
|
|
29986
29934
|
outcome.results.map((result) => {
|
|
29987
29935
|
if (result.status === "completed") {
|
|
29988
|
-
return /* @__PURE__ */ jsxs54(
|
|
29936
|
+
return /* @__PURE__ */ jsxs54(Text57, { color: PALETTE.success, children: [
|
|
29989
29937
|
"\u2713 ",
|
|
29990
29938
|
result.name
|
|
29991
29939
|
] }, result.name);
|
|
29992
29940
|
}
|
|
29993
29941
|
if (result.status === "skipped") {
|
|
29994
|
-
return /* @__PURE__ */ jsxs54(
|
|
29942
|
+
return /* @__PURE__ */ jsxs54(Text57, { dimColor: true, children: [
|
|
29995
29943
|
"\u2013 ",
|
|
29996
29944
|
result.name,
|
|
29997
29945
|
" \u2014 skipped"
|
|
29998
29946
|
] }, result.name);
|
|
29999
29947
|
}
|
|
30000
|
-
return /* @__PURE__ */ jsxs54(
|
|
29948
|
+
return /* @__PURE__ */ jsxs54(Text57, { color: result.required ? PALETTE.error : PALETTE.warning, children: [
|
|
30001
29949
|
result.required ? "\u2717" : "\u26A0",
|
|
30002
29950
|
" ",
|
|
30003
29951
|
result.name,
|
|
@@ -30005,10 +29953,10 @@ function SetupSummary({ outcome, notice }) {
|
|
|
30005
29953
|
result.required ? "required" : "optional"
|
|
30006
29954
|
] }, result.name);
|
|
30007
29955
|
}),
|
|
30008
|
-
notice && /* @__PURE__ */
|
|
30009
|
-
/* @__PURE__ */
|
|
30010
|
-
requiredFailed > 0 && /* @__PURE__ */
|
|
30011
|
-
/* @__PURE__ */
|
|
29956
|
+
notice && /* @__PURE__ */ jsx64(Box53, { marginTop: 1, children: /* @__PURE__ */ jsx64(Text57, { color: PALETTE.warning, children: notice }) }),
|
|
29957
|
+
/* @__PURE__ */ jsx64(Box53, { marginTop: 1, children: /* @__PURE__ */ jsx64(Text57, { bold: true, color: requiredFailed === 0 ? PALETTE.success : PALETTE.warning, children: formatSetupCompletionMessage(outcome.results) }) }),
|
|
29958
|
+
requiredFailed > 0 && /* @__PURE__ */ jsx64(Text57, { dimColor: true, children: "Complete the steps above, then re-run experiences setup." }),
|
|
29959
|
+
/* @__PURE__ */ jsx64(Text57, { dimColor: true, children: "Run experiences doctor any time to re-check." })
|
|
30012
29960
|
] });
|
|
30013
29961
|
}
|
|
30014
29962
|
var init_SetupScreen = __esm({
|