@shell-shock/preset-script 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/components/args-parser-logic.cjs +678 -0
- package/dist/components/args-parser-logic.cjs.map +1 -0
- package/dist/components/args-parser-logic.d.cts +45 -0
- package/dist/components/args-parser-logic.d.cts.map +1 -0
- package/dist/components/args-parser-logic.d.mts +45 -0
- package/dist/components/args-parser-logic.d.mts.map +1 -0
- package/dist/components/args-parser-logic.mjs +672 -0
- package/dist/components/args-parser-logic.mjs.map +1 -0
- package/dist/components/bin-entry.cjs +188 -0
- package/dist/components/bin-entry.cjs.map +1 -0
- package/dist/components/{entry/bin.d.cts → bin-entry.d.cts} +9 -3
- package/dist/components/bin-entry.d.cts.map +1 -0
- package/dist/components/{entry/bin.d.mts → bin-entry.d.mts} +9 -3
- package/dist/components/bin-entry.d.mts.map +1 -0
- package/dist/components/bin-entry.mjs +185 -0
- package/dist/components/bin-entry.mjs.map +1 -0
- package/dist/components/command-entry.cjs +162 -0
- package/dist/components/command-entry.cjs.map +1 -0
- package/dist/components/command-entry.d.cts +24 -0
- package/dist/components/command-entry.d.cts.map +1 -0
- package/dist/components/command-entry.d.mts +24 -0
- package/dist/components/command-entry.d.mts.map +1 -0
- package/dist/components/command-entry.mjs +158 -0
- package/dist/components/command-entry.mjs.map +1 -0
- package/dist/components/command-router.cjs +129 -74
- package/dist/components/command-router.cjs.map +1 -1
- package/dist/components/command-router.d.cts +13 -4
- package/dist/components/command-router.d.cts.map +1 -0
- package/dist/components/command-router.d.mts +13 -4
- package/dist/components/command-router.d.mts.map +1 -0
- package/dist/components/command-router.mjs +128 -73
- package/dist/components/command-router.mjs.map +1 -1
- package/dist/components/console-builtin.cjs +2086 -0
- package/dist/components/console-builtin.cjs.map +1 -0
- package/dist/components/console-builtin.d.cts +56 -0
- package/dist/components/console-builtin.d.cts.map +1 -0
- package/dist/components/console-builtin.d.mts +56 -0
- package/dist/components/console-builtin.d.mts.map +1 -0
- package/dist/components/console-builtin.mjs +2077 -0
- package/dist/components/console-builtin.mjs.map +1 -0
- package/dist/components/help.cjs +130 -0
- package/dist/components/help.cjs.map +1 -0
- package/dist/components/help.d.cts +57 -0
- package/dist/components/help.d.cts.map +1 -0
- package/dist/components/help.d.mts +57 -0
- package/dist/components/help.d.mts.map +1 -0
- package/dist/components/help.mjs +126 -0
- package/dist/components/help.mjs.map +1 -0
- package/dist/components/index.cjs +39 -15
- package/dist/components/index.d.cts +9 -7
- package/dist/components/index.d.mts +9 -7
- package/dist/components/index.mjs +8 -6
- package/dist/components/utils-builtin.cjs +612 -0
- package/dist/components/utils-builtin.cjs.map +1 -0
- package/dist/components/utils-builtin.d.cts +32 -0
- package/dist/components/utils-builtin.d.cts.map +1 -0
- package/dist/components/utils-builtin.d.mts +32 -0
- package/dist/components/utils-builtin.d.mts.map +1 -0
- package/dist/components/utils-builtin.mjs +605 -0
- package/dist/components/utils-builtin.mjs.map +1 -0
- package/dist/components/virtual-command-entry.cjs +140 -0
- package/dist/components/virtual-command-entry.cjs.map +1 -0
- package/dist/components/virtual-command-entry.d.cts +21 -0
- package/dist/components/virtual-command-entry.d.cts.map +1 -0
- package/dist/components/virtual-command-entry.d.mts +21 -0
- package/dist/components/virtual-command-entry.d.mts.map +1 -0
- package/dist/components/virtual-command-entry.mjs +137 -0
- package/dist/components/virtual-command-entry.mjs.map +1 -0
- package/dist/contexts/index.cjs +4 -0
- package/dist/contexts/index.d.cts +2 -0
- package/dist/contexts/index.d.mts +2 -0
- package/dist/contexts/index.mjs +3 -0
- package/dist/contexts/theme.d.cts +20 -0
- package/dist/contexts/theme.d.cts.map +1 -0
- package/dist/contexts/theme.d.mts +20 -0
- package/dist/contexts/theme.d.mts.map +1 -0
- package/dist/helpers/ansi-utils.cjs +28 -4
- package/dist/helpers/ansi-utils.cjs.map +1 -1
- package/dist/helpers/ansi-utils.d.cts +68 -0
- package/dist/helpers/ansi-utils.d.cts.map +1 -0
- package/dist/helpers/ansi-utils.d.mts +68 -0
- package/dist/helpers/ansi-utils.d.mts.map +1 -0
- package/dist/helpers/ansi-utils.mjs +28 -4
- package/dist/helpers/ansi-utils.mjs.map +1 -1
- package/dist/helpers/get-default-options.cjs +6 -13
- package/dist/helpers/get-default-options.cjs.map +1 -1
- package/dist/helpers/get-default-options.mjs +6 -13
- package/dist/helpers/get-default-options.mjs.map +1 -1
- package/dist/index.cjs +117 -29
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +118 -28
- package/dist/index.mjs.map +1 -1
- package/dist/types/plugin.d.cts +1 -6
- package/dist/types/plugin.d.cts.map +1 -0
- package/dist/types/plugin.d.mts +1 -6
- package/dist/types/plugin.d.mts.map +1 -0
- package/package.json +163 -71
- package/dist/components/builtin/console.cjs +0 -1232
- package/dist/components/builtin/console.cjs.map +0 -1
- package/dist/components/builtin/console.d.cts +0 -37
- package/dist/components/builtin/console.d.mts +0 -37
- package/dist/components/builtin/console.mjs +0 -1225
- package/dist/components/builtin/console.mjs.map +0 -1
- package/dist/components/builtin/index.cjs +0 -9
- package/dist/components/builtin/index.d.cts +0 -2
- package/dist/components/builtin/index.d.mts +0 -2
- package/dist/components/builtin/index.mjs +0 -3
- package/dist/components/entry/bin.cjs +0 -92
- package/dist/components/entry/bin.cjs.map +0 -1
- package/dist/components/entry/bin.mjs +0 -91
- package/dist/components/entry/bin.mjs.map +0 -1
- package/dist/components/entry/command.cjs +0 -54
- package/dist/components/entry/command.cjs.map +0 -1
- package/dist/components/entry/command.d.cts +0 -15
- package/dist/components/entry/command.d.mts +0 -15
- package/dist/components/entry/command.mjs +0 -53
- package/dist/components/entry/command.mjs.map +0 -1
- package/dist/components/entry/index.cjs +0 -3
- package/dist/components/entry/index.d.cts +0 -2
- package/dist/components/entry/index.d.mts +0 -2
- package/dist/components/entry/index.mjs +0 -3
- package/dist/components/shutdown.cjs +0 -93
- package/dist/components/shutdown.cjs.map +0 -1
- package/dist/components/shutdown.d.cts +0 -14
- package/dist/components/shutdown.d.mts +0 -14
- package/dist/components/shutdown.mjs +0 -91
- package/dist/components/shutdown.mjs.map +0 -1
- package/dist/contexts/command.cjs +0 -21
- package/dist/contexts/command.cjs.map +0 -1
- package/dist/contexts/command.mjs +0 -19
- package/dist/contexts/command.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console-builtin.cjs","names":["code","For","Show","ElseClause","FunctionDeclaration","IfStatement","InterfaceDeclaration","InterfaceMember","TypeDeclaration","VarDeclaration","ReflectionKind","BuiltinFile","TSDoc","TSDocDefaultValue","TSDocExample","TSDocParam","TSDocRemarks","TSDocReturns","useColors","useTheme","ColorFunction","ansi16","ansi256","ansi16m","open","close","ColorsDeclaration","colors","_$createComponent","name","doc","children","each","Object","keys","filter","color","idx","_$createIntrinsic","heading","type","initializer","comma","doubleHardline","enderPunctuation","theme","text","banner","title","header","footer","command","description","primary","secondary","tertiary","body","link","message","help","success","info","debug","warning","danger","error","usage","bin","subcommand","options","params","border","outline","divider","app","table","WriteLineFunctionDeclaration","parameters","optional","method","defaultValue","default","padding","MessageFunctionDeclaration","props","variant","consoleFnName","prefix","includes","charAt","when","Boolean","_$memo","borderStyles","topLeft","top","Math","max","length","topRight","left","right","repeat","bottomLeft","bottom","bottomRight","WrapAnsiFunction","StripAnsiFunctionDeclaration","DividerFunctionDeclaration","string","number","LinkFunctionDeclaration","condition","extractBorderOptionsObject","direction","extractBorderOptionsString","TableFunctionDeclaration","property","_$mergeProps","ConsoleBuiltin","id","imports","builtinImports","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 FunctionDeclaration,\n IfStatement,\n InterfaceDeclaration,\n InterfaceMember,\n TypeDeclaration,\n VarDeclaration\n} from \"@alloy-js/typescript\";\nimport { ReflectionKind } from \"@powerlines/deepkit/vendor/type\";\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 { useColors, useTheme } from \"../contexts/theme\";\nimport type { AnsiWrappers, BaseAnsiStylesKeys } from \"../helpers/ansi-utils\";\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 <hbr />\n <hbr />\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 <hbr />\n <hbr />\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 <hbr />\n <hbr />\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 title: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.banner.title}\n ansi256={colors.ansi256.theme.text.banner.title}\n ansi16m={colors.ansi16m.theme.text.banner.title}\n />\n )},\n header: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.banner.header}\n ansi256={colors.ansi256.theme.text.banner.header}\n ansi16m={colors.ansi16m.theme.text.banner.header}\n />\n )},\n footer: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.banner.footer}\n ansi256={colors.ansi256.theme.text.banner.footer}\n ansi16m={colors.ansi16m.theme.text.banner.footer}\n />\n )},\n command: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.banner.command}\n ansi256={colors.ansi256.theme.text.banner.command}\n ansi16m={colors.ansi16m.theme.text.banner.command}\n />\n )},\n description: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.banner.description}\n ansi256={colors.ansi256.theme.text.banner.description}\n ansi16m={colors.ansi16m.theme.text.banner.description}\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 subcommand: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.usage.subcommand}\n ansi256={colors.ansi256.theme.text.usage.subcommand}\n ansi16m={colors.ansi16m.theme.text.usage.subcommand}\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 params: ${(\n <ColorFunction\n ansi16={colors.ansi16.theme.text.usage.params}\n ansi256={colors.ansi256.theme.text.usage.params}\n ansi16m={colors.ansi16m.theme.text.usage.params}\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 },\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 <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 name={\"splitText\"}\n parameters={[\n {\n name: \"text\",\n type: \"string\"\n },\n {\n name: \"maxLength\",\n type: \"number\"\n }\n ]}>\n {code`\n let line = text;\n let result = [] as string[];\n\n while (stripAnsi(line).length > maxLength) {\n if (line.indexOf(\"\\\\n\") !== -1 && stripAnsi(line).indexOf(\"\\\\n\") <= maxLength) {\n result.push(line.slice(0, line.indexOf(\"\\\\n\")));\n line = line.slice(line.indexOf(\"\\\\n\") + 1);\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) <= maxLength) {\n current = line.indexOf(split, current + 1);\n }\n\n return current;\n }, -1);\n if (index === -1) {\n break;\n }\n\n result.push(line.slice(0, index));\n line = line.slice(index + 1);\n }\n }\n\n while (stripAnsi(line).length > maxLength) {\n result.push(line.slice(0, maxLength));\n line = line.slice(maxLength + 1);\n }\n\n if (line.length > 0) {\n result.push(line);\n }\n\n return result;\n`}\n </FunctionDeclaration>\n <hbr />\n <hbr />\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 <hbr />\n <hbr />\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 consoleFnName: \"log\" | \"info\" | \"warn\" | \"error\" | \"debug\";\n description: string;\n prefix?: Children;\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 { type, variant, consoleFnName, description, prefix, parameters } =\n props;\n\n const theme = useTheme();\n\n return (\n <>\n <TSDoc\n heading={`Write ${\n [\"a\", \"e\", \"i\", \"o\", \"u\"].includes(description.charAt(0)) ? \"an\" : \"a\"\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 writeLine(colors.border.message.outline.${variant}(\"${\n theme.borderStyles.message.outline[variant].topLeft\n }\") + colors.border.message.outline.${variant}(\"${\n theme.borderStyles.message.outline[variant].top\n }\".repeat(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].topLeft.length +\n theme.borderStyles.message.outline[variant].topRight.length\n }, 0) / ${\n theme.borderStyles.message.outline[variant].top.length ?? 1\n })) + colors.border.message.outline.${variant}(\"${\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.${variant}(\"${\n theme.borderStyles.message.outline[variant].left +\n \" \".repeat(Math.max(theme.padding.message, 0))\n }\") + line + colors.border.message.outline.${variant}(\"${\n \" \".repeat(Math.max(theme.padding.message, 0)) +\n theme.borderStyles.message.outline[variant].right\n }\"), { consoleFn: console.${consoleFnName} });\n });\n writeLine(colors.border.message.outline.${variant}(\"${\n theme.borderStyles.message.outline[variant].bottomLeft\n }\") + colors.border.message.outline.${variant}(\"${\n theme.borderStyles.message.outline[variant].bottom\n }\".repeat(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].bottomLeft.length +\n theme.borderStyles.message.outline[variant].bottomRight.length\n }, 0) / ${\n theme.borderStyles.message.outline[variant].bottom.length ?? 1\n })) + colors.border.message.outline.${variant}(\"${\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 /\\\\\\\\u001b[\\\\[|\\\\]][0-9;]*m/ and wrap non-ANSI parts with open/closeing tags.`}\n </TSDocRemarks>\n\n <TSDocExample>\n {`const result = wrapAnsi(\"Hello\\\\\\\\u001b[31mWorld\\\\\\\\u001b[0mAgain\", \"\\\\\\\\u001b[36m\", \"\\\\\\\\u001b[39\");\\nconsole.log(result); // \"\\\\\\\\u001b[36mHello\\\\\\\\u001b[39\\\\\\\\u001b[31mWorld\\\\\\\\u001b[0m\\\\\\\\u001b[36mAgain\\\\\\\\u001b[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 = /\\\\\\\\u001b[\\\\[|\\\\]][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 (/^\\\\\\\\u001b[\\\\[|\\\\]][0-9;]*m$/.test(seg)) {\n result += seg;\n continue;\n }\n\n if (!seg) {\n continue;\n }\n\n result += i > 0 && /^\\\\\\\\u001b[\\\\[|\\\\]][0-9;]*m$/.test(tokens[i - 1]!) && i + 1 < tokens.length && /^\\\\\\\\u001b[\\\\[|\\\\]][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\\\\\\\\u001b[31mWorld\\\\\\\\u001b[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 <hbr />\n <hbr />\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 ?? ${theme.padding.app * 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(padding) + 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 \\`\\\\u001b]8;;\\${url}\\\\u0007\\${text ?? url}\\\\u001b]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=\"BorderOption\"\n doc=\"The border options applied to table cells.\">\n {code`\"primary\" | \"secondary\" | \"tertiary\" | \"none\" | string; `}\n </TypeDeclaration>\n <hbr />\n <hbr />\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 <hbr />\n <hbr />\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 </InterfaceDeclaration>\n <hbr />\n <hbr />\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 <hbr />\n <hbr />\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 <hbr />\n <hbr />\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 <hbr />\n <hbr />\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 <hbr />\n <hbr />\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, \"border\">> & Dimensions & {\n border: TableCellBorder;\n };\n `}\n </TypeDeclaration>\n <hbr />\n <hbr />\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, 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});\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\n return {\n value,\n height: 1,\n width,\n border,\n padding,\n align: cell.align || opts?.align || \"left\",\n };\n }\n };\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 => extractTableCell(cell as string | TableCellOptions)));`}\n </IfStatement>\n <ElseClause>\n {code`\n cells.push(\n ...options.map(row => Array.isArray(row)\n ? row.reduce((cellRow, cell) => {\n cellRow.push(extractTableCell(cell));\n return cellRow;\n }, [] as TableCell[])\n : (row as TableRowOptions).values?.reduce((cellRow, cell) => {\n cellRow.push(extractTableCell(cell, row as TableRowOptions));\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) => {\n cellRow.push(extractTableCell(cell));\n return cellRow;\n }, [] as TableCell[])\n : (row as TableRowOptions).values?.reduce((cellRow, cell) => {\n cellRow.push(extractTableCell(cell, options));\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\n// Calculate table dimensions\nlet colWidths = [] as number[];\nlet rowDims = [] as Dimensions[];\n\nconst calculateRowDimensions = () => {\n return cells.reduce((dims, row) => {\n dims.push(row.reduce((dim, cell) => {\n if (cell.width > dim.width) {\n dim.width = cell.width;\n }\n if (cell.height > dim.height) {\n dim.height = cell.height;\n }\n return dim;\n }, { width: 0, height: 0 } as Dimensions));\n\n return dims;\n }, [] as Dimensions[]);\n}\n\nrowDims = calculateRowDimensions();\n\n/*\nlet recalculate!: boolean;\ndo {\n recalculate = false;\n rowDims.map((row, rowIndex) => {\n if (row.width > Math.max(process.stdout.columns - ${Math.max(theme.padding.app, 0) * 2}, 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.max(process.stdout.columns - ${Math.max(theme.padding.app, 0) * 2}, 0) - row.width - cell.width\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) {\n rowDims = calculateRowDimensions();\n }\n} while (recalculate);\n*/\n\nrowDims.map((row, rowIndex) => {\n cells[rowIndex]!.forEach(cell => {\n cell.height = row.height;\n });\n});\n\n// Render table\ncells.forEach(row => {\n let line = \"\";\n row.forEach((cell, colIndex) => {\n const cellContent = cell.value;\n let paddedContent = \"\";\n const totalPadding = cell.padding * 2;\n const contentLength = stripAnsi(cellContent).length;\n const totalWidth = colWidths[colIndex] ?? contentLength + totalPadding;\n\n switch (cell.align) {\n case \"right\":\n paddedContent = \" \".repeat(totalWidth - contentLength - totalPadding) + cellContent + \" \".repeat(totalPadding);\n break;\n case \"center\":\n const leftPadding = Math.floor((totalWidth - contentLength - totalPadding) / 2);\n const rightPadding = totalWidth - contentLength - totalPadding - leftPadding;\n paddedContent = \" \".repeat(leftPadding) + cellContent + \" \".repeat(rightPadding + totalPadding);\n break;\n case \"left\":\n default:\n paddedContent = \" \".repeat(totalPadding) + cellContent + \" \".repeat(totalWidth - contentLength - totalPadding);\n break;\n }\n\n line += cell.border.left + paddedContent;\n if (colIndex === row.length - 1) {\n line += paddedContent + cell.border.right;\n }\n });\n\n writeLine(line);\n});\n`}\n </FunctionDeclaration>\n </>\n );\n}\n\n/**\n * A built-in console utilities module for Shell Shock.\n */\nexport function ConsoleBuiltin() {\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={{\n \"@shell-shock/plugin-theme/types/theme\": [\n { name: \"ThemeColorsResolvedConfig\", type: true }\n ]\n }}\n builtinImports={{\n utils: [\n \"hasFlag\",\n \"isColorSupported\",\n \"colorSupportLevels\",\n \"isHyperlinkSupported\"\n ],\n env: [\"env\", \"isDevelopment\", \"isDebug\"]\n }}>\n <StripAnsiFunctionDeclaration />\n <hbr />\n <hbr />\n <WrapAnsiFunction />\n <hbr />\n <hbr />\n <ColorsDeclaration />\n <hbr />\n <hbr />\n <WriteLineFunctionDeclaration />\n <hbr />\n <hbr />\n <LinkFunctionDeclaration />\n <hbr />\n <hbr />\n <DividerFunctionDeclaration />\n <hbr />\n <hbr />\n <MessageFunctionDeclaration\n type=\"help\"\n variant=\"help\"\n consoleFnName=\"log\"\n description=\"help\"\n />\n <hbr />\n <hbr />\n <MessageFunctionDeclaration\n type=\"success\"\n variant=\"success\"\n consoleFnName=\"info\"\n description=\"success\"\n />\n <hbr />\n <hbr />\n <MessageFunctionDeclaration\n type=\"info\"\n variant=\"info\"\n consoleFnName=\"info\"\n description=\"informational\"\n />\n <hbr />\n <hbr />\n <MessageFunctionDeclaration\n type=\"debug\"\n variant=\"debug\"\n consoleFnName=\"debug\"\n description=\"debug\"\n prefix={\n <IfStatement\n condition={code`!isDevelopment && !isDebug && env.LOG_LEVEL !== \"debug\"`}>{code`return; `}</IfStatement>\n }\n />\n <hbr />\n <hbr />\n <MessageFunctionDeclaration\n type=\"verbose\"\n variant=\"debug\"\n consoleFnName=\"debug\"\n description=\"verbose\"\n prefix={\n <IfStatement\n condition={code`!(isDevelopment || isDebug || env.LOG_LEVEL === \"debug\" || hasFlag([\"verbose\", \"verbose=true\", \"verbose=always\", \"debug\", \"debug=true\", \"debug=always\"]))`}>{code`return; `}</IfStatement>\n }\n />\n <hbr />\n <hbr />\n <MessageFunctionDeclaration\n type=\"warn\"\n variant=\"warning\"\n consoleFnName=\"warn\"\n description=\"warning\"\n />\n <hbr />\n <hbr />\n <MessageFunctionDeclaration\n type=\"danger\"\n variant=\"danger\"\n consoleFnName=\"error\"\n description=\"destructive/danger\"\n />\n <hbr />\n <hbr />\n <MessageFunctionDeclaration\n type=\"error\"\n variant=\"error\"\n consoleFnName=\"error\"\n description=\"error\"\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 <hbr />\n <hbr />\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 <hbr />\n <hbr />\n <TableFunctionDeclaration />\n <hbr />\n <hbr />\n </BuiltinFile>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Children } from "@alloy-js/core";
|
|
2
|
+
import { FunctionDeclarationProps } from "@alloy-js/typescript";
|
|
3
|
+
import { ThemeMessageVariant } from "@shell-shock/plugin-theme/types/theme";
|
|
4
|
+
|
|
5
|
+
//#region src/components/console-builtin.d.ts
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* A component to generate an object containing functions for coloring text in a Shell Shock project.
|
|
9
|
+
*/
|
|
10
|
+
declare function ColorsDeclaration(): Children;
|
|
11
|
+
/**
|
|
12
|
+
* A component to generate the `writeLine` function in the `shell-shock:console` builtin module.
|
|
13
|
+
*/
|
|
14
|
+
declare function WriteLineFunctionDeclaration(): Children;
|
|
15
|
+
type MessageFunctionDeclarationProps = Partial<Pick<FunctionDeclarationProps, "parameters">> & {
|
|
16
|
+
type: "success" | "help" | "info" | "debug" | "verbose" | "warn" | "danger" | "error";
|
|
17
|
+
variant: ThemeMessageVariant;
|
|
18
|
+
consoleFnName: "log" | "info" | "warn" | "error" | "debug";
|
|
19
|
+
description: string;
|
|
20
|
+
prefix?: Children;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* A component to generate the message functions in the `shell-shock:console` builtin module.
|
|
24
|
+
*/
|
|
25
|
+
declare function MessageFunctionDeclaration(props: MessageFunctionDeclarationProps): Children;
|
|
26
|
+
/**
|
|
27
|
+
* A component to generate the `wrapAnsi` function in the `shell-shock:console` builtin module.
|
|
28
|
+
*/
|
|
29
|
+
declare function WrapAnsiFunction(): Children;
|
|
30
|
+
/**
|
|
31
|
+
* A component to generate the `stripAnsi` function in the `shell-shock:console` builtin module.
|
|
32
|
+
*/
|
|
33
|
+
declare function StripAnsiFunctionDeclaration(): Children;
|
|
34
|
+
/**
|
|
35
|
+
* A component to generate the `stripAnsi` function in the `shell-shock:console` builtin module.
|
|
36
|
+
*/
|
|
37
|
+
declare function DividerFunctionDeclaration(): Children;
|
|
38
|
+
/**
|
|
39
|
+
* A component to generate the `link` function in the `shell-shock:console` builtin module.
|
|
40
|
+
*/
|
|
41
|
+
declare function LinkFunctionDeclaration(): Children;
|
|
42
|
+
/**
|
|
43
|
+
* Props for the TableFunctionDeclaration component.
|
|
44
|
+
*/
|
|
45
|
+
type TableFunctionDeclarationProps = Omit<FunctionDeclarationProps, "parameters" | "name">;
|
|
46
|
+
/**
|
|
47
|
+
* A component to generate the table functions in the `shell-shock:console` builtin module.
|
|
48
|
+
*/
|
|
49
|
+
declare function TableFunctionDeclaration(props: TableFunctionDeclarationProps): Children;
|
|
50
|
+
/**
|
|
51
|
+
* A built-in console utilities module for Shell Shock.
|
|
52
|
+
*/
|
|
53
|
+
declare function ConsoleBuiltin(): Children;
|
|
54
|
+
//#endregion
|
|
55
|
+
export { ColorsDeclaration, ConsoleBuiltin, DividerFunctionDeclaration, LinkFunctionDeclaration, MessageFunctionDeclaration, MessageFunctionDeclarationProps, StripAnsiFunctionDeclaration, TableFunctionDeclaration, TableFunctionDeclarationProps, WrapAnsiFunction, WriteLineFunctionDeclaration };
|
|
56
|
+
//# sourceMappingURL=console-builtin.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console-builtin.d.cts","names":[],"sources":["../../src/components/console-builtin.tsx"],"sourcesContent":[],"mappings":";;;;;;;;AA8EA;AA47BgB,iBA57BA,iBAAA,CAAA,CA47B4B,EA57BX,QA47BW;AAuJ5C;;;AAA8C,iBAvJ9B,4BAAA,CAAA,CAuJ8B,EAvJF,QAuJE;AAYnC,KAZC,+BAAA,GAAkC,OAYnC,CAXT,IAWS,CAXJ,wBAWI,EAAA,YAAA,CAAA,CAAA,GAAA;EAGA,IAAA,EAAA,SAAA,GAAA,MAAA,GAAA,MAAA,GAAA,OAAA,GAAA,SAAA,GAAA,MAAA,GAAA,QAAA,GAAA,OAAA;EAAQ,OAAA,EAHR,mBAGQ;EAMH,aAAA,EAAA,KAAA,GAAA,MAA0B,GAAA,MAAA,GACjC,OAAA,GAAA,OAAA;EAoGO,WAAA,EAAA,MAAgB;EA4EhB,MAAA,CAAA,EAvLL,QAuLK;AAmChB,CAAA;AAsFA;AA0FA;AAQA;AA0cgB,iBAt1BA,0BAAA,CAs1Bc,KAAA,EAr1BrB,+BAq1BqB,CAAA,EAr1BU,QAq1BV;;;;iBAjvBd,gBAAA,CAAA,GAAgB;;;;iBA4EhB,4BAAA,CAAA,GAA4B;;;;iBAmC5B,0BAAA,CAAA,GAA0B;;;;iBAsF1B,uBAAA,CAAA,GAAuB;;;;KA0F3B,6BAAA,GAAgC,KAC1C;;;;iBAOc,wBAAA,QAAgC,gCAA6B;;;;iBA0c7D,cAAA,CAAA,GAAc"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Children } from "@alloy-js/core";
|
|
2
|
+
import { FunctionDeclarationProps } from "@alloy-js/typescript";
|
|
3
|
+
import { ThemeMessageVariant } from "@shell-shock/plugin-theme/types/theme";
|
|
4
|
+
|
|
5
|
+
//#region src/components/console-builtin.d.ts
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* A component to generate an object containing functions for coloring text in a Shell Shock project.
|
|
9
|
+
*/
|
|
10
|
+
declare function ColorsDeclaration(): Children;
|
|
11
|
+
/**
|
|
12
|
+
* A component to generate the `writeLine` function in the `shell-shock:console` builtin module.
|
|
13
|
+
*/
|
|
14
|
+
declare function WriteLineFunctionDeclaration(): Children;
|
|
15
|
+
type MessageFunctionDeclarationProps = Partial<Pick<FunctionDeclarationProps, "parameters">> & {
|
|
16
|
+
type: "success" | "help" | "info" | "debug" | "verbose" | "warn" | "danger" | "error";
|
|
17
|
+
variant: ThemeMessageVariant;
|
|
18
|
+
consoleFnName: "log" | "info" | "warn" | "error" | "debug";
|
|
19
|
+
description: string;
|
|
20
|
+
prefix?: Children;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* A component to generate the message functions in the `shell-shock:console` builtin module.
|
|
24
|
+
*/
|
|
25
|
+
declare function MessageFunctionDeclaration(props: MessageFunctionDeclarationProps): Children;
|
|
26
|
+
/**
|
|
27
|
+
* A component to generate the `wrapAnsi` function in the `shell-shock:console` builtin module.
|
|
28
|
+
*/
|
|
29
|
+
declare function WrapAnsiFunction(): Children;
|
|
30
|
+
/**
|
|
31
|
+
* A component to generate the `stripAnsi` function in the `shell-shock:console` builtin module.
|
|
32
|
+
*/
|
|
33
|
+
declare function StripAnsiFunctionDeclaration(): Children;
|
|
34
|
+
/**
|
|
35
|
+
* A component to generate the `stripAnsi` function in the `shell-shock:console` builtin module.
|
|
36
|
+
*/
|
|
37
|
+
declare function DividerFunctionDeclaration(): Children;
|
|
38
|
+
/**
|
|
39
|
+
* A component to generate the `link` function in the `shell-shock:console` builtin module.
|
|
40
|
+
*/
|
|
41
|
+
declare function LinkFunctionDeclaration(): Children;
|
|
42
|
+
/**
|
|
43
|
+
* Props for the TableFunctionDeclaration component.
|
|
44
|
+
*/
|
|
45
|
+
type TableFunctionDeclarationProps = Omit<FunctionDeclarationProps, "parameters" | "name">;
|
|
46
|
+
/**
|
|
47
|
+
* A component to generate the table functions in the `shell-shock:console` builtin module.
|
|
48
|
+
*/
|
|
49
|
+
declare function TableFunctionDeclaration(props: TableFunctionDeclarationProps): Children;
|
|
50
|
+
/**
|
|
51
|
+
* A built-in console utilities module for Shell Shock.
|
|
52
|
+
*/
|
|
53
|
+
declare function ConsoleBuiltin(): Children;
|
|
54
|
+
//#endregion
|
|
55
|
+
export { ColorsDeclaration, ConsoleBuiltin, DividerFunctionDeclaration, LinkFunctionDeclaration, MessageFunctionDeclaration, MessageFunctionDeclarationProps, StripAnsiFunctionDeclaration, TableFunctionDeclaration, TableFunctionDeclarationProps, WrapAnsiFunction, WriteLineFunctionDeclaration };
|
|
56
|
+
//# sourceMappingURL=console-builtin.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console-builtin.d.mts","names":[],"sources":["../../src/components/console-builtin.tsx"],"sourcesContent":[],"mappings":";;;;;;;;AA8EA;AA47BgB,iBA57BA,iBAAA,CAAA,CA47B4B,EA57BX,QA47BW;AAuJ5C;;;AAA8C,iBAvJ9B,4BAAA,CAAA,CAuJ8B,EAvJF,QAuJE;AAYnC,KAZC,+BAAA,GAAkC,OAYnC,CAXT,IAWS,CAXJ,wBAWI,EAAA,YAAA,CAAA,CAAA,GAAA;EAGA,IAAA,EAAA,SAAA,GAAA,MAAA,GAAA,MAAA,GAAA,OAAA,GAAA,SAAA,GAAA,MAAA,GAAA,QAAA,GAAA,OAAA;EAAQ,OAAA,EAHR,mBAGQ;EAMH,aAAA,EAAA,KAAA,GAAA,MAA0B,GAAA,MAAA,GACjC,OAAA,GAAA,OAAA;EAoGO,WAAA,EAAA,MAAgB;EA4EhB,MAAA,CAAA,EAvLL,QAuLK;AAmChB,CAAA;AAsFA;AA0FA;AAQA;AA0cgB,iBAt1BA,0BAAA,CAs1Bc,KAAA,EAr1BrB,+BAq1BqB,CAAA,EAr1BU,QAq1BV;;;;iBAjvBd,gBAAA,CAAA,GAAgB;;;;iBA4EhB,4BAAA,CAAA,GAA4B;;;;iBAmC5B,0BAAA,CAAA,GAA0B;;;;iBAsF1B,uBAAA,CAAA,GAAuB;;;;KA0F3B,6BAAA,GAAgC,KAC1C;;;;iBAOc,wBAAA,QAAgC,gCAA6B;;;;iBA0c7D,cAAA,CAAA,GAAc"}
|