@shell-shock/preset-script 0.3.0 → 0.3.2

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 (50) hide show
  1. package/README.md +1 -1
  2. package/dist/components/args-parser-logic.d.cts +7 -7
  3. package/dist/components/command-entry.d.cts +4 -4
  4. package/dist/components/command-entry.d.cts.map +1 -1
  5. package/dist/components/command-entry.d.mts +4 -4
  6. package/dist/components/command-entry.d.mts.map +1 -1
  7. package/dist/components/console-builtin.cjs +17 -17
  8. package/dist/components/console-builtin.cjs.map +1 -1
  9. package/dist/components/console-builtin.d.cts +11 -2
  10. package/dist/components/console-builtin.d.cts.map +1 -1
  11. package/dist/components/console-builtin.d.mts +11 -2
  12. package/dist/components/console-builtin.d.mts.map +1 -1
  13. package/dist/components/console-builtin.mjs +17 -17
  14. package/dist/components/console-builtin.mjs.map +1 -1
  15. package/dist/components/help.cjs +3 -3
  16. package/dist/components/help.cjs.map +1 -1
  17. package/dist/components/help.d.cts +5 -5
  18. package/dist/components/help.d.cts.map +1 -1
  19. package/dist/components/help.d.mts +5 -5
  20. package/dist/components/help.mjs +3 -3
  21. package/dist/components/help.mjs.map +1 -1
  22. package/dist/components/index.d.cts +2 -2
  23. package/dist/components/index.d.mts +2 -2
  24. package/dist/components/utils-builtin.cjs +1 -1
  25. package/dist/components/utils-builtin.cjs.map +1 -1
  26. package/dist/components/utils-builtin.d.cts +7 -7
  27. package/dist/components/utils-builtin.d.mts +7 -7
  28. package/dist/components/utils-builtin.mjs +1 -1
  29. package/dist/components/utils-builtin.mjs.map +1 -1
  30. package/dist/components/virtual-command-entry.d.cts +3 -3
  31. package/dist/contexts/theme.cjs +2 -2
  32. package/dist/contexts/theme.cjs.map +1 -1
  33. package/dist/helpers/ansi-utils.cjs +3 -0
  34. package/dist/helpers/ansi-utils.d.cts +8 -1
  35. package/dist/helpers/ansi-utils.d.cts.map +1 -1
  36. package/dist/helpers/ansi-utils.d.mts +8 -1
  37. package/dist/helpers/ansi-utils.d.mts.map +1 -1
  38. package/dist/helpers/ansi-utils.mjs +1 -1
  39. package/dist/helpers/get-default-options.d.cts +13 -0
  40. package/dist/helpers/get-default-options.d.cts.map +1 -0
  41. package/dist/helpers/get-default-options.d.mts +13 -0
  42. package/dist/helpers/get-default-options.d.mts.map +1 -0
  43. package/dist/index.cjs +2 -2
  44. package/dist/index.cjs.map +1 -1
  45. package/dist/index.d.cts.map +1 -1
  46. package/dist/index.d.mts.map +1 -1
  47. package/dist/index.mjs.map +1 -1
  48. package/dist/types/plugin.d.cts.map +1 -1
  49. package/dist/types/plugin.d.mts.map +1 -1
  50. package/package.json +38 -10
@@ -57,10 +57,19 @@ type TableFunctionDeclarationProps = Omit<FunctionDeclarationProps, "parameters"
57
57
  * A component to generate the table functions in the `shell-shock:console` builtin module.
58
58
  */
59
59
  declare function TableFunctionDeclaration(props: TableFunctionDeclarationProps): Children;
60
+ interface ConsoleBuiltinProps {
61
+ /**
62
+ * A component to add the `banner` function to the console builtin module.
63
+ *
64
+ * @remarks
65
+ * By default the {@link BannerFunctionDeclaration} component is used, but this prop allows you to provide a custom implementation if desired.
66
+ */
67
+ banner?: Children;
68
+ }
60
69
  /**
61
70
  * A built-in console utilities module for Shell Shock.
62
71
  */
63
- declare function ConsoleBuiltin(): Children;
72
+ declare function ConsoleBuiltin(props: ConsoleBuiltinProps): Children;
64
73
  //#endregion
