@shell-shock/preset-script 0.6.7 → 0.6.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/components/banner-function-declaration.cjs +3 -3
  2. package/dist/components/banner-function-declaration.cjs.map +1 -1
  3. package/dist/components/banner-function-declaration.d.cts.map +1 -1
  4. package/dist/components/banner-function-declaration.d.mts.map +1 -1
  5. package/dist/components/banner-function-declaration.mjs +3 -3
  6. package/dist/components/banner-function-declaration.mjs.map +1 -1
  7. package/dist/components/command-entry.cjs +1 -1
  8. package/dist/components/command-entry.cjs.map +1 -1
  9. package/dist/components/command-entry.mjs +1 -1
  10. package/dist/components/command-entry.mjs.map +1 -1
  11. package/dist/components/console-builtin.cjs +21 -5
  12. package/dist/components/console-builtin.cjs.map +1 -1
  13. package/dist/components/console-builtin.d.cts.map +1 -1
  14. package/dist/components/console-builtin.d.mts.map +1 -1
  15. package/dist/components/console-builtin.mjs +21 -5
  16. package/dist/components/console-builtin.mjs.map +1 -1
  17. package/dist/components/helpers.d.cts +5 -5
  18. package/dist/components/helpers.d.cts.map +1 -1
  19. package/dist/components/utils-builtin.cjs +10 -10
  20. package/dist/components/utils-builtin.cjs.map +1 -1
  21. package/dist/components/utils-builtin.d.cts +8 -8
  22. package/dist/components/utils-builtin.mjs +10 -10
  23. package/dist/components/utils-builtin.mjs.map +1 -1
  24. package/dist/helpers/ansi-utils.cjs +4 -0
  25. package/dist/helpers/ansi-utils.cjs.map +1 -1
  26. package/dist/helpers/ansi-utils.d.cts.map +1 -1
  27. package/dist/helpers/ansi-utils.d.mts.map +1 -1
  28. package/dist/helpers/ansi-utils.mjs +4 -0
  29. package/dist/helpers/ansi-utils.mjs.map +1 -1
  30. package/dist/types/plugin.d.mts.map +1 -1
  31. package/package.json +10 -10
