@shell-shock/plugin-console 0.1.27 → 0.1.28

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
- [![Version](https://img.shields.io/badge/version-0.1.21-1fb2a6.svg?style=for-the-badge&color=1fb2a6)](https://stormsoftware.com/projects/shell-shock/)&nbsp;[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge&logo=commitlint&color=1fb2a6)](http://commitizen.github.io/cz-cli/)&nbsp;![Semantic-Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge&color=1fb2a6)&nbsp;![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/storm-software/shell-shock/release.yml?style=for-the-badge&logo=github-actions&color=1fb2a6)
30
+ [![Version](https://img.shields.io/badge/version-0.1.27-1fb2a6.svg?style=for-the-badge&color=1fb2a6)](https://stormsoftware.com/projects/shell-shock/)&nbsp;[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge&logo=commitlint&color=1fb2a6)](http://commitizen.github.io/cz-cli/)&nbsp;![Semantic-Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge&color=1fb2a6)&nbsp;![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/storm-software/shell-shock/release.yml?style=for-the-badge&logo=github-actions&color=1fb2a6)
31
31
 
32
32
  <!-- prettier-ignore-start -->
33
33
  <!-- markdownlint-disable -->
@@ -10,6 +10,7 @@ let _powerlines_plugin_alloy_typescript_components_builtin_file = require("@powe
10
10
  let _powerlines_plugin_alloy_typescript_components_tsdoc = require("@powerlines/plugin-alloy/typescript/components/tsdoc");
11
11
  let _shell_shock_core_components_helpers = require("@shell-shock/core/components/helpers");
12
12
  let _shell_shock_plugin_theme_contexts_theme = require("@shell-shock/plugin-theme/contexts/theme");
13
+ let _stryke_string_format = require("@stryke/string-format");
13
14
  let _stryke_string_format_vowels = require("@stryke/string-format/vowels");
14
15
  let defu = require("defu");
15
16
 
@@ -162,6 +163,7 @@ function ColorFunction({ ansi16, ansi256, ansi16m }) {
162
163
  */
163
164
  function ColorsDeclaration() {
164
165
  const colors = (0, _shell_shock_plugin_theme_contexts_theme.useColors)();
166
+ const theme = (0, _shell_shock_plugin_theme_contexts_theme.useTheme)();
165
167
  return [
166
168
  (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_typescript.TypeDeclaration, {
167
169
  "export": true,
@@ -1349,9 +1351,30 @@ function ColorsDeclaration() {
1349
1351
  }
1350
1352
  })}
1351
1353
  }
1352
- }
1353
- },
1354
- border: {
1354
+ },
1355
+ tags: { `,
1356
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.For, {
1357
+ get each() {
1358
+ return Object.keys(theme.colors.text.tags);
1359
+ },
1360
+ get joiner() {
1361
+ return [_alloy_js_core.code`, `, (0, _alloy_js_core_jsx_runtime.createIntrinsic)("hbr", {})];
1362
+ },
1363
+ children: (key) => _alloy_js_core.code`${(0, _stryke_string_format.kebabCase)(key)}: ${(0, _alloy_js_core_jsx_runtime.createComponent)(ColorFunction, {
1364
+ get ansi16() {
1365
+ return colors.ansi16.theme.text.tags[key];
1366
+ },
1367
+ get ansi256() {
1368
+ return colors.ansi256.theme.text.tags[key];
1369
+ },
1370
+ get ansi16m() {
1371
+ return colors.ansi16m.theme.text.tags[key];
1372
+ }
1373
+ })}`
1374
+ }),
1375
+ _alloy_js_core.code` }
1376
+ },
1377
+ border: {
1355
1378
  banner: {
1356
1379
  outline: {
1357
1380
  primary: ${(0, _alloy_js_core_jsx_runtime.createComponent)(ColorFunction, {
@@ -1 +1 @@
1
- {"version":3,"file":"console-builtin.d.cts","names":[],"sources":["../../src/components/console-builtin.tsx"],"mappings":";;;;;;iBA+DgB,uBAAA,CAAA,GAAuB,QAAA;;AAAvC;;iBAuKgB,iBAAA,CAAA,GAAiB,QAAA;;;AAAjC;iBAqqDgB,4BAAA,CAAA,GAA4B,QAAA;;;;iBAiL5B,4BAAA,CAAA,GAA4B,QAAA;AAAA,KAsFhC,+BAAA,GAAkC,OAAA,CAC5C,IAAA,CAAK,wBAAA;EAEL,IAAA;EASA,OAAA,EAAS,mBAAA;EACT,KAAA,GAAQ,mBAAA;EACR,aAAA;EACA,WAAA;EACA,MAAA,GAAS,QAAA;EACT,SAAA;AAAA;AAjBF;;;AAAA,iBAuBgB,0BAAA,CACd,KAAA,EAAO,+BAAA,GAA+B,QAAA;;;;iBA0KxB,gBAAA,CAAA,GAAgB,QAAA;;;;iBA4EhB,4BAAA,CAAA,GAA4B,QAAA;;;;iBAmC5B,0BAAA,CAAA,GAA0B,QAAA;;;;iBAoF1B,uBAAA,CAAA,GAAuB,QAAA;;;;iBAwCvB,0BAAA,CAAA,GAA0B,QAAA;;;AAtZ1C;KAg7BY,6BAAA,GAAgC,IAAA,CAC1C,wBAAA;;;;iBAOc,wBAAA,CAAyB,KAAA,EAAO,6BAAA,GAA6B,QAAA;AAAA,KA0nBjE,mBAAA,GAAsB,IAAA,CAChC,gBAAA;;;AAx4CF;iBA+4CgB,cAAA,CAAe,KAAA,EAAO,mBAAA,GAAmB,QAAA"}
1
+ {"version":3,"file":"console-builtin.d.cts","names":[],"sources":["../../src/components/console-builtin.tsx"],"mappings":";;;;;;iBAgEgB,uBAAA,CAAA,GAAuB,QAAA;;AAAvC;;iBAuKgB,iBAAA,CAAA,GAAiB,QAAA;;;AAAjC;iBA8rDgB,4BAAA,CAAA,GAA4B,QAAA;;;;iBAiL5B,4BAAA,CAAA,GAA4B,QAAA;AAAA,KAsFhC,+BAAA,GAAkC,OAAA,CAC5C,IAAA,CAAK,wBAAA;EAEL,IAAA;EASA,OAAA,EAAS,mBAAA;EACT,KAAA,GAAQ,mBAAA;EACR,aAAA;EACA,WAAA;EACA,MAAA,GAAS,QAAA;EACT,SAAA;AAAA;AAjBF;;;AAAA,iBAuBgB,0BAAA,CACd,KAAA,EAAO,+BAAA,GAA+B,QAAA;;;;iBA0KxB,gBAAA,CAAA,GAAgB,QAAA;;;;iBA4EhB,4BAAA,CAAA,GAA4B,QAAA;;;;iBAmC5B,0BAAA,CAAA,GAA0B,QAAA;;;;iBAoF1B,uBAAA,CAAA,GAAuB,QAAA;;;;iBAwCvB,0BAAA,CAAA,GAA0B,QAAA;;;AAtZ1C;KAg7BY,6BAAA,GAAgC,IAAA,CAC1C,wBAAA;;;;iBAOc,wBAAA,CAAyB,KAAA,EAAO,6BAAA,GAA6B,QAAA;AAAA,KA0nBjE,mBAAA,GAAsB,IAAA,CAChC,gBAAA;;;AAx4CF;iBA+4CgB,cAAA,CAAe,KAAA,EAAO,mBAAA,GAAmB,QAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"console-builtin.d.mts","names":[],"sources":["../../src/components/console-builtin.tsx"],"mappings":";;;;;;iBA+DgB,uBAAA,CAAA,GAAuB,QAAA;;AAAvC;;iBAuKgB,iBAAA,CAAA,GAAiB,QAAA;;;AAAjC;iBAqqDgB,4BAAA,CAAA,GAA4B,QAAA;;;;iBAiL5B,4BAAA,CAAA,GAA4B,QAAA;AAAA,KAsFhC,+BAAA,GAAkC,OAAA,CAC5C,IAAA,CAAK,wBAAA;EAEL,IAAA;EASA,OAAA,EAAS,mBAAA;EACT,KAAA,GAAQ,mBAAA;EACR,aAAA;EACA,WAAA;EACA,MAAA,GAAS,QAAA;EACT,SAAA;AAAA;AAjBF;;;AAAA,iBAuBgB,0BAAA,CACd,KAAA,EAAO,+BAAA,GAA+B,QAAA;;;;iBA0KxB,gBAAA,CAAA,GAAgB,QAAA;;;;iBA4EhB,4BAAA,CAAA,GAA4B,QAAA;;;;iBAmC5B,0BAAA,CAAA,GAA0B,QAAA;;;;iBAoF1B,uBAAA,CAAA,GAAuB,QAAA;;;;iBAwCvB,0BAAA,CAAA,GAA0B,QAAA;;;AAtZ1C;KAg7BY,6BAAA,GAAgC,IAAA,CAC1C,wBAAA;;;;iBAOc,wBAAA,CAAyB,KAAA,EAAO,6BAAA,GAA6B,QAAA;AAAA,KA0nBjE,mBAAA,GAAsB,IAAA,CAChC,gBAAA;;;AAx4CF;iBA+4CgB,cAAA,CAAe,KAAA,EAAO,mBAAA,GAAmB,QAAA"}
1
+ {"version":3,"file":"console-builtin.d.mts","names":[],"sources":["../../src/components/console-builtin.tsx"],"mappings":";;;;;;iBAgEgB,uBAAA,CAAA,GAAuB,QAAA;;AAAvC;;iBAuKgB,iBAAA,CAAA,GAAiB,QAAA;;;AAAjC;iBA8rDgB,4BAAA,CAAA,GAA4B,QAAA;;;;iBAiL5B,4BAAA,CAAA,GAA4B,QAAA;AAAA,KAsFhC,+BAAA,GAAkC,OAAA,CAC5C,IAAA,CAAK,wBAAA;EAEL,IAAA;EASA,OAAA,EAAS,mBAAA;EACT,KAAA,GAAQ,mBAAA;EACR,aAAA;EACA,WAAA;EACA,MAAA,GAAS,QAAA;EACT,SAAA;AAAA;AAjBF;;;AAAA,iBAuBgB,0BAAA,CACd,KAAA,EAAO,+BAAA,GAA+B,QAAA;;;;iBA0KxB,gBAAA,CAAA,GAAgB,QAAA;;;;iBA4EhB,4BAAA,CAAA,GAA4B,QAAA;;;;iBAmC5B,0BAAA,CAAA,GAA0B,QAAA;;;;iBAoF1B,uBAAA,CAAA,GAAuB,QAAA;;;;iBAwCvB,0BAAA,CAAA,GAA0B,QAAA;;;AAtZ1C;KAg7BY,6BAAA,GAAgC,IAAA,CAC1C,wBAAA;;;;iBAOc,wBAAA,CAAyB,KAAA,EAAO,6BAAA,GAA6B,QAAA;AAAA,KA0nBjE,mBAAA,GAAsB,IAAA,CAChC,gBAAA;;;AAx4CF;iBA+4CgB,cAAA,CAAe,KAAA,EAAO,mBAAA,GAAmB,QAAA"}
@@ -8,6 +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 { kebabCase } from "@stryke/string-format";
11
12
  import { getIndefiniteArticle } from "@stryke/string-format/vowels";
12
13
  import { defu } from "defu";
13
14
 
@@ -160,6 +161,7 @@ function ColorFunction({ ansi16, ansi256, ansi16m }) {
160
161
  */
161
162
  function ColorsDeclaration() {
162
163
  const colors = useColors();
164
+ const theme = useTheme();
163
165
  return [
164
166
  createComponent(TypeDeclaration, {
165
167
  "export": true,
@@ -1347,9 +1349,30 @@ function ColorsDeclaration() {
1347
1349
  }
1348
1350
  })}
1349
1351
  }
1350
- }
1351
- },
1352
- border: {
1352
+ },
1353
+ tags: { `,
1354
+ createComponent(For, {
1355
+ get each() {
1356
+ return Object.keys(theme.colors.text.tags);
1357
+ },
1358
+ get joiner() {
1359
+ return [code`, `, createIntrinsic("hbr", {})];
1360
+ },
1361
+ children: (key) => code`${kebabCase(key)}: ${createComponent(ColorFunction, {
1362
+ get ansi16() {
1363
+ return colors.ansi16.theme.text.tags[key];
1364
+ },
1365
+ get ansi256() {
1366
+ return colors.ansi256.theme.text.tags[key];
1367
+ },
1368
+ get ansi16m() {
1369
+ return colors.ansi16m.theme.text.tags[key];
1370
+ }
1371
+ })}`
1372
+ }),
1373
+ code` }
1374
+ },
1375
+ border: {
1353
1376
  banner: {
1354
1377
  outline: {
1355
1378
  primary: ${createComponent(ColorFunction, {
@@ -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 { 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\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 },\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(\\`$\\{text ?? url\\} $\\{url\\}\\`));`}\n </IfStatement>\n <hbr />\n {code`return \\`$\\{text ?? url\\} $\\{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 { 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(\\`$\\{text ?? url\\} $\\{url\\}\\`));`}\n </IfStatement>\n <hbr />\n {code`return \\`$\\{text ?? url\\} $\\{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.27",
3
+ "version": "0.1.28",
4
4
  "type": "module",
5
5
  "description": "A package containing a Shell Shock plugin to generate the `console` built-in module.",
6
6
  "repository": {
@@ -129,8 +129,8 @@
129
129
  "@powerlines/deepkit": "^0.6.162",
130
130
  "@powerlines/plugin-alloy": "^0.25.70",
131
131
  "@powerlines/plugin-plugin": "^0.12.334",
132
- "@shell-shock/core": "^0.14.1",
133
- "@shell-shock/plugin-theme": "^0.4.0",
132
+ "@shell-shock/core": "^0.14.2",
133
+ "@shell-shock/plugin-theme": "^0.4.1",
134
134
  "@stryke/string-format": "^0.17.7",
135
135
  "defu": "^6.1.4",
136
136
  "powerlines": "^0.42.24"
@@ -154,5 +154,5 @@
154
154
  "./package.json": "./package.json"
155
155
  }
156
156
  },
157
- "gitHead": "47d5f1bcf7e0a915557aa31aff427b82c07017bd"
157
+ "gitHead": "081a1a99ff0c263af9b6d34547d02e96d0ac398e"
158
158
  }