@shell-shock/plugin-console 0.1.29 → 0.1.31
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/README.md
CHANGED
|
@@ -27,7 +27,7 @@ This package is part of the ⚡<b>Shell Shock</b> monorepo. The Shell Shock pack
|
|
|
27
27
|
|
|
28
28
|
<h3 align="center">💻 Visit <a href="https://stormsoftware.com" target="_blank">stormsoftware.com</a> to stay up to date with this developer</h3><br />
|
|
29
29
|
|
|
30
|
-
[](https://stormsoftware.com/projects/shell-shock/) [](http://commitizen.github.io/cz-cli/)  
|
|
31
31
|
|
|
32
32
|
<!-- prettier-ignore-start -->
|
|
33
33
|
<!-- markdownlint-disable -->
|
|
@@ -1360,7 +1360,7 @@ function ColorsDeclaration() {
|
|
|
1360
1360
|
get joiner() {
|
|
1361
1361
|
return [_alloy_js_core.code`, `, (0, _alloy_js_core_jsx_runtime.createIntrinsic)("hbr", {})];
|
|
1362
1362
|
},
|
|
1363
|
-
children: (key) => _alloy_js_core.code`${(0, _stryke_string_format.
|
|
1363
|
+
children: (key) => _alloy_js_core.code`${key === "$default" ? "$default" : (0, _stryke_string_format.camelCase)(key)}: ${(0, _alloy_js_core_jsx_runtime.createComponent)(ColorFunction, {
|
|
1364
1364
|
get ansi16() {
|
|
1365
1365
|
return colors.ansi16.theme.text.tags[key];
|
|
1366
1366
|
},
|
|
@@ -8,7 +8,7 @@ import { BuiltinFile } from "@powerlines/plugin-alloy/typescript/components/buil
|
|
|
8
8
|
import { TSDoc, TSDocDefaultValue, TSDocExample, TSDocParam, TSDocRemarks, TSDocReturns } from "@powerlines/plugin-alloy/typescript/components/tsdoc";
|
|
9
9
|
import { IsNotDebug, IsNotVerbose } from "@shell-shock/core/components/helpers";
|
|
10
10
|
import { useColors, useTheme } from "@shell-shock/plugin-theme/contexts/theme";
|
|
11
|
-
import {
|
|
11
|
+
import { camelCase } from "@stryke/string-format";
|
|
12
12
|
import { getIndefiniteArticle } from "@stryke/string-format/vowels";
|
|
13
13
|
import { defu } from "defu";
|
|
14
14
|
|
|
@@ -1358,7 +1358,7 @@ function ColorsDeclaration() {
|
|
|
1358
1358
|
get joiner() {
|
|
1359
1359
|
return [code`, `, createIntrinsic("hbr", {})];
|
|
1360
1360
|
},
|
|
1361
|
-
children: (key) => code`${
|
|
1361
|
+
children: (key) => code`${key === "$default" ? "$default" : camelCase(key)}: ${createComponent(ColorFunction, {
|
|
1362
1362
|
get ansi16() {
|
|
1363
1363
|
return colors.ansi16.theme.text.tags[key];
|
|
1364
1364
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console-builtin.mjs","names":[],"sources":["../../src/components/console-builtin.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Shell Shock\n\n This code was released as part of the Shell Shock project. Shell Shock\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/shell-shock.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/shell-shock\n Documentation: https://docs.stormsoftware.com/projects/shell-shock\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport type { Children } from \"@alloy-js/core\";\nimport { code, For, Show } from \"@alloy-js/core\";\nimport type { FunctionDeclarationProps } from \"@alloy-js/typescript\";\nimport {\n ElseClause,\n ElseIfClause,\n FunctionDeclaration,\n IfStatement,\n InterfaceDeclaration,\n InterfaceMember,\n TypeDeclaration,\n VarDeclaration\n} from \"@alloy-js/typescript\";\nimport { ReflectionKind } from \"@powerlines/deepkit/vendor/type\";\nimport { Spacing } from \"@powerlines/plugin-alloy/core/components/spacing\";\nimport {\n ClassDeclaration,\n ClassField,\n ClassMethod,\n ClassPropertyGet,\n ClassPropertySet\n} from \"@powerlines/plugin-alloy/typescript\";\nimport type { BuiltinFileProps } from \"@powerlines/plugin-alloy/typescript/components/builtin-file\";\nimport { BuiltinFile } from \"@powerlines/plugin-alloy/typescript/components/builtin-file\";\nimport {\n TSDoc,\n TSDocDefaultValue,\n TSDocExample,\n TSDocParam,\n TSDocRemarks,\n TSDocReturns\n} from \"@powerlines/plugin-alloy/typescript/components/tsdoc\";\nimport { IsNotDebug, IsNotVerbose } from \"@shell-shock/core/components/helpers\";\nimport type {\n ThemeMessageVariant,\n ThemeResolvedConfig\n} from \"@shell-shock/plugin-theme\";\nimport { useColors, useTheme } from \"@shell-shock/plugin-theme/contexts/theme\";\nimport type {\n AnsiWrappers,\n BaseAnsiStylesKeys\n} from \"@shell-shock/plugin-theme/helpers/ansi-utils\";\nimport { kebabCase } from \"@stryke/string-format\";\nimport { getIndefiniteArticle } from \"@stryke/string-format/vowels\";\nimport { defu } from \"defu\";\n\nexport function AnsiHelpersDeclarations() {\n return (\n <>\n <VarDeclaration\n const\n export\n name=\"beep\"\n doc=\"The ASCII Bell character, which can be used to trigger a beep sound in the console.\">\n {code` \"\\\\u0007\"; `}\n </VarDeclaration>\n <Spacing />\n <VarDeclaration\n const\n export\n name=\"cursor\"\n doc=\"An object containing ANSI escape codes for controlling the console cursor.\">\n {code` {\n to(x: number, y?: number) {\n if (!y) {\n return \\`\\\\x1B[\\${x + 1}G\\`;\n }\n\n return \\`\\\\x1B[\\${y + 1};\\${x + 1}H\\`;\n },\n move(x: number, y: number) {\n let ret = '';\n\n if (x < 0) {\n ret += \\`\\\\x1B[\\${-x}D\\`;\n } else if (x > 0) {\n ret += \\`\\\\x1B[\\${x}C\\`;\n }\n\n if (y < 0) {\n ret += \\`\\\\x1B[\\${-y}A\\`;\n } else if (y > 0) {\n ret += \\`\\\\x1B[\\${y}B\\`;\n }\n\n return ret;\n },\n up: (count = 1) => \\`\\\\x1B[\\${count}A\\`,\n down: (count = 1) => \\`\\\\x1B[\\${count}B\\`,\n forward: (count = 1) => \\`\\\\x1B[\\${count}C\\`,\n backward: (count = 1) => \\`\\\\x1B[\\${count}D\\`,\n nextLine: (count = 1) => \"\\\\x1B[E\".repeat(count),\n prevLine: (count = 1) => \"\\\\x1B[F\".repeat(count),\n left: \"\\\\x1B[G\",\n hide: \"\\\\x1B[?25l\",\n show: \"\\\\x1B[?25h\",\n save: \"\\\\x1B7\",\n restore: \"\\\\x1B8\"\n } `}\n </VarDeclaration>\n <Spacing />\n <VarDeclaration\n const\n export\n name=\"erase\"\n doc=\"An object containing ANSI escape codes for erasing parts of the console.\">\n {code` {\n screen: \"\\\\x1B[2J\",\n up: (count = 1) => \"\\\\x1B[1J\".repeat(count),\n down: (count = 1) => \"\\\\x1B[J\".repeat(count),\n line: \"\\\\x1B[2K\",\n lineEnd: \"\\\\x1B[K\",\n lineStart: \"\\\\x1B[1K\",\n lines(count: number) {\n let lineClear = \"\";\n for (let i = 0; i < count; i++) {\n lineClear += this.line + (i < count - 1 ? cursor.up() : \"\");\n }\n\n if (count) {\n lineClear += cursor.left;\n }\n\n return lineClear;\n }\n } `}\n </VarDeclaration>\n <Spacing />\n <VarDeclaration\n const\n export\n name=\"scroll\"\n doc=\"An object containing ANSI escape codes for scrolling the console.\">\n {code` {\n up: (count = 1) => \"\\\\x1B[S\".repeat(count),\n down: (count = 1) => \"\\\\x1B[T\".repeat(count)\n } `}\n </VarDeclaration>\n <Spacing />\n <FunctionDeclaration\n export\n name=\"clear\"\n doc=\"A helper function to clear the console based on a count of lines\"\n parameters={[\n {\n name: \"current\",\n type: \"string\",\n doc: \"The current console output to be cleared\"\n },\n {\n name: \"consoleWidth\",\n type: \"number\",\n doc: \"The number of characters per line in the console\"\n }\n ]}>\n {code`if (!consoleWidth) {\n return erase.line + cursor.to(0);\n }\n\n let rows = 0;\n const lines = current.split(/\\\\r?\\\\n/);\n for (let line of lines) {\n rows += 1 + Math.floor(Math.max([...stripAnsi(line)].length - 1, 0) / consoleWidth);\n }\n\n return erase.lines(rows); `}\n </FunctionDeclaration>\n <Spacing />\n </>\n );\n}\n\n/**\n * A component to generate a console message function in a Shell Shock project.\n */\nfunction ColorFunction({\n ansi16,\n ansi256,\n ansi16m\n}: Record<\"ansi16\" | \"ansi256\" | \"ansi16m\", AnsiWrappers>) {\n return code` (text: string, background = false) => {\n try {\n if (!isColorSupported) {\n return String(text);\n }\n\n if (colorSupportLevels.stdout === 1) {\n return wrapAnsi(text, background ? \"${\n ansi16.background.open\n }\" : \"${ansi16.open}\", background ? \"${\n ansi16.background.close\n }\" : \"${ansi16.close}\");\n } else if (colorSupportLevels.stdout === 2) {\n return wrapAnsi(text, background ? \"${\n ansi256.background.open\n }\" : \"${ansi256.open}\", background ? \"${\n ansi256.background.close\n }\" : \"${ansi256.close}\");\n }\n\n return wrapAnsi(text, background ? \"${ansi16m.background.open}\" : \"${\n ansi16m.open\n }\", background ? \"${ansi16m.background.close}\" : \"${ansi16m.close}\");\n } catch {\n return String(text);\n }\n }\n`;\n}\n\n/**\n * A component to generate an object containing functions for coloring text in a Shell Shock project.\n */\nexport function ColorsDeclaration() {\n const colors = useColors();\n const theme = useTheme();\n\n return (\n <>\n <TypeDeclaration\n export\n name=\"AnsiColor\"\n doc=\"The available ANSI colors for console text.\">\n <For\n each={Object.keys(colors.ansi16).filter(color => color !== \"theme\")}>\n {(color, idx) => `${idx > 0 ? \" | \" : \"\"}\"${color}\"`}\n </For>\n </TypeDeclaration>\n <Spacing />\n <hbr />\n {code`\n /**\n * A recursive type that defines theme colors for console text.\n *\n * @remarks\n * This type allows for nested theme color definitions, enabling complex theming structures for console applications.\n */\n export type ThemeColors<T> = T extends object ? { [K in keyof T]: ThemeColors<T[K]>; } : ((text: string) => string); `}\n <Spacing />\n <TypeDeclaration\n export\n name=\"Colors\"\n doc=\"An object containing functions for coloring console applications. Each function corresponds to a terminal color. See {@link AnsiColor} for available colors.\">\n {code`Record<AnsiColor, (text: string) => string> & ThemeColors<ThemeColorsResolvedConfig>`}\n </TypeDeclaration>\n <Spacing />\n <TSDoc heading=\"An object containing functions for coloring console applications. Each function corresponds to a terminal color. See {@link Colors} for available colors.\" />\n <VarDeclaration\n const\n export\n name=\"colors\"\n type=\"Colors\"\n initializer={\n <>\n {code` {\n `}\n <hbr />\n <For\n each={Object.keys(colors.ansi16).filter(\n color => color !== \"theme\"\n )}\n comma\n doubleHardline\n enderPunctuation>\n {color => (\n <>\n {code`${color}: `}\n <ColorFunction\n ansi16={colors.ansi16[color as BaseAnsiStylesKeys]}\n ansi256={colors.ansi256[color as BaseAnsiStylesKeys]}\n ansi16m={colors.ansi16m[color as BaseAnsiStylesKeys]}\n />\n </>\n )}\n </For>\n <hbr />\n {code`text: {\n banner: {\n header: {\n primary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.header.primary\n }\n ansi256={\n colors.ansi256.theme.text.banner.header.primary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.header.primary\n }\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.header.secondary\n }\n ansi256={\n colors.ansi256.theme.text.banner.header.secondary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.header.secondary\n }\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.header.tertiary\n }\n ansi256={\n colors.ansi256.theme.text.banner.header.tertiary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.header.tertiary\n }\n />\n )}\n },\n footer: {\n primary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.footer.primary\n }\n ansi256={\n colors.ansi256.theme.text.banner.footer.primary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.footer.primary\n }\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.footer.secondary\n }\n ansi256={\n colors.ansi256.theme.text.banner.footer.secondary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.footer.secondary\n }\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.footer.tertiary\n }\n ansi256={\n colors.ansi256.theme.text.banner.footer.tertiary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.footer.tertiary\n }\n />\n )}\n },\n command: {\n primary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.command.primary\n }\n ansi256={\n colors.ansi256.theme.text.banner.command.primary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.command.primary\n }\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.command.secondary\n }\n ansi256={\n colors.ansi256.theme.text.banner.command.secondary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.command.secondary\n }\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.command.tertiary\n }\n ansi256={\n colors.ansi256.theme.text.banner.command.tertiary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.command.tertiary\n }\n />\n )},\n },\n title: {\n primary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.title.primary\n }\n ansi256={\n colors.ansi256.theme.text.banner.title.primary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.title.primary\n }\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.title.secondary\n }\n ansi256={\n colors.ansi256.theme.text.banner.title.secondary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.title.secondary\n }\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.title.tertiary\n }\n ansi256={\n colors.ansi256.theme.text.banner.title.tertiary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.title.tertiary\n }\n />\n )},\n },\n link: {\n primary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.link.primary\n }\n ansi256={\n colors.ansi256.theme.text.banner.link.primary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.link.primary\n }\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.link.secondary\n }\n ansi256={\n colors.ansi256.theme.text.banner.link.secondary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.link.secondary\n }\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.link.tertiary\n }\n ansi256={\n colors.ansi256.theme.text.banner.link.tertiary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.link.tertiary\n }\n />\n )},\n },\n description: {\n primary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.description\n .primary\n }\n ansi256={\n colors.ansi256.theme.text.banner.description\n .primary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.description\n .primary\n }\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.description\n .secondary\n }\n ansi256={\n colors.ansi256.theme.text.banner.description\n .secondary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.description\n .secondary\n }\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.description\n .tertiary\n }\n ansi256={\n colors.ansi256.theme.text.banner.description\n .tertiary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.description\n .tertiary\n }\n />\n )},\n }\n },\n heading: {\n primary: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.heading.primary}\n ansi256={colors.ansi256.theme.text.heading.primary}\n ansi16m={colors.ansi16m.theme.text.heading.primary}\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.heading.secondary}\n ansi256={colors.ansi256.theme.text.heading.secondary}\n ansi16m={colors.ansi16m.theme.text.heading.secondary}\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.heading.tertiary}\n ansi256={colors.ansi256.theme.text.heading.tertiary}\n ansi16m={colors.ansi16m.theme.text.heading.tertiary}\n />\n )},\n },\n body: {\n primary: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.body.primary}\n ansi256={colors.ansi256.theme.text.body.primary}\n ansi16m={colors.ansi16m.theme.text.body.primary}\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.body.secondary}\n ansi256={colors.ansi256.theme.text.body.secondary}\n ansi16m={colors.ansi16m.theme.text.body.secondary}\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.body.tertiary}\n ansi256={colors.ansi256.theme.text.body.tertiary}\n ansi16m={colors.ansi16m.theme.text.body.tertiary}\n />\n )},\n link: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.body.link}\n ansi256={colors.ansi256.theme.text.body.link}\n ansi16m={colors.ansi16m.theme.text.body.link}\n />\n )}\n },\n message: {\n link: {\n help: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.message.link.help}\n ansi256={\n colors.ansi256.theme.text.message.link.help\n }\n ansi16m={\n colors.ansi16m.theme.text.message.link.help\n }\n />\n )},\n success: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.link.success\n }\n ansi256={\n colors.ansi256.theme.text.message.link.success\n }\n ansi16m={\n colors.ansi16m.theme.text.message.link.success\n }\n />\n )},\n info: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.message.link.info}\n ansi256={\n colors.ansi256.theme.text.message.link.info\n }\n ansi16m={\n colors.ansi16m.theme.text.message.link.info\n }\n />\n )},\n debug: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.message.link.debug}\n ansi256={\n colors.ansi256.theme.text.message.link.debug\n }\n ansi16m={\n colors.ansi16m.theme.text.message.link.debug\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.link.warning\n }\n ansi256={\n colors.ansi256.theme.text.message.link.warning\n }\n ansi16m={\n colors.ansi16m.theme.text.message.link.warning\n }\n />\n )},\n danger: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.link.danger\n }\n ansi256={\n colors.ansi256.theme.text.message.link.danger\n }\n ansi16m={\n colors.ansi16m.theme.text.message.link.danger\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.message.link.error}\n ansi256={\n colors.ansi256.theme.text.message.link.error\n }\n ansi16m={\n colors.ansi16m.theme.text.message.link.error\n }\n />\n )}\n },\n header: {\n help: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.header.help\n }\n ansi256={\n colors.ansi256.theme.text.message.header.help\n }\n ansi16m={\n colors.ansi16m.theme.text.message.header.help\n }\n />\n )},\n success: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.header.success\n }\n ansi256={\n colors.ansi256.theme.text.message.header.success\n }\n ansi16m={\n colors.ansi16m.theme.text.message.header.success\n }\n />\n )},\n info: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.header.info\n }\n ansi256={\n colors.ansi256.theme.text.message.header.info\n }\n ansi16m={\n colors.ansi16m.theme.text.message.header.info\n }\n />\n )},\n debug: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.header.debug\n }\n ansi256={\n colors.ansi256.theme.text.message.header.debug\n }\n ansi16m={\n colors.ansi16m.theme.text.message.header.debug\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.header.warning\n }\n ansi256={\n colors.ansi256.theme.text.message.header.warning\n }\n ansi16m={\n colors.ansi16m.theme.text.message.header.warning\n }\n />\n )},\n danger: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.header.danger\n }\n ansi256={\n colors.ansi256.theme.text.message.header.danger\n }\n ansi16m={\n colors.ansi16m.theme.text.message.header.danger\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.header.error\n }\n ansi256={\n colors.ansi256.theme.text.message.header.error\n }\n ansi16m={\n colors.ansi16m.theme.text.message.header.error\n }\n />\n )}\n },\n footer: {\n help: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.footer.help\n }\n ansi256={\n colors.ansi256.theme.text.message.footer.help\n }\n ansi16m={\n colors.ansi16m.theme.text.message.footer.help\n }\n />\n )},\n success: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.footer.success\n }\n ansi256={\n colors.ansi256.theme.text.message.footer.success\n }\n ansi16m={\n colors.ansi16m.theme.text.message.footer.success\n }\n />\n )},\n info: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.footer.info\n }\n ansi256={\n colors.ansi256.theme.text.message.footer.info\n }\n ansi16m={\n colors.ansi16m.theme.text.message.footer.info\n }\n />\n )},\n debug: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.footer.debug\n }\n ansi256={\n colors.ansi256.theme.text.message.footer.debug\n }\n ansi16m={\n colors.ansi16m.theme.text.message.footer.debug\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.footer.warning\n }\n ansi256={\n colors.ansi256.theme.text.message.footer.warning\n }\n ansi16m={\n colors.ansi16m.theme.text.message.footer.warning\n }\n />\n )},\n danger: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.footer.danger\n }\n ansi256={\n colors.ansi256.theme.text.message.footer.danger\n }\n ansi16m={\n colors.ansi16m.theme.text.message.footer.danger\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.footer.error\n }\n ansi256={\n colors.ansi256.theme.text.message.footer.error\n }\n ansi16m={\n colors.ansi16m.theme.text.message.footer.error\n }\n />\n )}\n },\n description: {\n help: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.description.help\n }\n ansi256={\n colors.ansi256.theme.text.message.description.help\n }\n ansi16m={\n colors.ansi16m.theme.text.message.description.help\n }\n />\n )},\n success: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.description\n .success\n }\n ansi256={\n colors.ansi256.theme.text.message.description\n .success\n }\n ansi16m={\n colors.ansi16m.theme.text.message.description\n .success\n }\n />\n )},\n info: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.description.info\n }\n ansi256={\n colors.ansi256.theme.text.message.description.info\n }\n ansi16m={\n colors.ansi16m.theme.text.message.description.info\n }\n />\n )},\n debug: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.description.debug\n }\n ansi256={\n colors.ansi256.theme.text.message.description\n .debug\n }\n ansi16m={\n colors.ansi16m.theme.text.message.description\n .debug\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.description\n .warning\n }\n ansi256={\n colors.ansi256.theme.text.message.description\n .warning\n }\n ansi16m={\n colors.ansi16m.theme.text.message.description\n .warning\n }\n />\n )},\n danger: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.description\n .danger\n }\n ansi256={\n colors.ansi256.theme.text.message.description\n .danger\n }\n ansi16m={\n colors.ansi16m.theme.text.message.description\n .danger\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.description.error\n }\n ansi256={\n colors.ansi256.theme.text.message.description\n .error\n }\n ansi16m={\n colors.ansi16m.theme.text.message.description\n .error\n }\n />\n )}\n }\n },\n usage: {\n bin: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.usage.bin}\n ansi256={colors.ansi256.theme.text.usage.bin}\n ansi16m={colors.ansi16m.theme.text.usage.bin}\n />\n )},\n command: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.usage.command}\n ansi256={colors.ansi256.theme.text.usage.command}\n ansi16m={colors.ansi16m.theme.text.usage.command}\n />\n )},\n dynamic: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.usage.dynamic}\n ansi256={colors.ansi256.theme.text.usage.dynamic}\n ansi16m={colors.ansi16m.theme.text.usage.dynamic}\n />\n )},\n options: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.usage.options}\n ansi256={colors.ansi256.theme.text.usage.options}\n ansi16m={colors.ansi16m.theme.text.usage.options}\n />\n )},\n args: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.usage.args}\n ansi256={colors.ansi256.theme.text.usage.args}\n ansi16m={colors.ansi16m.theme.text.usage.args}\n />\n )},\n description: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.usage.description}\n ansi256={colors.ansi256.theme.text.usage.description}\n ansi16m={colors.ansi16m.theme.text.usage.description}\n />\n )}\n },\n prompt: {\n icon: {\n active: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.prompt.icon.active}\n ansi256={\n colors.ansi256.theme.text.prompt.icon.active\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.icon.active\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.icon.warning\n }\n ansi256={\n colors.ansi256.theme.text.prompt.icon.warning\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.icon.warning\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.prompt.icon.error}\n ansi256={\n colors.ansi256.theme.text.prompt.icon.error\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.icon.error\n }\n />\n )},\n submitted: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.icon.submitted\n }\n ansi256={\n colors.ansi256.theme.text.prompt.icon.submitted\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.icon.submitted\n }\n />\n )},\n cancelled: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.icon.cancelled\n }\n ansi256={\n colors.ansi256.theme.text.prompt.icon.cancelled\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.icon.cancelled\n }\n />\n )},\n disabled: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.icon.disabled\n }\n ansi256={\n colors.ansi256.theme.text.prompt.icon.disabled\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.icon.disabled\n }\n />\n )}\n },\n message: {\n active: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.message.active\n }\n ansi256={\n colors.ansi256.theme.text.prompt.message.active\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.message.active\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.message.warning\n }\n ansi256={\n colors.ansi256.theme.text.prompt.message.warning\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.message.warning\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.message.error\n }\n ansi256={\n colors.ansi256.theme.text.prompt.message.error\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.message.error\n }\n />\n )},\n submitted: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.message.submitted\n }\n ansi256={\n colors.ansi256.theme.text.prompt.message.submitted\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.message.submitted\n }\n />\n )},\n cancelled: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.message.cancelled\n }\n ansi256={\n colors.ansi256.theme.text.prompt.message.cancelled\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.message.cancelled\n }\n />\n )},\n disabled: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.message.disabled\n }\n ansi256={\n colors.ansi256.theme.text.prompt.message.disabled\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.message.disabled\n }\n />\n )}\n },\n input: {\n active: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.input.active\n }\n ansi256={\n colors.ansi256.theme.text.prompt.input.active\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.input.active\n }\n />\n )},\n inactive: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.input.inactive\n }\n ansi256={\n colors.ansi256.theme.text.prompt.input.inactive\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.input.inactive\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.input.warning\n }\n ansi256={\n colors.ansi256.theme.text.prompt.input.warning\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.input.warning\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.prompt.input.error}\n ansi256={\n colors.ansi256.theme.text.prompt.input.error\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.input.error\n }\n />\n )},\n submitted: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.input.submitted\n }\n ansi256={\n colors.ansi256.theme.text.prompt.input.submitted\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.input.submitted\n }\n />\n )},\n cancelled: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.input.cancelled\n }\n ansi256={\n colors.ansi256.theme.text.prompt.input.cancelled\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.input.cancelled\n }\n />\n )},\n disabled: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.input.disabled\n }\n ansi256={\n colors.ansi256.theme.text.prompt.input.disabled\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.input.disabled\n }\n />\n )},\n placeholder: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.input.placeholder\n }\n ansi256={\n colors.ansi256.theme.text.prompt.input.placeholder\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.input.placeholder\n }\n />\n )}\n },\n description: {\n active: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.description.active\n }\n ansi256={\n colors.ansi256.theme.text.prompt.description\n .active\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.description\n .active\n }\n />\n )},\n inactive: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.description\n .inactive\n }\n ansi256={\n colors.ansi256.theme.text.prompt.description\n .inactive\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.description\n .inactive\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.description\n .warning\n }\n ansi256={\n colors.ansi256.theme.text.prompt.description\n .warning\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.description\n .warning\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.description.error\n }\n ansi256={\n colors.ansi256.theme.text.prompt.description.error\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.description.error\n }\n />\n )},\n submitted: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.description\n .submitted\n }\n ansi256={\n colors.ansi256.theme.text.prompt.description\n .submitted\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.description\n .submitted\n }\n />\n )},\n cancelled: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.description\n .cancelled\n }\n ansi256={\n colors.ansi256.theme.text.prompt.description\n .cancelled\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.description\n .cancelled\n }\n />\n )},\n disabled: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.description\n .disabled\n }\n ansi256={\n colors.ansi256.theme.text.prompt.description\n .disabled\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.description\n .disabled\n }\n />\n )}\n }\n },\n spinner: {\n icon: {\n active: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.spinner.icon.active\n }\n ansi256={\n colors.ansi256.theme.text.spinner.icon.active\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.icon.active\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.spinner.icon.warning\n }\n ansi256={\n colors.ansi256.theme.text.spinner.icon.warning\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.icon.warning\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.spinner.icon.error}\n ansi256={\n colors.ansi256.theme.text.spinner.icon.error\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.icon.error\n }\n />\n )},\n success: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.spinner.icon.success\n }\n ansi256={\n colors.ansi256.theme.text.spinner.icon.success\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.icon.success\n }\n />\n )},\n info: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.spinner.icon.info}\n ansi256={\n colors.ansi256.theme.text.spinner.icon.info\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.icon.info\n }\n />\n )},\n help: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.spinner.icon.help}\n ansi256={\n colors.ansi256.theme.text.spinner.icon.help\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.icon.help\n }\n />\n )}\n },\n message: {\n active: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.spinner.message.active\n }\n ansi256={\n colors.ansi256.theme.text.spinner.message.active\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.message.active\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.spinner.message.warning\n }\n ansi256={\n colors.ansi256.theme.text.spinner.message.warning\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.message.warning\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.spinner.message.error\n }\n ansi256={\n colors.ansi256.theme.text.spinner.message.error\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.message.error\n }\n />\n )},\n success: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.spinner.message.success\n }\n ansi256={\n colors.ansi256.theme.text.spinner.message.success\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.message.success\n }\n />\n )},\n info: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.spinner.message.info\n }\n ansi256={\n colors.ansi256.theme.text.spinner.message.info\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.message.info\n }\n />\n )},\n help: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.spinner.message.help\n }\n ansi256={\n colors.ansi256.theme.text.spinner.message.help\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.message.help\n }\n />\n )}\n }\n },\n tags: { `}\n <For\n each={Object.keys(theme.colors.text.tags)}\n joiner={\n <>\n {code`, `}\n <hbr />\n </>\n }>\n {key =>\n code`${kebabCase(key)}: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.tags[key] as AnsiWrappers}\n ansi256={\n colors.ansi256.theme.text.tags[key] as AnsiWrappers\n }\n ansi16m={\n colors.ansi16m.theme.text.tags[key] as AnsiWrappers\n }\n />\n )}`\n }\n </For>\n {code` }\n },\n border: {\n banner: {\n outline: {\n primary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.banner.outline.primary\n }\n ansi256={\n colors.ansi256.theme.border.banner.outline.primary\n }\n ansi16m={\n colors.ansi16m.theme.border.banner.outline.primary\n }\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.banner.outline\n .secondary\n }\n ansi256={\n colors.ansi256.theme.border.banner.outline\n .secondary\n }\n ansi16m={\n colors.ansi16m.theme.border.banner.outline\n .secondary\n }\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.banner.outline.tertiary\n }\n ansi256={\n colors.ansi256.theme.border.banner.outline\n .tertiary\n }\n ansi16m={\n colors.ansi16m.theme.border.banner.outline\n .tertiary\n }\n />\n )}\n },\n divider: {\n primary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.banner.divider.primary\n }\n ansi256={\n colors.ansi256.theme.border.banner.divider.primary\n }\n ansi16m={\n colors.ansi16m.theme.border.banner.divider.primary\n }\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.banner.divider\n .secondary\n }\n ansi256={\n colors.ansi256.theme.border.banner.divider\n .secondary\n }\n ansi16m={\n colors.ansi16m.theme.border.banner.divider\n .secondary\n }\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.banner.divider.tertiary\n }\n ansi256={\n colors.ansi256.theme.border.banner.divider\n .tertiary\n }\n ansi16m={\n colors.ansi16m.theme.border.banner.divider\n .tertiary\n }\n />\n )}\n }\n },\n app: {\n table: {\n primary: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.border.app.table.primary}\n ansi256={\n colors.ansi256.theme.border.app.table.primary\n }\n ansi16m={\n colors.ansi16m.theme.border.app.table.primary\n }\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.app.table.secondary\n }\n ansi256={\n colors.ansi256.theme.border.app.table.secondary\n }\n ansi16m={\n colors.ansi16m.theme.border.app.table.secondary\n }\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.border.app.table.tertiary}\n ansi256={\n colors.ansi256.theme.border.app.table.tertiary\n }\n ansi16m={\n colors.ansi16m.theme.border.app.table.tertiary\n }\n />\n )}\n },\n divider: {\n primary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.app.divider.primary\n }\n ansi256={\n colors.ansi256.theme.border.app.divider.primary\n }\n ansi16m={\n colors.ansi16m.theme.border.app.divider.primary\n }\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.app.divider.secondary\n }\n ansi256={\n colors.ansi256.theme.border.app.divider.secondary\n }\n ansi16m={\n colors.ansi16m.theme.border.app.divider.secondary\n }\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.app.divider.tertiary\n }\n ansi256={\n colors.ansi256.theme.border.app.divider.tertiary\n }\n ansi16m={\n colors.ansi16m.theme.border.app.divider.tertiary\n }\n />\n )}\n }\n },\n message: {\n outline: {\n help: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.outline.help\n }\n ansi256={\n colors.ansi256.theme.border.message.outline.help\n }\n ansi16m={\n colors.ansi16m.theme.border.message.outline.help\n }\n />\n )},\n success: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.outline.success\n }\n ansi256={\n colors.ansi256.theme.border.message.outline.success\n }\n ansi16m={\n colors.ansi16m.theme.border.message.outline.success\n }\n />\n )},\n info: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.outline.info\n }\n ansi256={\n colors.ansi256.theme.border.message.outline.info\n }\n ansi16m={\n colors.ansi16m.theme.border.message.outline.info\n }\n />\n )},\n debug: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.outline.debug\n }\n ansi256={\n colors.ansi256.theme.border.message.outline.debug\n }\n ansi16m={\n colors.ansi16m.theme.border.message.outline.debug\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.outline.warning\n }\n ansi256={\n colors.ansi256.theme.border.message.outline.warning\n }\n ansi16m={\n colors.ansi16m.theme.border.message.outline.warning\n }\n />\n )},\n danger: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.outline.danger\n }\n ansi256={\n colors.ansi256.theme.border.message.outline.danger\n }\n ansi16m={\n colors.ansi16m.theme.border.message.outline.danger\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.outline.error\n }\n ansi256={\n colors.ansi256.theme.border.message.outline.error\n }\n ansi16m={\n colors.ansi16m.theme.border.message.outline.error\n }\n />\n )}\n },\n divider: {\n help: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.divider.help\n }\n ansi256={\n colors.ansi256.theme.border.message.divider.help\n }\n ansi16m={\n colors.ansi16m.theme.border.message.divider.help\n }\n />\n )},\n success: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.divider.success\n }\n ansi256={\n colors.ansi256.theme.border.message.divider.success\n }\n ansi16m={\n colors.ansi16m.theme.border.message.divider.success\n }\n />\n )},\n info: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.divider.info\n }\n ansi256={\n colors.ansi256.theme.border.message.divider.info\n }\n ansi16m={\n colors.ansi16m.theme.border.message.divider.info\n }\n />\n )},\n debug: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.divider.debug\n }\n ansi256={\n colors.ansi256.theme.border.message.divider.debug\n }\n ansi16m={\n colors.ansi16m.theme.border.message.divider.debug\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.divider.warning\n }\n ansi256={\n colors.ansi256.theme.border.message.divider.warning\n }\n ansi16m={\n colors.ansi16m.theme.border.message.divider.warning\n }\n />\n )},\n danger: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.divider.danger\n }\n ansi256={\n colors.ansi256.theme.border.message.divider.danger\n }\n ansi16m={\n colors.ansi16m.theme.border.message.divider.danger\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.divider.error\n }\n ansi256={\n colors.ansi256.theme.border.message.divider.error\n }\n ansi16m={\n colors.ansi16m.theme.border.message.divider.error\n }\n />\n )}\n }\n }\n }\n }\n`}\n </>\n }\n />\n </>\n );\n}\n\n/**\n * A component to generate the `splitText` function in the `shell-shock:console` builtin module.\n */\nexport function SplitTextFunctionDeclaration() {\n return (\n <>\n <FunctionDeclaration\n name=\"adjustIndex\"\n parameters={[\n {\n name: \"line\",\n type: \"string\"\n },\n {\n name: \"index\",\n type: \"number\"\n }\n ]}\n returnType=\"number\">\n {code`let adjustedIndex = 0;\n\n const segments = line.match(/\\\\x1b\\\\[(\\\\d|;)+m.*\\\\x1b\\\\[(\\\\d|;)+m/gi);\n if (segments && segments.length > 0) {\n segments.reduce((count, matched) => {\n if (count < index) {\n const stripped = stripAnsi(matched);\n if (count + stripped.length < index) {\n count += stripped.length;\n adjustedIndex += matched.length;\n } else {\n adjustedIndex += index - count + (matched.slice(0, index - count).match(/\\\\x1b\\\\[(\\\\d|;)+m/g)?.join(\"\")?.length ?? 0);\n count = index;\n }\n }\n\n return count;\n }, 0);\n } else {\n adjustedIndex = index;\n }\n\n return adjustedIndex - (line.slice(0, adjustedIndex).match(/\\\\x1b\\\\[/g)?.length ?? 0); `}\n </FunctionDeclaration>\n <Spacing />\n <FunctionDeclaration\n name=\"breakLine\"\n parameters={[\n {\n name: \"line\",\n type: \"string\"\n },\n {\n name: \"index\",\n type: \"number\"\n }\n ]}\n returnType=\"[string, string]\">\n {code`const first = line.slice(0, index);\n const second = line.slice(index);\n\n // Match all ANSI escape sequences in the first string\n const ansiRegex = /[\\\\x1b\\\\u009b][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?(?:\\\\u0007))|(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))/g;\n\n const openCodes: string[] = [];\n const closeCodes: string[] = [];\n let match: RegExpExecArray | null;\n\n while ((match = ansiRegex.exec(first)) !== null) {\n const code = match[0];\n // Check if this is a reset/close code (e.g., \\\\x1b[0m, \\\\x1b[39m, \\\\x1b[49m, etc.)\n if (/\\\\x1b\\\\[(?:0|22|23|24|27|28|29|39|49)m/.test(code)) {\n // A close/reset code cancels the last open code\n openCodes.pop();\n closeCodes.pop();\n } else {\n openCodes.push(code);\n // Derive a close code: map SGR open codes to their reset counterparts\n const sgrMatch = code.match(/\\\\x1b\\\\[(\\\\d+)m/);\n if (sgrMatch) {\n const n = parseInt(sgrMatch[1]!, 10);\n let closeCode: string;\n if (n >= 30 && n <= 37) closeCode = \"\\\\x1b[39m\";\n else if (n >= 40 && n <= 47) closeCode = \"\\\\x1b[49m\";\n else if (n >= 90 && n <= 97) closeCode = \"\\\\x1b[39m\";\n else if (n >= 100 && n <= 107) closeCode = \"\\\\x1b[49m\";\n else if (n === 1) closeCode = \"\\\\x1b[22m\";\n else if (n === 2) closeCode = \"\\\\x1b[22m\";\n else if (n === 3) closeCode = \"\\\\x1b[23m\";\n else if (n === 4) closeCode = \"\\\\x1b[24m\";\n else if (n === 7) closeCode = \"\\\\x1b[27m\";\n else if (n === 8) closeCode = \"\\\\x1b[28m\";\n else if (n === 9) closeCode = \"\\\\x1b[29m\";\n else closeCode = \"\\\\x1b[0m\";\n closeCodes.push(closeCode);\n } else {\n closeCodes.push(\"\\\\x1b[0m\");\n }\n }\n }\n\n // Append close codes to the end of \"first\" (in reverse order)\n const closeSequence = closeCodes.slice().reverse().join(\"\");\n // Prepend open codes to the start of \"second\"\n const openSequence = openCodes.join(\"\");\n\n return [first.replace(/^\\\\s+/, \"\").replace(/\\\\s+$/, \"\") + closeSequence, openSequence + second.replace(/^\\\\s+/, \"\").replace(/\\\\s+$/, \"\")]; `}\n </FunctionDeclaration>\n <Spacing />\n <TSDoc heading=\"Split text into multiple lines based on a maximum length.\">\n <TSDocRemarks>\n {`This function splits the provided text into multiple lines based on the specified maximum length, ensuring that words are not broken in the middle.`}\n </TSDocRemarks>\n <hbr />\n <TSDocParam name=\"text\">\n {`The text to split into multiple lines.`}\n </TSDocParam>\n <TSDocParam name=\"maxLength\">\n {`The maximum length of each line.`}\n </TSDocParam>\n </TSDoc>\n <FunctionDeclaration\n export\n name=\"splitText\"\n parameters={[\n {\n name: \"text\",\n type: \"string\"\n },\n {\n name: \"maxLength\",\n type: \"number | SizeToken\"\n }\n ]}>\n {code`\n let line = text;\n let result = [] as string[];\n\n const calculatedMaxLength = isSizeToken(maxLength) ? calculateWidth(maxLength) : maxLength;\n while (stripAnsi(line).length > calculatedMaxLength || line.indexOf(\"\\\\n\") !== -1) {\n if (line.indexOf(\"\\\\n\") !== -1) {\n result.push(...splitText(line.slice(0, line.indexOf(\"\\\\n\")).replace(/(\\\\r)?\\\\n/, \"\"), calculatedMaxLength));\n line = line.indexOf(\"\\\\n\") + 1 < line.length\n ? line.slice(line.indexOf(\"\\\\n\") + 1)\n : \"\";\n } else {\n const index = [\" \", \"/\", \".\", \",\", \"-\", \":\", \"|\", \"@\", \"+\"].reduce((ret, split) => {\n let current = ret;\n while (stripAnsi(line).indexOf(split, current + 1) !== -1 && stripAnsi(line).indexOf(split, current + 1) <= calculatedMaxLength) {\n current = line.indexOf(split, adjustIndex(line, current + 1));\n }\n\n return current;\n }, -1);\n if (index === -1) {\n break;\n }\n\n const lines = breakLine(line, index);\n result.push(lines[0]);\n line = lines[1];\n }\n }\n\n while (stripAnsi(line).length > calculatedMaxLength) {\n const lines = breakLine(line, calculatedMaxLength);\n result.push(lines[0]);\n line = lines[1];\n }\n\n result.push(line);\n return result;\n`}\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * A component to generate the `writeLine` function in the `shell-shock:console` builtin module.\n */\nexport function WriteLineFunctionDeclaration() {\n const theme = useTheme();\n\n return (\n <>\n <InterfaceDeclaration\n export\n name=\"WriteLineOptions\"\n doc=\"Options for writing a line to the console.\">\n <TSDoc heading=\"Padding to apply to the line\">\n <TSDocRemarks>\n {`The amount of padding (in spaces) to apply to the line when writing to the console. This value is applied to both the left and right sides of the line. If not specified, the default padding defined in the current theme configuration will be used.`}\n </TSDocRemarks>\n </TSDoc>\n <InterfaceMember name=\"padding\" optional type=\"number\" />\n <hbr />\n <TSDoc heading=\"Console function to use for writing the line\">\n <TSDocRemarks>\n {`The console function to use for writing the line. If not specified, the default console function \\`console.log\\` will be used.`}\n </TSDocRemarks>\n <hbr />\n <TSDocDefaultValue\n type={ReflectionKind.method}\n defaultValue={`\\`console.log\\``}\n />\n </TSDoc>\n <InterfaceMember\n name=\"consoleFn\"\n optional\n type=\"(text: string) => void\"\n />\n <hbr />\n <TSDoc heading=\"Color of the line text\">\n <TSDocRemarks>\n {`The color to apply to the line text when writing to the console. This can be one of the predefined color themes: \"primary\", \"secondary\", or \"tertiary\". If not specified, no specific coloring will be applied to the text (the default/system terminal text color will likely be used).`}\n </TSDocRemarks>\n <hbr />\n </TSDoc>\n <InterfaceMember\n name=\"color\"\n optional\n type='\"primary\" | \"secondary\" | \"tertiary\"'\n />\n </InterfaceDeclaration>\n <Spacing />\n <TSDoc heading=\"Write a line to the console.\">\n <TSDocRemarks>\n {`This function writes a line to the console, applying the appropriate padding as defined in the current theme configuration and wrapping as needed.`}\n </TSDocRemarks>\n <hbr />\n <TSDocParam name=\"text\">\n {`The line text to write to the console.`}\n </TSDocParam>\n <TSDocParam name=\"options\">{`The options to apply when writing the line to the console.`}</TSDocParam>\n </TSDoc>\n <FunctionDeclaration\n export\n name=\"writeLine\"\n parameters={[\n {\n name: \"text\",\n type: \"string | number | boolean | null\",\n optional: true\n },\n {\n name: \"options\",\n type: \"WriteLineOptions\",\n default: \"{}\"\n }\n ]}>\n {code`const consoleFn = options.consoleFn ?? console.log;\n const color = options.color;\nif (text === undefined || text === null || text === \"\") {\n consoleFn(\"\");\n return;\n}\n\nconsoleFn(\\`\\${\" \".repeat(Math.max(options.padding ?? ${\n theme.padding.app\n }, 0))}\\${color ? colors.text.body[color](String(text)) : String(text)}\\`);\n`}\n </FunctionDeclaration>\n </>\n );\n}\n\nexport type MessageFunctionDeclarationProps = Partial<\n Pick<FunctionDeclarationProps, \"parameters\">\n> & {\n type:\n | \"success\"\n | \"help\"\n | \"info\"\n | \"debug\"\n | \"verbose\"\n | \"warn\"\n | \"danger\"\n | \"error\";\n variant: ThemeMessageVariant;\n color?: ThemeMessageVariant;\n consoleFnName: \"log\" | \"info\" | \"warn\" | \"error\" | \"debug\";\n description: string;\n prefix?: Children;\n timestamp?: boolean;\n};\n\n/**\n * A component to generate the message functions in the `shell-shock:console` builtin module.\n */\nexport function MessageFunctionDeclaration(\n props: MessageFunctionDeclarationProps\n) {\n const {\n type,\n variant,\n consoleFnName,\n description,\n prefix,\n parameters,\n timestamp,\n color = variant\n } = props;\n\n const theme = useTheme();\n\n return (\n <>\n <TSDoc\n heading={`Write ${getIndefiniteArticle(\n description\n )} ${description} message to the console.`}>\n <TSDocRemarks>\n {`This function initializes the Powerlines environment configuration object.`}\n </TSDocRemarks>\n <hbr />\n <TSDocParam name=\"message\">\n {`The message to write to the console.`}\n </TSDocParam>\n </TSDoc>\n <FunctionDeclaration\n export\n name={type}\n parameters={\n parameters ?? [\n {\n name: \"message\",\n type: \"string\",\n optional: false\n }\n ]\n }>\n <Show when={Boolean(prefix)}>\n {prefix}\n <hbr />\n <hbr />\n </Show>\n {code`\n if (!message) {\n return;\n }\n\n ${\n !theme.labels.message.footer[variant] && timestamp\n ? `const timestamp = \\`\\${colors.text.message.footer.${\n color\n }(new Date().toLocaleDateString())} \\${colors.border.message.outline.${\n color\n }(\"${\n theme.borderStyles.message.outline[variant].bottom\n }\")} \\${colors.text.message.footer.${\n color\n }(new Date().toLocaleTimeString())}\\`; `\n : \"\"\n }\n\n writeLine(colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].topLeft\n }\") + ${\n theme.labels.message.header[variant] ||\n theme.icons.message.header[variant]\n ? `colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].top\n }\".repeat(4)) + \" \" + ${\n theme.icons.message.header[variant]\n ? `colors.border.message.outline.${color}(\"${\n theme.icons.message.header[variant]\n }\") + \" \" +`\n : \"\"\n } colors.bold(colors.text.message.header.${color}(\"${\n theme.labels.message.header[variant]\n }\")) + \" \" + colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].top\n }\".repeat(Math.max(process.stdout.columns - ${\n Math.max(theme.padding.app, 0) * 2 +\n theme.borderStyles.message.outline[variant].topLeft.length +\n 4 +\n (theme.icons.message.header[variant]\n ? 2 + (theme.labels.message.header[variant] ? 0 : 1)\n : 0) +\n (theme.labels.message.header[variant]\n ? theme.labels.message.header[variant].length + 2\n : 0) +\n theme.borderStyles.message.outline[variant].topRight.length\n }, 0)))`\n : `colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].top\n }\".repeat(Math.max(process.stdout.columns - ${\n Math.max(theme.padding.app, 0) * 2 +\n theme.borderStyles.message.outline[variant].topLeft.length +\n theme.borderStyles.message.outline[variant].topRight.length\n }, 0)))`\n } + colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].topRight\n }\"), { consoleFn: console.${consoleFnName} });\n splitText(\n message,\n Math.max(process.stdout.columns - ${\n (Math.max(theme.padding.app, 0) +\n Math.max(theme.padding.message, 0)) *\n 2 +\n theme.borderStyles.message.outline[variant].left.length +\n theme.borderStyles.message.outline[variant].right.length\n }, 0)\n ).forEach((line) => {\n writeLine(colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].left +\n \" \".repeat(Math.max(theme.padding.message, 0))\n }\") + colors.text.message.description.${color}(line) + \" \".repeat(Math.max(process.stdout.columns - (stripAnsi(line).length + ${\n Math.max(theme.padding.app, 0) * 2 +\n Math.max(theme.padding.message, 0) +\n theme.borderStyles.message.outline[variant].left.length +\n theme.borderStyles.message.outline[variant].right.length\n }), 0)) + colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].right\n }\"), { consoleFn: console.${consoleFnName} });\n });\n writeLine(colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].bottomLeft\n }\") + ${\n theme.labels.message.footer[variant] || timestamp\n ? `colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].bottom\n }\".repeat(Math.max(process.stdout.columns - ${\n Math.max(theme.padding.app, 0) * 2 +\n 4 +\n (theme.labels.message.footer[variant]\n ? theme.labels.message.footer[variant].length + 2\n : 0) +\n theme.borderStyles.message.outline[variant].bottomLeft.length +\n theme.borderStyles.message.outline[variant].bottomRight.length\n }${\n !theme.labels.message.footer[variant] && timestamp\n ? \" - (stripAnsi(timestamp).length + 2)\"\n : \"\"\n }, 0))) + \" \" + ${`colors.bold(colors.text.message.footer.${color}(${\n theme.labels.message.footer[variant]\n ? `\"${theme.labels.message.footer[variant]}\"`\n : timestamp && \"timestamp\"\n }))`} + \" \" + colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].bottom\n }\".repeat(4))`\n : `colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].bottom\n }\".repeat(Math.max(process.stdout.columns - ${\n Math.max(theme.padding.app, 0) * 2 +\n theme.borderStyles.message.outline[variant].bottomLeft.length +\n theme.borderStyles.message.outline[variant].bottomRight.length\n }, 0)))`\n } + colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].bottomRight\n }\"), { consoleFn: console.${consoleFnName} });\n`}\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * A component to generate the `wrapAnsi` function in the `shell-shock:console` builtin module.\n */\nexport function WrapAnsiFunction() {\n return (\n <>\n <TSDoc heading=\"Applies ANSI escape codes to a string.\">\n <TSDocRemarks>\n {`Split text by /\\\\\\\\x1b[\\\\[|\\\\]][0-9;]*m/ and wrap non-ANSI parts with open/closing tags.`}\n </TSDocRemarks>\n\n <TSDocExample>\n {`const result = wrapAnsi(\"Hello\\\\\\\\x1b[31mWorld\\\\\\\\x1b[0mAgain\", \"\\\\\\\\x1b[36m\", \"\\\\\\\\x1b[39\");\\nconsole.log(result); // \"\\\\\\\\x1b[36mHello\\\\\\\\x1b[39\\\\\\\\x1b[31mWorld\\\\\\\\x1b[0m\\\\\\\\x1b[36mAgain\\\\\\\\x1b[39\"`}\n </TSDocExample>\n\n <TSDocParam name=\"text\">\n {`The text to apply ANSI codes to.`}\n </TSDocParam>\n <TSDocParam name=\"open\">{`The opening ANSI code.`}</TSDocParam>\n <TSDocParam name=\"close\">{`The closing ANSI code.`}</TSDocParam>\n <TSDocReturns>{`The text with ANSI codes applied.`}</TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n name=\"wrapAnsi\"\n parameters={[\n {\n name: \"text\",\n type: \"string | number\",\n optional: false\n },\n {\n name: \"open\",\n type: \"string\",\n optional: false\n },\n { name: \"close\", type: \"string\", optional: false }\n ]}>\n {code`const str = String(text);\n const tokens = [] as string[];\n\n let last = 0;\n let match: RegExpExecArray | null;\n while ((match = /\\\\\\\\x1b[\\\\[|\\\\]][0-9;]*m/g.exec(str)) !== null) {\n if (match.index > last) tokens.push(str.slice(last, match.index));\n tokens.push(match[0]);\n last = match.index + match[0].length;\n }\n\n if (last < str.length) {\n tokens.push(str.slice(last));\n }\n\n let result = \"\";\n for (let i = 0; i < tokens.length; i++) {\n const seg = tokens[i]!;\n if (/^\\\\\\\\x1b[\\\\[|\\\\]][0-9;]*m$/.test(seg)) {\n result += seg;\n continue;\n }\n\n if (!seg) {\n continue;\n }\n\n result += i > 0 && /^\\\\\\\\x1b[\\\\[|\\\\]][0-9;]*m$/.test(tokens[i - 1]!) && i + 1 < tokens.length && /^\\\\\\\\x1b[\\\\[|\\\\]][0-9;]*m$/.test(tokens[i + 1]!)\n ? seg\n : \\`\\${open}\\${seg}\\${close}\\`;\n }\n\n return result;\n`}\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * A component to generate the `stripAnsi` function in the `shell-shock:console` builtin module.\n */\nexport function StripAnsiFunctionDeclaration() {\n return (\n <>\n <TSDoc heading=\"Removes ANSI escape codes from a string.\">\n <TSDocExample>\n {`const result = stripAnsi(\"Hello\\\\\\\\x1b[31mWorld\\\\\\\\x1b[0mAgain\"); // \"HelloWorldAgain\"`}\n </TSDocExample>\n\n <TSDocParam name=\"text\">\n {`The text to strip ANSI codes from.`}\n </TSDocParam>\n <TSDocReturns>{`The text with ANSI codes removed.`}</TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n export\n name=\"stripAnsi\"\n parameters={[\n {\n name: \"text\",\n type: \"string | number\",\n optional: false\n }\n ]}>\n {code`return String(text).replace(new RegExp([\n String.raw\\`[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\\`,\n String.raw\\`(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))\\`\n ].join(\"|\"), \"g\"), \"\");`}\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * A component to generate the `stripAnsi` function in the `shell-shock:console` builtin module.\n */\nexport function DividerFunctionDeclaration() {\n const theme = useTheme();\n\n return (\n <>\n <InterfaceDeclaration\n export\n name=\"DividerOptions\"\n doc=\"Options for formatting the divider line written to console.\">\n <InterfaceMember\n name=\"width\"\n optional\n type=\"number\"\n doc=\"The width of the divider line. If not specified, the divider will span the full width of the console, minus the padding.\"\n />\n <hbr />\n <TSDoc heading=\"The border of the divider line. Can be 'primary', 'secondary', 'tertiary', or 'none'. If not specified, the default border style will be used.\">\n <TSDocRemarks>\n {`The value provided will determine the border style and color based on the current theme configuration.`}\n </TSDocRemarks>\n <TSDocDefaultValue\n type={ReflectionKind.string}\n defaultValue=\"primary\"\n />\n </TSDoc>\n <InterfaceMember\n name=\"border\"\n optional\n type='\"primary\" | \"secondary\" | \"tertiary\"'\n doc=\"The border style/color of the divider line. Can be 'primary', 'secondary', 'tertiary', or 'none'. If not specified, the default border style will be used.\"\n />\n <hbr />\n <TSDoc heading=\"Padding to apply to the line\">\n <TSDocRemarks>\n {`The amount of padding (in spaces) to apply to the line when writing to the console. This value is applied to both the left and right sides of the line. If not specified, the default padding defined in the current theme configuration will be used.`}\n </TSDocRemarks>\n <TSDocDefaultValue\n type={ReflectionKind.number}\n defaultValue={theme.padding.app * 4}\n />\n </TSDoc>\n <InterfaceMember name=\"padding\" optional type=\"number\" />\n </InterfaceDeclaration>\n <Spacing />\n <TSDoc heading=\"Write a divider line to the console.\">\n <TSDocExample>\n {`divider({ width: 50, border: \"primary\" }); // Writes a divider line of width 50 with primary border.`}\n </TSDocExample>\n <TSDocParam name=\"options\">\n {`Options for formatting the divider line.`}\n </TSDocParam>\n </TSDoc>\n <FunctionDeclaration\n export\n name=\"divider\"\n parameters={[\n {\n name: \"options\",\n type: \"DividerOptions\",\n optional: false\n }\n ]}>\n {code`const padding = options.padding ?? ${Math.max(theme.padding.app, 1) * 4};\n const width = options.width ?? (process.stdout.columns - (Math.max(padding, 0) * 2));\n const border = options.border === \"tertiary\" ? colors.border.app.divider.tertiary(\"${\n theme.borderStyles.app.divider.tertiary.top\n }\") : options.border === \"secondary\" ? colors.border.app.divider.secondary(\"${\n theme.borderStyles.app.divider.secondary.top\n }\") : colors.border.app.divider.primary(\"${\n theme.borderStyles.app.divider.primary.top\n }\");\n\n writeLine(\" \".repeat(Math.max(padding - ${theme.padding.app}, 0)) + border.repeat(Math.max(width / ${\n theme.borderStyles.app.divider.primary.top.length ?? 1\n }, 0)));\n `}\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * A component to generate the `link` function in the `shell-shock:console` builtin module.\n */\nexport function LinkFunctionDeclaration() {\n return (\n <>\n <TSDoc heading=\"Render a hyperlink in the console.\">\n <TSDocParam name=\"url\">\n {`The URL to render as a hyperlink.`}\n </TSDocParam>\n <TSDocParam name=\"text\">\n {`The text to display for the link. If not provided, the URL will be used as the text.`}\n </TSDocParam>\n <TSDocReturns>{`The formatted hyperlink string.`}</TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n export\n name=\"link\"\n parameters={[\n {\n name: \"url\",\n type: \"string\",\n optional: false\n },\n { name: \"text\", type: \"string\", optional: true }\n ]}>\n <IfStatement condition={code`isHyperlinkSupported()`}>\n {code`return \\`\\\\x1b]8;;\\${url}\\\\u0007\\${text ?? url}\\\\x1b]8;;\\\\u0007\\`;`}\n </IfStatement>\n <hbr />\n <IfStatement condition={code`isColorSupported`}>\n {code`return colors.underline(colors.text.body.link(\\`\\${url}\\`));`}\n </IfStatement>\n <hbr />\n {code`return \\`\\${url}\\`;`}\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * A component to generate the `spinner` function in the `shell-shock:console` builtin module.\n */\nexport function SpinnerFunctionDeclaration() {\n const theme = useTheme();\n\n return (\n <>\n <TypeDeclaration name=\"WriteStream\">\n {`NodeJS.WriteStream;`}\n </TypeDeclaration>\n <Spacing />\n <VarDeclaration\n const\n name=\"activeHooksPerStream\"\n initializer=\"new Set();\"\n />\n <Spacing />\n <InterfaceDeclaration\n export\n name=\"SpinnerOptions\"\n doc=\"Options for configuring the spinner.\">\n <InterfaceMember\n name=\"message\"\n optional\n type=\"string\"\n doc=\"The message text to display next to the spinner. Defaults to an empty string.\"\n />\n <hbr />\n <InterfaceMember\n name=\"stream\"\n optional\n type=\"WriteStream\"\n doc=\"The output stream to write the spinner to. Defaults to process.stderr.\"\n />\n <hbr />\n <InterfaceMember\n name=\"spinner\"\n optional\n type=\"ThemeSpinnerResolvedConfig | SpinnerPreset\"\n doc=\"The spinner animation to use. Should be an object with a 'frames' property (an array of strings representing each frame of the animation) and an 'interval' property (the time in milliseconds between each frame). If not specified, a default spinner animation will be used.\"\n />\n </InterfaceDeclaration>\n\n <Spacing />\n <ClassDeclaration name=\"Spinner\">\n <ClassField name=\"frames\" isPrivateMember type=\"string[]\" />\n <hbr />\n <ClassField name=\"interval\" isPrivateMember type=\"number\" />\n <hbr />\n <ClassField name=\"currentFrame\" isPrivateMember type=\"number\">\n {code`-1`}\n </ClassField>\n <hbr />\n <ClassField\n name=\"timer\"\n isPrivateMember\n optional\n type=\"NodeJS.Timeout\"\n />\n <hbr />\n <ClassField name=\"message\" isPrivateMember type=\"string\">\n {code`\"\"`}\n </ClassField>\n <hbr />\n <ClassField name=\"stream\" isPrivateMember type=\"WriteStream\">\n {code`process.stderr`}\n </ClassField>\n <hbr />\n <ClassField name=\"lines\" isPrivateMember type=\"number\">\n {code`0`}\n </ClassField>\n <hbr />\n <ClassField\n name=\"exitHandlerBound\"\n isPrivateMember\n type=\"(signal: any) => void\">\n {code`() => {}`}\n </ClassField>\n <hbr />\n <ClassField name=\"lastSpinnerFrameTime\" isPrivateMember type=\"number\">\n {code`0`}\n </ClassField>\n <hbr />\n <ClassField name=\"isSpinning\" isPrivateMember type=\"boolean\">\n {code`false`}\n </ClassField>\n <hbr />\n <ClassField\n name=\"hookedStreams\"\n isPrivateMember\n type='Map<WriteStream, { write?: WriteStream[\"write\"]; originalWrite: WriteStream[\"write\"]; hookedWrite: WriteStream[\"write\"] }>'>\n {code`new Map()`}\n </ClassField>\n <hbr />\n <ClassField name=\"isInternalWrite\" isPrivateMember type=\"boolean\">\n {code`false`}\n </ClassField>\n <hbr />\n <ClassField name=\"isDeferringRender\" isPrivateMember type=\"boolean\">\n {code`false`}\n </ClassField>\n <Spacing />\n {code`constructor(options: SpinnerOptions = {}) {\n const spinner = (typeof options.spinner === \"string\" ? resolveSpinner(options.spinner as SpinnerPreset) : options.spinner) ?? ${JSON.stringify(\n theme.spinner\n )};\n this.#frames = spinner.frames;\n this.#interval = spinner.interval;\n\n if (options.message) {\n this.#message = options.message;\n }\n if (options.stream) {\n this.#stream = options.stream;\n }\n\n this.#exitHandlerBound = this.#exitHandler.bind(this);\n }\n\n #internalWrite(action: () => unknown) {\n this.#isInternalWrite = true;\n try {\n return action();\n } finally {\n this.#isInternalWrite = false;\n }\n }\n\n #stringifyChunk(chunk: string | Uint8Array<ArrayBufferLike> | ArrayBufferLike) {\n if (chunk === undefined || chunk === null) {\n return \"\";\n }\n\n if (typeof chunk === \"string\") {\n return chunk;\n }\n\n if (Buffer.isBuffer(chunk) || ArrayBuffer.isView(chunk)) {\n return Buffer.from(chunk).toString(\"utf8\");\n }\n\n return String(chunk);\n }\n\n #withSynchronizedOutput(action: () => unknown) {\n if (!isInteractive) {\n return action();\n }\n\n try {\n this.#write(\"\\\\u001B[?2026h\");\n return action();\n } finally {\n this.#write(\"\\\\u001B[?2026l\");\n }\n }\n\n #hookStream(stream: WriteStream) {\n if (!stream || this.#hookedStreams.has(stream) || typeof stream.write !== \"function\") {\n return;\n }\n\n if (activeHooksPerStream.has(stream)) {\n return;\n }\n\n const originalWrite = stream.write;\n const hookedWrite = ((...writeArguments: Parameters<WriteStream[\"write\"]>) => this.#hookedWrite(stream, originalWrite, writeArguments)) as WriteStream[\"write\"];\n\n this.#hookedStreams.set(stream, {originalWrite, hookedWrite});\n activeHooksPerStream.add(stream);\n stream.write = hookedWrite;\n }\n\n #installHook() {\n if (!isInteractive || this.#hookedStreams.size > 0) {\n return;\n }\n\n const streamsToHook = new Set([this.#stream]);\n if (isInteractive && (this.#stream === process.stdout || this.#stream === process.stderr)) {\n streamsToHook.add(process.stdout);\n streamsToHook.add(process.stderr);\n }\n\n for (const stream of streamsToHook) {\n this.#hookStream(stream);\n }\n }\n\n #uninstallHook() {\n for (const [stream, hookInfo] of this.#hookedStreams) {\n if (stream.write === hookInfo.hookedWrite) {\n stream.write = hookInfo.originalWrite;\n }\n\n activeHooksPerStream.delete(stream);\n }\n\n this.#hookedStreams.clear();\n }\n\n #hookedWrite(stream: WriteStream, originalWrite: typeof stream.write, writeArguments: Parameters<typeof stream.write>) {\n const [chunk, callback] = writeArguments;\n\n if (this.#isInternalWrite || !this.isSpinning) {\n return originalWrite.call(stream, chunk);\n }\n\n if (this.#lines > 0) {\n this.clear();\n }\n\n const chunkString = this.#stringifyChunk(chunk);\n const chunkTerminatesLine = chunkString.at(-1) === \"\\\\n\";\n const writeResult = originalWrite.call(stream, chunk);\n\n if (chunkTerminatesLine) {\n this.#isDeferringRender = false;\n } else if (chunkString !== \"\") {\n this.#isDeferringRender = true;\n }\n\n if (this.isSpinning && !this.#isDeferringRender) {\n this.#render();\n }\n\n return writeResult;\n }\n\n #stopWithIcon(icon: string, message: string) {\n return this.stop(\\` \\${icon} \\${message ?? this.#message}\\`);\n }\n\n #render() {\n if (this.#isDeferringRender) {\n return;\n }\n\n if (this.#currentFrame === -1 || Date.now() - this.#lastSpinnerFrameTime >= this.#interval) {\n this.#currentFrame = ++this.#currentFrame % this.#frames.length;\n this.#lastSpinnerFrameTime = Date.now();\n }\n\n let display = \\`\\${colors.text.spinner.icon.active(this.#frames[this.#currentFrame])} \\${colors.text.spinner.message.active(this.#message)}\\`;\n if (!isInteractive) {\n display += \"\\\\n\";\n }\n\n if (isInteractive) {\n this.#withSynchronizedOutput(() => {\n this.clear();\n this.#write(display);\n });\n } else {\n this.#write(display);\n }\n\n if (isInteractive) {\n this.#lines = this.#lineCount(display);\n }\n }\n\n #write(message: string) {\n this.#internalWrite(() => {\n this.#stream.write(message);\n });\n }\n\n #lineCount(message: string) {\n const width = this.#stream.columns ?? 80;\n const lines = stripVTControlCharacters(message).split(\"\\\\n\");\n\n let lineCount = 0;\n for (const line of lines) {\n lineCount += Math.max(1, Math.ceil(line.length / width));\n }\n\n return lineCount;\n }\n\n #hideCursor() {\n if (isInteractive) {\n this.#write(\"\\\\u001B[?25l\");\n }\n }\n\n #showCursor() {\n if (isInteractive) {\n this.#write(\"\\\\u001B[?25h\");\n }\n }\n\n #subscribeToProcessEvents() {\n process.once(\"SIGINT\", this.#exitHandlerBound);\n process.once(\"SIGTERM\", this.#exitHandlerBound);\n }\n\n #unsubscribeFromProcessEvents() {\n process.off(\"SIGINT\", this.#exitHandlerBound);\n process.off(\"SIGTERM\", this.#exitHandlerBound);\n }\n\n #exitHandler(signal: any) {\n if (this.isSpinning) {\n this.stop();\n }\n\n process.exit(signal === \"SIGINT\" ? 130 : (signal === \"SIGTERM\" ? 143 : 1));\n } `}\n <ClassPropertyGet\n public\n name=\"isSpinning\"\n type=\"boolean\"\n doc=\"Whether the spinner is currently active and spinning.\">\n {code`return this.#isSpinning;`}\n </ClassPropertyGet>\n <Spacing />\n <ClassPropertySet\n public\n name=\"message\"\n type=\"string\"\n doc=\"Set the message displayed by the spinner.\">\n {code`this.#message = value;`}\n </ClassPropertySet>\n <Spacing />\n <ClassPropertyGet\n public\n name=\"message\"\n type=\"string\"\n doc=\"Get the message displayed by the spinner.\">\n {code`return this.#message;`}\n </ClassPropertyGet>\n <Spacing />\n <ClassMethod\n name=\"start\"\n doc=\"Start the spinner animation.\"\n parameters={[{ name: \"message\", type: \"string\" }]}>\n <IfStatement condition={code`message !== undefined`}>\n {code`this.#message = message;`}\n </IfStatement>\n <IfStatement condition={code`this.isSpinning`}>\n {code`return this;`}\n </IfStatement>\n {code`this.#isSpinning = true;\n this.#hideCursor();\n this.#installHook();\n this.#render();\n this.#subscribeToProcessEvents();\n\n if (isInteractive) {\n this.#timer = setInterval(() => {\n this.#render();\n }, this.#interval);\n }\n\n return this;\n `}\n </ClassMethod>\n <Spacing />\n <ClassMethod\n name=\"stop\"\n doc=\"Stop the spinner animation.\"\n parameters={[\n { name: \"finalMessage\", optional: true, type: \"string\" }\n ]}>\n {code`if (!this.isSpinning) {\n return this;\n }\n\n const shouldWriteNewline = this.#isDeferringRender;\n this.#isSpinning = false;\n if (this.#timer) {\n clearInterval(this.#timer);\n this.#timer = undefined;\n }\n\n this.#isDeferringRender = false;\n this.#uninstallHook();\n this.#showCursor();\n this.clear();\n this.#unsubscribeFromProcessEvents();\n\n if (finalMessage) {\n const prefix = shouldWriteNewline ? \"\\\\n\" : \"\";\n this.#stream.write(\\`\\${prefix}\\${finalMessage}\\\\n\\`);\n }\n\n return this;\n\n `}\n </ClassMethod>\n <Spacing />\n <ClassMethod name=\"clear\" doc=\"Clear the spinner animation.\">\n {code`if (!isInteractive) {\n return this;\n }\n\n if (this.#lines === 0) {\n return this;\n }\n\n this.#internalWrite(() => {\n this.#stream.cursorTo(0);\n\n for (let index = 0; index < this.#lines; index++) {\n if (index > 0) {\n this.#stream.moveCursor(0, -1);\n }\n\n this.#stream.clearLine(1);\n }\n });\n\n this.#lines = 0;\n return this; `}\n </ClassMethod>\n <Spacing />\n <ClassMethod\n name=\"success\"\n doc=\"Mark the spinner as successful.\"\n parameters={[{ name: \"message\", type: \"string\" }]}>\n {code`return this.#stopWithIcon(colors.text.spinner.icon.success(\"${\n theme.icons.spinner.success\n }\"), colors.text.spinner.message.success(message)); `}\n </ClassMethod>\n <Spacing />\n <ClassMethod\n name=\"error\"\n doc=\"Mark the spinner as failed.\"\n parameters={[{ name: \"message\", type: \"string\" }]}>\n {code`return this.#stopWithIcon(colors.text.spinner.icon.error(\"${\n theme.icons.spinner.error\n }\"), colors.text.spinner.message.error(message)); `}\n </ClassMethod>\n <Spacing />\n <ClassMethod\n name=\"warning\"\n doc=\"Mark the spinner as warning.\"\n parameters={[{ name: \"message\", type: \"string\" }]}>\n {code`return this.#stopWithIcon(colors.text.spinner.icon.warning(\"${\n theme.icons.spinner.warning\n }\"), colors.text.spinner.message.warning(message)); `}\n </ClassMethod>\n <Spacing />\n <ClassMethod\n name=\"info\"\n doc=\"Mark the spinner as informational.\"\n parameters={[{ name: \"message\", type: \"string\" }]}>\n {code`return this.#stopWithIcon(colors.text.spinner.icon.info(\"${\n theme.icons.spinner.info\n }\"), colors.text.spinner.message.info(message)); `}\n </ClassMethod>\n <Spacing />\n <ClassMethod\n name=\"help\"\n doc=\"Mark the spinner as help.\"\n parameters={[{ name: \"message\", type: \"string\" }]}>\n {code`return this.#stopWithIcon(colors.text.spinner.icon.help(\"${\n theme.icons.spinner.help\n }\"), colors.text.spinner.message.help(message)); `}\n </ClassMethod>\n <Spacing />\n </ClassDeclaration>\n <Spacing />\n <TSDoc heading=\"Render a spinner in the console.\">\n <TSDocParam name=\"options\">\n {`Options for configuring the spinner, including the message to display, the output stream to write to, and the spinner animation to use.`}\n </TSDocParam>\n <TSDocReturns>{`An instance of the Spinner class, which can be used to control the spinner animation (e.g., start, stop, mark as success/error, etc.).`}</TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n export\n name=\"createSpinner\"\n parameters={[\n {\n name: \"options\",\n type: \"SpinnerOptions\",\n optional: true\n }\n ]}>\n {code`return new Spinner(options);`}\n </FunctionDeclaration>\n </>\n );\n}\n\nfunction extractBorderOptionsObject(\n direction:\n | \"top\"\n | \"right\"\n | \"bottom\"\n | \"left\"\n | \"topLeft\"\n | \"topRight\"\n | \"bottomLeft\"\n | \"bottomRight\",\n theme: ThemeResolvedConfig\n): string {\n return `borderOptions.${\n direction\n } === \"primary\" ? colors.border.app.table.primary(\"${\n theme.borderStyles.app.table.primary[direction]\n }\") : borderOptions.${\n direction\n } === \"secondary\" ? colors.border.app.table.secondary(\"${\n theme.borderStyles.app.table.secondary[direction]\n }\") : borderOptions.${\n direction\n } === \"tertiary\" ? colors.border.app.table.tertiary(\"${\n theme.borderStyles.app.table.tertiary[direction]\n }\") : !borderOptions.${direction} || borderOptions.${\n direction\n } === \"none\" ? \"\" : borderOptions.${direction}`;\n}\n\nfunction extractBorderOptionsString(\n direction:\n | \"top\"\n | \"right\"\n | \"bottom\"\n | \"left\"\n | \"topLeft\"\n | \"topRight\"\n | \"bottomLeft\"\n | \"bottomRight\",\n theme: ThemeResolvedConfig\n): string {\n return `borderOptions === \"primary\" ? colors.border.app.table.primary(\"${\n theme.borderStyles.app.table.primary[direction]\n }\") : borderOptions === \"secondary\" ? colors.border.app.table.secondary(\"${\n theme.borderStyles.app.table.secondary[direction]\n }\") : borderOptions === \"tertiary\" ? colors.border.app.table.tertiary(\"${\n theme.borderStyles.app.table.tertiary[direction]\n }\") : !borderOptions || borderOptions === \"none\" ? \"\" : borderOptions`;\n}\n\n/**\n * Props for the TableFunctionDeclaration component.\n */\nexport type TableFunctionDeclarationProps = Omit<\n FunctionDeclarationProps,\n \"parameters\" | \"name\"\n>;\n\n/**\n * A component to generate the table functions in the `shell-shock:console` builtin module.\n */\nexport function TableFunctionDeclaration(props: TableFunctionDeclarationProps) {\n const theme = useTheme();\n\n return (\n <>\n <TypeDeclaration\n export\n name=\"SizeToken\"\n doc=\"A type representing the width size of an item in the console.\">\n {code`\"full\" | \"1/1\" | \"1/2\" | \"1/3\" | \"1/4\" | \"1/5\" | \"1/6\" | \"1/12\" | \"1/24\" | \"100%\" | \"50%\" | \"33.33%\" | \"25%\" | \"20%\" | \"10%\" | \"5%\" | \"2.5%\"`}\n </TypeDeclaration>\n <Spacing />\n <TSDoc heading=\"Determine if a value is a valid size token.\">\n <TSDocRemarks>\n {`This function checks if the provided value is a valid size token, which can be one of the predefined strings representing common width sizes (e.g., \"full\", \"1/2\", \"1/3\", etc.) or percentage strings (e.g., \"50%\").`}\n </TSDocRemarks>\n <TSDocParam name=\"value\">{`The value to check for being a valid size token.`}</TSDocParam>\n <TSDocReturns>{`True if the value is a valid size token, false otherwise.`}</TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n export\n doc=\"Determines if the provided value is a valid size token.\"\n name=\"isSizeToken\"\n parameters={[\n {\n name: \"value\",\n type: \"any\"\n }\n ]}\n returnType=\"value is SizeToken\">\n <IfStatement\n condition={code`[\"full\", \"1/1\", \"1/2\", \"1/3\", \"1/4\", \"1/5\", \"1/6\", \"1/12\", \"1/24\", \"100%\", \"50%\", \"33.33%\", \"25%\", \"20%\", \"10%\", \"5%\", \"2.5%\"].includes(value)`}>\n {code`return true; `}\n </IfStatement>\n {code`return false; `}\n </FunctionDeclaration>\n <Spacing />\n <TSDoc heading=\"Calculate the width in characters based on the provided width size.\">\n <TSDocRemarks>\n {`This function calculates the width in characters based on the provided width size, which can be a predefined string (e.g., \"full\", \"1/2\", \"1/3\", etc.) or a percentage string (e.g., \"50%\"). The calculation is based on the current width of the console (process.stdout.columns).`}\n </TSDocRemarks>\n <TSDocParam name=\"size\">\n {`The width size to calculate. This can be a predefined string (e.g., \"full\", \"1/2\", \"1/3\", etc.) or a percentage string (e.g., \"50%\").`}\n </TSDocParam>\n <TSDocReturns>{`The calculated width in characters.`}</TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n export\n name=\"calculateWidth\"\n parameters={[\n {\n name: \"size\",\n type: \"SizeToken\",\n optional: false\n }\n ]}\n returnType=\"number\">\n <IfStatement condition={code`[\"full\", \"100%\", \"1/1\"]. includes(size)`}>\n {code`return process.stdout.columns;`}\n </IfStatement>\n <ElseIfClause condition={code`[\"1/2\", \"50%\"].includes(size)`}>\n {code`return Math.round(process.stdout.columns / 2);`}\n </ElseIfClause>\n <ElseIfClause condition={code`[\"1/3\", \"33.33%\"].includes(size)`}>\n {code`return Math.round(process.stdout.columns / 3);`}\n </ElseIfClause>\n <ElseIfClause condition={code`[\"1/4\", \"25%\"].includes(size)`}>\n {code`return Math.round(process.stdout.columns / 4);`}\n </ElseIfClause>\n <ElseIfClause condition={code`[\"1/5\", \"20%\"].includes(size)`}>\n {code`return Math.round(process.stdout.columns / 5);`}\n </ElseIfClause>\n <ElseIfClause condition={code`[\"1/6\", \"10%\"].includes(size)`}>\n {code`return Math.round(process.stdout.columns / 6);`}\n </ElseIfClause>\n <ElseIfClause condition={code`[\"1/12\", \"5%\"].includes(size)`}>\n {code`return Math.round(process.stdout.columns / 12);`}\n </ElseIfClause>\n <ElseIfClause condition={code`[\"1/24\", \"2.5%\"].includes(size)`}>\n {code`return Math.round(process.stdout.columns / 24);`}\n </ElseIfClause>\n <ElseClause>\n {code`\n const match = size.match(/(\\\\d+(\\\\.\\\\d+)?)%/);\n if (match) {\n return Math.round((process.stdout.columns * parseFloat(match[1])) / 100);\n }\n\n throw new Error(\\`Invalid width size: \\${size}\\`);\n `}\n </ElseClause>\n <Spacing />\n </FunctionDeclaration>\n\n <TypeDeclaration\n export\n name=\"BorderOption\"\n doc=\"The border options applied to table cells.\">\n {code`\"primary\" | \"secondary\" | \"tertiary\" | \"none\" | string; `}\n </TypeDeclaration>\n <Spacing />\n <InterfaceDeclaration\n export\n name=\"TableOutputOptions\"\n doc=\"Options to customize the output of the {@link table} function.\">\n <TSDoc heading=\"Border variant for the table cell.\">\n <TSDocRemarks>\n {`The border variant to use for the table cell. This determines the color and style of the border around the cell.`}\n </TSDocRemarks>\n <hbr />\n <TSDocDefaultValue\n type={ReflectionKind.property}\n defaultValue=\"primary\"\n />\n </TSDoc>\n <InterfaceMember\n name=\"border\"\n optional\n type=\"BorderOption | { top?: BorderOption; right?: BorderOption; bottom?: BorderOption; left?: BorderOption; topLeft?: BorderOption; topRight?: BorderOption; bottomLeft?: BorderOption; bottomRight?: BorderOption; }\"\n />\n <hbr />\n <TSDoc heading=\"Padding for the table cell.\">\n <TSDocRemarks>\n {`The amount of padding (in spaces) to apply to the table cell. This value is applied to both the left and right sides of the cell. If not specified, the default table padding defined in the current theme configuration will be used.`}\n </TSDocRemarks>\n <hbr />\n <TSDocDefaultValue\n type={ReflectionKind.property}\n defaultValue={`\\`${theme.padding.table}\\``}\n />\n </TSDoc>\n <InterfaceMember name=\"padding\" optional type=\"number\" />\n <hbr />\n <TSDoc heading=\"Alignment for the table cell.\">\n <TSDocRemarks>\n {`The alignment for the table cell. This determines how the text within the cell is aligned. If not specified, the default alignment is \"left\".`}\n </TSDocRemarks>\n <hbr />\n <TSDocDefaultValue\n type={ReflectionKind.property}\n defaultValue=\"left\"\n />\n </TSDoc>\n <InterfaceMember\n name=\"align\"\n optional\n type='\"left\" | \"right\" | \"center\"'\n />\n <hbr />\n </InterfaceDeclaration>\n <Spacing />\n <InterfaceDeclaration\n export\n name=\"TableCellOptions\"\n extends=\"TableOutputOptions\"\n doc=\"Options for a specific table cell provided to the {@link table} function.\">\n <InterfaceMember\n name=\"value\"\n optional\n type=\"string\"\n doc=\"The actual string value of the table cell.\"\n />\n <hbr />\n <TSDoc heading=\"Width of the table cell.\">\n <TSDocRemarks>\n {`The width of the table cell (where 1 is a single character in the terminal). If not specified, the width will be determined based on the content of the cell and the available space in the console.`}\n </TSDocRemarks>\n </TSDoc>\n <InterfaceMember\n name=\"maxWidth\"\n type=\"number | SizeToken | undefined\"\n />\n <hbr />\n </InterfaceDeclaration>\n <Spacing />\n <InterfaceDeclaration\n export\n name=\"TableRowOptions\"\n extends=\"TableOutputOptions\"\n doc=\"Options for a specific table row provided to the {@link table} function.\">\n <InterfaceMember\n name=\"values\"\n optional\n type=\"(string | TableCellOptions)[]\"\n doc=\"The actual string values of the table row's cells.\"\n />\n <hbr />\n </InterfaceDeclaration>\n <Spacing />\n <InterfaceDeclaration\n export\n name=\"TableOptions\"\n extends=\"TableOutputOptions\"\n doc=\"Options for a specific table cell provided to the {@link table} function.\">\n <InterfaceMember\n name=\"values\"\n optional\n type=\"(string | TableCellOptions)[][]\"\n doc=\"The actual string values of the table's rows' cells.\"\n />\n <hbr />\n </InterfaceDeclaration>\n <Spacing />\n <InterfaceDeclaration\n name=\"Dimensions\"\n doc=\"The height and width for a specific table/cell used internally in the {@link table} function.\">\n <InterfaceMember\n name=\"height\"\n type=\"number\"\n doc=\"The height of the row/cell (where 1 is a single line in the terminal).\"\n />\n <hbr />\n <InterfaceMember\n name=\"width\"\n type=\"number\"\n doc=\"The width of the row/cell (where 1 is a single character in the terminal).\"\n />\n <hbr />\n </InterfaceDeclaration>\n <Spacing />\n <InterfaceDeclaration\n name=\"TableCellBorder\"\n doc=\"The resolved complete border styles for a table cell.\">\n <InterfaceMember\n name=\"top\"\n type=\"string\"\n doc=\"The top border style of the table cell.\"\n />\n <hbr />\n <InterfaceMember\n name=\"bottom\"\n type=\"string\"\n doc=\"The bottom border style of the table cell.\"\n />\n <hbr />\n <InterfaceMember\n name=\"right\"\n type=\"string\"\n doc=\"The right border style of the table cell.\"\n />\n <hbr />\n <InterfaceMember\n name=\"left\"\n type=\"string\"\n doc=\"The left border style of the table cell.\"\n />\n <hbr />\n <InterfaceMember\n name=\"topLeft\"\n type=\"string\"\n doc=\"The top-left border style of the table cell.\"\n />\n <hbr />\n <InterfaceMember\n name=\"topRight\"\n type=\"string\"\n doc=\"The top-right border style of the table cell.\"\n />\n <hbr />\n <InterfaceMember\n name=\"bottomLeft\"\n type=\"string\"\n doc=\"The bottom-left border style of the table cell.\"\n />\n <hbr />\n <InterfaceMember\n name=\"bottomRight\"\n type=\"string\"\n doc=\"The bottom-right border style of the table cell.\"\n />\n <hbr />\n </InterfaceDeclaration>\n <Spacing />\n <TypeDeclaration\n name=\"TableCell\"\n doc=\"The internal state of a formatted table cell in the {@link table} function.\">\n {code`Required<Omit<TableCellOptions, \"maxWidth\" | \"border\">> & Dimensions & {\n border: TableCellBorder;\n maxWidth?: number;\n };\n `}\n </TypeDeclaration>\n <Spacing />\n <TSDoc heading=\"Write a table to the console.\">\n <TSDocRemarks>\n {`This function writes a table to the console, applying the appropriate padding as defined in the current theme configuration and wrapping as needed.`}\n </TSDocRemarks>\n <hbr />\n <TSDocParam name=\"options\">\n {`Options to customize the table output.`}\n </TSDocParam>\n </TSDoc>\n <FunctionDeclaration\n export\n {...props}\n name=\"table\"\n parameters={[\n {\n name: \"options\",\n type: \"TableOptions | TableRowOptions[] | TableCellOptions[][] | string[] | string[][]\",\n optional: false\n }\n ]}>\n <IfStatement\n condition={code`!options ||\n (!Array.isArray(options) && (typeof options !== \"object\" || !options.values || !Array.isArray(options.values) || options.values.length === 0)) ||\n (Array.isArray(options) && !options.every(item => typeof item === \"object\" || typeof item === \"string\" || Array.isArray(item))) `}>\n {code`return;`}\n </IfStatement>\n <Spacing />\n <VarDeclaration\n let\n name=\"cells\"\n type={`TableCell[][]`}\n initializer={code`[];`}\n />\n <hbr />\n {code`\n const extractTableCell = (cell: string | TableCellOptions, columnIndex: number, rowLength: number, opts?: TableOutputOptions): TableCell => {\n if (typeof cell === \"string\") {\n const borderOptions = opts?.border || \"primary\";\n\n let border = {} as TableCellBorder;\n if (typeof borderOptions === \"object\") {\n border = {\n top: ${extractBorderOptionsObject(\"top\", theme)},\n bottom: ${extractBorderOptionsObject(\"bottom\", theme)},\n left: ${extractBorderOptionsObject(\"left\", theme)},\n right: ${extractBorderOptionsObject(\"right\", theme)},\n topLeft: ${extractBorderOptionsObject(\"topLeft\", theme)},\n topRight: ${extractBorderOptionsObject(\"topRight\", theme)},\n bottomLeft: ${extractBorderOptionsObject(\"bottomLeft\", theme)},\n bottomRight: ${extractBorderOptionsObject(\"bottomRight\", theme)},\n };\n } else {\n border.top = ${extractBorderOptionsString(\"top\", theme)};\n border.bottom = ${extractBorderOptionsString(\"bottom\", theme)};\n border.left = ${extractBorderOptionsString(\"left\", theme)};\n border.right = ${extractBorderOptionsString(\"right\", theme)};\n border.topLeft = ${extractBorderOptionsString(\"topLeft\", theme)};\n border.topRight = ${extractBorderOptionsString(\"topRight\", theme)};\n border.bottomLeft = ${extractBorderOptionsString(\"bottomLeft\", theme)};\n border.bottomRight = ${extractBorderOptionsString(\"bottomRight\", theme)};\n }\n\n const padding = Math.max(0, opts?.padding ?? ${theme.padding.table}) * (columnIndex === 0 || columnIndex === rowLength - 1 ? 2 : 1);\n const value = cell ?? \"\";\n const width = stripAnsi(value).length + padding * 2;\n\n return {\n value,\n height: 1,\n width,\n border,\n padding,\n align: opts?.align || \"left\",\n };\n } else {\n const borderOptions = cell.border || opts?.border || \"primary\";\n\n let border = {} as TableCellBorder;\n if (typeof borderOptions === \"object\") {\n border = {\n top: ${extractBorderOptionsObject(\"top\", theme)},\n bottom: ${extractBorderOptionsObject(\"bottom\", theme)},\n left: ${extractBorderOptionsObject(\"left\", theme)},\n right: ${extractBorderOptionsObject(\"right\", theme)},\n topLeft: ${extractBorderOptionsObject(\"topLeft\", theme)},\n topRight: ${extractBorderOptionsObject(\"topRight\", theme)},\n bottomLeft: ${extractBorderOptionsObject(\"bottomLeft\", theme)},\n bottomRight: ${extractBorderOptionsObject(\"bottomRight\", theme)},\n };\n } else {\n border.top = ${extractBorderOptionsString(\"top\", theme)};\n border.bottom = ${extractBorderOptionsString(\"bottom\", theme)};\n border.left = ${extractBorderOptionsString(\"left\", theme)};\n border.right = ${extractBorderOptionsString(\"right\", theme)};\n border.topLeft = ${extractBorderOptionsString(\"topLeft\", theme)};\n border.topRight = ${extractBorderOptionsString(\"topRight\", theme)};\n border.bottomLeft = ${extractBorderOptionsString(\"bottomLeft\", theme)};\n border.bottomRight = ${extractBorderOptionsString(\"bottomRight\", theme)};\n }\n\n const padding = Math.max(0, cell.padding ?? opts?.padding ?? ${\n theme.padding.table\n });\n const value = cell.value ?? \"\";\n const width = stripAnsi(value).length + padding * 2;\n const maxWidth = cell.maxWidth ? typeof cell.maxWidth === \"number\" ? cell.maxWidth : calculateWidth(cell.maxWidth) : undefined;\n\n return {\n value,\n height: 1,\n width,\n maxWidth,\n border,\n padding,\n align: cell.align || opts?.align || \"left\",\n };\n }\n };\n\n let colMaxWidths = [] as (number | undefined)[];\n `}\n <hbr />\n <IfStatement condition={code`Array.isArray(options)`}>\n <IfStatement\n condition={code`options.every(row => typeof row === \"string\" || (typeof row === \"object\" && !Array.isArray(row) && !(\"values\" in row)))`}>\n {code`cells.push(options.map((cell, index) => extractTableCell(cell as string | TableCellOptions, index, options.length)));`}\n </IfStatement>\n <ElseClause>\n {code`\n cells.push(\n ...options.map(row => Array.isArray(row)\n ? row.reduce((cellRow, cell, index) => {\n if (colMaxWidths.length <= index) {\n colMaxWidths.push(undefined);\n }\n const newCell = extractTableCell(cell, index, row.length);\n if (newCell.maxWidth && (!colMaxWidths[index] || newCell.maxWidth < colMaxWidths[index]!)) {\n colMaxWidths[index] = newCell.maxWidth;\n }\n cellRow.push(newCell);\n return cellRow;\n }, [] as TableCell[])\n : (row as TableRowOptions).values?.reduce((cellRow, cell, index) => {\n if (colMaxWidths.length <= index) {\n colMaxWidths.push(undefined);\n }\n const newCell = extractTableCell(cell, index, (row as TableRowOptions).values?.length ?? 1, row as TableRowOptions);\n if (newCell.maxWidth && (!colMaxWidths[index] || newCell.maxWidth < colMaxWidths[index]!)) {\n colMaxWidths[index] = newCell.maxWidth;\n }\n cellRow.push(newCell);\n return cellRow;\n }, [] as TableCell[]) ?? []\n )\n );\n `}\n </ElseClause>\n </IfStatement>\n <ElseClause>\n {code`\n cells.push(\n ...options.values!.map(row => Array.isArray(row)\n ? row.reduce((cellRow, cell, index) => {\n if (colMaxWidths.length <= index) {\n colMaxWidths.push(undefined);\n }\n const newCell = extractTableCell(cell, index, row.length);\n if (newCell.maxWidth && (!colMaxWidths[index] || newCell.maxWidth < colMaxWidths[index]!)) {\n colMaxWidths[index] = newCell.maxWidth;\n }\n cellRow.push(newCell);\n return cellRow;\n }, [] as TableCell[])\n : (row as TableRowOptions).values?.reduce((cellRow, cell, index) => {\n if (colMaxWidths.length <= index) {\n colMaxWidths.push(undefined);\n }\n const newCell = extractTableCell(cell, index, (row as TableRowOptions).values?.length ?? 1, options);\n if (newCell.maxWidth && (!colMaxWidths[index] || newCell.maxWidth < colMaxWidths[index]!)) {\n colMaxWidths[index] = newCell.maxWidth;\n }\n cellRow.push(newCell);\n return cellRow;\n }, [] as TableCell[]) ?? []\n )\n );\n\n `}\n </ElseClause>\n <hbr />\n {code`\ncells = cells.filter(row => row.length > 0);\nif (cells.length === 0) {\n return;\n}\n\ncells.forEach(row => row.forEach((cell, index) => {\n if (colMaxWidths[index] && cell.maxWidth !== colMaxWidths[index]!) {\n cell.maxWidth = colMaxWidths[index]!;\n }\n}));\n\n// Calculate table dimensions\nlet colWidths = [] as number[];\nlet rowDims = [] as Dimensions[];\n\nconst calculateRowDimensions = () => {\n colWidths = [];\n return cells.reduce((dims, row) => {\n dims.push(row.reduce((dim, cell, index) => {\n dim.width += cell.width;\n if (cell.height > dim.height) {\n dim.height = cell.height;\n }\n if (!colWidths[index] || cell.width > colWidths[index]!) {\n colWidths[index] = cell.width;\n }\n\n return dim;\n }, { width: 0, height: 0 } as Dimensions));\n\n return dims;\n }, [] as Dimensions[]);\n}\n\nlet recalculate!: boolean;\ndo {\n recalculate = false;\n rowDims = calculateRowDimensions();\n\n if (!recalculate && colWidths.some((colWidth, index) => colMaxWidths[index] && colWidth > colMaxWidths[index]!)) {\n (colWidths.map((colWidth, index) => colMaxWidths[index] && colWidth > colMaxWidths[index]! ? index : undefined).filter(colWidth => colWidth !== undefined) as number[]).forEach(index => {\n cells.forEach(row => {\n const cell = row[index]!;\n if (colMaxWidths[index] && cell.width > colMaxWidths[index]) {\n const lines = splitText(\n cell.value,\n colMaxWidths[index] - cell.padding * 2,\n );\n\n cell.value = lines.join(\"\\\\n\");\n cell.height = lines.length;\n cell.width = Math.max(...lines.map(line => stripAnsi(line).length)) + cell.padding * 2;\n\n recalculate = true;\n }\n });\n });\n }\n\n rowDims.forEach((row, rowIndex) => {\n if (!recalculate && row.width > Math.max(process.stdout.columns - ${\n Math.max(theme.padding.app, 0) * 2\n }, 0)) {\n const cell = cells[rowIndex]!.reduce((largestCell, cell) => {\n if (cell.width > largestCell.width) {\n return cell;\n }\n return largestCell;\n }, cells[rowIndex]![0]!);\n\n const lines = splitText(\n cell.value,\n Math.min(Math.max(process.stdout.columns - ${\n Math.max(theme.padding.app, 0) * 2\n } - (row.width - (cell.width - cell.padding * 2)), 0),\n cell.maxWidth ?? Number.POSITIVE_INFINITY)\n );\n\n cell.value = lines.join(\"\\\\n\");\n cell.height = lines.length;\n cell.width = Math.max(...lines.map(line => stripAnsi(line).length)) + cell.padding * 2;\n\n recalculate = true;\n }\n });\n\n if (!recalculate && colWidths.reduce((a, b) => a + b, 0) > Math.max(process.stdout.columns - ${\n Math.max(theme.padding.app, 0) * 2\n }, 0)) {\n let colIndex = 0;\n const cell = cells.reduce((ret, row) => {\n return row.reduce((largest, current, index) => {\n if (largest.width < current.width) {\n colIndex = index;\n return current;\n }\n return largest;\n }, ret);\n }, cells[0]![0]!);\n\n const lines = splitText(\n cell.value,\n Math.min(Math.max(process.stdout.columns - ${\n Math.max(theme.padding.app, 0) * 2\n } - (colWidths.filter((_, i) => i !== colIndex).reduce((a, b) => a + b, 0)) - cell.padding * 2, 0),\n cell.maxWidth ?? Number.POSITIVE_INFINITY)\n );\n\n cell.value = lines.join(\"\\\\n\");\n cell.height = lines.length;\n cell.width = Math.max(...lines.map(line => stripAnsi(line).length)) + cell.padding * 2;\n\n recalculate = true;\n }\n} while (recalculate);\n\n// Render table\ncells.forEach((row, rowIndex) => {\n const outputs = [] as string[][];\n row.forEach((cell, colIndex) => {\n const lines = cell.value.split(\"\\\\n\");\n while (lines.length < rowDims[rowIndex]!.height) {\n lines.push(\"\");\n }\n\n outputs.push(lines.map(line => {\n let paddedContent = \"\";\n switch (cell.align) {\n case \"right\":\n paddedContent = \" \".repeat(Math.max(colWidths[colIndex] - stripAnsi(line).length - cell.padding, 0)) + line + \" \".repeat(cell.padding);\n break;\n case \"center\":\n const leftPadding = Math.floor((colWidths[colIndex] - stripAnsi(line).length - cell.padding) / 2);\n const rightPadding = colWidths[colIndex] - stripAnsi(line).length - leftPadding;\n paddedContent = \" \".repeat(leftPadding) + line + \" \".repeat(rightPadding);\n break;\n case \"left\":\n default:\n paddedContent = \" \".repeat(cell.padding) + line + \" \".repeat(Math.max(colWidths[colIndex] - stripAnsi(line).length - cell.padding, 0));\n break;\n }\n\n if (colIndex === row.length - 1) {\n return cell.border.left + paddedContent + cell.border.right;\n } else {\n return cell.border.left + paddedContent;\n }\n }));\n });\n\n for (let index = 0; index < rowDims[rowIndex]!.height; index++) {\n writeLine(outputs.map(output => output[index] ?? \"\").join(\"\"));\n }\n});\n`}\n </FunctionDeclaration>\n </>\n );\n}\n\nexport type ConsoleBuiltinProps = Pick<\n BuiltinFileProps,\n \"children\" | \"imports\" | \"builtinImports\"\n>;\n\n/**\n * A built-in console utilities module for Shell Shock.\n */\nexport function ConsoleBuiltin(props: ConsoleBuiltinProps) {\n const { children, imports, builtinImports } = props;\n\n return (\n <BuiltinFile\n id=\"console\"\n description=\"A collection of helper utilities to assist in generating content meant for display in the console.\"\n imports={defu(imports, {\n \"@shell-shock/plugin-theme/types/theme\": [\n { name: \"ThemeColorsResolvedConfig\", type: true },\n { name: \"ThemeSpinnerResolvedConfig\", type: true }\n ],\n \"@shell-shock/plugin-theme/helpers/spinners\": [\n { name: \"SpinnerPreset\", type: true },\n { name: \"resolveSpinner\" }\n ],\n \"node:buffer\": [\"WithImplicitCoercion\"],\n \"node:util\": [\"stripVTControlCharacters\"]\n })}\n builtinImports={defu(builtinImports, {\n utils: [\n \"hasFlag\",\n \"isMinimal\",\n \"isInteractive\",\n \"isColorSupported\",\n \"colorSupportLevels\",\n \"isHyperlinkSupported\"\n ],\n env: [\"env\", \"isDevelopment\", \"isDebug\"]\n })}>\n <AnsiHelpersDeclarations />\n <Spacing />\n <StripAnsiFunctionDeclaration />\n <Spacing />\n <WrapAnsiFunction />\n <Spacing />\n <ColorsDeclaration />\n <Spacing />\n <WriteLineFunctionDeclaration />\n <Spacing />\n <SplitTextFunctionDeclaration />\n <Spacing />\n <LinkFunctionDeclaration />\n <Spacing />\n <DividerFunctionDeclaration />\n <Spacing />\n <SpinnerFunctionDeclaration />\n <Spacing />\n <MessageFunctionDeclaration\n type=\"help\"\n variant=\"help\"\n consoleFnName=\"log\"\n description=\"help\"\n />\n <Spacing />\n <MessageFunctionDeclaration\n type=\"success\"\n variant=\"success\"\n consoleFnName=\"info\"\n description=\"success\"\n />\n <Spacing />\n <MessageFunctionDeclaration\n type=\"info\"\n variant=\"info\"\n consoleFnName=\"info\"\n description=\"informational\"\n />\n <Spacing />\n <MessageFunctionDeclaration\n type=\"debug\"\n variant=\"debug\"\n consoleFnName=\"debug\"\n description=\"debug\"\n timestamp\n prefix={\n <IfStatement condition={<IsNotDebug />}>{code`return; `}</IfStatement>\n }\n />\n <Spacing />\n <MessageFunctionDeclaration\n type=\"verbose\"\n variant=\"info\"\n color=\"debug\"\n consoleFnName=\"debug\"\n description=\"verbose\"\n timestamp\n prefix={\n <IfStatement\n condition={<IsNotVerbose />}>{code`return; `}</IfStatement>\n }\n />\n <Spacing />\n <MessageFunctionDeclaration\n type=\"warn\"\n variant=\"warning\"\n consoleFnName=\"warn\"\n description=\"warning\"\n />\n <Spacing />\n <MessageFunctionDeclaration\n type=\"danger\"\n variant=\"danger\"\n consoleFnName=\"error\"\n description=\"destructive/danger\"\n />\n <Spacing />\n <MessageFunctionDeclaration\n type=\"error\"\n variant=\"error\"\n consoleFnName=\"error\"\n description=\"error\"\n timestamp\n parameters={[\n {\n name: \"err\",\n type: \"string | Error\",\n optional: false\n }\n ]}\n prefix={\n <>\n <VarDeclaration let name=\"message\" type=\"string | undefined\" />\n <Spacing />\n <IfStatement condition={code`(err as Error)?.message`}>\n {code`message = (err as Error).message;`}\n </IfStatement>\n <ElseClause>{code`message = String(err);`}</ElseClause>\n <Spacing />\n <IfStatement condition={code`env.STACKTRACE`}>\n <IfStatement condition={code`(err as Error)?.stack`}>\n {code`message += \" \\\\n\\\\n\" + ((err as Error).stack || \"\");`}\n </IfStatement>\n <ElseClause>{code`message += \" \\\\n\\\\n\" + ((new Error(\" \")).stack || \"\").split(\"\\\\n\").slice(2).map(line => line.trim()).join(\"\\\\n\");`}</ElseClause>\n </IfStatement>\n </>\n }\n />\n <Spacing />\n <TableFunctionDeclaration />\n <Spacing />\n {children}\n <Spacing />\n </BuiltinFile>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"console-builtin.mjs","names":[],"sources":["../../src/components/console-builtin.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Shell Shock\n\n This code was released as part of the Shell Shock project. Shell Shock\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/shell-shock.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/shell-shock\n Documentation: https://docs.stormsoftware.com/projects/shell-shock\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport type { Children } from \"@alloy-js/core\";\nimport { code, For, Show } from \"@alloy-js/core\";\nimport type { FunctionDeclarationProps } from \"@alloy-js/typescript\";\nimport {\n ElseClause,\n ElseIfClause,\n FunctionDeclaration,\n IfStatement,\n InterfaceDeclaration,\n InterfaceMember,\n TypeDeclaration,\n VarDeclaration\n} from \"@alloy-js/typescript\";\nimport { ReflectionKind } from \"@powerlines/deepkit/vendor/type\";\nimport { Spacing } from \"@powerlines/plugin-alloy/core/components/spacing\";\nimport {\n ClassDeclaration,\n ClassField,\n ClassMethod,\n ClassPropertyGet,\n ClassPropertySet\n} from \"@powerlines/plugin-alloy/typescript\";\nimport type { BuiltinFileProps } from \"@powerlines/plugin-alloy/typescript/components/builtin-file\";\nimport { BuiltinFile } from \"@powerlines/plugin-alloy/typescript/components/builtin-file\";\nimport {\n TSDoc,\n TSDocDefaultValue,\n TSDocExample,\n TSDocParam,\n TSDocRemarks,\n TSDocReturns\n} from \"@powerlines/plugin-alloy/typescript/components/tsdoc\";\nimport { IsNotDebug, IsNotVerbose } from \"@shell-shock/core/components/helpers\";\nimport type {\n ThemeMessageVariant,\n ThemeResolvedConfig\n} from \"@shell-shock/plugin-theme\";\nimport { useColors, useTheme } from \"@shell-shock/plugin-theme/contexts/theme\";\nimport type {\n AnsiWrappers,\n BaseAnsiStylesKeys\n} from \"@shell-shock/plugin-theme/helpers/ansi-utils\";\nimport { camelCase } from \"@stryke/string-format\";\nimport { getIndefiniteArticle } from \"@stryke/string-format/vowels\";\nimport { defu } from \"defu\";\n\nexport function AnsiHelpersDeclarations() {\n return (\n <>\n <VarDeclaration\n const\n export\n name=\"beep\"\n doc=\"The ASCII Bell character, which can be used to trigger a beep sound in the console.\">\n {code` \"\\\\u0007\"; `}\n </VarDeclaration>\n <Spacing />\n <VarDeclaration\n const\n export\n name=\"cursor\"\n doc=\"An object containing ANSI escape codes for controlling the console cursor.\">\n {code` {\n to(x: number, y?: number) {\n if (!y) {\n return \\`\\\\x1B[\\${x + 1}G\\`;\n }\n\n return \\`\\\\x1B[\\${y + 1};\\${x + 1}H\\`;\n },\n move(x: number, y: number) {\n let ret = '';\n\n if (x < 0) {\n ret += \\`\\\\x1B[\\${-x}D\\`;\n } else if (x > 0) {\n ret += \\`\\\\x1B[\\${x}C\\`;\n }\n\n if (y < 0) {\n ret += \\`\\\\x1B[\\${-y}A\\`;\n } else if (y > 0) {\n ret += \\`\\\\x1B[\\${y}B\\`;\n }\n\n return ret;\n },\n up: (count = 1) => \\`\\\\x1B[\\${count}A\\`,\n down: (count = 1) => \\`\\\\x1B[\\${count}B\\`,\n forward: (count = 1) => \\`\\\\x1B[\\${count}C\\`,\n backward: (count = 1) => \\`\\\\x1B[\\${count}D\\`,\n nextLine: (count = 1) => \"\\\\x1B[E\".repeat(count),\n prevLine: (count = 1) => \"\\\\x1B[F\".repeat(count),\n left: \"\\\\x1B[G\",\n hide: \"\\\\x1B[?25l\",\n show: \"\\\\x1B[?25h\",\n save: \"\\\\x1B7\",\n restore: \"\\\\x1B8\"\n } `}\n </VarDeclaration>\n <Spacing />\n <VarDeclaration\n const\n export\n name=\"erase\"\n doc=\"An object containing ANSI escape codes for erasing parts of the console.\">\n {code` {\n screen: \"\\\\x1B[2J\",\n up: (count = 1) => \"\\\\x1B[1J\".repeat(count),\n down: (count = 1) => \"\\\\x1B[J\".repeat(count),\n line: \"\\\\x1B[2K\",\n lineEnd: \"\\\\x1B[K\",\n lineStart: \"\\\\x1B[1K\",\n lines(count: number) {\n let lineClear = \"\";\n for (let i = 0; i < count; i++) {\n lineClear += this.line + (i < count - 1 ? cursor.up() : \"\");\n }\n\n if (count) {\n lineClear += cursor.left;\n }\n\n return lineClear;\n }\n } `}\n </VarDeclaration>\n <Spacing />\n <VarDeclaration\n const\n export\n name=\"scroll\"\n doc=\"An object containing ANSI escape codes for scrolling the console.\">\n {code` {\n up: (count = 1) => \"\\\\x1B[S\".repeat(count),\n down: (count = 1) => \"\\\\x1B[T\".repeat(count)\n } `}\n </VarDeclaration>\n <Spacing />\n <FunctionDeclaration\n export\n name=\"clear\"\n doc=\"A helper function to clear the console based on a count of lines\"\n parameters={[\n {\n name: \"current\",\n type: \"string\",\n doc: \"The current console output to be cleared\"\n },\n {\n name: \"consoleWidth\",\n type: \"number\",\n doc: \"The number of characters per line in the console\"\n }\n ]}>\n {code`if (!consoleWidth) {\n return erase.line + cursor.to(0);\n }\n\n let rows = 0;\n const lines = current.split(/\\\\r?\\\\n/);\n for (let line of lines) {\n rows += 1 + Math.floor(Math.max([...stripAnsi(line)].length - 1, 0) / consoleWidth);\n }\n\n return erase.lines(rows); `}\n </FunctionDeclaration>\n <Spacing />\n </>\n );\n}\n\n/**\n * A component to generate a console message function in a Shell Shock project.\n */\nfunction ColorFunction({\n ansi16,\n ansi256,\n ansi16m\n}: Record<\"ansi16\" | \"ansi256\" | \"ansi16m\", AnsiWrappers>) {\n return code` (text: string, background = false) => {\n try {\n if (!isColorSupported) {\n return String(text);\n }\n\n if (colorSupportLevels.stdout === 1) {\n return wrapAnsi(text, background ? \"${\n ansi16.background.open\n }\" : \"${ansi16.open}\", background ? \"${\n ansi16.background.close\n }\" : \"${ansi16.close}\");\n } else if (colorSupportLevels.stdout === 2) {\n return wrapAnsi(text, background ? \"${\n ansi256.background.open\n }\" : \"${ansi256.open}\", background ? \"${\n ansi256.background.close\n }\" : \"${ansi256.close}\");\n }\n\n return wrapAnsi(text, background ? \"${ansi16m.background.open}\" : \"${\n ansi16m.open\n }\", background ? \"${ansi16m.background.close}\" : \"${ansi16m.close}\");\n } catch {\n return String(text);\n }\n }\n`;\n}\n\n/**\n * A component to generate an object containing functions for coloring text in a Shell Shock project.\n */\nexport function ColorsDeclaration() {\n const colors = useColors();\n const theme = useTheme();\n\n return (\n <>\n <TypeDeclaration\n export\n name=\"AnsiColor\"\n doc=\"The available ANSI colors for console text.\">\n <For\n each={Object.keys(colors.ansi16).filter(color => color !== \"theme\")}>\n {(color, idx) => `${idx > 0 ? \" | \" : \"\"}\"${color}\"`}\n </For>\n </TypeDeclaration>\n <Spacing />\n <hbr />\n {code`\n /**\n * A recursive type that defines theme colors for console text.\n *\n * @remarks\n * This type allows for nested theme color definitions, enabling complex theming structures for console applications.\n */\n export type ThemeColors<T> = T extends object ? { [K in keyof T]: ThemeColors<T[K]>; } : ((text: string) => string); `}\n <Spacing />\n <TypeDeclaration\n export\n name=\"Colors\"\n doc=\"An object containing functions for coloring console applications. Each function corresponds to a terminal color. See {@link AnsiColor} for available colors.\">\n {code`Record<AnsiColor, (text: string) => string> & ThemeColors<ThemeColorsResolvedConfig>`}\n </TypeDeclaration>\n <Spacing />\n <TSDoc heading=\"An object containing functions for coloring console applications. Each function corresponds to a terminal color. See {@link Colors} for available colors.\" />\n <VarDeclaration\n const\n export\n name=\"colors\"\n type=\"Colors\"\n initializer={\n <>\n {code` {\n `}\n <hbr />\n <For\n each={Object.keys(colors.ansi16).filter(\n color => color !== \"theme\"\n )}\n comma\n doubleHardline\n enderPunctuation>\n {color => (\n <>\n {code`${color}: `}\n <ColorFunction\n ansi16={colors.ansi16[color as BaseAnsiStylesKeys]}\n ansi256={colors.ansi256[color as BaseAnsiStylesKeys]}\n ansi16m={colors.ansi16m[color as BaseAnsiStylesKeys]}\n />\n </>\n )}\n </For>\n <hbr />\n {code`text: {\n banner: {\n header: {\n primary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.header.primary\n }\n ansi256={\n colors.ansi256.theme.text.banner.header.primary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.header.primary\n }\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.header.secondary\n }\n ansi256={\n colors.ansi256.theme.text.banner.header.secondary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.header.secondary\n }\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.header.tertiary\n }\n ansi256={\n colors.ansi256.theme.text.banner.header.tertiary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.header.tertiary\n }\n />\n )}\n },\n footer: {\n primary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.footer.primary\n }\n ansi256={\n colors.ansi256.theme.text.banner.footer.primary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.footer.primary\n }\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.footer.secondary\n }\n ansi256={\n colors.ansi256.theme.text.banner.footer.secondary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.footer.secondary\n }\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.footer.tertiary\n }\n ansi256={\n colors.ansi256.theme.text.banner.footer.tertiary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.footer.tertiary\n }\n />\n )}\n },\n command: {\n primary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.command.primary\n }\n ansi256={\n colors.ansi256.theme.text.banner.command.primary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.command.primary\n }\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.command.secondary\n }\n ansi256={\n colors.ansi256.theme.text.banner.command.secondary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.command.secondary\n }\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.command.tertiary\n }\n ansi256={\n colors.ansi256.theme.text.banner.command.tertiary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.command.tertiary\n }\n />\n )},\n },\n title: {\n primary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.title.primary\n }\n ansi256={\n colors.ansi256.theme.text.banner.title.primary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.title.primary\n }\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.title.secondary\n }\n ansi256={\n colors.ansi256.theme.text.banner.title.secondary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.title.secondary\n }\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.title.tertiary\n }\n ansi256={\n colors.ansi256.theme.text.banner.title.tertiary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.title.tertiary\n }\n />\n )},\n },\n link: {\n primary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.link.primary\n }\n ansi256={\n colors.ansi256.theme.text.banner.link.primary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.link.primary\n }\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.link.secondary\n }\n ansi256={\n colors.ansi256.theme.text.banner.link.secondary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.link.secondary\n }\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.link.tertiary\n }\n ansi256={\n colors.ansi256.theme.text.banner.link.tertiary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.link.tertiary\n }\n />\n )},\n },\n description: {\n primary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.description\n .primary\n }\n ansi256={\n colors.ansi256.theme.text.banner.description\n .primary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.description\n .primary\n }\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.description\n .secondary\n }\n ansi256={\n colors.ansi256.theme.text.banner.description\n .secondary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.description\n .secondary\n }\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.banner.description\n .tertiary\n }\n ansi256={\n colors.ansi256.theme.text.banner.description\n .tertiary\n }\n ansi16m={\n colors.ansi16m.theme.text.banner.description\n .tertiary\n }\n />\n )},\n }\n },\n heading: {\n primary: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.heading.primary}\n ansi256={colors.ansi256.theme.text.heading.primary}\n ansi16m={colors.ansi16m.theme.text.heading.primary}\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.heading.secondary}\n ansi256={colors.ansi256.theme.text.heading.secondary}\n ansi16m={colors.ansi16m.theme.text.heading.secondary}\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.heading.tertiary}\n ansi256={colors.ansi256.theme.text.heading.tertiary}\n ansi16m={colors.ansi16m.theme.text.heading.tertiary}\n />\n )},\n },\n body: {\n primary: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.body.primary}\n ansi256={colors.ansi256.theme.text.body.primary}\n ansi16m={colors.ansi16m.theme.text.body.primary}\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.body.secondary}\n ansi256={colors.ansi256.theme.text.body.secondary}\n ansi16m={colors.ansi16m.theme.text.body.secondary}\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.body.tertiary}\n ansi256={colors.ansi256.theme.text.body.tertiary}\n ansi16m={colors.ansi16m.theme.text.body.tertiary}\n />\n )},\n link: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.body.link}\n ansi256={colors.ansi256.theme.text.body.link}\n ansi16m={colors.ansi16m.theme.text.body.link}\n />\n )}\n },\n message: {\n link: {\n help: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.message.link.help}\n ansi256={\n colors.ansi256.theme.text.message.link.help\n }\n ansi16m={\n colors.ansi16m.theme.text.message.link.help\n }\n />\n )},\n success: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.link.success\n }\n ansi256={\n colors.ansi256.theme.text.message.link.success\n }\n ansi16m={\n colors.ansi16m.theme.text.message.link.success\n }\n />\n )},\n info: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.message.link.info}\n ansi256={\n colors.ansi256.theme.text.message.link.info\n }\n ansi16m={\n colors.ansi16m.theme.text.message.link.info\n }\n />\n )},\n debug: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.message.link.debug}\n ansi256={\n colors.ansi256.theme.text.message.link.debug\n }\n ansi16m={\n colors.ansi16m.theme.text.message.link.debug\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.link.warning\n }\n ansi256={\n colors.ansi256.theme.text.message.link.warning\n }\n ansi16m={\n colors.ansi16m.theme.text.message.link.warning\n }\n />\n )},\n danger: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.link.danger\n }\n ansi256={\n colors.ansi256.theme.text.message.link.danger\n }\n ansi16m={\n colors.ansi16m.theme.text.message.link.danger\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.message.link.error}\n ansi256={\n colors.ansi256.theme.text.message.link.error\n }\n ansi16m={\n colors.ansi16m.theme.text.message.link.error\n }\n />\n )}\n },\n header: {\n help: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.header.help\n }\n ansi256={\n colors.ansi256.theme.text.message.header.help\n }\n ansi16m={\n colors.ansi16m.theme.text.message.header.help\n }\n />\n )},\n success: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.header.success\n }\n ansi256={\n colors.ansi256.theme.text.message.header.success\n }\n ansi16m={\n colors.ansi16m.theme.text.message.header.success\n }\n />\n )},\n info: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.header.info\n }\n ansi256={\n colors.ansi256.theme.text.message.header.info\n }\n ansi16m={\n colors.ansi16m.theme.text.message.header.info\n }\n />\n )},\n debug: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.header.debug\n }\n ansi256={\n colors.ansi256.theme.text.message.header.debug\n }\n ansi16m={\n colors.ansi16m.theme.text.message.header.debug\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.header.warning\n }\n ansi256={\n colors.ansi256.theme.text.message.header.warning\n }\n ansi16m={\n colors.ansi16m.theme.text.message.header.warning\n }\n />\n )},\n danger: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.header.danger\n }\n ansi256={\n colors.ansi256.theme.text.message.header.danger\n }\n ansi16m={\n colors.ansi16m.theme.text.message.header.danger\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.header.error\n }\n ansi256={\n colors.ansi256.theme.text.message.header.error\n }\n ansi16m={\n colors.ansi16m.theme.text.message.header.error\n }\n />\n )}\n },\n footer: {\n help: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.footer.help\n }\n ansi256={\n colors.ansi256.theme.text.message.footer.help\n }\n ansi16m={\n colors.ansi16m.theme.text.message.footer.help\n }\n />\n )},\n success: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.footer.success\n }\n ansi256={\n colors.ansi256.theme.text.message.footer.success\n }\n ansi16m={\n colors.ansi16m.theme.text.message.footer.success\n }\n />\n )},\n info: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.footer.info\n }\n ansi256={\n colors.ansi256.theme.text.message.footer.info\n }\n ansi16m={\n colors.ansi16m.theme.text.message.footer.info\n }\n />\n )},\n debug: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.footer.debug\n }\n ansi256={\n colors.ansi256.theme.text.message.footer.debug\n }\n ansi16m={\n colors.ansi16m.theme.text.message.footer.debug\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.footer.warning\n }\n ansi256={\n colors.ansi256.theme.text.message.footer.warning\n }\n ansi16m={\n colors.ansi16m.theme.text.message.footer.warning\n }\n />\n )},\n danger: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.footer.danger\n }\n ansi256={\n colors.ansi256.theme.text.message.footer.danger\n }\n ansi16m={\n colors.ansi16m.theme.text.message.footer.danger\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.footer.error\n }\n ansi256={\n colors.ansi256.theme.text.message.footer.error\n }\n ansi16m={\n colors.ansi16m.theme.text.message.footer.error\n }\n />\n )}\n },\n description: {\n help: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.description.help\n }\n ansi256={\n colors.ansi256.theme.text.message.description.help\n }\n ansi16m={\n colors.ansi16m.theme.text.message.description.help\n }\n />\n )},\n success: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.description\n .success\n }\n ansi256={\n colors.ansi256.theme.text.message.description\n .success\n }\n ansi16m={\n colors.ansi16m.theme.text.message.description\n .success\n }\n />\n )},\n info: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.description.info\n }\n ansi256={\n colors.ansi256.theme.text.message.description.info\n }\n ansi16m={\n colors.ansi16m.theme.text.message.description.info\n }\n />\n )},\n debug: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.description.debug\n }\n ansi256={\n colors.ansi256.theme.text.message.description\n .debug\n }\n ansi16m={\n colors.ansi16m.theme.text.message.description\n .debug\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.description\n .warning\n }\n ansi256={\n colors.ansi256.theme.text.message.description\n .warning\n }\n ansi16m={\n colors.ansi16m.theme.text.message.description\n .warning\n }\n />\n )},\n danger: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.description\n .danger\n }\n ansi256={\n colors.ansi256.theme.text.message.description\n .danger\n }\n ansi16m={\n colors.ansi16m.theme.text.message.description\n .danger\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.message.description.error\n }\n ansi256={\n colors.ansi256.theme.text.message.description\n .error\n }\n ansi16m={\n colors.ansi16m.theme.text.message.description\n .error\n }\n />\n )}\n }\n },\n usage: {\n bin: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.usage.bin}\n ansi256={colors.ansi256.theme.text.usage.bin}\n ansi16m={colors.ansi16m.theme.text.usage.bin}\n />\n )},\n command: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.usage.command}\n ansi256={colors.ansi256.theme.text.usage.command}\n ansi16m={colors.ansi16m.theme.text.usage.command}\n />\n )},\n dynamic: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.usage.dynamic}\n ansi256={colors.ansi256.theme.text.usage.dynamic}\n ansi16m={colors.ansi16m.theme.text.usage.dynamic}\n />\n )},\n options: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.usage.options}\n ansi256={colors.ansi256.theme.text.usage.options}\n ansi16m={colors.ansi16m.theme.text.usage.options}\n />\n )},\n args: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.usage.args}\n ansi256={colors.ansi256.theme.text.usage.args}\n ansi16m={colors.ansi16m.theme.text.usage.args}\n />\n )},\n description: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.usage.description}\n ansi256={colors.ansi256.theme.text.usage.description}\n ansi16m={colors.ansi16m.theme.text.usage.description}\n />\n )}\n },\n prompt: {\n icon: {\n active: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.prompt.icon.active}\n ansi256={\n colors.ansi256.theme.text.prompt.icon.active\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.icon.active\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.icon.warning\n }\n ansi256={\n colors.ansi256.theme.text.prompt.icon.warning\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.icon.warning\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.prompt.icon.error}\n ansi256={\n colors.ansi256.theme.text.prompt.icon.error\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.icon.error\n }\n />\n )},\n submitted: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.icon.submitted\n }\n ansi256={\n colors.ansi256.theme.text.prompt.icon.submitted\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.icon.submitted\n }\n />\n )},\n cancelled: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.icon.cancelled\n }\n ansi256={\n colors.ansi256.theme.text.prompt.icon.cancelled\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.icon.cancelled\n }\n />\n )},\n disabled: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.icon.disabled\n }\n ansi256={\n colors.ansi256.theme.text.prompt.icon.disabled\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.icon.disabled\n }\n />\n )}\n },\n message: {\n active: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.message.active\n }\n ansi256={\n colors.ansi256.theme.text.prompt.message.active\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.message.active\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.message.warning\n }\n ansi256={\n colors.ansi256.theme.text.prompt.message.warning\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.message.warning\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.message.error\n }\n ansi256={\n colors.ansi256.theme.text.prompt.message.error\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.message.error\n }\n />\n )},\n submitted: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.message.submitted\n }\n ansi256={\n colors.ansi256.theme.text.prompt.message.submitted\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.message.submitted\n }\n />\n )},\n cancelled: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.message.cancelled\n }\n ansi256={\n colors.ansi256.theme.text.prompt.message.cancelled\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.message.cancelled\n }\n />\n )},\n disabled: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.message.disabled\n }\n ansi256={\n colors.ansi256.theme.text.prompt.message.disabled\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.message.disabled\n }\n />\n )}\n },\n input: {\n active: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.input.active\n }\n ansi256={\n colors.ansi256.theme.text.prompt.input.active\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.input.active\n }\n />\n )},\n inactive: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.input.inactive\n }\n ansi256={\n colors.ansi256.theme.text.prompt.input.inactive\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.input.inactive\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.input.warning\n }\n ansi256={\n colors.ansi256.theme.text.prompt.input.warning\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.input.warning\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.prompt.input.error}\n ansi256={\n colors.ansi256.theme.text.prompt.input.error\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.input.error\n }\n />\n )},\n submitted: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.input.submitted\n }\n ansi256={\n colors.ansi256.theme.text.prompt.input.submitted\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.input.submitted\n }\n />\n )},\n cancelled: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.input.cancelled\n }\n ansi256={\n colors.ansi256.theme.text.prompt.input.cancelled\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.input.cancelled\n }\n />\n )},\n disabled: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.input.disabled\n }\n ansi256={\n colors.ansi256.theme.text.prompt.input.disabled\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.input.disabled\n }\n />\n )},\n placeholder: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.input.placeholder\n }\n ansi256={\n colors.ansi256.theme.text.prompt.input.placeholder\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.input.placeholder\n }\n />\n )}\n },\n description: {\n active: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.description.active\n }\n ansi256={\n colors.ansi256.theme.text.prompt.description\n .active\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.description\n .active\n }\n />\n )},\n inactive: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.description\n .inactive\n }\n ansi256={\n colors.ansi256.theme.text.prompt.description\n .inactive\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.description\n .inactive\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.description\n .warning\n }\n ansi256={\n colors.ansi256.theme.text.prompt.description\n .warning\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.description\n .warning\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.description.error\n }\n ansi256={\n colors.ansi256.theme.text.prompt.description.error\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.description.error\n }\n />\n )},\n submitted: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.description\n .submitted\n }\n ansi256={\n colors.ansi256.theme.text.prompt.description\n .submitted\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.description\n .submitted\n }\n />\n )},\n cancelled: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.description\n .cancelled\n }\n ansi256={\n colors.ansi256.theme.text.prompt.description\n .cancelled\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.description\n .cancelled\n }\n />\n )},\n disabled: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.prompt.description\n .disabled\n }\n ansi256={\n colors.ansi256.theme.text.prompt.description\n .disabled\n }\n ansi16m={\n colors.ansi16m.theme.text.prompt.description\n .disabled\n }\n />\n )}\n }\n },\n spinner: {\n icon: {\n active: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.spinner.icon.active\n }\n ansi256={\n colors.ansi256.theme.text.spinner.icon.active\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.icon.active\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.spinner.icon.warning\n }\n ansi256={\n colors.ansi256.theme.text.spinner.icon.warning\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.icon.warning\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.spinner.icon.error}\n ansi256={\n colors.ansi256.theme.text.spinner.icon.error\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.icon.error\n }\n />\n )},\n success: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.spinner.icon.success\n }\n ansi256={\n colors.ansi256.theme.text.spinner.icon.success\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.icon.success\n }\n />\n )},\n info: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.spinner.icon.info}\n ansi256={\n colors.ansi256.theme.text.spinner.icon.info\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.icon.info\n }\n />\n )},\n help: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.spinner.icon.help}\n ansi256={\n colors.ansi256.theme.text.spinner.icon.help\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.icon.help\n }\n />\n )}\n },\n message: {\n active: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.spinner.message.active\n }\n ansi256={\n colors.ansi256.theme.text.spinner.message.active\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.message.active\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.spinner.message.warning\n }\n ansi256={\n colors.ansi256.theme.text.spinner.message.warning\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.message.warning\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.spinner.message.error\n }\n ansi256={\n colors.ansi256.theme.text.spinner.message.error\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.message.error\n }\n />\n )},\n success: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.spinner.message.success\n }\n ansi256={\n colors.ansi256.theme.text.spinner.message.success\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.message.success\n }\n />\n )},\n info: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.spinner.message.info\n }\n ansi256={\n colors.ansi256.theme.text.spinner.message.info\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.message.info\n }\n />\n )},\n help: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.text.spinner.message.help\n }\n ansi256={\n colors.ansi256.theme.text.spinner.message.help\n }\n ansi16m={\n colors.ansi16m.theme.text.spinner.message.help\n }\n />\n )}\n }\n },\n tags: { `}\n <For\n each={Object.keys(theme.colors.text.tags)}\n joiner={\n <>\n {code`, `}\n <hbr />\n </>\n }>\n {key =>\n code`${key === \"$default\" ? \"$default\" : camelCase(key)}: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.tags[key] as AnsiWrappers}\n ansi256={\n colors.ansi256.theme.text.tags[key] as AnsiWrappers\n }\n ansi16m={\n colors.ansi16m.theme.text.tags[key] as AnsiWrappers\n }\n />\n )}`\n }\n </For>\n {code` }\n },\n border: {\n banner: {\n outline: {\n primary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.banner.outline.primary\n }\n ansi256={\n colors.ansi256.theme.border.banner.outline.primary\n }\n ansi16m={\n colors.ansi16m.theme.border.banner.outline.primary\n }\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.banner.outline\n .secondary\n }\n ansi256={\n colors.ansi256.theme.border.banner.outline\n .secondary\n }\n ansi16m={\n colors.ansi16m.theme.border.banner.outline\n .secondary\n }\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.banner.outline.tertiary\n }\n ansi256={\n colors.ansi256.theme.border.banner.outline\n .tertiary\n }\n ansi16m={\n colors.ansi16m.theme.border.banner.outline\n .tertiary\n }\n />\n )}\n },\n divider: {\n primary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.banner.divider.primary\n }\n ansi256={\n colors.ansi256.theme.border.banner.divider.primary\n }\n ansi16m={\n colors.ansi16m.theme.border.banner.divider.primary\n }\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.banner.divider\n .secondary\n }\n ansi256={\n colors.ansi256.theme.border.banner.divider\n .secondary\n }\n ansi16m={\n colors.ansi16m.theme.border.banner.divider\n .secondary\n }\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.banner.divider.tertiary\n }\n ansi256={\n colors.ansi256.theme.border.banner.divider\n .tertiary\n }\n ansi16m={\n colors.ansi16m.theme.border.banner.divider\n .tertiary\n }\n />\n )}\n }\n },\n app: {\n table: {\n primary: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.border.app.table.primary}\n ansi256={\n colors.ansi256.theme.border.app.table.primary\n }\n ansi16m={\n colors.ansi16m.theme.border.app.table.primary\n }\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.app.table.secondary\n }\n ansi256={\n colors.ansi256.theme.border.app.table.secondary\n }\n ansi16m={\n colors.ansi16m.theme.border.app.table.secondary\n }\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.border.app.table.tertiary}\n ansi256={\n colors.ansi256.theme.border.app.table.tertiary\n }\n ansi16m={\n colors.ansi16m.theme.border.app.table.tertiary\n }\n />\n )}\n },\n divider: {\n primary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.app.divider.primary\n }\n ansi256={\n colors.ansi256.theme.border.app.divider.primary\n }\n ansi16m={\n colors.ansi16m.theme.border.app.divider.primary\n }\n />\n )},\n secondary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.app.divider.secondary\n }\n ansi256={\n colors.ansi256.theme.border.app.divider.secondary\n }\n ansi16m={\n colors.ansi16m.theme.border.app.divider.secondary\n }\n />\n )},\n tertiary: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.app.divider.tertiary\n }\n ansi256={\n colors.ansi256.theme.border.app.divider.tertiary\n }\n ansi16m={\n colors.ansi16m.theme.border.app.divider.tertiary\n }\n />\n )}\n }\n },\n message: {\n outline: {\n help: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.outline.help\n }\n ansi256={\n colors.ansi256.theme.border.message.outline.help\n }\n ansi16m={\n colors.ansi16m.theme.border.message.outline.help\n }\n />\n )},\n success: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.outline.success\n }\n ansi256={\n colors.ansi256.theme.border.message.outline.success\n }\n ansi16m={\n colors.ansi16m.theme.border.message.outline.success\n }\n />\n )},\n info: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.outline.info\n }\n ansi256={\n colors.ansi256.theme.border.message.outline.info\n }\n ansi16m={\n colors.ansi16m.theme.border.message.outline.info\n }\n />\n )},\n debug: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.outline.debug\n }\n ansi256={\n colors.ansi256.theme.border.message.outline.debug\n }\n ansi16m={\n colors.ansi16m.theme.border.message.outline.debug\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.outline.warning\n }\n ansi256={\n colors.ansi256.theme.border.message.outline.warning\n }\n ansi16m={\n colors.ansi16m.theme.border.message.outline.warning\n }\n />\n )},\n danger: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.outline.danger\n }\n ansi256={\n colors.ansi256.theme.border.message.outline.danger\n }\n ansi16m={\n colors.ansi16m.theme.border.message.outline.danger\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.outline.error\n }\n ansi256={\n colors.ansi256.theme.border.message.outline.error\n }\n ansi16m={\n colors.ansi16m.theme.border.message.outline.error\n }\n />\n )}\n },\n divider: {\n help: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.divider.help\n }\n ansi256={\n colors.ansi256.theme.border.message.divider.help\n }\n ansi16m={\n colors.ansi16m.theme.border.message.divider.help\n }\n />\n )},\n success: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.divider.success\n }\n ansi256={\n colors.ansi256.theme.border.message.divider.success\n }\n ansi16m={\n colors.ansi16m.theme.border.message.divider.success\n }\n />\n )},\n info: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.divider.info\n }\n ansi256={\n colors.ansi256.theme.border.message.divider.info\n }\n ansi16m={\n colors.ansi16m.theme.border.message.divider.info\n }\n />\n )},\n debug: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.divider.debug\n }\n ansi256={\n colors.ansi256.theme.border.message.divider.debug\n }\n ansi16m={\n colors.ansi16m.theme.border.message.divider.debug\n }\n />\n )},\n warning: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.divider.warning\n }\n ansi256={\n colors.ansi256.theme.border.message.divider.warning\n }\n ansi16m={\n colors.ansi16m.theme.border.message.divider.warning\n }\n />\n )},\n danger: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.divider.danger\n }\n ansi256={\n colors.ansi256.theme.border.message.divider.danger\n }\n ansi16m={\n colors.ansi16m.theme.border.message.divider.danger\n }\n />\n )},\n error: ${(\n <ColorFunction\n ansi16={\n colors.ansi16.theme.border.message.divider.error\n }\n ansi256={\n colors.ansi256.theme.border.message.divider.error\n }\n ansi16m={\n colors.ansi16m.theme.border.message.divider.error\n }\n />\n )}\n }\n }\n }\n }\n`}\n </>\n }\n />\n </>\n );\n}\n\n/**\n * A component to generate the `splitText` function in the `shell-shock:console` builtin module.\n */\nexport function SplitTextFunctionDeclaration() {\n return (\n <>\n <FunctionDeclaration\n name=\"adjustIndex\"\n parameters={[\n {\n name: \"line\",\n type: \"string\"\n },\n {\n name: \"index\",\n type: \"number\"\n }\n ]}\n returnType=\"number\">\n {code`let adjustedIndex = 0;\n\n const segments = line.match(/\\\\x1b\\\\[(\\\\d|;)+m.*\\\\x1b\\\\[(\\\\d|;)+m/gi);\n if (segments && segments.length > 0) {\n segments.reduce((count, matched) => {\n if (count < index) {\n const stripped = stripAnsi(matched);\n if (count + stripped.length < index) {\n count += stripped.length;\n adjustedIndex += matched.length;\n } else {\n adjustedIndex += index - count + (matched.slice(0, index - count).match(/\\\\x1b\\\\[(\\\\d|;)+m/g)?.join(\"\")?.length ?? 0);\n count = index;\n }\n }\n\n return count;\n }, 0);\n } else {\n adjustedIndex = index;\n }\n\n return adjustedIndex - (line.slice(0, adjustedIndex).match(/\\\\x1b\\\\[/g)?.length ?? 0); `}\n </FunctionDeclaration>\n <Spacing />\n <FunctionDeclaration\n name=\"breakLine\"\n parameters={[\n {\n name: \"line\",\n type: \"string\"\n },\n {\n name: \"index\",\n type: \"number\"\n }\n ]}\n returnType=\"[string, string]\">\n {code`const first = line.slice(0, index);\n const second = line.slice(index);\n\n // Match all ANSI escape sequences in the first string\n const ansiRegex = /[\\\\x1b\\\\u009b][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?(?:\\\\u0007))|(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))/g;\n\n const openCodes: string[] = [];\n const closeCodes: string[] = [];\n let match: RegExpExecArray | null;\n\n while ((match = ansiRegex.exec(first)) !== null) {\n const code = match[0];\n // Check if this is a reset/close code (e.g., \\\\x1b[0m, \\\\x1b[39m, \\\\x1b[49m, etc.)\n if (/\\\\x1b\\\\[(?:0|22|23|24|27|28|29|39|49)m/.test(code)) {\n // A close/reset code cancels the last open code\n openCodes.pop();\n closeCodes.pop();\n } else {\n openCodes.push(code);\n // Derive a close code: map SGR open codes to their reset counterparts\n const sgrMatch = code.match(/\\\\x1b\\\\[(\\\\d+)m/);\n if (sgrMatch) {\n const n = parseInt(sgrMatch[1]!, 10);\n let closeCode: string;\n if (n >= 30 && n <= 37) closeCode = \"\\\\x1b[39m\";\n else if (n >= 40 && n <= 47) closeCode = \"\\\\x1b[49m\";\n else if (n >= 90 && n <= 97) closeCode = \"\\\\x1b[39m\";\n else if (n >= 100 && n <= 107) closeCode = \"\\\\x1b[49m\";\n else if (n === 1) closeCode = \"\\\\x1b[22m\";\n else if (n === 2) closeCode = \"\\\\x1b[22m\";\n else if (n === 3) closeCode = \"\\\\x1b[23m\";\n else if (n === 4) closeCode = \"\\\\x1b[24m\";\n else if (n === 7) closeCode = \"\\\\x1b[27m\";\n else if (n === 8) closeCode = \"\\\\x1b[28m\";\n else if (n === 9) closeCode = \"\\\\x1b[29m\";\n else closeCode = \"\\\\x1b[0m\";\n closeCodes.push(closeCode);\n } else {\n closeCodes.push(\"\\\\x1b[0m\");\n }\n }\n }\n\n // Append close codes to the end of \"first\" (in reverse order)\n const closeSequence = closeCodes.slice().reverse().join(\"\");\n // Prepend open codes to the start of \"second\"\n const openSequence = openCodes.join(\"\");\n\n return [first.replace(/^\\\\s+/, \"\").replace(/\\\\s+$/, \"\") + closeSequence, openSequence + second.replace(/^\\\\s+/, \"\").replace(/\\\\s+$/, \"\")]; `}\n </FunctionDeclaration>\n <Spacing />\n <TSDoc heading=\"Split text into multiple lines based on a maximum length.\">\n <TSDocRemarks>\n {`This function splits the provided text into multiple lines based on the specified maximum length, ensuring that words are not broken in the middle.`}\n </TSDocRemarks>\n <hbr />\n <TSDocParam name=\"text\">\n {`The text to split into multiple lines.`}\n </TSDocParam>\n <TSDocParam name=\"maxLength\">\n {`The maximum length of each line.`}\n </TSDocParam>\n </TSDoc>\n <FunctionDeclaration\n export\n name=\"splitText\"\n parameters={[\n {\n name: \"text\",\n type: \"string\"\n },\n {\n name: \"maxLength\",\n type: \"number | SizeToken\"\n }\n ]}>\n {code`\n let line = text;\n let result = [] as string[];\n\n const calculatedMaxLength = isSizeToken(maxLength) ? calculateWidth(maxLength) : maxLength;\n while (stripAnsi(line).length > calculatedMaxLength || line.indexOf(\"\\\\n\") !== -1) {\n if (line.indexOf(\"\\\\n\") !== -1) {\n result.push(...splitText(line.slice(0, line.indexOf(\"\\\\n\")).replace(/(\\\\r)?\\\\n/, \"\"), calculatedMaxLength));\n line = line.indexOf(\"\\\\n\") + 1 < line.length\n ? line.slice(line.indexOf(\"\\\\n\") + 1)\n : \"\";\n } else {\n const index = [\" \", \"/\", \".\", \",\", \"-\", \":\", \"|\", \"@\", \"+\"].reduce((ret, split) => {\n let current = ret;\n while (stripAnsi(line).indexOf(split, current + 1) !== -1 && stripAnsi(line).indexOf(split, current + 1) <= calculatedMaxLength) {\n current = line.indexOf(split, adjustIndex(line, current + 1));\n }\n\n return current;\n }, -1);\n if (index === -1) {\n break;\n }\n\n const lines = breakLine(line, index);\n result.push(lines[0]);\n line = lines[1];\n }\n }\n\n while (stripAnsi(line).length > calculatedMaxLength) {\n const lines = breakLine(line, calculatedMaxLength);\n result.push(lines[0]);\n line = lines[1];\n }\n\n result.push(line);\n return result;\n`}\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * A component to generate the `writeLine` function in the `shell-shock:console` builtin module.\n */\nexport function WriteLineFunctionDeclaration() {\n const theme = useTheme();\n\n return (\n <>\n <InterfaceDeclaration\n export\n name=\"WriteLineOptions\"\n doc=\"Options for writing a line to the console.\">\n <TSDoc heading=\"Padding to apply to the line\">\n <TSDocRemarks>\n {`The amount of padding (in spaces) to apply to the line when writing to the console. This value is applied to both the left and right sides of the line. If not specified, the default padding defined in the current theme configuration will be used.`}\n </TSDocRemarks>\n </TSDoc>\n <InterfaceMember name=\"padding\" optional type=\"number\" />\n <hbr />\n <TSDoc heading=\"Console function to use for writing the line\">\n <TSDocRemarks>\n {`The console function to use for writing the line. If not specified, the default console function \\`console.log\\` will be used.`}\n </TSDocRemarks>\n <hbr />\n <TSDocDefaultValue\n type={ReflectionKind.method}\n defaultValue={`\\`console.log\\``}\n />\n </TSDoc>\n <InterfaceMember\n name=\"consoleFn\"\n optional\n type=\"(text: string) => void\"\n />\n <hbr />\n <TSDoc heading=\"Color of the line text\">\n <TSDocRemarks>\n {`The color to apply to the line text when writing to the console. This can be one of the predefined color themes: \"primary\", \"secondary\", or \"tertiary\". If not specified, no specific coloring will be applied to the text (the default/system terminal text color will likely be used).`}\n </TSDocRemarks>\n <hbr />\n </TSDoc>\n <InterfaceMember\n name=\"color\"\n optional\n type='\"primary\" | \"secondary\" | \"tertiary\"'\n />\n </InterfaceDeclaration>\n <Spacing />\n <TSDoc heading=\"Write a line to the console.\">\n <TSDocRemarks>\n {`This function writes a line to the console, applying the appropriate padding as defined in the current theme configuration and wrapping as needed.`}\n </TSDocRemarks>\n <hbr />\n <TSDocParam name=\"text\">\n {`The line text to write to the console.`}\n </TSDocParam>\n <TSDocParam name=\"options\">{`The options to apply when writing the line to the console.`}</TSDocParam>\n </TSDoc>\n <FunctionDeclaration\n export\n name=\"writeLine\"\n parameters={[\n {\n name: \"text\",\n type: \"string | number | boolean | null\",\n optional: true\n },\n {\n name: \"options\",\n type: \"WriteLineOptions\",\n default: \"{}\"\n }\n ]}>\n {code`const consoleFn = options.consoleFn ?? console.log;\n const color = options.color;\nif (text === undefined || text === null || text === \"\") {\n consoleFn(\"\");\n return;\n}\n\nconsoleFn(\\`\\${\" \".repeat(Math.max(options.padding ?? ${\n theme.padding.app\n }, 0))}\\${color ? colors.text.body[color](String(text)) : String(text)}\\`);\n`}\n </FunctionDeclaration>\n </>\n );\n}\n\nexport type MessageFunctionDeclarationProps = Partial<\n Pick<FunctionDeclarationProps, \"parameters\">\n> & {\n type:\n | \"success\"\n | \"help\"\n | \"info\"\n | \"debug\"\n | \"verbose\"\n | \"warn\"\n | \"danger\"\n | \"error\";\n variant: ThemeMessageVariant;\n color?: ThemeMessageVariant;\n consoleFnName: \"log\" | \"info\" | \"warn\" | \"error\" | \"debug\";\n description: string;\n prefix?: Children;\n timestamp?: boolean;\n};\n\n/**\n * A component to generate the message functions in the `shell-shock:console` builtin module.\n */\nexport function MessageFunctionDeclaration(\n props: MessageFunctionDeclarationProps\n) {\n const {\n type,\n variant,\n consoleFnName,\n description,\n prefix,\n parameters,\n timestamp,\n color = variant\n } = props;\n\n const theme = useTheme();\n\n return (\n <>\n <TSDoc\n heading={`Write ${getIndefiniteArticle(\n description\n )} ${description} message to the console.`}>\n <TSDocRemarks>\n {`This function initializes the Powerlines environment configuration object.`}\n </TSDocRemarks>\n <hbr />\n <TSDocParam name=\"message\">\n {`The message to write to the console.`}\n </TSDocParam>\n </TSDoc>\n <FunctionDeclaration\n export\n name={type}\n parameters={\n parameters ?? [\n {\n name: \"message\",\n type: \"string\",\n optional: false\n }\n ]\n }>\n <Show when={Boolean(prefix)}>\n {prefix}\n <hbr />\n <hbr />\n </Show>\n {code`\n if (!message) {\n return;\n }\n\n ${\n !theme.labels.message.footer[variant] && timestamp\n ? `const timestamp = \\`\\${colors.text.message.footer.${\n color\n }(new Date().toLocaleDateString())} \\${colors.border.message.outline.${\n color\n }(\"${\n theme.borderStyles.message.outline[variant].bottom\n }\")} \\${colors.text.message.footer.${\n color\n }(new Date().toLocaleTimeString())}\\`; `\n : \"\"\n }\n\n writeLine(colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].topLeft\n }\") + ${\n theme.labels.message.header[variant] ||\n theme.icons.message.header[variant]\n ? `colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].top\n }\".repeat(4)) + \" \" + ${\n theme.icons.message.header[variant]\n ? `colors.border.message.outline.${color}(\"${\n theme.icons.message.header[variant]\n }\") + \" \" +`\n : \"\"\n } colors.bold(colors.text.message.header.${color}(\"${\n theme.labels.message.header[variant]\n }\")) + \" \" + colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].top\n }\".repeat(Math.max(process.stdout.columns - ${\n Math.max(theme.padding.app, 0) * 2 +\n theme.borderStyles.message.outline[variant].topLeft.length +\n 4 +\n (theme.icons.message.header[variant]\n ? 2 + (theme.labels.message.header[variant] ? 0 : 1)\n : 0) +\n (theme.labels.message.header[variant]\n ? theme.labels.message.header[variant].length + 2\n : 0) +\n theme.borderStyles.message.outline[variant].topRight.length\n }, 0)))`\n : `colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].top\n }\".repeat(Math.max(process.stdout.columns - ${\n Math.max(theme.padding.app, 0) * 2 +\n theme.borderStyles.message.outline[variant].topLeft.length +\n theme.borderStyles.message.outline[variant].topRight.length\n }, 0)))`\n } + colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].topRight\n }\"), { consoleFn: console.${consoleFnName} });\n splitText(\n message,\n Math.max(process.stdout.columns - ${\n (Math.max(theme.padding.app, 0) +\n Math.max(theme.padding.message, 0)) *\n 2 +\n theme.borderStyles.message.outline[variant].left.length +\n theme.borderStyles.message.outline[variant].right.length\n }, 0)\n ).forEach((line) => {\n writeLine(colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].left +\n \" \".repeat(Math.max(theme.padding.message, 0))\n }\") + colors.text.message.description.${color}(line) + \" \".repeat(Math.max(process.stdout.columns - (stripAnsi(line).length + ${\n Math.max(theme.padding.app, 0) * 2 +\n Math.max(theme.padding.message, 0) +\n theme.borderStyles.message.outline[variant].left.length +\n theme.borderStyles.message.outline[variant].right.length\n }), 0)) + colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].right\n }\"), { consoleFn: console.${consoleFnName} });\n });\n writeLine(colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].bottomLeft\n }\") + ${\n theme.labels.message.footer[variant] || timestamp\n ? `colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].bottom\n }\".repeat(Math.max(process.stdout.columns - ${\n Math.max(theme.padding.app, 0) * 2 +\n 4 +\n (theme.labels.message.footer[variant]\n ? theme.labels.message.footer[variant].length + 2\n : 0) +\n theme.borderStyles.message.outline[variant].bottomLeft.length +\n theme.borderStyles.message.outline[variant].bottomRight.length\n }${\n !theme.labels.message.footer[variant] && timestamp\n ? \" - (stripAnsi(timestamp).length + 2)\"\n : \"\"\n }, 0))) + \" \" + ${`colors.bold(colors.text.message.footer.${color}(${\n theme.labels.message.footer[variant]\n ? `\"${theme.labels.message.footer[variant]}\"`\n : timestamp && \"timestamp\"\n }))`} + \" \" + colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].bottom\n }\".repeat(4))`\n : `colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].bottom\n }\".repeat(Math.max(process.stdout.columns - ${\n Math.max(theme.padding.app, 0) * 2 +\n theme.borderStyles.message.outline[variant].bottomLeft.length +\n theme.borderStyles.message.outline[variant].bottomRight.length\n }, 0)))`\n } + colors.border.message.outline.${color}(\"${\n theme.borderStyles.message.outline[variant].bottomRight\n }\"), { consoleFn: console.${consoleFnName} });\n`}\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * A component to generate the `wrapAnsi` function in the `shell-shock:console` builtin module.\n */\nexport function WrapAnsiFunction() {\n return (\n <>\n <TSDoc heading=\"Applies ANSI escape codes to a string.\">\n <TSDocRemarks>\n {`Split text by /\\\\\\\\x1b[\\\\[|\\\\]][0-9;]*m/ and wrap non-ANSI parts with open/closing tags.`}\n </TSDocRemarks>\n\n <TSDocExample>\n {`const result = wrapAnsi(\"Hello\\\\\\\\x1b[31mWorld\\\\\\\\x1b[0mAgain\", \"\\\\\\\\x1b[36m\", \"\\\\\\\\x1b[39\");\\nconsole.log(result); // \"\\\\\\\\x1b[36mHello\\\\\\\\x1b[39\\\\\\\\x1b[31mWorld\\\\\\\\x1b[0m\\\\\\\\x1b[36mAgain\\\\\\\\x1b[39\"`}\n </TSDocExample>\n\n <TSDocParam name=\"text\">\n {`The text to apply ANSI codes to.`}\n </TSDocParam>\n <TSDocParam name=\"open\">{`The opening ANSI code.`}</TSDocParam>\n <TSDocParam name=\"close\">{`The closing ANSI code.`}</TSDocParam>\n <TSDocReturns>{`The text with ANSI codes applied.`}</TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n name=\"wrapAnsi\"\n parameters={[\n {\n name: \"text\",\n type: \"string | number\",\n optional: false\n },\n {\n name: \"open\",\n type: \"string\",\n optional: false\n },\n { name: \"close\", type: \"string\", optional: false }\n ]}>\n {code`const str = String(text);\n const tokens = [] as string[];\n\n let last = 0;\n let match: RegExpExecArray | null;\n while ((match = /\\\\\\\\x1b[\\\\[|\\\\]][0-9;]*m/g.exec(str)) !== null) {\n if (match.index > last) tokens.push(str.slice(last, match.index));\n tokens.push(match[0]);\n last = match.index + match[0].length;\n }\n\n if (last < str.length) {\n tokens.push(str.slice(last));\n }\n\n let result = \"\";\n for (let i = 0; i < tokens.length; i++) {\n const seg = tokens[i]!;\n if (/^\\\\\\\\x1b[\\\\[|\\\\]][0-9;]*m$/.test(seg)) {\n result += seg;\n continue;\n }\n\n if (!seg) {\n continue;\n }\n\n result += i > 0 && /^\\\\\\\\x1b[\\\\[|\\\\]][0-9;]*m$/.test(tokens[i - 1]!) && i + 1 < tokens.length && /^\\\\\\\\x1b[\\\\[|\\\\]][0-9;]*m$/.test(tokens[i + 1]!)\n ? seg\n : \\`\\${open}\\${seg}\\${close}\\`;\n }\n\n return result;\n`}\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * A component to generate the `stripAnsi` function in the `shell-shock:console` builtin module.\n */\nexport function StripAnsiFunctionDeclaration() {\n return (\n <>\n <TSDoc heading=\"Removes ANSI escape codes from a string.\">\n <TSDocExample>\n {`const result = stripAnsi(\"Hello\\\\\\\\x1b[31mWorld\\\\\\\\x1b[0mAgain\"); // \"HelloWorldAgain\"`}\n </TSDocExample>\n\n <TSDocParam name=\"text\">\n {`The text to strip ANSI codes from.`}\n </TSDocParam>\n <TSDocReturns>{`The text with ANSI codes removed.`}</TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n export\n name=\"stripAnsi\"\n parameters={[\n {\n name: \"text\",\n type: \"string | number\",\n optional: false\n }\n ]}>\n {code`return String(text).replace(new RegExp([\n String.raw\\`[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\\`,\n String.raw\\`(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))\\`\n ].join(\"|\"), \"g\"), \"\");`}\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * A component to generate the `stripAnsi` function in the `shell-shock:console` builtin module.\n */\nexport function DividerFunctionDeclaration() {\n const theme = useTheme();\n\n return (\n <>\n <InterfaceDeclaration\n export\n name=\"DividerOptions\"\n doc=\"Options for formatting the divider line written to console.\">\n <InterfaceMember\n name=\"width\"\n optional\n type=\"number\"\n doc=\"The width of the divider line. If not specified, the divider will span the full width of the console, minus the padding.\"\n />\n <hbr />\n <TSDoc heading=\"The border of the divider line. Can be 'primary', 'secondary', 'tertiary', or 'none'. If not specified, the default border style will be used.\">\n <TSDocRemarks>\n {`The value provided will determine the border style and color based on the current theme configuration.`}\n </TSDocRemarks>\n <TSDocDefaultValue\n type={ReflectionKind.string}\n defaultValue=\"primary\"\n />\n </TSDoc>\n <InterfaceMember\n name=\"border\"\n optional\n type='\"primary\" | \"secondary\" | \"tertiary\"'\n doc=\"The border style/color of the divider line. Can be 'primary', 'secondary', 'tertiary', or 'none'. If not specified, the default border style will be used.\"\n />\n <hbr />\n <TSDoc heading=\"Padding to apply to the line\">\n <TSDocRemarks>\n {`The amount of padding (in spaces) to apply to the line when writing to the console. This value is applied to both the left and right sides of the line. If not specified, the default padding defined in the current theme configuration will be used.`}\n </TSDocRemarks>\n <TSDocDefaultValue\n type={ReflectionKind.number}\n defaultValue={theme.padding.app * 4}\n />\n </TSDoc>\n <InterfaceMember name=\"padding\" optional type=\"number\" />\n </InterfaceDeclaration>\n <Spacing />\n <TSDoc heading=\"Write a divider line to the console.\">\n <TSDocExample>\n {`divider({ width: 50, border: \"primary\" }); // Writes a divider line of width 50 with primary border.`}\n </TSDocExample>\n <TSDocParam name=\"options\">\n {`Options for formatting the divider line.`}\n </TSDocParam>\n </TSDoc>\n <FunctionDeclaration\n export\n name=\"divider\"\n parameters={[\n {\n name: \"options\",\n type: \"DividerOptions\",\n optional: false\n }\n ]}>\n {code`const padding = options.padding ?? ${Math.max(theme.padding.app, 1) * 4};\n const width = options.width ?? (process.stdout.columns - (Math.max(padding, 0) * 2));\n const border = options.border === \"tertiary\" ? colors.border.app.divider.tertiary(\"${\n theme.borderStyles.app.divider.tertiary.top\n }\") : options.border === \"secondary\" ? colors.border.app.divider.secondary(\"${\n theme.borderStyles.app.divider.secondary.top\n }\") : colors.border.app.divider.primary(\"${\n theme.borderStyles.app.divider.primary.top\n }\");\n\n writeLine(\" \".repeat(Math.max(padding - ${theme.padding.app}, 0)) + border.repeat(Math.max(width / ${\n theme.borderStyles.app.divider.primary.top.length ?? 1\n }, 0)));\n `}\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * A component to generate the `link` function in the `shell-shock:console` builtin module.\n */\nexport function LinkFunctionDeclaration() {\n return (\n <>\n <TSDoc heading=\"Render a hyperlink in the console.\">\n <TSDocParam name=\"url\">\n {`The URL to render as a hyperlink.`}\n </TSDocParam>\n <TSDocParam name=\"text\">\n {`The text to display for the link. If not provided, the URL will be used as the text.`}\n </TSDocParam>\n <TSDocReturns>{`The formatted hyperlink string.`}</TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n export\n name=\"link\"\n parameters={[\n {\n name: \"url\",\n type: \"string\",\n optional: false\n },\n { name: \"text\", type: \"string\", optional: true }\n ]}>\n <IfStatement condition={code`isHyperlinkSupported()`}>\n {code`return \\`\\\\x1b]8;;\\${url}\\\\u0007\\${text ?? url}\\\\x1b]8;;\\\\u0007\\`;`}\n </IfStatement>\n <hbr />\n <IfStatement condition={code`isColorSupported`}>\n {code`return colors.underline(colors.text.body.link(\\`\\${url}\\`));`}\n </IfStatement>\n <hbr />\n {code`return \\`\\${url}\\`;`}\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * A component to generate the `spinner` function in the `shell-shock:console` builtin module.\n */\nexport function SpinnerFunctionDeclaration() {\n const theme = useTheme();\n\n return (\n <>\n <TypeDeclaration name=\"WriteStream\">\n {`NodeJS.WriteStream;`}\n </TypeDeclaration>\n <Spacing />\n <VarDeclaration\n const\n name=\"activeHooksPerStream\"\n initializer=\"new Set();\"\n />\n <Spacing />\n <InterfaceDeclaration\n export\n name=\"SpinnerOptions\"\n doc=\"Options for configuring the spinner.\">\n <InterfaceMember\n name=\"message\"\n optional\n type=\"string\"\n doc=\"The message text to display next to the spinner. Defaults to an empty string.\"\n />\n <hbr />\n <InterfaceMember\n name=\"stream\"\n optional\n type=\"WriteStream\"\n doc=\"The output stream to write the spinner to. Defaults to process.stderr.\"\n />\n <hbr />\n <InterfaceMember\n name=\"spinner\"\n optional\n type=\"ThemeSpinnerResolvedConfig | SpinnerPreset\"\n doc=\"The spinner animation to use. Should be an object with a 'frames' property (an array of strings representing each frame of the animation) and an 'interval' property (the time in milliseconds between each frame). If not specified, a default spinner animation will be used.\"\n />\n </InterfaceDeclaration>\n\n <Spacing />\n <ClassDeclaration name=\"Spinner\">\n <ClassField name=\"frames\" isPrivateMember type=\"string[]\" />\n <hbr />\n <ClassField name=\"interval\" isPrivateMember type=\"number\" />\n <hbr />\n <ClassField name=\"currentFrame\" isPrivateMember type=\"number\">\n {code`-1`}\n </ClassField>\n <hbr />\n <ClassField\n name=\"timer\"\n isPrivateMember\n optional\n type=\"NodeJS.Timeout\"\n />\n <hbr />\n <ClassField name=\"message\" isPrivateMember type=\"string\">\n {code`\"\"`}\n </ClassField>\n <hbr />\n <ClassField name=\"stream\" isPrivateMember type=\"WriteStream\">\n {code`process.stderr`}\n </ClassField>\n <hbr />\n <ClassField name=\"lines\" isPrivateMember type=\"number\">\n {code`0`}\n </ClassField>\n <hbr />\n <ClassField\n name=\"exitHandlerBound\"\n isPrivateMember\n type=\"(signal: any) => void\">\n {code`() => {}`}\n </ClassField>\n <hbr />\n <ClassField name=\"lastSpinnerFrameTime\" isPrivateMember type=\"number\">\n {code`0`}\n </ClassField>\n <hbr />\n <ClassField name=\"isSpinning\" isPrivateMember type=\"boolean\">\n {code`false`}\n </ClassField>\n <hbr />\n <ClassField\n name=\"hookedStreams\"\n isPrivateMember\n type='Map<WriteStream, { write?: WriteStream[\"write\"]; originalWrite: WriteStream[\"write\"]; hookedWrite: WriteStream[\"write\"] }>'>\n {code`new Map()`}\n </ClassField>\n <hbr />\n <ClassField name=\"isInternalWrite\" isPrivateMember type=\"boolean\">\n {code`false`}\n </ClassField>\n <hbr />\n <ClassField name=\"isDeferringRender\" isPrivateMember type=\"boolean\">\n {code`false`}\n </ClassField>\n <Spacing />\n {code`constructor(options: SpinnerOptions = {}) {\n const spinner = (typeof options.spinner === \"string\" ? resolveSpinner(options.spinner as SpinnerPreset) : options.spinner) ?? ${JSON.stringify(\n theme.spinner\n )};\n this.#frames = spinner.frames;\n this.#interval = spinner.interval;\n\n if (options.message) {\n this.#message = options.message;\n }\n if (options.stream) {\n this.#stream = options.stream;\n }\n\n this.#exitHandlerBound = this.#exitHandler.bind(this);\n }\n\n #internalWrite(action: () => unknown) {\n this.#isInternalWrite = true;\n try {\n return action();\n } finally {\n this.#isInternalWrite = false;\n }\n }\n\n #stringifyChunk(chunk: string | Uint8Array<ArrayBufferLike> | ArrayBufferLike) {\n if (chunk === undefined || chunk === null) {\n return \"\";\n }\n\n if (typeof chunk === \"string\") {\n return chunk;\n }\n\n if (Buffer.isBuffer(chunk) || ArrayBuffer.isView(chunk)) {\n return Buffer.from(chunk).toString(\"utf8\");\n }\n\n return String(chunk);\n }\n\n #withSynchronizedOutput(action: () => unknown) {\n if (!isInteractive) {\n return action();\n }\n\n try {\n this.#write(\"\\\\u001B[?2026h\");\n return action();\n } finally {\n this.#write(\"\\\\u001B[?2026l\");\n }\n }\n\n #hookStream(stream: WriteStream) {\n if (!stream || this.#hookedStreams.has(stream) || typeof stream.write !== \"function\") {\n return;\n }\n\n if (activeHooksPerStream.has(stream)) {\n return;\n }\n\n const originalWrite = stream.write;\n const hookedWrite = ((...writeArguments: Parameters<WriteStream[\"write\"]>) => this.#hookedWrite(stream, originalWrite, writeArguments)) as WriteStream[\"write\"];\n\n this.#hookedStreams.set(stream, {originalWrite, hookedWrite});\n activeHooksPerStream.add(stream);\n stream.write = hookedWrite;\n }\n\n #installHook() {\n if (!isInteractive || this.#hookedStreams.size > 0) {\n return;\n }\n\n const streamsToHook = new Set([this.#stream]);\n if (isInteractive && (this.#stream === process.stdout || this.#stream === process.stderr)) {\n streamsToHook.add(process.stdout);\n streamsToHook.add(process.stderr);\n }\n\n for (const stream of streamsToHook) {\n this.#hookStream(stream);\n }\n }\n\n #uninstallHook() {\n for (const [stream, hookInfo] of this.#hookedStreams) {\n if (stream.write === hookInfo.hookedWrite) {\n stream.write = hookInfo.originalWrite;\n }\n\n activeHooksPerStream.delete(stream);\n }\n\n this.#hookedStreams.clear();\n }\n\n #hookedWrite(stream: WriteStream, originalWrite: typeof stream.write, writeArguments: Parameters<typeof stream.write>) {\n const [chunk, callback] = writeArguments;\n\n if (this.#isInternalWrite || !this.isSpinning) {\n return originalWrite.call(stream, chunk);\n }\n\n if (this.#lines > 0) {\n this.clear();\n }\n\n const chunkString = this.#stringifyChunk(chunk);\n const chunkTerminatesLine = chunkString.at(-1) === \"\\\\n\";\n const writeResult = originalWrite.call(stream, chunk);\n\n if (chunkTerminatesLine) {\n this.#isDeferringRender = false;\n } else if (chunkString !== \"\") {\n this.#isDeferringRender = true;\n }\n\n if (this.isSpinning && !this.#isDeferringRender) {\n this.#render();\n }\n\n return writeResult;\n }\n\n #stopWithIcon(icon: string, message: string) {\n return this.stop(\\` \\${icon} \\${message ?? this.#message}\\`);\n }\n\n #render() {\n if (this.#isDeferringRender) {\n return;\n }\n\n if (this.#currentFrame === -1 || Date.now() - this.#lastSpinnerFrameTime >= this.#interval) {\n this.#currentFrame = ++this.#currentFrame % this.#frames.length;\n this.#lastSpinnerFrameTime = Date.now();\n }\n\n let display = \\`\\${colors.text.spinner.icon.active(this.#frames[this.#currentFrame])} \\${colors.text.spinner.message.active(this.#message)}\\`;\n if (!isInteractive) {\n display += \"\\\\n\";\n }\n\n if (isInteractive) {\n this.#withSynchronizedOutput(() => {\n this.clear();\n this.#write(display);\n });\n } else {\n this.#write(display);\n }\n\n if (isInteractive) {\n this.#lines = this.#lineCount(display);\n }\n }\n\n #write(message: string) {\n this.#internalWrite(() => {\n this.#stream.write(message);\n });\n }\n\n #lineCount(message: string) {\n const width = this.#stream.columns ?? 80;\n const lines = stripVTControlCharacters(message).split(\"\\\\n\");\n\n let lineCount = 0;\n for (const line of lines) {\n lineCount += Math.max(1, Math.ceil(line.length / width));\n }\n\n return lineCount;\n }\n\n #hideCursor() {\n if (isInteractive) {\n this.#write(\"\\\\u001B[?25l\");\n }\n }\n\n #showCursor() {\n if (isInteractive) {\n this.#write(\"\\\\u001B[?25h\");\n }\n }\n\n #subscribeToProcessEvents() {\n process.once(\"SIGINT\", this.#exitHandlerBound);\n process.once(\"SIGTERM\", this.#exitHandlerBound);\n }\n\n #unsubscribeFromProcessEvents() {\n process.off(\"SIGINT\", this.#exitHandlerBound);\n process.off(\"SIGTERM\", this.#exitHandlerBound);\n }\n\n #exitHandler(signal: any) {\n if (this.isSpinning) {\n this.stop();\n }\n\n process.exit(signal === \"SIGINT\" ? 130 : (signal === \"SIGTERM\" ? 143 : 1));\n } `}\n <ClassPropertyGet\n public\n name=\"isSpinning\"\n type=\"boolean\"\n doc=\"Whether the spinner is currently active and spinning.\">\n {code`return this.#isSpinning;`}\n </ClassPropertyGet>\n <Spacing />\n <ClassPropertySet\n public\n name=\"message\"\n type=\"string\"\n doc=\"Set the message displayed by the spinner.\">\n {code`this.#message = value;`}\n </ClassPropertySet>\n <Spacing />\n <ClassPropertyGet\n public\n name=\"message\"\n type=\"string\"\n doc=\"Get the message displayed by the spinner.\">\n {code`return this.#message;`}\n </ClassPropertyGet>\n <Spacing />\n <ClassMethod\n name=\"start\"\n doc=\"Start the spinner animation.\"\n parameters={[{ name: \"message\", type: \"string\" }]}>\n <IfStatement condition={code`message !== undefined`}>\n {code`this.#message = message;`}\n </IfStatement>\n <IfStatement condition={code`this.isSpinning`}>\n {code`return this;`}\n </IfStatement>\n {code`this.#isSpinning = true;\n this.#hideCursor();\n this.#installHook();\n this.#render();\n this.#subscribeToProcessEvents();\n\n if (isInteractive) {\n this.#timer = setInterval(() => {\n this.#render();\n }, this.#interval);\n }\n\n return this;\n `}\n </ClassMethod>\n <Spacing />\n <ClassMethod\n name=\"stop\"\n doc=\"Stop the spinner animation.\"\n parameters={[\n { name: \"finalMessage\", optional: true, type: \"string\" }\n ]}>\n {code`if (!this.isSpinning) {\n return this;\n }\n\n const shouldWriteNewline = this.#isDeferringRender;\n this.#isSpinning = false;\n if (this.#timer) {\n clearInterval(this.#timer);\n this.#timer = undefined;\n }\n\n this.#isDeferringRender = false;\n this.#uninstallHook();\n this.#showCursor();\n this.clear();\n this.#unsubscribeFromProcessEvents();\n\n if (finalMessage) {\n const prefix = shouldWriteNewline ? \"\\\\n\" : \"\";\n this.#stream.write(\\`\\${prefix}\\${finalMessage}\\\\n\\`);\n }\n\n return this;\n\n `}\n </ClassMethod>\n <Spacing />\n <ClassMethod name=\"clear\" doc=\"Clear the spinner animation.\">\n {code`if (!isInteractive) {\n return this;\n }\n\n if (this.#lines === 0) {\n return this;\n }\n\n this.#internalWrite(() => {\n this.#stream.cursorTo(0);\n\n for (let index = 0; index < this.#lines; index++) {\n if (index > 0) {\n this.#stream.moveCursor(0, -1);\n }\n\n this.#stream.clearLine(1);\n }\n });\n\n this.#lines = 0;\n return this; `}\n </ClassMethod>\n <Spacing />\n <ClassMethod\n name=\"success\"\n doc=\"Mark the spinner as successful.\"\n parameters={[{ name: \"message\", type: \"string\" }]}>\n {code`return this.#stopWithIcon(colors.text.spinner.icon.success(\"${\n theme.icons.spinner.success\n }\"), colors.text.spinner.message.success(message)); `}\n </ClassMethod>\n <Spacing />\n <ClassMethod\n name=\"error\"\n doc=\"Mark the spinner as failed.\"\n parameters={[{ name: \"message\", type: \"string\" }]}>\n {code`return this.#stopWithIcon(colors.text.spinner.icon.error(\"${\n theme.icons.spinner.error\n }\"), colors.text.spinner.message.error(message)); `}\n </ClassMethod>\n <Spacing />\n <ClassMethod\n name=\"warning\"\n doc=\"Mark the spinner as warning.\"\n parameters={[{ name: \"message\", type: \"string\" }]}>\n {code`return this.#stopWithIcon(colors.text.spinner.icon.warning(\"${\n theme.icons.spinner.warning\n }\"), colors.text.spinner.message.warning(message)); `}\n </ClassMethod>\n <Spacing />\n <ClassMethod\n name=\"info\"\n doc=\"Mark the spinner as informational.\"\n parameters={[{ name: \"message\", type: \"string\" }]}>\n {code`return this.#stopWithIcon(colors.text.spinner.icon.info(\"${\n theme.icons.spinner.info\n }\"), colors.text.spinner.message.info(message)); `}\n </ClassMethod>\n <Spacing />\n <ClassMethod\n name=\"help\"\n doc=\"Mark the spinner as help.\"\n parameters={[{ name: \"message\", type: \"string\" }]}>\n {code`return this.#stopWithIcon(colors.text.spinner.icon.help(\"${\n theme.icons.spinner.help\n }\"), colors.text.spinner.message.help(message)); `}\n </ClassMethod>\n <Spacing />\n </ClassDeclaration>\n <Spacing />\n <TSDoc heading=\"Render a spinner in the console.\">\n <TSDocParam name=\"options\">\n {`Options for configuring the spinner, including the message to display, the output stream to write to, and the spinner animation to use.`}\n </TSDocParam>\n <TSDocReturns>{`An instance of the Spinner class, which can be used to control the spinner animation (e.g., start, stop, mark as success/error, etc.).`}</TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n export\n name=\"createSpinner\"\n parameters={[\n {\n name: \"options\",\n type: \"SpinnerOptions\",\n optional: true\n }\n ]}>\n {code`return new Spinner(options);`}\n </FunctionDeclaration>\n </>\n );\n}\n\nfunction extractBorderOptionsObject(\n direction:\n | \"top\"\n | \"right\"\n | \"bottom\"\n | \"left\"\n | \"topLeft\"\n | \"topRight\"\n | \"bottomLeft\"\n | \"bottomRight\",\n theme: ThemeResolvedConfig\n): string {\n return `borderOptions.${\n direction\n } === \"primary\" ? colors.border.app.table.primary(\"${\n theme.borderStyles.app.table.primary[direction]\n }\") : borderOptions.${\n direction\n } === \"secondary\" ? colors.border.app.table.secondary(\"${\n theme.borderStyles.app.table.secondary[direction]\n }\") : borderOptions.${\n direction\n } === \"tertiary\" ? colors.border.app.table.tertiary(\"${\n theme.borderStyles.app.table.tertiary[direction]\n }\") : !borderOptions.${direction} || borderOptions.${\n direction\n } === \"none\" ? \"\" : borderOptions.${direction}`;\n}\n\nfunction extractBorderOptionsString(\n direction:\n | \"top\"\n | \"right\"\n | \"bottom\"\n | \"left\"\n | \"topLeft\"\n | \"topRight\"\n | \"bottomLeft\"\n | \"bottomRight\",\n theme: ThemeResolvedConfig\n): string {\n return `borderOptions === \"primary\" ? colors.border.app.table.primary(\"${\n theme.borderStyles.app.table.primary[direction]\n }\") : borderOptions === \"secondary\" ? colors.border.app.table.secondary(\"${\n theme.borderStyles.app.table.secondary[direction]\n }\") : borderOptions === \"tertiary\" ? colors.border.app.table.tertiary(\"${\n theme.borderStyles.app.table.tertiary[direction]\n }\") : !borderOptions || borderOptions === \"none\" ? \"\" : borderOptions`;\n}\n\n/**\n * Props for the TableFunctionDeclaration component.\n */\nexport type TableFunctionDeclarationProps = Omit<\n FunctionDeclarationProps,\n \"parameters\" | \"name\"\n>;\n\n/**\n * A component to generate the table functions in the `shell-shock:console` builtin module.\n */\nexport function TableFunctionDeclaration(props: TableFunctionDeclarationProps) {\n const theme = useTheme();\n\n return (\n <>\n <TypeDeclaration\n export\n name=\"SizeToken\"\n doc=\"A type representing the width size of an item in the console.\">\n {code`\"full\" | \"1/1\" | \"1/2\" | \"1/3\" | \"1/4\" | \"1/5\" | \"1/6\" | \"1/12\" | \"1/24\" | \"100%\" | \"50%\" | \"33.33%\" | \"25%\" | \"20%\" | \"10%\" | \"5%\" | \"2.5%\"`}\n </TypeDeclaration>\n <Spacing />\n <TSDoc heading=\"Determine if a value is a valid size token.\">\n <TSDocRemarks>\n {`This function checks if the provided value is a valid size token, which can be one of the predefined strings representing common width sizes (e.g., \"full\", \"1/2\", \"1/3\", etc.) or percentage strings (e.g., \"50%\").`}\n </TSDocRemarks>\n <TSDocParam name=\"value\">{`The value to check for being a valid size token.`}</TSDocParam>\n <TSDocReturns>{`True if the value is a valid size token, false otherwise.`}</TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n export\n doc=\"Determines if the provided value is a valid size token.\"\n name=\"isSizeToken\"\n parameters={[\n {\n name: \"value\",\n type: \"any\"\n }\n ]}\n returnType=\"value is SizeToken\">\n <IfStatement\n condition={code`[\"full\", \"1/1\", \"1/2\", \"1/3\", \"1/4\", \"1/5\", \"1/6\", \"1/12\", \"1/24\", \"100%\", \"50%\", \"33.33%\", \"25%\", \"20%\", \"10%\", \"5%\", \"2.5%\"].includes(value)`}>\n {code`return true; `}\n </IfStatement>\n {code`return false; `}\n </FunctionDeclaration>\n <Spacing />\n <TSDoc heading=\"Calculate the width in characters based on the provided width size.\">\n <TSDocRemarks>\n {`This function calculates the width in characters based on the provided width size, which can be a predefined string (e.g., \"full\", \"1/2\", \"1/3\", etc.) or a percentage string (e.g., \"50%\"). The calculation is based on the current width of the console (process.stdout.columns).`}\n </TSDocRemarks>\n <TSDocParam name=\"size\">\n {`The width size to calculate. This can be a predefined string (e.g., \"full\", \"1/2\", \"1/3\", etc.) or a percentage string (e.g., \"50%\").`}\n </TSDocParam>\n <TSDocReturns>{`The calculated width in characters.`}</TSDocReturns>\n </TSDoc>\n <FunctionDeclaration\n export\n name=\"calculateWidth\"\n parameters={[\n {\n name: \"size\",\n type: \"SizeToken\",\n optional: false\n }\n ]}\n returnType=\"number\">\n <IfStatement condition={code`[\"full\", \"100%\", \"1/1\"]. includes(size)`}>\n {code`return process.stdout.columns;`}\n </IfStatement>\n <ElseIfClause condition={code`[\"1/2\", \"50%\"].includes(size)`}>\n {code`return Math.round(process.stdout.columns / 2);`}\n </ElseIfClause>\n <ElseIfClause condition={code`[\"1/3\", \"33.33%\"].includes(size)`}>\n {code`return Math.round(process.stdout.columns / 3);`}\n </ElseIfClause>\n <ElseIfClause condition={code`[\"1/4\", \"25%\"].includes(size)`}>\n {code`return Math.round(process.stdout.columns / 4);`}\n </ElseIfClause>\n <ElseIfClause condition={code`[\"1/5\", \"20%\"].includes(size)`}>\n {code`return Math.round(process.stdout.columns / 5);`}\n </ElseIfClause>\n <ElseIfClause condition={code`[\"1/6\", \"10%\"].includes(size)`}>\n {code`return Math.round(process.stdout.columns / 6);`}\n </ElseIfClause>\n <ElseIfClause condition={code`[\"1/12\", \"5%\"].includes(size)`}>\n {code`return Math.round(process.stdout.columns / 12);`}\n </ElseIfClause>\n <ElseIfClause condition={code`[\"1/24\", \"2.5%\"].includes(size)`}>\n {code`return Math.round(process.stdout.columns / 24);`}\n </ElseIfClause>\n <ElseClause>\n {code`\n const match = size.match(/(\\\\d+(\\\\.\\\\d+)?)%/);\n if (match) {\n return Math.round((process.stdout.columns * parseFloat(match[1])) / 100);\n }\n\n throw new Error(\\`Invalid width size: \\${size}\\`);\n `}\n </ElseClause>\n <Spacing />\n </FunctionDeclaration>\n\n <TypeDeclaration\n export\n name=\"BorderOption\"\n doc=\"The border options applied to table cells.\">\n {code`\"primary\" | \"secondary\" | \"tertiary\" | \"none\" | string; `}\n </TypeDeclaration>\n <Spacing />\n <InterfaceDeclaration\n export\n name=\"TableOutputOptions\"\n doc=\"Options to customize the output of the {@link table} function.\">\n <TSDoc heading=\"Border variant for the table cell.\">\n <TSDocRemarks>\n {`The border variant to use for the table cell. This determines the color and style of the border around the cell.`}\n </TSDocRemarks>\n <hbr />\n <TSDocDefaultValue\n type={ReflectionKind.property}\n defaultValue=\"primary\"\n />\n </TSDoc>\n <InterfaceMember\n name=\"border\"\n optional\n type=\"BorderOption | { top?: BorderOption; right?: BorderOption; bottom?: BorderOption; left?: BorderOption; topLeft?: BorderOption; topRight?: BorderOption; bottomLeft?: BorderOption; bottomRight?: BorderOption; }\"\n />\n <hbr />\n <TSDoc heading=\"Padding for the table cell.\">\n <TSDocRemarks>\n {`The amount of padding (in spaces) to apply to the table cell. This value is applied to both the left and right sides of the cell. If not specified, the default table padding defined in the current theme configuration will be used.`}\n </TSDocRemarks>\n <hbr />\n <TSDocDefaultValue\n type={ReflectionKind.property}\n defaultValue={`\\`${theme.padding.table}\\``}\n />\n </TSDoc>\n <InterfaceMember name=\"padding\" optional type=\"number\" />\n <hbr />\n <TSDoc heading=\"Alignment for the table cell.\">\n <TSDocRemarks>\n {`The alignment for the table cell. This determines how the text within the cell is aligned. If not specified, the default alignment is \"left\".`}\n </TSDocRemarks>\n <hbr />\n <TSDocDefaultValue\n type={ReflectionKind.property}\n defaultValue=\"left\"\n />\n </TSDoc>\n <InterfaceMember\n name=\"align\"\n optional\n type='\"left\" | \"right\" | \"center\"'\n />\n <hbr />\n </InterfaceDeclaration>\n <Spacing />\n <InterfaceDeclaration\n export\n name=\"TableCellOptions\"\n extends=\"TableOutputOptions\"\n doc=\"Options for a specific table cell provided to the {@link table} function.\">\n <InterfaceMember\n name=\"value\"\n optional\n type=\"string\"\n doc=\"The actual string value of the table cell.\"\n />\n <hbr />\n <TSDoc heading=\"Width of the table cell.\">\n <TSDocRemarks>\n {`The width of the table cell (where 1 is a single character in the terminal). If not specified, the width will be determined based on the content of the cell and the available space in the console.`}\n </TSDocRemarks>\n </TSDoc>\n <InterfaceMember\n name=\"maxWidth\"\n type=\"number | SizeToken | undefined\"\n />\n <hbr />\n </InterfaceDeclaration>\n <Spacing />\n <InterfaceDeclaration\n export\n name=\"TableRowOptions\"\n extends=\"TableOutputOptions\"\n doc=\"Options for a specific table row provided to the {@link table} function.\">\n <InterfaceMember\n name=\"values\"\n optional\n type=\"(string | TableCellOptions)[]\"\n doc=\"The actual string values of the table row's cells.\"\n />\n <hbr />\n </InterfaceDeclaration>\n <Spacing />\n <InterfaceDeclaration\n export\n name=\"TableOptions\"\n extends=\"TableOutputOptions\"\n doc=\"Options for a specific table cell provided to the {@link table} function.\">\n <InterfaceMember\n name=\"values\"\n optional\n type=\"(string | TableCellOptions)[][]\"\n doc=\"The actual string values of the table's rows' cells.\"\n />\n <hbr />\n </InterfaceDeclaration>\n <Spacing />\n <InterfaceDeclaration\n name=\"Dimensions\"\n doc=\"The height and width for a specific table/cell used internally in the {@link table} function.\">\n <InterfaceMember\n name=\"height\"\n type=\"number\"\n doc=\"The height of the row/cell (where 1 is a single line in the terminal).\"\n />\n <hbr />\n <InterfaceMember\n name=\"width\"\n type=\"number\"\n doc=\"The width of the row/cell (where 1 is a single character in the terminal).\"\n />\n <hbr />\n </InterfaceDeclaration>\n <Spacing />\n <InterfaceDeclaration\n name=\"TableCellBorder\"\n doc=\"The resolved complete border styles for a table cell.\">\n <InterfaceMember\n name=\"top\"\n type=\"string\"\n doc=\"The top border style of the table cell.\"\n />\n <hbr />\n <InterfaceMember\n name=\"bottom\"\n type=\"string\"\n doc=\"The bottom border style of the table cell.\"\n />\n <hbr />\n <InterfaceMember\n name=\"right\"\n type=\"string\"\n doc=\"The right border style of the table cell.\"\n />\n <hbr />\n <InterfaceMember\n name=\"left\"\n type=\"string\"\n doc=\"The left border style of the table cell.\"\n />\n <hbr />\n <InterfaceMember\n name=\"topLeft\"\n type=\"string\"\n doc=\"The top-left border style of the table cell.\"\n />\n <hbr />\n <InterfaceMember\n name=\"topRight\"\n type=\"string\"\n doc=\"The top-right border style of the table cell.\"\n />\n <hbr />\n <InterfaceMember\n name=\"bottomLeft\"\n type=\"string\"\n doc=\"The bottom-left border style of the table cell.\"\n />\n <hbr />\n <InterfaceMember\n name=\"bottomRight\"\n type=\"string\"\n doc=\"The bottom-right border style of the table cell.\"\n />\n <hbr />\n </InterfaceDeclaration>\n <Spacing />\n <TypeDeclaration\n name=\"TableCell\"\n doc=\"The internal state of a formatted table cell in the {@link table} function.\">\n {code`Required<Omit<TableCellOptions, \"maxWidth\" | \"border\">> & Dimensions & {\n border: TableCellBorder;\n maxWidth?: number;\n };\n `}\n </TypeDeclaration>\n <Spacing />\n <TSDoc heading=\"Write a table to the console.\">\n <TSDocRemarks>\n {`This function writes a table to the console, applying the appropriate padding as defined in the current theme configuration and wrapping as needed.`}\n </TSDocRemarks>\n <hbr />\n <TSDocParam name=\"options\">\n {`Options to customize the table output.`}\n </TSDocParam>\n </TSDoc>\n <FunctionDeclaration\n export\n {...props}\n name=\"table\"\n parameters={[\n {\n name: \"options\",\n type: \"TableOptions | TableRowOptions[] | TableCellOptions[][] | string[] | string[][]\",\n optional: false\n }\n ]}>\n <IfStatement\n condition={code`!options ||\n (!Array.isArray(options) && (typeof options !== \"object\" || !options.values || !Array.isArray(options.values) || options.values.length === 0)) ||\n (Array.isArray(options) && !options.every(item => typeof item === \"object\" || typeof item === \"string\" || Array.isArray(item))) `}>\n {code`return;`}\n </IfStatement>\n <Spacing />\n <VarDeclaration\n let\n name=\"cells\"\n type={`TableCell[][]`}\n initializer={code`[];`}\n />\n <hbr />\n {code`\n const extractTableCell = (cell: string | TableCellOptions, columnIndex: number, rowLength: number, opts?: TableOutputOptions): TableCell => {\n if (typeof cell === \"string\") {\n const borderOptions = opts?.border || \"primary\";\n\n let border = {} as TableCellBorder;\n if (typeof borderOptions === \"object\") {\n border = {\n top: ${extractBorderOptionsObject(\"top\", theme)},\n bottom: ${extractBorderOptionsObject(\"bottom\", theme)},\n left: ${extractBorderOptionsObject(\"left\", theme)},\n right: ${extractBorderOptionsObject(\"right\", theme)},\n topLeft: ${extractBorderOptionsObject(\"topLeft\", theme)},\n topRight: ${extractBorderOptionsObject(\"topRight\", theme)},\n bottomLeft: ${extractBorderOptionsObject(\"bottomLeft\", theme)},\n bottomRight: ${extractBorderOptionsObject(\"bottomRight\", theme)},\n };\n } else {\n border.top = ${extractBorderOptionsString(\"top\", theme)};\n border.bottom = ${extractBorderOptionsString(\"bottom\", theme)};\n border.left = ${extractBorderOptionsString(\"left\", theme)};\n border.right = ${extractBorderOptionsString(\"right\", theme)};\n border.topLeft = ${extractBorderOptionsString(\"topLeft\", theme)};\n border.topRight = ${extractBorderOptionsString(\"topRight\", theme)};\n border.bottomLeft = ${extractBorderOptionsString(\"bottomLeft\", theme)};\n border.bottomRight = ${extractBorderOptionsString(\"bottomRight\", theme)};\n }\n\n const padding = Math.max(0, opts?.padding ?? ${theme.padding.table}) * (columnIndex === 0 || columnIndex === rowLength - 1 ? 2 : 1);\n const value = cell ?? \"\";\n const width = stripAnsi(value).length + padding * 2;\n\n return {\n value,\n height: 1,\n width,\n border,\n padding,\n align: opts?.align || \"left\",\n };\n } else {\n const borderOptions = cell.border || opts?.border || \"primary\";\n\n let border = {} as TableCellBorder;\n if (typeof borderOptions === \"object\") {\n border = {\n top: ${extractBorderOptionsObject(\"top\", theme)},\n bottom: ${extractBorderOptionsObject(\"bottom\", theme)},\n left: ${extractBorderOptionsObject(\"left\", theme)},\n right: ${extractBorderOptionsObject(\"right\", theme)},\n topLeft: ${extractBorderOptionsObject(\"topLeft\", theme)},\n topRight: ${extractBorderOptionsObject(\"topRight\", theme)},\n bottomLeft: ${extractBorderOptionsObject(\"bottomLeft\", theme)},\n bottomRight: ${extractBorderOptionsObject(\"bottomRight\", theme)},\n };\n } else {\n border.top = ${extractBorderOptionsString(\"top\", theme)};\n border.bottom = ${extractBorderOptionsString(\"bottom\", theme)};\n border.left = ${extractBorderOptionsString(\"left\", theme)};\n border.right = ${extractBorderOptionsString(\"right\", theme)};\n border.topLeft = ${extractBorderOptionsString(\"topLeft\", theme)};\n border.topRight = ${extractBorderOptionsString(\"topRight\", theme)};\n border.bottomLeft = ${extractBorderOptionsString(\"bottomLeft\", theme)};\n border.bottomRight = ${extractBorderOptionsString(\"bottomRight\", theme)};\n }\n\n const padding = Math.max(0, cell.padding ?? opts?.padding ?? ${\n theme.padding.table\n });\n const value = cell.value ?? \"\";\n const width = stripAnsi(value).length + padding * 2;\n const maxWidth = cell.maxWidth ? typeof cell.maxWidth === \"number\" ? cell.maxWidth : calculateWidth(cell.maxWidth) : undefined;\n\n return {\n value,\n height: 1,\n width,\n maxWidth,\n border,\n padding,\n align: cell.align || opts?.align || \"left\",\n };\n }\n };\n\n let colMaxWidths = [] as (number | undefined)[];\n `}\n <hbr />\n <IfStatement condition={code`Array.isArray(options)`}>\n <IfStatement\n condition={code`options.every(row => typeof row === \"string\" || (typeof row === \"object\" && !Array.isArray(row) && !(\"values\" in row)))`}>\n {code`cells.push(options.map((cell, index) => extractTableCell(cell as string | TableCellOptions, index, options.length)));`}\n </IfStatement>\n <ElseClause>\n {code`\n cells.push(\n ...options.map(row => Array.isArray(row)\n ? row.reduce((cellRow, cell, index) => {\n if (colMaxWidths.length <= index) {\n colMaxWidths.push(undefined);\n }\n const newCell = extractTableCell(cell, index, row.length);\n if (newCell.maxWidth && (!colMaxWidths[index] || newCell.maxWidth < colMaxWidths[index]!)) {\n colMaxWidths[index] = newCell.maxWidth;\n }\n cellRow.push(newCell);\n return cellRow;\n }, [] as TableCell[])\n : (row as TableRowOptions).values?.reduce((cellRow, cell, index) => {\n if (colMaxWidths.length <= index) {\n colMaxWidths.push(undefined);\n }\n const newCell = extractTableCell(cell, index, (row as TableRowOptions).values?.length ?? 1, row as TableRowOptions);\n if (newCell.maxWidth && (!colMaxWidths[index] || newCell.maxWidth < colMaxWidths[index]!)) {\n colMaxWidths[index] = newCell.maxWidth;\n }\n cellRow.push(newCell);\n return cellRow;\n }, [] as TableCell[]) ?? []\n )\n );\n `}\n </ElseClause>\n </IfStatement>\n <ElseClause>\n {code`\n cells.push(\n ...options.values!.map(row => Array.isArray(row)\n ? row.reduce((cellRow, cell, index) => {\n if (colMaxWidths.length <= index) {\n colMaxWidths.push(undefined);\n }\n const newCell = extractTableCell(cell, index, row.length);\n if (newCell.maxWidth && (!colMaxWidths[index] || newCell.maxWidth < colMaxWidths[index]!)) {\n colMaxWidths[index] = newCell.maxWidth;\n }\n cellRow.push(newCell);\n return cellRow;\n }, [] as TableCell[])\n : (row as TableRowOptions).values?.reduce((cellRow, cell, index) => {\n if (colMaxWidths.length <= index) {\n colMaxWidths.push(undefined);\n }\n const newCell = extractTableCell(cell, index, (row as TableRowOptions).values?.length ?? 1, options);\n if (newCell.maxWidth && (!colMaxWidths[index] || newCell.maxWidth < colMaxWidths[index]!)) {\n colMaxWidths[index] = newCell.maxWidth;\n }\n cellRow.push(newCell);\n return cellRow;\n }, [] as TableCell[]) ?? []\n )\n );\n\n `}\n </ElseClause>\n <hbr />\n {code`\ncells = cells.filter(row => row.length > 0);\nif (cells.length === 0) {\n return;\n}\n\ncells.forEach(row => row.forEach((cell, index) => {\n if (colMaxWidths[index] && cell.maxWidth !== colMaxWidths[index]!) {\n cell.maxWidth = colMaxWidths[index]!;\n }\n}));\n\n// Calculate table dimensions\nlet colWidths = [] as number[];\nlet rowDims = [] as Dimensions[];\n\nconst calculateRowDimensions = () => {\n colWidths = [];\n return cells.reduce((dims, row) => {\n dims.push(row.reduce((dim, cell, index) => {\n dim.width += cell.width;\n if (cell.height > dim.height) {\n dim.height = cell.height;\n }\n if (!colWidths[index] || cell.width > colWidths[index]!) {\n colWidths[index] = cell.width;\n }\n\n return dim;\n }, { width: 0, height: 0 } as Dimensions));\n\n return dims;\n }, [] as Dimensions[]);\n}\n\nlet recalculate!: boolean;\ndo {\n recalculate = false;\n rowDims = calculateRowDimensions();\n\n if (!recalculate && colWidths.some((colWidth, index) => colMaxWidths[index] && colWidth > colMaxWidths[index]!)) {\n (colWidths.map((colWidth, index) => colMaxWidths[index] && colWidth > colMaxWidths[index]! ? index : undefined).filter(colWidth => colWidth !== undefined) as number[]).forEach(index => {\n cells.forEach(row => {\n const cell = row[index]!;\n if (colMaxWidths[index] && cell.width > colMaxWidths[index]) {\n const lines = splitText(\n cell.value,\n colMaxWidths[index] - cell.padding * 2,\n );\n\n cell.value = lines.join(\"\\\\n\");\n cell.height = lines.length;\n cell.width = Math.max(...lines.map(line => stripAnsi(line).length)) + cell.padding * 2;\n\n recalculate = true;\n }\n });\n });\n }\n\n rowDims.forEach((row, rowIndex) => {\n if (!recalculate && row.width > Math.max(process.stdout.columns - ${\n Math.max(theme.padding.app, 0) * 2\n }, 0)) {\n const cell = cells[rowIndex]!.reduce((largestCell, cell) => {\n if (cell.width > largestCell.width) {\n return cell;\n }\n return largestCell;\n }, cells[rowIndex]![0]!);\n\n const lines = splitText(\n cell.value,\n Math.min(Math.max(process.stdout.columns - ${\n Math.max(theme.padding.app, 0) * 2\n } - (row.width - (cell.width - cell.padding * 2)), 0),\n cell.maxWidth ?? Number.POSITIVE_INFINITY)\n );\n\n cell.value = lines.join(\"\\\\n\");\n cell.height = lines.length;\n cell.width = Math.max(...lines.map(line => stripAnsi(line).length)) + cell.padding * 2;\n\n recalculate = true;\n }\n });\n\n if (!recalculate && colWidths.reduce((a, b) => a + b, 0) > Math.max(process.stdout.columns - ${\n Math.max(theme.padding.app, 0) * 2\n }, 0)) {\n let colIndex = 0;\n const cell = cells.reduce((ret, row) => {\n return row.reduce((largest, current, index) => {\n if (largest.width < current.width) {\n colIndex = index;\n return current;\n }\n return largest;\n }, ret);\n }, cells[0]![0]!);\n\n const lines = splitText(\n cell.value,\n Math.min(Math.max(process.stdout.columns - ${\n Math.max(theme.padding.app, 0) * 2\n } - (colWidths.filter((_, i) => i !== colIndex).reduce((a, b) => a + b, 0)) - cell.padding * 2, 0),\n cell.maxWidth ?? Number.POSITIVE_INFINITY)\n );\n\n cell.value = lines.join(\"\\\\n\");\n cell.height = lines.length;\n cell.width = Math.max(...lines.map(line => stripAnsi(line).length)) + cell.padding * 2;\n\n recalculate = true;\n }\n} while (recalculate);\n\n// Render table\ncells.forEach((row, rowIndex) => {\n const outputs = [] as string[][];\n row.forEach((cell, colIndex) => {\n const lines = cell.value.split(\"\\\\n\");\n while (lines.length < rowDims[rowIndex]!.height) {\n lines.push(\"\");\n }\n\n outputs.push(lines.map(line => {\n let paddedContent = \"\";\n switch (cell.align) {\n case \"right\":\n paddedContent = \" \".repeat(Math.max(colWidths[colIndex] - stripAnsi(line).length - cell.padding, 0)) + line + \" \".repeat(cell.padding);\n break;\n case \"center\":\n const leftPadding = Math.floor((colWidths[colIndex] - stripAnsi(line).length - cell.padding) / 2);\n const rightPadding = colWidths[colIndex] - stripAnsi(line).length - leftPadding;\n paddedContent = \" \".repeat(leftPadding) + line + \" \".repeat(rightPadding);\n break;\n case \"left\":\n default:\n paddedContent = \" \".repeat(cell.padding) + line + \" \".repeat(Math.max(colWidths[colIndex] - stripAnsi(line).length - cell.padding, 0));\n break;\n }\n\n if (colIndex === row.length - 1) {\n return cell.border.left + paddedContent + cell.border.right;\n } else {\n return cell.border.left + paddedContent;\n }\n }));\n });\n\n for (let index = 0; index < rowDims[rowIndex]!.height; index++) {\n writeLine(outputs.map(output => output[index] ?? \"\").join(\"\"));\n }\n});\n`}\n </FunctionDeclaration>\n </>\n );\n}\n\nexport type ConsoleBuiltinProps = Pick<\n BuiltinFileProps,\n \"children\" | \"imports\" | \"builtinImports\"\n>;\n\n/**\n * A built-in console utilities module for Shell Shock.\n */\nexport function ConsoleBuiltin(props: ConsoleBuiltinProps) {\n const { children, imports, builtinImports } = props;\n\n return (\n <BuiltinFile\n id=\"console\"\n description=\"A collection of helper utilities to assist in generating content meant for display in the console.\"\n imports={defu(imports, {\n \"@shell-shock/plugin-theme/types/theme\": [\n { name: \"ThemeColorsResolvedConfig\", type: true },\n { name: \"ThemeSpinnerResolvedConfig\", type: true }\n ],\n \"@shell-shock/plugin-theme/helpers/spinners\": [\n { name: \"SpinnerPreset\", type: true },\n { name: \"resolveSpinner\" }\n ],\n \"node:buffer\": [\"WithImplicitCoercion\"],\n \"node:util\": [\"stripVTControlCharacters\"]\n })}\n builtinImports={defu(builtinImports, {\n utils: [\n \"hasFlag\",\n \"isMinimal\",\n \"isInteractive\",\n \"isColorSupported\",\n \"colorSupportLevels\",\n \"isHyperlinkSupported\"\n ],\n env: [\"env\", \"isDevelopment\", \"isDebug\"]\n })}>\n <AnsiHelpersDeclarations />\n <Spacing />\n <StripAnsiFunctionDeclaration />\n <Spacing />\n <WrapAnsiFunction />\n <Spacing />\n <ColorsDeclaration />\n <Spacing />\n <WriteLineFunctionDeclaration />\n <Spacing />\n <SplitTextFunctionDeclaration />\n <Spacing />\n <LinkFunctionDeclaration />\n <Spacing />\n <DividerFunctionDeclaration />\n <Spacing />\n <SpinnerFunctionDeclaration />\n <Spacing />\n <MessageFunctionDeclaration\n type=\"help\"\n variant=\"help\"\n consoleFnName=\"log\"\n description=\"help\"\n />\n <Spacing />\n <MessageFunctionDeclaration\n type=\"success\"\n variant=\"success\"\n consoleFnName=\"info\"\n description=\"success\"\n />\n <Spacing />\n <MessageFunctionDeclaration\n type=\"info\"\n variant=\"info\"\n consoleFnName=\"info\"\n description=\"informational\"\n />\n <Spacing />\n <MessageFunctionDeclaration\n type=\"debug\"\n variant=\"debug\"\n consoleFnName=\"debug\"\n description=\"debug\"\n timestamp\n prefix={\n <IfStatement condition={<IsNotDebug />}>{code`return; `}</IfStatement>\n }\n />\n <Spacing />\n <MessageFunctionDeclaration\n type=\"verbose\"\n variant=\"info\"\n color=\"debug\"\n consoleFnName=\"debug\"\n description=\"verbose\"\n timestamp\n prefix={\n <IfStatement\n condition={<IsNotVerbose />}>{code`return; `}</IfStatement>\n }\n />\n <Spacing />\n <MessageFunctionDeclaration\n type=\"warn\"\n variant=\"warning\"\n consoleFnName=\"warn\"\n description=\"warning\"\n />\n <Spacing />\n <MessageFunctionDeclaration\n type=\"danger\"\n variant=\"danger\"\n consoleFnName=\"error\"\n description=\"destructive/danger\"\n />\n <Spacing />\n <MessageFunctionDeclaration\n type=\"error\"\n variant=\"error\"\n consoleFnName=\"error\"\n description=\"error\"\n timestamp\n parameters={[\n {\n name: \"err\",\n type: \"string | Error\",\n optional: false\n }\n ]}\n prefix={\n <>\n <VarDeclaration let name=\"message\" type=\"string | undefined\" />\n <Spacing />\n <IfStatement condition={code`(err as Error)?.message`}>\n {code`message = (err as Error).message;`}\n </IfStatement>\n <ElseClause>{code`message = String(err);`}</ElseClause>\n <Spacing />\n <IfStatement condition={code`env.STACKTRACE`}>\n <IfStatement condition={code`(err as Error)?.stack`}>\n {code`message += \" \\\\n\\\\n\" + ((err as Error).stack || \"\");`}\n </IfStatement>\n <ElseClause>{code`message += \" \\\\n\\\\n\" + ((new Error(\" \")).stack || \"\").split(\"\\\\n\").slice(2).map(line => line.trim()).join(\"\\\\n\");`}</ElseClause>\n </IfStatement>\n </>\n }\n />\n <Spacing />\n <TableFunctionDeclaration />\n <Spacing />\n {children}\n <Spacing />\n </BuiltinFile>\n );\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shell-shock/plugin-console",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.31",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A package containing a Shell Shock plugin to generate the `console` built-in module.",
|
|
6
6
|
"repository": {
|
|
@@ -126,17 +126,17 @@
|
|
|
126
126
|
"dependencies": {
|
|
127
127
|
"@alloy-js/core": "0.23.0-dev.8",
|
|
128
128
|
"@alloy-js/typescript": "0.23.0-dev.4",
|
|
129
|
-
"@powerlines/deepkit": "^0.6.
|
|
130
|
-
"@powerlines/plugin-alloy": "^0.
|
|
131
|
-
"@powerlines/plugin-plugin": "^0.12.
|
|
132
|
-
"@shell-shock/core": "^0.14.
|
|
133
|
-
"@shell-shock/plugin-theme": "^0.4.
|
|
129
|
+
"@powerlines/deepkit": "^0.6.163",
|
|
130
|
+
"@powerlines/plugin-alloy": "^0.26.0",
|
|
131
|
+
"@powerlines/plugin-plugin": "^0.12.335",
|
|
132
|
+
"@shell-shock/core": "^0.14.4",
|
|
133
|
+
"@shell-shock/plugin-theme": "^0.4.4",
|
|
134
134
|
"@stryke/string-format": "^0.17.7",
|
|
135
135
|
"defu": "^6.1.4",
|
|
136
|
-
"powerlines": "^0.42.
|
|
136
|
+
"powerlines": "^0.42.25"
|
|
137
137
|
},
|
|
138
138
|
"devDependencies": {
|
|
139
|
-
"@powerlines/plugin-deepkit": "^0.11.
|
|
139
|
+
"@powerlines/plugin-deepkit": "^0.11.263",
|
|
140
140
|
"@types/node": "^25.5.0"
|
|
141
141
|
},
|
|
142
142
|
"publishConfig": {
|
|
@@ -154,5 +154,5 @@
|
|
|
154
154
|
"./package.json": "./package.json"
|
|
155
155
|
}
|
|
156
156
|
},
|
|
157
|
-
"gitHead": "
|
|
157
|
+
"gitHead": "510e6f99558786e78ad1a34e2c4f5ed3d92f17fe"
|
|
158
158
|
}
|