@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/index.js CHANGED
@@ -167,10 +167,23 @@ var init_use_terminal_width = __esm({
167
167
  }
168
168
  });
169
169
 
170
+ // packages/experience-design-system-cli/src/tui/control-hints.tsx
171
+ import { Text } from "ink";
172
+ import { jsx } from "react/jsx-runtime";
173
+ function ControlHints({ hints }) {
174
+ return /* @__PURE__ */ jsx(Text, { color: PALETTE.muted, children: hints.map((hint) => `${hint.keys} ${hint.label}`).join(" \xB7 ") });
175
+ }
176
+ var init_control_hints = __esm({
177
+ "packages/experience-design-system-cli/src/tui/control-hints.tsx"() {
178
+ "use strict";
179
+ init_home_theme();
180
+ }
181
+ });
182
+
170
183
  // packages/experience-design-system-cli/src/tui/home/home.tsx
171
184
  import { useEffect as useEffect2, useState as useState2 } from "react";
172
- import { Box, Text, useApp, useInput } from "ink";
173
- import { jsx, jsxs } from "react/jsx-runtime";
185
+ import { Box, Text as Text2, useApp, useInput } from "ink";
186
+ import { jsx as jsx2, jsxs } from "react/jsx-runtime";
174
187
  function upgradeItemDisplay(upgradeCheck) {
175
188
  if (upgradeCheck?.status === "update-available") {
176
189
  return { label: `Upgrade Version (v${upgradeCheck.latest} available)`, color: PALETTE.success };
@@ -213,27 +226,27 @@ function HomeScreen({ onNavigate }) {
213
226
  });
214
227
  if (tooNarrow) {
215
228
  return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
216
- /* @__PURE__ */ jsx(Text, { bold: true, color: PALETTE.warning, children: "Terminal too small" }),
217
- /* @__PURE__ */ jsx(Text, { color: PALETTE.muted, children: "Press q to quit, make your terminal full screen, then run experiences import again." })
229
+ /* @__PURE__ */ jsx2(Text2, { bold: true, color: PALETTE.warning, children: "Terminal too small" }),
230
+ /* @__PURE__ */ jsx2(Text2, { color: PALETTE.muted, children: "Press q to quit, make your terminal full screen, then run experiences import again." })
218
231
  ] });
219
232
  }
220
233
  return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
