arcli 1.2.0 → 1.4.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.
Files changed (161) hide show
  1. package/CHANGELOG.md +79 -1
  2. package/README.md +4 -3
  3. package/dist/cli/commands/billing.command.batch.d.ts +22 -0
  4. package/dist/cli/commands/billing.command.batch.js +51 -0
  5. package/dist/cli/commands/billing.command.batch.js.map +1 -0
  6. package/dist/cli/commands/billing.command.options.js +1 -1
  7. package/dist/cli/commands/billing.command.options.js.map +1 -1
  8. package/dist/cli/commands/billing.command.parser.d.ts +7 -0
  9. package/dist/cli/commands/billing.command.parser.js +82 -11
  10. package/dist/cli/commands/billing.command.parser.js.map +1 -1
  11. package/dist/cli/commands/billing.command.shared.js +16 -13
  12. package/dist/cli/commands/billing.command.shared.js.map +1 -1
  13. package/dist/cli/commands/config.command.d.ts +5 -0
  14. package/dist/cli/commands/config.command.js +3 -3
  15. package/dist/cli/commands/config.command.js.map +1 -1
  16. package/dist/cli/commands/fce-obligation.command.js +2 -2
  17. package/dist/cli/commands/fce-obligation.command.js.map +1 -1
  18. package/dist/cli/commands/interactive.command.d.ts +3 -0
  19. package/dist/cli/commands/interactive.command.js +22 -0
  20. package/dist/cli/commands/interactive.command.js.map +1 -0
  21. package/dist/cli/commands/storybook.command.js +3 -2
  22. package/dist/cli/commands/storybook.command.js.map +1 -1
  23. package/dist/cli/commands/vouchers.command.d.ts +2 -0
  24. package/dist/cli/commands/vouchers.command.js +96 -0
  25. package/dist/cli/commands/vouchers.command.js.map +1 -0
  26. package/dist/cli/help.d.ts +1 -0
  27. package/dist/cli/help.js +23 -1
  28. package/dist/cli/help.js.map +1 -1
  29. package/dist/cli/index.js +3 -1
  30. package/dist/cli/index.js.map +1 -1
  31. package/dist/cli/interactive/advanced-options.d.ts +14 -0
  32. package/dist/cli/interactive/advanced-options.js +126 -0
  33. package/dist/cli/interactive/advanced-options.js.map +1 -0
  34. package/dist/cli/interactive/history.flow.d.ts +2 -0
  35. package/dist/cli/interactive/history.flow.js +22 -0
  36. package/dist/cli/interactive/history.flow.js.map +1 -0
  37. package/dist/cli/interactive/interactive-mode.d.ts +3 -0
  38. package/dist/cli/interactive/interactive-mode.js +93 -0
  39. package/dist/cli/interactive/interactive-mode.js.map +1 -0
  40. package/dist/cli/interactive/invoice.flow.d.ts +22 -0
  41. package/dist/cli/interactive/invoice.flow.js +132 -0
  42. package/dist/cli/interactive/invoice.flow.js.map +1 -0
  43. package/dist/cli/interactive/note.flow.d.ts +26 -0
  44. package/dist/cli/interactive/note.flow.js +236 -0
  45. package/dist/cli/interactive/note.flow.js.map +1 -0
  46. package/dist/cli/interactive/prompts.d.ts +21 -0
  47. package/dist/cli/interactive/prompts.js +46 -0
  48. package/dist/cli/interactive/prompts.js.map +1 -0
  49. package/dist/cli/interactive/session.d.ts +22 -0
  50. package/dist/cli/interactive/session.js +88 -0
  51. package/dist/cli/interactive/session.js.map +1 -0
  52. package/dist/cli/interactive/validators.d.ts +9 -0
  53. package/dist/cli/interactive/validators.js +35 -0
  54. package/dist/cli/interactive/validators.js.map +1 -0
  55. package/dist/cli/program.js +4 -0
  56. package/dist/cli/program.js.map +1 -1
  57. package/dist/cli/spinner.d.ts +8 -0
  58. package/dist/cli/spinner.js +14 -0
  59. package/dist/cli/spinner.js.map +1 -0
  60. package/dist/cli/version.d.ts +1 -1
  61. package/dist/cli/version.js +1 -1
  62. package/dist/modules/billing/billing.amounts.d.ts +1 -1
  63. package/dist/modules/billing/billing.amounts.js +34 -13
  64. package/dist/modules/billing/billing.amounts.js.map +1 -1
  65. package/dist/modules/billing/billing.batch.d.ts +23 -0
  66. package/dist/modules/billing/billing.batch.js +43 -0
  67. package/dist/modules/billing/billing.batch.js.map +1 -0
  68. package/dist/modules/billing/billing.display.js +16 -7
  69. package/dist/modules/billing/billing.display.js.map +1 -1
  70. package/dist/modules/billing/billing.iva-receptor.d.ts +1 -0
  71. package/dist/modules/billing/billing.iva-receptor.js +3 -0
  72. package/dist/modules/billing/billing.iva-receptor.js.map +1 -1
  73. package/dist/modules/billing/billing.schemas.d.ts +35 -4
  74. package/dist/modules/billing/billing.schemas.js +26 -6
  75. package/dist/modules/billing/billing.schemas.js.map +1 -1
  76. package/dist/modules/billing/billing.text.js +10 -6
  77. package/dist/modules/billing/billing.text.js.map +1 -1
  78. package/dist/modules/config/config-value-parser.js +2 -1
  79. package/dist/modules/config/config-value-parser.js.map +1 -1
  80. package/dist/modules/config/config.presenter.js +2 -2
  81. package/dist/modules/config/config.presenter.js.map +1 -1
  82. package/dist/modules/config/config.schemas.d.ts +2 -2
  83. package/dist/modules/examples/examples.js +2 -13
  84. package/dist/modules/examples/examples.js.map +1 -1
  85. package/dist/modules/fce/fce-obligation.presenter.js +1 -1
  86. package/dist/modules/fce/fce-obligation.presenter.js.map +1 -1
  87. package/dist/modules/interactive/amount-input.d.ts +6 -0
  88. package/dist/modules/interactive/amount-input.js +29 -0
  89. package/dist/modules/interactive/amount-input.js.map +1 -0
  90. package/dist/modules/interactive/choices.d.ts +13 -0
  91. package/dist/modules/interactive/choices.js +56 -0
  92. package/dist/modules/interactive/choices.js.map +1 -0
  93. package/dist/modules/interactive/equivalent-command.d.ts +8 -0
  94. package/dist/modules/interactive/equivalent-command.js +98 -0
  95. package/dist/modules/interactive/equivalent-command.js.map +1 -0
  96. package/dist/modules/interactive/wizard.d.ts +16 -0
  97. package/dist/modules/interactive/wizard.js +33 -0
  98. package/dist/modules/interactive/wizard.js.map +1 -0
  99. package/dist/modules/storybook/showcase.d.ts +1 -1
  100. package/dist/modules/storybook/showcase.js +50 -6
  101. package/dist/modules/storybook/showcase.js.map +1 -1
  102. package/dist/modules/update-check/update-check.presenter.js +1 -1
  103. package/dist/modules/update-check/update-check.presenter.js.map +1 -1
  104. package/dist/modules/vouchers/voucher-history.d.ts +34 -0
  105. package/dist/modules/vouchers/voucher-history.js +43 -0
  106. package/dist/modules/vouchers/voucher-history.js.map +1 -0
  107. package/dist/modules/vouchers/voucher-history.presenter.d.ts +22 -0
  108. package/dist/modules/vouchers/voucher-history.presenter.js +108 -0
  109. package/dist/modules/vouchers/voucher-history.presenter.js.map +1 -0
  110. package/dist/services/arca/arca-voucher-history.gateway.d.ts +8 -0
  111. package/dist/services/arca/arca-voucher-history.gateway.js +36 -0
  112. package/dist/services/arca/arca-voucher-history.gateway.js.map +1 -0
  113. package/dist/ui/components/contentPanel.d.ts +2 -2
  114. package/dist/ui/components/contentPanel.js +2 -1
  115. package/dist/ui/components/contentPanel.js.map +1 -1
  116. package/dist/ui/components/errorPanel.js +3 -3
  117. package/dist/ui/components/errorPanel.js.map +1 -1
  118. package/dist/ui/components/index.d.ts +3 -0
  119. package/dist/ui/components/index.js +3 -0
  120. package/dist/ui/components/index.js.map +1 -1
  121. package/dist/ui/components/keyValuePanel.d.ts +2 -2
  122. package/dist/ui/components/keyValuePanel.js +2 -1
  123. package/dist/ui/components/keyValuePanel.js.map +1 -1
  124. package/dist/ui/components/rawPanel.js +1 -1
  125. package/dist/ui/components/rawPanel.js.map +1 -1
  126. package/dist/ui/components/sectionHeading.d.ts +3 -0
  127. package/dist/ui/components/sectionHeading.js +13 -0
  128. package/dist/ui/components/sectionHeading.js.map +1 -0
  129. package/dist/ui/components/statusBar.d.ts +6 -0
  130. package/dist/ui/components/statusBar.js +24 -0
  131. package/dist/ui/components/statusBar.js.map +1 -0
  132. package/dist/ui/components/statusPanel.d.ts +2 -2
  133. package/dist/ui/components/statusPanel.js +2 -1
  134. package/dist/ui/components/statusPanel.js.map +1 -1
  135. package/dist/ui/components/testingBanner.d.ts +2 -0
  136. package/dist/ui/components/testingBanner.js +6 -0
  137. package/dist/ui/components/testingBanner.js.map +1 -0
  138. package/dist/ui/presenters/errors.presenter.js +11 -1
  139. package/dist/ui/presenters/errors.presenter.js.map +1 -1
  140. package/dist/ui/presenters/errors.zod-presenter.d.ts +2 -0
  141. package/dist/ui/presenters/errors.zod-presenter.js +4 -0
  142. package/dist/ui/presenters/errors.zod-presenter.js.map +1 -1
  143. package/dist/ui/presenters/index.d.ts +1 -0
  144. package/dist/ui/presenters/index.js +1 -0
  145. package/dist/ui/presenters/index.js.map +1 -1
  146. package/dist/ui/primitives/renderLogo.js +5 -0
  147. package/dist/ui/primitives/renderLogo.js.map +1 -1
  148. package/dist/ui/primitives/renderPanel.d.ts +3 -1
  149. package/dist/ui/primitives/renderPanel.js +68 -21
  150. package/dist/ui/primitives/renderPanel.js.map +1 -1
  151. package/dist/ui/primitives/terminalWidth.d.ts +4 -0
  152. package/dist/ui/primitives/terminalWidth.js +11 -0
  153. package/dist/ui/primitives/terminalWidth.js.map +1 -0
  154. package/dist/ui/primitives/text.d.ts +10 -0
  155. package/dist/ui/primitives/text.js +101 -30
  156. package/dist/ui/primitives/text.js.map +1 -1
  157. package/dist/ui/theme/theme.d.ts +45 -4
  158. package/dist/ui/theme/theme.js +183 -5
  159. package/dist/ui/theme/theme.js.map +1 -1
  160. package/llms.txt +15 -2
  161. package/package.json +15 -13
