@fecommunity/reactpress 4.0.0-beta.2 → 4.0.0-beta.3

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.
Files changed (98) hide show
  1. package/out/lib/cli-events.d.ts +12 -0
  2. package/out/lib/cli-events.d.ts.map +1 -0
  3. package/out/lib/cli-events.js +54 -0
  4. package/out/lib/cli-events.js.map +1 -0
  5. package/out/lib/command-palette.d.ts +6 -0
  6. package/out/lib/command-palette.d.ts.map +1 -0
  7. package/out/lib/command-palette.js +53 -0
  8. package/out/lib/command-palette.js.map +1 -0
  9. package/out/lib/context-status.d.ts +2 -0
  10. package/out/lib/context-status.d.ts.map +1 -0
  11. package/out/lib/context-status.js +148 -0
  12. package/out/lib/context-status.js.map +1 -0
  13. package/out/lib/design-tokens.d.ts +38 -0
  14. package/out/lib/design-tokens.d.ts.map +1 -0
  15. package/out/lib/design-tokens.js +55 -0
  16. package/out/lib/design-tokens.js.map +1 -0
  17. package/out/lib/dev-banner.js +10 -5
  18. package/out/lib/dev-banner.js.map +1 -1
  19. package/out/lib/dev.js +20 -1
  20. package/out/lib/dev.js.map +1 -1
  21. package/out/lib/i18n/index.js +5 -1
  22. package/out/lib/i18n/index.js.map +1 -1
  23. package/out/lib/i18n/strings.js +99 -41
  24. package/out/lib/i18n/strings.js.map +1 -1
  25. package/out/lib/menu-actions.d.ts +2 -0
  26. package/out/lib/menu-actions.d.ts.map +1 -0
  27. package/out/lib/menu-actions.js +418 -0
  28. package/out/lib/menu-actions.js.map +1 -0
  29. package/out/lib/nginx.js +5 -2
  30. package/out/lib/nginx.js.map +1 -1
  31. package/out/lib/remote-dev.js +5 -1
  32. package/out/lib/remote-dev.js.map +1 -1
  33. package/out/lib/shell-mode.d.ts +5 -0
  34. package/out/lib/shell-mode.d.ts.map +1 -0
  35. package/out/lib/shell-mode.js +23 -0
  36. package/out/lib/shell-mode.js.map +1 -0
  37. package/out/lib/theme-warmup.js +1 -1
  38. package/out/lib/theme-warmup.js.map +1 -1
  39. package/out/shell/app.d.ts +12 -0
  40. package/out/shell/app.d.ts.map +1 -0
  41. package/out/shell/app.js +384 -0
  42. package/out/shell/app.js.map +1 -0
  43. package/out/shell/components/brand-banner.d.ts +20 -0
  44. package/out/shell/components/brand-banner.d.ts.map +1 -0
  45. package/out/shell/components/brand-banner.js +93 -0
  46. package/out/shell/components/brand-banner.js.map +1 -0
  47. package/out/shell/components/command-palette.d.ts +10 -0
  48. package/out/shell/components/command-palette.d.ts.map +1 -0
  49. package/out/shell/components/command-palette.js +77 -0
  50. package/out/shell/components/command-palette.js.map +1 -0
  51. package/out/shell/components/dev-stepper.d.ts +8 -0
  52. package/out/shell/components/dev-stepper.d.ts.map +1 -0
  53. package/out/shell/components/dev-stepper.js +54 -0
  54. package/out/shell/components/dev-stepper.js.map +1 -0
  55. package/out/shell/components/ink-theme.d.ts +34 -0
  56. package/out/shell/components/ink-theme.d.ts.map +1 -0
  57. package/out/shell/components/ink-theme.js +86 -0
  58. package/out/shell/components/ink-theme.js.map +1 -0
  59. package/out/shell/components/menu-list.d.ts +7 -0
  60. package/out/shell/components/menu-list.d.ts.map +1 -0
  61. package/out/shell/components/menu-list.js +49 -0
  62. package/out/shell/components/menu-list.js.map +1 -0
  63. package/out/shell/components/pulse-bar.d.ts +6 -0
  64. package/out/shell/components/pulse-bar.d.ts.map +1 -0
  65. package/out/shell/components/pulse-bar.js +55 -0
  66. package/out/shell/components/pulse-bar.js.map +1 -0
  67. package/out/shell/components/status-rack.d.ts +16 -0
  68. package/out/shell/components/status-rack.d.ts.map +1 -0
  69. package/out/shell/components/status-rack.js +47 -0
  70. package/out/shell/components/status-rack.js.map +1 -0
  71. package/out/shell/hooks/use-terminal-size.d.ts +2 -0
  72. package/out/shell/hooks/use-terminal-size.d.ts.map +1 -0
  73. package/out/shell/hooks/use-terminal-size.js +27 -0
  74. package/out/shell/hooks/use-terminal-size.js.map +1 -0
  75. package/out/shell/ink-shell.mjs +12056 -0
  76. package/out/shell/lib/shell-layout.d.ts +27 -0
  77. package/out/shell/lib/shell-layout.d.ts.map +1 -0
  78. package/out/shell/lib/shell-layout.js +60 -0
  79. package/out/shell/lib/shell-layout.js.map +1 -0
  80. package/out/shell/runtime/render-ink.d.ts +2 -0
  81. package/out/shell/runtime/render-ink.d.ts.map +1 -0
  82. package/out/shell/runtime/render-ink.js +89 -0
  83. package/out/shell/runtime/render-ink.js.map +1 -0
  84. package/out/ui/banner-startup.d.ts +2 -0
  85. package/out/ui/banner-startup.d.ts.map +1 -0
  86. package/out/ui/banner-startup.js +125 -0
  87. package/out/ui/banner-startup.js.map +1 -0
  88. package/out/ui/banner.js +402 -288
  89. package/out/ui/banner.js.map +1 -1
  90. package/out/ui/interactive.js +149 -125
  91. package/out/ui/interactive.js.map +1 -1
  92. package/out/ui/startup-splash.d.ts +2 -0
  93. package/out/ui/startup-splash.d.ts.map +1 -0
  94. package/out/ui/startup-splash.js +185 -0
  95. package/out/ui/startup-splash.js.map +1 -0
  96. package/out/ui/theme.js +63 -10
  97. package/out/ui/theme.js.map +1 -1
  98. package/package.json +1 -1
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getPaletteFocusTarget = exports.getQuickPickEntries = exports.buildPaletteRows = exports.filterCommandItems = exports.QUICK_PICK_VALUES = void 0;
7
+ exports.CommandPalette = CommandPalette;
8
+ // @ts-nocheck
9
+ const react_1 = __importDefault(require("react"));
10
+ const ink_1 = require("ink");
11
+ const design_tokens_1 = require("../../lib/design-tokens");
12
+ const ink_theme_1 = require("./ink-theme");
13
+ const shell_layout_1 = require("../lib/shell-layout");
14
+ const command_palette_1 = require("../../lib/command-palette");
15
+ const { t } = require('../../lib/i18n');
16
+ function SlashLabel({ value, active }) {
17
+ return (react_1.default.createElement(ink_1.Text, { color: active ? design_tokens_1.palette.accent : design_tokens_1.palette.dim, bold: active }, `/${value}`));
18
+ }
19
+ function PickRow({ entry, focused, index, contentWidth }) {
20
+ const line = (0, shell_layout_1.truncatePickLine)(entry, contentWidth - 6);
21
+ const shortcut = index != null ? (react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.border }, `${index + 1} `)) : null;
22
+ if (focused) {
23
+ return (react_1.default.createElement(ink_1.Box, { width: contentWidth },
24
+ react_1.default.createElement(ink_1.Text, { backgroundColor: design_tokens_1.palette.surfaceRaised },
25
+ shortcut,
26
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.accent, bold: true },
27
+ "\u25B8",
28
+ ' '),
29
+ react_1.default.createElement(SlashLabel, { value: entry.value, active: true }),
30
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.accent, bold: true }, line.label),
31
+ line.hint ? (react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.dim },
32
+ " \u00B7 ",
33
+ line.hint)) : null)));
34
+ }
35
+ return (react_1.default.createElement(ink_1.Box, { width: contentWidth },
36
+ react_1.default.createElement(ink_1.Text, null,
37
+ shortcut,
38
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.border }, " "),
39
+ react_1.default.createElement(SlashLabel, { value: entry.value, active: false }),
40
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.dim },
41
+ " ",
42
+ line.label),
43
+ line.hint ? (react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.border },
44
+ " \u00B7 ",
45
+ line.hint)) : null)));
46
+ }
47
+ function CommandPalette({ items, paletteOpen, query, focusIndex, quickPicks, contentWidth, }) {
48
+ const filtered = paletteOpen ? (0, command_palette_1.filterCommandItems)(items, query) : [];
49
+ const rows = paletteOpen ? (0, command_palette_1.buildPaletteRows)(items, filtered) : [];
50
+ const visibleRows = paletteOpen ? rows.slice(0, 12) : [];
51
+ const adjustedFocus = Math.min(focusIndex, Math.max(0, visibleRows.length - 1));
52
+ return (react_1.default.createElement(ink_1.Box, { flexDirection: "column", width: contentWidth },
53
+ react_1.default.createElement(ink_theme_1.InlinePrompt, { width: contentWidth, paletteOpen: paletteOpen, query: query, placeholder: t('shell.promptIdle') }),
54
+ !paletteOpen ? (react_1.default.createElement(ink_1.Box, { flexDirection: "column", marginTop: 1 },
55
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.dim, bold: true }, t('shell.quickPicks')),
56
+ quickPicks.map((entry, i) => (react_1.default.createElement(PickRow, { key: entry.value, entry: entry, focused: i === focusIndex, index: i, contentWidth: contentWidth }))))) : null,
57
+ paletteOpen ? (react_1.default.createElement(ink_1.Box, { flexDirection: "column", marginTop: 1 },
58
+ visibleRows.length === 0 ? (react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.amber }, t('shell.paletteEmpty'))) : (visibleRows.map((entry, i) => {
59
+ const focused = i === adjustedFocus;
60
+ const showSection = entry.sectionTitle &&
61
+ (i === 0 || visibleRows[i - 1].sectionTitle !== entry.sectionTitle);
62
+ return (react_1.default.createElement(react_1.default.Fragment, { key: entry.value },
63
+ showSection ? (react_1.default.createElement(ink_1.Box, { marginTop: i === 0 ? 0 : 1 },
64
+ react_1.default.createElement(ink_1.Text, { bold: true, color: design_tokens_1.palette.primary }, entry.sectionTitle))) : null,
65
+ react_1.default.createElement(PickRow, { entry: entry, focused: focused, contentWidth: contentWidth })));
66
+ })),
67
+ rows.length > visibleRows.length ? (react_1.default.createElement(ink_1.Box, { marginTop: 1 },
68
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.dim }, t('shell.paletteMore', { count: rows.length - visibleRows.length })))) : null)) : null,
69
+ react_1.default.createElement(ink_theme_1.KeyHint, { width: contentWidth }, paletteOpen ? t('shell.paletteHint') : t('shell.menuHint'))));
70
+ }
71
+ var command_palette_2 = require("../../lib/command-palette");
72
+ Object.defineProperty(exports, "QUICK_PICK_VALUES", { enumerable: true, get: function () { return command_palette_2.QUICK_PICK_VALUES; } });
73
+ Object.defineProperty(exports, "filterCommandItems", { enumerable: true, get: function () { return command_palette_2.filterCommandItems; } });
74
+ Object.defineProperty(exports, "buildPaletteRows", { enumerable: true, get: function () { return command_palette_2.buildPaletteRows; } });
75
+ Object.defineProperty(exports, "getQuickPickEntries", { enumerable: true, get: function () { return command_palette_2.getQuickPickEntries; } });
76
+ Object.defineProperty(exports, "getPaletteFocusTarget", { enumerable: true, get: function () { return command_palette_2.getPaletteFocusTarget; } });
77
+ //# sourceMappingURL=command-palette.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-palette.js","sourceRoot":"","sources":["../../../src/shell/components/command-palette.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare function DevStepper({ phases, currentStep, services, readyPayload, statusLines, }: {
2
+ phases: any;
3
+ currentStep: any;
4
+ services: any;
5
+ readyPayload: any;
6
+ statusLines: any;
7
+ }): any;
8
+ //# sourceMappingURL=dev-stepper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-stepper.d.ts","sourceRoot":"","sources":["../../../src/shell/components/dev-stepper.tsx"],"names":[],"mappings":"AAmBA,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,WAAW,GACZ;;;;;;CAAA,OAkDA"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DevStepper = DevStepper;
7
+ // @ts-nocheck
8
+ const react_1 = __importDefault(require("react"));
9
+ const ink_1 = require("ink");
10
+ const design_tokens_1 = require("../../lib/design-tokens");
11
+ const { t } = require('../../lib/i18n');
12
+ const SERVICE_LABELS = {
13
+ api: 'API',
14
+ admin: 'Admin',
15
+ theme: 'Theme',
16
+ };
17
+ function serviceColor(state) {
18
+ if (state === 'ready')
19
+ return design_tokens_1.palette.green;
20
+ if (state === 'starting')
21
+ return design_tokens_1.palette.amber;
22
+ if (state === 'error')
23
+ return design_tokens_1.palette.red;
24
+ return design_tokens_1.palette.gray;
25
+ }
26
+ function DevStepper({ phases, currentStep, services, readyPayload, statusLines, }) {
27
+ return (react_1.default.createElement(ink_1.Box, { flexDirection: "column", borderStyle: "round", borderColor: design_tokens_1.palette.border, paddingX: 1, paddingY: 1 },
28
+ react_1.default.createElement(ink_1.Box, { flexDirection: "column" }, phases.map((phase) => {
29
+ const done = phase.step < currentStep;
30
+ const active = phase.step === currentStep;
31
+ const mark = done ? '✓' : active ? '●' : '○';
32
+ const color = done ? design_tokens_1.palette.green : active ? design_tokens_1.palette.accent : design_tokens_1.palette.gray;
33
+ return (react_1.default.createElement(ink_1.Text, { key: phase.step, color: color },
34
+ "[",
35
+ mark,
36
+ "] ",
37
+ t(phase.key)));
38
+ })),
39
+ services.length > 0 ? (react_1.default.createElement(ink_1.Box, { marginTop: 1, flexDirection: "column" }, services.map((svc) => (react_1.default.createElement(ink_1.Text, { key: svc.name, color: serviceColor(svc.state) },
40
+ SERVICE_LABELS[svc.name] || svc.name,
41
+ ": ",
42
+ svc.state,
43
+ svc.url ? ` — ${svc.url}` : ''))))) : null,
44
+ statusLines.slice(-4).map((line, i) => (react_1.default.createElement(ink_1.Text, { key: i, color: design_tokens_1.palette.dim }, line))),
45
+ readyPayload ? (react_1.default.createElement(ink_1.Box, { marginTop: 1, flexDirection: "column", borderStyle: "single", borderColor: design_tokens_1.palette.primary },
46
+ react_1.default.createElement(ink_1.Text, { bold: true, color: design_tokens_1.palette.green }, t(readyPayload.readyKey)),
47
+ readyPayload.displayUrls.map((row) => (react_1.default.createElement(ink_1.Text, { key: row.key },
48
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.dim }, t(row.key)),
49
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.accent },
50
+ " ",
51
+ row.url)))),
52
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.dim }, t('shell.devReadyHint')))) : null));
53
+ }
54
+ //# sourceMappingURL=dev-stepper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-stepper.js","sourceRoot":"","sources":["../../../src/shell/components/dev-stepper.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ export declare function GradientText({ text, from, to, bold }: {
2
+ text: any;
3
+ from: any;
4
+ to: any;
5
+ bold?: boolean;
6
+ }): any;
7
+ export declare function Rule({ width }: {
8
+ width: any;
9
+ }): any;
10
+ /** Minimal inline prompt — no heavy box border. */
11
+ export declare function InlinePrompt({ width, paletteOpen, query, placeholder }: {
12
+ width: any;
13
+ paletteOpen: any;
14
+ query: any;
15
+ placeholder: any;
16
+ }): any;
17
+ export declare function KeyHint({ children, width }: {
18
+ children: any;
19
+ width: any;
20
+ }): any;
21
+ export declare function ScreenTitle({ title, width }: {
22
+ title: any;
23
+ width: any;
24
+ }): any;
25
+ export declare function StatusDot({ ok, loading }: {
26
+ ok: any;
27
+ loading: any;
28
+ }): any;
29
+ export declare function ShellRoot({ offsetX, contentWidth, children }: {
30
+ offsetX: any;
31
+ contentWidth: any;
32
+ children: any;
33
+ }): any;
34
+ //# sourceMappingURL=ink-theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ink-theme.d.ts","sourceRoot":"","sources":["../../../src/shell/components/ink-theme.tsx"],"names":[],"mappings":"AA+BA,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAY,EAAE;;;;;CAAA,OAiB5D;AAED,wBAAgB,IAAI,CAAC,EAAE,KAAK,EAAE;;CAAA,OAO7B;AAED,mDAAmD;AACnD,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;;;;;CAAA,OAgBtE;AAED,wBAAgB,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;;CAAA,OAM1C;AAED,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;;;CAAA,OAS3C;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE;;;CAAA,OAIxC;AAED,wBAAgB,SAAS,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE;;;;CAAA,OAQ5D"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.GradientText = GradientText;
7
+ exports.Rule = Rule;
8
+ exports.InlinePrompt = InlinePrompt;
9
+ exports.KeyHint = KeyHint;
10
+ exports.ScreenTitle = ScreenTitle;
11
+ exports.StatusDot = StatusDot;
12
+ exports.ShellRoot = ShellRoot;
13
+ // @ts-nocheck
14
+ const react_1 = __importDefault(require("react"));
15
+ const ink_1 = require("ink");
16
+ const design_tokens_1 = require("../../lib/design-tokens");
17
+ function hexToRgb(hex) {
18
+ const h = hex.replace('#', '');
19
+ return [
20
+ parseInt(h.slice(0, 2), 16),
21
+ parseInt(h.slice(2, 4), 16),
22
+ parseInt(h.slice(4, 6), 16),
23
+ ];
24
+ }
25
+ function rgbToHex(r, g, b) {
26
+ const clamp = (v) => Math.max(0, Math.min(255, Math.round(v)));
27
+ return `#${[clamp(r), clamp(g), clamp(b)]
28
+ .map((v) => v.toString(16).padStart(2, '0'))
29
+ .join('')}`;
30
+ }
31
+ function lerpColor(from, to, ratio) {
32
+ const [r1, g1, b1] = hexToRgb(from);
33
+ const [r2, g2, b2] = hexToRgb(to);
34
+ return rgbToHex(r1 + (r2 - r1) * ratio, g1 + (g2 - g1) * ratio, b1 + (b2 - b1) * ratio);
35
+ }
36
+ function GradientText({ text, from, to, bold = false }) {
37
+ const len = text.length;
38
+ if (len === 0)
39
+ return null;
40
+ const steps = Math.min(len, 16);
41
+ const stepSize = Math.ceil(len / steps);
42
+ const parts = [];
43
+ for (let i = 0; i < steps; i += 1) {
44
+ const start = i * stepSize;
45
+ const end = Math.min(start + stepSize, len);
46
+ const ratio = steps <= 1 ? 0 : i / (steps - 1);
47
+ parts.push(react_1.default.createElement(ink_1.Text, { key: i, color: lerpColor(from, to, ratio), bold: bold }, text.slice(start, end)));
48
+ }
49
+ return react_1.default.createElement(ink_1.Text, null, parts);
50
+ }
51
+ function Rule({ width }) {
52
+ const w = Math.max(8, width);
53
+ return (react_1.default.createElement(ink_1.Box, { width: width, marginY: 1 },
54
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.border }, '─'.repeat(w))));
55
+ }
56
+ /** Minimal inline prompt — no heavy box border. */
57
+ function InlinePrompt({ width, paletteOpen, query, placeholder }) {
58
+ return (react_1.default.createElement(ink_1.Box, { width: width },
59
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.primary, bold: true },
60
+ "\u203A",
61
+ ' '),
62
+ paletteOpen ? (react_1.default.createElement(react_1.default.Fragment, null,
63
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.accent }, query || '/'),
64
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.primary }, "\u258C"))) : (react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.dim }, placeholder))));
65
+ }
66
+ function KeyHint({ children, width }) {
67
+ return (react_1.default.createElement(ink_1.Box, { width: width, marginTop: 1 },
68
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.dim }, children)));
69
+ }
70
+ function ScreenTitle({ title, width }) {
71
+ return (react_1.default.createElement(ink_1.Box, { width: width, marginBottom: 1 },
72
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.dim }, "\u203A "),
73
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.primary, bold: true }, title)));
74
+ }
75
+ function StatusDot({ ok, loading }) {
76
+ if (loading)
77
+ return react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.amber }, "\u25CC");
78
+ if (ok)
79
+ return react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.green }, "\u25CF");
80
+ return react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.gray }, "\u25CB");
81
+ }
82
+ function ShellRoot({ offsetX, contentWidth, children }) {
83
+ return (react_1.default.createElement(ink_1.Box, { paddingLeft: 1 + offsetX, paddingRight: 1, flexDirection: "column" },
84
+ react_1.default.createElement(ink_1.Box, { width: contentWidth, flexDirection: "column" }, children)));
85
+ }
86
+ //# sourceMappingURL=ink-theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ink-theme.js","sourceRoot":"","sources":["../../../src/shell/components/ink-theme.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare function MenuList({ items, focusIndex, hint }: {
2
+ items: any;
3
+ focusIndex: any;
4
+ hint: any;
5
+ }): any;
6
+ export declare function getMenuItemEntries(items: any): any;
7
+ //# sourceMappingURL=menu-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-list.d.ts","sourceRoot":"","sources":["../../../src/shell/components/menu-list.tsx"],"names":[],"mappings":"AAKA,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE;;;;CAAA,OA2DnD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,KAAA,OAEvC"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MenuList = MenuList;
7
+ exports.getMenuItemEntries = getMenuItemEntries;
8
+ // @ts-nocheck
9
+ const react_1 = __importDefault(require("react"));
10
+ const ink_1 = require("ink");
11
+ const design_tokens_1 = require("../../lib/design-tokens");
12
+ function MenuList({ items, focusIndex, hint }) {
13
+ let itemIndex = -1;
14
+ return (react_1.default.createElement(ink_1.Box, { flexDirection: "column" },
15
+ items.map((entry, i) => {
16
+ if (entry.type === 'section') {
17
+ if (!entry.title)
18
+ return null;
19
+ return (react_1.default.createElement(ink_1.Box, { key: `section-${i}`, marginTop: 1, marginBottom: 0 },
20
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.border }, "\u250C "),
21
+ react_1.default.createElement(ink_1.Text, { bold: true, color: design_tokens_1.palette.primary }, entry.title)));
22
+ }
23
+ itemIndex += 1;
24
+ const focused = itemIndex === focusIndex;
25
+ const shortcut = entry.shortcut ? `[${entry.shortcut}]` : ' ';
26
+ return (react_1.default.createElement(ink_1.Box, { key: entry.value, marginLeft: 1 }, focused ? (react_1.default.createElement(ink_1.Text, { backgroundColor: design_tokens_1.palette.surfaceRaised },
27
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.accent, bold: true }, ' ▸ '),
28
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.primary, bold: true },
29
+ shortcut,
30
+ ' '),
31
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.primary, bold: true }, entry.label),
32
+ entry.hint ? (react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.dim },
33
+ " \u00B7 ",
34
+ entry.hint)) : null,
35
+ react_1.default.createElement(ink_1.Text, null, ' '))) : (react_1.default.createElement(ink_1.Text, null,
36
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.border }, " "),
37
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.dim },
38
+ shortcut,
39
+ " "),
40
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.dim }, entry.label)))));
41
+ }),
42
+ hint ? (react_1.default.createElement(ink_1.Box, { marginTop: 1 },
43
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.border }, "\u2514 "),
44
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.dim }, hint))) : null));
45
+ }
46
+ function getMenuItemEntries(items) {
47
+ return items.filter((e) => e.type === 'item');
48
+ }
49
+ //# sourceMappingURL=menu-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-list.js","sourceRoot":"","sources":["../../../src/shell/components/menu-list.tsx"],"names":[],"mappings":";;;;;AAKA,4BA2DC;AAED,gDAEC;AApED,cAAc;AACd,kDAA0B;AAC1B,6BAAgC;AAChC,2DAAkD;AAElD,SAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE;IAClD,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;IAEnB,OAAO,CACL,8BAAC,SAAG,IAAC,aAAa,EAAC,QAAQ;QACxB,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACtB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC,KAAK,CAAC,KAAK;oBAAE,OAAO,IAAI,CAAC;gBAC9B,OAAO,CACL,8BAAC,SAAG,IAAC,GAAG,EAAE,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC;oBACrD,8BAAC,UAAI,IAAC,KAAK,EAAE,uBAAO,CAAC,MAAM,cAAW;oBACtC,8BAAC,UAAI,IAAC,IAAI,QAAC,KAAK,EAAE,uBAAO,CAAC,OAAO,IAC9B,KAAK,CAAC,KAAK,CACP,CACH,CACP,CAAC;YACJ,CAAC;YAED,SAAS,IAAI,CAAC,CAAC;YACf,MAAM,OAAO,GAAG,SAAS,KAAK,UAAU,CAAC;YACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;YAEhE,OAAO,CACL,8BAAC,SAAG,IAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,IACjC,OAAO,CAAC,CAAC,CAAC,CACT,8BAAC,UAAI,IAAC,eAAe,EAAE,uBAAO,CAAC,aAAa;gBAC1C,8BAAC,UAAI,IAAC,KAAK,EAAE,uBAAO,CAAC,MAAM,EAAE,IAAI,UAC9B,KAAK,CACD;gBACP,8BAAC,UAAI,IAAC,KAAK,EAAE,uBAAO,CAAC,OAAO,EAAE,IAAI;oBAC/B,QAAQ;oBAAE,GAAG,CACT;gBACP,8BAAC,UAAI,IAAC,KAAK,EAAE,uBAAO,CAAC,OAAO,EAAE,IAAI,UAC/B,KAAK,CAAC,KAAK,CACP;gBACN,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CACZ,8BAAC,UAAI,IAAC,KAAK,EAAE,uBAAO,CAAC,GAAG;;oBAAQ,KAAK,CAAC,IAAI,CAAQ,CACnD,CAAC,CAAC,CAAC,IAAI;gBACR,8BAAC,UAAI,QAAE,IAAI,CAAQ,CACd,CACR,CAAC,CAAC,CAAC,CACF,8BAAC,UAAI;gBACH,8BAAC,UAAI,IAAC,KAAK,EAAE,uBAAO,CAAC,MAAM,UAAY;gBACvC,8BAAC,UAAI,IAAC,KAAK,EAAE,uBAAO,CAAC,GAAG;oBAAG,QAAQ;wBAAS;gBAC5C,8BAAC,UAAI,IAAC,KAAK,EAAE,uBAAO,CAAC,GAAG,IAAG,KAAK,CAAC,KAAK,CAAQ,CACzC,CACR,CACG,CACP,CAAC;QACJ,CAAC,CAAC;QAED,IAAI,CAAC,CAAC,CAAC,CACN,8BAAC,SAAG,IAAC,SAAS,EAAE,CAAC;YACf,8BAAC,UAAI,IAAC,KAAK,EAAE,uBAAO,CAAC,MAAM,cAAW;YACtC,8BAAC,UAAI,IAAC,KAAK,EAAE,uBAAO,CAAC,GAAG,IAAG,IAAI,CAAQ,CACnC,CACP,CAAC,CAAC,CAAC,IAAI,CACJ,CACP,CAAC;AACJ,CAAC;AAED,SAAgB,kBAAkB,CAAC,KAAK;IACtC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare function AnimatedPulseBar({ width, ratio, animate }: {
2
+ width?: number;
3
+ ratio?: number;
4
+ animate?: boolean;
5
+ }): any;
6
+ //# sourceMappingURL=pulse-bar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pulse-bar.d.ts","sourceRoot":"","sources":["../../../src/shell/components/pulse-bar.tsx"],"names":[],"mappings":"AAKA,wBAAgB,gBAAgB,CAAC,EAAE,KAAU,EAAE,KAAW,EAAE,OAAc,EAAE;;;;CAAA,OAkB3E"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.AnimatedPulseBar = AnimatedPulseBar;
37
+ // @ts-nocheck
38
+ const react_1 = __importStar(require("react"));
39
+ const ink_1 = require("ink");
40
+ const design_tokens_1 = require("../../lib/design-tokens");
41
+ function AnimatedPulseBar({ width = 24, ratio = 0.7, animate = true }) {
42
+ const [tick, setTick] = (0, react_1.useState)(0);
43
+ (0, react_1.useEffect)(() => {
44
+ if (!animate)
45
+ return undefined;
46
+ const id = setInterval(() => setTick((v) => v + 1), design_tokens_1.motion.pulsePeriodMs);
47
+ return () => clearInterval(id);
48
+ }, [animate]);
49
+ const wave = animate ? (Math.sin(tick * 0.8) + 1) / 2 : 0;
50
+ const filled = Math.max(1, Math.min(width, Math.round(width * (ratio * 0.6 + wave * 0.4))));
51
+ return (react_1.default.createElement(ink_1.Text, null,
52
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.primary }, '▰'.repeat(filled)),
53
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.gray }, '▱'.repeat(Math.max(0, width - filled)))));
54
+ }
55
+ //# sourceMappingURL=pulse-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pulse-bar.js","sourceRoot":"","sources":["../../../src/shell/components/pulse-bar.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,4CAkBC;AAvBD,cAAc;AACd,+CAAmD;AACnD,6BAAgC;AAChC,2DAA0D;AAE1D,SAAgB,gBAAgB,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,GAAG,EAAE,OAAO,GAAG,IAAI,EAAE;IAC1E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;IAEpC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC/B,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAM,CAAC,aAAa,CAAC,CAAC;QAC1E,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5F,OAAO,CACL,8BAAC,UAAI;QACH,8BAAC,UAAI,IAAC,KAAK,EAAE,uBAAO,CAAC,OAAO,IAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAQ;QACzD,8BAAC,UAAI,IAAC,KAAK,EAAE,uBAAO,CAAC,IAAI,IAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC,CAAQ,CACtE,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ export declare function ContextStatusBar({ projectPath, projectType, loading, contentWidth, stackRows, }: {
2
+ projectPath: any;
3
+ projectType: any;
4
+ loading: any;
5
+ contentWidth: any;
6
+ stackRows: any;
7
+ }): any;
8
+ export declare function ShellStatusFooter({ apiOk, dbOk, dockerOk, loading, contentWidth, stackRows, }: {
9
+ apiOk: any;
10
+ dbOk: any;
11
+ dockerOk: any;
12
+ loading: any;
13
+ contentWidth: any;
14
+ stackRows: any;
15
+ }): any;
16
+ //# sourceMappingURL=status-rack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-rack.d.ts","sourceRoot":"","sources":["../../../src/shell/components/status-rack.tsx"],"names":[],"mappings":"AAYA,wBAAgB,gBAAgB,CAAC,EAC/B,WAAW,EACX,WAAW,EACX,OAAO,EACP,YAAY,EACZ,SAAS,GACV;;;;;;CAAA,OA6BA;AAED,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,SAAS,GACV;;;;;;;CAAA,OA6BA"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ContextStatusBar = ContextStatusBar;
7
+ exports.ShellStatusFooter = ShellStatusFooter;
8
+ // @ts-nocheck
9
+ const react_1 = __importDefault(require("react"));
10
+ const ink_1 = require("ink");
11
+ const design_tokens_1 = require("../../lib/design-tokens");
12
+ const ink_theme_1 = require("./ink-theme");
13
+ const shell_layout_1 = require("../lib/shell-layout");
14
+ const { t } = require('../../lib/i18n');
15
+ function statusGlyph(ok) {
16
+ return ok ? '●' : '○';
17
+ }
18
+ function ContextStatusBar({ projectPath, projectType, loading, contentWidth, stackRows, }) {
19
+ const modeLabel = projectType === 'monorepo'
20
+ ? t('banner.mode.monorepo')
21
+ : projectType === 'standalone'
22
+ ? t('banner.mode.standalone')
23
+ : t('banner.mode.uninitialized');
24
+ const leftText = loading ? t('menu.statusChecking') : projectPath;
25
+ const rightText = `[${modeLabel}]`;
26
+ const row = (0, shell_layout_1.splitRowText)(contentWidth, leftText, rightText, stackRows);
27
+ const left = (react_1.default.createElement(ink_1.Text, { color: loading ? design_tokens_1.palette.amber : design_tokens_1.palette.dim }, row.left));
28
+ const right = (react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.accent }, row.right));
29
+ return (react_1.default.createElement(ink_theme_1.SplitRow, { width: contentWidth, left: left, right: right, stack: row.stack, marginBottom: 0 }));
30
+ }
31
+ function ShellStatusFooter({ apiOk, dbOk, dockerOk, loading, contentWidth, stackRows, }) {
32
+ const leftText = loading
33
+ ? t('shell.footer.checking')
34
+ : t('shell.footer.status', {
35
+ api: statusGlyph(apiOk),
36
+ db: statusGlyph(dbOk),
37
+ docker: statusGlyph(dockerOk),
38
+ });
39
+ const rightText = t('banner.subtitle');
40
+ const row = (0, shell_layout_1.splitRowText)(contentWidth, leftText, rightText, stackRows);
41
+ const left = (react_1.default.createElement(react_1.default.Fragment, null,
42
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.accent }, "\u25CF "),
43
+ react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.dim }, row.left)));
44
+ const right = react_1.default.createElement(ink_1.Text, { color: design_tokens_1.palette.dim }, row.right);
45
+ return (react_1.default.createElement(ink_theme_1.StatusFooter, { left: left, right: right, width: contentWidth, stack: row.stack }));
46
+ }
47
+ //# sourceMappingURL=status-rack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-rack.js","sourceRoot":"","sources":["../../../src/shell/components/status-rack.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function useTerminalSize(): any;
2
+ //# sourceMappingURL=use-terminal-size.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-terminal-size.d.ts","sourceRoot":"","sources":["../../../src/shell/hooks/use-terminal-size.ts"],"names":[],"mappings":"AAIA,wBAAgB,eAAe,QAsB9B"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useTerminalSize = useTerminalSize;
4
+ // @ts-nocheck
5
+ const react_1 = require("react");
6
+ const ink_1 = require("ink");
7
+ function useTerminalSize() {
8
+ const { stdout } = (0, ink_1.useStdout)();
9
+ const [size, setSize] = (0, react_1.useState)(() => ({
10
+ columns: stdout?.columns || 80,
11
+ rows: stdout?.rows || 24,
12
+ }));
13
+ (0, react_1.useEffect)(() => {
14
+ if (!stdout)
15
+ return undefined;
16
+ const onResize = () => {
17
+ setSize({
18
+ columns: stdout.columns || 80,
19
+ rows: stdout.rows || 24,
20
+ });
21
+ };
22
+ stdout.on('resize', onResize);
23
+ return () => stdout.off('resize', onResize);
24
+ }, [stdout]);
25
+ return size;
26
+ }
27
+ //# sourceMappingURL=use-terminal-size.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-terminal-size.js","sourceRoot":"","sources":["../../../src/shell/hooks/use-terminal-size.ts"],"names":[],"mappings":";;AAIA,0CAsBC;AA1BD,cAAc;AACd,iCAA4C;AAC5C,6BAAgC;AAEhC,SAAgB,eAAe;IAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,eAAS,GAAE,CAAC;IAC/B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE,CAAC,CAAC;QACtC,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE;QAC9B,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE;KACzB,CAAC,CAAC,CAAC;IAEJ,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAE9B,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,OAAO,CAAC;gBACN,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;gBAC7B,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;aACxB,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC9B,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,IAAI,CAAC;AACd,CAAC"}