65
- export { BannerFunctionDeclaration, BannerFunctionDeclarationProps, ColorsDeclaration, ConsoleBuiltin, DividerFunctionDeclaration, LinkFunctionDeclaration, MessageFunctionDeclaration, MessageFunctionDeclarationProps, StripAnsiFunctionDeclaration, TableFunctionDeclaration, TableFunctionDeclarationProps, WrapAnsiFunction, WriteLineFunctionDeclaration };
74
+ export { BannerFunctionDeclaration, BannerFunctionDeclarationProps, ColorsDeclaration, ConsoleBuiltin, ConsoleBuiltinProps, DividerFunctionDeclaration, LinkFunctionDeclaration, MessageFunctionDeclaration, MessageFunctionDeclarationProps, StripAnsiFunctionDeclaration, TableFunctionDeclaration, TableFunctionDeclarationProps, WrapAnsiFunction, WriteLineFunctionDeclaration };
66
75
  //# sourceMappingURL=console-builtin.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"console-builtin.d.cts","names":[],"sources":["../../src/components/console-builtin.tsx"],"sourcesContent":[],"mappings":";;;;;;;;AAuFA;AAwpCgB,iBAxpCA,iBAAA,CAAA,CAwpC4B,EAxpCX,QAwpCW;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;EAOH,aAAA,EAAA,KAAA,GAAA,MAA0B,GAAA,MAAA,GACjC,OAAA,GAAA,OAAA;EAuKQ,WAAA,EAAA,MAAA;EASD,MAAA,CAAA,EAxLL,QAwLK;EA0LA,SAAA,CAAA,EAAA,OAAgB;AA4EhC,CAAA;AAmCA;AAsFA;AA0FA;AAQgB,iBAlpBA,0BAAA,CAkpBgC,KAAA,EAjpBvC,+BAipBoE,CAAA,EAjpBrC,QAipBqC;AAse7D,UAh9BC,8BAAA,CAg9Ba;YA/8BlB;;;;;;;iBAQI,yBAAA,QACP,iCAA8B;;;;iBAyLvB,gBAAA,CAAA,GAAgB;;;;iBA4EhB,4BAAA,CAAA,GAA4B;;;;iBAmC5B,0BAAA,CAAA,GAA0B;;;;iBAsF1B,uBAAA,CAAA,GAAuB;;;;KA0F3B,6BAAA,GAAgC,KAC1C;;;;iBAOc,wBAAA,QAAgC,gCAA6B;;;;iBAse7D,cAAA,CAAA,GAAc"}
1
+ {"version":3,"file":"console-builtin.d.cts","names":[],"sources":["../../src/components/console-builtin.tsx"],"sourcesContent":[],"mappings":";;;;;;;;AAuFA;AAwpCgB,iBAxpCA,iBAAA,CAAA,CAwpC4B,EAxpCX,QAwpCW;AAsJ5C;;;AAA8C,iBAtJ9B,4BAAA,CAAA,CAsJ8B,EAtJF,QAsJE;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;EAOH,aAAA,EAAA,KAAA,GAAA,MAA0B,GAAA,MAAA,GACjC,OAAA,GAAA,OAAA;EAuKQ,WAAA,EAAA,MAAA;EASD,MAAA,CAAA,EAxLL,QAwLK;EA0LA,SAAA,CAAA,EAAA,OAAgB;AA4EhC,CAAA;AAmCA;AAsFA;AA0FA;AAQgB,iBAlpBA,0BAAA,CAkpBgC,KAAA,EAjpBvC,+BAipBoE,CAAA,EAjpBrC,QAipBqC;AAme5D,UA78BA,8BAAA,CAo9BE;EAMH,OAAA,CAAA,EAz9BJ,iBAy9BkB;;;;;;;iBAj9Bd,yBAAA,QACP,iCAA8B;;;;iBAyLvB,gBAAA,CAAA,GAAgB;;;;iBA4EhB,4BAAA,CAAA,GAA4B;;;;iBAmC5B,0BAAA,CAAA,GAA0B;;;;iBAsF1B,uBAAA,CAAA,GAAuB;;;;KA0F3B,6BAAA,GAAgC,KAC1C;;;;iBAOc,wBAAA,QAAgC,gCAA6B;UAme5D,mBAAA;;;;;;;WAON;;;;;iBAMK,cAAA,QAAsB,sBAAmB"}
@@ -57,10 +57,19 @@ type TableFunctionDeclarationProps = Omit<FunctionDeclarationProps, "parameters"
57
57
  * A component to generate the table functions in the `shell-shock:console` builtin module.
