@teaui/core 1.6.8 → 1.7.8

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 (91) hide show
  1. package/.dist/Screen.d.ts +4 -5
  2. package/.dist/Screen.js +4 -6
  3. package/.dist/Screen.js.map +1 -1
  4. package/.dist/Viewport.d.ts +6 -1
  5. package/.dist/Viewport.js +6 -2
  6. package/.dist/Viewport.js.map +1 -1
  7. package/.dist/components/Accordion.js +1 -1
  8. package/.dist/components/Accordion.js.map +1 -1
  9. package/.dist/components/Breadcrumb.d.ts +93 -0
  10. package/.dist/components/Breadcrumb.js +287 -0
  11. package/.dist/components/Breadcrumb.js.map +1 -0
  12. package/.dist/components/Button.js +23 -11
  13. package/.dist/components/Button.js.map +1 -1
  14. package/.dist/components/Calendar.d.ts +36 -0
  15. package/.dist/components/Calendar.js +721 -0
  16. package/.dist/components/Calendar.js.map +1 -0
  17. package/.dist/components/Canvas.d.ts +48 -0
  18. package/.dist/components/Canvas.js +230 -0
  19. package/.dist/components/Canvas.js.map +1 -0
  20. package/.dist/components/Checkbox.d.ts +3 -2
  21. package/.dist/components/Checkbox.js +31 -9
  22. package/.dist/components/Checkbox.js.map +1 -1
  23. package/.dist/components/Dropdown.d.ts +1 -1
  24. package/.dist/components/Dropdown.js +14 -6
  25. package/.dist/components/Dropdown.js.map +1 -1
  26. package/.dist/components/Geometry.d.ts +29 -0
  27. package/.dist/components/Geometry.js +40 -0
  28. package/.dist/components/Geometry.js.map +1 -0
  29. package/.dist/components/HotKey.js +1 -1
  30. package/.dist/components/HotKey.js.map +1 -1
  31. package/.dist/components/Log.js +1 -1
  32. package/.dist/components/Log.js.map +1 -1
  33. package/.dist/components/Logo.d.ts +19 -0
  34. package/.dist/components/Logo.js +204 -0
  35. package/.dist/components/Logo.js.map +1 -0
  36. package/.dist/components/Modal.d.ts +74 -0
  37. package/.dist/components/Modal.js +113 -0
  38. package/.dist/components/Modal.js.map +1 -0
  39. package/.dist/components/Pane.d.ts +43 -0
  40. package/.dist/components/Pane.js +321 -0
  41. package/.dist/components/Pane.js.map +1 -0
  42. package/.dist/components/Pin.d.ts +25 -0
  43. package/.dist/components/Pin.js +80 -0
  44. package/.dist/components/Pin.js.map +1 -0
  45. package/.dist/components/Plot.d.ts +25 -0
  46. package/.dist/components/Plot.js +171 -0
  47. package/.dist/components/Plot.js.map +1 -0
  48. package/.dist/components/Scrollable.d.ts +6 -0
  49. package/.dist/components/Scrollable.js +14 -2
  50. package/.dist/components/Scrollable.js.map +1 -1
  51. package/.dist/components/ScrollableList.d.ts +2 -2
  52. package/.dist/components/ScrollableList.js +4 -4
  53. package/.dist/components/ScrollableList.js.map +1 -1
  54. package/.dist/components/Slider.d.ts +2 -0
  55. package/.dist/components/Slider.js +11 -1
  56. package/.dist/components/Slider.js.map +1 -1
  57. package/.dist/components/Table.d.ts +79 -0
  58. package/.dist/components/Table.js +603 -0
  59. package/.dist/components/Table.js.map +1 -0
  60. package/.dist/components/Tabs.d.ts +2 -0
  61. package/.dist/components/Tabs.js +14 -1
  62. package/.dist/components/Tabs.js.map +1 -1
  63. package/.dist/components/ZStack.d.ts +19 -0
  64. package/.dist/components/ZStack.js +34 -0
  65. package/.dist/components/ZStack.js.map +1 -0
  66. package/.dist/components/charts/BarChart.d.ts +27 -0
  67. package/.dist/components/charts/BarChart.js +122 -0
  68. package/.dist/components/charts/BarChart.js.map +1 -0
  69. package/.dist/components/charts/Chart.d.ts +43 -0
  70. package/.dist/components/charts/Chart.js +41 -0
  71. package/.dist/components/charts/Chart.js.map +1 -0
  72. package/.dist/components/charts/LineChart.d.ts +23 -0
  73. package/.dist/components/charts/LineChart.js +109 -0
  74. package/.dist/components/charts/LineChart.js.map +1 -0
  75. package/.dist/components/charts/index.d.ts +3 -0
  76. package/.dist/components/charts/index.js +4 -0
  77. package/.dist/components/charts/index.js.map +1 -0
  78. package/.dist/components/index.d.ts +12 -0
  79. package/.dist/components/index.js +12 -0
  80. package/.dist/components/index.js.map +1 -1
  81. package/.dist/iTerm2.js +1 -3
  82. package/.dist/iTerm2.js.map +1 -1
  83. package/.dist/inspect.js +1 -1
  84. package/.dist/inspect.js.map +1 -1
  85. package/.dist/managers/ModalManager.d.ts +2 -1
  86. package/.dist/managers/ModalManager.js +23 -51
  87. package/.dist/managers/ModalManager.js.map +1 -1
  88. package/.dist/testing.d.ts +5 -0
  89. package/.dist/testing.js +19 -3
  90. package/.dist/testing.js.map +1 -1
  91. package/package.json +3 -3
