@contentful/experience-design-system-cli 2.36.2-dev-build-4fe2ee93.0 → 2.36.2-dev-build-4bcc1e36.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,9 +707,6 @@ function generateSessionId() {
684
707
  function sessionDebugDir() {
685
708
  return join5(debugSessionsDir(), SESSION_ID);
686
709
  }
687
- function currentDebugSessionDir() {
688
- return sessionDebugDir();
689
- }
690
710
  async function isDebugModeEnabled() {
691
711
  try {
692
712
  return (await readDebugModeSetting()).enabled;
@@ -804,55 +824,13 @@ var init_debug_store = __esm({
804
824
  }
805
825
  });
806
826
 
807
- // packages/experience-design-system-cli/src/tui/help/help-info.ts
808
- async function readHelpInfo() {
809
- const debugMode = await readDebugModeSetting();
810
- return {
811
- storage: [
812
- { label: "Config folder", value: configRoot() },
813
- { label: "Settings file", value: configFilePath() },
814
- { label: "Debug logs", value: debugSessionsDir() }
815
- ],
816
- troubleshooting: [
817
- { label: "CLI version", value: readPackageVersion() },
818
- { label: "Node", value: process.version },
819
- { label: "Platform", value: `${process.platform} ${process.arch}` },
820
- { label: "Debug Mode", value: debugMode.enabled ? "on" : "off" },
821
- {
822
- label: "This session",
823
- value: debugMode.enabled ? currentDebugSessionDir() : "no logs written while Debug Mode is off"
824
- }
825
- ]
826
- };
827
- }
828
- var init_help_info = __esm({
829
- "packages/experience-design-system-cli/src/tui/help/help-info.ts"() {
830
- "use strict";
831
- init_config();
832
- init_debug_store();
833
- init_debug_mode_store();
834
- init_version();
835
- }
836
- });
837
-
838
827
  // packages/experience-design-system-cli/src/tui/help/PageContainer.tsx
839
- import { useEffect as useEffect3, useState as useState5 } from "react";
840
- import { Box as Box5, Text as Text5, useInput as useInput5 } from "ink";
841
- import { Fragment, jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
842
- function Section({ title, rows }) {
843
- return /* @__PURE__ */ jsxs5(Box5, { flexDirection: "column", children: [
844
- /* @__PURE__ */ jsx5(Text5, { bold: true, color: PALETTE.accent, children: title }),
845
- rows.map((row) => /* @__PURE__ */ jsxs5(Box5, { gap: 1, children: [
846
- /* @__PURE__ */ jsx5(Box5, { width: 14, flexShrink: 0, children: /* @__PURE__ */ jsx5(Text5, { dimColor: true, children: row.label }) }),
847
- /* @__PURE__ */ jsx5(Text5, { children: row.value })
848
- ] }, row.label))
849
- ] });
850
- }
828
+ import { useEffect as useEffect3 } from "react";
829
+ import { Box as Box5, Text as Text6, useInput as useInput5 } from "ink";
830
+ import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
851
831
  function HelpScreen({ onDone }) {
852
- const [info, setInfo] = useState5();
853
832
  useEffect3(() => {
854
833
  startDebugRun({ flow: "help", step: "01-help", menuOption: "Help", inputs: {} });
855
- void readHelpInfo().then(setInfo);
856
834
  }, []);
857
835
  const leave = (exitMethod) => {
858
836
  void finishDebugRun({ outputs: {}, status: "success", exitMethod });
@@ -868,34 +846,39 @@ function HelpScreen({ onDone }) {
868
846
  return;
869
847
  }
870
848
  });
871
- return /* @__PURE__ */ jsxs5(Box5, { flexDirection: "column", paddingX: 2, paddingY: 1, gap: 1, children: [
872
- /* @__PURE__ */ jsx5(Text5, { bold: true, children: "Help" }),
873
- info ? /* @__PURE__ */ jsxs5(Fragment, { children: [
874
- /* @__PURE__ */ jsx5(Section, { title: "Where things are stored", rows: info.storage }),
875
- /* @__PURE__ */ jsx5(Section, { title: "Troubleshooting", rows: info.troubleshooting }),
876
- /* @__PURE__ */ jsx5(Text5, { 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." })
877
- ] }) : /* @__PURE__ */ jsx5(Text5, { color: PALETTE.accent, children: "Loading..." }),
878
- /* @__PURE__ */ jsx5(Text5, { dimColor: true, children: "[Enter] Complete [Esc/q] Exit \u2014 both return to Start" })
849
+ return /* @__PURE__ */ jsxs5(Box5, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
850
+ /* @__PURE__ */ jsx6(Text6, { bold: true, children: "Help" }),
851
+ /* @__PURE__ */ jsx6(Text6, { children: " " }),
852
+ /* @__PURE__ */ jsx6(Text6, { children: "This is a placeholder screen for v2 help content." }),
853
+ /* @__PURE__ */ jsx6(Text6, { children: " " }),
854
+ /* @__PURE__ */ jsx6(
855
+ ControlHints,
856
+ {
857
+ hints: [
858
+ { keys: "\u23CE", label: "done" },
859
+ { keys: "Esc/q", label: "back to start" }
860
+ ]
861
+ }
862
+ )
879
863
  ] });
880
864
  }
881
865
  var init_PageContainer2 = __esm({
882
866
  "packages/experience-design-system-cli/src/tui/help/PageContainer.tsx"() {
883
867
  "use strict";
884
- init_home_theme();
885
868
  init_debug_store();
886
- init_help_info();
869
+ init_control_hints();
887
870
  }
888
871
  });
889
872
 
890
873
  // packages/experience-design-system-cli/src/tui/settings/PageContainer.tsx
891
- import { useState as useState6 } from "react";
892
- import { Box as Box6, Text as Text6, useInput as useInput6 } from "ink";
893
- import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
874
+ import { useState as useState5 } from "react";
875
+ import { Box as Box6, Text as Text7, useInput as useInput6 } from "ink";
876
+ import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
894
877
  function SettingsScreen({
895
878
  onNavigate,
896
879
  onBack
897
880
  }) {
898
- const [focusIdx, setFocusIdx] = useState6(0);
881
+ const [focusIdx, setFocusIdx] = useState5(0);
899
882
  const items = [
900
883
  { label: "Configuration", screen: "settings-configuration" },
901
884
  { label: "Opt-in Analytics", screen: "settings-opt-in-analytics" },
@@ -922,19 +905,29 @@ function SettingsScreen({
922
905
  }
923
906
  });
924
907
  return /* @__PURE__ */ jsxs6(Box6, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
925
- /* @__PURE__ */ jsx6(Text6, { bold: true, children: "Settings" }),
926
- /* @__PURE__ */ jsx6(Text6, { children: " " }),
927
- items.map((item, i) => /* @__PURE__ */ jsxs6(Text6, { color: i === focusIdx ? "cyan" : void 0, children: [
908
+ /* @__PURE__ */ jsx7(Text7, { bold: true, children: "Settings" }),
909
+ /* @__PURE__ */ jsx7(Text7, { children: " " }),
910
+ items.map((item, i) => /* @__PURE__ */ jsxs6(Text7, { color: i === focusIdx ? "cyan" : void 0, children: [
928
911
  i === focusIdx ? "> " : " ",
929
912
  item.label
930
913
  ] }, item.label)),
931
- /* @__PURE__ */ jsx6(Text6, { children: " " }),
932
- /* @__PURE__ */ jsx6(Text6, { dimColor: true, children: "[\u2191/\u2193] Navigate [Enter] Select [Esc/q] Back to Start" })
914
+ /* @__PURE__ */ jsx7(Text7, { children: " " }),
915
+ /* @__PURE__ */ jsx7(
916
+ ControlHints,
917
+ {
918
+ hints: [
919
+ { keys: "\u2191/\u2193", label: "move" },
920
+ { keys: "\u23CE", label: "select" },
921
+ { keys: "Esc/q", label: "back" }
922
+ ]
923
+ }
924
+ )
933
925
  ] });
934
926
  }
935
927
  var init_PageContainer3 = __esm({
936
928
  "packages/experience-design-system-cli/src/tui/settings/PageContainer.tsx"() {
937
929
  "use strict";
930
+ init_control_hints();
938
931
  }
939
932
  });
940
933
 
@@ -980,10 +973,10 @@ var init_config_store = __esm({
980
973
  });
981
974
 
982
975
  // packages/experience-design-system-cli/src/tui/settings/contentful-configuration/ContentfulConfigScreen.tsx
983
- import { useEffect as useEffect4, useState as useState7 } from "react";
984
- import { Box as Box7, Text as Text7, useInput as useInput7 } from "ink";
976
+ import { useEffect as useEffect4, useState as useState6 } from "react";
977
+ import { Box as Box7, Text as Text8, useInput as useInput7 } from "ink";
985
978
  import TextInput3 from "ink-text-input";
986
- import { Fragment as Fragment2, jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
979
+ import { Fragment, jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
987
980
  function debugFields(config) {
988
981
  return {
989
982
  space_id: config?.spaceId ?? "",
@@ -995,13 +988,13 @@ function debugFields(config) {
995
988
  };
996
989
  }
997
990
  function ConfigurationScreen({ onDone }) {
998
- const [stage, setStage] = useState7("loading");
999
- const [config, setConfig] = useState7(null);
1000
- const [activeField, setActiveField] = useState7("spaceId");
1001
- const [notice, setNotice] = useState7(null);
1002
- const [lastSaved, setLastSaved] = useState7(null);
1003
- const [editing, setEditing] = useState7(false);
1004
- const [valueBeforeEdit, setValueBeforeEdit] = useState7("");
991
+ const [stage, setStage] = useState6("loading");
992
+ const [config, setConfig] = useState6(null);
993
+ const [activeField, setActiveField] = useState6("spaceId");
994
+ const [notice, setNotice] = useState6(null);
995
+ const [lastSaved, setLastSaved] = useState6(null);
996
+ const [editing, setEditing] = useState6(false);
997
+ const [valueBeforeEdit, setValueBeforeEdit] = useState6("");
1005
998
  useEffect4(() => {
1006
999
  readCredentials().then((cfg) => {
1007
1000
  setConfig(cfg);
@@ -1080,25 +1073,25 @@ function ConfigurationScreen({ onDone }) {
1080
1073
  });
1081
1074
  if (stage === "loading") {
1082
1075
  return /* @__PURE__ */ jsxs7(Box7, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
1083
- /* @__PURE__ */ jsx7(Text7, { bold: true, children: "Configuration" }),
1084
- /* @__PURE__ */ jsx7(Text7, { children: " " }),
1085
- /* @__PURE__ */ jsx7(Text7, { color: PALETTE.accent, children: "Loading..." })
1076
+ /* @__PURE__ */ jsx8(Text8, { bold: true, children: "Configuration" }),
1077
+ /* @__PURE__ */ jsx8(Text8, { children: " " }),
1078
+ /* @__PURE__ */ jsx8(Text8, { color: PALETTE.accent, children: "Loading..." })
1086
1079
  ] });
1087
1080
  }
1088
1081
  return /* @__PURE__ */ jsxs7(Box7, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
1089
- /* @__PURE__ */ jsx7(Text7, { bold: true, children: "Configuration" }),
1090
- /* @__PURE__ */ jsx7(Text7, { children: " " }),
1091
- /* @__PURE__ */ jsx7(Box7, { flexDirection: "column", children: FIELD_ORDER.map((field) => {
1082
+ /* @__PURE__ */ jsx8(Text8, { bold: true, children: "Configuration" }),
1083
+ /* @__PURE__ */ jsx8(Text8, { children: " " }),
1084
+ /* @__PURE__ */ jsx8(Box7, { flexDirection: "column", children: FIELD_ORDER.map((field) => {
1092
1085
  const isActive = activeField === field;
1093
1086
  const value = fieldValue(field);
1094
1087
  const display = field === "cmaToken" ? "\u2022".repeat(value.length) : value;
1095
1088
  return /* @__PURE__ */ jsxs7(Box7, { gap: 1, children: [
1096
- /* @__PURE__ */ jsx7(Text7, { color: isActive ? PALETTE.accent : void 0, children: isActive ? "\u276F" : " " }),
1097
- /* @__PURE__ */ jsxs7(Text7, { bold: isActive, children: [
1089
+ /* @__PURE__ */ jsx8(Text8, { color: isActive ? PALETTE.accent : void 0, children: isActive ? "\u276F" : " " }),
1090
+ /* @__PURE__ */ jsxs7(Text8, { bold: isActive, children: [
1098
1091
  FIELD_LABELS[field],
1099
1092
  ":"
1100
1093
  ] }),
1101
- isActive && editing ? /* @__PURE__ */ jsx7(
1094
+ isActive && editing ? /* @__PURE__ */ jsx8(
1102
1095
  TextInput3,
1103
1096
  {
1104
1097
  value,
@@ -1106,19 +1099,35 @@ function ConfigurationScreen({ onDone }) {
1106
1099
  onSubmit: () => setEditing(false),
1107
1100
  mask: field === "cmaToken" ? "\u2022" : void 0
1108
1101
  }
1109
- ) : /* @__PURE__ */ jsx7(Text7, { children: display || /* @__PURE__ */ jsx7(Text7, { dimColor: true, children: "(empty)" }) })
1102
+ ) : /* @__PURE__ */ jsx8(Text8, { children: display || /* @__PURE__ */ jsx8(Text8, { dimColor: true, children: "(empty)" }) })
1110
1103
  ] }, field);
1111
1104
  }) }),
1112
- notice && /* @__PURE__ */ jsxs7(Fragment2, { children: [
1113
- /* @__PURE__ */ jsx7(Text7, { children: " " }),
1114
- /* @__PURE__ */ jsxs7(Text7, { color: notice.kind === "success" ? PALETTE.success : PALETTE.error, children: [
1105
+ notice && /* @__PURE__ */ jsxs7(Fragment, { children: [
1106
+ /* @__PURE__ */ jsx8(Text8, { children: " " }),
1107
+ /* @__PURE__ */ jsxs7(Text8, { color: notice.kind === "success" ? PALETTE.success : PALETTE.error, children: [
1115
1108
  notice.kind === "success" ? "\u2713" : "\u2717",
1116
1109
  " ",
1117
1110
  notice.text
1118
1111
  ] })
1119
1112
  ] }),
1120
- /* @__PURE__ */ jsx7(Text7, { children: " " }),
1121
- /* @__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" })
1113
+ /* @__PURE__ */ jsx8(Text8, { children: " " }),
1114
+ /* @__PURE__ */ jsx8(
1115
+ ControlHints,
1116
+ {
1117
+ hints: editing ? [
1118
+ { keys: "type", label: "edit" },
1119
+ { keys: "\u2190/\u2192", label: "move cursor" },
1120
+ { keys: "\u23CE", label: "done" },
1121
+ { keys: "Esc", label: "cancel edit" }
1122
+ ] : [
1123
+ { keys: "\u2191/\u2193", label: "move" },
1124
+ { keys: "\u23CE", label: "edit" },
1125
+ { keys: "c", label: "clear" },
1126
+ { keys: "s", label: "save" },
1127
+ { keys: "Esc/q", label: "quit without saving" }
1128
+ ]
1129
+ }
1130
+ )
1122
1131
  ] });
1123
1132
  }
1124
1133
  var FIELD_ORDER, FIELD_LABELS;
@@ -1128,6 +1137,7 @@ var init_ContentfulConfigScreen = __esm({
1128
1137
  init_home_theme();
1129
1138
  init_config_store();
1130
1139
  init_debug_store();
1140
+ init_control_hints();
1131
1141
  FIELD_ORDER = [
1132
1142
  "spaceId",
1133
1143
  "environmentId",
@@ -1169,12 +1179,12 @@ var init_analytics_store = __esm({
1169
1179
  });
1170
1180
 
1171
1181
  // packages/experience-design-system-cli/src/tui/settings/opt-in-analytics/screen.tsx
1172
- import { useEffect as useEffect5, useState as useState8 } from "react";
1173
- import { Box as Box8, Text as Text8, useInput as useInput8 } from "ink";
1174
- import { Fragment as Fragment3, jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
1182
+ import { useEffect as useEffect5, useState as useState7 } from "react";
1183
+ import { Box as Box8, Text as Text9, useInput as useInput8 } from "ink";
1184
+ import { Fragment as Fragment2, jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
1175
1185
  function OptInAnalyticsScreen({ onDone }) {
1176
- const [loading, setLoading] = useState8(true);
1177
- const [enabled, setEnabled] = useState8(true);
1186
+ const [loading, setLoading] = useState7(true);
1187
+ const [enabled, setEnabled] = useState7(true);
1178
1188
  useEffect5(() => {
1179
1189
  readAnalyticsSetting().then((setting) => {
1180
1190
  setEnabled(setting.enabled);
@@ -1203,20 +1213,28 @@ function OptInAnalyticsScreen({ onDone }) {
1203
1213
  }
1204
1214
  });
1205
1215
  return /* @__PURE__ */ jsxs8(Box8, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
1206
- /* @__PURE__ */ jsx8(Text8, { bold: true, children: "Settings \u203A Opt-in Analytics" }),
1207
- /* @__PURE__ */ jsx8(Text8, { children: " " }),
1208
- loading ? /* @__PURE__ */ jsx8(Text8, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs8(Fragment3, { children: [
1209
- /* @__PURE__ */ jsxs8(Text8, { children: [
1216
+ /* @__PURE__ */ jsx9(Text9, { bold: true, children: "Settings \u203A Opt-in Analytics" }),
1217
+ /* @__PURE__ */ jsx9(Text9, { children: " " }),
1218
+ loading ? /* @__PURE__ */ jsx9(Text9, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs8(Fragment2, { children: [
1219
+ /* @__PURE__ */ jsxs8(Text9, { children: [
1210
1220
  "Share anonymous usage data:",
1211
1221
  " ",
1212
- /* @__PURE__ */ jsx8(Text8, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
1222
+ /* @__PURE__ */ jsx9(Text9, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
1213
1223
  ] }),
1214
- /* @__PURE__ */ jsx8(Text8, { children: " " }),
1215
- /* @__PURE__ */ jsx8(Text8, { dimColor: true, children: "Shares which CLI commands are used and where imports succeed or fail." }),
1216
- /* @__PURE__ */ jsx8(Text8, { dimColor: true, children: "Never includes source code, file paths, credentials, or authored content." })
1224
+ /* @__PURE__ */ jsx9(Text9, { children: " " }),
1225
+ /* @__PURE__ */ jsx9(Text9, { dimColor: true, children: "Shares which CLI commands are used and where imports succeed or fail." }),
1226
+ /* @__PURE__ */ jsx9(Text9, { dimColor: true, children: "Never includes source code, file paths, credentials, or authored content." })
1217
1227
  ] }),
1218
- /* @__PURE__ */ jsx8(Text8, { children: " " }),
1219
- /* @__PURE__ */ jsx8(Text8, { dimColor: true, children: "[Enter/Space] Toggle [Esc/q] Back to Settings" })
1228
+ /* @__PURE__ */ jsx9(Text9, { children: " " }),
1229
+ /* @__PURE__ */ jsx9(
1230
+ ControlHints,
1231
+ {
1232
+ hints: [
1233
+ { keys: "\u23CE/Space", label: "toggle" },
1234
+ { keys: "Esc/q", label: "back" }
1235
+ ]
1236
+ }
1237
+ )
1220
1238
  ] });
1221
1239
  }
1222
1240
  var init_screen3 = __esm({
@@ -1225,15 +1243,16 @@ var init_screen3 = __esm({
1225
1243
  init_home_theme();
1226
1244
  init_analytics_store();
1227
1245
  init_debug_store();
1246
+ init_control_hints();
1228
1247
  }
1229
1248
  });
1230
1249
 
1231
1250
  // packages/experience-design-system-cli/src/tui/upgrade/PageContainer.tsx
1232
- import { useEffect as useEffect6, useState as useState9 } from "react";
1233
- import { Box as Box9, Text as Text9, useInput as useInput9 } from "ink";
1234
- import { jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
1251
+ import { useEffect as useEffect6, useState as useState8 } from "react";
1252
+ import { Box as Box9, Text as Text10, useInput as useInput9 } from "ink";
1253
+ import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
1235
1254
  function UpgradeScreen({ onDone }) {
1236
- const [upgradeCheck, setUpgradeCheck] = useState9();
1255
+ const [upgradeCheck, setUpgradeCheck] = useState8();
1237
1256
  useEffect6(() => {
1238
1257
  startDebugRun({
1239
1258
  flow: "upgrade",
@@ -1255,11 +1274,11 @@ function UpgradeScreen({ onDone }) {
1255
1274
  }
1256
1275
  });
1257
1276
  return /* @__PURE__ */ jsxs9(Box9, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
1258
- /* @__PURE__ */ jsx9(Text9, { bold: true, children: "Upgrade" }),
1259
- /* @__PURE__ */ jsx9(Text9, { children: " " }),
1277
+ /* @__PURE__ */ jsx10(Text10, { bold: true, children: "Upgrade" }),
1278
+ /* @__PURE__ */ jsx10(Text10, { children: " " }),
1260
1279
  renderBody(upgradeCheck),
1261
- /* @__PURE__ */ jsx9(Text9, { children: " " }),
1262
- /* @__PURE__ */ jsxs9(Text9, { bold: true, color: PALETTE.accent, children: [
1280
+ /* @__PURE__ */ jsx10(Text10, { children: " " }),
1281
+ /* @__PURE__ */ jsxs9(Text10, { bold: true, color: PALETTE.accent, children: [
1263
1282
  FOCUS_MARKER,
1264
1283
  " Go Back"
1265
1284
  ] })
@@ -1267,34 +1286,34 @@ function UpgradeScreen({ onDone }) {
1267
1286
  }
1268
1287
  function renderBody(upgradeCheck) {
1269
1288
  if (!upgradeCheck) {
1270
- return /* @__PURE__ */ jsx9(Text9, { color: PALETTE.muted, children: "Checking for updates\u2026" });
1289
+ return /* @__PURE__ */ jsx10(Text10, { color: PALETTE.muted, children: "Checking for updates\u2026" });
1271
1290
  }
1272
1291
  if (upgradeCheck.status === "error") {
1273
- return /* @__PURE__ */ jsx9(Text9, { color: PALETTE.warning, children: "Couldn't check for updates \u2014 check your network connection and try again." });
1292
+ return /* @__PURE__ */ jsx10(Text10, { color: PALETTE.warning, children: "Couldn't check for updates \u2014 check your network connection and try again." });
1274
1293
  }
1275
1294
  if (upgradeCheck.status === "up-to-date") {
1276
- return /* @__PURE__ */ jsxs9(Text9, { color: PALETTE.success, children: [
1295
+ return /* @__PURE__ */ jsxs9(Text10, { color: PALETTE.success, children: [
1277
1296
  "You're already on the latest version (v",
1278
1297
  upgradeCheck.current,
1279
1298
  ")."
1280
1299
  ] });
1281
1300
  }
1282
1301
  return /* @__PURE__ */ jsxs9(Box9, { flexDirection: "column", children: [
1283
- /* @__PURE__ */ jsxs9(Text9, { color: PALETTE.muted, children: [
1284
- /* @__PURE__ */ jsxs9(Text9, { bold: true, color: PALETTE.success, children: [
1302
+ /* @__PURE__ */ jsxs9(Text10, { color: PALETTE.muted, children: [
1303
+ /* @__PURE__ */ jsxs9(Text10, { bold: true, color: PALETTE.success, children: [
1285
1304
  "v",
1286
1305
  upgradeCheck.latest
1287
1306
  ] }),
1288
1307
  " ",
1289
1308
  "is available (you're on ",
1290
- /* @__PURE__ */ jsxs9(Text9, { bold: true, children: [
1309
+ /* @__PURE__ */ jsxs9(Text10, { bold: true, children: [
1291
1310
  "v",
1292
1311
  upgradeCheck.current
1293
1312
  ] }),
1294
1313
  "). Exit this program, cd into the root of your local clone of contentful/experience-design-system-sdk-public, then run:"
1295
1314
  ] }),
1296
- /* @__PURE__ */ jsx9(Text9, { children: " " }),
1297
- /* @__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)) })
1315
+ /* @__PURE__ */ jsx10(Text10, { children: " " }),
1316
+ /* @__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)) })
1298
1317
  ] });
1299
1318
  }
1300
1319
  var UPGRADE_COMMANDS;
@@ -1309,12 +1328,12 @@ var init_PageContainer4 = __esm({
1309
1328
  });
1310
1329
 
1311
1330
  // packages/experience-design-system-cli/src/tui/settings/debug-mode/screen.tsx
1312
- import { useEffect as useEffect7, useState as useState10 } from "react";
1313
- import { Box as Box10, Text as Text10, useInput as useInput10 } from "ink";
1314
- import { jsx as jsx10, jsxs as jsxs10 } from "react/jsx-runtime";
1331
+ import { useEffect as useEffect7, useState as useState9 } from "react";
1332
+ import { Box as Box10, Text as Text11, useInput as useInput10 } from "ink";
1333
+ import { jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
1315
1334
  function DebugModeScreen({ onDone }) {
1316
- const [loading, setLoading] = useState10(true);
1317
- const [enabled, setEnabled] = useState10(true);
1335
+ const [loading, setLoading] = useState9(true);
1336
+ const [enabled, setEnabled] = useState9(true);
1318
1337
  useEffect7(() => {
1319
1338
  readDebugModeSetting().then((setting) => {
1320
1339
  setEnabled(setting.enabled);
@@ -1343,15 +1362,23 @@ function DebugModeScreen({ onDone }) {
1343
1362
  }
1344
1363
  });
1345
1364
  return /* @__PURE__ */ jsxs10(Box10, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
1346
- /* @__PURE__ */ jsx10(Text10, { bold: true, children: "Settings \u203A Debug Mode" }),
1347
- /* @__PURE__ */ jsx10(Text10, { children: " " }),
1348
- loading ? /* @__PURE__ */ jsx10(Text10, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs10(Text10, { children: [
1365
+ /* @__PURE__ */ jsx11(Text11, { bold: true, children: "Settings \u203A Debug Mode" }),
1366
+ /* @__PURE__ */ jsx11(Text11, { children: " " }),
1367
+ loading ? /* @__PURE__ */ jsx11(Text11, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs10(Text11, { children: [
1349
1368
  "Debug logging:",
1350
1369
  " ",
1351
- /* @__PURE__ */ jsx10(Text10, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
1370
+ /* @__PURE__ */ jsx11(Text11, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
1352
1371
  ] }),
1353
- /* @__PURE__ */ jsx10(Text10, { children: " " }),
1354
- /* @__PURE__ */ jsx10(Text10, { dimColor: true, children: "[Enter/Space] Toggle [Esc/q] Back to Settings" })
1372
+ /* @__PURE__ */ jsx11(Text11, { children: " " }),
1373
+ /* @__PURE__ */ jsx11(
1374
+ ControlHints,
1375
+ {
1376
+ hints: [
1377
+ { keys: "\u23CE/Space", label: "toggle" },
1378
+ { keys: "Esc/q", label: "back" }
1379
+ ]
1380
+ }
1381
+ )
1355
1382
  ] });
1356
1383
  }
1357
1384
  var init_screen4 = __esm({
@@ -1360,6 +1387,7 @@ var init_screen4 = __esm({
1360
1387
  init_home_theme();
1361
1388
  init_debug_mode_store();
1362
1389
  init_debug_store();
1390
+ init_control_hints();
1363
1391
  }
1364
1392
  });
1365
1393
 
@@ -1368,14 +1396,14 @@ var app_exports = {};
1368
1396
  __export(app_exports, {
1369
1397
  runApp: () => runApp
1370
1398
  });
1371
- import { useEffect as useEffect8, useState as useState11 } from "react";
1372
- import { Fragment as Fragment4, jsx as jsx11 } from "react/jsx-runtime";
1399
+ import { useEffect as useEffect8, useState as useState10 } from "react";
1400
+ import { Fragment as Fragment3, jsx as jsx12 } from "react/jsx-runtime";
1373
1401
  function App({ onLaunchImport, importExitCode }) {
1374
1402
  const returnedFromImport = importExitCode !== void 0;
1375
- const [screen, setScreen] = useState11(returnedFromImport ? "import" : "start");
1376
- const [showImportResult, setShowImportResult] = useState11(returnedFromImport);
1377
- const [projectPath, setProjectPath] = useState11();
1378
- const [importDefaults, setImportDefaults] = useState11();
1403
+ const [screen, setScreen] = useState10(returnedFromImport ? "import" : "start");
1404
+ const [showImportResult, setShowImportResult] = useState10(returnedFromImport);
1405
+ const [projectPath, setProjectPath] = useState10();
1406
+ const [importDefaults, setImportDefaults] = useState10();
1379
1407
  useEffect8(() => {
1380
1408
  if (screen !== "import") {
1381
1409
  setImportDefaults(void 0);
@@ -1398,12 +1426,12 @@ function App({ onLaunchImport, importExitCode }) {
1398
1426
  };
1399
1427
  switch (screen) {
1400
1428
  case "import":
1401
- if (showImportResult) return /* @__PURE__ */ jsx11(ImportScreen, { exitCode: importExitCode, onDone: finishImportResult });
1402
- if (importDefaults === void 0) return /* @__PURE__ */ jsx11(Fragment4, {});
1429
+ if (showImportResult) return /* @__PURE__ */ jsx12(ImportScreen, { exitCode: importExitCode, onDone: finishImportResult });
1430
+ if (importDefaults === void 0) return /* @__PURE__ */ jsx12(Fragment3, {});
1403
1431
  if (projectPath === void 0) {
1404
- return /* @__PURE__ */ jsx11(WelcomeScreen, { onContinue: setProjectPath, onQuit: leaveImport, initialPath: importDefaults.componentDir });
1432
+ return /* @__PURE__ */ jsx12(WelcomeScreen, { onContinue: setProjectPath, onQuit: leaveImport, initialPath: importDefaults.componentDir });
1405
1433
  }
1406
- return /* @__PURE__ */ jsx11(
1434
+ return /* @__PURE__ */ jsx12(
1407
1435
  TokenInputScreen,
1408
1436
  {
1409
1437
  initialPath: importDefaults.tokenFile,
@@ -1413,25 +1441,25 @@ function App({ onLaunchImport, importExitCode }) {
1413
1441
  }
1414
1442
  );
1415
1443
  case "help":
1416
- return /* @__PURE__ */ jsx11(HelpScreen, { onDone: goToStart });
1444
+ return /* @__PURE__ */ jsx12(HelpScreen, { onDone: goToStart });
1417
1445
  case "upgrade":
1418
- return /* @__PURE__ */ jsx11(UpgradeScreen, { onDone: goToStart });
1446
+ return /* @__PURE__ */ jsx12(UpgradeScreen, { onDone: goToStart });
1419
1447
  case "settings":
1420
- return /* @__PURE__ */ jsx11(SettingsScreen, { onNavigate: setScreen, onBack: goToStart });
1448
+ return /* @__PURE__ */ jsx12(SettingsScreen, { onNavigate: setScreen, onBack: goToStart });
1421
1449
  case "settings-configuration":
1422
- return /* @__PURE__ */ jsx11(ConfigurationScreen, { onDone: goToSettings });
1450
+ return /* @__PURE__ */ jsx12(ConfigurationScreen, { onDone: goToSettings });
1423
1451
  case "settings-opt-in-analytics":
1424
- return /* @__PURE__ */ jsx11(OptInAnalyticsScreen, { onDone: goToSettings });
1452
+ return /* @__PURE__ */ jsx12(OptInAnalyticsScreen, { onDone: goToSettings });
1425
1453
  case "settings-debug-mode":
1426
- return /* @__PURE__ */ jsx11(DebugModeScreen, { onDone: goToSettings });
1454
+ return /* @__PURE__ */ jsx12(DebugModeScreen, { onDone: goToSettings });
1427
1455
  case "start":
1428
- return /* @__PURE__ */ jsx11(HomeScreen, { onNavigate: setScreen });
1456
+ return /* @__PURE__ */ jsx12(HomeScreen, { onNavigate: setScreen });
1429
1457
  }
1430
1458
  }
1431
1459
  async function renderUntilImportRequestedOrExit(renderApp, importExitCode) {
1432
1460
  let requestedImport;
1433
1461
  const instance = renderApp(
1434
- /* @__PURE__ */ jsx11(
1462
+ /* @__PURE__ */ jsx12(
1435
1463
  App,
1436
1464
  {
1437
1465
  importExitCode,