221
234
  /* @__PURE__ */ jsxs(Box, { flexDirection: "column", alignItems: "center", children: [
222
- /* @__PURE__ */ jsx(Text, { bold: true, color: PALETTE.heading, children: HEADING }),
223
- /* @__PURE__ */ jsx(Text, { children: brandBar(HEADING.length).map((segment, i) => /* @__PURE__ */ jsx(Text, { color: segment.color, children: segment.text }, i)) }),
224
- /* @__PURE__ */ jsx(Text, { color: PALETTE.muted, children: SUBTITLE }),
225
- /* @__PURE__ */ jsxs(Text, { color: PALETTE.muted, children: [
235
+ /* @__PURE__ */ jsx2(Text2, { bold: true, color: PALETTE.heading, children: HEADING }),
236
+ /* @__PURE__ */ jsx2(Text2, { children: brandBar(HEADING.length).map((segment, i) => /* @__PURE__ */ jsx2(Text2, { color: segment.color, children: segment.text }, i)) }),
237
+ /* @__PURE__ */ jsx2(Text2, { color: PALETTE.muted, children: SUBTITLE }),
238
+ /* @__PURE__ */ jsxs(Text2, { color: PALETTE.muted, children: [
226
239
  "v",
227
240
  VERSION
228
241
  ] })
229
242
  ] }),
230
- /* @__PURE__ */ jsx(Box, { marginTop: 1, justifyContent: "center", children: /* @__PURE__ */ jsx(Box, { flexDirection: "column", children: START_ITEMS.map((item, i) => {
243
+ /* @__PURE__ */ jsx2(Box, { marginTop: 1, justifyContent: "center", children: /* @__PURE__ */ jsx2(Box, { flexDirection: "column", children: START_ITEMS.map((item, i) => {
231
244
  const focused = i === focusIdx;
232
245
  const isUpgradeItem = item.screen === "upgrade";
233
246
  const display = isUpgradeItem ? upgradeItemDisplay(upgradeCheck) : { label: item.label };
234
247
  const dimmed = isUpgradeItem && upgradeDisabled;
235
248
  return /* @__PURE__ */ jsxs(
236
- Text,
249
+ Text2,
237
250
  {
238
251
  bold: focused && !dimmed,
239
252
  dimColor: dimmed,
@@ -246,7 +259,16 @@ function HomeScreen({ onNavigate }) {
246
259
  item.label
247
260
  );
248
261
  }) }) }),
249
- /* @__PURE__ */ jsx(Box, { marginTop: 1, justifyContent: "center", children: /* @__PURE__ */ jsx(Text, { color: PALETTE.muted, children: "\u2191/\u2193 move \xB7 \u23CE select \xB7 q quit" }) })
262
+ /* @__PURE__ */ jsx2(Box, { marginTop: 1, justifyContent: "center", children: /* @__PURE__ */ jsx2(
263
+ ControlHints,
264
+ {
265
+ hints: [
266
+ { keys: "\u2191/\u2193", label: "move" },
267
+ { keys: "\u23CE", label: "select" },
268
+ { keys: "q", label: "quit" }
269
+ ]
270
+ }
271
+ ) })
250
272
  ] });
251
273
  }
252
274
  var VERSION, HEADING, SUBTITLE, MIN_TERMINAL_WIDTH, START_ITEMS;
@@ -256,6 +278,7 @@ var init_home = __esm({
256
278
  init_home_theme();
257
279
  init_version();
258
280
  init_use_terminal_width();
281
+ init_control_hints();
259
282
  VERSION = readPackageVersion();
260
283
  HEADING = "Contentful Experiences";
261
284
  SUBTITLE = "Let's import your design system into Contentful";
@@ -270,8 +293,8 @@ var init_home = __esm({
270
293
  });
271
294
 
272
295
  // packages/experience-design-system-cli/src/tui/import/PageContainer.tsx
273
- import { Box as Box2, Text as Text2, useInput as useInput2 } from "ink";
274
- import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
296
+ import { Box as Box2, Text as Text3, useInput as useInput2 } from "ink";
297
+ import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
275
298
  function ImportScreen({ exitCode, onDone }) {
276
299
  useInput2((input, key) => {
277
300
  if (key.return || key.escape || input === "q") {
@@ -280,14 +303,14 @@ function ImportScreen({ exitCode, onDone }) {
280
303
  });
281
304
  const isSuccess = exitCode === 0;
282
305
  return /* @__PURE__ */ jsxs2(Box2, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
283
- /* @__PURE__ */ jsx2(Text2, { bold: true, children: "Import" }),
284
- /* @__PURE__ */ jsx2(Text2, { children: " " }),
285
- isSuccess ? /* @__PURE__ */ jsx2(Text2, { color: PALETTE.success, children: "\u2713 Import complete" }) : /* @__PURE__ */ jsxs2(Text2, { color: PALETTE.error, children: [
306
+ /* @__PURE__ */ jsx3(Text3, { bold: true, children: "Import" }),
307
+ /* @__PURE__ */ jsx3(Text3, { children: " " }),
308
+ isSuccess ? /* @__PURE__ */ jsx3(Text3, { color: PALETTE.success, children: "\u2713 Import complete" }) : /* @__PURE__ */ jsxs2(Text3, { color: PALETTE.error, children: [
286
309
  "\u2717 Import failed: process exited with code ",
287
310
  exitCode ?? "unknown"
288
311
  ] }),
289
- /* @__PURE__ */ jsx2(Text2, { children: " " }),
290
- /* @__PURE__ */ jsx2(Text2, { dimColor: true, children: "[Enter] Back to Start" })
312
+ /* @__PURE__ */ jsx3(Text3, { children: " " }),
313
+ /* @__PURE__ */ jsx3(Text3, { dimColor: true, children: "[Enter] Back to Start" })
291
314
  ] });
292
315
  }
293
316
  var init_PageContainer = __esm({
@@ -333,9 +356,9 @@ var init_controls = __esm({
333
356
 
334
357
  // packages/experience-design-system-cli/src/tui/import/steps/01-welcome/screen.tsx
335
358
  import { useState as useState3 } from "react";
336
- import { Box as Box3, Text as Text3 } from "ink";
359
+ import { Box as Box3, Text as Text4 } from "ink";
337
360
  import TextInput from "ink-text-input";
338
- import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
361
+ import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
339
362
  function WelcomeScreen({ onContinue, onQuit, initialPath = "" }) {
340
363
  const [projectPath, setProjectPath] = useState3(initialPath);
341
364
  useWelcomeControls(projectPath, onQuit);
@@ -344,25 +367,25 @@ function WelcomeScreen({ onContinue, onQuit, initialPath = "" }) {
344
367
  if (path) onContinue(path);
345
368
  };
346
369
  return /* @__PURE__ */ jsxs3(Box3, { flexDirection: "column", gap: 1, paddingX: 2, paddingY: 1, children: [
347
- /* @__PURE__ */ jsx3(Text3, { bold: true, color: PALETTE.success, children: "\u{1F44B} Hey! Let's import your design system into Contentful." }),
348
- /* @__PURE__ */ jsx3(Text3, { dimColor: true, children: "I'll walk you through 5 steps to get your components into Contentful ExO." }),
370
+ /* @__PURE__ */ jsx4(Text4, { bold: true, color: PALETTE.success, children: "\u{1F44B} Hey! Let's import your design system into Contentful." }),
371
+ /* @__PURE__ */ jsx4(Text4, { dimColor: true, children: "I'll walk you through 5 steps to get your components into Contentful ExO." }),
349
372
  /* @__PURE__ */ jsxs3(Box3, { flexDirection: "column", marginTop: 1, children: [
350
- /* @__PURE__ */ jsx3(Text3, { dimColor: true, children: RULE }),
373
+ /* @__PURE__ */ jsx4(Text4, { dimColor: true, children: RULE }),
351
374
  OVERVIEW.map((item) => /* @__PURE__ */ jsxs3(Box3, { gap: 1, children: [
352
- /* @__PURE__ */ jsx3(Text3, { bold: true, children: item.label }),
353
- /* @__PURE__ */ jsx3(Text3, { dimColor: true, children: item.description })
375
+ /* @__PURE__ */ jsx4(Text4, { bold: true, children: item.label }),
376
+ /* @__PURE__ */ jsx4(Text4, { dimColor: true, children: item.description })
354
377
  ] }, item.label)),
355
- /* @__PURE__ */ jsx3(Text3, { dimColor: true, children: RULE })
378
+ /* @__PURE__ */ jsx4(Text4, { dimColor: true, children: RULE })
356
379
  ] }),
357
380
  /* @__PURE__ */ jsxs3(Box3, { flexDirection: "column", marginTop: 1, children: [
358
- /* @__PURE__ */ jsx3(Text3, { children: "Where is your component library?" }),
381
+ /* @__PURE__ */ jsx4(Text4, { children: "Where is your component library?" }),
359
382
  /* @__PURE__ */ jsxs3(Box3, { gap: 1, children: [
360
- /* @__PURE__ */ jsx3(Text3, { color: PALETTE.accent, children: "?" }),
361
- /* @__PURE__ */ jsx3(Text3, { children: "Project path:" }),
362
- /* @__PURE__ */ jsx3(TextInput, { value: projectPath, onChange: setProjectPath, onSubmit: submit })
383
+ /* @__PURE__ */ jsx4(Text4, { color: PALETTE.accent, children: "?" }),
384
+ /* @__PURE__ */ jsx4(Text4, { children: "Project path:" }),
385
+ /* @__PURE__ */ jsx4(TextInput, { value: projectPath, onChange: setProjectPath, onSubmit: submit })
363
386
  ] })
364
387
  ] }),
365
- /* @__PURE__ */ jsx3(Box3, { marginTop: 1, gap: 3, children: WELCOME_CONTROLS.map((control) => /* @__PURE__ */ jsxs3(Text3, { dimColor: true, children: [
388
+ /* @__PURE__ */ jsx4(Box3, { marginTop: 1, gap: 3, children: WELCOME_CONTROLS.map((control) => /* @__PURE__ */ jsxs3(Text4, { dimColor: true, children: [
366
389
  "[",
367
390
  control.keys,
368
391
  "] ",
@@ -468,9 +491,9 @@ var init_validate_path = __esm({
468
491
 
469
492
  // packages/experience-design-system-cli/src/tui/import/steps/02-token-input/screen.tsx
470
493
  import { useState as useState4 } from "react";
471
- import { Box as Box4, Text as Text4 } from "ink";
494
+ import { Box as Box4, Text as Text5 } from "ink";
472
495
  import TextInput2 from "ink-text-input";
473
- import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
496
+ import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
474
497
  function TokenInputScreen({
475
498
  onConfirm,
476
499
  onSkip,
@@ -495,26 +518,26 @@ function TokenInputScreen({
495
518
  else setFailure({ error: check.error, resolvedPath: check.resolvedPath });
496
519
  };
497
520
  return /* @__PURE__ */ jsxs4(Box4, { flexDirection: "column", gap: 1, paddingX: 2, paddingY: 1, children: [
498
- /* @__PURE__ */ jsx4(Text4, { bold: true, children: "Design tokens" }),
499
- /* @__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." }),
521
+ /* @__PURE__ */ jsx5(Text5, { bold: true, children: "Design tokens" }),
522
+ /* @__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." }),
500
523
  /* @__PURE__ */ jsxs4(Box4, { flexDirection: "column", marginTop: 1, children: [
501
524
  /* @__PURE__ */ jsxs4(Box4, { gap: 1, children: [
502
- /* @__PURE__ */ jsx4(Text4, { color: PALETTE.accent, children: "?" }),
503
- /* @__PURE__ */ jsx4(Text4, { children: "Token path:" }),
504
- /* @__PURE__ */ jsx4(TextInput2, { value: tokenPath, onChange: change, onSubmit: submit })
525
+ /* @__PURE__ */ jsx5(Text5, { color: PALETTE.accent, children: "?" }),
526
+ /* @__PURE__ */ jsx5(Text5, { children: "Token path:" }),
527
+ /* @__PURE__ */ jsx5(TextInput2, { value: tokenPath, onChange: change, onSubmit: submit })
505
528
  ] }),
506
529
  failure && /* @__PURE__ */ jsxs4(Box4, { flexDirection: "column", children: [
507
- /* @__PURE__ */ jsxs4(Text4, { color: PALETTE.error, children: [
530
+ /* @__PURE__ */ jsxs4(Text5, { color: PALETTE.error, children: [
508
531
  "\u2717 ",
509
532
  failure.error
510
533
  ] }),
511
- /* @__PURE__ */ jsxs4(Text4, { dimColor: true, children: [
534
+ /* @__PURE__ */ jsxs4(Text5, { dimColor: true, children: [
512
535
  " Resolved to: ",
513
536
  failure.resolvedPath
514
537
  ] })
515
538
  ] })
516
539
  ] }),
517
- /* @__PURE__ */ jsx4(Box4, { marginTop: 1, gap: 3, children: TOKEN_INPUT_CONTROLS.map((control) => /* @__PURE__ */ jsxs4(Text4, { dimColor: true, children: [
540
+ /* @__PURE__ */ jsx5(Box4, { marginTop: 1, gap: 3, children: TOKEN_INPUT_CONTROLS.map((control) => /* @__PURE__ */ jsxs4(Text5, { dimColor: true, children: [
518
541
  "[",
519
542
  control.keys,
520
543
  "] ",
@@ -684,6 +707,9 @@ function generateSessionId() {
684
707
  function sessionDebugDir() {
685
708
  return join5(debugSessionsDir(), SESSION_ID);
686
709
  }
710
+ function currentDebugSessionDir() {
711
+ return sessionDebugDir();
712
+ }
687
713
  async function isDebugModeEnabled() {
688
714
  try {
689
715
  return (await readDebugModeSetting()).enabled;
@@ -801,13 +827,55 @@ var init_debug_store = __esm({
801
827
  }
802
828
  });
803
829
 
830
+ // packages/experience-design-system-cli/src/tui/help/help-info.ts
831
+ async function readHelpInfo() {
832
+ const debugMode = await readDebugModeSetting();
833
+ return {
834
+ storage: [
835
+ { label: "Config folder", value: configRoot() },
836
+ { label: "Settings file", value: configFilePath() },
837
+ { label: "Debug logs", value: debugSessionsDir() }
838
+ ],
839
+ troubleshooting: [
840
+ { label: "CLI version", value: readPackageVersion() },
841
+ { label: "Node", value: process.version },
842
+ { label: "Platform", value: `${process.platform} ${process.arch}` },
843
+ { label: "Debug Mode", value: debugMode.enabled ? "on" : "off" },
844
+ {
845
+ label: "This session",
846
+ value: debugMode.enabled ? currentDebugSessionDir() : "no logs written while Debug Mode is off"
847
+ }
848
+ ]
849
+ };
850
+ }
851
+ var init_help_info = __esm({
852
+ "packages/experience-design-system-cli/src/tui/help/help-info.ts"() {
853
+ "use strict";
854
+ init_config();
855
+ init_debug_store();
856
+ init_debug_mode_store();
857
+ init_version();
858
+ }
859
+ });
860
+
804
861
  // packages/experience-design-system-cli/src/tui/help/PageContainer.tsx
805
- import { useEffect as useEffect3 } from "react";
806
- import { Box as Box5, Text as Text5, useInput as useInput5 } from "ink";
807
- import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
862
+ import { useEffect as useEffect3, useState as useState5 } from "react";
863
+ import { Box as Box5, Text as Text6, useInput as useInput5 } from "ink";
864
+ import { Fragment, jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
865
+ function Section({ title, rows }) {
866
+ return /* @__PURE__ */ jsxs5(Box5, { flexDirection: "column", children: [
867
+ /* @__PURE__ */ jsx6(Text6, { bold: true, color: PALETTE.accent, children: title }),
868
+ rows.map((row) => /* @__PURE__ */ jsxs5(Box5, { gap: 1, children: [
869
+ /* @__PURE__ */ jsx6(Box5, { width: 14, flexShrink: 0, children: /* @__PURE__ */ jsx6(Text6, { dimColor: true, children: row.label }) }),
870
+ /* @__PURE__ */ jsx6(Text6, { children: row.value })
871
+ ] }, row.label))
872
+ ] });
873
+ }
808
874
  function HelpScreen({ onDone }) {
875
+ const [info, setInfo] = useState5();
809
876
  useEffect3(() => {
810
877
  startDebugRun({ flow: "help", step: "01-help", menuOption: "Help", inputs: {} });
878
+ void readHelpInfo().then(setInfo);
811
879
  }, []);
812
880
  const leave = (exitMethod) => {
813
881
  void finishDebugRun({ outputs: {}, status: "success", exitMethod });
@@ -823,30 +891,43 @@ function HelpScreen({ onDone }) {
823
891
  return;
824
892
  }
825
893
  });
826
- return /* @__PURE__ */ jsxs5(Box5, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
827
- /* @__PURE__ */ jsx5(Text5, { bold: true, children: "Help" }),
828
- /* @__PURE__ */ jsx5(Text5, { children: " " }),
829
- /* @__PURE__ */ jsx5(Text5, { children: "This is a placeholder screen for v2 help content." }),
830
- /* @__PURE__ */ jsx5(Text5, { children: " " }),
831
- /* @__PURE__ */ jsx5(Text5, { dimColor: true, children: "[Enter] Complete [Esc/q] Exit \u2014 both return to Start" })
894
+ return /* @__PURE__ */ jsxs5(Box5, { flexDirection: "column", paddingX: 2, paddingY: 1, gap: 1, children: [
895
+ /* @__PURE__ */ jsx6(Text6, { bold: true, children: "Help" }),
896
+ info ? /* @__PURE__ */ jsxs5(Fragment, { children: [
897
+ /* @__PURE__ */ jsx6(Section, { title: "Where things are stored", rows: info.storage }),
898
+ /* @__PURE__ */ jsx6(Section, { title: "Troubleshooting", rows: info.troubleshooting }),
899
+ /* @__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." })
900
+ ] }) : /* @__PURE__ */ jsx6(Text6, { color: PALETTE.accent, children: "Loading..." }),
901
+ /* @__PURE__ */ jsx6(
902
+ ControlHints,
903
+ {
904
+ hints: [
905
+ { keys: "\u23CE", label: "done" },
906
+ { keys: "Esc/q", label: "back to start" }
907
+ ]
908
+ }
909
+ )
832
910
  ] });
833
911
  }
834
912
  var init_PageContainer2 = __esm({
835
913
  "packages/experience-design-system-cli/src/tui/help/PageContainer.tsx"() {
836
914
  "use strict";
915
+ init_home_theme();
837
916
  init_debug_store();
917
+ init_control_hints();
918
+ init_help_info();
838
919
  }
839
920
  });
840
921
 
841
922
  // packages/experience-design-system-cli/src/tui/settings/PageContainer.tsx
842
- import { useState as useState5 } from "react";
843
- import { Box as Box6, Text as Text6, useInput as useInput6 } from "ink";
844
- import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
923
+ import { useState as useState6 } from "react";
924
+ import { Box as Box6, Text as Text7, useInput as useInput6 } from "ink";
925
+ import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
845
926
  function SettingsScreen({
846
927
  onNavigate,
847
928
  onBack
848
929
  }) {
849
- const [focusIdx, setFocusIdx] = useState5(0);
930
+ const [focusIdx, setFocusIdx] = useState6(0);
850
931
  const items = [
851
932
  { label: "Configuration", screen: "settings-configuration" },
852
933
  { label: "Opt-in Analytics", screen: "settings-opt-in-analytics" },
@@ -873,19 +954,29 @@ function SettingsScreen({
873
954
  }
874
955
  });
875
956
  return /* @__PURE__ */ jsxs6(Box6, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
876
- /* @__PURE__ */ jsx6(Text6, { bold: true, children: "Settings" }),
877
- /* @__PURE__ */ jsx6(Text6, { children: " " }),
878
- items.map((item, i) => /* @__PURE__ */ jsxs6(Text6, { color: i === focusIdx ? "cyan" : void 0, children: [
957
+ /* @__PURE__ */ jsx7(Text7, { bold: true, children: "Settings" }),
958
+ /* @__PURE__ */ jsx7(Text7, { children: " " }),
959
+ items.map((item, i) => /* @__PURE__ */ jsxs6(Text7, { color: i === focusIdx ? "cyan" : void 0, children: [
879
960
  i === focusIdx ? "> " : " ",
880
961
  item.label
881
962
  ] }, item.label)),
882
- /* @__PURE__ */ jsx6(Text6, { children: " " }),
883
- /* @__PURE__ */ jsx6(Text6, { dimColor: true, children: "[\u2191/\u2193] Navigate [Enter] Select [Esc/q] Back to Start" })
963
+ /* @__PURE__ */ jsx7(Text7, { children: " " }),
964
+ /* @__PURE__ */ jsx7(
965
+ ControlHints,
966
+ {
967
+ hints: [
968
+ { keys: "\u2191/\u2193", label: "move" },
969
+ { keys: "\u23CE", label: "select" },
970
+ { keys: "Esc/q", label: "back" }
971
+ ]
972
+ }
973
+ )
884
974
  ] });
885
975
  }
886
976
  var init_PageContainer3 = __esm({
887
977
  "packages/experience-design-system-cli/src/tui/settings/PageContainer.tsx"() {
888
978
  "use strict";
979
+ init_control_hints();
889
980
  }
890
981
  });
891
982
 
@@ -931,10 +1022,10 @@ var init_config_store = __esm({
931
1022
  });
932
1023
 
933
1024
  // packages/experience-design-system-cli/src/tui/settings/contentful-configuration/ContentfulConfigScreen.tsx
934
- import { useEffect as useEffect4, useState as useState6 } from "react";
935
- import { Box as Box7, Text as Text7, useInput as useInput7 } from "ink";
1025
+ import { useEffect as useEffect4, useState as useState7 } from "react";
1026
+ import { Box as Box7, Text as Text8, useInput as useInput7 } from "ink";
936
1027
  import TextInput3 from "ink-text-input";
937
- import { Fragment, jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
1028
+ import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
938
1029
  function debugFields(config) {
939
1030
  return {
940
1031
  space_id: config?.spaceId ?? "",
@@ -946,13 +1037,13 @@ function debugFields(config) {
946
1037
  };
947
1038
  }
948
1039
  function ConfigurationScreen({ onDone }) {
949
- const [stage, setStage] = useState6("loading");
950
- const [config, setConfig] = useState6(null);
951
- const [activeField, setActiveField] = useState6("spaceId");
952
- const [notice, setNotice] = useState6(null);
953
- const [lastSaved, setLastSaved] = useState6(null);
954
- const [editing, setEditing] = useState6(false);
955
- const [valueBeforeEdit, setValueBeforeEdit] = useState6("");
1040
+ const [stage, setStage] = useState7("loading");
1041
+ const [config, setConfig] = useState7(null);
1042
+ const [activeField, setActiveField] = useState7("spaceId");
1043
+ const [notice, setNotice] = useState7(null);
1044
+ const [lastSaved, setLastSaved] = useState7(null);
1045
+ const [editing, setEditing] = useState7(false);
1046
+ const [valueBeforeEdit, setValueBeforeEdit] = useState7("");
956
1047
  useEffect4(() => {
957
1048
  readCredentials().then((cfg) => {
958
1049
  setConfig(cfg);
@@ -1031,25 +1122,25 @@ function ConfigurationScreen({ onDone }) {
1031
1122
  });
1032
1123
  if (stage === "loading") {
1033
1124
  return /* @__PURE__ */ jsxs7(Box7, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
1034
- /* @__PURE__ */ jsx7(Text7, { bold: true, children: "Configuration" }),
1035
- /* @__PURE__ */ jsx7(Text7, { children: " " }),
1036
- /* @__PURE__ */ jsx7(Text7, { color: PALETTE.accent, children: "Loading..." })
1125
+ /* @__PURE__ */ jsx8(Text8, { bold: true, children: "Configuration" }),
1126
+ /* @__PURE__ */ jsx8(Text8, { children: " " }),
1127
+ /* @__PURE__ */ jsx8(Text8, { color: PALETTE.accent, children: "Loading..." })
1037
1128
  ] });
1038
1129
  }
1039
1130
  return /* @__PURE__ */ jsxs7(Box7, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
1040
- /* @__PURE__ */ jsx7(Text7, { bold: true, children: "Configuration" }),
1041
- /* @__PURE__ */ jsx7(Text7, { children: " " }),
1042
- /* @__PURE__ */ jsx7(Box7, { flexDirection: "column", children: FIELD_ORDER.map((field) => {
1131
+ /* @__PURE__ */ jsx8(Text8, { bold: true, children: "Configuration" }),
1132
+ /* @__PURE__ */ jsx8(Text8, { children: " " }),
1133
+ /* @__PURE__ */ jsx8(Box7, { flexDirection: "column", children: FIELD_ORDER.map((field) => {
1043
1134
  const isActive = activeField === field;
1044
1135
  const value = fieldValue(field);
1045
1136
  const display = field === "cmaToken" ? "\u2022".repeat(value.length) : value;
1046
1137
  return /* @__PURE__ */ jsxs7(Box7, { gap: 1, children: [
1047
- /* @__PURE__ */ jsx7(Text7, { color: isActive ? PALETTE.accent : void 0, children: isActive ? "\u276F" : " " }),
1048
- /* @__PURE__ */ jsxs7(Text7, { bold: isActive, children: [
1138
+ /* @__PURE__ */ jsx8(Text8, { color: isActive ? PALETTE.accent : void 0, children: isActive ? "\u276F" : " " }),
1139
+ /* @__PURE__ */ jsxs7(Text8, { bold: isActive, children: [
1049
1140
  FIELD_LABELS[field],
1050
1141
  ":"
1051
1142
  ] }),
1052
- isActive && editing ? /* @__PURE__ */ jsx7(
1143
+ isActive && editing ? /* @__PURE__ */ jsx8(
1053
1144
  TextInput3,
1054
1145
  {
1055
1146
  value,
@@ -1057,19 +1148,35 @@ function ConfigurationScreen({ onDone }) {
1057
1148
  onSubmit: () => setEditing(false),
1058
1149
  mask: field === "cmaToken" ? "\u2022" : void 0
1059
1150
  }
1060
- ) : /* @__PURE__ */ jsx7(Text7, { children: display || /* @__PURE__ */ jsx7(Text7, { dimColor: true, children: "(empty)" }) })
1151
+ ) : /* @__PURE__ */ jsx8(Text8, { children: display || /* @__PURE__ */ jsx8(Text8, { dimColor: true, children: "(empty)" }) })
1061
1152
  ] }, field);
1062
1153
  }) }),
1063
- notice && /* @__PURE__ */ jsxs7(Fragment, { children: [
1064
- /* @__PURE__ */ jsx7(Text7, { children: " " }),
1065
- /* @__PURE__ */ jsxs7(Text7, { color: notice.kind === "success" ? PALETTE.success : PALETTE.error, children: [
1154
+ notice && /* @__PURE__ */ jsxs7(Fragment2, { children: [
1155
+ /* @__PURE__ */ jsx8(Text8, { children: " " }),
1156
+ /* @__PURE__ */ jsxs7(Text8, { color: notice.kind === "success" ? PALETTE.success : PALETTE.error, children: [
1066
1157
  notice.kind === "success" ? "\u2713" : "\u2717",
1067
1158
  " ",
1068
1159
  notice.text
1069
1160
  ] })
1070
1161
  ] }),
1071
- /* @__PURE__ */ jsx7(Text7, { children: " " }),
1072
- /* @__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" })
1162
+ /* @__PURE__ */ jsx8(Text8, { children: " " }),
1163
+ /* @__PURE__ */ jsx8(
1164
+ ControlHints,
1165
+ {
1166
+ hints: editing ? [
1167
+ { keys: "type", label: "edit" },
1168
+ { keys: "\u2190/\u2192", label: "move cursor" },
1169
+ { keys: "\u23CE", label: "done" },
1170
+ { keys: "Esc", label: "cancel edit" }
1171
+ ] : [
1172
+ { keys: "\u2191/\u2193", label: "move" },
1173
+ { keys: "\u23CE", label: "edit" },
1174
+ { keys: "c", label: "clear" },
1175
+ { keys: "s", label: "save" },
1176
+ { keys: "Esc/q", label: "quit without saving" }
1177
+ ]
1178
+ }
1179
+ )
1073
1180
  ] });
1074
1181
  }
1075
1182
  var FIELD_ORDER, FIELD_LABELS;
@@ -1079,6 +1186,7 @@ var init_ContentfulConfigScreen = __esm({
1079
1186
  init_home_theme();
1080
1187
  init_config_store();
1081
1188
  init_debug_store();
1189
+ init_control_hints();
1082
1190
  FIELD_ORDER = [
1083
1191
  "spaceId",
1084
1192
  "environmentId",
@@ -1120,12 +1228,12 @@ var init_analytics_store = __esm({
1120
1228
  });
1121
1229
 
1122
1230
  // packages/experience-design-system-cli/src/tui/settings/opt-in-analytics/screen.tsx
1123
- import { useEffect as useEffect5, useState as useState7 } from "react";
1124
- import { Box as Box8, Text as Text8, useInput as useInput8 } from "ink";
1125
- import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
1231
+ import { useEffect as useEffect5, useState as useState8 } from "react";
1232
+ import { Box as Box8, Text as Text9, useInput as useInput8 } from "ink";
1233
+ import { Fragment as Fragment3, jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
1126
1234
  function OptInAnalyticsScreen({ onDone }) {
1127
- const [loading, setLoading] = useState7(true);
1128
- const [enabled, setEnabled] = useState7(true);
1235
+ const [loading, setLoading] = useState8(true);
1236
+ const [enabled, setEnabled] = useState8(true);
1129
1237
  useEffect5(() => {
1130
1238
  readAnalyticsSetting().then((setting) => {
1131
1239
  setEnabled(setting.enabled);
@@ -1154,20 +1262,28 @@ function OptInAnalyticsScreen({ onDone }) {
1154
1262
  }
1155
1263
  });
1156
1264
  return /* @__PURE__ */ jsxs8(Box8, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
1157
- /* @__PURE__ */ jsx8(Text8, { bold: true, children: "Settings \u203A Opt-in Analytics" }),
1158
- /* @__PURE__ */ jsx8(Text8, { children: " " }),
1159
- loading ? /* @__PURE__ */ jsx8(Text8, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs8(Fragment2, { children: [
1160
- /* @__PURE__ */ jsxs8(Text8, { children: [
1265
+ /* @__PURE__ */ jsx9(Text9, { bold: true, children: "Settings \u203A Opt-in Analytics" }),
1266
+ /* @__PURE__ */ jsx9(Text9, { children: " " }),
1267
+ loading ? /* @__PURE__ */ jsx9(Text9, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs8(Fragment3, { children: [
1268
+ /* @__PURE__ */ jsxs8(Text9, { children: [
1161
1269
  "Share anonymous usage data:",
1162
1270
  " ",
1163
- /* @__PURE__ */ jsx8(Text8, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
1271
+ /* @__PURE__ */ jsx9(Text9, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
1164
1272
  ] }),
1165
- /* @__PURE__ */ jsx8(Text8, { children: " " }),
1166
- /* @__PURE__ */ jsx8(Text8, { dimColor: true, children: "Shares which CLI commands are used and where imports succeed or fail." }),
1167
- /* @__PURE__ */ jsx8(Text8, { dimColor: true, children: "Never includes source code, file paths, credentials, or authored content." })
1273
+ /* @__PURE__ */ jsx9(Text9, { children: " " }),
1274
+ /* @__PURE__ */ jsx9(Text9, { dimColor: true, children: "Shares which CLI commands are used and where imports succeed or fail." }),
1275
+ /* @__PURE__ */ jsx9(Text9, { dimColor: true, children: "Never includes source code, file paths, credentials, or authored content." })
1168
1276
  ] }),
1169
- /* @__PURE__ */ jsx8(Text8, { children: " " }),
1170
- /* @__PURE__ */ jsx8(Text8, { dimColor: true, children: "[Enter/Space] Toggle [Esc/q] Back to Settings" })
1277
+ /* @__PURE__ */ jsx9(Text9, { children: " " }),
1278
+ /* @__PURE__ */ jsx9(
1279
+ ControlHints,
1280
+ {
1281
+ hints: [
1282
+ { keys: "\u23CE/Space", label: "toggle" },
1283
+ { keys: "Esc/q", label: "back" }
1284
+ ]
1285
+ }
1286
+ )
1171
1287
  ] });
1172
1288
  }
1173
1289
  var init_screen3 = __esm({
@@ -1176,15 +1292,16 @@ var init_screen3 = __esm({
1176
1292
  init_home_theme();
1177
1293
  init_analytics_store();
1178
1294
  init_debug_store();
1295
+ init_control_hints();
1179
1296
  }
1180
1297
  });
1181
1298
 
1182
1299
  // packages/experience-design-system-cli/src/tui/upgrade/PageContainer.tsx
1183
- import { useEffect as useEffect6, useState as useState8 } from "react";
1184
- import { Box as Box9, Text as Text9, useInput as useInput9 } from "ink";
1185
- import { jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
1300
+ import { useEffect as useEffect6, useState as useState9 } from "react";
1301
+ import { Box as Box9, Text as Text10, useInput as useInput9 } from "ink";
1302
+ import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
1186
1303
  function UpgradeScreen({ onDone }) {
1187
- const [upgradeCheck, setUpgradeCheck] = useState8();
1304
+ const [upgradeCheck, setUpgradeCheck] = useState9();
1188
1305
  useEffect6(() => {
1189
1306
  startDebugRun({
1190
1307
  flow: "upgrade",
@@ -1206,11 +1323,11 @@ function UpgradeScreen({ onDone }) {
1206
1323
  }
1207
1324
  });
1208
1325
  return /* @__PURE__ */ jsxs9(Box9, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
1209
- /* @__PURE__ */ jsx9(Text9, { bold: true, children: "Upgrade" }),
1210
- /* @__PURE__ */ jsx9(Text9, { children: " " }),
1326
+ /* @__PURE__ */ jsx10(Text10, { bold: true, children: "Upgrade" }),
1327
+ /* @__PURE__ */ jsx10(Text10, { children: " " }),
1211
1328
  renderBody(upgradeCheck),
1212
- /* @__PURE__ */ jsx9(Text9, { children: " " }),
1213
- /* @__PURE__ */ jsxs9(Text9, { bold: true, color: PALETTE.accent, children: [
1329
+ /* @__PURE__ */ jsx10(Text10, { children: " " }),
1330
+ /* @__PURE__ */ jsxs9(Text10, { bold: true, color: PALETTE.accent, children: [
1214
1331
  FOCUS_MARKER,
1215
1332
  " Go Back"
1216
1333
  ] })
@@ -1218,34 +1335,34 @@ function UpgradeScreen({ onDone }) {
1218
1335
  }
1219
1336
  function renderBody(upgradeCheck) {
1220
1337
  if (!upgradeCheck) {
1221
- return /* @__PURE__ */ jsx9(Text9, { color: PALETTE.muted, children: "Checking for updates\u2026" });
1338
+ return /* @__PURE__ */ jsx10(Text10, { color: PALETTE.muted, children: "Checking for updates\u2026" });
1222
1339
  }
1223
1340
  if (upgradeCheck.status === "error") {
1224
- return /* @__PURE__ */ jsx9(Text9, { color: PALETTE.warning, children: "Couldn't check for updates \u2014 check your network connection and try again." });
1341
+ return /* @__PURE__ */ jsx10(Text10, { color: PALETTE.warning, children: "Couldn't check for updates \u2014 check your network connection and try again." });
1225
1342
  }
1226
1343
  if (upgradeCheck.status === "up-to-date") {
1227
- return /* @__PURE__ */ jsxs9(Text9, { color: PALETTE.success, children: [
1344
+ return /* @__PURE__ */ jsxs9(Text10, { color: PALETTE.success, children: [
1228
1345
  "You're already on the latest version (v",
1229
1346
  upgradeCheck.current,
1230
1347
  ")."
1231
1348
  ] });
1232
1349
  }
1233
1350
  return /* @__PURE__ */ jsxs9(Box9, { flexDirection: "column", children: [
1234
- /* @__PURE__ */ jsxs9(Text9, { color: PALETTE.muted, children: [
1235
- /* @__PURE__ */ jsxs9(Text9, { bold: true, color: PALETTE.success, children: [
1351
+ /* @__PURE__ */ jsxs9(Text10, { color: PALETTE.muted, children: [
1352
+ /* @__PURE__ */ jsxs9(Text10, { bold: true, color: PALETTE.success, children: [
1236
1353
  "v",
1237
1354
  upgradeCheck.latest
1238
1355
  ] }),
1239
1356
  " ",
1240
1357
  "is available (you're on ",
1241
- /* @__PURE__ */ jsxs9(Text9, { bold: true, children: [
1358
+ /* @__PURE__ */ jsxs9(Text10, { bold: true, children: [
1242
1359
  "v",
1243
1360
  upgradeCheck.current
1244
1361
  ] }),
1245
1362
  "). Exit this program, cd into the root of your local clone of contentful/experience-design-system-sdk-public, then run:"
1246
1363
  ] }),
1247
- /* @__PURE__ */ jsx9(Text9, { children: " " }),
1248
- /* @__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)) })
1364
+ /* @__PURE__ */ jsx10(Text10, { children: " " }),
1365
+ /* @__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)) })
1249
1366
  ] });
1250
1367
  }
1251
1368
  var UPGRADE_COMMANDS;
@@ -1260,12 +1377,12 @@ var init_PageContainer4 = __esm({
1260
1377
  });
1261
1378
 
1262
1379
  // packages/experience-design-system-cli/src/tui/settings/debug-mode/screen.tsx
1263
- import { useEffect as useEffect7, useState as useState9 } from "react";
1264
- import { Box as Box10, Text as Text10, useInput as useInput10 } from "ink";
1265
- import { jsx as jsx10, jsxs as jsxs10 } from "react/jsx-runtime";
1380
+ import { useEffect as useEffect7, useState as useState10 } from "react";
1381
+ import { Box as Box10, Text as Text11, useInput as useInput10 } from "ink";
1382
+ import { jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
1266
1383
  function DebugModeScreen({ onDone }) {
1267
- const [loading, setLoading] = useState9(true);
1268
- const [enabled, setEnabled] = useState9(true);
1384
+ const [loading, setLoading] = useState10(true);
1385
+ const [enabled, setEnabled] = useState10(true);
1269
1386
  useEffect7(() => {
1270
1387
  readDebugModeSetting().then((setting) => {
1271
1388
  setEnabled(setting.enabled);
@@ -1294,15 +1411,23 @@ function DebugModeScreen({ onDone }) {
1294
1411
  }
1295
1412
  });
1296
1413
  return /* @__PURE__ */ jsxs10(Box10, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
1297
- /* @__PURE__ */ jsx10(Text10, { bold: true, children: "Settings \u203A Debug Mode" }),
1298
- /* @__PURE__ */ jsx10(Text10, { children: " " }),
1299
- loading ? /* @__PURE__ */ jsx10(Text10, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs10(Text10, { children: [
1414
+ /* @__PURE__ */ jsx11(Text11, { bold: true, children: "Settings \u203A Debug Mode" }),
1415
+ /* @__PURE__ */ jsx11(Text11, { children: " " }),
1416
+ loading ? /* @__PURE__ */ jsx11(Text11, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs10(Text11, { children: [
1300
1417
  "Debug logging:",
1301
1418
  " ",
1302
- /* @__PURE__ */ jsx10(Text10, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
1419
+ /* @__PURE__ */ jsx11(Text11, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
1303
1420
  ] }),
1304
- /* @__PURE__ */ jsx10(Text10, { children: " " }),
1305
- /* @__PURE__ */ jsx10(Text10, { dimColor: true, children: "[Enter/Space] Toggle [Esc/q] Back to Settings" })
1421
+ /* @__PURE__ */ jsx11(Text11, { children: " " }),
1422
+ /* @__PURE__ */ jsx11(
1423
+ ControlHints,
1424
+ {
1425
+ hints: [
1426
+ { keys: "\u23CE/Space", label: "toggle" },
1427
+ { keys: "Esc/q", label: "back" }
1428
+ ]
1429
+ }
1430
+ )
1306
1431
  ] });
1307
1432
  }
1308
1433
  var init_screen4 = __esm({
@@ -1311,6 +1436,7 @@ var init_screen4 = __esm({
1311
1436
  init_home_theme();
1312
1437
  init_debug_mode_store();
1313
1438
  init_debug_store();
1439
+ init_control_hints();
1314
1440
  }
1315
1441
  });
1316
1442
 
@@ -1319,14 +1445,14 @@ var app_exports = {};
1319
1445
  __export(app_exports, {
1320
1446
  runApp: () => runApp
1321
1447
  });
1322
- import { useEffect as useEffect8, useState as useState10 } from "react";
1323
- import { Fragment as Fragment3, jsx as jsx11 } from "react/jsx-runtime";
1448
+ import { useEffect as useEffect8, useState as useState11 } from "react";
1449
+ import { Fragment as Fragment4, jsx as jsx12 } from "react/jsx-runtime";
1324
1450
  function App({ onLaunchImport, importExitCode }) {
1325
1451
  const returnedFromImport = importExitCode !== void 0;
1326
- const [screen, setScreen] = useState10(returnedFromImport ? "import" : "start");
1327
- const [showImportResult, setShowImportResult] = useState10(returnedFromImport);
1328
- const [projectPath, setProjectPath] = useState10();
1329
- const [importDefaults, setImportDefaults] = useState10();
1452
+ const [screen, setScreen] = useState11(returnedFromImport ? "import" : "start");
1453
+ const [showImportResult, setShowImportResult] = useState11(returnedFromImport);
1454
+ const [projectPath, setProjectPath] = useState11();
1455
+ const [importDefaults, setImportDefaults] = useState11();
1330
1456
  useEffect8(() => {
1331
1457
  if (screen !== "import") {
1332
1458
  setImportDefaults(void 0);
@@ -1349,12 +1475,12 @@ function App({ onLaunchImport, importExitCode }) {
1349
1475
  };
1350
1476
  switch (screen) {
1351
1477
  case "import":
1352
- if (showImportResult) return /* @__PURE__ */ jsx11(ImportScreen, { exitCode: importExitCode, onDone: finishImportResult });
1353
- if (importDefaults === void 0) return /* @__PURE__ */ jsx11(Fragment3, {});
1478
+ if (showImportResult) return /* @__PURE__ */ jsx12(ImportScreen, { exitCode: importExitCode, onDone: finishImportResult });
1479
+ if (importDefaults === void 0) return /* @__PURE__ */ jsx12(Fragment4, {});
1354
1480
  if (projectPath === void 0) {
1355
- return /* @__PURE__ */ jsx11(WelcomeScreen, { onContinue: setProjectPath, onQuit: leaveImport, initialPath: importDefaults.componentDir });
1481
+ return /* @__PURE__ */ jsx12(WelcomeScreen, { onContinue: setProjectPath, onQuit: leaveImport, initialPath: importDefaults.componentDir });
1356
1482
  }
1357
- return /* @__PURE__ */ jsx11(
1483
+ return /* @__PURE__ */ jsx12(
1358
1484
  TokenInputScreen,
1359
1485
  {
1360
1486
  initialPath: importDefaults.tokenFile,
@@ -1364,25 +1490,25 @@ function App({ onLaunchImport, importExitCode }) {
1364
1490
  }
1365
1491
  );
1366
1492
  case "help":
1367
- return /* @__PURE__ */ jsx11(HelpScreen, { onDone: goToStart });
1493
+ return /* @__PURE__ */ jsx12(HelpScreen, { onDone: goToStart });
1368
1494
  case "upgrade":
1369
- return /* @__PURE__ */ jsx11(UpgradeScreen, { onDone: goToStart });
1495
+ return /* @__PURE__ */ jsx12(UpgradeScreen, { onDone: goToStart });
1370
1496
  case "settings":
1371
- return /* @__PURE__ */ jsx11(SettingsScreen, { onNavigate: setScreen, onBack: goToStart });
1497
+ return /* @__PURE__ */ jsx12(SettingsScreen, { onNavigate: setScreen, onBack: goToStart });
1372
1498
  case "settings-configuration":
1373
- return /* @__PURE__ */ jsx11(ConfigurationScreen, { onDone: goToSettings });
1499
+ return /* @__PURE__ */ jsx12(ConfigurationScreen, { onDone: goToSettings });
1374
1500
  case "settings-opt-in-analytics":
1375
- return /* @__PURE__ */ jsx11(OptInAnalyticsScreen, { onDone: goToSettings });
1501
+ return /* @__PURE__ */ jsx12(OptInAnalyticsScreen, { onDone: goToSettings });
1376
1502
  case "settings-debug-mode":
1377
- return /* @__PURE__ */ jsx11(DebugModeScreen, { onDone: goToSettings });
1503
+ return /* @__PURE__ */ jsx12(DebugModeScreen, { onDone: goToSettings });
1378
1504
  case "start":
1379
- return /* @__PURE__ */ jsx11(HomeScreen, { onNavigate: setScreen });
1505
+ return /* @__PURE__ */ jsx12(HomeScreen, { onNavigate: setScreen });
1380
1506
  }
1381
1507
  }
1382
1508
  async function renderUntilImportRequestedOrExit(renderApp, importExitCode) {
1383
1509
  let requestedImport;
1384
1510
  const instance = renderApp(
1385
- /* @__PURE__ */ jsx11(
1511
+ /* @__PURE__ */ jsx12(
1386
1512
  App,
1387
1513
  {
1388
1514
  importExitCode,