linecraft 0.2.3 → 0.2.5

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 (77) hide show
  1. package/README.md +84 -7
  2. package/lib/components/code-debug.d.ts +7 -1
  3. package/lib/components/code-debug.d.ts.map +1 -1
  4. package/lib/components/code-debug.js +261 -232
  5. package/lib/components/code-debug.js.map +1 -1
  6. package/lib/components/code-debug.test.d.ts +2 -0
  7. package/lib/components/code-debug.test.d.ts.map +1 -0
  8. package/lib/components/code-debug.test.js +253 -0
  9. package/lib/components/code-debug.test.js.map +1 -0
  10. package/lib/components/progress-bar-grid.d.ts.map +1 -1
  11. package/lib/components/progress-bar-grid.js +2 -1
  12. package/lib/components/progress-bar-grid.js.map +1 -1
  13. package/lib/components/progress-bar-grid.test.js +8 -7
  14. package/lib/components/progress-bar-grid.test.js.map +1 -1
  15. package/lib/components/prompt.d.ts.map +1 -1
  16. package/lib/components/prompt.js +2 -1
  17. package/lib/components/prompt.js.map +1 -1
  18. package/lib/components/segments.d.ts.map +1 -1
  19. package/lib/components/segments.js +0 -7
  20. package/lib/components/segments.js.map +1 -1
  21. package/lib/components/style.test.js +12 -11
  22. package/lib/components/style.test.js.map +1 -1
  23. package/lib/components/styled.d.ts +1 -0
  24. package/lib/components/styled.d.ts.map +1 -1
  25. package/lib/components/styled.js +38 -8
  26. package/lib/components/styled.js.map +1 -1
  27. package/lib/components/styled.test.js +12 -11
  28. package/lib/components/styled.test.js.map +1 -1
  29. package/lib/layout/grid.d.ts +3 -2
  30. package/lib/layout/grid.d.ts.map +1 -1
  31. package/lib/layout/grid.js +166 -81
  32. package/lib/layout/grid.js.map +1 -1
  33. package/lib/layout/grid.test.js +70 -3
  34. package/lib/layout/grid.test.js.map +1 -1
  35. package/lib/native/diff.d.ts.map +1 -1
  36. package/lib/native/diff.js +2 -1
  37. package/lib/native/diff.js.map +1 -1
  38. package/lib/native/diff.test.js.map +1 -1
  39. package/lib/native/region-old.js +4 -4
  40. package/lib/native/region-old.js.map +1 -1
  41. package/lib/native/region-renderer.d.ts +3 -2
  42. package/lib/native/region-renderer.d.ts.map +1 -1
  43. package/lib/native/region-renderer.js +39 -9
  44. package/lib/native/region-renderer.js.map +1 -1
  45. package/lib/native/region-simple.d.ts.map +1 -1
  46. package/lib/native/region-simple.js +1 -1
  47. package/lib/native/region-simple.js.map +1 -1
  48. package/lib/region.d.ts +3 -3
  49. package/lib/region.d.ts.map +1 -1
  50. package/lib/region.js +15 -66
  51. package/lib/region.js.map +1 -1
  52. package/lib/types.d.ts +1 -0
  53. package/lib/types.d.ts.map +1 -1
  54. package/lib/utils/colors.d.ts.map +1 -1
  55. package/lib/utils/colors.js +3 -0
  56. package/lib/utils/colors.js.map +1 -1
  57. package/lib/utils/cursor-position.d.ts.map +1 -1
  58. package/lib/utils/cursor-position.js +4 -15
  59. package/lib/utils/cursor-position.js.map +1 -1
  60. package/lib/utils/prompt.js +3 -3
  61. package/lib/utils/prompt.js.map +1 -1
  62. package/lib/utils/terminal-theme.d.ts +5 -4
  63. package/lib/utils/terminal-theme.d.ts.map +1 -1
  64. package/lib/utils/terminal-theme.js +7 -6
  65. package/lib/utils/terminal-theme.js.map +1 -1
  66. package/lib/utils/text.d.ts +91 -2
  67. package/lib/utils/text.d.ts.map +1 -1
  68. package/lib/utils/text.js +765 -72
  69. package/lib/utils/text.js.map +1 -1
  70. package/lib/utils/text.test.d.ts +2 -0
  71. package/lib/utils/text.test.d.ts.map +1 -0
  72. package/lib/utils/text.test.js +237 -0
  73. package/lib/utils/text.test.js.map +1 -0
  74. package/lib/utils/wait-for-spacebar.d.ts.map +1 -1
  75. package/lib/utils/wait-for-spacebar.js +2 -9
  76. package/lib/utils/wait-for-spacebar.js.map +1 -1
  77. package/package.json +7 -3