58
58
  */
59
59
  declare function TableFunctionDeclaration(props: TableFunctionDeclarationProps): Children;
60
+ interface ConsoleBuiltinProps {
61
+ /**
62
+ * A component to add the `banner` function to the console builtin module.
63
+ *
64
+ * @remarks
65
+ * By default the {@link BannerFunctionDeclaration} component is used, but this prop allows you to provide a custom implementation if desired.
66
+ */
67
+ banner?: Children;
68
+ }
60
69
  /**
61
70
  * A built-in console utilities module for Shell Shock.
62
71
  */
63
- declare function ConsoleBuiltin(): Children;
72
+ declare function ConsoleBuiltin(props: ConsoleBuiltinProps): Children;
64
73
  //#endregion
65
- export { BannerFunctionDeclaration, BannerFunctionDeclarationProps, ColorsDeclaration, ConsoleBuiltin, DividerFunctionDeclaration, LinkFunctionDeclaration, MessageFunctionDeclaration, MessageFunctionDeclarationProps, StripAnsiFunctionDeclaration, TableFunctionDeclaration, TableFunctionDeclarationProps, WrapAnsiFunction, WriteLineFunctionDeclaration };
74
+ export { BannerFunctionDeclaration, BannerFunctionDeclarationProps, ColorsDeclaration, ConsoleBuiltin, ConsoleBuiltinProps, DividerFunctionDeclaration, LinkFunctionDeclaration, MessageFunctionDeclaration, MessageFunctionDeclarationProps, StripAnsiFunctionDeclaration, TableFunctionDeclaration, TableFunctionDeclarationProps, WrapAnsiFunction, WriteLineFunctionDeclaration };
66
75
  //# sourceMappingURL=console-builtin.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"console-builtin.d.mts","names":[],"sources":["../../src/components/console-builtin.tsx"],"sourcesContent":[],"mappings":";;;;;;;;AAuFA;AAwpCgB,iBAxpCA,iBAAA,CAAA,CAwpC4B,EAxpCX,QAwpCW;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;EAOH,aAAA,EAAA,KAAA,GAAA,MAA0B,GAAA,MAAA,GACjC,OAAA,GAAA,OAAA;EAuKQ,WAAA,EAAA,MAAA;EASD,MAAA,CAAA,EAxLL,QAwLK;EA0LA,SAAA,CAAA,EAAA,OAAgB;AA4EhC,CAAA;AAmCA;AAsFA;AA0FA;AAQgB,iBAlpBA,0BAAA,CAkpBgC,KAAA,EAjpBvC,+BAipBoE,CAAA,EAjpBrC,QAipBqC;AAse7D,UAh9BC,8BAAA,CAg9Ba;YA/8BlB;;;;;;;iBAQI,yBAAA,QACP,iCAA8B;;;;iBAyLvB,gBAAA,CAAA,GAAgB;;;;iBA4EhB,4BAAA,CAAA,GAA4B;;;;iBAmC5B,0BAAA,CAAA,GAA0B;;;;iBAsF1B,uBAAA,CAAA,GAAuB;;;;KA0F3B,6BAAA,GAAgC,KAC1C;;;;iBAOc,wBAAA,QAAgC,gCAA6B;;;;iBAse7D,cAAA,CAAA,GAAc"}
