@contentful/experience-design-system-cli 2.36.2-dev-build-dc6fb2aa.0 → 2.36.2-dev-build-c4497102.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/app.js CHANGED
@@ -1,9 +1,9 @@
1
1
  // packages/experience-design-system-cli/app.tsx
2
- import { useEffect as useEffect8, useState as useState10 } from "react";
2
+ import { useEffect as useEffect8, useState as useState11 } from "react";
3
3
 
4
4
  // packages/experience-design-system-cli/src/tui/home/home.tsx
5
5
  import { useEffect as useEffect2, useState as useState2 } from "react";
6
- import { Box, Text, useApp, useInput } from "ink";
6
+ import { Box, Text as Text2, useApp, useInput } from "ink";
7
7
 
8
8
  // packages/experience-design-system-cli/src/tui/home/home.theme.ts
9
9
  var BRAND = {
@@ -117,8 +117,15 @@ function useTerminalWidth() {
117
117
  return columns;
118
118
  }
119
119
 
120
+ // packages/experience-design-system-cli/src/tui/control-hints.tsx
121
+ import { Text } from "ink";
122
+ import { jsx } from "react/jsx-runtime";
123
+ function ControlHints({ hints }) {
124
+ return /* @__PURE__ */ jsx(Text, { color: PALETTE.muted, children: hints.map((hint) => `${hint.keys} ${hint.label}`).join(" \xB7 ") });
125
+ }
126
+
120
127
  // packages/experience-design-system-cli/src/tui/home/home.tsx
121
- import { jsx, jsxs } from "react/jsx-runtime";
128
+ import { jsx as jsx2, jsxs } from "react/jsx-runtime";
122
129
  var VERSION = readPackageVersion();
123
130
  var HEADING = "Contentful Experiences";
124
131
  var SUBTITLE = "Let's import your design system into Contentful";
@@ -171,27 +178,27 @@ function HomeScreen({ onNavigate }) {
171
178
  });
172
179
  if (tooNarrow) {
173
180
  return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
174
- /* @__PURE__ */ jsx(Text, { bold: true, color: PALETTE.warning, children: "Terminal too small" }),
175
- /* @__PURE__ */ jsx(Text, { color: PALETTE.muted, children: "Press q to quit, make your terminal full screen, then run experiences import again." })
181
+ /* @__PURE__ */ jsx2(Text2, { bold: true, color: PALETTE.warning, children: "Terminal too small" }),
182
+ /* @__PURE__ */ jsx2(Text2, { color: PALETTE.muted, children: "Press q to quit, make your terminal full screen, then run experiences import again." })
176
183
  ] });
177
184
  }
178
185
  return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