@@ -1 +1 @@
1
- {"version":3,"file":"styled.d.ts","sourceRoot":"","sources":["../../src/components/styled.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIzC,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,eAAe,CAAC,EAAE,KAAK,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,MAAM,CAAC;IACnF,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC;CACxC;AAED;;GAEG;AACH,wBAAgB,MAAM,CACpB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GACrC,SAAS,CAyEX"}
1
+ {"version":3,"file":"styled.d.ts","sourceRoot":"","sources":["../../src/components/styled.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEhE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIzC,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,eAAe,CAAC,EAAE,KAAK,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,MAAM,CAAC;IACnF,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC;CACxC;AAED;;GAEG;AACH,wBAAgB,MAAM,CACpB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GACrC,SAAS,CAsGX"}
@@ -1,6 +1,7 @@
1
1
  // Style component for text styling and overflow handling
2
+ import { callComponent } from '../component.js';
2
3
  import { applyStyle } from '../utils/colors.js';
3
- import { truncateEnd, truncateStart, truncateMiddle, wrapText } from '../utils/text.js';
4
+ import { truncateEnd, truncateStart, truncateMiddle, wrapText, countVisibleChars } from '../utils/text.js';
4
5
  /**
5
6
  * Styled component - applies styling and handles overflow
6
7
  */
@@ -17,14 +18,17 @@ export function Styled(options, content) {
17
18
  }
18
19
  else {
19
20
  // It's a component - render it
20
- const result = content(ctx);
21
+ const result = callComponent(content, ctx);
21
22
  if (result === null)
22
23
  return null;
23
24
  text = result;
24
25
  }
25
26
  // Handle overflow
26
27
  const overflow = options.overflow ?? 'wrap';
27
- const availableWidth = Math.max(0, ctx.availableWidth);
28
+ // Apply max width constraint if specified (content-based width up to max)
29
+ const availableWidth = Math.max(0, options.max !== undefined
30
+ ? Math.min(ctx.availableWidth, options.max)
31
+ : ctx.availableWidth);
28
32
  const alignMode = options.align ?? 'left';
29
33
  const styleOptions = {
30
34
  color: options.color,
@@ -39,6 +43,13 @@ export function Styled(options, content) {
39
43
  }
40
44
  const formatted = lines.map(line => {
41
45
  const aligned = alignText(line, availableWidth, alignMode);
46
+ // Check if the line already has ANSI codes - if so, preserve them
47
+ const hasAnsiCodes = /\x1b\[[0-9;]*m/.test(aligned);
48
+ if (hasAnsiCodes) {
49
+ // Text already has styling - don't overwrite it, just return as-is
50
+ return aligned;
51
+ }
52
+ // No existing ANSI codes - apply the style options
42
53
  return applyStyle(aligned, styleOptions);
43
54
  });
44
55
  return formatted.length === 1 ? formatted[0] : formatted;
@@ -49,13 +60,15 @@ export function Styled(options, content) {
49
60
  if (typeof text === 'string') {
50
61
  // Single line
51
62
  let processed = text;
52
- if (overflow === 'ellipsis-end' && processed.length > availableWidth) {
63
+ // Check visible width, not raw string length
64
+ const visibleWidth = countVisibleChars(processed);
65
+ if (overflow === 'ellipsis-end' && visibleWidth > availableWidth) {
53
66
  processed = truncateEnd(processed, availableWidth);
54
67
  }
55
- else if (overflow === 'ellipsis-start' && processed.length > availableWidth) {
68
+ else if (overflow === 'ellipsis-start' && visibleWidth > availableWidth) {
56
69
  processed = truncateStart(processed, availableWidth);
57
70
  }
58
- else if (overflow === 'ellipsis-middle' && processed.length > availableWidth) {
71
+ else if (overflow === 'ellipsis-middle' && visibleWidth > availableWidth) {
59
72
  processed = truncateMiddle(processed, availableWidth);
60
73
  }
61
74
  else if (overflow === 'wrap' || overflow === 'none') {
@@ -64,14 +77,31 @@ export function Styled(options, content) {
64
77
  }
65
78
  // Apply alignment
66
79
  const aligned = alignText(processed, availableWidth, alignMode);
80
+ // Check if the line already has ANSI codes - if so, preserve them
81
+ const hasAnsiCodes = /\x1b\[[0-9;]*m/.test(aligned);
82
+ if (hasAnsiCodes) {
83
+ // Text already has styling - don't overwrite it, just return as-is
84
+ return aligned;
85
+ }
86
+ // No existing ANSI codes - apply the style options
67
87
  return applyStyle(aligned, styleOptions);
68
88
  }
69
89
  else {
70
90
  // Array of strings - apply styling and alignment to each line
71
91
  const lines = [];
72
92
  for (const line of text) {
73
- const wrapped = wrapText(line, availableWidth);
74
- lines.push(...wrapped);
93
+ // Check if line already has ANSI codes
94
+ const hasAnsiCodes = /\x1b\[[0-9;]*m/.test(line);
95
+ if (hasAnsiCodes) {
96
+ // Already styled - wrap it preserving ANSI codes
97
+ const wrapped = wrapText(line, availableWidth);
98
+ lines.push(...wrapped);
99
+ }
100
+ else {
101
+ // No ANSI codes - wrap and will be styled later
102
+ const wrapped = wrapText(line, availableWidth);
103
+ lines.push(...wrapped);
104
+ }
75
105
  }
76
106
  return formatLines(lines);
77
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"styled.js","sourceRoot":"","sources":["../../src/components/styled.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"styled.js","sourceRoot":"","sources":["../../src/components/styled.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { Styled } from './styled.js';
3
3
  import { TerminalRegion } from '../region.js';
4
+ import { callComponent } from '../component.js';
4
5
  describe('Style Component', () => {
5
6
  let region;
6
7
  beforeEach(() => {
@@ -9,7 +10,7 @@ describe('Style Component', () => {
9
10
  describe('basic styling', () => {
10
11
  it('should apply color', () => {
11
12
  const component = Styled({ color: 'red' }, 'Hello');
12
- const result = component({
13
+ const result = callComponent(component, {
13
14
  availableWidth: 80,
14
15
  region: region,
15
16
  columnIndex: 0,
@@ -20,7 +21,7 @@ describe('Style Component', () => {
20
21
  });
21
22
  it('should apply backgroundColor', () => {
22
23
  const component = Styled({ backgroundColor: 'blue' }, 'Hello');
23
- const result = component({
24
+ const result = callComponent(component, {
24
25
  availableWidth: 80,
25
26
  region: region,
26
27
  columnIndex: 0,
@@ -31,7 +32,7 @@ describe('Style Component', () => {
31
32
  });
32
33
  it('should apply bold', () => {
33
34
  const component = Styled({ bold: true }, 'Hello');
34
- const result = component({
35
+ const result = callComponent(component, {
35
36
  availableWidth: 80,
36
37
  region: region,
37
38
  columnIndex: 0,
@@ -43,7 +44,7 @@ describe('Style Component', () => {
43
44
  describe('overflow handling', () => {
44
45
  it('should truncate with ellipsis-end', () => {
45
46
  const component = Styled({ overflow: 'ellipsis-end' }, 'This is a very long text');
46
- const result = component({
47
+ const result = callComponent(component, {
47
48
  availableWidth: 10,
48
49
  region: region,
49
50
  columnIndex: 0,
@@ -55,7 +56,7 @@ describe('Style Component', () => {
55
56
  });
56
57
  it('should truncate with ellipsis-start', () => {
57
58
  const component = Styled({ overflow: 'ellipsis-start' }, 'This is a very long text');
58
- const result = component({
59
+ const result = callComponent(component, {
59
60
  availableWidth: 10,
60
61
  region: region,
61
62
  columnIndex: 0,
@@ -67,7 +68,7 @@ describe('Style Component', () => {
67
68
  });
68
69
  it('should wrap text', () => {
69
70
  const component = Styled({ overflow: 'wrap' }, 'This is a very long text that should wrap');
70
- const result = component({
71
+ const result = callComponent(component, {
71
72
  availableWidth: 10,
72
73
  region: region,
73
74
  columnIndex: 0,
@@ -80,7 +81,7 @@ describe('Style Component', () => {
80
81
  describe('when condition', () => {
81
82
  it('should return null when condition is false', () => {
82
83
  const component = Styled({ when: () => false }, 'Hello');
83
- const result = component({
84
+ const result = callComponent(component, {
84
85
  availableWidth: 80,
85
86
  region: region,
86
87
  columnIndex: 0,
@@ -90,7 +91,7 @@ describe('Style Component', () => {
90
91
  });
91
92
  it('should return content when condition is true', () => {
92
93
  const component = Styled({ when: (ctx) => ctx.availableWidth > 50 }, 'Hello');
93
- const result = component({
94
+ const result = callComponent(component, {
94
95
  availableWidth: 80,
95
96
  region: region,
96
97
  columnIndex: 0,
@@ -100,14 +101,14 @@ describe('Style Component', () => {
100
101
  });
101
102
  it('should check availableWidth in condition', () => {
102
103
  const component = Styled({ when: (ctx) => ctx.availableWidth > 50 }, 'Hello');
103
- const result1 = component({
104
+ const result1 = callComponent(component, {
104
105
  availableWidth: 40,
105
106
  region: region,
106
107
  columnIndex: 0,
107
108
  rowIndex: 0,
108
109
  });
109
110
  expect(result1).toBeNull();
110
- const result2 = component({
111
+ const result2 = callComponent(component, {
111
112
  availableWidth: 60,
112
113
  region: region,
113
114
  columnIndex: 0,
@@ -119,7 +120,7 @@ describe('Style Component', () => {
119
120
  describe('multi-line content', () => {
120
121
  it('should apply styling to each line', () => {
121
122
  const component = Styled({ color: 'red' }, ['Line 1', 'Line 2']);
122
- const result = component({
123
+ const result = callComponent(component, {
123
124
  availableWidth: 80,
124
125
  region: region,
125
126
  columnIndex: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"styled.test.js","sourceRoot":"","sources":["../../src/components/styled.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"styled.test.js","sourceRoot":"","sources":["../../src/components/styled.test.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,9 @@ import type { Component } from '../component.js';
4
4
  * Grid template entry: fixed width, flex unit, or minmax
5
5
  */
6
6
  export type GridTemplateEntry = number | 'auto' | '*' | `${number}*` | {
7
- min: number;
8
- width: string;
7
+ min?: number;
8
+ max?: number;
9
+ width?: string;
9
10
  };
10
11
  export interface GridOptions {
11
12
  /** Explicit column definitions (like CSS grid-template-columns) */
@@ -1 +1 @@
1
- {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../src/layout/grid.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAS,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AA4BhE;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,MAAM,GACN,GAAG,GACH,GAAG,MAAM,GAAG,GACZ;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC,MAAM,WAAW,WAAW;IAC1B,mEAAmE;IACnE,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAE9B,0HAA0H;IAC1H,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAEhC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAE/B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAC;IAErC,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,eAAe,CAAC;CACxD;AAiPD;;;;GAIG;AACH,wBAAgB,IAAI,CAClB,OAAO,EAAE,WAAW,EACpB,GAAG,QAAQ,EAAE,CAAC,SAAS,GAAG,MAAM,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC,EAAE,GAC1D,SAAS,CAkeX"}
1
+ {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../src/layout/grid.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAS,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AA6BhE;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,MAAM,GACN,GAAG,GACH,GAAG,MAAM,GAAG,GACZ;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD,MAAM,WAAW,WAAW;IAC1B,mEAAmE;IACnE,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAE9B,0HAA0H;IAC1H,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAEhC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAE/B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAC;IAErC,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,eAAe,CAAC;CACxD;AAuSD;;;;GAIG;AACH,wBAAgB,IAAI,CAClB,OAAO,EAAE,WAAW,EACpB,GAAG,QAAQ,EAAE,CAAC,SAAS,GAAG,MAAM,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC,EAAE,GAC1D,SAAS,CA6fX"}