1
+ {"version":3,"file":"console-builtin.d.mts","names":[],"sources":["../../src/components/console-builtin.tsx"],"sourcesContent":[],"mappings":";;;;;;;;AAuFA;AAwpCgB,iBAxpCA,iBAAA,CAAA,CAwpC4B,EAxpCX,QAwpCW;AAsJ5C;;;AAA8C,iBAtJ9B,4BAAA,CAAA,CAsJ8B,EAtJF,QAsJE;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;EAOH,aAAA,EAAA,KAAA,GAAA,MAA0B,GAAA,MAAA,GACjC,OAAA,GAAA,OAAA;EAuKQ,WAAA,EAAA,MAAA;EASD,MAAA,CAAA,EAxLL,QAwLK;EA0LA,SAAA,CAAA,EAAA,OAAgB;AA4EhC,CAAA;AAmCA;AAsFA;AA0FA;AAQgB,iBAlpBA,0BAAA,CAkpBgC,KAAA,EAjpBvC,+BAipBoE,CAAA,EAjpBrC,QAipBqC;AAme5D,UA78BA,8BAAA,CAo9BE;EAMH,OAAA,CAAA,EAz9BJ,iBAy9BkB;;;;;;;iBAj9Bd,yBAAA,QACP,iCAA8B;;;;iBAyLvB,gBAAA,CAAA,GAAgB;;;;iBA4EhB,4BAAA,CAAA,GAA4B;;;;iBAmC5B,0BAAA,CAAA,GAA0B;;;;iBAsF1B,uBAAA,CAAA,GAAuB;;;;KA0F3B,6BAAA,GAAgC,KAC1C;;;;iBAOc,wBAAA,QAAgC,gCAA6B;UAme5D,mBAAA;;;;;;;WAON;;;;;iBAMK,cAAA,QAAsB,sBAAmB"}
@@ -1135,10 +1135,12 @@ function WriteLineFunctionDeclaration() {
1135
1135
  let line = text;
1136
1136
  let result = [] as string[];
1137
1137
 
1138
- while (stripAnsi(line).length > maxLength) {
1139
- if (line.indexOf("\\n") !== -1 && stripAnsi(line).indexOf("\\n") <= maxLength) {
1140
- result.push(line.slice(0, line.indexOf("\\n")));
1141
- line = line.slice(line.indexOf("\\n") + 1);
1138
+ while (stripAnsi(line).length > maxLength || line.indexOf("\\n") !== -1) {
1139
+ if (line.indexOf("\\n") !== -1) {
1140
+ result.push(...splitText(line.slice(0, line.indexOf("\\n")).replace(/\\n/, ""), maxLength));
1141
+ line = line.indexOf("\\n") + 1 < line.length
1142
+ ? line.slice(line.indexOf("\\n") + 1)
1143
+ : "";
1142
1144
  } else {
1143
1145
  const index = [" ", "/", "\\\\", ".", ",", "-", ":", "|", "@", "+"].reduce((ret, split) => {
1144
1146
  let current = ret;
@@ -1162,10 +1164,7 @@ function WriteLineFunctionDeclaration() {
1162
1164
  line = line.slice(maxLength + 1);
1163
1165
  }
1164
1166
 
1165
- if (line.length > 0) {
1166
- result.push(line);
1167
- }
1168
-
1167
+ result.push(line);
1169
1168
  return result;
1170
1169
  `
1171
1170
  }),
@@ -1315,14 +1314,14 @@ function MessageFunctionDeclaration(props) {
1315
1314
  }
1316
1315
 
1317
1316
  ${!theme.labels.message.footer[variant] && timestamp ? `const timestamp = \`\${colors.text.message.footer.${variant}(new Date().toLocaleDateString())} \${colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].bottom}")} \${colors.text.message.footer.${variant}(new Date().toLocaleTimeString())}\`; ` : ""}
1318
- writeLine(colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].topLeft}") + ${theme.labels.message.header[variant] || theme.icons.message.header[variant] ? `colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].top}".repeat(4)) + " " + ${theme.icons.message.header[variant] ? `colors.border.message.outline.${variant}("${theme.icons.message.header[variant]}") + " " +` : ""} colors.text.message.header.${variant}("${theme.labels.message.header[variant]}") + " " + colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].top}".repeat(Math.max(process.stdout.columns - ${Math.max(theme.padding.app, 0) * 2 + 4 + (theme.icons.message.header[variant] ? theme.icons.message.header[variant].length + 1 + (theme.labels.message.header[variant] ? 0 : 1) : 0) + (theme.labels.message.header[variant] ? theme.labels.message.header[variant].length + 2 : 0) + theme.borderStyles.message.outline[variant].topLeft.length + theme.borderStyles.message.outline[variant].topRight.length}, 0)))` : `colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].top}".repeat(Math.max(process.stdout.columns - ${Math.max(theme.padding.app, 0) * 2 + theme.borderStyles.message.outline[variant].topLeft.length + theme.borderStyles.message.outline[variant].topRight.length}, 0)))`} + colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].topRight}"), { consoleFn: console.${consoleFnName} });
1317
+ writeLine(colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].topLeft}") + ${theme.labels.message.header[variant] || theme.icons.message.header[variant] ? `colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].top}".repeat(4)) + " " + ${theme.icons.message.header[variant] ? `colors.border.message.outline.${variant}("${theme.icons.message.header[variant]}") + " " +` : ""} colors.bold(colors.text.message.header.${variant}("${theme.labels.message.header[variant]}")) + " " + colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].top}".repeat(Math.max(process.stdout.columns - ${Math.max(theme.padding.app, 0) * 2 + 4 + (theme.icons.message.header[variant] ? theme.icons.message.header[variant].length + 1 + (theme.labels.message.header[variant] ? 0 : 1) : 0) + (theme.labels.message.header[variant] ? theme.labels.message.header[variant].length + 2 : 0) + theme.borderStyles.message.outline[variant].topLeft.length + theme.borderStyles.message.outline[variant].topRight.length}, 0)))` : `colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].top}".repeat(Math.max(process.stdout.columns - ${Math.max(theme.padding.app, 0) * 2 + theme.borderStyles.message.outline[variant].topLeft.length + theme.borderStyles.message.outline[variant].topRight.length}, 0)))`} + colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].topRight}"), { consoleFn: console.${consoleFnName} });
1319
1318
  splitText(
1320
1319
  message,
1321
1320
  Math.max(process.stdout.columns - ${(Math.max(theme.padding.app, 0) + Math.max(theme.padding.message, 0)) * 2 + theme.borderStyles.message.outline[variant].left.length + theme.borderStyles.message.outline[variant].right.length}, 0)
1322
1321
  ).forEach((line) => {
1323
1322
  writeLine(colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].left + " ".repeat(Math.max(theme.padding.message, 0))}") + colors.text.message.description.${variant}(line) + " ".repeat(Math.max(process.stdout.columns - (stripAnsi(line).length + ${Math.max(theme.padding.app, 0) * 2 + Math.max(theme.padding.message, 0) + theme.borderStyles.message.outline[variant].left.length + theme.borderStyles.message.outline[variant].right.length}), 0)) + colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].right}"), { consoleFn: console.${consoleFnName} });
