@contentful/experience-design-system-cli 2.37.1-dev-build-8a9493aa.0 → 2.37.1-dev-build-25425992.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.js +328 -227
- package/dist/index.js +331 -228
- package/dist/package.json +1 -1
- package/dist/src/tui/shared/components/FieldForm.d.ts +4 -2
- package/package.json +3 -3
package/dist/app.js
CHANGED
|
@@ -2519,7 +2519,7 @@ function ControlHints({ hints }) {
|
|
|
2519
2519
|
// packages/experience-design-system-cli/src/tui/home/home.tsx
|
|
2520
2520
|
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
2521
2521
|
var VERSION = readPackageVersion();
|
|
2522
|
-
var HEADING = "
|
|
2522
|
+
var HEADING = "Design System Import";
|
|
2523
2523
|
var MIN_TERMINAL_WIDTH = 164;
|
|
2524
2524
|
var START_ITEMS = [
|
|
2525
2525
|
{ label: "Import", screen: "import" },
|
|
@@ -2849,6 +2849,7 @@ function StepHeader({ step }) {
|
|
|
2849
2849
|
{
|
|
2850
2850
|
justifyContent: "space-between",
|
|
2851
2851
|
paddingX: 2,
|
|
2852
|
+
paddingTop: 1,
|
|
2852
2853
|
marginBottom: 1,
|
|
2853
2854
|
borderStyle: "single",
|
|
2854
2855
|
borderColor: PALETTE.border,
|
|
@@ -3120,17 +3121,19 @@ function WelcomeScreen({ onContinue, onQuit, initialPath = "" }) {
|
|
|
3120
3121
|
const path5 = toProjectPath(value);
|
|
3121
3122
|
if (path5) onContinue(path5);
|
|
3122
3123
|
};
|
|
3123
|
-
return /* @__PURE__ */ jsxs10(Box10, { flexDirection: "column",
|
|
3124
|
-
/* @__PURE__ */ jsx11(
|
|
3125
|
-
/* @__PURE__ */ jsxs10(Box10, { flexDirection: "column", gap: 1, children: [
|
|
3126
|
-
/* @__PURE__ */
|
|
3127
|
-
|
|
3128
|
-
/* @__PURE__ */
|
|
3129
|
-
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3124
|
+
return /* @__PURE__ */ jsxs10(Box10, { flexDirection: "column", children: [
|
|
3125
|
+
/* @__PURE__ */ jsx11(StepHeader, { step: "setup" }),
|
|
3126
|
+
/* @__PURE__ */ jsxs10(Box10, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 1, children: [
|
|
3127
|
+
/* @__PURE__ */ jsxs10(Box10, { flexDirection: "column", gap: 1, children: [
|
|
3128
|
+
/* @__PURE__ */ jsx11(Text10, { color: PALETTE.text, children: "Where is your component library?" }),
|
|
3129
|
+
/* @__PURE__ */ jsxs10(Box10, { children: [
|
|
3130
|
+
/* @__PURE__ */ jsx11(Text10, { color: PALETTE.accent, children: "? " }),
|
|
3131
|
+
/* @__PURE__ */ jsx11(Text10, { children: "Project path: " }),
|
|
3132
|
+
/* @__PURE__ */ jsx11(ClearableTextInput, { value: projectPath, onChange: setProjectPath, onSubmit: submit })
|
|
3133
|
+
] })
|
|
3134
|
+
] }),
|
|
3135
|
+
/* @__PURE__ */ jsx11(Box10, { children: /* @__PURE__ */ jsx11(ControlHints, { hints: WELCOME_CONTROLS }) })
|
|
3136
|
+
] })
|
|
3134
3137
|
] });
|
|
3135
3138
|
}
|
|
3136
3139
|
|
|
@@ -17210,7 +17213,7 @@ function PathValidationScreen({
|
|
|
17210
17213
|
|
|
17211
17214
|
// packages/experience-design-system-cli/src/tui/import/steps/04-credentials/screen.tsx
|
|
17212
17215
|
import { useRef as useRef2, useState as useState9 } from "react";
|
|
17213
|
-
import { Text as Text14 } from "ink";
|
|
17216
|
+
import { Box as Box14, Text as Text14, useInput as useInput11 } from "ink";
|
|
17214
17217
|
|
|
17215
17218
|
// packages/experience-design-system-cli/src/tui/shared/components/FieldForm.tsx
|
|
17216
17219
|
import { useState as useState8 } from "react";
|
|
@@ -17239,6 +17242,9 @@ function FieldForm({
|
|
|
17239
17242
|
onChange,
|
|
17240
17243
|
onSave,
|
|
17241
17244
|
saveLabel = "save",
|
|
17245
|
+
enterAdvances = false,
|
|
17246
|
+
onSkip,
|
|
17247
|
+
skipLabel: skipLabel2 = "skip",
|
|
17242
17248
|
onQuit,
|
|
17243
17249
|
quitLabel = "back without saving",
|
|
17244
17250
|
actions = [],
|
|
@@ -17270,6 +17276,10 @@ function FieldForm({
|
|
|
17270
17276
|
onSave();
|
|
17271
17277
|
return;
|
|
17272
17278
|
}
|
|
17279
|
+
if (input === "k" && onSkip) {
|
|
17280
|
+
onSkip();
|
|
17281
|
+
return;
|
|
17282
|
+
}
|
|
17273
17283
|
if (isClearKey(input, key) && currentField) {
|
|
17274
17284
|
onChange(currentField.key, "");
|
|
17275
17285
|
return;
|
|
@@ -17291,6 +17301,21 @@ function FieldForm({
|
|
|
17291
17301
|
}
|
|
17292
17302
|
}
|
|
17293
17303
|
});
|
|
17304
|
+
const isLastField = active === fields2.length - 1;
|
|
17305
|
+
const submitField = () => {
|
|
17306
|
+
if (!enterAdvances) {
|
|
17307
|
+
setEditing(false);
|
|
17308
|
+
return;
|
|
17309
|
+
}
|
|
17310
|
+
if (isLastField) {
|
|
17311
|
+
setEditing(false);
|
|
17312
|
+
onSave();
|
|
17313
|
+
return;
|
|
17314
|
+
}
|
|
17315
|
+
const next = fields2[active + 1];
|
|
17316
|
+
setValueBeforeEdit(values[next.key]);
|
|
17317
|
+
setActive(active + 1);
|
|
17318
|
+
};
|
|
17294
17319
|
const pointer = (isActive) => /* @__PURE__ */ jsx14(Text13, { color: isActive ? PALETTE.accent : void 0, children: isActive ? "\u276F" : " " });
|
|
17295
17320
|
return /* @__PURE__ */ jsxs13(Box13, { flexDirection: "column", children: [
|
|
17296
17321
|
header,
|
|
@@ -17312,7 +17337,7 @@ function FieldForm({
|
|
|
17312
17337
|
{
|
|
17313
17338
|
value,
|
|
17314
17339
|
onChange: (next) => onChange(field.key, next),
|
|
17315
|
-
onSubmit:
|
|
17340
|
+
onSubmit: submitField,
|
|
17316
17341
|
mask: field.masked ? "\u2022" : void 0
|
|
17317
17342
|
}
|
|
17318
17343
|
) : display ? /* @__PURE__ */ jsx14(Text13, { bold: true, children: display }) : (
|
|
@@ -17348,7 +17373,7 @@ function FieldForm({
|
|
|
17348
17373
|
hints: editing ? [
|
|
17349
17374
|
{ keys: "type", label: "edit" },
|
|
17350
17375
|
{ keys: "\u2190/\u2192", label: "move cursor" },
|
|
17351
|
-
{ keys: "\u23CE", label: "done" },
|
|
17376
|
+
{ keys: "\u23CE", label: enterAdvances ? isLastField ? saveLabel : "next" : "done" },
|
|
17352
17377
|
{ keys: "Ctrl+D", label: "clear" },
|
|
17353
17378
|
{ keys: "Esc", label: "cancel edit" }
|
|
17354
17379
|
] : [
|
|
@@ -17356,6 +17381,7 @@ function FieldForm({
|
|
|
17356
17381
|
{ keys: "\u23CE", label: currentAction ? currentAction.hint : "edit" },
|
|
17357
17382
|
...currentField ? [{ keys: "Ctrl+D", label: "clear" }] : [],
|
|
17358
17383
|
{ keys: "s", label: saveLabel },
|
|
17384
|
+
...onSkip ? [{ keys: "k", label: skipLabel2 }] : [],
|
|
17359
17385
|
{ keys: "Esc/q", label: quitLabel }
|
|
17360
17386
|
]
|
|
17361
17387
|
}
|
|
@@ -17427,6 +17453,75 @@ var FIELDS2 = [
|
|
|
17427
17453
|
{ key: "cmaToken", label: "CMA Token", masked: true },
|
|
17428
17454
|
{ key: "host", label: "API Host", hint: "(default: api.contentful.com \xB7 EU spaces: api.eu.contentful.com)" }
|
|
17429
17455
|
];
|
|
17456
|
+
var MENU = [
|
|
17457
|
+
{ choice: "continue", label: "Continue", description: "Check the credentials and go on" },
|
|
17458
|
+
{ choice: "edit", label: "Edit", description: "Change the credentials" },
|
|
17459
|
+
{ choice: "skip", label: "Skip", description: "Save files only, nothing is pushed" },
|
|
17460
|
+
{ choice: "quit", label: "Quit", description: "Go back" }
|
|
17461
|
+
];
|
|
17462
|
+
function CredentialsReview({
|
|
17463
|
+
values,
|
|
17464
|
+
subtitle,
|
|
17465
|
+
notice,
|
|
17466
|
+
validating,
|
|
17467
|
+
onChoose,
|
|
17468
|
+
children
|
|
17469
|
+
}) {
|
|
17470
|
+
const [focus, setFocus] = useState9(0);
|
|
17471
|
+
useInput11((_input, key) => {
|
|
17472
|
+
if (validating) return;
|
|
17473
|
+
if (key.escape) onChoose("quit");
|
|
17474
|
+
else if (key.return) onChoose(MENU[focus].choice);
|
|
17475
|
+
else if (key.upArrow) setFocus((current) => (current - 1 + MENU.length) % MENU.length);
|
|
17476
|
+
else if (key.downArrow || key.tab) setFocus((current) => (current + 1) % MENU.length);
|
|
17477
|
+
});
|
|
17478
|
+
const labelWidth = formLabelWidth([...FIELDS2, ...MENU]);
|
|
17479
|
+
return /* @__PURE__ */ jsxs14(Box14, { flexDirection: "column", children: [
|
|
17480
|
+
/* @__PURE__ */ jsx15(StepHeader, { step: "setup" }),
|
|
17481
|
+
/* @__PURE__ */ jsxs14(Box14, { flexDirection: "column", paddingX: 2, paddingBottom: 1, children: [
|
|
17482
|
+
/* @__PURE__ */ jsx15(Text14, { bold: true, children: "Contentful Credentials" }),
|
|
17483
|
+
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
17484
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.muted, children: subtitle }),
|
|
17485
|
+
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
17486
|
+
MENU.map((item, index) => {
|
|
17487
|
+
const focused = index === focus;
|
|
17488
|
+
return /* @__PURE__ */ jsxs14(Box14, { gap: 1, children: [
|
|
17489
|
+
/* @__PURE__ */ jsx15(Text14, { color: focused ? PALETTE.accent : void 0, children: focused ? "\u276F" : " " }),
|
|
17490
|
+
/* @__PURE__ */ jsx15(Box14, { width: labelWidth, flexShrink: 0, children: /* @__PURE__ */ jsx15(Text14, { bold: focused, color: focused ? PALETTE.accent : PALETTE.muted, children: item.label }) }),
|
|
17491
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.muted, children: item.description })
|
|
17492
|
+
] }, item.choice);
|
|
17493
|
+
}),
|
|
17494
|
+
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
17495
|
+
FIELDS2.map((field) => {
|
|
17496
|
+
const value = values[field.key];
|
|
17497
|
+
return /* @__PURE__ */ jsx15(FormReadOnlyRow, { label: field.label, labelWidth, children: /* @__PURE__ */ jsx15(Text14, { bold: value !== "", children: field.masked ? "\u2022".repeat(value.length) : value || "(empty)" }) }, field.key);
|
|
17498
|
+
}),
|
|
17499
|
+
notice && /* @__PURE__ */ jsxs14(Fragment2, { children: [
|
|
17500
|
+
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
17501
|
+
/* @__PURE__ */ jsxs14(Text14, { color: PALETTE.error, children: [
|
|
17502
|
+
"\u2717 ",
|
|
17503
|
+
notice.text
|
|
17504
|
+
] })
|
|
17505
|
+
] }),
|
|
17506
|
+
validating && /* @__PURE__ */ jsxs14(Fragment2, { children: [
|
|
17507
|
+
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
17508
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.accent, children: "Validating credentials..." })
|
|
17509
|
+
] }),
|
|
17510
|
+
children,
|
|
17511
|
+
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
17512
|
+
/* @__PURE__ */ jsx15(
|
|
17513
|
+
ControlHints,
|
|
17514
|
+
{
|
|
17515
|
+
hints: [
|
|
17516
|
+
{ keys: "\u2191/\u2193", label: "move" },
|
|
17517
|
+
{ keys: "\u23CE", label: MENU[focus].label.toLowerCase() },
|
|
17518
|
+
{ keys: "Esc", label: "back" }
|
|
17519
|
+
]
|
|
17520
|
+
}
|
|
17521
|
+
)
|
|
17522
|
+
] })
|
|
17523
|
+
] });
|
|
17524
|
+
}
|
|
17430
17525
|
function CredentialsScreen({
|
|
17431
17526
|
onDone,
|
|
17432
17527
|
onBack,
|
|
@@ -17446,6 +17541,7 @@ function CredentialsScreen({
|
|
|
17446
17541
|
const [notice, setNotice] = useState9(null);
|
|
17447
17542
|
const [validating, setValidating] = useState9(false);
|
|
17448
17543
|
const prefilled = initialValues.spaceId !== "" && initialValues.cmaToken !== "";
|
|
17544
|
+
const [editing, setEditing] = useState9(!prefilled);
|
|
17449
17545
|
const submit = async () => {
|
|
17450
17546
|
const credentials = normalize(values);
|
|
17451
17547
|
if (missingField(credentials)) {
|
|
@@ -17458,38 +17554,38 @@ function CredentialsScreen({
|
|
|
17458
17554
|
if (result.ok) onDone({ skipped: false, credentials });
|
|
17459
17555
|
else setNotice({ kind: "error", text: result.error });
|
|
17460
17556
|
};
|
|
17557
|
+
const subtitle = prefilled ? "Credentials pre-filled from the configuration settings." : "Enter the Contentful space you want to import into.";
|
|
17558
|
+
const choose = (choice) => {
|
|
17559
|
+
if (choice === "continue") void submit();
|
|
17560
|
+
else if (choice === "edit") {
|
|
17561
|
+
setNotice(null);
|
|
17562
|
+
setEditing(true);
|
|
17563
|
+
} else if (choice === "skip") onDone({ skipped: true });
|
|
17564
|
+
else onBack();
|
|
17565
|
+
};
|
|
17566
|
+
if (!editing) {
|
|
17567
|
+
return /* @__PURE__ */ jsx15(CredentialsReview, { values, subtitle, notice, validating, onChoose: choose, children: !isUnchanged(normalize(values), initialValues) && /* @__PURE__ */ jsxs14(Fragment2, { children: [
|
|
17568
|
+
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
17569
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.muted, children: "Changed values are saved after they validate." })
|
|
17570
|
+
] }) });
|
|
17571
|
+
}
|
|
17461
17572
|
return /* @__PURE__ */ jsxs14(
|
|
17462
17573
|
FieldForm,
|
|
17463
17574
|
{
|
|
17464
17575
|
header: /* @__PURE__ */ jsx15(StepHeader, { step: "setup" }),
|
|
17465
17576
|
title: "Contentful Credentials",
|
|
17466
|
-
subtitle
|
|
17577
|
+
subtitle,
|
|
17467
17578
|
fields: FIELDS2,
|
|
17468
17579
|
values,
|
|
17469
17580
|
onChange: (key, value) => {
|
|
17470
17581
|
setValues((current) => ({ ...current, [key]: value }));
|
|
17471
17582
|
setNotice(null);
|
|
17472
17583
|
},
|
|
17473
|
-
|
|
17474
|
-
{
|
|
17475
|
-
label: "Continue",
|
|
17476
|
-
description: "Check the credentials and go on",
|
|
17477
|
-
runningText: "Validating credentials...",
|
|
17478
|
-
running: validating,
|
|
17479
|
-
hint: "continue",
|
|
17480
|
-
onRun: () => void submit()
|
|
17481
|
-
},
|
|
17482
|
-
{
|
|
17483
|
-
label: "Skip",
|
|
17484
|
-
description: "Save files only, nothing is pushed",
|
|
17485
|
-
hint: "skip",
|
|
17486
|
-
onRun: () => onDone({ skipped: true })
|
|
17487
|
-
}
|
|
17488
|
-
],
|
|
17584
|
+
enterAdvances: true,
|
|
17489
17585
|
onSave: () => void submit(),
|
|
17490
17586
|
saveLabel: "continue",
|
|
17491
|
-
onQuit: onBack,
|
|
17492
|
-
quitLabel: "back",
|
|
17587
|
+
onQuit: prefilled ? () => setEditing(false) : onBack,
|
|
17588
|
+
quitLabel: prefilled ? "stop editing" : "back",
|
|
17493
17589
|
notice,
|
|
17494
17590
|
busy: validating,
|
|
17495
17591
|
children: [
|
|
@@ -17498,6 +17594,10 @@ function CredentialsScreen({
|
|
|
17498
17594
|
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.muted, children: credentialsPurpose(tokensOnly) }),
|
|
17499
17595
|
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.muted, children: "Tip: save these under Settings \u2192 Configuration so they pre-fill here." })
|
|
17500
17596
|
] }),
|
|
17597
|
+
validating && /* @__PURE__ */ jsxs14(Fragment2, { children: [
|
|
17598
|
+
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
17599
|
+
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.accent, children: "Validating credentials..." })
|
|
17600
|
+
] }),
|
|
17501
17601
|
!validating && !notice && !isUnchanged(normalize(values), initialValues) && /* @__PURE__ */ jsxs14(Fragment2, { children: [
|
|
17502
17602
|
/* @__PURE__ */ jsx15(Text14, { children: " " }),
|
|
17503
17603
|
/* @__PURE__ */ jsx15(Text14, { color: PALETTE.muted, children: "Changed values are saved after they validate." })
|
|
@@ -17941,11 +18041,11 @@ function useTokensOnly(input) {
|
|
|
17941
18041
|
}
|
|
17942
18042
|
|
|
17943
18043
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/screen.tsx
|
|
17944
|
-
import { Box as
|
|
18044
|
+
import { Box as Box24, Text as Text25 } from "ink";
|
|
17945
18045
|
|
|
17946
18046
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/panels/added-column.tsx
|
|
17947
18047
|
import React10 from "react";
|
|
17948
|
-
import { Box as
|
|
18048
|
+
import { Box as Box16, Text as Text16 } from "ink";
|
|
17949
18049
|
import figures2 from "figures";
|
|
17950
18050
|
|
|
17951
18051
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/columns.ts
|
|
@@ -18052,7 +18152,7 @@ function computeColumnWindow(total, cursor, visibleCount) {
|
|
|
18052
18152
|
}
|
|
18053
18153
|
|
|
18054
18154
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/windowed-panel.tsx
|
|
18055
|
-
import { Box as
|
|
18155
|
+
import { Box as Box15, Text as Text15 } from "ink";
|
|
18056
18156
|
import { jsx as jsx17, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
18057
18157
|
var MIN_TERMINAL_PANEL_HEIGHT = 5;
|
|
18058
18158
|
function terminalPanelHeight(rows, reservedRows = 4) {
|
|
@@ -18070,7 +18170,7 @@ function FixedPanel({
|
|
|
18070
18170
|
children
|
|
18071
18171
|
}) {
|
|
18072
18172
|
return /* @__PURE__ */ jsx17(
|
|
18073
|
-
|
|
18173
|
+
Box15,
|
|
18074
18174
|
{
|
|
18075
18175
|
flexDirection: "column",
|
|
18076
18176
|
width,
|
|
@@ -18106,7 +18206,7 @@ function WindowedPanelHeader({
|
|
|
18106
18206
|
width,
|
|
18107
18207
|
focused
|
|
18108
18208
|
}) {
|
|
18109
|
-
return /* @__PURE__ */ jsxs15(
|
|
18209
|
+
return /* @__PURE__ */ jsxs15(Box15, { flexDirection: "column", children: [
|
|
18110
18210
|
/* @__PURE__ */ jsx17(Text15, { bold: true, color: PALETTE.accent, inverse: focused, children: title }),
|
|
18111
18211
|
/* @__PURE__ */ jsx17(Text15, { color: PALETTE.muted, children: "\u2500".repeat(Math.max(0, width - 2)) })
|
|
18112
18212
|
] });
|
|
@@ -18141,7 +18241,7 @@ function AddedColumn(props) {
|
|
|
18141
18241
|
const style = sideColumnLabelStyle({ isCycle: entry.isCycle, isSelected, focused });
|
|
18142
18242
|
return /* @__PURE__ */ jsxs16(React10.Fragment, { children: [
|
|
18143
18243
|
showSeparator && /* @__PURE__ */ jsx18(Text16, { color: PALETTE.muted, children: "\u2500".repeat(Math.max(0, width - 2)) }),
|
|
18144
|
-
/* @__PURE__ */ jsxs16(
|
|
18244
|
+
/* @__PURE__ */ jsxs16(Box16, { children: [
|
|
18145
18245
|
isCursor ? /* @__PURE__ */ jsx18(Text16, { color: PALETTE.accent, bold: true, children: figures2.pointer }) : /* @__PURE__ */ jsx18(Text16, { children: " " }),
|
|
18146
18246
|
reserveAiBadge && (aiFlagged ? /* @__PURE__ */ jsx18(Text16, { color: PALETTE.warning, bold: true, children: " [\xD7]" }) : /* @__PURE__ */ jsx18(Text16, { children: " " })),
|
|
18147
18247
|
entry.isCycle && /* @__PURE__ */ jsx18(Text16, { color: isCursor ? PALETTE.accent : PALETTE.warning, bold: true, underline: style.nameUnderline, children: " \u26A0" }),
|
|
@@ -18164,7 +18264,7 @@ function AddedColumn(props) {
|
|
|
18164
18264
|
}
|
|
18165
18265
|
|
|
18166
18266
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/panels/cycles-panel.tsx
|
|
18167
|
-
import { Box as
|
|
18267
|
+
import { Box as Box17, Text as Text17 } from "ink";
|
|
18168
18268
|
import figures3 from "figures";
|
|
18169
18269
|
import { jsx as jsx19, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
18170
18270
|
function cycleLabel(cycle, index) {
|
|
@@ -18177,7 +18277,7 @@ function cycleLabel(cycle, index) {
|
|
|
18177
18277
|
return `Cycle ${index + 1}: ${parts.join(" \u2192 ")}`;
|
|
18178
18278
|
}
|
|
18179
18279
|
function CyclesPanel({ cycles, cursor }) {
|
|
18180
|
-
return /* @__PURE__ */ jsxs17(
|
|
18280
|
+
return /* @__PURE__ */ jsxs17(Box17, { flexDirection: "column", borderStyle: "single", borderColor: PALETTE.warning, paddingX: 1, marginTop: 1, children: [
|
|
18181
18281
|
/* @__PURE__ */ jsx19(Text17, { bold: true, color: PALETTE.warning, children: `Cycles detected (${cycles.length}):` }),
|
|
18182
18282
|
/* @__PURE__ */ jsx19(Text17, { children: " " }),
|
|
18183
18283
|
cycles.map((cycle, i) => {
|
|
@@ -18192,10 +18292,10 @@ function CyclesPanel({ cycles, cursor }) {
|
|
|
18192
18292
|
}
|
|
18193
18293
|
|
|
18194
18294
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/panels/reject-prompt.tsx
|
|
18195
|
-
import { Box as
|
|
18295
|
+
import { Box as Box18, Text as Text18 } from "ink";
|
|
18196
18296
|
import { jsx as jsx20, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
18197
18297
|
function RejectPrompt({ pending }) {
|
|
18198
|
-
return /* @__PURE__ */ jsxs18(
|
|
18298
|
+
return /* @__PURE__ */ jsxs18(Box18, { flexDirection: "column", borderStyle: "single", borderColor: PALETTE.warning, paddingX: 1, marginTop: 1, children: [
|
|
18199
18299
|
/* @__PURE__ */ jsx20(Text18, { bold: true, color: PALETTE.warning, children: `Rejecting ${pending.target} will:` }),
|
|
18200
18300
|
pending.ancestors.length > 0 && /* @__PURE__ */ jsx20(Text18, { children: `- Reject ancestors: ${pending.ancestors.join(", ")}` }),
|
|
18201
18301
|
pending.descendants.length > 0 && /* @__PURE__ */ jsx20(Text18, { children: `- Deselect descendants: ${pending.descendants.join(", ")}` }),
|
|
@@ -18223,7 +18323,7 @@ function CompactControlBar({ hasGroupRoots, searchActive }) {
|
|
|
18223
18323
|
}
|
|
18224
18324
|
|
|
18225
18325
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/CounterStrip.tsx
|
|
18226
|
-
import { Box as
|
|
18326
|
+
import { Box as Box19, Text as Text19 } from "ink";
|
|
18227
18327
|
import { jsx as jsx22, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
18228
18328
|
function CounterStrip(props) {
|
|
18229
18329
|
const { counters, totalWidth } = props;
|
|
@@ -18232,7 +18332,7 @@ function CounterStrip(props) {
|
|
|
18232
18332
|
const labelRej = condensed ? "Rej" : "Rejected";
|
|
18233
18333
|
const labelUnd = condensed ? "Und" : "Undecided";
|
|
18234
18334
|
const sep = condensed ? " | " : " ";
|
|
18235
|
-
return /* @__PURE__ */ jsx22(
|
|
18335
|
+
return /* @__PURE__ */ jsx22(Box19, { children: /* @__PURE__ */ jsxs19(Text19, { children: [
|
|
18236
18336
|
/* @__PURE__ */ jsxs19(Text19, { color: PALETTE.muted, children: [
|
|
18237
18337
|
labelGrp,
|
|
18238
18338
|
" "
|
|
@@ -18256,7 +18356,7 @@ function CounterStrip(props) {
|
|
|
18256
18356
|
|
|
18257
18357
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/GotoBanner.tsx
|
|
18258
18358
|
import figures4 from "figures";
|
|
18259
|
-
import { Box as
|
|
18359
|
+
import { Box as Box20, Text as Text20 } from "ink";
|
|
18260
18360
|
import { jsx as jsx23, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
18261
18361
|
var DEFAULT_MAX_ROWS = 15;
|
|
18262
18362
|
function windowStart(rowCount, highlightIndex, maxRows) {
|
|
@@ -18290,7 +18390,7 @@ function GotoBanner({
|
|
|
18290
18390
|
const moreAbove = start;
|
|
18291
18391
|
const moreBelow = rows.length - end;
|
|
18292
18392
|
return /* @__PURE__ */ jsxs20(
|
|
18293
|
-
|
|
18393
|
+
Box20,
|
|
18294
18394
|
{
|
|
18295
18395
|
flexDirection: "column",
|
|
18296
18396
|
borderStyle: "single",
|
|
@@ -18315,7 +18415,7 @@ function GotoBanner({
|
|
|
18315
18415
|
|
|
18316
18416
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/GroupedSidebar.tsx
|
|
18317
18417
|
import figures5 from "figures";
|
|
18318
|
-
import { Box as
|
|
18418
|
+
import { Box as Box21, Text as Text22 } from "ink";
|
|
18319
18419
|
|
|
18320
18420
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/graph/cycle-detection.ts
|
|
18321
18421
|
function buildGraph(components) {
|
|
@@ -19135,7 +19235,7 @@ function GroupedSidebar(props) {
|
|
|
19135
19235
|
isOwn: rs?.isOwn ?? false,
|
|
19136
19236
|
isCursor
|
|
19137
19237
|
});
|
|
19138
|
-
return /* @__PURE__ */ jsxs21(
|
|
19238
|
+
return /* @__PURE__ */ jsxs21(Box21, { children: [
|
|
19139
19239
|
isCursor ? /* @__PURE__ */ jsx25(Text22, { color: PALETTE.accent, bold: true, children: figures5.pointer }) : /* @__PURE__ */ jsx25(Text22, { children: " " }),
|
|
19140
19240
|
/* @__PURE__ */ jsx25(PreviewBadge, { badge, highlighted: isSelected }),
|
|
19141
19241
|
selectionStateByKey !== void 0 && (selGlyph && !isSynthetic ? /* @__PURE__ */ jsx25(Text22, { color: !isSelected && selDim ? PALETTE.muted : selColor, bold: selBold, children: " " + selGlyph }) : /* @__PURE__ */ jsx25(Text22, { children: " " })),
|
|
@@ -19163,7 +19263,7 @@ function GroupedSidebar(props) {
|
|
|
19163
19263
|
|
|
19164
19264
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/HelpOverlay.tsx
|
|
19165
19265
|
import React11 from "react";
|
|
19166
|
-
import { Box as
|
|
19266
|
+
import { Box as Box22, Text as Text23 } from "ink";
|
|
19167
19267
|
|
|
19168
19268
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/hooks/useImmediateInput.ts
|
|
19169
19269
|
import { useLayoutEffect, useRef as useRef5 } from "react";
|
|
@@ -19274,7 +19374,7 @@ function HelpOverlay(props) {
|
|
|
19274
19374
|
}, props.handleInput !== false);
|
|
19275
19375
|
if (props.sections) {
|
|
19276
19376
|
return /* @__PURE__ */ jsxs22(
|
|
19277
|
-
|
|
19377
|
+
Box22,
|
|
19278
19378
|
{
|
|
19279
19379
|
flexDirection: "column",
|
|
19280
19380
|
borderStyle: "round",
|
|
@@ -19295,7 +19395,7 @@ function HelpOverlay(props) {
|
|
|
19295
19395
|
}
|
|
19296
19396
|
const mode = props.mode;
|
|
19297
19397
|
return /* @__PURE__ */ jsxs22(
|
|
19298
|
-
|
|
19398
|
+
Box22,
|
|
19299
19399
|
{
|
|
19300
19400
|
flexDirection: "column",
|
|
19301
19401
|
borderStyle: "round",
|
|
@@ -19335,7 +19435,7 @@ function HelpOverlay(props) {
|
|
|
19335
19435
|
}
|
|
19336
19436
|
|
|
19337
19437
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/components/SearchMatchSummary.tsx
|
|
19338
|
-
import { Box as
|
|
19438
|
+
import { Box as Box23, Text as Text24 } from "ink";
|
|
19339
19439
|
|
|
19340
19440
|
// packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/autocomplete.ts
|
|
19341
19441
|
function longestCommonPrefix(names) {
|
|
@@ -19404,7 +19504,7 @@ function SearchMatchSummary({
|
|
|
19404
19504
|
}) {
|
|
19405
19505
|
if (hidden) return null;
|
|
19406
19506
|
return /* @__PURE__ */ jsxs23(Fragment4, { children: [
|
|
19407
|
-
open && /* @__PURE__ */ jsxs23(
|
|
19507
|
+
open && /* @__PURE__ */ jsxs23(Box23, { marginTop, flexDirection: "column", children: [
|
|
19408
19508
|
/* @__PURE__ */ jsxs23(Text24, { children: [
|
|
19409
19509
|
`/${query}`,
|
|
19410
19510
|
/* @__PURE__ */ jsx27(Text24, { color: PALETTE.accent, children: "\u258E" }),
|
|
@@ -19413,7 +19513,7 @@ function SearchMatchSummary({
|
|
|
19413
19513
|
] }),
|
|
19414
19514
|
autocompleteCandidates.length > 1 && /* @__PURE__ */ jsx27(Text24, { color: PALETTE.muted, children: ` possibilities: ${autocompleteCandidates.join(" \xB7 ").slice(0, 120)}` })
|
|
19415
19515
|
] }),
|
|
19416
|
-
!open && query && /* @__PURE__ */ jsx27(
|
|
19516
|
+
!open && query && /* @__PURE__ */ jsx27(Box23, { marginTop, children: /* @__PURE__ */ jsx27(Text24, { children: `/${query}${formatSearchMatchSummary(matches, total)} \xB7 [Esc] clear` }) })
|
|
19417
19517
|
] });
|
|
19418
19518
|
}
|
|
19419
19519
|
|
|
@@ -20591,7 +20691,7 @@ var HELP_SECTIONS = [
|
|
|
20591
20691
|
];
|
|
20592
20692
|
function ScopeGateScreen(props) {
|
|
20593
20693
|
if (props.components.length === 0) {
|
|
20594
|
-
return /* @__PURE__ */ jsx28(
|
|
20694
|
+
return /* @__PURE__ */ jsx28(Box24, { paddingX: 2, paddingY: 1, children: /* @__PURE__ */ jsx28(Text25, { color: PALETTE.error, children: "Error: no components found for this session \u2014 please re-run analyze extract." }) });
|
|
20595
20695
|
}
|
|
20596
20696
|
return /* @__PURE__ */ jsx28(ScopeGateView, { ...props });
|
|
20597
20697
|
}
|
|
@@ -20601,18 +20701,18 @@ function ScopeGateView({ components, onConfirm, onQuit }) {
|
|
|
20601
20701
|
if (gate.showHelp) {
|
|
20602
20702
|
return /* @__PURE__ */ jsx28(HelpOverlay, { sections: HELP_SECTIONS, handleInput: false, onClose: gate.closeHelp });
|
|
20603
20703
|
}
|
|
20604
|
-
return /* @__PURE__ */ jsxs24(
|
|
20704
|
+
return /* @__PURE__ */ jsxs24(Box24, { flexDirection: "column", children: [
|
|
20605
20705
|
/* @__PURE__ */ jsx28(StepHeader, { step: "scope-gate" }),
|
|
20606
|
-
/* @__PURE__ */ jsxs24(
|
|
20607
|
-
/* @__PURE__ */ jsxs24(
|
|
20706
|
+
/* @__PURE__ */ jsxs24(Box24, { flexDirection: "column", paddingX: 2, children: [
|
|
20707
|
+
/* @__PURE__ */ jsxs24(Box24, { flexDirection: "row", flexWrap: "wrap", children: [
|
|
20608
20708
|
/* @__PURE__ */ jsx28(CounterStrip, { counters, totalWidth: gate.totalWidth }),
|
|
20609
20709
|
gate.aiExcludedCount > 0 && /* @__PURE__ */ jsxs24(Text25, { color: PALETTE.muted, children: [
|
|
20610
20710
|
`${gate.aiExcludedCount} component${gate.aiExcludedCount === 1 ? "" : "s"} flagged by AI`,
|
|
20611
20711
|
gate.aiRows.length > 0 && /* @__PURE__ */ jsx28(Text25, { color: PALETTE.accent, children: " \u2014 press [x] to see why" })
|
|
20612
20712
|
] })
|
|
20613
20713
|
] }),
|
|
20614
|
-
graph.cycles.length > 0 && /* @__PURE__ */ jsx28(
|
|
20615
|
-
/* @__PURE__ */ jsxs24(
|
|
20714
|
+
graph.cycles.length > 0 && /* @__PURE__ */ jsx28(Box24, { marginTop: 1, children: /* @__PURE__ */ jsx28(Text25, { color: PALETTE.muted, children: "If you must have components with cycles, select them together into the generate step and then use the editor to fix them." }) }),
|
|
20715
|
+
/* @__PURE__ */ jsxs24(Box24, { flexDirection: "row", alignItems: "stretch", children: [
|
|
20616
20716
|
gate.aiRationalePanelOpen ? /* @__PURE__ */ jsx28(
|
|
20617
20717
|
GotoBanner,
|
|
20618
20718
|
{
|
|
@@ -20652,7 +20752,7 @@ function ScopeGateView({ components, onConfirm, onQuit }) {
|
|
|
20652
20752
|
}
|
|
20653
20753
|
),
|
|
20654
20754
|
columnPlan.layout === "two-column" && /* @__PURE__ */ jsxs24(Fragment5, { children: [
|
|
20655
|
-
/* @__PURE__ */ jsx28(
|
|
20755
|
+
/* @__PURE__ */ jsx28(Box24, { width: 2, flexShrink: 0 }),
|
|
20656
20756
|
/* @__PURE__ */ jsx28(
|
|
20657
20757
|
AddedColumn,
|
|
20658
20758
|
{
|
|
@@ -20769,7 +20869,7 @@ var capitalize = (name) => name.charAt(0).toUpperCase() + name.slice(1);
|
|
|
20769
20869
|
function describeGeneration(input) {
|
|
20770
20870
|
const agent = capitalize(input.agent);
|
|
20771
20871
|
return `${formatAcceptanceSummary({ accepted: input.acceptedCount, autoRejected: 0 })}
|
|
20772
|
-
${agent} is
|
|
20872
|
+
${agent} is reading each selected component and writing a Contentful component definition for it${input.hasTokens ? " Using your design tokens for prop resolution." : ""}`;
|
|
20773
20873
|
}
|
|
20774
20874
|
function progressRows2(progress, agent) {
|
|
20775
20875
|
const name = capitalize(agent);
|
|
@@ -21022,7 +21122,7 @@ function buildFlowStart(input) {
|
|
|
21022
21122
|
}
|
|
21023
21123
|
|
|
21024
21124
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/flow/screen.tsx
|
|
21025
|
-
import { Box as
|
|
21125
|
+
import { Box as Box44 } from "ink";
|
|
21026
21126
|
|
|
21027
21127
|
// packages/experience-design-system-types/dist/src/cdf/validate.js
|
|
21028
21128
|
import { Ajv as Ajv2 } from "ajv";
|
|
@@ -21387,7 +21487,7 @@ function getReviewJsonPanelValue(selected, showHiddenProps) {
|
|
|
21387
21487
|
}
|
|
21388
21488
|
|
|
21389
21489
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/generate-review-step.tsx
|
|
21390
|
-
import { Box as
|
|
21490
|
+
import { Box as Box37, Text as Text39 } from "ink";
|
|
21391
21491
|
|
|
21392
21492
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/graph/cycle-view.ts
|
|
21393
21493
|
function computeCycleView(components) {
|
|
@@ -21626,12 +21726,12 @@ function enumerateCycleBreaks(cycle, components) {
|
|
|
21626
21726
|
}
|
|
21627
21727
|
|
|
21628
21728
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ReviewComponentPanel.tsx
|
|
21629
|
-
import { Box as
|
|
21729
|
+
import { Box as Box31, Text as Text33 } from "ink";
|
|
21630
21730
|
|
|
21631
21731
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/FieldEditor.tsx
|
|
21632
21732
|
import React12, { useEffect as useEffect11, useLayoutEffect as useLayoutEffect2, useState as useState18 } from "react";
|
|
21633
21733
|
import figures6 from "figures";
|
|
21634
|
-
import { Box as
|
|
21734
|
+
import { Box as Box25, measureElement, Text as Text26 } from "ink";
|
|
21635
21735
|
|
|
21636
21736
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/scroll-offset.ts
|
|
21637
21737
|
function computeNextScrollOffset(current, input, key, totalLines, panelHeight) {
|
|
@@ -21800,14 +21900,14 @@ function serializeState(state2, originalJson) {
|
|
|
21800
21900
|
return JSON.stringify(entry, null, 2);
|
|
21801
21901
|
}
|
|
21802
21902
|
function Picker({ value, active }) {
|
|
21803
|
-
return /* @__PURE__ */ jsxs25(
|
|
21903
|
+
return /* @__PURE__ */ jsxs25(Box25, { children: [
|
|
21804
21904
|
active && /* @__PURE__ */ jsx31(Text26, { color: PALETTE.warning, children: "\u2039" }),
|
|
21805
21905
|
/* @__PURE__ */ jsx31(Text26, { color: active ? PALETTE.warning : void 0, bold: active, children: value }),
|
|
21806
21906
|
active && /* @__PURE__ */ jsx31(Text26, { color: PALETTE.warning, children: "\u203A" })
|
|
21807
21907
|
] });
|
|
21808
21908
|
}
|
|
21809
21909
|
function Toggle({ value, active }) {
|
|
21810
|
-
return /* @__PURE__ */ jsx31(
|
|
21910
|
+
return /* @__PURE__ */ jsx31(Box25, { children: /* @__PURE__ */ jsx31(Text26, { color: active ? PALETTE.warning : value ? PALETTE.success : PALETTE.border, children: value ? "[\u2713]" : "[ ]" }) });
|
|
21811
21911
|
}
|
|
21812
21912
|
function InlinePropField({
|
|
21813
21913
|
label,
|
|
@@ -21816,7 +21916,7 @@ function InlinePropField({
|
|
|
21816
21916
|
flexible = false,
|
|
21817
21917
|
width
|
|
21818
21918
|
}) {
|
|
21819
|
-
return /* @__PURE__ */ jsxs25(
|
|
21919
|
+
return /* @__PURE__ */ jsxs25(Box25, { width, gap: 1, flexShrink: flexible ? 1 : 0, flexGrow: flexible ? 1 : 0, flexWrap: "wrap", children: [
|
|
21820
21920
|
/* @__PURE__ */ jsxs25(Text26, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, wrap: "truncate-end", children: [
|
|
21821
21921
|
focused ? "\u203A " : " ",
|
|
21822
21922
|
label
|
|
@@ -21837,7 +21937,7 @@ function DefaultValueRow({
|
|
|
21837
21937
|
active,
|
|
21838
21938
|
focused
|
|
21839
21939
|
}) {
|
|
21840
|
-
return /* @__PURE__ */ jsxs25(
|
|
21940
|
+
return /* @__PURE__ */ jsxs25(Box25, { gap: 1, flexWrap: "wrap", flexShrink: 0, children: [
|
|
21841
21941
|
/* @__PURE__ */ jsxs25(Text26, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
|
|
21842
21942
|
focused ? "\u203A " : " ",
|
|
21843
21943
|
"default:"
|
|
@@ -21870,7 +21970,7 @@ function ValueInputRow({
|
|
|
21870
21970
|
valueText,
|
|
21871
21971
|
cursorVisible
|
|
21872
21972
|
}) {
|
|
21873
|
-
return /* @__PURE__ */ jsxs25(
|
|
21973
|
+
return /* @__PURE__ */ jsxs25(Box25, { paddingLeft: 2, children: [
|
|
21874
21974
|
/* @__PURE__ */ jsx31(Text26, { color: PALETTE.accent, children: mode === "edit" ? "\u270E " : "+ " }),
|
|
21875
21975
|
/* @__PURE__ */ jsx31(Text26, { children: valueText }),
|
|
21876
21976
|
/* @__PURE__ */ jsx31(Text26, { inverse: cursorVisible, children: " " })
|
|
@@ -21888,7 +21988,7 @@ function EditableListItem({
|
|
|
21888
21988
|
if (isBeingEdited) {
|
|
21889
21989
|
return /* @__PURE__ */ jsx31(ValueInputRow, { mode: "edit", valueText, cursorVisible });
|
|
21890
21990
|
}
|
|
21891
|
-
return /* @__PURE__ */ jsx31(
|
|
21991
|
+
return /* @__PURE__ */ jsx31(Box25, { gap: 1, paddingLeft: 2, children: /* @__PURE__ */ jsx31(Text26, { color: active ? PALETTE.accent : void 0, children: active ? `${figures6.pointer} ${value}` : ` ${value}` }) });
|
|
21892
21992
|
}
|
|
21893
21993
|
function EditableValueList({
|
|
21894
21994
|
values,
|
|
@@ -21902,7 +22002,7 @@ function EditableValueList({
|
|
|
21902
22002
|
showAddInput
|
|
21903
22003
|
}) {
|
|
21904
22004
|
return /* @__PURE__ */ jsxs25(Fragment6, { children: [
|
|
21905
|
-
values.length === 0 && !editingValue && (emptyPaddingLeft === void 0 ? /* @__PURE__ */ jsx31(Text26, { color: PALETTE.muted, children: emptyMessage }) : /* @__PURE__ */ jsx31(
|
|
22005
|
+
values.length === 0 && !editingValue && (emptyPaddingLeft === void 0 ? /* @__PURE__ */ jsx31(Text26, { color: PALETTE.muted, children: emptyMessage }) : /* @__PURE__ */ jsx31(Box25, { paddingLeft: emptyPaddingLeft, children: /* @__PURE__ */ jsx31(Text26, { color: PALETTE.muted, children: emptyMessage }) })),
|
|
21906
22006
|
values.map((value, index) => /* @__PURE__ */ jsx31(
|
|
21907
22007
|
EditableListItem,
|
|
21908
22008
|
{
|
|
@@ -21927,7 +22027,7 @@ function DefaultSubRow({
|
|
|
21927
22027
|
}) {
|
|
21928
22028
|
const cursor = cursorVisible ? "\u2588" : " ";
|
|
21929
22029
|
if (prop.type === "richtext" || prop.type === "media" || prop.type === "link") {
|
|
21930
|
-
return /* @__PURE__ */ jsxs25(
|
|
22030
|
+
return /* @__PURE__ */ jsxs25(Box25, { gap: 1, flexShrink: 0, children: [
|
|
21931
22031
|
/* @__PURE__ */ jsxs25(Text26, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
|
|
21932
22032
|
focused ? "\u203A " : " ",
|
|
21933
22033
|
"default:"
|
|
@@ -21941,7 +22041,7 @@ function DefaultSubRow({
|
|
|
21941
22041
|
}
|
|
21942
22042
|
if (prop.type === "enum") {
|
|
21943
22043
|
if (prop.values.length === 0) {
|
|
21944
|
-
return /* @__PURE__ */ jsxs25(
|
|
22044
|
+
return /* @__PURE__ */ jsxs25(Box25, { gap: 1, flexShrink: 0, children: [
|
|
21945
22045
|
/* @__PURE__ */ jsxs25(Text26, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
|
|
21946
22046
|
focused ? "\u203A " : " ",
|
|
21947
22047
|
"default:"
|
|
@@ -21954,19 +22054,19 @@ function DefaultSubRow({
|
|
|
21954
22054
|
}
|
|
21955
22055
|
const value = typeof prop.default === "string" ? prop.default : "";
|
|
21956
22056
|
if (active) {
|
|
21957
|
-
return /* @__PURE__ */ jsxs25(
|
|
22057
|
+
return /* @__PURE__ */ jsxs25(Box25, { flexDirection: "row", flexShrink: 0, children: [
|
|
21958
22058
|
/* @__PURE__ */ jsxs25(Text26, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
|
|
21959
22059
|
focused ? "\u203A " : " ",
|
|
21960
22060
|
"default:"
|
|
21961
22061
|
] }),
|
|
21962
|
-
/* @__PURE__ */ jsxs25(
|
|
22062
|
+
/* @__PURE__ */ jsxs25(Box25, { flexGrow: 1, borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, children: [
|
|
21963
22063
|
/* @__PURE__ */ jsx31(Text26, { children: value.slice(0, textCursor) }),
|
|
21964
22064
|
/* @__PURE__ */ jsx31(Text26, { inverse: cursorVisible, children: value[textCursor] ?? cursor }),
|
|
21965
22065
|
/* @__PURE__ */ jsx31(Text26, { children: value.slice(textCursor + 1) })
|
|
21966
22066
|
] })
|
|
21967
22067
|
] });
|
|
21968
22068
|
}
|
|
21969
|
-
return /* @__PURE__ */ jsxs25(
|
|
22069
|
+
return /* @__PURE__ */ jsxs25(Box25, { gap: 1, flexShrink: 0, children: [
|
|
21970
22070
|
/* @__PURE__ */ jsxs25(Text26, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
|
|
21971
22071
|
focused ? "\u203A " : " ",
|
|
21972
22072
|
"default:"
|
|
@@ -21986,7 +22086,7 @@ function DescriptionField({
|
|
|
21986
22086
|
paddingLeft = 2
|
|
21987
22087
|
}) {
|
|
21988
22088
|
if (compact) {
|
|
21989
|
-
return /* @__PURE__ */ jsxs25(
|
|
22089
|
+
return /* @__PURE__ */ jsxs25(Box25, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: [
|
|
21990
22090
|
/* @__PURE__ */ jsxs25(Text26, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
|
|
21991
22091
|
focused ? "\u203A " : " ",
|
|
21992
22092
|
label
|
|
@@ -21994,7 +22094,7 @@ function DescriptionField({
|
|
|
21994
22094
|
/* @__PURE__ */ jsx31(Text26, { wrap: "truncate-end", color: value ? void 0 : PALETTE.muted, children: value || "\u2014" })
|
|
21995
22095
|
] });
|
|
21996
22096
|
}
|
|
21997
|
-
return /* @__PURE__ */ jsxs25(
|
|
22097
|
+
return /* @__PURE__ */ jsxs25(Box25, { paddingLeft, flexDirection: "column", width, flexShrink: 0, children: [
|
|
21998
22098
|
/* @__PURE__ */ jsxs25(Text26, { color: focused ? PALETTE.warning : PALETTE.muted, bold: focused, children: [
|
|
21999
22099
|
focused ? "\u203A " : " ",
|
|
22000
22100
|
label
|
|
@@ -22030,8 +22130,8 @@ function PropRow({
|
|
|
22030
22130
|
}) {
|
|
22031
22131
|
const descFocused = activeField === "description";
|
|
22032
22132
|
const descActive = editingField && descFocused;
|
|
22033
|
-
return /* @__PURE__ */ jsxs25(
|
|
22034
|
-
/* @__PURE__ */ jsx31(
|
|
22133
|
+
return /* @__PURE__ */ jsxs25(Box25, { flexDirection: "column", width, flexShrink: 0, children: [
|
|
22134
|
+
/* @__PURE__ */ jsx31(Box25, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: /* @__PURE__ */ jsx31(RowLabel, { name: prop.name, selected }) }),
|
|
22035
22135
|
/* @__PURE__ */ jsx31(
|
|
22036
22136
|
DescriptionField,
|
|
22037
22137
|
{
|
|
@@ -22045,7 +22145,7 @@ function PropRow({
|
|
|
22045
22145
|
paddingLeft: 0
|
|
22046
22146
|
}
|
|
22047
22147
|
),
|
|
22048
|
-
/* @__PURE__ */ jsxs25(
|
|
22148
|
+
/* @__PURE__ */ jsxs25(Box25, { flexDirection: "column", width, flexShrink: 0, children: [
|
|
22049
22149
|
/* @__PURE__ */ jsx31(
|
|
22050
22150
|
RequiredField,
|
|
22051
22151
|
{
|
|
@@ -22058,7 +22158,7 @@ function PropRow({
|
|
|
22058
22158
|
/* @__PURE__ */ jsx31(InlinePropField, { label: "type:", focused: activeField === "type", children: editingField && activeField === "type" ? /* @__PURE__ */ jsx31(Picker, { value: prop.type, active: true }) : /* @__PURE__ */ jsx31(Text26, { children: prop.type }) })
|
|
22059
22159
|
] }),
|
|
22060
22160
|
prop.type === "token" && /* @__PURE__ */ jsx31(InlinePropField, { label: "kind:", focused: activeField === "tokenKind", width, children: editingField && activeField === "tokenKind" ? /* @__PURE__ */ jsx31(Picker, { value: prop.tokenKind || DESIGN_TOKEN_TYPES2[0], active: true }) : /* @__PURE__ */ jsx31(Text26, { wrap: "wrap", children: prop.tokenKind || "\u2014" }) }),
|
|
22061
|
-
prop.type === "enum" && /* @__PURE__ */ jsxs25(
|
|
22161
|
+
prop.type === "enum" && /* @__PURE__ */ jsxs25(Box25, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: [
|
|
22062
22162
|
/* @__PURE__ */ jsxs25(Text26, { color: activeField === "values" ? PALETTE.warning : PALETTE.muted, bold: activeField === "values", children: [
|
|
22063
22163
|
activeField === "values" ? "\u203A " : " ",
|
|
22064
22164
|
"values:"
|
|
@@ -22079,12 +22179,12 @@ function PropRow({
|
|
|
22079
22179
|
cursorVisible
|
|
22080
22180
|
}
|
|
22081
22181
|
),
|
|
22082
|
-
prop.type === "token" && prop.category === "design" && /* @__PURE__ */ jsxs25(
|
|
22182
|
+
prop.type === "token" && prop.category === "design" && /* @__PURE__ */ jsxs25(Box25, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: [
|
|
22083
22183
|
/* @__PURE__ */ jsxs25(Text26, { color: activeField === "allowed" ? PALETTE.warning : PALETTE.muted, bold: activeField === "allowed", children: [
|
|
22084
22184
|
activeField === "allowed" ? "\u203A " : " ",
|
|
22085
22185
|
"allowed:"
|
|
22086
22186
|
] }),
|
|
22087
|
-
editingField && activeField === "allowed" ? /* @__PURE__ */ jsx31(
|
|
22187
|
+
editingField && activeField === "allowed" ? /* @__PURE__ */ jsx31(Box25, { width: Math.max(1, width - 4), borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, children: /* @__PURE__ */ jsx31(Text26, { children: "press [t] to edit allowed tokens" }) }) : /* @__PURE__ */ jsx31(
|
|
22088
22188
|
Text26,
|
|
22089
22189
|
{
|
|
22090
22190
|
color: activeField !== "allowed" && prop.allowed.length === 0 ? PALETTE.muted : void 0,
|
|
@@ -22093,13 +22193,13 @@ function PropRow({
|
|
|
22093
22193
|
}
|
|
22094
22194
|
)
|
|
22095
22195
|
] }),
|
|
22096
|
-
selected && showRationale && rationale && rationale.trim().length > 0 && /* @__PURE__ */ jsx31(
|
|
22196
|
+
selected && showRationale && rationale && rationale.trim().length > 0 && /* @__PURE__ */ jsx31(Box25, { paddingLeft: 2, children: /* @__PURE__ */ jsx31(Text26, { color: PALETTE.muted, children: (() => {
|
|
22097
22197
|
const max = Math.max(8, width - 8);
|
|
22098
22198
|
const text = `~ ${rationale}`;
|
|
22099
22199
|
return text.length > max ? text.slice(0, max - 1) + "\u2026" : text;
|
|
22100
22200
|
})() }) }, rowKey ? `rationale-${rowKey}` : void 0),
|
|
22101
|
-
selected && prop.type === "enum" && activeField === "values" && /* @__PURE__ */ jsxs25(
|
|
22102
|
-
/* @__PURE__ */ jsxs25(
|
|
22201
|
+
selected && prop.type === "enum" && activeField === "values" && /* @__PURE__ */ jsxs25(Box25, { paddingLeft: 2, flexDirection: "column", children: [
|
|
22202
|
+
/* @__PURE__ */ jsxs25(Box25, { children: [
|
|
22103
22203
|
/* @__PURE__ */ jsx31(Text26, { color: PALETTE.muted, children: "values:" }),
|
|
22104
22204
|
activeField === "values" && /* @__PURE__ */ jsx31(Text26, { children: " [a] add [e] edit [r] remove [\u2191\u2193] navigate [K/J] reorder" })
|
|
22105
22205
|
] }),
|
|
@@ -22133,8 +22233,8 @@ function SlotRow({
|
|
|
22133
22233
|
pickerCandidates,
|
|
22134
22234
|
pickerCursor
|
|
22135
22235
|
}) {
|
|
22136
|
-
return /* @__PURE__ */ jsxs25(
|
|
22137
|
-
/* @__PURE__ */ jsx31(
|
|
22236
|
+
return /* @__PURE__ */ jsxs25(Box25, { flexDirection: "column", width, flexShrink: 0, children: [
|
|
22237
|
+
/* @__PURE__ */ jsx31(Box25, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: /* @__PURE__ */ jsx31(RowLabel, { name: slot.name, selected, trailing: false }) }),
|
|
22138
22238
|
/* @__PURE__ */ jsx31(
|
|
22139
22239
|
DescriptionField,
|
|
22140
22240
|
{
|
|
@@ -22148,7 +22248,7 @@ function SlotRow({
|
|
|
22148
22248
|
paddingLeft: 0
|
|
22149
22249
|
}
|
|
22150
22250
|
),
|
|
22151
|
-
/* @__PURE__ */ jsx31(
|
|
22251
|
+
/* @__PURE__ */ jsx31(Box25, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: /* @__PURE__ */ jsx31(
|
|
22152
22252
|
RequiredField,
|
|
22153
22253
|
{
|
|
22154
22254
|
value: slot.required,
|
|
@@ -22157,7 +22257,7 @@ function SlotRow({
|
|
|
22157
22257
|
activeField
|
|
22158
22258
|
}
|
|
22159
22259
|
) }),
|
|
22160
|
-
!(selected && editingField && activeField === "allowedComponents") && /* @__PURE__ */ jsxs25(
|
|
22260
|
+
!(selected && editingField && activeField === "allowedComponents") && /* @__PURE__ */ jsxs25(Box25, { gap: 1, flexWrap: "wrap", width, flexShrink: 0, children: [
|
|
22161
22261
|
/* @__PURE__ */ jsxs25(
|
|
22162
22262
|
Text26,
|
|
22163
22263
|
{
|
|
@@ -22171,8 +22271,8 @@ function SlotRow({
|
|
|
22171
22271
|
),
|
|
22172
22272
|
slot.allowedComponents.length === 0 ? /* @__PURE__ */ jsx31(Text26, { color: PALETTE.muted, children: "(any)" }) : /* @__PURE__ */ jsx31(Text26, { wrap: "wrap", children: slot.allowedComponents.join(", ") })
|
|
22173
22273
|
] }),
|
|
22174
|
-
selected && editingField && activeField === "allowedComponents" && /* @__PURE__ */ jsxs25(
|
|
22175
|
-
/* @__PURE__ */ jsxs25(
|
|
22274
|
+
selected && editingField && activeField === "allowedComponents" && /* @__PURE__ */ jsxs25(Box25, { flexDirection: "column", children: [
|
|
22275
|
+
/* @__PURE__ */ jsxs25(Box25, { children: [
|
|
22176
22276
|
/* @__PURE__ */ jsxs25(
|
|
22177
22277
|
Text26,
|
|
22178
22278
|
{
|
|
@@ -22200,7 +22300,7 @@ function SlotRow({
|
|
|
22200
22300
|
showAddInput: editingField && activeField === "allowedComponents"
|
|
22201
22301
|
}
|
|
22202
22302
|
),
|
|
22203
|
-
editingField && editingValue?.mode === "add" && activeField === "allowedComponents" && pickerCandidates !== null && /* @__PURE__ */ jsx31(
|
|
22303
|
+
editingField && editingValue?.mode === "add" && activeField === "allowedComponents" && pickerCandidates !== null && /* @__PURE__ */ jsx31(Box25, { paddingLeft: 2, flexDirection: "column", children: pickerCandidates.length === 0 ? /* @__PURE__ */ jsx31(Text26, { color: PALETTE.muted, children: "(no valid components to add \u2014 all remaining candidates would create cycles)" }) : (() => {
|
|
22204
22304
|
const filtered = valueText.length === 0 ? pickerCandidates : pickerCandidates.filter((n) => n.toLowerCase().includes(valueText.toLowerCase()));
|
|
22205
22305
|
if (filtered.length === 0) {
|
|
22206
22306
|
return /* @__PURE__ */ jsx31(Text26, { color: PALETTE.muted, children: "(no candidates match \u2014 Enter to add as free text)" });
|
|
@@ -22209,7 +22309,7 @@ function SlotRow({
|
|
|
22209
22309
|
const MAX_VISIBLE = 5;
|
|
22210
22310
|
const start = Math.max(0, Math.min(filtered.length - MAX_VISIBLE, cursor - 2));
|
|
22211
22311
|
const slice = filtered.slice(start, start + MAX_VISIBLE);
|
|
22212
|
-
return /* @__PURE__ */ jsxs25(
|
|
22312
|
+
return /* @__PURE__ */ jsxs25(Box25, { flexDirection: "column", children: [
|
|
22213
22313
|
/* @__PURE__ */ jsx31(Text26, { color: PALETTE.muted, children: " candidates (\u2191\u2193 cycle, Enter to add):" }),
|
|
22214
22314
|
slice.map((name, i) => {
|
|
22215
22315
|
const absIdx = start + i;
|
|
@@ -23043,14 +23143,14 @@ function FieldEditor({
|
|
|
23043
23143
|
});
|
|
23044
23144
|
const innerWidth = Math.max(1, width - 2);
|
|
23045
23145
|
if (parseErr) {
|
|
23046
|
-
return /* @__PURE__ */ jsxs25(
|
|
23146
|
+
return /* @__PURE__ */ jsxs25(Box25, { flexDirection: "column", width, borderStyle: "single", borderColor: PALETTE.error, children: [
|
|
23047
23147
|
/* @__PURE__ */ jsx31(Text26, { bold: true, color: PALETTE.error, children: "FIELD EDITOR \u2014 parse error" }),
|
|
23048
23148
|
/* @__PURE__ */ jsx31(Text26, { color: PALETTE.error, children: parseErr }),
|
|
23049
23149
|
/* @__PURE__ */ jsx31(Text26, { color: PALETTE.muted, children: "Cannot display structured editor. Fix the JSON first." })
|
|
23050
23150
|
] });
|
|
23051
23151
|
}
|
|
23052
23152
|
if (props.length === 0 && slots.length === 0) {
|
|
23053
|
-
return /* @__PURE__ */ jsxs25(
|
|
23153
|
+
return /* @__PURE__ */ jsxs25(Box25, { flexDirection: "column", width, borderStyle: "single", borderColor: PALETTE.warning, children: [
|
|
23054
23154
|
/* @__PURE__ */ jsx31(Text26, { bold: true, color: PALETTE.warning, children: "FIELD EDITOR \u2014 no fields" }),
|
|
23055
23155
|
/* @__PURE__ */ jsx31(Text26, { color: PALETTE.warning, children: "\u26A0 No properties classified for this component. The LLM didn't find anything to classify." }),
|
|
23056
23156
|
/* @__PURE__ */ jsx31(Text26, { color: PALETTE.muted, children: "You can add fields manually below or reject this component." }),
|
|
@@ -23183,7 +23283,7 @@ function FieldEditor({
|
|
|
23183
23283
|
const renderRow = (row, index) => {
|
|
23184
23284
|
const key = rowKey(row, index);
|
|
23185
23285
|
if (row.kind === "header") {
|
|
23186
|
-
return /* @__PURE__ */ jsx31(
|
|
23286
|
+
return /* @__PURE__ */ jsx31(Box25, { flexDirection: "column", paddingTop: 1, children: /* @__PURE__ */ jsx31(Text26, { bold: true, color: PALETTE.success, children: row.label }) }, key);
|
|
23187
23287
|
}
|
|
23188
23288
|
if (row.kind === "component-description") {
|
|
23189
23289
|
const isSelected2 = inComponentDesc && active;
|
|
@@ -23269,7 +23369,7 @@ function FieldEditor({
|
|
|
23269
23369
|
children: [
|
|
23270
23370
|
hasEmptyProperties && /* @__PURE__ */ jsx31(Text26, { 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." }),
|
|
23271
23371
|
header,
|
|
23272
|
-
/* @__PURE__ */ jsx31(
|
|
23372
|
+
/* @__PURE__ */ jsx31(Box25, { flexDirection: "column", width: innerWidth, flexShrink: 0, children: focusLevel === "field" && !inComponentDesc && currentProp ? /* @__PURE__ */ jsx31(
|
|
23273
23373
|
PropRow,
|
|
23274
23374
|
{
|
|
23275
23375
|
prop: currentProp,
|
|
@@ -23305,7 +23405,7 @@ function FieldEditor({
|
|
|
23305
23405
|
const absoluteIndex = scrollStart + index;
|
|
23306
23406
|
const key = rowKey(row, absoluteIndex);
|
|
23307
23407
|
return /* @__PURE__ */ jsx31(
|
|
23308
|
-
|
|
23408
|
+
Box25,
|
|
23309
23409
|
{
|
|
23310
23410
|
ref: (node) => {
|
|
23311
23411
|
if (node) rowMeasureRefs.current.set(key, node);
|
|
@@ -23327,20 +23427,20 @@ function FieldEditor({
|
|
|
23327
23427
|
const src = metadata?.componentSource ?? null;
|
|
23328
23428
|
const headerPath = path5 ?? "<unknown source path>";
|
|
23329
23429
|
if (!start || !end2 || !src) {
|
|
23330
|
-
return /* @__PURE__ */ jsxs25(
|
|
23430
|
+
return /* @__PURE__ */ jsxs25(Box25, { flexDirection: "column", borderStyle: "single", borderColor: "gray", paddingX: 1, children: [
|
|
23331
23431
|
/* @__PURE__ */ jsx31(Text26, { color: PALETTE.muted, bold: true, children: `source: ${headerPath}` }),
|
|
23332
23432
|
/* @__PURE__ */ jsx31(Text26, { color: PALETTE.muted, children: "(no source location captured for this prop)" }),
|
|
23333
23433
|
/* @__PURE__ */ jsx31(Text26, { children: "[s] close" })
|
|
23334
23434
|
] });
|
|
23335
23435
|
}
|
|
23336
23436
|
const lines = src.split("\n").slice(Math.max(0, start - 1), end2);
|
|
23337
|
-
return /* @__PURE__ */ jsxs25(
|
|
23437
|
+
return /* @__PURE__ */ jsxs25(Box25, { flexDirection: "column", borderStyle: "single", borderColor: "gray", paddingX: 1, children: [
|
|
23338
23438
|
/* @__PURE__ */ jsx31(Text26, { color: PALETTE.muted, bold: true, children: `${headerPath}: lines ${start}\u2013${end2}` }),
|
|
23339
23439
|
lines.map((ln, i) => /* @__PURE__ */ jsx31(Text26, { color: PALETTE.muted, children: ln }, `source-line-${i}`)),
|
|
23340
23440
|
/* @__PURE__ */ jsx31(Text26, { children: "[s] close \xB7 [Esc] close" })
|
|
23341
23441
|
] });
|
|
23342
23442
|
})(),
|
|
23343
|
-
showHelp && /* @__PURE__ */ jsxs25(
|
|
23443
|
+
showHelp && /* @__PURE__ */ jsxs25(Box25, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.accent, paddingX: 1, children: [
|
|
23344
23444
|
/* @__PURE__ */ jsx31(Text26, { bold: true, color: PALETTE.accent, children: "Keybindings" }),
|
|
23345
23445
|
/* @__PURE__ */ jsx31(Text26, { children: " " }),
|
|
23346
23446
|
/* @__PURE__ */ jsx31(Text26, { bold: true, children: "Row navigation" }),
|
|
@@ -23369,7 +23469,7 @@ function FieldEditor({
|
|
|
23369
23469
|
/* @__PURE__ */ jsx31(Text26, { color: PALETTE.muted, children: "press ? or Esc to close" })
|
|
23370
23470
|
] }),
|
|
23371
23471
|
validationError && /* @__PURE__ */ jsx31(Text26, { color: PALETTE.error, children: "\u2717 " + validationError }),
|
|
23372
|
-
/* @__PURE__ */ jsx31(
|
|
23472
|
+
/* @__PURE__ */ jsx31(Box25, { paddingTop: 1, children: /* @__PURE__ */ jsx31(Text26, { color: PALETTE.muted, children: modeLabel }) })
|
|
23373
23473
|
]
|
|
23374
23474
|
}
|
|
23375
23475
|
);
|
|
@@ -23379,7 +23479,7 @@ function FieldEditor({
|
|
|
23379
23479
|
import { Text as Text32 } from "ink";
|
|
23380
23480
|
|
|
23381
23481
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ComponentRationalePanel.tsx
|
|
23382
|
-
import { Box as
|
|
23482
|
+
import { Box as Box27, Text as Text28 } from "ink";
|
|
23383
23483
|
|
|
23384
23484
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/wrap-text.ts
|
|
23385
23485
|
function appendLongWordChunks(word, width, lines) {
|
|
@@ -23414,23 +23514,23 @@ function wrapText(text, innerWidth) {
|
|
|
23414
23514
|
}
|
|
23415
23515
|
|
|
23416
23516
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/RationaleLine.tsx
|
|
23417
|
-
import { Box as
|
|
23517
|
+
import { Box as Box26, Text as Text27 } from "ink";
|
|
23418
23518
|
import { jsx as jsx32, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
23419
23519
|
function RationaleLine({ line, active }) {
|
|
23420
23520
|
if (line.kind === "blank") {
|
|
23421
|
-
return /* @__PURE__ */ jsx32(
|
|
23521
|
+
return /* @__PURE__ */ jsx32(Box26, { children: /* @__PURE__ */ jsx32(Text27, { children: " " }) });
|
|
23422
23522
|
}
|
|
23423
23523
|
if (line.kind === "heading") {
|
|
23424
|
-
return /* @__PURE__ */ jsx32(
|
|
23524
|
+
return /* @__PURE__ */ jsx32(Box26, { children: /* @__PURE__ */ jsx32(Text27, { bold: true, color: active ? PALETTE.accent : PALETTE.muted, children: line.text }) });
|
|
23425
23525
|
}
|
|
23426
23526
|
if (line.kind === "label") {
|
|
23427
|
-
return /* @__PURE__ */ jsxs26(
|
|
23527
|
+
return /* @__PURE__ */ jsxs26(Box26, { children: [
|
|
23428
23528
|
line.prefix && /* @__PURE__ */ jsx32(Text27, { children: line.prefix }),
|
|
23429
23529
|
/* @__PURE__ */ jsx32(Text27, { bold: true, color: active ? line.color : PALETTE.muted, children: line.text }),
|
|
23430
23530
|
line.suffix && /* @__PURE__ */ jsx32(Text27, { color: PALETTE.muted, children: line.suffix })
|
|
23431
23531
|
] });
|
|
23432
23532
|
}
|
|
23433
|
-
return /* @__PURE__ */ jsx32(
|
|
23533
|
+
return /* @__PURE__ */ jsx32(Box26, { children: /* @__PURE__ */ jsx32(Text27, { color: !active || line.dim ? PALETTE.muted : void 0, children: line.text }) });
|
|
23434
23534
|
}
|
|
23435
23535
|
|
|
23436
23536
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ComponentRationalePanel.tsx
|
|
@@ -23503,7 +23603,7 @@ function ComponentRationalePanel({
|
|
|
23503
23603
|
const visibleStart = totalLines === 0 ? 0 : scrollOffset + 1;
|
|
23504
23604
|
const visibleEnd = Math.min(totalLines, scrollOffset + contentHeight);
|
|
23505
23605
|
return /* @__PURE__ */ jsxs27(
|
|
23506
|
-
|
|
23606
|
+
Box27,
|
|
23507
23607
|
{
|
|
23508
23608
|
flexDirection: "column",
|
|
23509
23609
|
width,
|
|
@@ -23511,16 +23611,16 @@ function ComponentRationalePanel({
|
|
|
23511
23611
|
borderStyle: "single",
|
|
23512
23612
|
borderColor: active ? PALETTE.text : void 0,
|
|
23513
23613
|
children: [
|
|
23514
|
-
/* @__PURE__ */ jsx33(
|
|
23614
|
+
/* @__PURE__ */ jsx33(Box27, { children: /* @__PURE__ */ jsx33(Text28, { bold: true, color: active ? void 0 : PALETTE.muted, children: `Component rationale: ${data.name}` }) }),
|
|
23515
23615
|
visible.map((line, i) => /* @__PURE__ */ jsx33(RationaleLine, { line, active }, i)),
|
|
23516
|
-
/* @__PURE__ */ jsx33(
|
|
23616
|
+
/* @__PURE__ */ jsx33(Box27, { children: overflowed ? /* @__PURE__ */ jsx33(Text28, { children: `${visibleStart}-${visibleEnd}/${totalLines} [\u2191\u2193] scroll [I/Esc] close` }) : /* @__PURE__ */ jsx33(Text28, { children: "[I/Esc] close" }) })
|
|
23517
23617
|
]
|
|
23518
23618
|
}
|
|
23519
23619
|
);
|
|
23520
23620
|
}
|
|
23521
23621
|
|
|
23522
23622
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/JsonPanel.tsx
|
|
23523
|
-
import { Box as
|
|
23623
|
+
import { Box as Box29 } from "ink";
|
|
23524
23624
|
|
|
23525
23625
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/HighlightedLine.tsx
|
|
23526
23626
|
import { Text as Text29 } from "ink";
|
|
@@ -23530,7 +23630,7 @@ function HighlightedLine({ parts }) {
|
|
|
23530
23630
|
}
|
|
23531
23631
|
|
|
23532
23632
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ScrollablePanel.tsx
|
|
23533
|
-
import { Box as
|
|
23633
|
+
import { Box as Box28, Text as Text30 } from "ink";
|
|
23534
23634
|
import { Fragment as Fragment8, jsx as jsx35, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
23535
23635
|
function ScrollablePanel({
|
|
23536
23636
|
title,
|
|
@@ -23544,11 +23644,11 @@ function ScrollablePanel({
|
|
|
23544
23644
|
children
|
|
23545
23645
|
}) {
|
|
23546
23646
|
const overflowed = totalLines > height;
|
|
23547
|
-
return /* @__PURE__ */ jsxs28(
|
|
23548
|
-
/* @__PURE__ */ jsxs28(
|
|
23647
|
+
return /* @__PURE__ */ jsxs28(Box28, { flexDirection: "column", width, height: height + 2, borderStyle: "single", borderColor, children: [
|
|
23648
|
+
/* @__PURE__ */ jsxs28(Box28, { children: [
|
|
23549
23649
|
/* @__PURE__ */ jsx35(Text30, { bold: true, color: active ? void 0 : PALETTE.muted, children: title }),
|
|
23550
23650
|
overflowed && /* @__PURE__ */ jsxs28(Fragment8, { children: [
|
|
23551
|
-
/* @__PURE__ */ jsx35(
|
|
23651
|
+
/* @__PURE__ */ jsx35(Box28, { flexGrow: 1 }),
|
|
23552
23652
|
/* @__PURE__ */ jsx35(Text30, { color: active ? void 0 : PALETTE.muted, children: `\u2195 ${visibleStart}-${visibleEnd}/${totalLines}` })
|
|
23553
23653
|
] })
|
|
23554
23654
|
] }),
|
|
@@ -23621,7 +23721,7 @@ function JsonPanel({ label, value, scrollOffset, width, height, active }) {
|
|
|
23621
23721
|
borderColor: active ? "white" : void 0,
|
|
23622
23722
|
children: visibleLines.map((line, i) => {
|
|
23623
23723
|
const truncated = truncateLine(line, innerWidth);
|
|
23624
|
-
return /* @__PURE__ */ jsx36(
|
|
23724
|
+
return /* @__PURE__ */ jsx36(Box29, { children: highlightJson(truncated) }, i);
|
|
23625
23725
|
})
|
|
23626
23726
|
}
|
|
23627
23727
|
);
|
|
@@ -23679,7 +23779,7 @@ function RationalePanel({
|
|
|
23679
23779
|
|
|
23680
23780
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/TokenReviewPanel.tsx
|
|
23681
23781
|
import figures7 from "figures";
|
|
23682
|
-
import { Box as
|
|
23782
|
+
import { Box as Box30, Text as Text31 } from "ink";
|
|
23683
23783
|
import { jsx as jsx38, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
23684
23784
|
function TokenReviewPanel({
|
|
23685
23785
|
componentName,
|
|
@@ -23700,7 +23800,7 @@ function TokenReviewPanel({
|
|
|
23700
23800
|
const visiblePaths = current.paths.slice(scrollStart, scrollStart + visibleCount);
|
|
23701
23801
|
const rangeLabel = current.paths.length === 0 ? "no compatible tokens" : `${scrollStart + 1}-${scrollStart + visiblePaths.length} of ${current.paths.length}`;
|
|
23702
23802
|
return /* @__PURE__ */ jsxs29(
|
|
23703
|
-
|
|
23803
|
+
Box30,
|
|
23704
23804
|
{
|
|
23705
23805
|
flexDirection: "column",
|
|
23706
23806
|
width,
|
|
@@ -23716,7 +23816,7 @@ function TokenReviewPanel({
|
|
|
23716
23816
|
const pathIndex = scrollStart + i;
|
|
23717
23817
|
const checked = editSelection.has(path5);
|
|
23718
23818
|
const focused = pathIndex === editCursor;
|
|
23719
|
-
return /* @__PURE__ */ jsx38(
|
|
23819
|
+
return /* @__PURE__ */ jsx38(Box30, { children: /* @__PURE__ */ jsx38(
|
|
23720
23820
|
Text31,
|
|
23721
23821
|
{
|
|
23722
23822
|
color: focused ? PALETTE.accent : active ? void 0 : PALETTE.muted,
|
|
@@ -23734,7 +23834,7 @@ function TokenReviewPanel({
|
|
|
23734
23834
|
);
|
|
23735
23835
|
}
|
|
23736
23836
|
return /* @__PURE__ */ jsxs29(
|
|
23737
|
-
|
|
23837
|
+
Box30,
|
|
23738
23838
|
{
|
|
23739
23839
|
flexDirection: "column",
|
|
23740
23840
|
width,
|
|
@@ -23746,8 +23846,8 @@ function TokenReviewPanel({
|
|
|
23746
23846
|
suggestions.length === 0 && /* @__PURE__ */ jsx38(Text31, { color: PALETTE.muted, children: "(no token suggestions for this component)" }),
|
|
23747
23847
|
suggestions.map((s, i) => {
|
|
23748
23848
|
const focused = i === selectedRow;
|
|
23749
|
-
return /* @__PURE__ */ jsxs29(
|
|
23750
|
-
/* @__PURE__ */ jsx38(
|
|
23849
|
+
return /* @__PURE__ */ jsxs29(Box30, { flexDirection: "column", children: [
|
|
23850
|
+
/* @__PURE__ */ jsx38(Box30, { children: /* @__PURE__ */ jsx38(Text31, { color: focused ? PALETTE.accent : active ? void 0 : PALETTE.muted, bold: focused, children: `${focused ? figures7.pointer : " "} ${s.propName}` }) }),
|
|
23751
23851
|
/* @__PURE__ */ jsx38(Text31, { color: PALETTE.muted, children: ` suggested: ${s.suggested.join(", ")}` }),
|
|
23752
23852
|
/* @__PURE__ */ jsx38(Text31, { color: PALETTE.muted, children: ` allowed: ${s.allowed.join(", ")}` })
|
|
23753
23853
|
] }, s.propName);
|
|
@@ -23989,7 +24089,7 @@ function ReviewEmptyComponentsWarning({
|
|
|
23989
24089
|
return /* @__PURE__ */ jsx41(Text33, { color: PALETTE.warning, children: `\u26A0 ${count} component${count === 1 ? "" : "s"} had no classifiable props \u2014 review with care` });
|
|
23990
24090
|
}
|
|
23991
24091
|
function ReviewNoSelection() {
|
|
23992
|
-
return /* @__PURE__ */ jsx41(
|
|
24092
|
+
return /* @__PURE__ */ jsx41(Box31, { flexGrow: 1, paddingLeft: 1, flexDirection: "column", children: /* @__PURE__ */ jsx41(Text33, { color: PALETTE.muted, children: "No component selected" }) });
|
|
23993
24093
|
}
|
|
23994
24094
|
function ReviewFinalizeError({
|
|
23995
24095
|
message,
|
|
@@ -24017,9 +24117,9 @@ function ReviewComponentTitle({
|
|
|
24017
24117
|
slotCount,
|
|
24018
24118
|
sidebarFocused
|
|
24019
24119
|
}) {
|
|
24020
|
-
return /* @__PURE__ */ jsxs31(
|
|
24120
|
+
return /* @__PURE__ */ jsxs31(Box31, { paddingLeft: 2, paddingBottom: 1, children: [
|
|
24021
24121
|
/* @__PURE__ */ jsx41(Text33, { bold: true, wrap: "truncate-end", children: selectedKey }),
|
|
24022
|
-
/* @__PURE__ */ jsx41(
|
|
24122
|
+
/* @__PURE__ */ jsx41(Box31, { flexGrow: 1 }),
|
|
24023
24123
|
/* @__PURE__ */ jsxs31(Text33, { color: PALETTE.muted, wrap: "truncate-end", children: [
|
|
24024
24124
|
propCount,
|
|
24025
24125
|
" prop",
|
|
@@ -24051,8 +24151,8 @@ function ReviewComponentPanel({
|
|
|
24051
24151
|
const slotCount = selectedEntry.$slots ? Object.keys(selectedEntry.$slots).length : 0;
|
|
24052
24152
|
const contentHeight = Math.max(1, height - 2);
|
|
24053
24153
|
const contentWidth = Math.max(1, width - 1);
|
|
24054
|
-
return /* @__PURE__ */ jsx41(FixedPanel, { width, height, borderStyle: void 0, paddingLeft: 1, children: /* @__PURE__ */ jsxs31(
|
|
24055
|
-
/* @__PURE__ */ jsx41(
|
|
24154
|
+
return /* @__PURE__ */ jsx41(FixedPanel, { width, height, borderStyle: void 0, paddingLeft: 1, children: /* @__PURE__ */ jsxs31(Box31, { flexDirection: "column", width: contentWidth, height, flexShrink: 0, overflowY: "hidden", children: [
|
|
24155
|
+
/* @__PURE__ */ jsx41(Box31, { width: contentWidth, height: contentHeight, flexShrink: 0, overflowY: "hidden", children: /* @__PURE__ */ jsx41(
|
|
24056
24156
|
ReviewDetailsEditor,
|
|
24057
24157
|
{
|
|
24058
24158
|
selectedKey,
|
|
@@ -24076,8 +24176,8 @@ function ReviewComponentPanel({
|
|
|
24076
24176
|
)
|
|
24077
24177
|
}
|
|
24078
24178
|
) }),
|
|
24079
|
-
/* @__PURE__ */ jsx41(
|
|
24080
|
-
/* @__PURE__ */ jsx41(
|
|
24179
|
+
/* @__PURE__ */ jsx41(Box31, { width: contentWidth, height: 1, flexShrink: 0, children: /* @__PURE__ */ jsx41(Text33, { color: saveError ? PALETTE.error : void 0, wrap: "truncate-end", children: saveError ? "\u2717 " + saveError : " " }) }),
|
|
24180
|
+
/* @__PURE__ */ jsx41(Box31, { width: contentWidth, height: 1, flexShrink: 0, children: /* @__PURE__ */ jsx41(Text33, { color: PALETTE.muted, wrap: "truncate-end", children: /* @__PURE__ */ jsx41(
|
|
24081
24181
|
ReviewPanelFooter,
|
|
24082
24182
|
{
|
|
24083
24183
|
reviewEditor,
|
|
@@ -24091,7 +24191,7 @@ function ReviewComponentPanel({
|
|
|
24091
24191
|
}
|
|
24092
24192
|
|
|
24093
24193
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ReviewStatus.tsx
|
|
24094
|
-
import { Box as
|
|
24194
|
+
import { Box as Box32, Text as Text34 } from "ink";
|
|
24095
24195
|
import { jsx as jsx42, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
24096
24196
|
function countReviewStatuses(entries) {
|
|
24097
24197
|
return entries.reduce(
|
|
@@ -24105,10 +24205,10 @@ function countReviewStatuses(entries) {
|
|
|
24105
24205
|
);
|
|
24106
24206
|
}
|
|
24107
24207
|
function ReviewLoadingState() {
|
|
24108
|
-
return /* @__PURE__ */ jsx42(
|
|
24208
|
+
return /* @__PURE__ */ jsx42(Box32, { paddingX: 2, paddingY: 1, children: /* @__PURE__ */ jsx42(Text34, { color: PALETTE.muted, children: "Loading generated definitions..." }) });
|
|
24109
24209
|
}
|
|
24110
24210
|
function ReviewLoadError({ message }) {
|
|
24111
|
-
return /* @__PURE__ */ jsxs32(
|
|
24211
|
+
return /* @__PURE__ */ jsxs32(Box32, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
24112
24212
|
/* @__PURE__ */ jsx42(Text34, { color: PALETTE.error, children: message }),
|
|
24113
24213
|
/* @__PURE__ */ jsx42(Text34, { children: " " }),
|
|
24114
24214
|
/* @__PURE__ */ jsx42(ControlHints, { hints: [{ keys: "q / Enter / Esc", label: "Quit" }] })
|
|
@@ -24311,7 +24411,7 @@ async function runLivePreview(opts) {
|
|
|
24311
24411
|
}
|
|
24312
24412
|
|
|
24313
24413
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/FinalizeDialog.tsx
|
|
24314
|
-
import { Box as
|
|
24414
|
+
import { Box as Box33, Text as Text35 } from "ink";
|
|
24315
24415
|
import { Fragment as Fragment11, jsx as jsx43, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
24316
24416
|
var FINALIZE_REMOVED_WINDOW = 6;
|
|
24317
24417
|
function FinalizeDialog({
|
|
@@ -24341,7 +24441,7 @@ function FinalizeDialog({
|
|
|
24341
24441
|
const windowed = removed.slice(offset, offset + FINALIZE_REMOVED_WINDOW);
|
|
24342
24442
|
const hasMoreBelow = offset + FINALIZE_REMOVED_WINDOW < removed.length;
|
|
24343
24443
|
const hasMoreAbove = offset > 0;
|
|
24344
|
-
return /* @__PURE__ */ jsx43(
|
|
24444
|
+
return /* @__PURE__ */ jsx43(Box33, { width: "100%", paddingX: 2, children: /* @__PURE__ */ jsxs33(Box33, { flexDirection: "column", alignItems: "flex-start", children: [
|
|
24345
24445
|
/* @__PURE__ */ jsx43(Text35, { bold: true, children: "Finalize" }),
|
|
24346
24446
|
/* @__PURE__ */ jsx43(Text35, { children: " " }),
|
|
24347
24447
|
/* @__PURE__ */ jsxs33(Text35, { children: [
|
|
@@ -24371,7 +24471,7 @@ function FinalizeDialog({
|
|
|
24371
24471
|
/* @__PURE__ */ jsx43(Text35, { color: PALETTE.warning, children: "Only explicitly accepted components ship." }),
|
|
24372
24472
|
/* @__PURE__ */ jsx43(Text35, { children: " " })
|
|
24373
24473
|
] }),
|
|
24374
|
-
/* @__PURE__ */ jsxs33(
|
|
24474
|
+
/* @__PURE__ */ jsxs33(Box33, { flexDirection: "column", height: 2, children: [
|
|
24375
24475
|
previewStatus === "running" ? /* @__PURE__ */ jsx43(Text35, { color: PALETTE.muted, children: "Previewing deletions against the target space\u2026" }) : previewStatus === "error" ? /* @__PURE__ */ jsx43(Text35, { color: PALETTE.warning, children: "\u26A0 Could not preview deletions (the push will still proceed)." }) : /* @__PURE__ */ jsx43(Text35, { children: " " }),
|
|
24376
24476
|
/* @__PURE__ */ jsx43(Text35, { children: " " })
|
|
24377
24477
|
] }),
|
|
@@ -24798,10 +24898,10 @@ function useReviewSurfaceState(initialFinalizeError = null) {
|
|
|
24798
24898
|
}
|
|
24799
24899
|
|
|
24800
24900
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/ReviewDialogs.tsx
|
|
24801
|
-
import { Box as
|
|
24901
|
+
import { Box as Box35, Text as Text37 } from "ink";
|
|
24802
24902
|
|
|
24803
24903
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/QuitDialog.tsx
|
|
24804
|
-
import { Box as
|
|
24904
|
+
import { Box as Box34, Text as Text36 } from "ink";
|
|
24805
24905
|
import { Fragment as Fragment12, jsx as jsx44, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
24806
24906
|
function QuitDialog({ hasUnsavedDrafts, onConfirm, onCancel }) {
|
|
24807
24907
|
useImmediateInput((input, key) => {
|
|
@@ -24811,7 +24911,7 @@ function QuitDialog({ hasUnsavedDrafts, onConfirm, onCancel }) {
|
|
|
24811
24911
|
onCancel();
|
|
24812
24912
|
}
|
|
24813
24913
|
});
|
|
24814
|
-
return /* @__PURE__ */ jsxs34(
|
|
24914
|
+
return /* @__PURE__ */ jsxs34(Box34, { flexDirection: "column", borderStyle: "round", padding: 1, width: 50, children: [
|
|
24815
24915
|
/* @__PURE__ */ jsx44(Text36, { bold: true, children: "\u2500".repeat(19) + " Quit " + "\u2500".repeat(19) }),
|
|
24816
24916
|
/* @__PURE__ */ jsx44(Text36, { children: " " }),
|
|
24817
24917
|
hasUnsavedDrafts ? /* @__PURE__ */ jsxs34(Fragment12, { children: [
|
|
@@ -24889,7 +24989,7 @@ function ReviewStepDialogs({
|
|
|
24889
24989
|
}
|
|
24890
24990
|
function ReviewReloadDialog({ open }) {
|
|
24891
24991
|
if (!open) return null;
|
|
24892
|
-
return /* @__PURE__ */ jsxs35(
|
|
24992
|
+
return /* @__PURE__ */ jsxs35(Box35, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, children: [
|
|
24893
24993
|
/* @__PURE__ */ jsx45(Text37, { bold: true, color: PALETTE.warning, children: "Reload from saved state?" }),
|
|
24894
24994
|
/* @__PURE__ */ jsx45(Text37, { children: "Unsaved in-memory changes will be lost." }),
|
|
24895
24995
|
/* @__PURE__ */ jsx45(Text37, { children: " " }),
|
|
@@ -25261,7 +25361,7 @@ function useReviewPreview({
|
|
|
25261
25361
|
}
|
|
25262
25362
|
|
|
25263
25363
|
// packages/experience-design-system-cli/src/tui/import/steps/09-review/components/LivePreviewSummary.tsx
|
|
25264
|
-
import { Box as
|
|
25364
|
+
import { Box as Box36, Text as Text38 } from "ink";
|
|
25265
25365
|
import { jsx as jsx46, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
25266
25366
|
function LivePreviewSummary({
|
|
25267
25367
|
enabled,
|
|
@@ -25279,7 +25379,7 @@ function LivePreviewSummary({
|
|
|
25279
25379
|
if (disabled) return /* @__PURE__ */ jsx46(Text38, { color: PALETTE.muted, children: "Preview: disabled (creds rejected)" });
|
|
25280
25380
|
if (status === "running" && !hasCounts) return /* @__PURE__ */ jsx46(Text38, { color: PALETTE.muted, children: `Preview: ${spinner} running...` });
|
|
25281
25381
|
if (!hasCounts) return null;
|
|
25282
|
-
return /* @__PURE__ */ jsxs36(
|
|
25382
|
+
return /* @__PURE__ */ jsxs36(Box36, { children: [
|
|
25283
25383
|
/* @__PURE__ */ jsx46(Text38, { children: "Preview: " }),
|
|
25284
25384
|
/* @__PURE__ */ jsx46(Text38, { color: PALETTE.success, children: `${counts.new} new` }),
|
|
25285
25385
|
/* @__PURE__ */ jsx46(Text38, { children: " \xB7 " }),
|
|
@@ -25497,7 +25597,7 @@ function deriveBreakingChanges(response) {
|
|
|
25497
25597
|
}
|
|
25498
25598
|
function GenerateReviewStep(props) {
|
|
25499
25599
|
if (!props.extractSessionId) {
|
|
25500
|
-
return /* @__PURE__ */ jsx47(
|
|
25600
|
+
return /* @__PURE__ */ jsx47(Box37, { paddingX: 2, paddingY: 1, children: /* @__PURE__ */ jsx47(Text39, { color: PALETTE.error, children: "Error: no session ID \u2014 cannot load generated definitions." }) });
|
|
25501
25601
|
}
|
|
25502
25602
|
return /* @__PURE__ */ jsx47(GenerateReviewStepView, { ...props, extractSessionId: props.extractSessionId });
|
|
25503
25603
|
}
|
|
@@ -26402,7 +26502,7 @@ function GenerateReviewStepView({
|
|
|
26402
26502
|
for (const c2 of closures.values()) if (c2.nodes.length > 1) return true;
|
|
26403
26503
|
return false;
|
|
26404
26504
|
})();
|
|
26405
|
-
return /* @__PURE__ */ jsxs37(
|
|
26505
|
+
return /* @__PURE__ */ jsxs37(Box37, { flexDirection: "column", children: [
|
|
26406
26506
|
/* @__PURE__ */ jsx47(StepHeader, { step: "review" }),
|
|
26407
26507
|
/* @__PURE__ */ jsx47(
|
|
26408
26508
|
ReviewStepDialogs,
|
|
@@ -26415,14 +26515,14 @@ function GenerateReviewStepView({
|
|
|
26415
26515
|
}
|
|
26416
26516
|
),
|
|
26417
26517
|
/* @__PURE__ */ jsx47(ReviewReloadDialog, { open: showReloadDialog && !dialogOpen }),
|
|
26418
|
-
removedComponents.length > 0 && !dialogOpen && /* @__PURE__ */ jsxs37(
|
|
26518
|
+
removedComponents.length > 0 && !dialogOpen && /* @__PURE__ */ jsxs37(Box37, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.error, paddingX: 1, children: [
|
|
26419
26519
|
/* @__PURE__ */ jsx47(Text39, { bold: true, color: PALETTE.error, children: removedComponentsHeader(removedComponents.length, true) }),
|
|
26420
26520
|
!removedBannerCollapsed && /* @__PURE__ */ jsxs37(Fragment14, { children: [
|
|
26421
26521
|
/* @__PURE__ */ jsx47(Text39, { children: " " }),
|
|
26422
26522
|
removedComponents.map((rc) => /* @__PURE__ */ jsx47(Text39, { children: removedComponentLine(rc) }, rc.id))
|
|
26423
26523
|
] })
|
|
26424
26524
|
] }),
|
|
26425
|
-
breakingChanges.length > 0 && !dialogOpen && /* @__PURE__ */ jsx47(
|
|
26525
|
+
breakingChanges.length > 0 && !dialogOpen && /* @__PURE__ */ jsx47(Box37, { paddingX: 1, children: /* @__PURE__ */ jsx47(
|
|
26426
26526
|
Text39,
|
|
26427
26527
|
{
|
|
26428
26528
|
color: PALETTE.warning,
|
|
@@ -26433,7 +26533,7 @@ function GenerateReviewStepView({
|
|
|
26433
26533
|
const row = breakingRows[breakingCursor];
|
|
26434
26534
|
const comp = row ? breakingChanges.find((b) => b.componentName === row.componentName) : void 0;
|
|
26435
26535
|
if (!comp) return null;
|
|
26436
|
-
return /* @__PURE__ */ jsxs37(
|
|
26536
|
+
return /* @__PURE__ */ jsxs37(Box37, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, children: [
|
|
26437
26537
|
/* @__PURE__ */ jsx47(Text39, { bold: true, color: PALETTE.warning, children: `Breaking changes \u2014 ${comp.componentName}` }),
|
|
26438
26538
|
comp.impact && /* @__PURE__ */ jsx47(Text39, { color: PALETTE.muted, children: ` affects ${comp.impact.affectedExperiences} experience${comp.impact.affectedExperiences === 1 ? "" : "s"}, ${comp.impact.affectedFragments} fragment${comp.impact.affectedFragments === 1 ? "" : "s"}` }),
|
|
26439
26539
|
comp.changes.length === 0 ? /* @__PURE__ */ jsx47(Text39, { color: PALETTE.muted, children: " (no enumerated changes)" }) : comp.changes.map((change, ci) => /* @__PURE__ */ jsx47(Text39, { children: ` \u2022 ${formatBreakingChange(change, comp.current)}` }, `bd-detail-${ci}`)),
|
|
@@ -26459,7 +26559,7 @@ function GenerateReviewStepView({
|
|
|
26459
26559
|
const participantSet = cycleView.structural;
|
|
26460
26560
|
const members = stillRejected.filter((n) => participantSet.has(n)).sort();
|
|
26461
26561
|
const ancestors = stillRejected.filter((n) => !participantSet.has(n)).sort();
|
|
26462
|
-
return /* @__PURE__ */ jsxs37(
|
|
26562
|
+
return /* @__PURE__ */ jsxs37(Box37, { flexDirection: "column", borderStyle: "single", borderColor: PALETTE.error, paddingX: 1, children: [
|
|
26463
26563
|
/* @__PURE__ */ jsx47(Text39, { color: PALETTE.error, bold: true, children: `Cyclic component graph \u2014 auto-rejected ${stillRejected.length} component${stillRejected.length === 1 ? "" : "s"}:` }),
|
|
26464
26564
|
members.length > 0 && /* @__PURE__ */ jsx47(Text39, { color: PALETTE.error, children: ` Cycle members: ${members.join(", ")}` }),
|
|
26465
26565
|
ancestors.length > 0 && /* @__PURE__ */ jsx47(Text39, { color: PALETTE.error, children: ` Ancestors: ${ancestors.join(", ")}` }),
|
|
@@ -26489,7 +26589,7 @@ function GenerateReviewStepView({
|
|
|
26489
26589
|
height: panelHeight
|
|
26490
26590
|
}
|
|
26491
26591
|
),
|
|
26492
|
-
!dialogOpen && !cyclePanel.isOpen && !breakPanel.isOpen && /* @__PURE__ */ jsxs37(
|
|
26592
|
+
!dialogOpen && !cyclePanel.isOpen && !breakPanel.isOpen && /* @__PURE__ */ jsxs37(Box37, { children: [
|
|
26493
26593
|
breakingPanel.isOpen ? /* @__PURE__ */ jsx47(
|
|
26494
26594
|
GotoBanner,
|
|
26495
26595
|
{
|
|
@@ -26578,7 +26678,7 @@ function GenerateReviewStepView({
|
|
|
26578
26678
|
}
|
|
26579
26679
|
) : /* @__PURE__ */ jsx47(ReviewNoSelection, {})
|
|
26580
26680
|
] }),
|
|
26581
|
-
!dialogOpen && cycleRows.length > 0 && !cyclePanel.isOpen && !breakPanel.isOpen && /* @__PURE__ */ jsxs37(
|
|
26681
|
+
!dialogOpen && cycleRows.length > 0 && !cyclePanel.isOpen && !breakPanel.isOpen && /* @__PURE__ */ jsxs37(Box37, { flexDirection: "column", children: [
|
|
26582
26682
|
/* @__PURE__ */ jsx47(Text39, { color: PALETTE.warning, children: `\u26A0 ${cycleRows.length} slot dependency cycle${cycleRows.length === 1 ? "" : "s"} detected \u2014 push will fail` }),
|
|
26583
26683
|
cycleRows.slice(0, 3).map((cycle, idx) => {
|
|
26584
26684
|
return /* @__PURE__ */ jsx47(
|
|
@@ -26611,11 +26711,11 @@ function GenerateReviewStepView({
|
|
|
26611
26711
|
}
|
|
26612
26712
|
|
|
26613
26713
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/components/CustomPromptBanner.tsx
|
|
26614
|
-
import { Box as
|
|
26714
|
+
import { Box as Box38, Text as Text40 } from "ink";
|
|
26615
26715
|
import { jsx as jsx48, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
26616
26716
|
function CustomPromptBanner({ generatePromptPath }) {
|
|
26617
26717
|
if (!generatePromptPath) return null;
|
|
26618
|
-
return /* @__PURE__ */ jsxs38(
|
|
26718
|
+
return /* @__PURE__ */ jsxs38(Box38, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.warning, paddingX: 1, children: [
|
|
26619
26719
|
/* @__PURE__ */ jsx48(Text40, { color: PALETTE.warning, bold: true, children: "WARNING: Custom prompt active" }),
|
|
26620
26720
|
generatePromptPath ? /* @__PURE__ */ jsxs38(Text40, { color: PALETTE.warning, children: [
|
|
26621
26721
|
"components: ",
|
|
@@ -26626,7 +26726,7 @@ function CustomPromptBanner({ generatePromptPath }) {
|
|
|
26626
26726
|
}
|
|
26627
26727
|
|
|
26628
26728
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/screens/DoneStep.tsx
|
|
26629
|
-
import { Box as
|
|
26729
|
+
import { Box as Box40, Text as Text42 } from "ink";
|
|
26630
26730
|
|
|
26631
26731
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/support/contentful-urls.ts
|
|
26632
26732
|
function normalizeHost(host) {
|
|
@@ -26642,10 +26742,10 @@ function buildPostPushUrl2({ host, spaceId, environmentId, view = "components" }
|
|
|
26642
26742
|
}
|
|
26643
26743
|
|
|
26644
26744
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/components/SpaceEnvironment.tsx
|
|
26645
|
-
import { Box as
|
|
26745
|
+
import { Box as Box39, Text as Text41 } from "ink";
|
|
26646
26746
|
import { jsx as jsx49, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
26647
26747
|
function SpaceEnvironment({ spaceId, environmentId }) {
|
|
26648
|
-
return /* @__PURE__ */ jsxs39(
|
|
26748
|
+
return /* @__PURE__ */ jsxs39(Box39, { gap: 1, marginTop: 1, children: [
|
|
26649
26749
|
/* @__PURE__ */ jsx49(Text41, { color: PALETTE.muted, children: "Space:" }),
|
|
26650
26750
|
/* @__PURE__ */ jsx49(Text41, { children: spaceId }),
|
|
26651
26751
|
/* @__PURE__ */ jsx49(Text41, { color: PALETTE.muted, children: "/" }),
|
|
@@ -26675,7 +26775,7 @@ function EntityRows({ entity, label }) {
|
|
|
26675
26775
|
] });
|
|
26676
26776
|
}
|
|
26677
26777
|
function LinkRow({ title, url }) {
|
|
26678
|
-
return /* @__PURE__ */ jsxs40(
|
|
26778
|
+
return /* @__PURE__ */ jsxs40(Box40, { flexDirection: "column", children: [
|
|
26679
26779
|
/* @__PURE__ */ jsx50(Text42, { color: PALETTE.muted, children: title }),
|
|
26680
26780
|
/* @__PURE__ */ jsx50(Text42, { color: PALETTE.accent, children: url })
|
|
26681
26781
|
] });
|
|
@@ -26701,14 +26801,14 @@ function DoneStep({
|
|
|
26701
26801
|
const totalPushed = componentTypes.created + componentTypes.updated + componentTypes.removed + designTokens.created + designTokens.updated + designTokens.removed;
|
|
26702
26802
|
const success = totalFailed === 0;
|
|
26703
26803
|
const urlArgs = { host: host ?? "api.contentful.com", spaceId, environmentId };
|
|
26704
|
-
return /* @__PURE__ */ jsxs40(
|
|
26804
|
+
return /* @__PURE__ */ jsxs40(Box40, { flexDirection: "column", children: [
|
|
26705
26805
|
/* @__PURE__ */ jsx50(StepHeader, { step: "done" }),
|
|
26706
|
-
/* @__PURE__ */ jsxs40(
|
|
26806
|
+
/* @__PURE__ */ jsxs40(Box40, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 1, children: [
|
|
26707
26807
|
success ? /* @__PURE__ */ jsx50(Text42, { bold: true, color: PALETTE.success, children: "Done!" }) : /* @__PURE__ */ jsx50(Text42, { bold: true, color: PALETTE.warning, children: "\u26A0 Finished with errors" }),
|
|
26708
|
-
totalPushed === 0 && totalFailed === 0 && !summary ? /* @__PURE__ */ jsx50(Text42, { color: PALETTE.muted, children: credentialsSkipped ? "Nothing was pushed \u2014 you skipped the Contentful credentials, so the files were only saved locally." : "Nothing was pushed \u2014 everything was already up to date." }) : /* @__PURE__ */ jsxs40(
|
|
26709
|
-
/* @__PURE__ */ jsx50(EntityRows, { entity: componentTypes, label: "Component
|
|
26808
|
+
totalPushed === 0 && totalFailed === 0 && !summary ? /* @__PURE__ */ jsx50(Text42, { color: PALETTE.muted, children: credentialsSkipped ? "Nothing was pushed \u2014 you skipped the Contentful credentials, so the files were only saved locally." : "Nothing was pushed \u2014 everything was already up to date." }) : /* @__PURE__ */ jsxs40(Box40, { flexDirection: "column", children: [
|
|
26809
|
+
/* @__PURE__ */ jsx50(EntityRows, { entity: componentTypes, label: "Component" }),
|
|
26710
26810
|
/* @__PURE__ */ jsx50(EntityRows, { entity: designTokens, label: "Design Token" }),
|
|
26711
|
-
summary && /* @__PURE__ */ jsx50(
|
|
26811
|
+
summary && /* @__PURE__ */ jsx50(Box40, { marginTop: 1, children: /* @__PURE__ */ jsxs40(Text42, { color: PALETTE.muted, children: [
|
|
26712
26812
|
"Push result: ",
|
|
26713
26813
|
summary.succeeded,
|
|
26714
26814
|
"/",
|
|
@@ -26721,7 +26821,7 @@ function DoneStep({
|
|
|
26721
26821
|
] })
|
|
26722
26822
|
] }) })
|
|
26723
26823
|
] }),
|
|
26724
|
-
failures.length > 0 && /* @__PURE__ */ jsxs40(
|
|
26824
|
+
failures.length > 0 && /* @__PURE__ */ jsxs40(Box40, { flexDirection: "column", children: [
|
|
26725
26825
|
/* @__PURE__ */ jsx50(Text42, { bold: true, color: PALETTE.error, children: "Failure details" }),
|
|
26726
26826
|
failures.map((failure) => /* @__PURE__ */ jsxs40(Text42, { color: PALETTE.error, children: [
|
|
26727
26827
|
failure.entityType,
|
|
@@ -26732,7 +26832,7 @@ function DoneStep({
|
|
|
26732
26832
|
] }, `${failure.entityType}:${failure.entityId}`))
|
|
26733
26833
|
] }),
|
|
26734
26834
|
/* @__PURE__ */ jsx50(SpaceEnvironment, { spaceId, environmentId }),
|
|
26735
|
-
success && totalPushed > 0 && /* @__PURE__ */ jsxs40(
|
|
26835
|
+
success && totalPushed > 0 && /* @__PURE__ */ jsxs40(Box40, { flexDirection: "column", gap: 1, children: [
|
|
26736
26836
|
/* @__PURE__ */ jsx50(Text42, { color: PALETTE.success, children: "Your design system is now in Contentful Experiences." }),
|
|
26737
26837
|
produced.components && /* @__PURE__ */ jsx50(LinkRow, { title: "View your components here:", url: buildPostPushUrl2(urlArgs) }),
|
|
26738
26838
|
produced.tokens && /* @__PURE__ */ jsx50(
|
|
@@ -26750,7 +26850,7 @@ function DoneStep({
|
|
|
26750
26850
|
|
|
26751
26851
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/screens/PathPrompt.tsx
|
|
26752
26852
|
import { useState as useState27 } from "react";
|
|
26753
|
-
import { Box as
|
|
26853
|
+
import { Box as Box41, Text as Text43 } from "ink";
|
|
26754
26854
|
import { readdirSync as readdirSync3 } from "node:fs";
|
|
26755
26855
|
import { dirname as dirname15, basename as basename6, join as join20 } from "node:path";
|
|
26756
26856
|
|
|
@@ -26841,10 +26941,10 @@ function PathPrompt({
|
|
|
26841
26941
|
const shown = input || defaultPath;
|
|
26842
26942
|
const isPlaceholder = input === "";
|
|
26843
26943
|
const cursor = cursorVisible ? "\u2588" : " ";
|
|
26844
|
-
return /* @__PURE__ */ jsxs41(
|
|
26944
|
+
return /* @__PURE__ */ jsxs41(Box41, { flexDirection: "column", children: [
|
|
26845
26945
|
/* @__PURE__ */ jsx51(StepHeader, { step: "push" }),
|
|
26846
|
-
/* @__PURE__ */ jsxs41(
|
|
26847
|
-
/* @__PURE__ */ jsxs41(
|
|
26946
|
+
/* @__PURE__ */ jsxs41(Box41, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 1, children: [
|
|
26947
|
+
/* @__PURE__ */ jsxs41(Box41, { gap: 1, children: [
|
|
26848
26948
|
/* @__PURE__ */ jsx51(Text43, { color: PALETTE.accent, children: "?" }),
|
|
26849
26949
|
/* @__PURE__ */ jsxs41(Text43, { bold: true, children: [
|
|
26850
26950
|
label,
|
|
@@ -26868,7 +26968,7 @@ function PathPrompt({
|
|
|
26868
26968
|
}
|
|
26869
26969
|
|
|
26870
26970
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/screens/PushingStep.tsx
|
|
26871
|
-
import { Box as
|
|
26971
|
+
import { Box as Box42, Text as Text44 } from "ink";
|
|
26872
26972
|
import { ProgressBar as ProgressBar2, ThemeProvider as ThemeProvider2 } from "@inkjs/ui";
|
|
26873
26973
|
|
|
26874
26974
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/support/produced.ts
|
|
@@ -26910,20 +27010,20 @@ function PushingStep({ progress, produced }) {
|
|
|
26910
27010
|
const operationId = progress && progress.kind === "queued" ? progress.operationId : null;
|
|
26911
27011
|
const showGlobal = progress && progress.kind === "progress";
|
|
26912
27012
|
const showCurrent = progress && progress.kind === "progress" && progress.current ? progress.current : null;
|
|
26913
|
-
return /* @__PURE__ */ jsxs42(
|
|
27013
|
+
return /* @__PURE__ */ jsxs42(Box42, { flexDirection: "column", children: [
|
|
26914
27014
|
/* @__PURE__ */ jsx53(StepHeader, { step: "push" }),
|
|
26915
|
-
/* @__PURE__ */ jsxs42(
|
|
27015
|
+
/* @__PURE__ */ jsxs42(Box42, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 1, children: [
|
|
26916
27016
|
/* @__PURE__ */ jsxs42(Text44, { children: [
|
|
26917
27017
|
"Writing ",
|
|
26918
27018
|
writtenThings(produced),
|
|
26919
27019
|
" to your Contentful space..."
|
|
26920
27020
|
] }),
|
|
26921
|
-
operationId && /* @__PURE__ */ jsxs42(
|
|
27021
|
+
operationId && /* @__PURE__ */ jsxs42(Box42, { gap: 1, children: [
|
|
26922
27022
|
/* @__PURE__ */ jsx53(Text44, { color: PALETTE.muted, children: "Operation:" }),
|
|
26923
27023
|
/* @__PURE__ */ jsx53(Text44, { children: operationId })
|
|
26924
27024
|
] }),
|
|
26925
|
-
showGlobal && progress && progress.kind === "progress" && /* @__PURE__ */ jsx53(
|
|
26926
|
-
/* @__PURE__ */ jsx53(
|
|
27025
|
+
showGlobal && progress && progress.kind === "progress" && /* @__PURE__ */ jsx53(Box42, { gap: 1, flexDirection: "column", children: /* @__PURE__ */ jsxs42(Box42, { gap: 2, children: [
|
|
27026
|
+
/* @__PURE__ */ jsx53(Box42, { width: 40, children: /* @__PURE__ */ jsx53(ThemeProvider2, { theme: PROGRESS_THEME, children: /* @__PURE__ */ jsx53(ProgressBar2, { value: Math.round(progress.processed / progress.total * 100) }) }) }),
|
|
26927
27027
|
/* @__PURE__ */ jsxs42(Text44, { color: PALETTE.muted, children: [
|
|
26928
27028
|
progress.processed,
|
|
26929
27029
|
"/",
|
|
@@ -26931,11 +27031,11 @@ function PushingStep({ progress, produced }) {
|
|
|
26931
27031
|
" entities"
|
|
26932
27032
|
] })
|
|
26933
27033
|
] }) }),
|
|
26934
|
-
showCurrent && /* @__PURE__ */ jsxs42(
|
|
27034
|
+
showCurrent && /* @__PURE__ */ jsxs42(Box42, { gap: 1, children: [
|
|
26935
27035
|
/* @__PURE__ */ jsx53(Text44, { color: PALETTE.muted, children: "Now processing:" }),
|
|
26936
27036
|
/* @__PURE__ */ jsx53(Text44, { children: showCurrent })
|
|
26937
27037
|
] }),
|
|
26938
|
-
/* @__PURE__ */ jsx53(
|
|
27038
|
+
/* @__PURE__ */ jsx53(Box42, { marginTop: 1, children: /* @__PURE__ */ jsxs42(Text44, { color: PALETTE.muted, children: [
|
|
26939
27039
|
"Elapsed: ",
|
|
26940
27040
|
elapsed
|
|
26941
27041
|
] }) })
|
|
@@ -26945,7 +27045,7 @@ function PushingStep({ progress, produced }) {
|
|
|
26945
27045
|
|
|
26946
27046
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/screens/WizardPreviewStep.tsx
|
|
26947
27047
|
import { useEffect as useEffect20, useState as useState29, useMemo as useMemo5 } from "react";
|
|
26948
|
-
import { Box as
|
|
27048
|
+
import { Box as Box43, Text as Text45 } from "ink";
|
|
26949
27049
|
|
|
26950
27050
|
// packages/experience-design-system-cli/src/tui/import/steps/10-flow/support/preview-diff.ts
|
|
26951
27051
|
function computeComponentDiffLines(current, proposed, changeClassification) {
|
|
@@ -27375,9 +27475,9 @@ function WizardPreviewStep({
|
|
|
27375
27475
|
return;
|
|
27376
27476
|
}
|
|
27377
27477
|
});
|
|
27378
|
-
return /* @__PURE__ */ jsxs43(
|
|
27478
|
+
return /* @__PURE__ */ jsxs43(Box43, { flexDirection: "column", children: [
|
|
27379
27479
|
/* @__PURE__ */ jsx54(StepHeader, { step: "push" }),
|
|
27380
|
-
/* @__PURE__ */ jsxs43(
|
|
27480
|
+
/* @__PURE__ */ jsxs43(Box43, { flexDirection: "column", gap: 1, paddingX: 2, paddingBottom: 2, children: [
|
|
27381
27481
|
hasAnything ? /* @__PURE__ */ jsxs43(Fragment16, { children: [
|
|
27382
27482
|
/* @__PURE__ */ jsx54(Text45, { children: "Here's what will happen in your space:" }),
|
|
27383
27483
|
/* @__PURE__ */ jsxs43(
|
|
@@ -27394,9 +27494,9 @@ function WizardPreviewStep({
|
|
|
27394
27494
|
}
|
|
27395
27495
|
)
|
|
27396
27496
|
] }) : /* @__PURE__ */ jsx54(Text45, { color: PALETTE.muted, children: "Nothing to push \u2014 everything is already up to date." }),
|
|
27397
|
-
breakingWithImpact && /* @__PURE__ */ jsx54(
|
|
27497
|
+
breakingWithImpact && /* @__PURE__ */ jsx54(Box43, { marginTop: 1, children: /* @__PURE__ */ jsx54(Text45, { color: PALETTE.error, bold: true, children: "\u26A0 Breaking changes will affect downstream entities. Press Enter to acknowledge and apply." }) }),
|
|
27398
27498
|
/* @__PURE__ */ jsx54(SpaceEnvironment, { spaceId, environmentId }),
|
|
27399
|
-
/* @__PURE__ */ jsx54(
|
|
27499
|
+
/* @__PURE__ */ jsx54(Box43, { marginTop: 1, children: /* @__PURE__ */ jsx54(
|
|
27400
27500
|
ControlHints,
|
|
27401
27501
|
{
|
|
27402
27502
|
hints: [
|
|
@@ -27539,7 +27639,7 @@ function FlowScreen({
|
|
|
27539
27639
|
);
|
|
27540
27640
|
}
|
|
27541
27641
|
})();
|
|
27542
|
-
return /* @__PURE__ */ jsxs44(
|
|
27642
|
+
return /* @__PURE__ */ jsxs44(Box44, { flexDirection: "column", children: [
|
|
27543
27643
|
/* @__PURE__ */ jsx55(CustomPromptBanner, { generatePromptPath }),
|
|
27544
27644
|
content
|
|
27545
27645
|
] });
|
|
@@ -28313,7 +28413,7 @@ function useFlow(start, options = {}) {
|
|
|
28313
28413
|
|
|
28314
28414
|
// packages/experience-design-system-cli/src/tui/help/PageContainer.tsx
|
|
28315
28415
|
import { useEffect as useEffect22, useState as useState30 } from "react";
|
|
28316
|
-
import { Box as
|
|
28416
|
+
import { Box as Box45, Text as Text46, useInput as useInput12 } from "ink";
|
|
28317
28417
|
init_debug_store();
|
|
28318
28418
|
|
|
28319
28419
|
// packages/experience-design-system-cli/src/tui/help/help-info.ts
|
|
@@ -28376,10 +28476,10 @@ async function readHelpInfo() {
|
|
|
28376
28476
|
// packages/experience-design-system-cli/src/tui/help/PageContainer.tsx
|
|
28377
28477
|
import { Fragment as Fragment17, jsx as jsx56, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
28378
28478
|
function Section({ title, rows }) {
|
|
28379
|
-
return /* @__PURE__ */ jsxs45(
|
|
28479
|
+
return /* @__PURE__ */ jsxs45(Box45, { flexDirection: "column", children: [
|
|
28380
28480
|
/* @__PURE__ */ jsx56(Text46, { bold: true, color: PALETTE.accent, children: title }),
|
|
28381
|
-
rows.map((row) => /* @__PURE__ */ jsxs45(
|
|
28382
|
-
/* @__PURE__ */ jsx56(
|
|
28481
|
+
rows.map((row) => /* @__PURE__ */ jsxs45(Box45, { gap: 1, children: [
|
|
28482
|
+
/* @__PURE__ */ jsx56(Box45, { width: 16, flexShrink: 0, children: /* @__PURE__ */ jsx56(Text46, { color: PALETTE.muted, children: row.label }) }),
|
|
28383
28483
|
/* @__PURE__ */ jsx56(Text46, { children: row.value })
|
|
28384
28484
|
] }, row.label))
|
|
28385
28485
|
] });
|
|
@@ -28394,7 +28494,7 @@ function HelpScreen({ onDone }) {
|
|
|
28394
28494
|
void finishDebugRun({ outputs: {}, status: "success", exitMethod });
|
|
28395
28495
|
onDone();
|
|
28396
28496
|
};
|
|
28397
|
-
|
|
28497
|
+
useInput12((input, key) => {
|
|
28398
28498
|
if (key.return) {
|
|
28399
28499
|
leave("saved");
|
|
28400
28500
|
return;
|
|
@@ -28404,7 +28504,7 @@ function HelpScreen({ onDone }) {
|
|
|
28404
28504
|
return;
|
|
28405
28505
|
}
|
|
28406
28506
|
});
|
|
28407
|
-
return /* @__PURE__ */ jsxs45(
|
|
28507
|
+
return /* @__PURE__ */ jsxs45(Box45, { flexDirection: "column", paddingX: 2, paddingY: 1, gap: 1, children: [
|
|
28408
28508
|
/* @__PURE__ */ jsx56(Text46, { bold: true, children: "Help" }),
|
|
28409
28509
|
info ? /* @__PURE__ */ jsxs45(Fragment17, { children: [
|
|
28410
28510
|
/* @__PURE__ */ jsx56(Section, { title: "Where things are stored", rows: info.storage }),
|
|
@@ -28425,7 +28525,7 @@ function HelpScreen({ onDone }) {
|
|
|
28425
28525
|
|
|
28426
28526
|
// packages/experience-design-system-cli/src/tui/settings/PageContainer.tsx
|
|
28427
28527
|
import { useState as useState31 } from "react";
|
|
28428
|
-
import { Box as
|
|
28528
|
+
import { Box as Box46, Text as Text47, useInput as useInput13 } from "ink";
|
|
28429
28529
|
import { jsx as jsx57, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
28430
28530
|
function SettingsScreen({
|
|
28431
28531
|
onNavigate,
|
|
@@ -28437,7 +28537,7 @@ function SettingsScreen({
|
|
|
28437
28537
|
{ label: "Opt-in Analytics", screen: "settings-opt-in-analytics" },
|
|
28438
28538
|
{ label: "Debug Mode", screen: "settings-debug-mode" }
|
|
28439
28539
|
];
|
|
28440
|
-
|
|
28540
|
+
useInput13((input, key) => {
|
|
28441
28541
|
if (key.upArrow) {
|
|
28442
28542
|
setFocusIdx((i) => (i - 1 + items.length) % items.length);
|
|
28443
28543
|
return;
|
|
@@ -28457,7 +28557,7 @@ function SettingsScreen({
|
|
|
28457
28557
|
onBack();
|
|
28458
28558
|
}
|
|
28459
28559
|
});
|
|
28460
|
-
return /* @__PURE__ */ jsxs46(
|
|
28560
|
+
return /* @__PURE__ */ jsxs46(Box46, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
28461
28561
|
/* @__PURE__ */ jsx57(Text47, { bold: true, children: "Settings" }),
|
|
28462
28562
|
/* @__PURE__ */ jsx57(Text47, { color: PALETTE.muted, children: " " }),
|
|
28463
28563
|
items.map((item, i) => /* @__PURE__ */ jsxs46(Text47, { color: i === focusIdx ? PALETTE.accent : void 0, children: [
|
|
@@ -28480,11 +28580,11 @@ function SettingsScreen({
|
|
|
28480
28580
|
|
|
28481
28581
|
// packages/experience-design-system-cli/src/tui/settings/configuration/ConfigurationScreen.tsx
|
|
28482
28582
|
import { useState as useState35 } from "react";
|
|
28483
|
-
import { Box as
|
|
28583
|
+
import { Box as Box50, Text as Text52, useInput as useInput16 } from "ink";
|
|
28484
28584
|
|
|
28485
28585
|
// packages/experience-design-system-cli/src/tui/settings/configuration/agents/AgentsScreen.tsx
|
|
28486
28586
|
import { useEffect as useEffect24, useRef as useRef15, useState as useState33 } from "react";
|
|
28487
|
-
import { Box as
|
|
28587
|
+
import { Box as Box48, Text as Text50, useInput as useInput14 } from "ink";
|
|
28488
28588
|
init_debug_store();
|
|
28489
28589
|
|
|
28490
28590
|
// packages/experience-design-system-cli/src/tui/settings/shared/debug-trail.ts
|
|
@@ -28813,7 +28913,7 @@ async function writeAgentConfig(config) {
|
|
|
28813
28913
|
|
|
28814
28914
|
// packages/experience-design-system-cli/src/tui/settings/configuration/agents/AgentDetail.tsx
|
|
28815
28915
|
import { useEffect as useEffect23, useState as useState32 } from "react";
|
|
28816
|
-
import { Box as
|
|
28916
|
+
import { Box as Box47, Text as Text49 } from "ink";
|
|
28817
28917
|
|
|
28818
28918
|
// packages/experience-design-system-cli/src/tui/settings/configuration/agents/AgentStatusBadge.tsx
|
|
28819
28919
|
import { Text as Text48 } from "ink";
|
|
@@ -28858,7 +28958,7 @@ var fields = (name) => [
|
|
|
28858
28958
|
];
|
|
28859
28959
|
var INSPECT_DELAY_MS = 400;
|
|
28860
28960
|
function StatusHeading() {
|
|
28861
|
-
return /* @__PURE__ */ jsxs47(
|
|
28961
|
+
return /* @__PURE__ */ jsxs47(Box47, { gap: 1, children: [
|
|
28862
28962
|
/* @__PURE__ */ jsx59(Text49, { bold: true, color: PALETTE.muted, children: "STATUS" }),
|
|
28863
28963
|
/* @__PURE__ */ jsx59(Text49, { color: PALETTE.muted, children: "\xB7 read only" })
|
|
28864
28964
|
] });
|
|
@@ -28940,7 +29040,7 @@ function AgentDetail({
|
|
|
28940
29040
|
actions: [action],
|
|
28941
29041
|
notice: testing ? null : notice,
|
|
28942
29042
|
busy: saving || testing,
|
|
28943
|
-
children: /* @__PURE__ */ jsxs47(
|
|
29043
|
+
children: /* @__PURE__ */ jsxs47(Box47, { flexDirection: "column", marginTop: 1, children: [
|
|
28944
29044
|
/* @__PURE__ */ jsx59(StatusHeading, {}),
|
|
28945
29045
|
statusRows(name, checks, settings.binary).map((row) => /* @__PURE__ */ jsx59(FormReadOnlyRow, { label: row.label, labelWidth, children: /* @__PURE__ */ jsx59(Text49, { color: TONE_COLOR[row.tone], children: row.value }) }, row.label))
|
|
28946
29046
|
] })
|
|
@@ -29027,7 +29127,7 @@ function AgentsScreen({ onDone }) {
|
|
|
29027
29127
|
setNotice({ kind: "error", text: `Default agent not changed: ${visit.error}` });
|
|
29028
29128
|
}).finally(() => setSaving(false));
|
|
29029
29129
|
};
|
|
29030
|
-
|
|
29130
|
+
useInput14((input, key) => {
|
|
29031
29131
|
if (loadError && (key.escape || input === "q")) {
|
|
29032
29132
|
endVisit(null);
|
|
29033
29133
|
onDone();
|
|
@@ -29059,7 +29159,7 @@ function AgentsScreen({ onDone }) {
|
|
|
29059
29159
|
}
|
|
29060
29160
|
});
|
|
29061
29161
|
if (!config) {
|
|
29062
|
-
return /* @__PURE__ */ jsxs48(
|
|
29162
|
+
return /* @__PURE__ */ jsxs48(Box48, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
29063
29163
|
/* @__PURE__ */ jsx60(Text50, { bold: true, children: "Settings \u203A Configuration \u203A Agents" }),
|
|
29064
29164
|
/* @__PURE__ */ jsx60(Text50, { children: " " }),
|
|
29065
29165
|
loadError ? /* @__PURE__ */ jsxs48(Fragment18, { children: [
|
|
@@ -29094,35 +29194,35 @@ function AgentsScreen({ onDone }) {
|
|
|
29094
29194
|
);
|
|
29095
29195
|
}
|
|
29096
29196
|
const focusedAgent = AGENT_NAMES[focus];
|
|
29097
|
-
return /* @__PURE__ */ jsxs48(
|
|
29197
|
+
return /* @__PURE__ */ jsxs48(Box48, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
29098
29198
|
/* @__PURE__ */ jsx60(Text50, { bold: true, children: "Settings \u203A Configuration \u203A Agents" }),
|
|
29099
29199
|
/* @__PURE__ */ jsx60(Text50, { children: " " }),
|
|
29100
29200
|
/* @__PURE__ */ jsx60(Text50, { color: PALETTE.muted, children: "The coding agent the CLI runs, and what was found for each one." }),
|
|
29101
29201
|
/* @__PURE__ */ jsx60(Text50, { children: " " }),
|
|
29102
|
-
/* @__PURE__ */ jsxs48(
|
|
29202
|
+
/* @__PURE__ */ jsxs48(Box48, { gap: 1, children: [
|
|
29103
29203
|
/* @__PURE__ */ jsx60(Text50, { color: PALETTE.muted, children: "Default agent" }),
|
|
29104
29204
|
/* @__PURE__ */ jsx60(Text50, { bold: true, children: AGENT_LABELS[config.defaultAgent] }),
|
|
29105
29205
|
saving && /* @__PURE__ */ jsx60(Text50, { color: PALETTE.accent, children: "\u2026 saving" })
|
|
29106
29206
|
] }),
|
|
29107
|
-
/* @__PURE__ */ jsxs48(
|
|
29207
|
+
/* @__PURE__ */ jsxs48(Box48, { marginTop: 1, gap: 1, children: [
|
|
29108
29208
|
/* @__PURE__ */ jsx60(Text50, { children: " " }),
|
|
29109
29209
|
/* @__PURE__ */ jsx60(Text50, { children: " " }),
|
|
29110
|
-
/* @__PURE__ */ jsx60(
|
|
29210
|
+
/* @__PURE__ */ jsx60(Box48, { width: NAME_WIDTH, flexShrink: 0, children: /* @__PURE__ */ jsx60(Text50, { color: PALETTE.muted, children: "AGENT" }) }),
|
|
29111
29211
|
/* @__PURE__ */ jsx60(Text50, { color: PALETTE.muted, children: "STATUS" })
|
|
29112
29212
|
] }),
|
|
29113
29213
|
AGENT_NAMES.map((name) => {
|
|
29114
29214
|
const isFocused = focusedAgent === name;
|
|
29115
|
-
return /* @__PURE__ */ jsxs48(
|
|
29215
|
+
return /* @__PURE__ */ jsxs48(Box48, { gap: 1, children: [
|
|
29116
29216
|
/* @__PURE__ */ jsx60(Text50, { color: isFocused ? PALETTE.accent : void 0, children: isFocused ? "\u276F" : " " }),
|
|
29117
29217
|
/* @__PURE__ */ jsx60(Text50, { color: PALETTE.success, children: name === config.defaultAgent ? "\u2605" : " " }),
|
|
29118
|
-
/* @__PURE__ */ jsx60(
|
|
29218
|
+
/* @__PURE__ */ jsx60(Box48, { width: NAME_WIDTH, flexShrink: 0, children: /* @__PURE__ */ jsx60(Text50, { bold: isFocused, color: isFocused ? PALETTE.accent : void 0, children: AGENT_LABELS[name] }) }),
|
|
29119
29219
|
/* @__PURE__ */ jsx60(AgentStatusBadge, { name, checks: checks[name], binary: config.agents[name].binary })
|
|
29120
29220
|
] }, name);
|
|
29121
29221
|
}),
|
|
29122
|
-
/* @__PURE__ */ jsxs48(
|
|
29222
|
+
/* @__PURE__ */ jsxs48(Box48, { flexDirection: "column", marginTop: 1, children: [
|
|
29123
29223
|
/* @__PURE__ */ jsx60(Text50, { color: PALETTE.muted, children: `\u2500 ${AGENT_LABELS[focusedAgent]} ${"\u2500".repeat(30)}` }),
|
|
29124
|
-
panelRows(focusedAgent, checks[focusedAgent], config.agents[focusedAgent]).map((row) => /* @__PURE__ */ jsxs48(
|
|
29125
|
-
/* @__PURE__ */ jsx60(
|
|
29224
|
+
panelRows(focusedAgent, checks[focusedAgent], config.agents[focusedAgent]).map((row) => /* @__PURE__ */ jsxs48(Box48, { gap: 1, paddingLeft: 1, children: [
|
|
29225
|
+
/* @__PURE__ */ jsx60(Box48, { width: PANEL_LABEL_WIDTH, flexShrink: 0, children: /* @__PURE__ */ jsx60(Text50, { color: PALETTE.muted, children: row.label }) }),
|
|
29126
29226
|
/* @__PURE__ */ jsx60(Text50, { color: TONE_COLOR[row.tone], children: row.value })
|
|
29127
29227
|
] }, row.label))
|
|
29128
29228
|
] }),
|
|
@@ -29151,7 +29251,7 @@ function AgentsScreen({ onDone }) {
|
|
|
29151
29251
|
|
|
29152
29252
|
// packages/experience-design-system-cli/src/tui/settings/configuration/project/ProjectScreen.tsx
|
|
29153
29253
|
import { useEffect as useEffect25, useRef as useRef16, useState as useState34 } from "react";
|
|
29154
|
-
import { Box as
|
|
29254
|
+
import { Box as Box49, Text as Text51, useInput as useInput15 } from "ink";
|
|
29155
29255
|
init_debug_store();
|
|
29156
29256
|
|
|
29157
29257
|
// packages/experience-design-system-cli/src/tui/settings/configuration/project/project-store.ts
|
|
@@ -29253,14 +29353,14 @@ function ProjectScreen({ onDone }) {
|
|
|
29253
29353
|
exitMethod: change.changed ? "saved" : "discarded"
|
|
29254
29354
|
});
|
|
29255
29355
|
};
|
|
29256
|
-
|
|
29356
|
+
useInput15((input, key) => {
|
|
29257
29357
|
if (!config && loadError && (key.escape || input === "q")) {
|
|
29258
29358
|
endVisit(null);
|
|
29259
29359
|
onDone();
|
|
29260
29360
|
}
|
|
29261
29361
|
});
|
|
29262
29362
|
if (!config) {
|
|
29263
|
-
return /* @__PURE__ */ jsxs49(
|
|
29363
|
+
return /* @__PURE__ */ jsxs49(Box49, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
29264
29364
|
/* @__PURE__ */ jsx61(Text51, { bold: true, children: "Settings \u203A Configuration \u203A Project" }),
|
|
29265
29365
|
/* @__PURE__ */ jsx61(Text51, { children: " " }),
|
|
29266
29366
|
loadError ? /* @__PURE__ */ jsxs49(Fragment19, { children: [
|
|
@@ -29303,6 +29403,7 @@ function ProjectScreen({ onDone }) {
|
|
|
29303
29403
|
setNotice(null);
|
|
29304
29404
|
visit.trail.record(`edited ${key}`);
|
|
29305
29405
|
},
|
|
29406
|
+
enterAdvances: true,
|
|
29306
29407
|
onSave: save,
|
|
29307
29408
|
onQuit: quit,
|
|
29308
29409
|
notice,
|
|
@@ -29325,7 +29426,7 @@ function ConfigurationScreen({ onDone }) {
|
|
|
29325
29426
|
const [focus, setFocus] = useState35(0);
|
|
29326
29427
|
const [open, setOpen] = useState35(null);
|
|
29327
29428
|
const close = () => setOpen(null);
|
|
29328
|
-
|
|
29429
|
+
useInput16((input, key) => {
|
|
29329
29430
|
if (open) return;
|
|
29330
29431
|
if (key.upArrow) {
|
|
29331
29432
|
setFocus((i) => (i - 1 + SECTIONS.length) % SECTIONS.length);
|
|
@@ -29343,12 +29444,12 @@ function ConfigurationScreen({ onDone }) {
|
|
|
29343
29444
|
});
|
|
29344
29445
|
if (open === "project") return /* @__PURE__ */ jsx62(ProjectScreen, { onDone: close });
|
|
29345
29446
|
if (open === "agents") return /* @__PURE__ */ jsx62(AgentsScreen, { onDone: close });
|
|
29346
|
-
return /* @__PURE__ */ jsxs50(
|
|
29447
|
+
return /* @__PURE__ */ jsxs50(Box50, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
29347
29448
|
/* @__PURE__ */ jsx62(Text52, { bold: true, children: "Settings \u203A Configuration" }),
|
|
29348
29449
|
/* @__PURE__ */ jsx62(Text52, { children: " " }),
|
|
29349
|
-
SECTIONS.map((section, index) => /* @__PURE__ */ jsxs50(
|
|
29450
|
+
SECTIONS.map((section, index) => /* @__PURE__ */ jsxs50(Box50, { gap: 1, children: [
|
|
29350
29451
|
/* @__PURE__ */ jsx62(Text52, { color: index === focus ? PALETTE.accent : void 0, children: index === focus ? "\u276F" : " " }),
|
|
29351
|
-
/* @__PURE__ */ jsx62(
|
|
29452
|
+
/* @__PURE__ */ jsx62(Box50, { width: 9, flexShrink: 0, children: /* @__PURE__ */ jsx62(Text52, { bold: index === focus, color: index === focus ? PALETTE.accent : void 0, children: section.label }) }),
|
|
29352
29453
|
/* @__PURE__ */ jsx62(Text52, { color: PALETTE.muted, children: section.description })
|
|
29353
29454
|
] }, section.id)),
|
|
29354
29455
|
/* @__PURE__ */ jsx62(Text52, { children: " " }),
|
|
@@ -29367,7 +29468,7 @@ function ConfigurationScreen({ onDone }) {
|
|
|
29367
29468
|
|
|
29368
29469
|
// packages/experience-design-system-cli/src/tui/settings/opt-in-analytics/screen.tsx
|
|
29369
29470
|
import { useEffect as useEffect26, useState as useState36 } from "react";
|
|
29370
|
-
import { Box as
|
|
29471
|
+
import { Box as Box51, Text as Text53, useInput as useInput17 } from "ink";
|
|
29371
29472
|
|
|
29372
29473
|
// packages/experience-design-system-cli/src/tui/settings/opt-in-analytics/analytics-store.ts
|
|
29373
29474
|
async function readAnalyticsSetting() {
|
|
@@ -29402,7 +29503,7 @@ function OptInAnalyticsScreen({ onDone }) {
|
|
|
29402
29503
|
});
|
|
29403
29504
|
});
|
|
29404
29505
|
}, []);
|
|
29405
|
-
|
|
29506
|
+
useInput17((input, key) => {
|
|
29406
29507
|
if (loading) return;
|
|
29407
29508
|
if (key.return || input === " ") {
|
|
29408
29509
|
setEnabled((current) => {
|
|
@@ -29417,7 +29518,7 @@ function OptInAnalyticsScreen({ onDone }) {
|
|
|
29417
29518
|
onDone();
|
|
29418
29519
|
}
|
|
29419
29520
|
});
|
|
29420
|
-
return /* @__PURE__ */ jsxs51(
|
|
29521
|
+
return /* @__PURE__ */ jsxs51(Box51, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
29421
29522
|
/* @__PURE__ */ jsx63(Text53, { bold: true, children: "Settings \u203A Opt-in Analytics" }),
|
|
29422
29523
|
/* @__PURE__ */ jsx63(Text53, { children: " " }),
|
|
29423
29524
|
loading ? /* @__PURE__ */ jsx63(Text53, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs51(Fragment20, { children: [
|
|
@@ -29445,7 +29546,7 @@ function OptInAnalyticsScreen({ onDone }) {
|
|
|
29445
29546
|
|
|
29446
29547
|
// packages/experience-design-system-cli/src/tui/settings/debug-mode/screen.tsx
|
|
29447
29548
|
import { useEffect as useEffect27, useRef as useRef17, useState as useState37 } from "react";
|
|
29448
|
-
import { Box as
|
|
29549
|
+
import { Box as Box52, Text as Text54, useInput as useInput18 } from "ink";
|
|
29449
29550
|
init_debug_mode_store();
|
|
29450
29551
|
init_debug_store();
|
|
29451
29552
|
import { Fragment as Fragment21, jsx as jsx64, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
@@ -29502,7 +29603,7 @@ function DebugModeScreen({ onDone }) {
|
|
|
29502
29603
|
exitMethod: change.changed ? "saved" : "discarded"
|
|
29503
29604
|
});
|
|
29504
29605
|
};
|
|
29505
|
-
|
|
29606
|
+
useInput18((input, key) => {
|
|
29506
29607
|
if (!setting) return;
|
|
29507
29608
|
if (key.upArrow || key.downArrow) {
|
|
29508
29609
|
setFocus((current) => ROWS[(ROWS.indexOf(current) + (key.downArrow ? 1 : ROWS.length - 1)) % ROWS.length]);
|
|
@@ -29531,16 +29632,16 @@ function DebugModeScreen({ onDone }) {
|
|
|
29531
29632
|
});
|
|
29532
29633
|
const marker = (row) => /* @__PURE__ */ jsx64(Text54, { color: focus === row ? PALETTE.accent : void 0, children: focus === row ? "\u276F" : " " });
|
|
29533
29634
|
const label = (row, text) => /* @__PURE__ */ jsx64(Text54, { bold: focus === row, color: focus === row ? PALETTE.accent : PALETTE.muted, children: text });
|
|
29534
|
-
return /* @__PURE__ */ jsxs52(
|
|
29635
|
+
return /* @__PURE__ */ jsxs52(Box52, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
|
|
29535
29636
|
/* @__PURE__ */ jsx64(Text54, { bold: true, children: "Settings \u203A Debug Mode" }),
|
|
29536
29637
|
/* @__PURE__ */ jsx64(Text54, { children: " " }),
|
|
29537
29638
|
setting ? /* @__PURE__ */ jsxs52(Fragment21, { children: [
|
|
29538
|
-
/* @__PURE__ */ jsxs52(
|
|
29639
|
+
/* @__PURE__ */ jsxs52(Box52, { gap: 1, children: [
|
|
29539
29640
|
marker("enabled"),
|
|
29540
29641
|
label("enabled", "Debug logging:"),
|
|
29541
29642
|
/* @__PURE__ */ jsx64(Text54, { bold: true, color: setting.enabled ? PALETTE.success : PALETTE.muted, children: setting.enabled ? "On" : "Off" })
|
|
29542
29643
|
] }),
|
|
29543
|
-
/* @__PURE__ */ jsxs52(
|
|
29644
|
+
/* @__PURE__ */ jsxs52(Box52, { gap: 1, children: [
|
|
29544
29645
|
marker("retentionDays"),
|
|
29545
29646
|
label("retentionDays", "Delete logs after:"),
|
|
29546
29647
|
RETENTION_CHOICES.map((days) => {
|