@@ -10,6 +10,7 @@ export class Button extends Container {
10
10
  #textView;
11
11
  #border = 'default';
12
12
  #align = 'center';
13
+ #hasFocus = false;
13
14
  constructor(props) {
14
15
  super(props);
15
16
  this.#textView = new Text({ alignment: 'center' });
@@ -21,7 +22,7 @@ export class Button extends Container {
21
22
  super.update(props);
22
23
  }
23
24
  childTheme(view) {
24
- return childTheme(super.childTheme(view), this.isPressed, this.isHover);
25
+ return childTheme(super.childTheme(view), this.isPressed, this.isHover || this.#hasFocus);
25
26
  }
26
27
  #update({ title, border, align, hotKey, onClick }) {
27
28
  const styledText = hotKey ? styleTextForHotKey(title ?? '', hotKey) : title;
@@ -32,7 +33,7 @@ export class Button extends Container {
32
33
  this.#onClick = onClick;
33
34
  }
34
35
  naturalSize(available) {
35
- const [left, right] = this.#borderSize();
36
+ const [left, right] = this.#borderSize(false);
36
37
  return super.naturalSize(available).grow(left + right, 0);
37
38
  }
38
39
  get title() {
@@ -45,8 +46,9 @@ export class Button extends Container {
45
46
  this.#textView.text = styledText;
46
47
  this.invalidateSize();
47
48
  }
48
- #borderSize() {
49
- const [left, right] = BORDERS[this.#border];
49
+ #borderSize(hasFocus) {
50
+ const borders = hasFocus ? BORDERS_FOCUS : BORDERS;
51
+ const [left, right] = borders[this.#border];
50
52
  return [unicode.lineWidth(left), unicode.lineWidth(right)];
51
53
  }
52
54
  receiveMouse(event, system) {
@@ -59,6 +61,8 @@ export class Button extends Container {
59
61
  this.#onClick?.();
60
62
  }
61
63
  render(viewport) {
64
+ const hasFocus = viewport.registerFocus();
65
+ this.#hasFocus = hasFocus;
62
66
  if (viewport.isEmpty) {
63
67
  return super.render(viewport);
64
68
  }
@@ -68,11 +72,11 @@ export class Button extends Container {
68
72
  }
69
73
  const textStyle = this.theme.ui({
70
74
  isPressed: this.isPressed,
71
- isHover: this.isHover,
75
+ isHover: this.isHover || hasFocus,
72
76
  });
73
77
  const topsStyle = this.theme.ui({
74
78
  isPressed: this.isPressed,
75
- isHover: this.isHover,
79
+ isHover: this.isHover || hasFocus,
76
80
  isOrnament: true,
77
81
  });
78
82
  const useEmoji = this.theme.emoji;
@@ -89,14 +93,15 @@ export class Button extends Container {
89
93
  viewport.write(' ', pt, textStyle);
90
94
  }
91
95
  });
92
- const [leftWidth, rightWidth] = this.#borderSize();
96
+ const [leftWidth, rightWidth] = this.#borderSize(hasFocus);
93
97
  const naturalSize = super.naturalSize(viewport.contentSize.shrink(leftWidth + rightWidth, 0));
94
98
  const offsetLeft = this.#align === 'center'
95
99
  ? Math.round((viewport.contentSize.width - naturalSize.width) / 2)
96
100
  : this.#align === 'left'
97
101
  ? 1
98
102
  : viewport.contentSize.width - naturalSize.width - 1, offset = new Point(offsetLeft, Math.round((viewport.contentSize.height - naturalSize.height) / 2));
99
- const [left, right] = BORDERS[this.#border], leftX = offset.x - leftWidth, rightX = offset.x + naturalSize.width;
103
+ const borders = hasFocus ? BORDERS_FOCUS : BORDERS;
104
+ const [left, right] = borders[this.#border], leftX = offset.x - leftWidth, rightX = offset.x + naturalSize.width;
100
105
  for (let y = 0; y < naturalSize.height; y++) {
101
106
  viewport.write(left, new Point(leftX, offset.y + y), textStyle);
102
107
  viewport.write(right, new Point(rightX, offset.y + y), textStyle);
@@ -108,9 +113,16 @@ export class Button extends Container {
108
113
  }
109
114
  const BORDERS = {
110
115
  default: ['[ ', ' ]'],
111
- arrows: [' ', ' '],
116
+ // arrows: [' ', ' '],
117
+ arrows: ['\uE0B3', '\uE0B1'],
112
118
  none: [' ', ' '],
113
119
  };
114
- // E0A0 
115
- // E0B0 
120
+ const BORDERS_FOCUS = {
121
+ default: ['⟦ ', ' ⟧'],
122
+ // arrows: [' ', ' '],
123
+ arrows: ['\uE0B2', '\uE0B0'],
124
+ none: [' ', ' '],
125
+ };
126
+ // E0A0 \uE0A0\uE0A1\uE0A2   
127
+ // E0B0 \uE0B0\uE0B1\uE0B2\uE0B3    
116
128
  //# sourceMappingURL=Button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../lib/components/Button.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../lib/components/Button.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { Viewport } from '../Viewport.js';
2
+ import { type Props as ViewProps, View } from '../View.js';
3
+ import { Size } from '../geometry.js';
4
+ import { type KeyEvent, type MouseEvent } from '../events/index.js';
5
+ import { System } from '../System.js';
6
+ type DisplayMode = 'days' | 'months' | 'years';
7
+ type Selection = 'single' | 'range';
8
+ interface Props extends ViewProps {
9
+ /** Selected date */
10
+ date?: Date;
11
+ /** Displayed month/year */
12
+ visibleDate?: Date;
13
+ /** Called when navigating months/years (day is always 1) */
14
+ onChangeVisible?: (date: Date) => void;
15
+ /** Called when selecting a date (date2 == date1 for single selection) */
16
+ onChange?: (date1: Date, date2: Date) => void;
17
+ /** Single date or range selection. Default: 'single' */
18
+ selection?: Selection;
19
+ /** 0=Sunday (default), 1=Monday */
20
+ firstDayOfWeek?: 0 | 1;
21
+ }
22
+ export declare class Calendar extends View {
23
+ #private;
24
+ constructor(props?: Props);
25
+ update(props: Props): void;
26
+ get date(): Date;
27
+ set date(value: Date);
28
+ get visibleDate(): Date;
29
+ set visibleDate(value: Date);
30
+ get displayMode(): DisplayMode;
31
+ naturalSize(): Size;
32
+ receiveMouse(event: MouseEvent, system: System): void;
33
+ receiveKey(event: KeyEvent): void;
34
+ render(viewport: Viewport): void;
35
+ }
36
+ export {};