1324
1323
  });
1325
- writeLine(colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].bottomLeft}") + ${theme.labels.message.footer[variant] || timestamp ? `colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].bottom}".repeat(Math.max(process.stdout.columns - ${Math.max(theme.padding.app, 0) * 2 + 4 + (theme.labels.message.footer[variant] ? theme.labels.message.footer[variant].length + 2 : 0) + theme.borderStyles.message.outline[variant].bottomLeft.length + theme.borderStyles.message.outline[variant].bottomRight.length}${!theme.labels.message.footer[variant] && timestamp ? " - (stripAnsi(timestamp).length + 2)" : ""}, 0))) + " " + ${theme.labels.message.footer[variant] ? `colors.text.message.footer.${variant}("${theme.labels.message.footer[variant]}")` : timestamp && "timestamp"} + " " + colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].bottom}".repeat(4))` : `colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].bottom}".repeat(Math.max(process.stdout.columns - ${Math.max(theme.padding.app, 0) * 2 + theme.borderStyles.message.outline[variant].bottomLeft.length + theme.borderStyles.message.outline[variant].bottomRight.length}, 0)))`} + colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].bottomRight}"), { consoleFn: console.${consoleFnName} });
1324
+ writeLine(colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].bottomLeft}") + ${theme.labels.message.footer[variant] || timestamp ? `colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].bottom}".repeat(Math.max(process.stdout.columns - ${Math.max(theme.padding.app, 0) * 2 + 4 + (theme.labels.message.footer[variant] ? theme.labels.message.footer[variant].length + 2 : 0) + theme.borderStyles.message.outline[variant].bottomLeft.length + theme.borderStyles.message.outline[variant].bottomRight.length}${!theme.labels.message.footer[variant] && timestamp ? " - (stripAnsi(timestamp).length + 2)" : ""}, 0))) + " " + ${`colors.bold(colors.text.message.footer.${variant}(${theme.labels.message.footer[variant] ? `"${theme.labels.message.footer[variant]}"` : timestamp && "timestamp"}))`} + " " + colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].bottom}".repeat(4))` : `colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].bottom}".repeat(Math.max(process.stdout.columns - ${Math.max(theme.padding.app, 0) * 2 + theme.borderStyles.message.outline[variant].bottomLeft.length + theme.borderStyles.message.outline[variant].bottomRight.length}, 0)))`} + colors.border.message.outline.${variant}("${theme.borderStyles.message.outline[variant].bottomRight}"), { consoleFn: console.${consoleFnName} });
1326
1325
  `)];
1327
1326
  }
1328
1327
  })];
@@ -1351,10 +1350,10 @@ function BannerFunctionDeclaration(props) {
1351
1350
  return;
1352
1351
  }
1353
1352
 
1354
- writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].topLeft}") + ${theme.icons.banner.header[variant] ? `colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].top}".repeat(4)) + " " + ${theme.icons.banner.header[variant] ? `colors.border.banner.outline.${variant}("${theme.icons.banner.header[variant]}") + " " + colors.text.banner.header.${variant}("${theme.borderStyles.banner.outline[variant].top}") + " " +` : ""} colors.text.banner.header.${variant}("${header.value}") + " " + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].top}".repeat(Math.max(process.stdout.columns - ${4 + (theme.icons.banner.header[variant] ? theme.icons.banner.header[variant].length + 3 : 0) + (header.value ? header.value.length + 2 : 0) + bannerPadding.value}, 0)))` : `colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].top}".repeat(Math.max(process.stdout.columns - ${bannerPadding.value}, 0)))`} + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].topRight}"), { consoleFn: console.${consoleFnName} });
1353
+ writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].topLeft}") + ${theme.icons.banner.header[variant] ? `colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].top}".repeat(4)) + " " + ${theme.icons.banner.header[variant] ? `colors.text.banner.header.${variant}("${theme.icons.banner.header[variant]}") + " " + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].top}") + " " +` : ""} colors.bold(colors.text.banner.header.${variant}("${header.value}")) + " " + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].top}".repeat(Math.max(process.stdout.columns - ${4 + (theme.icons.banner.header[variant] ? theme.icons.banner.header[variant].length + 3 : 0) + (header.value ? header.value.length + 2 : 0) + bannerPadding.value}, 0)))` : `colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].top}".repeat(Math.max(process.stdout.columns - ${bannerPadding.value}, 0)))`} + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].topRight}"), { consoleFn: console.${consoleFnName} });
1355
1354
 
1356
1355
  splitText(
1357
- colors.text.banner.title.${variant}("${title.value}"),
1356
+ colors.bold(colors.text.banner.title.${variant}("${title.value}")),
1358
1357
  Math.max(process.stdout.columns - ${totalPadding.value}, 0)
1359
1358
  ).forEach((line) => {
1360
1359
  writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].left}") + " ".repeat(Math.max(Math.floor((process.stdout.columns - (stripAnsi(line).length + ${bannerPadding.value})) / 2), 0)) + colors.text.banner.description.${variant}(line) + " ".repeat(Math.max(Math.ceil((process.stdout.columns - (stripAnsi(line).length + ${bannerPadding.value})) / 2), 0)) + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].right}"), { consoleFn: console.${consoleFnName} });
@@ -1362,16 +1361,16 @@ function BannerFunctionDeclaration(props) {
1362
1361
 
1363
1362
  ${command?.title ? `writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].bottomLeft}") + " ".repeat(Math.max(process.stdout.columns - ${bannerPadding.value})) + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].bottomRight}"), { consoleFn: console.${consoleFnName} });