179
186
  /* @__PURE__ */ jsxs(Box, { flexDirection: "column", alignItems: "center", children: [
180
- /* @__PURE__ */ jsx(Text, { bold: true, color: PALETTE.heading, children: HEADING }),
181
- /* @__PURE__ */ jsx(Text, { children: brandBar(HEADING.length).map((segment, i) => /* @__PURE__ */ jsx(Text, { color: segment.color, children: segment.text }, i)) }),
182
- /* @__PURE__ */ jsx(Text, { color: PALETTE.muted, children: SUBTITLE }),
183
- /* @__PURE__ */ jsxs(Text, { color: PALETTE.muted, children: [
187
+ /* @__PURE__ */ jsx2(Text2, { bold: true, color: PALETTE.heading, children: HEADING }),
188
+ /* @__PURE__ */ jsx2(Text2, { children: brandBar(HEADING.length).map((segment, i) => /* @__PURE__ */ jsx2(Text2, { color: segment.color, children: segment.text }, i)) }),
189
+ /* @__PURE__ */ jsx2(Text2, { color: PALETTE.muted, children: SUBTITLE }),
190
+ /* @__PURE__ */ jsxs(Text2, { color: PALETTE.muted, children: [
184
191
  "v",
185
192
  VERSION
186
193
  ] })
187
194
  ] }),
188
- /* @__PURE__ */ jsx(Box, { marginTop: 1, justifyContent: "center", children: /* @__PURE__ */ jsx(Box, { flexDirection: "column", children: START_ITEMS.map((item, i) => {
195
+ /* @__PURE__ */ jsx2(Box, { marginTop: 1, justifyContent: "center", children: /* @__PURE__ */ jsx2(Box, { flexDirection: "column", children: START_ITEMS.map((item, i) => {
189
196
  const focused = i === focusIdx;
190
197
  const isUpgradeItem = item.screen === "upgrade";
191
198
  const display = isUpgradeItem ? upgradeItemDisplay(upgradeCheck) : { label: item.label };
192
199
  const dimmed = isUpgradeItem && upgradeDisabled;
193
200
  return /* @__PURE__ */ jsxs(
194
- Text,
201
+ Text2,
195
202
  {
196
203
  bold: focused && !dimmed,
197
204
  dimColor: dimmed,
@@ -204,13 +211,22 @@ function HomeScreen({ onNavigate }) {
204
211
  item.label
205
212
  );
206
213
  }) }) }),
207
- /* @__PURE__ */ jsx(Box, { marginTop: 1, justifyContent: "center", children: /* @__PURE__ */ jsx(Text, { color: PALETTE.muted, children: "\u2191/\u2193 move \xB7 \u23CE select \xB7 q quit" }) })
214
+ /* @__PURE__ */ jsx2(Box, { marginTop: 1, justifyContent: "center", children: /* @__PURE__ */ jsx2(
215
+ ControlHints,
216
+ {
217
+ hints: [
218
+ { keys: "\u2191/\u2193", label: "move" },
219
+ { keys: "\u23CE", label: "select" },
220
+ { keys: "q", label: "quit" }
221
+ ]
222
+ }
223
+ ) })
208
224
  ] });
209
225
  }
210
226
 
211
227
  // packages/experience-design-system-cli/src/tui/import/PageContainer.tsx
212
- import { Box as Box2, Text as Text2, useInput as useInput2 } from "ink";
213
- import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
228
+ import { Box as Box2, Text as Text3, useInput as useInput2 } from "ink";
229
+ import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
214
230
  function ImportScreen({ exitCode, onDone }) {
215
231
  useInput2((input, key) => {
216
232
  if (key.return || key.escape || input === "q") {
@@ -219,20 +235,20 @@ function ImportScreen({ exitCode, onDone }) {
219
235
  });
220
236
  const isSuccess = exitCode === 0;
221
237
  return /* @__PURE__ */ jsxs2(Box2, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
222
- /* @__PURE__ */ jsx2(Text2, { bold: true, children: "Import" }),
223
- /* @__PURE__ */ jsx2(Text2, { children: " " }),
224
- isSuccess ? /* @__PURE__ */ jsx2(Text2, { color: PALETTE.success, children: "\u2713 Import complete" }) : /* @__PURE__ */ jsxs2(Text2, { color: PALETTE.error, children: [
238
+ /* @__PURE__ */ jsx3(Text3, { bold: true, children: "Import" }),
239
+ /* @__PURE__ */ jsx3(Text3, { children: " " }),
240
+ isSuccess ? /* @__PURE__ */ jsx3(Text3, { color: PALETTE.success, children: "\u2713 Import complete" }) : /* @__PURE__ */ jsxs2(Text3, { color: PALETTE.error, children: [
225
241
  "\u2717 Import failed: process exited with code ",
226
242
  exitCode ?? "unknown"
227
243
  ] }),
228
- /* @__PURE__ */ jsx2(Text2, { children: " " }),
229
- /* @__PURE__ */ jsx2(Text2, { dimColor: true, children: "[Enter] Back to Start" })
244
+ /* @__PURE__ */ jsx3(Text3, { children: " " }),
245
+ /* @__PURE__ */ jsx3(Text3, { dimColor: true, children: "[Enter] Back to Start" })
230
246
  ] });
231
247
  }
232
248
 
233
249
  // packages/experience-design-system-cli/src/tui/import/steps/01-welcome/screen.tsx
234
250
  import { useState as useState3 } from "react";
235
- import { Box as Box3, Text as Text3 } from "ink";
251
+ import { Box as Box3, Text as Text4 } from "ink";
236
252
  import TextInput from "ink-text-input";
237
253
 
238
254
  // packages/experience-design-system-cli/src/tui/import/steps/01-welcome/controls.ts
@@ -260,7 +276,7 @@ function useWelcomeControls(projectPath, onQuit) {
260
276
  }
261
277
 
262
278
  // packages/experience-design-system-cli/src/tui/import/steps/01-welcome/screen.tsx
263
- import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
279
+ import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
264
280
  var RULE = "\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500";
265
281
  var OVERVIEW = [
266
282
  { label: "Step 1", description: "Extract components from your codebase" },
@@ -277,25 +293,25 @@ function WelcomeScreen({ onContinue, onQuit, initialPath = "" }) {
277
293
  if (path) onContinue(path);
278
294
  };
279
295
  return /* @__PURE__ */ jsxs3(Box3, { flexDirection: "column", gap: 1, paddingX: 2, paddingY: 1, children: [
280
- /* @__PURE__ */ jsx3(Text3, { bold: true, color: PALETTE.success, children: "\u{1F44B} Hey! Let's import your design system into Contentful." }),
281
- /* @__PURE__ */ jsx3(Text3, { dimColor: true, children: "I'll walk you through 5 steps to get your components into Contentful ExO." }),
296
+ /* @__PURE__ */ jsx4(Text4, { bold: true, color: PALETTE.success, children: "\u{1F44B} Hey! Let's import your design system into Contentful." }),
297
+ /* @__PURE__ */ jsx4(Text4, { dimColor: true, children: "I'll walk you through 5 steps to get your components into Contentful ExO." }),
282
298
  /* @__PURE__ */ jsxs3(Box3, { flexDirection: "column", marginTop: 1, children: [
283
- /* @__PURE__ */ jsx3(Text3, { dimColor: true, children: RULE }),
299
+ /* @__PURE__ */ jsx4(Text4, { dimColor: true, children: RULE }),
284
300
  OVERVIEW.map((item) => /* @__PURE__ */ jsxs3(Box3, { gap: 1, children: [
285
- /* @__PURE__ */ jsx3(Text3, { bold: true, children: item.label }),
286
- /* @__PURE__ */ jsx3(Text3, { dimColor: true, children: item.description })
301
+ /* @__PURE__ */ jsx4(Text4, { bold: true, children: item.label }),
302
+ /* @__PURE__ */ jsx4(Text4, { dimColor: true, children: item.description })
287
303
  ] }, item.label)),
288
- /* @__PURE__ */ jsx3(Text3, { dimColor: true, children: RULE })
304
+ /* @__PURE__ */ jsx4(Text4, { dimColor: true, children: RULE })
289
305
  ] }),
290
306
  /* @__PURE__ */ jsxs3(Box3, { flexDirection: "column", marginTop: 1, children: [
291
- /* @__PURE__ */ jsx3(Text3, { children: "Where is your component library?" }),
307
+ /* @__PURE__ */ jsx4(Text4, { children: "Where is your component library?" }),
292
308
  /* @__PURE__ */ jsxs3(Box3, { gap: 1, children: [
293
- /* @__PURE__ */ jsx3(Text3, { color: PALETTE.accent, children: "?" }),
294
- /* @__PURE__ */ jsx3(Text3, { children: "Project path:" }),
295
- /* @__PURE__ */ jsx3(TextInput, { value: projectPath, onChange: setProjectPath, onSubmit: submit })
309
+ /* @__PURE__ */ jsx4(Text4, { color: PALETTE.accent, children: "?" }),
310
+ /* @__PURE__ */ jsx4(Text4, { children: "Project path:" }),
311
+ /* @__PURE__ */ jsx4(TextInput, { value: projectPath, onChange: setProjectPath, onSubmit: submit })
296
312
  ] })
297
313
  ] }),
298
- /* @__PURE__ */ jsx3(Box3, { marginTop: 1, gap: 3, children: WELCOME_CONTROLS.map((control) => /* @__PURE__ */ jsxs3(Text3, { dimColor: true, children: [
314
+ /* @__PURE__ */ jsx4(Box3, { marginTop: 1, gap: 3, children: WELCOME_CONTROLS.map((control) => /* @__PURE__ */ jsxs3(Text4, { dimColor: true, children: [
299
315
  "[",
300
316
  control.keys,
301
317
  "] ",
@@ -306,7 +322,7 @@ function WelcomeScreen({ onContinue, onQuit, initialPath = "" }) {
306
322
 
307
323
  // packages/experience-design-system-cli/src/tui/import/steps/02-token-input/screen.tsx
308
324
  import { useState as useState4 } from "react";
309
- import { Box as Box4, Text as Text4 } from "ink";
325
+ import { Box as Box4, Text as Text5 } from "ink";
310
326
  import TextInput2 from "ink-text-input";
311
327
 
312
328
  // packages/experience-design-system-cli/src/tui/import/steps/02-token-input/controls.ts
@@ -373,7 +389,7 @@ function validateTokenPath(rawPath) {
373
389
  }
374
390
 
375
391
  // packages/experience-design-system-cli/src/tui/import/steps/02-token-input/screen.tsx
376
- import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
392
+ import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
377
393
  function TokenInputScreen({
378
394
  onConfirm,
379
395
  onSkip,
@@ -398,26 +414,26 @@ function TokenInputScreen({
398
414
  else setFailure({ error: check.error, resolvedPath: check.resolvedPath });
399
415
  };
400
416
  return /* @__PURE__ */ jsxs4(Box4, { flexDirection: "column", gap: 1, paddingX: 2, paddingY: 1, children: [
401
- /* @__PURE__ */ jsx4(Text4, { bold: true, children: "Design tokens" }),
402
- /* @__PURE__ */ jsx4(Text4, { dimColor: true, children: "Point me to your raw token file (e.g. ~/design-tokens/tokens.json). You can use ~, relative, or absolute paths. Claude will map it to DTCG format." }),
417
+ /* @__PURE__ */ jsx5(Text5, { bold: true, children: "Design tokens" }),
418
+ /* @__PURE__ */ jsx5(Text5, { dimColor: true, children: "Point me to your raw token file (e.g. ~/design-tokens/tokens.json). You can use ~, relative, or absolute paths. Claude will map it to DTCG format." }),
403
419
  /* @__PURE__ */ jsxs4(Box4, { flexDirection: "column", marginTop: 1, children: [
404
420
  /* @__PURE__ */ jsxs4(Box4, { gap: 1, children: [
405
- /* @__PURE__ */ jsx4(Text4, { color: PALETTE.accent, children: "?" }),
406
- /* @__PURE__ */ jsx4(Text4, { children: "Token path:" }),
407
- /* @__PURE__ */ jsx4(TextInput2, { value: tokenPath, onChange: change, onSubmit: submit })
421
+ /* @__PURE__ */ jsx5(Text5, { color: PALETTE.accent, children: "?" }),
422
+ /* @__PURE__ */ jsx5(Text5, { children: "Token path:" }),
423
+ /* @__PURE__ */ jsx5(TextInput2, { value: tokenPath, onChange: change, onSubmit: submit })
408
424
  ] }),
409
425
  failure && /* @__PURE__ */ jsxs4(Box4, { flexDirection: "column", children: [
410
- /* @__PURE__ */ jsxs4(Text4, { color: PALETTE.error, children: [
426
+ /* @__PURE__ */ jsxs4(Text5, { color: PALETTE.error, children: [
411
427
  "\u2717 ",
412
428
  failure.error
413
429
  ] }),
414
- /* @__PURE__ */ jsxs4(Text4, { dimColor: true, children: [
430
+ /* @__PURE__ */ jsxs4(Text5, { dimColor: true, children: [
415
431
  " Resolved to: ",
416
432
  failure.resolvedPath
417
433
  ] })
418
434
  ] })
419
435
  ] }),
420
- /* @__PURE__ */ jsx4(Box4, { marginTop: 1, gap: 3, children: TOKEN_INPUT_CONTROLS.map((control) => /* @__PURE__ */ jsxs4(Text4, { dimColor: true, children: [
436
+ /* @__PURE__ */ jsx5(Box4, { marginTop: 1, gap: 3, children: TOKEN_INPUT_CONTROLS.map((control) => /* @__PURE__ */ jsxs4(Text5, { dimColor: true, children: [
421
437
  "[",
422
438
  control.keys,
423
439
  "] ",
@@ -493,8 +509,8 @@ function startReadingTerminal() {
493
509
  }
494
510
 
495
511
  // packages/experience-design-system-cli/src/tui/help/PageContainer.tsx
496
- import { useEffect as useEffect3 } from "react";
497
- import { Box as Box5, Text as Text5, useInput as useInput5 } from "ink";
512
+ import { useEffect as useEffect3, useState as useState5 } from "react";
513
+ import { Box as Box5, Text as Text6, useInput as useInput5 } from "ink";
498
514
 
499
515
  // packages/experience-design-system-cli/src/tui/debug-store.ts
500
516
  import { mkdir as mkdir2, writeFile as writeFile2 } from "node:fs/promises";
@@ -571,6 +587,9 @@ var SESSION_ID = generateSessionId();
571
587
  function sessionDebugDir() {
572
588
  return join5(debugSessionsDir(), SESSION_ID);
573
589
  }
590
+ function currentDebugSessionDir() {
591
+ return sessionDebugDir();
592
+ }
574
593
  void isDebugModeEnabled().then((enabled) => {
575
594
  if (!enabled) return void 0;
576
595
  return mkdir2(sessionDebugDir(), { recursive: true });
@@ -678,11 +697,44 @@ process.once("SIGINT", () => {
678
697
  });
679
698
  });
680
699
 
700
+ // packages/experience-design-system-cli/src/tui/help/help-info.ts
701
+ async function readHelpInfo() {
702
+ const debugMode = await readDebugModeSetting();
703
+ return {
704
+ storage: [
705
+ { label: "Config folder", value: configRoot() },
706
+ { label: "Settings file", value: configFilePath() },
707
+ { label: "Debug logs", value: debugSessionsDir() }
708
+ ],
709
+ troubleshooting: [
710
+ { label: "CLI version", value: readPackageVersion() },
711
+ { label: "Node", value: process.version },
712
+ { label: "Platform", value: `${process.platform} ${process.arch}` },
713
+ { label: "Debug Mode", value: debugMode.enabled ? "on" : "off" },
714
+ {
715
+ label: "This session",
716
+ value: debugMode.enabled ? currentDebugSessionDir() : "no logs written while Debug Mode is off"
717
+ }
718
+ ]
719
+ };
720
+ }
721
+
681
722
  // packages/experience-design-system-cli/src/tui/help/PageContainer.tsx
682
- import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
723
+ import { Fragment, jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
724
+ function Section({ title, rows }) {
725
+ return /* @__PURE__ */ jsxs5(Box5, { flexDirection: "column", children: [
726
+ /* @__PURE__ */ jsx6(Text6, { bold: true, color: PALETTE.accent, children: title }),
727
+ rows.map((row) => /* @__PURE__ */ jsxs5(Box5, { gap: 1, children: [
728
+ /* @__PURE__ */ jsx6(Box5, { width: 14, flexShrink: 0, children: /* @__PURE__ */ jsx6(Text6, { dimColor: true, children: row.label }) }),
729
+ /* @__PURE__ */ jsx6(Text6, { children: row.value })
730
+ ] }, row.label))
731
+ ] });
732
+ }
683
733
  function HelpScreen({ onDone }) {
734
+ const [info, setInfo] = useState5();
684
735
  useEffect3(() => {
685
736
  startDebugRun({ flow: "help", step: "01-help", menuOption: "Help", inputs: {} });
737
+ void readHelpInfo().then(setInfo);
686
738
  }, []);
687
739
  const leave = (exitMethod) => {
688
740
  void finishDebugRun({ outputs: {}, status: "success", exitMethod });
@@ -698,24 +750,34 @@ function HelpScreen({ onDone }) {
698
750
  return;
699
751
  }
700
752
  });
701
- return /* @__PURE__ */ jsxs5(Box5, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
702
- /* @__PURE__ */ jsx5(Text5, { bold: true, children: "Help" }),
703
- /* @__PURE__ */ jsx5(Text5, { children: " " }),
704
- /* @__PURE__ */ jsx5(Text5, { children: "This is a placeholder screen for v2 help content." }),
705
- /* @__PURE__ */ jsx5(Text5, { children: " " }),
706
- /* @__PURE__ */ jsx5(Text5, { dimColor: true, children: "[Enter] Complete [Esc/q] Exit \u2014 both return to Start" })
753
+ return /* @__PURE__ */ jsxs5(Box5, { flexDirection: "column", paddingX: 2, paddingY: 1, gap: 1, children: [
754
+ /* @__PURE__ */ jsx6(Text6, { bold: true, children: "Help" }),
755
+ info ? /* @__PURE__ */ jsxs5(Fragment, { children: [
756
+ /* @__PURE__ */ jsx6(Section, { title: "Where things are stored", rows: info.storage }),
757
+ /* @__PURE__ */ jsx6(Section, { title: "Troubleshooting", rows: info.troubleshooting }),
758
+ /* @__PURE__ */ jsx6(Text6, { dimColor: true, children: "Hit a problem? Turn on Debug Mode in Settings, reproduce it, then share the session folder above. The CMA token is redacted from those logs." })
759
+ ] }) : /* @__PURE__ */ jsx6(Text6, { color: PALETTE.accent, children: "Loading..." }),
760
+ /* @__PURE__ */ jsx6(
761
+ ControlHints,
762
+ {
763
+ hints: [
764
+ { keys: "\u23CE", label: "done" },
765
+ { keys: "Esc/q", label: "back to start" }
766
+ ]
767
+ }
768
+ )
707
769
  ] });
708
770
  }
709
771
 
710
772
  // packages/experience-design-system-cli/src/tui/settings/PageContainer.tsx
711
- import { useState as useState5 } from "react";
712
- import { Box as Box6, Text as Text6, useInput as useInput6 } from "ink";
713
- import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
773
+ import { useState as useState6 } from "react";
774
+ import { Box as Box6, Text as Text7, useInput as useInput6 } from "ink";
775
+ import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
714
776
  function SettingsScreen({
715
777
  onNavigate,
716
778
  onBack
717
779
  }) {
718
- const [focusIdx, setFocusIdx] = useState5(0);
780
+ const [focusIdx, setFocusIdx] = useState6(0);
719
781
  const items = [
720
782
  { label: "Configuration", screen: "settings-configuration" },
721
783
  { label: "Opt-in Analytics", screen: "settings-opt-in-analytics" },
@@ -742,20 +804,29 @@ function SettingsScreen({
742
804
  }
743
805
  });
744
806
  return /* @__PURE__ */ jsxs6(Box6, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
745
- /* @__PURE__ */ jsx6(Text6, { bold: true, children: "Settings" }),
746
- /* @__PURE__ */ jsx6(Text6, { children: " " }),
747
- items.map((item, i) => /* @__PURE__ */ jsxs6(Text6, { color: i === focusIdx ? "cyan" : void 0, children: [
807
+ /* @__PURE__ */ jsx7(Text7, { bold: true, children: "Settings" }),
808
+ /* @__PURE__ */ jsx7(Text7, { children: " " }),
809
+ items.map((item, i) => /* @__PURE__ */ jsxs6(Text7, { color: i === focusIdx ? "cyan" : void 0, children: [
748
810
  i === focusIdx ? "> " : " ",
749
811
  item.label
750
812
  ] }, item.label)),
751
- /* @__PURE__ */ jsx6(Text6, { children: " " }),
752
- /* @__PURE__ */ jsx6(Text6, { dimColor: true, children: "[\u2191/\u2193] Navigate [Enter] Select [Esc/q] Back to Start" })
813
+ /* @__PURE__ */ jsx7(Text7, { children: " " }),
814
+ /* @__PURE__ */ jsx7(
815
+ ControlHints,
816
+ {
817
+ hints: [
818
+ { keys: "\u2191/\u2193", label: "move" },
819
+ { keys: "\u23CE", label: "select" },
820
+ { keys: "Esc/q", label: "back" }
821
+ ]
822
+ }
823
+ )
753
824
  ] });
754
825
  }
755
826
 
756
827
  // packages/experience-design-system-cli/src/tui/settings/contentful-configuration/ContentfulConfigScreen.tsx
757
- import { useEffect as useEffect4, useState as useState6 } from "react";
758
- import { Box as Box7, Text as Text7, useInput as useInput7 } from "ink";
828
+ import { useEffect as useEffect4, useState as useState7 } from "react";
829
+ import { Box as Box7, Text as Text8, useInput as useInput7 } from "ink";
759
830
  import TextInput3 from "ink-text-input";
760
831
 
761
832
  // packages/experience-design-system-cli/src/tui/settings/utils/v1-store.ts
@@ -787,7 +858,7 @@ async function writeCredentials(config) {
787
858
  }
788
859
 
789
860
  // packages/experience-design-system-cli/src/tui/settings/contentful-configuration/ContentfulConfigScreen.tsx
790
- import { Fragment, jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
861
+ import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
791
862
  var FIELD_ORDER = [
792
863
  "spaceId",
793
864
  "environmentId",
@@ -815,13 +886,13 @@ var FIELD_LABELS = {
815
886
  defaultTokenFile: "Default token file (optional)"
816
887
  };
817
888
  function ConfigurationScreen({ onDone }) {
818
- const [stage, setStage] = useState6("loading");
819
- const [config, setConfig] = useState6(null);
820
- const [activeField, setActiveField] = useState6("spaceId");
821
- const [notice, setNotice] = useState6(null);
822
- const [lastSaved, setLastSaved] = useState6(null);
823
- const [editing, setEditing] = useState6(false);
824
- const [valueBeforeEdit, setValueBeforeEdit] = useState6("");
889
+ const [stage, setStage] = useState7("loading");
890
+ const [config, setConfig] = useState7(null);
891
+ const [activeField, setActiveField] = useState7("spaceId");
892
+ const [notice, setNotice] = useState7(null);
893
+ const [lastSaved, setLastSaved] = useState7(null);
894
+ const [editing, setEditing] = useState7(false);
895
+ const [valueBeforeEdit, setValueBeforeEdit] = useState7("");
825
896
  useEffect4(() => {
826
897
  readCredentials().then((cfg) => {
827
898
  setConfig(cfg);
@@ -900,25 +971,25 @@ function ConfigurationScreen({ onDone }) {
900
971
  });
901
972
  if (stage === "loading") {
902
973
  return /* @__PURE__ */ jsxs7(Box7, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
903
- /* @__PURE__ */ jsx7(Text7, { bold: true, children: "Configuration" }),
904
- /* @__PURE__ */ jsx7(Text7, { children: " " }),
905
- /* @__PURE__ */ jsx7(Text7, { color: PALETTE.accent, children: "Loading..." })
974
+ /* @__PURE__ */ jsx8(Text8, { bold: true, children: "Configuration" }),
975
+ /* @__PURE__ */ jsx8(Text8, { children: " " }),
976
+ /* @__PURE__ */ jsx8(Text8, { color: PALETTE.accent, children: "Loading..." })
906
977
  ] });
907
978
  }
908
979
  return /* @__PURE__ */ jsxs7(Box7, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
909
- /* @__PURE__ */ jsx7(Text7, { bold: true, children: "Configuration" }),
910
- /* @__PURE__ */ jsx7(Text7, { children: " " }),
911
- /* @__PURE__ */ jsx7(Box7, { flexDirection: "column", children: FIELD_ORDER.map((field) => {
980
+ /* @__PURE__ */ jsx8(Text8, { bold: true, children: "Configuration" }),
981
+ /* @__PURE__ */ jsx8(Text8, { children: " " }),
982
+ /* @__PURE__ */ jsx8(Box7, { flexDirection: "column", children: FIELD_ORDER.map((field) => {
912
983
  const isActive = activeField === field;
913
984
  const value = fieldValue(field);
914
985
  const display = field === "cmaToken" ? "\u2022".repeat(value.length) : value;
915
986
  return /* @__PURE__ */ jsxs7(Box7, { gap: 1, children: [
916
- /* @__PURE__ */ jsx7(Text7, { color: isActive ? PALETTE.accent : void 0, children: isActive ? "\u276F" : " " }),
917
- /* @__PURE__ */ jsxs7(Text7, { bold: isActive, children: [
987
+ /* @__PURE__ */ jsx8(Text8, { color: isActive ? PALETTE.accent : void 0, children: isActive ? "\u276F" : " " }),
988
+ /* @__PURE__ */ jsxs7(Text8, { bold: isActive, children: [
918
989
  FIELD_LABELS[field],
919
990
  ":"
920
991
  ] }),
921
- isActive && editing ? /* @__PURE__ */ jsx7(
992
+ isActive && editing ? /* @__PURE__ */ jsx8(
922
993
  TextInput3,
923
994
  {
924
995
  value,
@@ -926,25 +997,41 @@ function ConfigurationScreen({ onDone }) {
926
997
  onSubmit: () => setEditing(false),
927
998
  mask: field === "cmaToken" ? "\u2022" : void 0
928
999
  }
929
- ) : /* @__PURE__ */ jsx7(Text7, { children: display || /* @__PURE__ */ jsx7(Text7, { dimColor: true, children: "(empty)" }) })
1000
+ ) : /* @__PURE__ */ jsx8(Text8, { children: display || /* @__PURE__ */ jsx8(Text8, { dimColor: true, children: "(empty)" }) })
930
1001
  ] }, field);
931
1002
  }) }),
932
- notice && /* @__PURE__ */ jsxs7(Fragment, { children: [
933
- /* @__PURE__ */ jsx7(Text7, { children: " " }),
934
- /* @__PURE__ */ jsxs7(Text7, { color: notice.kind === "success" ? PALETTE.success : PALETTE.error, children: [
1003
+ notice && /* @__PURE__ */ jsxs7(Fragment2, { children: [
1004
+ /* @__PURE__ */ jsx8(Text8, { children: " " }),
1005
+ /* @__PURE__ */ jsxs7(Text8, { color: notice.kind === "success" ? PALETTE.success : PALETTE.error, children: [
935
1006
  notice.kind === "success" ? "\u2713" : "\u2717",
936
1007
  " ",
937
1008
  notice.text
938
1009
  ] })
939
1010
  ] }),
940
- /* @__PURE__ */ jsx7(Text7, { children: " " }),
941
- /* @__PURE__ */ jsx7(Text7, { dimColor: true, children: editing ? "[type] Edit \xB7 [\u2190/\u2192] Move cursor \xB7 [Enter] Done \xB7 [Esc] Cancel edit" : "[\u2191/\u2193] Switch field \xB7 [Enter] Edit \xB7 [c] Clear field \xB7 [s] Save \xB7 [Esc/q] Quit without saving" })
1011
+ /* @__PURE__ */ jsx8(Text8, { children: " " }),
1012
+ /* @__PURE__ */ jsx8(
1013
+ ControlHints,
1014
+ {
1015
+ hints: editing ? [
1016
+ { keys: "type", label: "edit" },
1017
+ { keys: "\u2190/\u2192", label: "move cursor" },
1018
+ { keys: "\u23CE", label: "done" },
1019
+ { keys: "Esc", label: "cancel edit" }
1020
+ ] : [
1021
+ { keys: "\u2191/\u2193", label: "move" },
1022
+ { keys: "\u23CE", label: "edit" },
1023
+ { keys: "c", label: "clear" },
1024
+ { keys: "s", label: "save" },
1025
+ { keys: "Esc/q", label: "quit without saving" }
1026
+ ]
1027
+ }
1028
+ )
942
1029
  ] });
943
1030
  }
944
1031
 
945
1032
  // packages/experience-design-system-cli/src/tui/settings/opt-in-analytics/screen.tsx
946
- import { useEffect as useEffect5, useState as useState7 } from "react";
947
- import { Box as Box8, Text as Text8, useInput as useInput8 } from "ink";
1033
+ import { useEffect as useEffect5, useState as useState8 } from "react";
1034
+ import { Box as Box8, Text as Text9, useInput as useInput8 } from "ink";
948
1035
 
949
1036
  // packages/experience-design-system-cli/src/tui/settings/opt-in-analytics/analytics-store.ts
950
1037
  async function readAnalyticsSetting() {
@@ -962,10 +1049,10 @@ async function writeAnalyticsSetting(setting) {
962
1049
  }
963
1050
 
964
1051
  // packages/experience-design-system-cli/src/tui/settings/opt-in-analytics/screen.tsx
965
- import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
1052
+ import { Fragment as Fragment3, jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
966
1053
  function OptInAnalyticsScreen({ onDone }) {
967
- const [loading, setLoading] = useState7(true);
968
- const [enabled, setEnabled] = useState7(true);
1054
+ const [loading, setLoading] = useState8(true);
1055
+ const [enabled, setEnabled] = useState8(true);
969
1056
  useEffect5(() => {
970
1057
  readAnalyticsSetting().then((setting) => {
971
1058
  setEnabled(setting.enabled);
@@ -994,30 +1081,38 @@ function OptInAnalyticsScreen({ onDone }) {
994
1081
  }
995
1082
  });
996
1083
  return /* @__PURE__ */ jsxs8(Box8, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
997
- /* @__PURE__ */ jsx8(Text8, { bold: true, children: "Settings \u203A Opt-in Analytics" }),
998
- /* @__PURE__ */ jsx8(Text8, { children: " " }),
999
- loading ? /* @__PURE__ */ jsx8(Text8, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs8(Fragment2, { children: [
1000
- /* @__PURE__ */ jsxs8(Text8, { children: [
1084
+ /* @__PURE__ */ jsx9(Text9, { bold: true, children: "Settings \u203A Opt-in Analytics" }),
1085
+ /* @__PURE__ */ jsx9(Text9, { children: " " }),
1086
+ loading ? /* @__PURE__ */ jsx9(Text9, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs8(Fragment3, { children: [
1087
+ /* @__PURE__ */ jsxs8(Text9, { children: [
1001
1088
  "Share anonymous usage data:",
1002
1089
  " ",
1003
- /* @__PURE__ */ jsx8(Text8, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
1090
+ /* @__PURE__ */ jsx9(Text9, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
1004
1091
  ] }),
1005
- /* @__PURE__ */ jsx8(Text8, { children: " " }),
1006
- /* @__PURE__ */ jsx8(Text8, { dimColor: true, children: "Shares which CLI commands are used and where imports succeed or fail." }),
1007
- /* @__PURE__ */ jsx8(Text8, { dimColor: true, children: "Never includes source code, file paths, credentials, or authored content." })
1092
+ /* @__PURE__ */ jsx9(Text9, { children: " " }),
1093
+ /* @__PURE__ */ jsx9(Text9, { dimColor: true, children: "Shares which CLI commands are used and where imports succeed or fail." }),
1094
+ /* @__PURE__ */ jsx9(Text9, { dimColor: true, children: "Never includes source code, file paths, credentials, or authored content." })
1008
1095
  ] }),
1009
- /* @__PURE__ */ jsx8(Text8, { children: " " }),
1010
- /* @__PURE__ */ jsx8(Text8, { dimColor: true, children: "[Enter/Space] Toggle [Esc/q] Back to Settings" })
1096
+ /* @__PURE__ */ jsx9(Text9, { children: " " }),
1097
+ /* @__PURE__ */ jsx9(
1098
+ ControlHints,
1099
+ {
1100
+ hints: [
1101
+ { keys: "\u23CE/Space", label: "toggle" },
1102
+ { keys: "Esc/q", label: "back" }
1103
+ ]
1104
+ }
1105
+ )
1011
1106
  ] });
1012
1107
  }
1013
1108
 
1014
1109
  // packages/experience-design-system-cli/src/tui/upgrade/PageContainer.tsx
1015
- import { useEffect as useEffect6, useState as useState8 } from "react";
1016
- import { Box as Box9, Text as Text9, useInput as useInput9 } from "ink";
1017
- import { jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
1110
+ import { useEffect as useEffect6, useState as useState9 } from "react";
1111
+ import { Box as Box9, Text as Text10, useInput as useInput9 } from "ink";
1112
+ import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
1018
1113
  var UPGRADE_COMMANDS = ["git pull", "pnpm install", "pnpm build"];
1019
1114
  function UpgradeScreen({ onDone }) {
1020
- const [upgradeCheck, setUpgradeCheck] = useState8();
1115
+ const [upgradeCheck, setUpgradeCheck] = useState9();
1021
1116
  useEffect6(() => {
1022
1117
  startDebugRun({
1023
1118
  flow: "upgrade",
@@ -1039,11 +1134,11 @@ function UpgradeScreen({ onDone }) {
1039
1134
  }
1040
1135
  });
1041
1136
  return /* @__PURE__ */ jsxs9(Box9, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
1042
- /* @__PURE__ */ jsx9(Text9, { bold: true, children: "Upgrade" }),
1043
- /* @__PURE__ */ jsx9(Text9, { children: " " }),
1137
+ /* @__PURE__ */ jsx10(Text10, { bold: true, children: "Upgrade" }),
1138
+ /* @__PURE__ */ jsx10(Text10, { children: " " }),
1044
1139
  renderBody(upgradeCheck),
1045
- /* @__PURE__ */ jsx9(Text9, { children: " " }),
1046
- /* @__PURE__ */ jsxs9(Text9, { bold: true, color: PALETTE.accent, children: [
1140
+ /* @__PURE__ */ jsx10(Text10, { children: " " }),
1141
+ /* @__PURE__ */ jsxs9(Text10, { bold: true, color: PALETTE.accent, children: [
1047
1142
  FOCUS_MARKER,
1048
1143
  " Go Back"
1049
1144
  ] })
@@ -1051,44 +1146,44 @@ function UpgradeScreen({ onDone }) {
1051
1146
  }
1052
1147
  function renderBody(upgradeCheck) {
1053
1148
  if (!upgradeCheck) {
1054
- return /* @__PURE__ */ jsx9(Text9, { color: PALETTE.muted, children: "Checking for updates\u2026" });
1149
+ return /* @__PURE__ */ jsx10(Text10, { color: PALETTE.muted, children: "Checking for updates\u2026" });
1055
1150
  }
1056
1151
  if (upgradeCheck.status === "error") {
1057
- return /* @__PURE__ */ jsx9(Text9, { color: PALETTE.warning, children: "Couldn't check for updates \u2014 check your network connection and try again." });
1152
+ return /* @__PURE__ */ jsx10(Text10, { color: PALETTE.warning, children: "Couldn't check for updates \u2014 check your network connection and try again." });
1058
1153
  }
1059
1154
  if (upgradeCheck.status === "up-to-date") {
1060
- return /* @__PURE__ */ jsxs9(Text9, { color: PALETTE.success, children: [
1155
+ return /* @__PURE__ */ jsxs9(Text10, { color: PALETTE.success, children: [
1061
1156
  "You're already on the latest version (v",
1062
1157
  upgradeCheck.current,
1063
1158
  ")."
1064
1159
  ] });
1065
1160
  }
1066
1161
  return /* @__PURE__ */ jsxs9(Box9, { flexDirection: "column", children: [
1067
- /* @__PURE__ */ jsxs9(Text9, { color: PALETTE.muted, children: [
1068
- /* @__PURE__ */ jsxs9(Text9, { bold: true, color: PALETTE.success, children: [
1162
+ /* @__PURE__ */ jsxs9(Text10, { color: PALETTE.muted, children: [
1163
+ /* @__PURE__ */ jsxs9(Text10, { bold: true, color: PALETTE.success, children: [
1069
1164
  "v",
1070
1165
  upgradeCheck.latest
1071
1166
  ] }),
1072
1167
  " ",
1073
1168
  "is available (you're on ",
1074
- /* @__PURE__ */ jsxs9(Text9, { bold: true, children: [
1169
+ /* @__PURE__ */ jsxs9(Text10, { bold: true, children: [
1075
1170
  "v",
1076
1171
  upgradeCheck.current
1077
1172
  ] }),
1078
1173
  "). Exit this program, cd into the root of your local clone of contentful/experience-design-system-sdk-public, then run:"
1079
1174
  ] }),
1080
- /* @__PURE__ */ jsx9(Text9, { children: " " }),
1081
- /* @__PURE__ */ jsx9(Box9, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.border, paddingX: 1, children: UPGRADE_COMMANDS.map((cmd) => /* @__PURE__ */ jsx9(Text9, { bold: true, children: cmd }, cmd)) })
1175
+ /* @__PURE__ */ jsx10(Text10, { children: " " }),
1176
+ /* @__PURE__ */ jsx10(Box9, { flexDirection: "column", borderStyle: "round", borderColor: PALETTE.border, paddingX: 1, children: UPGRADE_COMMANDS.map((cmd) => /* @__PURE__ */ jsx10(Text10, { bold: true, children: cmd }, cmd)) })
1082
1177
  ] });
1083
1178
  }
1084
1179
 
1085
1180
  // packages/experience-design-system-cli/src/tui/settings/debug-mode/screen.tsx
1086
- import { useEffect as useEffect7, useState as useState9 } from "react";
1087
- import { Box as Box10, Text as Text10, useInput as useInput10 } from "ink";
1088
- import { jsx as jsx10, jsxs as jsxs10 } from "react/jsx-runtime";
1181
+ import { useEffect as useEffect7, useState as useState10 } from "react";
1182
+ import { Box as Box10, Text as Text11, useInput as useInput10 } from "ink";
1183
+ import { jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
1089
1184
  function DebugModeScreen({ onDone }) {
1090
- const [loading, setLoading] = useState9(true);
1091
- const [enabled, setEnabled] = useState9(true);
1185
+ const [loading, setLoading] = useState10(true);
1186
+ const [enabled, setEnabled] = useState10(true);
1092
1187
  useEffect7(() => {
1093
1188
  readDebugModeSetting().then((setting) => {
1094
1189
  setEnabled(setting.enabled);
@@ -1117,26 +1212,34 @@ function DebugModeScreen({ onDone }) {
1117
1212
  }
1118
1213
  });
1119
1214
  return /* @__PURE__ */ jsxs10(Box10, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
1120
- /* @__PURE__ */ jsx10(Text10, { bold: true, children: "Settings \u203A Debug Mode" }),
1121
- /* @__PURE__ */ jsx10(Text10, { children: " " }),
1122
- loading ? /* @__PURE__ */ jsx10(Text10, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs10(Text10, { children: [
1215
+ /* @__PURE__ */ jsx11(Text11, { bold: true, children: "Settings \u203A Debug Mode" }),
1216
+ /* @__PURE__ */ jsx11(Text11, { children: " " }),
1217
+ loading ? /* @__PURE__ */ jsx11(Text11, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs10(Text11, { children: [
1123
1218
  "Debug logging:",
1124
1219
  " ",
1125
- /* @__PURE__ */ jsx10(Text10, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
1220
+ /* @__PURE__ */ jsx11(Text11, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
1126
1221
  ] }),
1127
- /* @__PURE__ */ jsx10(Text10, { children: " " }),
1128
- /* @__PURE__ */ jsx10(Text10, { dimColor: true, children: "[Enter/Space] Toggle [Esc/q] Back to Settings" })
1222
+ /* @__PURE__ */ jsx11(Text11, { children: " " }),
1223
+ /* @__PURE__ */ jsx11(
1224
+ ControlHints,
1225
+ {
1226
+ hints: [
1227
+ { keys: "\u23CE/Space", label: "toggle" },
1228
+ { keys: "Esc/q", label: "back" }
1229
+ ]
1230
+ }
1231
+ )
1129
1232
  ] });
1130
1233
  }
1131
1234
 
1132
1235
  // packages/experience-design-system-cli/app.tsx
1133
- import { Fragment as Fragment3, jsx as jsx11 } from "react/jsx-runtime";
1236
+ import { Fragment as Fragment4, jsx as jsx12 } from "react/jsx-runtime";
1134
1237
  function App({ onLaunchImport, importExitCode }) {
1135
1238
  const returnedFromImport = importExitCode !== void 0;
1136
- const [screen, setScreen] = useState10(returnedFromImport ? "import" : "start");
1137
- const [showImportResult, setShowImportResult] = useState10(returnedFromImport);
1138
- const [projectPath, setProjectPath] = useState10();
1139
- const [importDefaults, setImportDefaults] = useState10();
1239
+ const [screen, setScreen] = useState11(returnedFromImport ? "import" : "start");
1240
+ const [showImportResult, setShowImportResult] = useState11(returnedFromImport);
1241
+ const [projectPath, setProjectPath] = useState11();
1242
+ const [importDefaults, setImportDefaults] = useState11();
1140
1243
  useEffect8(() => {
1141
1244
  if (screen !== "import") {
1142
1245
  setImportDefaults(void 0);
@@ -1159,12 +1262,12 @@ function App({ onLaunchImport, importExitCode }) {
1159
1262
  };
1160
1263
  switch (screen) {
1161
1264
  case "import":
1162
- if (showImportResult) return /* @__PURE__ */ jsx11(ImportScreen, { exitCode: importExitCode, onDone: finishImportResult });
1163
- if (importDefaults === void 0) return /* @__PURE__ */ jsx11(Fragment3, {});
1265
+ if (showImportResult) return /* @__PURE__ */ jsx12(ImportScreen, { exitCode: importExitCode, onDone: finishImportResult });
1266
+ if (importDefaults === void 0) return /* @__PURE__ */ jsx12(Fragment4, {});
1164
1267
  if (projectPath === void 0) {
1165
- return /* @__PURE__ */ jsx11(WelcomeScreen, { onContinue: setProjectPath, onQuit: leaveImport, initialPath: importDefaults.componentDir });
1268
+ return /* @__PURE__ */ jsx12(WelcomeScreen, { onContinue: setProjectPath, onQuit: leaveImport, initialPath: importDefaults.componentDir });
1166
1269
  }
1167
- return /* @__PURE__ */ jsx11(
1270
+ return /* @__PURE__ */ jsx12(
1168
1271
  TokenInputScreen,
1169
1272
  {
1170
1273
  initialPath: importDefaults.tokenFile,
@@ -1174,25 +1277,25 @@ function App({ onLaunchImport, importExitCode }) {
1174
1277
  }
1175
1278
  );
1176
1279
  case "help":
1177
- return /* @__PURE__ */ jsx11(HelpScreen, { onDone: goToStart });
1280
+ return /* @__PURE__ */ jsx12(HelpScreen, { onDone: goToStart });
1178
1281
  case "upgrade":
1179
- return /* @__PURE__ */ jsx11(UpgradeScreen, { onDone: goToStart });
1282
+ return /* @__PURE__ */ jsx12(UpgradeScreen, { onDone: goToStart });
1180
1283
  case "settings":
1181
- return /* @__PURE__ */ jsx11(SettingsScreen, { onNavigate: setScreen, onBack: goToStart });
1284
+ return /* @__PURE__ */ jsx12(SettingsScreen, { onNavigate: setScreen, onBack: goToStart });
1182
1285
  case "settings-configuration":
1183
- return /* @__PURE__ */ jsx11(ConfigurationScreen, { onDone: goToSettings });
1286
+ return /* @__PURE__ */ jsx12(ConfigurationScreen, { onDone: goToSettings });
1184
1287
  case "settings-opt-in-analytics":
1185
- return /* @__PURE__ */ jsx11(OptInAnalyticsScreen, { onDone: goToSettings });
1288
+ return /* @__PURE__ */ jsx12(OptInAnalyticsScreen, { onDone: goToSettings });
1186
1289
  case "settings-debug-mode":
1187
- return /* @__PURE__ */ jsx11(DebugModeScreen, { onDone: goToSettings });
1290
+ return /* @__PURE__ */ jsx12(DebugModeScreen, { onDone: goToSettings });
1188
1291
  case "start":
1189
- return /* @__PURE__ */ jsx11(HomeScreen, { onNavigate: setScreen });
1292
+ return /* @__PURE__ */ jsx12(HomeScreen, { onNavigate: setScreen });
1190
1293
  }
1191
1294
  }
1192
1295
  async function renderUntilImportRequestedOrExit(renderApp, importExitCode) {
1193
1296
  let requestedImport;
1194
1297
  const instance = renderApp(
1195
- /* @__PURE__ */ jsx11(
1298
+ /* @__PURE__ */ jsx12(
1196
1299
  App,
1197
1300
  {
1198
1301
  importExitCode,