gt 2.22.4 → 2.23.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/CHANGELOG.md +28 -0
- package/dist/auth/errors.d.ts +1 -0
- package/dist/auth/errors.js +12 -2
- package/dist/auth/errors.js.map +1 -1
- package/dist/auth/interactiveLogin.d.ts +2 -0
- package/dist/auth/interactiveLogin.js +22 -0
- package/dist/auth/interactiveLogin.js.map +1 -0
- package/dist/auth/oauth.js +2 -2
- package/dist/auth/oauth.js.map +1 -1
- package/dist/cli/base.d.ts +22 -4
- package/dist/cli/base.js +328 -223
- package/dist/cli/base.js.map +1 -1
- package/dist/cli/commands/api.js +15 -16
- package/dist/cli/commands/api.js.map +1 -1
- package/dist/cli/node.js +1 -1
- package/dist/cli/node.js.map +1 -1
- package/dist/cli/react.js +1 -1
- package/dist/cli/react.js.map +1 -1
- package/dist/cli/vue.js +2 -2
- package/dist/cli/vue.js.map +1 -1
- package/dist/config/generateSettings.d.ts +2 -0
- package/dist/config/generateSettings.js +13 -6
- package/dist/config/generateSettings.js.map +1 -1
- package/dist/config/resolveConfig.js +0 -4
- package/dist/config/resolveConfig.js.map +1 -1
- package/dist/config/validateSettings.js +5 -4
- package/dist/config/validateSettings.js.map +1 -1
- package/dist/console/{inkLocaleData.d.ts → localeOptions.d.ts} +7 -2
- package/dist/console/{inkLocaleData.js → localeOptions.js} +3 -8
- package/dist/console/localeOptions.js.map +1 -0
- package/dist/console/logger.d.ts +7 -0
- package/dist/console/logger.js +48 -85
- package/dist/console/logger.js.map +1 -1
- package/dist/console/logging.d.ts +11 -1
- package/dist/console/logging.js +88 -100
- package/dist/console/logging.js.map +1 -1
- package/dist/formats/files/aggregateFiles.js +1 -1
- package/dist/formats/files/supportedFiles.d.ts +3 -0
- package/dist/formats/files/supportedFiles.js +10 -1
- package/dist/formats/files/supportedFiles.js.map +1 -1
- package/dist/formats/yaml/mergeYaml.js +1 -1
- package/dist/fs/config/loadConfig.d.ts +2 -0
- package/dist/fs/config/loadConfig.js +5 -1
- package/dist/fs/config/loadConfig.js.map +1 -1
- package/dist/fs/config/setupConfig.d.ts +18 -9
- package/dist/fs/config/setupConfig.js +51 -31
- package/dist/fs/config/setupConfig.js.map +1 -1
- package/dist/fs/createLoadTranslationsFile.d.ts +22 -1
- package/dist/fs/createLoadTranslationsFile.js +43 -20
- package/dist/fs/createLoadTranslationsFile.js.map +1 -1
- package/dist/generated/version.d.ts +1 -1
- package/dist/generated/version.js +1 -1
- package/dist/generated/version.js.map +1 -1
- package/dist/hooks/postProcess.d.ts +1 -2
- package/dist/hooks/postProcess.js +1 -1
- package/dist/hooks/postProcess.js.map +1 -1
- package/dist/locadex/setupFlow.d.ts +4 -1
- package/dist/locadex/setupFlow.js +5 -3
- package/dist/locadex/setupFlow.js.map +1 -1
- package/dist/react/jsx/utils/jsxParsing/addGTIdentifierToSyntaxTree.js +1 -1
- package/dist/react/jsx/utils/jsxParsing/parseJsx.js +1 -1
- package/dist/react/jsx/utils/parseString.js +1 -1
- package/dist/react/jsx/utils/stringParsing/derivation/index.js +1 -1
- package/dist/setup/buildTools/index.d.ts +44 -0
- package/dist/setup/buildTools/index.js +10 -0
- package/dist/setup/buildTools/index.js.map +1 -0
- package/dist/setup/buildTools/vite.d.ts +2 -0
- package/dist/setup/buildTools/vite.js +61 -0
- package/dist/setup/buildTools/vite.js.map +1 -0
- package/dist/setup/developmentCredentials.d.ts +40 -5
- package/dist/setup/developmentCredentials.js +119 -37
- package/dist/setup/developmentCredentials.js.map +1 -1
- package/dist/setup/instructions/base.md +1 -1
- package/dist/setup/onboarding.d.ts +131 -0
- package/dist/setup/onboarding.js +289 -0
- package/dist/setup/onboarding.js.map +1 -0
- package/dist/setup/setupTarget.d.ts +1 -0
- package/dist/setup/setupTarget.js +52 -0
- package/dist/setup/setupTarget.js.map +1 -0
- package/dist/setup/setupViteSPA.d.ts +32 -1
- package/dist/setup/setupViteSPA.js +110 -20
- package/dist/setup/setupViteSPA.js.map +1 -1
- package/dist/setup/userInput.d.ts +12 -3
- package/dist/setup/userInput.js +27 -11
- package/dist/setup/userInput.js.map +1 -1
- package/dist/setup/wizard.d.ts +19 -3
- package/dist/setup/wizard.js +119 -105
- package/dist/setup/wizard.js.map +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.js +13 -1
- package/dist/types/index.js.map +1 -0
- package/dist/utils/credentials.d.ts +9 -6
- package/dist/utils/credentials.js +36 -22
- package/dist/utils/credentials.js.map +1 -1
- package/dist/utils/monorepoVersionCheck.d.ts +1 -1
- package/dist/utils/monorepoVersionCheck.js +5 -5
- package/dist/utils/monorepoVersionCheck.js.map +1 -1
- package/dist/utils/packageManager.js +13 -14
- package/dist/utils/packageManager.js.map +1 -1
- package/package.json +5 -9
- package/dist/console/inkFields.d.ts +0 -23
- package/dist/console/inkFields.js +0 -88
- package/dist/console/inkFields.js.map +0 -1
- package/dist/console/inkLayout.d.ts +0 -7
- package/dist/console/inkLayout.js +0 -140
- package/dist/console/inkLayout.js.map +0 -1
- package/dist/console/inkLocaleData.js.map +0 -1
- package/dist/console/inkPrompts.d.ts +0 -8
- package/dist/console/inkPrompts.js +0 -499
- package/dist/console/inkPrompts.js.map +0 -1
- package/dist/console/inkSession.d.ts +0 -3
- package/dist/console/inkSession.js +0 -42
- package/dist/console/inkSession.js.map +0 -1
- package/dist/console/inkTerminal.d.ts +0 -4
- package/dist/console/inkTerminal.js +0 -15
- package/dist/console/inkTerminal.js.map +0 -1
- package/dist/console/inkTheme.d.ts +0 -1
- package/dist/console/inkTheme.js +0 -6
- package/dist/console/inkTheme.js.map +0 -1
- package/dist/console/inkTypes.d.ts +0 -69
- package/dist/console/inkTypes.js +0 -1
- package/dist/console/inkUtils.d.ts +0 -24
- package/dist/console/inkUtils.js +0 -87
- package/dist/console/inkUtils.js.map +0 -1
- package/dist/console/terminalSession.d.ts +0 -5
- package/dist/console/terminalSession.js +0 -38
- package/dist/console/terminalSession.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inkFields.js","names":[],"sources":["../../src/console/inkFields.tsx"],"sourcesContent":["import { Box, Text } from 'ink';\nimport { getLocaleCodeWidth } from './inkLocaleData.js';\nimport { INK_ACCENT_COLOR } from './inkTheme.js';\nimport type { LocaleOption } from './inkTypes.js';\nimport { stripAnsi, truncate } from './inkUtils.js';\n\nexport function OptionRow({\n active,\n selected,\n label,\n hint,\n width,\n}: {\n active: boolean;\n selected?: boolean;\n label: string;\n hint?: string;\n width?: number;\n}) {\n const marker = active ? '>' : ' ';\n const selectedMarker = selected == null ? '' : selected ? '[x] ' : '[ ] ';\n const text = `${marker} ${selectedMarker}${stripAnsi(label)}${\n hint ? ` ${stripAnsi(hint)}` : ''\n }`;\n\n return active ? (\n <Text color={INK_ACCENT_COLOR} bold>\n {width ? truncate(text, width) : text}\n </Text>\n ) : (\n <Text>{width ? truncate(text, width) : text}</Text>\n );\n}\n\nexport function SelectedTags({\n selectedLocales,\n active,\n activeIndex,\n width,\n}: {\n selectedLocales: string[];\n active: boolean;\n activeIndex: number;\n width: number;\n}) {\n if (selectedLocales.length === 0) return null;\n\n return (\n <Box width={width} flexWrap='wrap'>\n <Text dimColor>Selected </Text>\n {selectedLocales.map((locale, index) => {\n const isActive = active && index === activeIndex;\n return (\n <Text key={locale}>\n <Text\n backgroundColor={isActive ? INK_ACCENT_COLOR : 'gray'}\n color='black'\n bold={isActive}\n >{` ${locale} `}</Text>\n {index < selectedLocales.length - 1 ? <Text> </Text> : null}\n </Text>\n );\n })}\n </Box>\n );\n}\n\nexport function LocaleOptionsList({\n options,\n activeIndex,\n width,\n}: {\n options: LocaleOption[];\n activeIndex: number;\n width: number;\n}) {\n const codeWidth = getLocaleCodeWidth();\n return (\n <Box flexDirection='column' marginTop={1}>\n {options.map((option, index) => (\n <LocaleRow\n key={option.code}\n active={index === activeIndex}\n option={option}\n width={width}\n codeWidth={codeWidth}\n />\n ))}\n </Box>\n );\n}\n\nfunction LocaleRow({\n active,\n option,\n width,\n codeWidth,\n}: {\n active: boolean;\n option: LocaleOption;\n width: number;\n codeWidth: number;\n}) {\n const marker = active ? '>' : ' ';\n const sameName = option.name === option.nativeName;\n const codeStr = option.code.padEnd(codeWidth);\n const reserved = 2 + codeWidth + 2;\n const remainingForName = Math.max(1, width - reserved);\n const nameMax = sameName\n ? remainingForName\n : Math.max(1, Math.ceil(remainingForName * 0.55));\n const truncatedName = truncate(option.name, nameMax);\n const nativeMax = sameName\n ? 0\n : Math.max(1, remainingForName - truncatedName.length - 2);\n const truncatedNative = sameName\n ? ''\n : truncate(option.nativeName, nativeMax);\n\n if (active) {\n return (\n <Text color={INK_ACCENT_COLOR} bold>\n {`${marker} ${codeStr} ${truncatedName}`}\n {sameName ? '' : ` ${truncatedNative}`}\n </Text>\n );\n }\n\n return (\n <Text>\n <Text>{`${marker} `}</Text>\n <Text dimColor>{codeStr}</Text>\n <Text>{` ${truncatedName}`}</Text>\n {sameName ? null : <Text dimColor italic>{` ${truncatedNative}`}</Text>}\n </Text>\n );\n}\n\nexport function RemainingMatches({\n total,\n visible,\n}: {\n total: number;\n visible: number;\n}) {\n const remaining = total - visible;\n if (remaining <= 0) return null;\n return <Text dimColor>{remaining} more matches</Text>;\n}\n"],"mappings":";;;;;;;AAMA,SAAgB,UAAU,EACxB,QACA,UACA,OACA,MACA,SAOC;CAGD,MAAM,OAAO,GAFE,SAAS,MAAM,IAEP,GADA,YAAY,OAAO,KAAK,WAAW,SAAS,SACxB,UAAU,MAAM,GACzD,OAAO,IAAI,UAAU,KAAK,KAAK;AAGjC,QAAO,SACL,oBAAC,MAAD;EAAM,OAAO;EAAkB,MAAA;YAC5B,QAAQ,SAAS,MAAM,MAAM,GAAG;EAC5B,CAAA,GAEP,oBAAC,MAAD,EAAA,UAAO,QAAQ,SAAS,MAAM,MAAM,GAAG,MAAY,CAAA;;AAIvD,SAAgB,aAAa,EAC3B,iBACA,QACA,aACA,SAMC;AACD,KAAI,gBAAgB,WAAW,EAAG,QAAO;AAEzC,QACE,qBAAC,KAAD;EAAY;EAAO,UAAS;YAA5B,CACE,oBAAC,MAAD;GAAM,UAAA;aAAS;GAAgB,CAAA,EAC9B,gBAAgB,KAAK,QAAQ,UAAU;GACtC,MAAM,WAAW,UAAU,UAAU;AACrC,UACE,qBAAC,MAAD,EAAA,UAAA,CACE,oBAAC,MAAD;IACE,iBAAiB,WAAW,mBAAmB;IAC/C,OAAM;IACN,MAAM;cACN,IAAI,OAAO;IAAU,CAAA,EACtB,QAAQ,gBAAgB,SAAS,IAAI,oBAAC,MAAD,EAAA,UAAM,KAAQ,CAAA,GAAG,KAClD,EAAA,EAPI,OAOJ;IAET,CACE;;;AAIV,SAAgB,kBAAkB,EAChC,SACA,aACA,SAKC;CACD,MAAM,YAAY,oBAAoB;AACtC,QACE,oBAAC,KAAD;EAAK,eAAc;EAAS,WAAW;YACpC,QAAQ,KAAK,QAAQ,UACpB,oBAAC,WAAD;GAEE,QAAQ,UAAU;GACV;GACD;GACI;GACX,EALK,OAAO,KAKZ,CACF;EACE,CAAA;;AAIV,SAAS,UAAU,EACjB,QACA,QACA,OACA,aAMC;CACD,MAAM,SAAS,SAAS,MAAM;CAC9B,MAAM,WAAW,OAAO,SAAS,OAAO;CACxC,MAAM,UAAU,OAAO,KAAK,OAAO,UAAU;CAC7C,MAAM,WAAW,IAAI,YAAY;CACjC,MAAM,mBAAmB,KAAK,IAAI,GAAG,QAAQ,SAAS;CACtD,MAAM,UAAU,WACZ,mBACA,KAAK,IAAI,GAAG,KAAK,KAAK,mBAAmB,IAAK,CAAC;CACnD,MAAM,gBAAgB,SAAS,OAAO,MAAM,QAAQ;CACpD,MAAM,YAAY,WACd,IACA,KAAK,IAAI,GAAG,mBAAmB,cAAc,SAAS,EAAE;CAC5D,MAAM,kBAAkB,WACpB,KACA,SAAS,OAAO,YAAY,UAAU;AAE1C,KAAI,OACF,QACE,qBAAC,MAAD;EAAM,OAAO;EAAkB,MAAA;YAA/B,CACG,GAAG,OAAO,GAAG,QAAQ,IAAI,iBACzB,WAAW,KAAK,KAAK,kBACjB;;AAIX,QACE,qBAAC,MAAD,EAAA,UAAA;EACE,oBAAC,MAAD,EAAA,UAAO,GAAG,OAAO,IAAU,CAAA;EAC3B,oBAAC,MAAD;GAAM,UAAA;aAAU;GAAe,CAAA;EAC/B,oBAAC,MAAD,EAAA,UAAO,KAAK,iBAAuB,CAAA;EAClC,WAAW,OAAO,oBAAC,MAAD;GAAM,UAAA;GAAS,QAAA;aAAQ,KAAK;GAAyB,CAAA;EACnE,EAAA,CAAA;;AAIX,SAAgB,iBAAiB,EAC/B,OACA,WAIC;CACD,MAAM,YAAY,QAAQ;AAC1B,KAAI,aAAa,EAAG,QAAO;AAC3B,QAAO,qBAAC,MAAD;EAAM,UAAA;YAAN,CAAgB,WAAU,gBAAoB"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { PromptFrameProps } from './inkTypes.js';
|
|
2
|
-
export declare function PromptFrame({ message, children, footer }: PromptFrameProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
-
export declare function InputBox({ value, width, placeholder, }: {
|
|
4
|
-
value: string;
|
|
5
|
-
width: number;
|
|
6
|
-
placeholder?: string;
|
|
7
|
-
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import { PACKAGE_VERSION } from "../generated/version.js";
|
|
2
|
-
import { INK_ACCENT_COLOR } from "./inkTheme.js";
|
|
3
|
-
import { getContentWidth, normalizedMessage, truncate, wrapText } from "./inkUtils.js";
|
|
4
|
-
import { useTerminalSize } from "./inkTerminal.js";
|
|
5
|
-
import { Box, Text } from "ink";
|
|
6
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
-
//#region src/console/inkLayout.tsx
|
|
8
|
-
function PromptFrame({ message, children, footer }) {
|
|
9
|
-
const { columns, rows } = useTerminalSize();
|
|
10
|
-
const width = getContentWidth(columns);
|
|
11
|
-
const topPadding = Math.max(1, Math.min(5, Math.floor(rows * .1)));
|
|
12
|
-
const showFeedback = columns >= 88;
|
|
13
|
-
const footerText = columns < 50 ? ultraCompactFooter(footer) : columns < 72 ? compactFooter(footer) : footer;
|
|
14
|
-
const messageLines = wrapText(normalizedMessage(message), width);
|
|
15
|
-
const headerTitle = ` General Translation Wizard v${PACKAGE_VERSION}`;
|
|
16
|
-
const headerFeedback = "Feedback: support@generaltranslation.com ";
|
|
17
|
-
const headerGap = Math.max(1, columns - headerTitle.length - (showFeedback ? 42 : 0));
|
|
18
|
-
const headerText = `${headerTitle}${" ".repeat(headerGap)}${showFeedback ? headerFeedback : ""}`;
|
|
19
|
-
const footerLine = ` ${footerText}`.padEnd(columns, " ");
|
|
20
|
-
return /* @__PURE__ */ jsxs(Box, {
|
|
21
|
-
width: columns,
|
|
22
|
-
height: rows,
|
|
23
|
-
flexDirection: "column",
|
|
24
|
-
children: [
|
|
25
|
-
/* @__PURE__ */ jsx(Box, {
|
|
26
|
-
width: columns,
|
|
27
|
-
children: /* @__PURE__ */ jsx(Text, {
|
|
28
|
-
bold: true,
|
|
29
|
-
color: "black",
|
|
30
|
-
backgroundColor: INK_ACCENT_COLOR,
|
|
31
|
-
children: headerText
|
|
32
|
-
})
|
|
33
|
-
}),
|
|
34
|
-
/* @__PURE__ */ jsx(Box, {
|
|
35
|
-
flexDirection: "column",
|
|
36
|
-
alignItems: "center",
|
|
37
|
-
paddingTop: topPadding,
|
|
38
|
-
flexShrink: 1,
|
|
39
|
-
children: /* @__PURE__ */ jsxs(Box, {
|
|
40
|
-
width,
|
|
41
|
-
flexDirection: "column",
|
|
42
|
-
children: [
|
|
43
|
-
/* @__PURE__ */ jsx(Box, {
|
|
44
|
-
justifyContent: "center",
|
|
45
|
-
children: /* @__PURE__ */ jsx(Text, {
|
|
46
|
-
bold: true,
|
|
47
|
-
color: INK_ACCENT_COLOR,
|
|
48
|
-
children: "GT Wizard"
|
|
49
|
-
})
|
|
50
|
-
}),
|
|
51
|
-
/* @__PURE__ */ jsx(Box, {
|
|
52
|
-
flexDirection: "column",
|
|
53
|
-
marginTop: 1,
|
|
54
|
-
children: messageLines.map((line, index) => /* @__PURE__ */ jsx(Text, { children: line }, `${index}-${line}`))
|
|
55
|
-
}),
|
|
56
|
-
/* @__PURE__ */ jsx(Box, {
|
|
57
|
-
marginTop: 2,
|
|
58
|
-
flexDirection: "column",
|
|
59
|
-
children
|
|
60
|
-
})
|
|
61
|
-
]
|
|
62
|
-
})
|
|
63
|
-
}),
|
|
64
|
-
/* @__PURE__ */ jsx(Box, { flexGrow: 1 }),
|
|
65
|
-
/* @__PURE__ */ jsx(Box, {
|
|
66
|
-
width: columns,
|
|
67
|
-
children: /* @__PURE__ */ jsx(Text, {
|
|
68
|
-
color: "black",
|
|
69
|
-
backgroundColor: INK_ACCENT_COLOR,
|
|
70
|
-
wrap: "truncate-end",
|
|
71
|
-
children: footerLine
|
|
72
|
-
})
|
|
73
|
-
})
|
|
74
|
-
]
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
function compactFooter(footer) {
|
|
78
|
-
return footer.replace("↑↓ navigate", "↑↓ move").replace("enter confirm", "enter done").replace("enter select", "enter choose").replace("esc cancel", "esc quit");
|
|
79
|
-
}
|
|
80
|
-
function ultraCompactFooter(footer) {
|
|
81
|
-
return compactFooter(footer).replace(/\s{2,}esc quit\s*$/, "").replace("↑↓ move", "↑↓").replace("space toggle", "spc").replace("enter done", "enter").replace("enter choose", "enter").replace("enter select", "enter").replace("enter save", "enter").replace("enter confirm", "enter").replace("type to edit", "type").replace("y/n select", "y/n").replace("←→ choose", "←→");
|
|
82
|
-
}
|
|
83
|
-
function InputBox({ value, width, placeholder }) {
|
|
84
|
-
const innerWidth = Math.max(1, width - 4);
|
|
85
|
-
if (value.length > 0) {
|
|
86
|
-
const visibleValue = truncate(value, Math.max(0, innerWidth - 1));
|
|
87
|
-
const padding = Math.max(0, innerWidth - visibleValue.length - 1);
|
|
88
|
-
return /* @__PURE__ */ jsxs(Box, {
|
|
89
|
-
width,
|
|
90
|
-
borderStyle: "round",
|
|
91
|
-
borderColor: INK_ACCENT_COLOR,
|
|
92
|
-
paddingX: 1,
|
|
93
|
-
children: [
|
|
94
|
-
/* @__PURE__ */ jsx(Text, { children: visibleValue }),
|
|
95
|
-
/* @__PURE__ */ jsx(Text, {
|
|
96
|
-
inverse: true,
|
|
97
|
-
children: " "
|
|
98
|
-
}),
|
|
99
|
-
/* @__PURE__ */ jsx(Text, { children: " ".repeat(padding) })
|
|
100
|
-
]
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
const placeholderText = truncate(placeholder ?? "", Math.max(0, innerWidth - 1));
|
|
104
|
-
if (!placeholderText) {
|
|
105
|
-
const padding = Math.max(0, innerWidth - 1);
|
|
106
|
-
return /* @__PURE__ */ jsxs(Box, {
|
|
107
|
-
width,
|
|
108
|
-
borderStyle: "round",
|
|
109
|
-
borderColor: INK_ACCENT_COLOR,
|
|
110
|
-
paddingX: 1,
|
|
111
|
-
children: [/* @__PURE__ */ jsx(Text, {
|
|
112
|
-
inverse: true,
|
|
113
|
-
children: " "
|
|
114
|
-
}), /* @__PURE__ */ jsx(Text, { children: " ".repeat(padding) })]
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
const padding = Math.max(0, innerWidth - placeholderText.length);
|
|
118
|
-
return /* @__PURE__ */ jsxs(Box, {
|
|
119
|
-
width,
|
|
120
|
-
borderStyle: "round",
|
|
121
|
-
borderColor: INK_ACCENT_COLOR,
|
|
122
|
-
paddingX: 1,
|
|
123
|
-
children: [
|
|
124
|
-
/* @__PURE__ */ jsx(Text, {
|
|
125
|
-
inverse: true,
|
|
126
|
-
dimColor: true,
|
|
127
|
-
children: placeholderText.slice(0, 1)
|
|
128
|
-
}),
|
|
129
|
-
/* @__PURE__ */ jsx(Text, {
|
|
130
|
-
dimColor: true,
|
|
131
|
-
children: placeholderText.slice(1)
|
|
132
|
-
}),
|
|
133
|
-
/* @__PURE__ */ jsx(Text, { children: " ".repeat(padding) })
|
|
134
|
-
]
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
//#endregion
|
|
138
|
-
export { InputBox, PromptFrame };
|
|
139
|
-
|
|
140
|
-
//# sourceMappingURL=inkLayout.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inkLayout.js","names":[],"sources":["../../src/console/inkLayout.tsx"],"sourcesContent":["import { Box, Text } from 'ink';\nimport { PACKAGE_VERSION } from '../generated/version.js';\nimport { useTerminalSize } from './inkTerminal.js';\nimport { INK_ACCENT_COLOR } from './inkTheme.js';\nimport type { PromptFrameProps } from './inkTypes.js';\nimport {\n getContentWidth,\n normalizedMessage,\n truncate,\n wrapText,\n} from './inkUtils.js';\n\nexport function PromptFrame({ message, children, footer }: PromptFrameProps) {\n const { columns, rows } = useTerminalSize();\n const width = getContentWidth(columns);\n const topPadding = Math.max(1, Math.min(5, Math.floor(rows * 0.1)));\n const showFeedback = columns >= 88;\n const footerText =\n columns < 50\n ? ultraCompactFooter(footer)\n : columns < 72\n ? compactFooter(footer)\n : footer;\n const messageLines = wrapText(normalizedMessage(message), width);\n const headerTitle = ` General Translation Wizard v${PACKAGE_VERSION}`;\n const headerFeedback = 'Feedback: support@generaltranslation.com ';\n const headerGap = Math.max(\n 1,\n columns - headerTitle.length - (showFeedback ? headerFeedback.length : 0)\n );\n const headerText = `${headerTitle}${' '.repeat(headerGap)}${\n showFeedback ? headerFeedback : ''\n }`;\n const footerLine = ` ${footerText}`.padEnd(columns, ' ');\n\n return (\n <Box width={columns} height={rows} flexDirection='column'>\n <Box width={columns}>\n <Text bold color='black' backgroundColor={INK_ACCENT_COLOR}>\n {headerText}\n </Text>\n </Box>\n\n <Box\n flexDirection='column'\n alignItems='center'\n paddingTop={topPadding}\n flexShrink={1}\n >\n <Box width={width} flexDirection='column'>\n <Box justifyContent='center'>\n <Text bold color={INK_ACCENT_COLOR}>\n GT Wizard\n </Text>\n </Box>\n <Box flexDirection='column' marginTop={1}>\n {messageLines.map((line, index) => (\n <Text key={`${index}-${line}`}>{line}</Text>\n ))}\n </Box>\n <Box marginTop={2} flexDirection='column'>\n {children}\n </Box>\n </Box>\n </Box>\n\n <Box flexGrow={1} />\n <Box width={columns}>\n <Text\n color='black'\n backgroundColor={INK_ACCENT_COLOR}\n wrap='truncate-end'\n >\n {footerLine}\n </Text>\n </Box>\n </Box>\n );\n}\n\nfunction compactFooter(footer: string) {\n return footer\n .replace('↑↓ navigate', '↑↓ move')\n .replace('enter confirm', 'enter done')\n .replace('enter select', 'enter choose')\n .replace('esc cancel', 'esc quit');\n}\n\nfunction ultraCompactFooter(footer: string) {\n return compactFooter(footer)\n .replace(/\\s{2,}esc quit\\s*$/, '')\n .replace('↑↓ move', '↑↓')\n .replace('space toggle', 'spc')\n .replace('enter done', 'enter')\n .replace('enter choose', 'enter')\n .replace('enter select', 'enter')\n .replace('enter save', 'enter')\n .replace('enter confirm', 'enter')\n .replace('type to edit', 'type')\n .replace('y/n select', 'y/n')\n .replace('←→ choose', '←→');\n}\n\nexport function InputBox({\n value,\n width,\n placeholder,\n}: {\n value: string;\n width: number;\n placeholder?: string;\n}) {\n const innerWidth = Math.max(1, width - 4);\n const hasValue = value.length > 0;\n\n if (hasValue) {\n const visibleValue = truncate(value, Math.max(0, innerWidth - 1));\n const padding = Math.max(0, innerWidth - visibleValue.length - 1);\n return (\n <Box\n width={width}\n borderStyle='round'\n borderColor={INK_ACCENT_COLOR}\n paddingX={1}\n >\n <Text>{visibleValue}</Text>\n <Text inverse> </Text>\n <Text>{' '.repeat(padding)}</Text>\n </Box>\n );\n }\n\n const placeholderText = truncate(\n placeholder ?? '',\n Math.max(0, innerWidth - 1)\n );\n\n if (!placeholderText) {\n const padding = Math.max(0, innerWidth - 1);\n return (\n <Box\n width={width}\n borderStyle='round'\n borderColor={INK_ACCENT_COLOR}\n paddingX={1}\n >\n <Text inverse> </Text>\n <Text>{' '.repeat(padding)}</Text>\n </Box>\n );\n }\n\n const padding = Math.max(0, innerWidth - placeholderText.length);\n return (\n <Box\n width={width}\n borderStyle='round'\n borderColor={INK_ACCENT_COLOR}\n paddingX={1}\n >\n <Text inverse dimColor>\n {placeholderText.slice(0, 1)}\n </Text>\n <Text dimColor>{placeholderText.slice(1)}</Text>\n <Text>{' '.repeat(padding)}</Text>\n </Box>\n );\n}\n"],"mappings":";;;;;;;AAYA,SAAgB,YAAY,EAAE,SAAS,UAAU,UAA4B;CAC3E,MAAM,EAAE,SAAS,SAAS,iBAAiB;CAC3C,MAAM,QAAQ,gBAAgB,QAAQ;CACtC,MAAM,aAAa,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,MAAM,OAAO,GAAI,CAAC,CAAC;CACnE,MAAM,eAAe,WAAW;CAChC,MAAM,aACJ,UAAU,KACN,mBAAmB,OAAO,GAC1B,UAAU,KACR,cAAc,OAAO,GACrB;CACR,MAAM,eAAe,SAAS,kBAAkB,QAAQ,EAAE,MAAM;CAChE,MAAM,cAAc,iCAAiC;CACrD,MAAM,iBAAiB;CACvB,MAAM,YAAY,KAAK,IACrB,GACA,UAAU,YAAY,UAAU,eAAe,KAAwB,GACxE;CACD,MAAM,aAAa,GAAG,cAAc,IAAI,OAAO,UAAU,GACvD,eAAe,iBAAiB;CAElC,MAAM,aAAa,KAAK,aAAa,OAAO,SAAS,IAAI;AAEzD,QACE,qBAAC,KAAD;EAAK,OAAO;EAAS,QAAQ;EAAM,eAAc;YAAjD;GACE,oBAAC,KAAD;IAAK,OAAO;cACV,oBAAC,MAAD;KAAM,MAAA;KAAK,OAAM;KAAQ,iBAAiB;eACvC;KACI,CAAA;IACH,CAAA;GAEN,oBAAC,KAAD;IACE,eAAc;IACd,YAAW;IACX,YAAY;IACZ,YAAY;cAEZ,qBAAC,KAAD;KAAY;KAAO,eAAc;eAAjC;MACE,oBAAC,KAAD;OAAK,gBAAe;iBAClB,oBAAC,MAAD;QAAM,MAAA;QAAK,OAAO;kBAAkB;QAE7B,CAAA;OACH,CAAA;MACN,oBAAC,KAAD;OAAK,eAAc;OAAS,WAAW;iBACpC,aAAa,KAAK,MAAM,UACvB,oBAAC,MAAD,EAAA,UAAgC,MAAY,EAAjC,GAAG,MAAM,GAAG,OAAqB,CAC5C;OACE,CAAA;MACN,oBAAC,KAAD;OAAK,WAAW;OAAG,eAAc;OAC9B;OACG,CAAA;MACF;;IACF,CAAA;GAEN,oBAAC,KAAD,EAAK,UAAU,GAAK,CAAA;GACpB,oBAAC,KAAD;IAAK,OAAO;cACV,oBAAC,MAAD;KACE,OAAM;KACN,iBAAiB;KACjB,MAAK;eAEJ;KACI,CAAA;IACH,CAAA;GACF;;;AAIV,SAAS,cAAc,QAAgB;AACrC,QAAO,OACJ,QAAQ,eAAe,UAAU,CACjC,QAAQ,iBAAiB,aAAa,CACtC,QAAQ,gBAAgB,eAAe,CACvC,QAAQ,cAAc,WAAW;;AAGtC,SAAS,mBAAmB,QAAgB;AAC1C,QAAO,cAAc,OAAO,CACzB,QAAQ,sBAAsB,GAAG,CACjC,QAAQ,WAAW,KAAK,CACxB,QAAQ,gBAAgB,MAAM,CAC9B,QAAQ,cAAc,QAAQ,CAC9B,QAAQ,gBAAgB,QAAQ,CAChC,QAAQ,gBAAgB,QAAQ,CAChC,QAAQ,cAAc,QAAQ,CAC9B,QAAQ,iBAAiB,QAAQ,CACjC,QAAQ,gBAAgB,OAAO,CAC/B,QAAQ,cAAc,MAAM,CAC5B,QAAQ,aAAa,KAAK;;AAG/B,SAAgB,SAAS,EACvB,OACA,OACA,eAKC;CACD,MAAM,aAAa,KAAK,IAAI,GAAG,QAAQ,EAAE;AAGzC,KAFiB,MAAM,SAAS,GAElB;EACZ,MAAM,eAAe,SAAS,OAAO,KAAK,IAAI,GAAG,aAAa,EAAE,CAAC;EACjE,MAAM,UAAU,KAAK,IAAI,GAAG,aAAa,aAAa,SAAS,EAAE;AACjE,SACE,qBAAC,KAAD;GACS;GACP,aAAY;GACZ,aAAa;GACb,UAAU;aAJZ;IAME,oBAAC,MAAD,EAAA,UAAO,cAAoB,CAAA;IAC3B,oBAAC,MAAD;KAAM,SAAA;eAAQ;KAAQ,CAAA;IACtB,oBAAC,MAAD,EAAA,UAAO,IAAI,OAAO,QAAQ,EAAQ,CAAA;IAC9B;;;CAIV,MAAM,kBAAkB,SACtB,eAAe,IACf,KAAK,IAAI,GAAG,aAAa,EAAE,CAC5B;AAED,KAAI,CAAC,iBAAiB;EACpB,MAAM,UAAU,KAAK,IAAI,GAAG,aAAa,EAAE;AAC3C,SACE,qBAAC,KAAD;GACS;GACP,aAAY;GACZ,aAAa;GACb,UAAU;aAJZ,CAME,oBAAC,MAAD;IAAM,SAAA;cAAQ;IAAQ,CAAA,EACtB,oBAAC,MAAD,EAAA,UAAO,IAAI,OAAO,QAAQ,EAAQ,CAAA,CAC9B;;;CAIV,MAAM,UAAU,KAAK,IAAI,GAAG,aAAa,gBAAgB,OAAO;AAChE,QACE,qBAAC,KAAD;EACS;EACP,aAAY;EACZ,aAAa;EACb,UAAU;YAJZ;GAME,oBAAC,MAAD;IAAM,SAAA;IAAQ,UAAA;cACX,gBAAgB,MAAM,GAAG,EAAE;IACvB,CAAA;GACP,oBAAC,MAAD;IAAM,UAAA;cAAU,gBAAgB,MAAM,EAAE;IAAQ,CAAA;GAChD,oBAAC,MAAD,EAAA,UAAO,IAAI,OAAO,QAAQ,EAAQ,CAAA;GAC9B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inkLocaleData.js","names":[],"sources":["../../src/console/inkLocaleData.ts"],"sourcesContent":["import { listSupportedLocales } from '@generaltranslation/supported-locales';\nimport { getLocaleProperties } from 'generaltranslation';\nimport type { LocaleOption } from './inkTypes.js';\n\nlet localeOptionsCache: LocaleOption[] | undefined;\nlet localeCodeWidthCache: number | undefined;\n\nexport function getLocaleOptions(): LocaleOption[] {\n localeOptionsCache ??= listSupportedLocales().map((code) => {\n const properties = getLocaleProperties(code);\n const label =\n properties.name === properties.nativeName\n ? `${code} ${properties.name}`\n : `${code} ${properties.name} / ${properties.nativeName}`;\n\n return {\n code,\n label,\n name: properties.name,\n nativeName: properties.nativeName,\n searchable:\n `${code} ${properties.name} ${properties.nativeName}`.toLowerCase(),\n };\n });\n return localeOptionsCache;\n}\n\nexport function getLocaleCodeWidth(): number {\n localeCodeWidthCache ??= getLocaleOptions().reduce(\n (max, option) => Math.max(max, option.code.length),\n 0\n );\n return localeCodeWidthCache;\n}\n\nexport function getFilteredLocaleOptions(query: string) {\n const normalizedQuery = query.trim().toLowerCase();\n const options = getLocaleOptions();\n if (!normalizedQuery) return options;\n\n return options\n .filter((option) => option.searchable.includes(normalizedQuery))\n .sort(\n (left, right) =>\n getLocaleSearchRank(left, normalizedQuery) -\n getLocaleSearchRank(right, normalizedQuery)\n );\n}\n\nfunction getLocaleSearchRank(option: LocaleOption, query: string) {\n const code = option.code.toLowerCase();\n const name = option.name.toLowerCase();\n const nativeName = option.nativeName.toLowerCase();\n\n if (code === query) return 0;\n if (code.startsWith(query)) return 1;\n if (name.startsWith(query)) return 2;\n if (nativeName.startsWith(query)) return 3;\n return 4;\n}\n"],"mappings":";;;AAIA,IAAI;AACJ,IAAI;AAEJ,SAAgB,mBAAmC;AACjD,wBAAuB,sBAAsB,CAAC,KAAK,SAAS;EAC1D,MAAM,aAAa,oBAAoB,KAAK;AAM5C,SAAO;GACL;GACA,OANA,WAAW,SAAS,WAAW,aAC3B,GAAG,KAAK,IAAI,WAAW,SACvB,GAAG,KAAK,IAAI,WAAW,KAAK,KAAK,WAAW;GAKhD,MAAM,WAAW;GACjB,YAAY,WAAW;GACvB,YACE,GAAG,KAAK,GAAG,WAAW,KAAK,GAAG,WAAW,aAAa,aAAa;GACtE;GACD;AACF,QAAO;;AAGT,SAAgB,qBAA6B;AAC3C,0BAAyB,kBAAkB,CAAC,QACzC,KAAK,WAAW,KAAK,IAAI,KAAK,OAAO,KAAK,OAAO,EAClD,EACD;AACD,QAAO;;AAGT,SAAgB,yBAAyB,OAAe;CACtD,MAAM,kBAAkB,MAAM,MAAM,CAAC,aAAa;CAClD,MAAM,UAAU,kBAAkB;AAClC,KAAI,CAAC,gBAAiB,QAAO;AAE7B,QAAO,QACJ,QAAQ,WAAW,OAAO,WAAW,SAAS,gBAAgB,CAAC,CAC/D,MACE,MAAM,UACL,oBAAoB,MAAM,gBAAgB,GAC1C,oBAAoB,OAAO,gBAAgB,CAC9C;;AAGL,SAAS,oBAAoB,QAAsB,OAAe;CAChE,MAAM,OAAO,OAAO,KAAK,aAAa;CACtC,MAAM,OAAO,OAAO,KAAK,aAAa;CACtC,MAAM,aAAa,OAAO,WAAW,aAAa;AAElD,KAAI,SAAS,MAAO,QAAO;AAC3B,KAAI,KAAK,WAAW,MAAM,CAAE,QAAO;AACnC,KAAI,KAAK,WAAW,MAAM,CAAE,QAAO;AACnC,KAAI,WAAW,WAAW,MAAM,CAAE,QAAO;AACzC,QAAO"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { ConfirmPromptProps, GlobPromptProps, LocaleMultiPromptProps, LocalePromptProps, MultiSelectPromptProps, SelectPromptProps, TextPromptProps } from './inkTypes.js';
|
|
2
|
-
export declare function inkPromptText(options: Omit<TextPromptProps, 'onComplete'>): Promise<import("./inkTypes.js").PromptResult<string>>;
|
|
3
|
-
export declare function inkPromptLocale(options: Omit<LocalePromptProps, 'onComplete'>): Promise<import("./inkTypes.js").PromptResult<string>>;
|
|
4
|
-
export declare function inkPromptLocaleMulti(options: Omit<LocaleMultiPromptProps, 'onComplete'>): Promise<import("./inkTypes.js").PromptResult<string[]>>;
|
|
5
|
-
export declare function inkPromptGlob(options: Omit<GlobPromptProps, 'onComplete'>): Promise<import("./inkTypes.js").PromptResult<string>>;
|
|
6
|
-
export declare function inkPromptSelect<T>(options: Omit<SelectPromptProps<T>, 'onComplete'>): Promise<import("./inkTypes.js").PromptResult<T>>;
|
|
7
|
-
export declare function inkPromptMultiSelect<T extends string>(options: Omit<MultiSelectPromptProps<T>, 'onComplete'>): Promise<import("./inkTypes.js").PromptResult<T[]>>;
|
|
8
|
-
export declare function inkPromptConfirm(options: Omit<ConfirmPromptProps, 'onComplete'>): Promise<import("./inkTypes.js").PromptResult<boolean>>;
|