1364
1363
 
1365
- writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].left}") + " ".repeat(Math.max(Math.floor((process.stdout.columns - (stripAnsi(line).length + ${bannerPadding.value})) / 2), 0)) + colors.text.banner.command.${variant}("${command.title}") + " ".repeat(Math.max(Math.ceil((process.stdout.columns - (stripAnsi(line).length + ${bannerPadding.value})) / 2), 0)) + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].right}"), { consoleFn: console.${consoleFnName} }); ` : ""}
1364
+ writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].left}") + " ".repeat(Math.max(Math.floor((process.stdout.columns - (stripAnsi(line).length + ${bannerPadding.value})) / 2), 0)) + colors.bold(colors.text.banner.command.${variant}("${command.title}")) + " ".repeat(Math.max(Math.ceil((process.stdout.columns - (stripAnsi(line).length + ${bannerPadding.value})) / 2), 0)) + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].right}"), { consoleFn: console.${consoleFnName} }); ` : ""}
1366
1365
 
1367
1366
  splitText(
1368
- ${command?.title ? "colors.text.banner.description" : "colors.text.banner.command"}.${variant}("${description.value.replace(/"/g, "\\\"")}"),
1367
+ colors.bold(${command?.title ? "colors.text.banner.description" : "colors.text.banner.command"}.${variant}("${description.value.replace(/"/g, "\\\"")}")),
1369
1368
  Math.max(process.stdout.columns - ${totalPadding.value}, 0)