@@ -1 +1 @@
1
- {"version":3,"file":"console-builtin.cjs","names":["code","For","Show","ElseClause","ElseIfClause","FunctionDeclaration","IfStatement","InterfaceDeclaration","InterfaceMember","TypeDeclaration","VarDeclaration","ReflectionKind","Spacing","BuiltinFile","TSDoc","TSDocDefaultValue","TSDocExample","TSDocParam","TSDocRemarks","TSDocReturns","getIndefiniteArticle","defu","useColors","useTheme","IsNotDebug","IsNotVerbose","AnsiHelpersDeclarations","_$createComponent","name","doc","children","parameters","type","ColorFunction","ansi16","ansi256","ansi16m","open","close","ColorsDeclaration","colors","each","Object","keys","filter","color","idx","_$createIntrinsic","heading","initializer","comma","doubleHardline","enderPunctuation","theme","text","banner","header","primary","secondary","tertiary","footer","command","title","link","description","body","message","help","success","info","debug","warning","danger","error","usage","bin","dynamic","options","arguments","prompt","icon","active","submitted","cancelled","disabled","input","inactive","border","outline","divider","app","table","WriteLineFunctionDeclaration","returnType","optional","method","defaultValue","default","padding","MessageFunctionDeclaration","props","variant","consoleFnName","prefix","timestamp","when","Boolean","_$memo","labels","borderStyles","bottom","topLeft","icons","top","Math","max","length","topRight","left","right","repeat","bottomLeft","bottomRight","WrapAnsiFunction","StripAnsiFunctionDeclaration","DividerFunctionDeclaration","string","number","LinkFunctionDeclaration","condition","extractBorderOptionsObject","direction","extractBorderOptionsString","TableFunctionDeclaration","property","_$mergeProps","ConsoleBuiltin","imports","builtinImports","id","utils","env"],"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 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 type {\n ThemeMessageVariant,\n ThemeResolvedConfig\n} from \"@shell-shock/plugin-theme/types/theme\";\nimport { getIndefiniteArticle } from \"@stryke/string-format/vowels\";\nimport { defu } from \"defu\";\nimport { useColors, useTheme } from \"../contexts/theme\";\nimport type { AnsiWrappers, BaseAnsiStylesKeys } from \"../helpers/ansi-utils\";\nimport { IsNotDebug, IsNotVerbose } from \"./helpers\";\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, y) {\n if (!y) {\n return \\`\\\\x1B[\\${x + 1}G\\`;\n }\n\n return \\`\\\\x1B[\\${y + 1};\\${x + 1}H\\`;\n },\n move(x, y) {\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) {\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) => {\n try {\n if (!isColorSupported) {\n return String(text);\n }\n\n if (colorSupportLevels.stdout === 1) {\n return wrapAnsi(text, \"${ansi16.open}\", \"${ansi16.close}\");\n } else if (colorSupportLevels.stdout === 2) {\n return wrapAnsi(text, \"${ansi256.open}\", \"${ansi256.close}\");\n }\n\n return wrapAnsi(text, \"${ansi16m.open}\", \"${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 arguments: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.usage.arguments}\n ansi256={colors.ansi256.theme.text.usage.arguments}\n ansi16m={colors.ansi16m.theme.text.usage.arguments}\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 },\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 },\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 `writeLine` function in the `shell-shock:console` builtin module.\n */\nexport function WriteLineFunctionDeclaration() {\n const theme = useTheme();\n\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 <Spacing />\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(\"\");\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/closeing 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\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\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 <hbr />\n <hbr />\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 <hbr />\n <hbr />\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 ]\n })}\n builtinImports={defu(builtinImports, {\n utils: [\n \"hasFlag\",\n \"isMinimal\",\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 <LinkFunctionDeclaration />\n <Spacing />\n <DividerFunctionDeclaration />\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 condition={code`env.STACKTRACE && (err as Error)?.stack`}>\n {code`message += \" \\\\n\\\\n\" + (err as Error).stack;`}\n </IfStatement>\n </IfStatement>\n <ElseClause>{code`message = String(err);`}</ElseClause>\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.cjs","names":["code","For","Show","ElseClause","ElseIfClause","FunctionDeclaration","IfStatement","InterfaceDeclaration","InterfaceMember","TypeDeclaration","VarDeclaration","ReflectionKind","Spacing","BuiltinFile","TSDoc","TSDocDefaultValue","TSDocExample","TSDocParam","TSDocRemarks","TSDocReturns","getIndefiniteArticle","defu","useColors","useTheme","IsNotDebug","IsNotVerbose","AnsiHelpersDeclarations","_$createComponent","name","doc","children","parameters","type","ColorFunction","ansi16","ansi256","ansi16m","open","close","ColorsDeclaration","colors","each","Object","keys","filter","color","idx","_$createIntrinsic","heading","initializer","comma","doubleHardline","enderPunctuation","theme","text","banner","header","primary","secondary","tertiary","footer","command","title","link","description","body","message","help","success","info","debug","warning","danger","error","usage","bin","dynamic","options","arguments","prompt","icon","active","submitted","cancelled","disabled","input","inactive","placeholder","border","outline","divider","app","table","WriteLineFunctionDeclaration","returnType","optional","method","defaultValue","default","padding","MessageFunctionDeclaration","props","variant","consoleFnName","prefix","timestamp","when","Boolean","_$memo","labels","borderStyles","bottom","topLeft","icons","top","Math","max","length","topRight","left","right","repeat","bottomLeft","bottomRight","WrapAnsiFunction","StripAnsiFunctionDeclaration","DividerFunctionDeclaration","string","number","LinkFunctionDeclaration","condition","extractBorderOptionsObject","direction","extractBorderOptionsString","TableFunctionDeclaration","property","_$mergeProps","ConsoleBuiltin","imports","builtinImports","id","utils","env"],"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 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 type {\n ThemeMessageVariant,\n ThemeResolvedConfig\n} from \"@shell-shock/plugin-theme/types/theme\";\nimport { getIndefiniteArticle } from \"@stryke/string-format/vowels\";\nimport { defu } from \"defu\";\nimport { useColors, useTheme } from \"../contexts/theme\";\nimport type { AnsiWrappers, BaseAnsiStylesKeys } from \"../helpers/ansi-utils\";\nimport { IsNotDebug, IsNotVerbose } from \"./helpers\";\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, y) {\n if (!y) {\n return \\`\\\\x1B[\\${x + 1}G\\`;\n }\n\n return \\`\\\\x1B[\\${y + 1};\\${x + 1}H\\`;\n },\n move(x, y) {\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) {\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) => {\n try {\n if (!isColorSupported) {\n return String(text);\n }\n\n if (colorSupportLevels.stdout === 1) {\n return wrapAnsi(text, \"${ansi16.open}\", \"${ansi16.close}\");\n } else if (colorSupportLevels.stdout === 2) {\n return wrapAnsi(text, \"${ansi256.open}\", \"${ansi256.close}\");\n }\n\n return wrapAnsi(text, \"${ansi16m.open}\", \"${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 arguments: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.usage.arguments}\n ansi256={colors.ansi256.theme.text.usage.arguments}\n ansi16m={colors.ansi16m.theme.text.usage.arguments}\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 },\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 `writeLine` function in the `shell-shock:console` builtin module.\n */\nexport function WriteLineFunctionDeclaration() {\n const theme = useTheme();\n\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 <Spacing />\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(\"\");\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/closeing 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\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\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 <hbr />\n <hbr />\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 <hbr />\n <hbr />\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 ]\n })}\n builtinImports={defu(builtinImports, {\n utils: [\n \"hasFlag\",\n \"isMinimal\",\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 <LinkFunctionDeclaration />\n <Spacing />\n <DividerFunctionDeclaration />\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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"}