@@ -1,2 +1,4 @@
1
1
  import { ZodError } from 'zod';
2
+ /** Resumen de una linea, para listar errores por item (por ejemplo, en un lote). */
3
+ export declare function summarizeZodError(error: ZodError): string;
2
4
  export declare function formatZodError(error: ZodError, useJson: boolean): string;
@@ -82,6 +82,10 @@ function formatPublicIssuePath(path) {
82
82
  const pathKey = formatZodIssuePath(path);
83
83
  return ZOD_PUBLIC_PATHS[pathKey] ?? path.map((segment) => String(segment));
84
84
  }
85
+ /** Resumen de una linea, para listar errores por item (por ejemplo, en un lote). */
86
+ export function summarizeZodError(error) {
87
+ return error.issues.map((issue) => humanizeZodIssue(issue)).join(' ');
88
+ }
85
89
  export function formatZodError(error, useJson) {
86
90
  if (useJson) {
87
91
  return renderJson({
@@ -1 +1 @@
1
- {"version":3,"file":"errors.zod-presenter.js","sourceRoot":"","sources":["../../../src/ui/presenters/errors.zod-presenter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.zod-presenter.js","sourceRoot":"","sources":["../../../src/ui/presenters/errors.zod-presenter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from './billing.presenter';
2
2
  export * from './config.presenter';
3
3
  export * from './errors.presenter';
4
+ export { summarizeZodError } from './errors.zod-presenter';
4
5
  export * from './showcase.presenter';
@@ -1,5 +1,6 @@
1
1
  export * from './billing.presenter.js';
2
2
  export * from './config.presenter.js';
3
3
  export * from './errors.presenter.js';
4
+ export { summarizeZodError } from './errors.zod-presenter.js';
4
5
  export * from './showcase.presenter.js';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/presenters/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/presenters/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,cAAc,sBAAsB,CAAC"}
@@ -17,6 +17,11 @@ function renderLogoWidth() {
17
17
  return ARCLI_ASCII_BANNER.split('\n')[0]?.length ?? 0;
18
18
  }
19
19
  export function renderLogo() {
20
+ const columns = process.stdout.columns;
21
+ // En una terminal mas angosta que el dibujo, cada linea se partiria: se muestra solo el nombre.
22
+ if (columns && columns < renderLogoWidth()) {
23
+ return `\n${colorize('AR', 'info')}${colorize('CLI', 'neutral')}\n`;
24
+ }
20
25
  const logo = ARCLI_ASCII_BANNER.split('\n').map((line) => {
21
26
  const ar = line.slice(0, ARCLI_BANNER_AR_CLI_SPLIT_COLUMN);
22
27
  const cli = line.slice(ARCLI_BANNER_AR_CLI_SPLIT_COLUMN);
@@ -1 +1 @@
1
- {"version":3,"file":"renderLogo.js","sourceRoot":"","sources":["../../../src/ui/primitives/renderLogo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;CACvD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,4EAA4E;AAC5E,2EAA2E;AAC3E,qDAAqD;AACrD,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAE5C,SAAS,eAAe;IACtB,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACvD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,gCAAgC,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAEzD,OAAO,GAAG,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC;IAEzD,OAAO,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"renderLogo.js","sourceRoot":"","sources":["../../../src/ui/primitives/renderLogo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;CACvD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,4EAA4E;AAC5E,2EAA2E;AAC3E,qDAAqD;AACrD,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAE5C,SAAS,eAAe;IACtB,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;IAEvC,gGAAgG;IAChG,IAAI,OAAO,IAAI,OAAO,GAAG,eAAe,EAAE,EAAE,CAAC;QAC3C,OAAO,KAAK,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC;IACtE,CAAC;IAED,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACvD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,gCAAgC,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAEzD,OAAO,GAAG,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC;IAEzD,OAAO,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACnD,CAAC"}
@@ -9,7 +9,7 @@ export interface RenderPanelProps {
9
9
  readonly contentAlign?: PanelAlignment;
10
10
  readonly footer?: string;
11
11
  readonly footerColor?: UiTextColor;
12
- readonly footerDivider?: boolean | string;
12
+ readonly footerDivider?: boolean;
13
13
  readonly maxWidth?: UiWidthPreset | number;
14
14
  readonly padding?: Partial<BoxenSpacing>;
15
15
  readonly subtitle?: string;
@@ -19,5 +19,7 @@ export interface RenderPanelProps {
19
19
  readonly titleColor?: UiTextColor;
20
20
  readonly width?: UiWidthPreset | number;
21
21
  }
22
+ /** ARCLI_ASCII=1 cambia todos los bordes por ASCII puro, para terminales sin caracteres de caja. */
23
+ export declare function usesAsciiBorders(): boolean;
22
24
  export declare function renderPanel(props: RenderPanelProps): string;
23
25
  export {};
@@ -3,7 +3,8 @@ import { UI_THEME } from '../theme/theme.js';
3
3
  import { renderDivider } from './renderDivider.js';
4
4
  import { renderFooter } from './renderFooter.js';
5
5
  import { renderSubtitle } from './renderSubtitle.js';
6
- import { bold, centerLineBlock, centerLines, flattenVisibleLines, maxVisibleWidth, wrapIndentedPlainText, } from './text.js';
6
+ import { resolveTerminalColumns } from './terminalWidth.js';
7
+ import { bold, centerLineBlock, centerLines, colorize, flattenVisibleLines, maxVisibleWidth, stripAnsi, wrapIndentedPlainText, } from './text.js';
7
8
  function resolvePadding(padding) {
8
9
  const base = UI_THEME.spacing.panelPadding;
9
10
  return {
@@ -37,35 +38,84 @@ function alignLines(lines, width, align) {
37
38
  }
38
39
  return centerLines(lines, width);
39
40
  }
41
+ // Ancho minimo del panel aunque la terminal sea mas angosta: por debajo de esto el contenido no entra.
42
+ const MIN_PANEL_WIDTH = 24;
43
+ // Marca de la linea divisoria: despues de dibujar la caja se reemplaza por una linea unida al borde
44
+ // (por ejemplo `╟┄┄┄╢`). El caracter NUL no ocupa ancho, asi que no altera el calculo de boxen.
45
+ const DIVIDER_MARKER = '\u0000';
46
+ /** ARCLI_ASCII=1 cambia todos los bordes por ASCII puro, para terminales sin caracteres de caja. */
47
+ export function usesAsciiBorders() {
48
+ const value = process.env.ARCLI_ASCII?.trim().toLowerCase();
49
+ return value === '1' || value === 'true' || value === 'si';
50
+ }
51
+ function resolveBorderStyle(borderType) {
52
+ return usesAsciiBorders() ? UI_THEME.asciiBorderStyle : UI_THEME.borderStyles[borderType];
53
+ }
54
+ function joinDividers(box, junction) {
55
+ const [left, fill, right] = junction;
56
+ return box
57
+ .split('\n')
58
+ .map((line) => {
59
+ if (!line.includes(DIVIDER_MARKER)) {
60
+ return line;
61
+ }
62
+ const width = stripAnsi(line).replace(DIVIDER_MARKER, '').length;
63
+ return `${left}${fill.repeat(Math.max(0, width - 2))}${right}`;
64
+ })
65
+ .join('\n');
66
+ }
67
+ /**
68
+ * Estilo `command`: una barra a la izquierda y nada a la derecha, para que al copiar el comando
69
+ * no venga pegado un borde. Las lineas no se parten: la terminal las ajusta y se copian enteras.
70
+ */
71
+ function renderCommandBlock(props) {
72
+ const bar = colorize(usesAsciiBorders() ? UI_THEME.commandBar.ascii : UI_THEME.commandBar.unicode, 'info');
73
+ const lines = typeof props.content === 'string' ? props.content.split('\n') : [...props.content];
74
+ const titleLines = props.title ? [formatTitle(props.title, props.titleColor) ?? ''] : [];
75
+ return [...titleLines, ...lines.filter((line) => stripAnsi(line).trim().length > 0)]
76
+ .map((line) => `${bar}${line}`)
77
+ .join('\n');
78
+ }
40
79
  function formatTitle(title, color) {
41
80
  if (!title) {
42
81
  return undefined;
43
82
  }
44
83
  const normalizedTitle = bold(title.toUpperCase());
45
- if (!color) {
46
- return normalizedTitle;
47
- }
48
- return normalizedTitle;
84
+ // boxen 9 respeta el estilo que ya trae el titulo, asi que alcanza con colorearlo con el tema.
85
+ return color ? colorize(normalizedTitle, color) : normalizedTitle;
49
86
  }
50
87
  export function renderPanel(props) {
88
+ const borderType = props.borderType ?? 'common';
89
+ if (borderType === 'command') {
90
+ return renderCommandBlock(props);
91
+ }
92
+ const borderStyle = resolveBorderStyle(borderType);
51
93
  const padding = resolvePadding(props.padding);
52
94
  const paddingLeft = padding.left ?? 0;
53
95
  const paddingRight = padding.right ?? 0;
54
- const minimumWidth = resolveWidth(props.width);
96
+ const terminalColumns = resolveTerminalColumns();
97
+ // En una terminal angosta el panel se achica para no cortarse: si es mas ancho que la ventana,
98
+ // cada linea se parte y el borde queda roto.
99
+ const terminalLimit = terminalColumns === null ? null : Math.max(MIN_PANEL_WIDTH, terminalColumns);
100
+ const presetMinimumWidth = resolveWidth(props.width);
101
+ const minimumWidth = terminalLimit === null ? presetMinimumWidth : Math.min(presetMinimumWidth, terminalLimit);
55
102
  const configuredMaxWidth = props.maxWidth === undefined
56
103
  ? typeof props.width === 'number'
57
104
  ? null
58
105
  : UI_THEME.widths[props.width ?? 'standard'].max
59
106
  : resolveMaxWidth(props.maxWidth);
60
- const maximumWidth = configuredMaxWidth === null ? Number.POSITIVE_INFINITY : Math.max(minimumWidth, configuredMaxWidth);
107
+ const presetMaximumWidth = configuredMaxWidth === null ? Number.POSITIVE_INFINITY : Math.max(minimumWidth, configuredMaxWidth);
108
+ const maximumWidth = terminalLimit === null ? presetMaximumWidth : Math.min(presetMaximumWidth, terminalLimit);
61
109
  const contentLines = typeof props.content === 'string' ? props.content.split('\n') : [...props.content];
62
110
  const visibleLines = [...contentLines];
63
111
  const calculatedWidth = maxVisibleWidth(visibleLines) + paddingLeft + paddingRight + 2;
64
112
  const panelWidth = Math.min(maximumWidth, Math.max(minimumWidth, calculatedWidth));
65
113
  const innerWidth = Math.max(0, panelWidth - paddingLeft - paddingRight - 2);
66
- const footerDivider = props.footerDivider === undefined ? false : props.footerDivider;
67
- const footerDividerLine = footerDivider
68
- ? renderDivider({ character: typeof footerDivider === 'string' ? footerDivider : '═', width: innerWidth })
114
+ // Con junction la linea se une al borde; si no, va por adentro como un divisor `═`.
115
+ const footerDividerLine = props.footerDivider
116
+ ? borderStyle.junction
117
+ ? DIVIDER_MARKER
118
+ : renderDivider({ character: '═', width: innerWidth })
69
119
  : null;
70
120
  const footerLine = props.footer
71
121
  ? renderFooter({
@@ -77,8 +127,8 @@ export function renderPanel(props) {
77
127
  const wrappedContentLines = contentLines.flatMap((line) => wrapIndentedPlainText(line, innerWidth));
78
128
  const lines = [];
79
129
  const hasBodyContent = contentLines.length > 0;
80
- const hasFooter = Boolean(footerLine);
81
- const hasFooterDivider = Boolean(footerDividerLine);
130
+ const hasFooter = footerLine !== null;
131
+ const hasFooterDivider = footerDividerLine !== null;
82
132
  if (props.subtitle) {
83
133
  lines.push(...renderSubtitle({
84
134
  text: props.subtitle,
@@ -93,22 +143,19 @@ export function renderPanel(props) {
93
143
  lines.push(...alignLines(wrappedContentLines, innerWidth, props.contentAlign ?? 'left'));
94
144
  }
95
145
  if (footerDividerLine) {
96
- lines.push('', renderDivider({ character: typeof footerDivider === 'string' ? footerDivider : '═', width: innerWidth }));
146
+ lines.push('', footerDividerLine);
97
147
  }
98
148
  if (footerLine) {
99
- lines.push('', renderFooter({
100
- text: props.footer ?? '',
101
- textColor: props.footerColor,
102
- width: innerWidth,
103
- }));
149
+ lines.push('', footerLine);
104
150
  }
105
- return boxen(lines.join('\n'), {
151
+ const box = boxen(lines.join('\n'), {
106
152
  borderColor: props.borderColor,
107
- borderStyle: UI_THEME.borderStyles[props.borderType ?? 'common'],
153
+ borderStyle: borderStyle.box,
108
154
  padding,
109
155
  title: formatTitle(props.title, props.titleColor),
110
- titleAlignment: props.titleAlignment ?? 'center',
156
+ titleAlignment: props.titleAlignment ?? borderStyle.titleAlignment ?? 'center',
111
157
  width: panelWidth,
112
158
  });
159
+ return footerDividerLine && borderStyle.junction ? joinDividers(box, borderStyle.junction) : box;
113
160
  }
114
161
  //# sourceMappingURL=renderPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderPanel.js","sourceRoot":"","sources":["../../../src/ui/primitives/renderPanel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderPanel.js","sourceRoot":"","sources":["../../../src/ui/primitives/renderPanel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAqE,MAAM,OAAO,CAAC;AAE1F,OAAO,EAAE,QAAQ,EAA6D,MAAM,gBAAgB,CAAC;AAErG,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACL,IAAI,EACJ,eAAe,EACf,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,SAAS,EAET,qBAAqB,GACtB,MAAM,QAAQ,CAAC;AAsBhB,SAAS,cAAc,CAAC,OAA+B;IACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC;IAE3C,OAAO;QACL,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAC3C,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;QACrC,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC;QACxC,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAgC;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC,GAAG,CAAC;AAClD,CAAC;AAED,SAAS,eAAe,CAAC,KAAmC;IAC1D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;AACpC,CAAC;AAED,SAAS,UAAU,CAAC,KAAwB,EAAE,KAAa,EAAE,KAAqB;IAChF,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;QAC7B,OAAO,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,uGAAuG;AACvG,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,oGAAoG;AACpG,gGAAgG;AAChG,MAAM,cAAc,GAAG,QAAQ,CAAC;AAEhC,oGAAoG;AACpG,MAAM,UAAU,gBAAgB;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAE5D,OAAO,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,CAAC;AAC7D,CAAC;AAED,SAAS,kBAAkB,CAAC,UAA4C;IACtE,OAAO,gBAAgB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,YAAY,CAAC,GAAW,EAAE,QAAgD;IACjF,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC;IAErC,OAAO,GAAG;SACP,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;QAEjE,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC;IACjE,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,KAAuB;IACjD,MAAM,GAAG,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3G,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IACjG,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzF,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SACjF,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;SAC9B,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,KAAyB,EAAE,KAA8B;IAC5E,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IAElD,+FAA+F;IAC/F,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,QAAQ,CAAC;IAEhD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;IACxC,MAAM,eAAe,GAAG,sBAAsB,EAAE,CAAC;IACjD,+FAA+F;IAC/F,6CAA6C;IAC7C,MAAM,aAAa,GAAG,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IACnG,MAAM,kBAAkB,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;IAC/G,MAAM,kBAAkB,GACtB,KAAK,CAAC,QAAQ,KAAK,SAAS;QAC1B,CAAC,CAAC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;YAC/B,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC,GAAG;QAClD,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,kBAAkB,GACtB,kBAAkB,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IACtG,MAAM,YAAY,GAAG,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;IAC/G,MAAM,YAAY,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IACxG,MAAM,YAAY,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;IACvC,MAAM,eAAe,GAAG,eAAe,CAAC,YAAY,CAAC,GAAG,WAAW,GAAG,YAAY,GAAG,CAAC,CAAC;IACvF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;IACnF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC;IAC5E,oFAAoF;IACpF,MAAM,iBAAiB,GAAG,KAAK,CAAC,aAAa;QAC3C,CAAC,CAAC,WAAW,CAAC,QAAQ;YACpB,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;QACxD,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM;QAC7B,CAAC,CAAC,YAAY,CAAC;YACX,IAAI,EAAE,KAAK,CAAC,MAAM;YAClB,SAAS,EAAE,KAAK,CAAC,WAAW;YAC5B,KAAK,EAAE,UAAU;SAClB,CAAC;QACJ,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,mBAAmB,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IACpG,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,UAAU,KAAK,IAAI,CAAC;IACtC,MAAM,gBAAgB,GAAG,iBAAiB,KAAK,IAAI,CAAC;IAEpD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CACR,GAAG,cAAc,CAAC;YAChB,IAAI,EAAE,KAAK,CAAC,QAAQ;YACpB,SAAS,EAAE,KAAK,CAAC,aAAa;YAC9B,KAAK,EAAE,UAAU;SAClB,CAAC,CACH,CAAC;QAEF,IAAI,cAAc,IAAI,SAAS,IAAI,gBAAgB,EAAE,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,mBAAmB,EAAE,UAAU,EAAE,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,iBAAiB,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAClC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,WAAW,EAAE,WAAW,CAAC,GAAG;QAC5B,OAAO;QACP,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC;QACjD,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,WAAW,CAAC,cAAc,IAAI,QAAQ;QAC9E,KAAK,EAAE,UAAU;KAClB,CAAC,CAAC;IAEH,OAAO,iBAAiB,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACnG,CAAC"}
@@ -0,0 +1,4 @@
1
+ /** Columnas de la terminal, o null si no se conocen (pipes, tests, CI). */
2
+ export declare function resolveTerminalColumns(): number | null;
3
+ /** `width` limitado al ancho de la terminal, si se conoce. */
4
+ export declare function fitToTerminal(width: number, minimum?: number): number;
@@ -0,0 +1,11 @@
1
+ /** Columnas de la terminal, o null si no se conocen (pipes, tests, CI). */
2
+ export function resolveTerminalColumns() {
3
+ const columns = process.stdout.columns || process.stderr.columns;
4
+ return columns && columns > 0 ? columns : null;
5
+ }
6
+ /** `width` limitado al ancho de la terminal, si se conoce. */
7
+ export function fitToTerminal(width, minimum = 24) {
8
+ const columns = resolveTerminalColumns();
9
+ return columns === null ? width : Math.min(width, Math.max(minimum, columns));
10
+ }
11
+ //# sourceMappingURL=terminalWidth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminalWidth.js","sourceRoot":"","sources":["../../../src/ui/primitives/terminalWidth.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,UAAU,sBAAsB;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;IAEjE,OAAO,OAAO,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,OAAO,GAAG,EAAE;IACvD,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;IAEzC,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAChF,CAAC"}
@@ -1,6 +1,11 @@
1
1
  import { type UiColorToken } from '../theme/theme';
2
2
  export type OutputTarget = 'stderr' | 'stdout';
3
3
  export type UiTextColor = UiColorToken | string;
4
+ /**
5
+ * Colores solo en una terminal real. Con la salida redirigida (pipe, archivo, `| jq`) `isTTY` es
6
+ * `undefined`: antes se trataba como terminal y el JSON salia con codigos ANSI que lo rompian.
7
+ * `NO_COLOR` los apaga siempre; `FORCE_COLOR` los fuerza aunque no haya terminal.
8
+ */
4
9
  export declare function shouldUseColor(target?: OutputTarget): boolean;
5
10
  export declare function supportsColor(target?: OutputTarget): boolean;
6
11
  export declare function resolveTextColor(color: UiTextColor): string;
@@ -11,6 +16,11 @@ export declare function toneText(value: string, color: UiTextColor): string;
11
16
  export declare function stripAnsi(value: string): string;
12
17
  export declare function flattenVisibleLines(lines: readonly string[]): string[];
13
18
  export declare function wrapPlainText(value: string, width: number): string[];
19
+ /**
20
+ * Parte lineas que no entran en `width` respetando su sangria.
21
+ * Si la linea es una fila etiqueta/valor, el valor sigue debajo de su propia columna en vez de
22
+ * pegarse a la etiqueta, asi la tabla no se desarma en terminales angostas.
23
+ */
14
24
  export declare function wrapIndentedPlainText(value: string, width: number): string[];
15
25
  export declare function maxVisibleWidth(lines: readonly string[]): number;
16
26
  export declare function centerText(value: string, width: number): string;
@@ -5,12 +5,22 @@ const BOLD = '\u001B[1m';
5
5
  // coloreado que dibuja boxen.
6
6
  const BOLD_OFF = '\u001B[22m';
7
7
  const COLOR_OFF = '\u001B[39m';
8
+ const DIM = '\u001B[2m';
9
+ /**
10
+ * Colores solo en una terminal real. Con la salida redirigida (pipe, archivo, `| jq`) `isTTY` es
11
+ * `undefined`: antes se trataba como terminal y el JSON salia con codigos ANSI que lo rompian.
12
+ * `NO_COLOR` los apaga siempre; `FORCE_COLOR` los fuerza aunque no haya terminal.
13
+ */
8
14
  export function shouldUseColor(target = 'stdout') {
9
15
  if (process.env.NO_COLOR) {
10
16
  return false;
11
17
  }
18
+ const forceColor = process.env.FORCE_COLOR;
19
+ if (forceColor !== undefined && forceColor !== '') {
20
+ return forceColor !== '0' && forceColor.toLowerCase() !== 'false';
21
+ }
12
22
  const stream = target === 'stderr' ? process.stderr : process.stdout;
13
- return stream.isTTY !== false;
23
+ return stream.isTTY === true;
14
24
  }
15
25
  export function supportsColor(target = 'stdout') {
16
26
  return shouldUseColor(target);
@@ -32,7 +42,10 @@ export function colorize(value, color, target = 'stdout') {
32
42
  if (!shouldUseColor(target)) {
33
43
  return value;
34
44
  }
35
- return wrapLines(value, resolveTextColor(color), COLOR_OFF);
45
+ const open = resolveTextColor(color);
46
+ // El atenuado (muted) no se apaga con COLOR_OFF: si se cerrara asi quedaria prendido y
47
+ // apagaria todo lo que se imprime despues. Se cierra igual que la negrita.
48
+ return wrapLines(value, open, open === DIM ? BOLD_OFF : COLOR_OFF);
36
49
  }
37
50
  export function bold(value, target = 'stdout') {
38
51
  if (!shouldUseColor(target)) {
@@ -90,6 +103,74 @@ export function wrapPlainText(value, width) {
90
103
  return wrapped.length > 0 ? wrapped : [''];
91
104
  });
92
105
  }
106
+ // Reparte palabras en lineas de `width` columnas visibles. La primera linea arranca con `firstPrefix`
107
+ // y las siguientes con `continuationPrefix`; las palabras mas largas que el espacio se cortan.
108
+ function wrapWords(words, firstPrefix, continuationPrefix, width) {
109
+ const availableWidth = Math.max(1, width - stripAnsi(continuationPrefix).length);
110
+ const wrapped = [];
111
+ let currentLine = firstPrefix;
112
+ let currentHasWords = false;
113
+ for (const word of words) {
114
+ const candidate = currentHasWords ? `${currentLine} ${word}` : `${currentLine}${word}`;
115
+ if (stripAnsi(candidate).length <= width) {
116
+ currentLine = candidate;
117
+ currentHasWords = true;
118
+ continue;
119
+ }
120
+ if (currentHasWords) {
121
+ wrapped.push(currentLine);
122
+ }
123
+ let remaining = word;
124
+ while (stripAnsi(remaining).length > availableWidth) {
125
+ wrapped.push(`${continuationPrefix}${remaining.slice(0, availableWidth)}`);
126
+ remaining = remaining.slice(availableWidth);
127
+ }
128
+ currentLine = `${continuationPrefix}${remaining}`;
129
+ currentHasWords = true;
130
+ }
131
+ if (currentHasWords) {
132
+ wrapped.push(currentLine);
133
+ }
134
+ return wrapped;
135
+ }
136
+ // eslint-disable-next-line no-control-regex
137
+ const ANSI_SEQUENCE = /^\u001B\[[0-9;]*m/;
138
+ // Corta `line` en la columna visible `column`, sin partir secuencias ANSI: los codigos que caen
139
+ // antes de esa columna (por ejemplo el cierre de una etiqueta en negrita) quedan en la primera parte.
140
+ function splitAtVisibleColumn(line, column) {
141
+ let visible = 0;
142
+ let index = 0;
143
+ while (index < line.length && visible < column) {
144
+ const ansi = ANSI_SEQUENCE.exec(line.slice(index));
145
+ if (ansi) {
146
+ index += ansi[0].length;
147
+ continue;
148
+ }
149
+ visible += 1;
150
+ index += 1;
151
+ }
152
+ // Los codigos ANSI pegados al corte tambien van con la primera parte.
153
+ for (let ansi = ANSI_SEQUENCE.exec(line.slice(index)); ansi; ansi = ANSI_SEQUENCE.exec(line.slice(index))) {
154
+ index += ansi[0].length;
155
+ }
156
+ return [line.slice(0, index), line.slice(index)];
157
+ }
158
+ // Saca los espacios del final sin perder los codigos ANSI que haya entre ellos (el cierre de una negrita).
159
+ function trimTrailingSpaces(value) {
160
+ // eslint-disable-next-line no-control-regex
161
+ const codes = value.match(/(?:\u001B\[[0-9;]*m)+\s*$/)?.[0]?.replace(/\s/g, '') ?? '';
162
+ // eslint-disable-next-line no-control-regex
163
+ return `${value.replace(/(?:\s|\u001B\[[0-9;]*m)+$/, '')}${codes}`;
164
+ }
165
+ // Filas "etiqueta + 2 o mas espacios + valor", como las de las tablas de los paneles.
166
+ const LABEL_VALUE_LINE = /^(\s*\S(?:.*?\S)?\s{2,})(\S.*)$/;
167
+ // Espacio minimo para el valor; con menos, conviene partir la linea entera.
168
+ const MIN_VALUE_COLUMN_WIDTH = 12;
169
+ /**
170
+ * Parte lineas que no entran en `width` respetando su sangria.
171
+ * Si la linea es una fila etiqueta/valor, el valor sigue debajo de su propia columna en vez de
172
+ * pegarse a la etiqueta, asi la tabla no se desarma en terminales angostas.
173
+ */
93
174
  export function wrapIndentedPlainText(value, width) {
94
175
  if (width <= 0) {
95
176
  return [value];
@@ -98,39 +179,29 @@ export function wrapIndentedPlainText(value, width) {
98
179
  if (stripAnsi(line).length <= width) {
99
180
  return [line];
100
181
  }
182
+ // La columna se busca sobre el texto visible: con ANSI (etiquetas en negrita) la regex cortaria mal.
183
+ const columnMatch = LABEL_VALUE_LINE.exec(stripAnsi(line));
184
+ const prefixWidth = columnMatch?.[1]?.length ?? 0;
185
+ if (columnMatch) {
186
+ const [prefix, rest] = splitAtVisibleColumn(line, prefixWidth);
187
+ const values = rest.split(/\s+/);
188
+ if (width - prefixWidth >= MIN_VALUE_COLUMN_WIDTH) {
189
+ return wrapWords(values, prefix, ' '.repeat(prefixWidth), width);
190
+ }
191
+ // Sin lugar para la columna: etiqueta en una linea y el valor debajo, con sangria.
192
+ const indent = columnMatch[1]?.match(/^\s*/)?.[0] ?? '';
193
+ const valueIndent = `${indent} `;
194
+ return [
195
+ ...wrapWords([trimTrailingSpaces(prefix)], '', indent, width),
196
+ ...wrapWords(values, valueIndent, valueIndent, width),
197
+ ];
198
+ }
101
199
  const indent = line.match(/^\s*/)?.[0] ?? '';
102
200
  const content = line.slice(indent.length).trimStart();
103
- const continuationIndent = indent;
104
- const availableWidth = Math.max(1, width - stripAnsi(continuationIndent).length);
105
201
  if (!content) {
106
202
  return [line];
107
203
  }
108
- const words = content.split(/\s+/);
109
- const wrapped = [];
110
- let currentLine = indent;
111
- for (const word of words) {
112
- const candidate = currentLine.trim().length > 0 ? `${currentLine} ${word}` : `${indent}${word}`;
113
- if (stripAnsi(candidate).length <= width) {
114
- currentLine = candidate;
115
- continue;
116
- }
117
- if (currentLine.trim().length > 0) {
118
- wrapped.push(currentLine);
119
- }
120
- if (stripAnsi(word).length <= availableWidth) {
121
- currentLine = `${continuationIndent}${word}`;
122
- continue;
123
- }
124
- let remaining = word;
125
- while (stripAnsi(remaining).length > availableWidth) {
126
- wrapped.push(`${continuationIndent}${remaining.slice(0, availableWidth)}`);
127
- remaining = remaining.slice(availableWidth);
128
- }
129
- currentLine = `${continuationIndent}${remaining}`;
130
- }
131
- if (currentLine.trim().length > 0) {
132
- wrapped.push(currentLine);
133
- }
204
+ const wrapped = wrapWords(content.split(/\s+/), indent, indent, width);
134
205
  return wrapped.length > 0 ? wrapped : [line];
135
206
  });
136
207
  }
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/ui/primitives/text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/ui/primitives/text.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,40 @@
1
- import type { Options as BoxenOptions, Spacing as BoxenSpacing } from 'boxen';
2
- export type UiBorderType = 'arrow' | 'common' | 'debug' | 'note';
3
- export type UiColorToken = 'danger' | 'debug' | 'info' | 'muted' | 'neutral' | 'success' | 'warning';
1
+ import type { Spacing as BoxenSpacing } from 'boxen';
2
+ /**
3
+ * Tipo de borde segun lo que se muestra:
4
+ * - common: paneles de contenido (configuracion, observaciones, sugerencias, avisos FCE)
5
+ * - ticket: comprobante, como common pero con la linea de corte punteada antes del estado
6
+ * - error: errores del CLI o de ARCA (redondeado con franja gruesa a la izquierda)
7
+ * - attention: observaciones y avisos (como error, con la franja a trazos)
8
+ * - tip: sugerencias (como error, con la franja fina punteada)
9
+ * - sheet: fichas de consulta, como configuracion o regimen FCE (titulo a la izquierda)
10
+ * - checklist: revision de configuracion (doble lateral, veredicto en el pie)
11
+ * - listing: listados en tabla, como los ultimos comprobantes (solo reglas arriba y abajo)
12
+ * - note: avisos simples de una linea (solo esquinas)
13
+ * - warning: banner del entorno de testing
14
+ * - info: aviso de nueva version
15
+ * - data: JSON y respuestas crudas
16
+ * - command: comandos para copiar (solo barra a la izquierda, sin borde derecho)
17
+ * - debug: storybook
18
+ */
19
+ export type UiBorderType = 'attention' | 'checklist' | 'command' | 'common' | 'data' | 'debug' | 'error' | 'info' | 'listing' | 'note' | 'sheet' | 'ticket' | 'tip' | 'warning';
20
+ export interface UiBoxBorder {
21
+ readonly bottom: string;
22
+ readonly bottomLeft: string;
23
+ readonly bottomRight: string;
24
+ readonly left: string;
25
+ readonly right: string;
26
+ readonly top: string;
27
+ readonly topLeft: string;
28
+ readonly topRight: string;
29
+ }
30
+ export interface UiBorderStyle {
31
+ readonly box: UiBoxBorder;
32
+ /** Linea divisoria unida al borde: [izquierda, relleno, derecha]. Sin junction, el divisor va por adentro. */
33
+ readonly junction?: readonly [left: string, fill: string, right: string];
34
+ /** Alineacion del titulo sobre el borde; por defecto, centrado. */
35
+ readonly titleAlignment?: 'center' | 'left';
36
+ }
37
+ export type UiColorToken = 'danger' | 'debug' | 'info' | 'muted' | 'neutral' | 'subtle' | 'success' | 'warning';
4
38
  export type UiWidthPreset = 'compact' | 'standard' | 'wide';
5
39
  export interface UiWidthRange {
6
40
  readonly max: number;
@@ -8,7 +42,14 @@ export interface UiWidthRange {
8
42
  }
9
43
  export interface UiTheme {
10
44
  readonly badgeBrackets: readonly [left: string, right: string];
11
- readonly borderStyles: Readonly<Record<UiBorderType, BoxenOptions['borderStyle']>>;
45
+ /** Bordes Unicode por tipo; `command` no dibuja caja, solo la barra de `commandBar`. */
46
+ readonly borderStyles: Readonly<Record<Exclude<UiBorderType, 'command'>, UiBorderStyle>>;
47
+ /** Respaldo para terminales sin caracteres de caja (ARCLI_ASCII=1). */
48
+ readonly asciiBorderStyle: UiBorderStyle;
49
+ readonly commandBar: {
50
+ readonly ascii: string;
51
+ readonly unicode: string;
52
+ };
12
53
  readonly colors: Readonly<Record<UiColorToken, string>>;
13
54
  readonly headingLineMinWidth: number;
14
55
  readonly spacing: {