1370
1369
  ).forEach((line) => {
1371
1370
  writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].left}") + " ".repeat(Math.max(Math.floor((process.stdout.columns - (stripAnsi(line).length + ${bannerPadding.value})) / 2), 0)) + colors.text.banner.description.${variant}(line) + " ".repeat(Math.max(Math.ceil((process.stdout.columns - (stripAnsi(line).length + ${bannerPadding.value})) / 2), 0)) + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].right}"), { consoleFn: console.${consoleFnName} });
1372
1371
  });
1373
1372
 
1374
- writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].bottomLeft}") + ${footer.value ? `colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].bottom}".repeat(Math.max(process.stdout.columns - ${4 + (footer.value ? footer.value.length : 0) + bannerPadding.value}, 0))) + " " + ${footer.value ? `colors.text.banner.footer.${variant}("${footer.value}")` : ""} + " " + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].bottom}".repeat(4))` : `colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].bottom}".repeat(Math.max(process.stdout.columns - ${bannerPadding.value}, 0)))`} + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].bottomRight}"), { consoleFn: console.${consoleFnName} });
1373
+ writeLine(colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].bottomLeft}") + ${footer.value ? `colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].bottom}".repeat(Math.max(process.stdout.columns - ${6 + (footer.value ? footer.value.length : 0) + bannerPadding.value}, 0))) + " " + ${footer.value ? `colors.bold(colors.text.banner.footer.${variant}("${footer.value}"))` : ""} + " " + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].bottom}".repeat(4))` : `colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].bottom}".repeat(Math.max(process.stdout.columns - ${bannerPadding.value}, 0)))`} + colors.border.banner.outline.${variant}("${theme.borderStyles.banner.outline[variant].bottomRight}"), { consoleFn: console.${consoleFnName} });
1375
1374
  `;
1376
1375
  }
1377
1376
  })];
@@ -2144,7 +2143,8 @@ cells.forEach((row, rowIndex) => {
2144
2143
  /**
2145
2144
  * A built-in console utilities module for Shell Shock.
2146
2145
  */
2147
- function ConsoleBuiltin() {
2146
+ function ConsoleBuiltin(props) {
2147
+ const { banner } = props;
2148
2148
  return createComponent(BuiltinFile, {
2149
2149
  id: "console",
2150
2150
  description: "A collection of helper utilities to assist in generating content meant for display in the console.",
@@ -2187,7 +2187,7 @@ function ConsoleBuiltin() {
2187
2187
  createComponent(DividerFunctionDeclaration, {}),
2188
2188
  createIntrinsic("hbr", {}),
2189
2189
  createIntrinsic("hbr", {}),
2190
- createComponent(BannerFunctionDeclaration, {}),
2190
+ memo(() => banner ?? createComponent(BannerFunctionDeclaration, {})),
2191
2191
  createIntrinsic("hbr", {}),
2192
2192
  createIntrinsic("hbr", {}),
2193
2193
  createComponent(MessageFunctionDeclaration, {