@teaui/core 1.7.8 → 1.9.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 (118) hide show
  1. package/.dist/Buffer.d.ts +5 -0
  2. package/.dist/Buffer.js +23 -0
  3. package/.dist/Buffer.js.map +1 -1
  4. package/.dist/Color.js.map +1 -1
  5. package/.dist/Screen.d.ts +2 -1
  6. package/.dist/Screen.js +24 -10
  7. package/.dist/Screen.js.map +1 -1
  8. package/.dist/Theme.d.ts +7 -3
  9. package/.dist/Theme.js +42 -25
  10. package/.dist/Theme.js.map +1 -1
  11. package/.dist/UI.js +3 -1
  12. package/.dist/UI.js.map +1 -1
  13. package/.dist/View.d.ts +29 -0
  14. package/.dist/View.js +40 -2
  15. package/.dist/View.js.map +1 -1
  16. package/.dist/Viewport.d.ts +17 -3
  17. package/.dist/Viewport.js +21 -11
  18. package/.dist/Viewport.js.map +1 -1
  19. package/.dist/components/Alert.d.ts +76 -0
  20. package/.dist/components/Alert.js +133 -0
  21. package/.dist/components/Alert.js.map +1 -0
  22. package/.dist/components/Box.d.ts +6 -2
  23. package/.dist/components/Box.js +51 -14
  24. package/.dist/components/Box.js.map +1 -1
  25. package/.dist/components/Button.d.ts +5 -2
  26. package/.dist/components/Button.js +44 -13
  27. package/.dist/components/Button.js.map +1 -1
  28. package/.dist/components/Calendar.d.ts +4 -1
  29. package/.dist/components/Calendar.js +371 -137
  30. package/.dist/components/Calendar.js.map +1 -1
  31. package/.dist/components/Callout.d.ts +12 -0
  32. package/.dist/components/Callout.js +82 -0
  33. package/.dist/components/Callout.js.map +1 -0
  34. package/.dist/components/Checkbox.js +1 -1
  35. package/.dist/components/Checkbox.js.map +1 -1
  36. package/.dist/components/Drawer.d.ts +3 -0
  37. package/.dist/components/Drawer.js +71 -2
  38. package/.dist/components/Drawer.js.map +1 -1
  39. package/.dist/components/Dropdown.js +20 -12
  40. package/.dist/components/Dropdown.js.map +1 -1
  41. package/.dist/components/Header.d.ts +1 -1
  42. package/.dist/components/Header.js +12 -10
  43. package/.dist/components/Header.js.map +1 -1
  44. package/.dist/components/Input.d.ts +1 -0
  45. package/.dist/components/Input.js +39 -15
  46. package/.dist/components/Input.js.map +1 -1
  47. package/.dist/components/Legend.d.ts +20 -0
  48. package/.dist/components/Legend.js +180 -0
  49. package/.dist/components/Legend.js.map +1 -0
  50. package/.dist/components/Log.js +3 -4
  51. package/.dist/components/Log.js.map +1 -1
  52. package/.dist/components/Modal.js +1 -1
  53. package/.dist/components/Modal.js.map +1 -1
  54. package/.dist/components/Notification.d.ts +35 -0
  55. package/.dist/components/Notification.js +120 -0
  56. package/.dist/components/Notification.js.map +1 -0
  57. package/.dist/components/Page.d.ts +55 -0
  58. package/.dist/components/Page.js +374 -0
  59. package/.dist/components/Page.js.map +1 -0
  60. package/.dist/components/Progress.d.ts +15 -0
  61. package/.dist/components/Progress.js +62 -16
  62. package/.dist/components/Progress.js.map +1 -1
  63. package/.dist/components/Scrollable.d.ts +60 -15
  64. package/.dist/components/Scrollable.js +209 -58
  65. package/.dist/components/Scrollable.js.map +1 -1
  66. package/.dist/components/ScrollableList.d.ts +16 -9
  67. package/.dist/components/ScrollableList.js +50 -19
  68. package/.dist/components/ScrollableList.js.map +1 -1
  69. package/.dist/components/Slider.d.ts +2 -1
  70. package/.dist/components/Slider.js +151 -46
  71. package/.dist/components/Slider.js.map +1 -1
  72. package/.dist/components/Space.d.ts +0 -3
  73. package/.dist/components/Space.js +0 -1
  74. package/.dist/components/Space.js.map +1 -1
  75. package/.dist/components/Spinner.js +1 -1
  76. package/.dist/components/Spinner.js.map +1 -1
  77. package/.dist/components/Stack.js +33 -2
  78. package/.dist/components/Stack.js.map +1 -1
  79. package/.dist/components/Table.js +43 -60
  80. package/.dist/components/Table.js.map +1 -1
  81. package/.dist/components/Tabs.d.ts +8 -0
  82. package/.dist/components/Tabs.js +22 -5
  83. package/.dist/components/Tabs.js.map +1 -1
  84. package/.dist/components/ToggleGroup.js +1 -1
  85. package/.dist/components/ToggleGroup.js.map +1 -1
  86. package/.dist/components/ZStack.d.ts +9 -0
  87. package/.dist/components/ZStack.js +68 -5
  88. package/.dist/components/ZStack.js.map +1 -1
  89. package/.dist/components/index.d.ts +5 -2
  90. package/.dist/components/index.js +4 -1
  91. package/.dist/components/index.js.map +1 -1
  92. package/.dist/events/index.d.ts +6 -2
  93. package/.dist/events/key.d.ts +18 -4
  94. package/.dist/events/key.js +42 -6
  95. package/.dist/events/key.js.map +1 -1
  96. package/.dist/events/mouse.d.ts +1 -0
  97. package/.dist/events/mouse.js.map +1 -1
  98. package/.dist/events/translate.js +17 -4
  99. package/.dist/events/translate.js.map +1 -1
  100. package/.dist/index.d.ts +1 -1
  101. package/.dist/index.js.map +1 -1
  102. package/.dist/inspect.js +3 -0
  103. package/.dist/inspect.js.map +1 -1
  104. package/.dist/managers/FocusManager.d.ts +2 -1
  105. package/.dist/managers/FocusManager.js +39 -4
  106. package/.dist/managers/FocusManager.js.map +1 -1
  107. package/.dist/managers/MouseManager.js +2 -0
  108. package/.dist/managers/MouseManager.js.map +1 -1
  109. package/.dist/renderToAnsi.js +1 -1
  110. package/.dist/renderToAnsi.js.map +1 -1
  111. package/.dist/terminal.d.ts +1 -0
  112. package/.dist/testing.d.ts +29 -2
  113. package/.dist/testing.js +34 -27
  114. package/.dist/testing.js.map +1 -1
  115. package/package.json +5 -4
  116. package/.dist/components/Pin.d.ts +0 -25
  117. package/.dist/components/Pin.js +0 -80
  118. package/.dist/components/Pin.js.map +0 -1
@@ -1,15 +1,39 @@
1
1
  import { Container } from '../Container.js';
2
- import { Size } from '../geometry.js';
2
+ import { Rect, Point, Size } from '../geometry.js';
3
3
  /**
4
4
  * Overlays children on top of each other. Each child receives the full
5
5
  * available size. Children are rendered in order, so later children appear
6
6
  * above earlier ones.
7
+ *
8
+ * When `align` is set, each child is positioned at the specified alignment
9
+ * within the available space, and the ZStack takes up all available space.
7
10
  */
8
11
  export class ZStack extends Container {
12
+ #location;
9
13
  constructor(props = {}) {
10
14
  super(props);
15
+ this.#update(props);
16
+ }
17
+ get align() {
18
+ return this.#location;
19
+ }
20
+ set align(value) {
21
+ if (value === this.#location)
22
+ return;
23
+ this.#location = value;
24
+ this.invalidateSize();
25
+ }
26
+ update(props) {
27
+ this.#update(props);
28
+ super.update(props);
29
+ }
30
+ #update({ location: align }) {
31
+ this.#location = align;
11
32
  }
12
33
  naturalSize(available) {
34
+ if (this.#location !== undefined) {
35
+ return available;
36
+ }
13
37
  const size = Size.zero.mutableCopy();
14
38
  for (const child of this.children) {
15
39
  if (!child.isVisible)
@@ -24,11 +48,50 @@ export class ZStack extends Container {
24
48
  if (viewport.isEmpty) {
25
49
  return super.render(viewport);
26
50
  }
27
- for (const child of this.children) {
28
- if (!child.isVisible)
29
- continue;
30
- child.render(viewport);
51
+ if (this.#location !== undefined) {
52
+ for (const child of this.children) {
53
+ if (!child.isVisible)
54
+ continue;
55
+ const childSize = child.naturalSize(viewport.contentSize);
56
+ const origin = computeOrigin(this.#location, viewport.contentSize, childSize);
57
+ viewport.clipped(new Rect(origin, childSize), inside => {
58
+ child.render(inside);
59
+ });
60
+ }
31
61
  }
62
+ else {
63
+ for (const child of this.children) {
64
+ if (!child.isVisible)
65
+ continue;
66
+ child.render(viewport);
67
+ }
68
+ }
69
+ }
70
+ }
71
+ function computeOrigin(align, available, childSize) {
72
+ let x, y;
73
+ // horizontal
74
+ if (align === 'top-left' || align === 'left' || align === 'bottom-left') {
75
+ x = 0;
76
+ }
77
+ else if (align === 'top-center' ||
78
+ align === 'center' ||
79
+ align === 'bottom-center') {
80
+ x = Math.round((available.width - childSize.width) / 2);
81
+ }
82
+ else {
83
+ x = available.width - childSize.width;
84
+ }
85
+ // vertical
86
+ if (align === 'top-left' || align === 'top-center' || align === 'top-right') {
87
+ y = 0;
88
+ }
89
+ else if (align === 'left' || align === 'center' || align === 'right') {
90
+ y = Math.round((available.height - childSize.height) / 2);
91
+ }
92
+ else {
93
+ y = available.height - childSize.height;
32
94
  }
95
+ return new Point(Math.max(0, x), Math.max(0, y));
33
96
  }
34
97
  //# sourceMappingURL=ZStack.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ZStack.js","sourceRoot":"","sources":["../../lib/components/ZStack.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAA;AAOnC;;;;GAIG;AACH,MAAM,OAAO,MAAO,SAAQ,SAAS;IACnC,YAAY,QAAe,EAAE;QAC3B,KAAK,CAAC,KAAK,CAAC,CAAA;IACd,CAAC;IAED,WAAW,CAAC,SAAe;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;QACpC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,SAAS;gBAAE,SAAQ;YAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;YAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;YAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;QACvD,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,QAAkB;QACvB,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAC/B,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,SAAS;gBAAE,SAAQ;YAC9B,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"ZStack.js","sourceRoot":"","sources":["../../lib/components/ZStack.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  export { Accordion } from './Accordion.js';
2
+ export { Alert } from './Alert.js';
3
+ export { Callout } from './Callout.js';
2
4
  export { Calendar } from './Calendar.js';
3
5
  export { Breadcrumb } from './Breadcrumb.js';
4
6
  export { HotKey } from './HotKey.js';
@@ -19,11 +21,12 @@ export * from './Stack.js';
19
21
  export * from './Header.js';
20
22
  export * from './Input.js';
21
23
  export * from './Geometry.js';
24
+ export * from './Legend.js';
22
25
  export * from './Log.js';
23
26
  export { Logo } from './Logo.js';
24
- export { Pin, type PinLocation } from './Pin.js';
25
- export { ZStack } from './ZStack.js';
27
+ export { ZStack, type Location } from './ZStack.js';
26
28
  export { Modal } from './Modal.js';
29
+ export { Page } from './Page.js';
27
30
  export * from './Pane.js';
28
31
  export * from './Progress.js';
29
32
  export * from './Scrollable.js';
@@ -1,4 +1,6 @@
1
1
  export { Accordion } from './Accordion.js';
2
+ export { Alert } from './Alert.js';
3
+ export { Callout } from './Callout.js';
2
4
  export { Calendar } from './Calendar.js';
3
5
  export { Breadcrumb } from './Breadcrumb.js';
4
6
  export { HotKey } from './HotKey.js';
@@ -19,11 +21,12 @@ export * from './Stack.js';
19
21
  export * from './Header.js';
20
22
  export * from './Input.js';
21
23
  export * from './Geometry.js';
24
+ export * from './Legend.js';
22
25
  export * from './Log.js';
23
26
  export { Logo } from './Logo.js';
24
- export { Pin } from './Pin.js';
25
27
  export { ZStack } from './ZStack.js';
26
28
  export { Modal } from './Modal.js';
29
+ export { Page } from './Page.js';
27
30
  export * from './Pane.js';
28
31
  export * from './Progress.js';
29
32
  export * from './Scrollable.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAA;AACtC,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAA;AACtC,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAA;AAChC,cAAc,UAAU,CAAA;AACxB,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAA;AACtC,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAC,GAAG,EAAmB,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAA;AAChC,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAA;AACpC,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAA;AACtC,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAA;AACtC,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAA;AAChC,cAAc,UAAU,CAAA;AACxB,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAA;AACtC,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAC,MAAM,EAAgB,MAAM,aAAa,CAAA;AACjD,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAA;AAChC,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA"}
@@ -7,5 +7,9 @@ export * from './window.js';
7
7
  import type { MouseEvent, SystemMouseEvent } from './mouse.js';
8
8
  import type { KeyEvent } from './key.js';
9
9
  import type { FocusEvent, ResizeEvent } from './window.js';
10
- export type Event = MouseEvent | KeyEvent | FocusEvent | ResizeEvent;
11
- export type SystemEvent = SystemMouseEvent | KeyEvent | FocusEvent | ResizeEvent;
10
+ export interface PasteEvent {
11
+ type: 'paste';
12
+ text: string;
13
+ }
14
+ export type Event = MouseEvent | KeyEvent | PasteEvent | FocusEvent | ResizeEvent;
15
+ export type SystemEvent = SystemMouseEvent | KeyEvent | PasteEvent | FocusEvent | ResizeEvent;
@@ -1,3 +1,13 @@
1
+ import type { KeyName, NamedKey, Printable } from '@teaui/term';
2
+ /**
3
+ * Modifier prefix combinations, always in the order C- A- M- S-.
4
+ */
5
+ type ModifierPrefix = '' | 'C-' | 'A-' | 'M-' | 'S-' | 'C-A-' | 'C-M-' | 'C-S-' | 'A-M-' | 'A-S-' | 'M-S-' | 'C-A-M-' | 'C-A-S-' | 'C-M-S-' | 'A-M-S-' | 'C-A-M-S-';
6
+ /**
7
+ * A key name with optional modifier prefixes, e.g. "C-a", "M-backspace", "C-M-S-up".
8
+ * Provides autocomplete for known key+modifier combos while accepting any string.
9
+ */
10
+ export type FullKeyName = `${ModifierPrefix}${NamedKey | Printable}` | (string & {});
1
11
  export interface KeyEvent {
2
12
  type: 'key';
3
13
  /**
@@ -7,23 +17,27 @@ export interface KeyEvent {
7
17
  /**
8
18
  * Named key, like "enter", "a", "escape", etc, or the printable character
9
19
  */
10
- name: string;
20
+ name: KeyName;
11
21
  ctrl: boolean;
22
+ alt: boolean;
12
23
  meta: boolean;
13
24
  shift: boolean;
14
25
  /**
15
26
  * The letter that was pressed, *plus* the modifiers (C-M-S- for control- meta- shift, always in that order)
16
27
  */
17
- full: string;
28
+ full: FullKeyName;
18
29
  }
19
30
  export type HotKeyDef = {
20
31
  char: string;
21
32
  ctrl?: boolean;
33
+ alt?: boolean;
22
34
  meta?: boolean;
23
35
  shift?: boolean;
24
36
  };
25
- export type HotKey = string | HotKeyDef;
37
+ export type HotKey = FullKeyName | HotKeyDef;
26
38
  export declare function toHotKeyDef(hotKey: HotKey): HotKeyDef;
39
+ export declare function mapKey(key: string): string;
27
40
  export declare function isKeyPrintable(event: KeyEvent): boolean;
28
41
  export declare const match: (key: HotKeyDef, event: KeyEvent) => boolean;
29
- export declare const styleTextForHotKey: (text: string, key_: HotKey) => string;
42
+ export declare function styleTextForHotKey(text: string, key_: HotKey): string;
43
+ export {};
@@ -5,13 +5,43 @@ export function toHotKeyDef(hotKey) {
5
5
  }
6
6
  // hotkey string supports:
7
7
  // C- control
8
+ // A- alt
8
9
  // M- meta
9
10
  // S- shift
10
11
  const ctrl = hotKey.includes('C-');
12
+ const alt = hotKey.includes('A-');
11
13
  const meta = hotKey.includes('M-');
12
14
  const shift = hotKey.includes('S-');
13
- const char = hotKey.replace(/^([CMS]-)*/, '').toLowerCase();
14
- return { char, ctrl, meta, shift };
15
+ const char = mapKey(hotKey.replace(/^([CAMS]-)*/, '').toLowerCase());
16
+ return { char, ctrl, alt, meta, shift };
17
+ }
18
+ /**
19
+ * Maps a key name to its sigil representation.
20
+ */
21
+ const KEY_SIGILS = {
22
+ enter: '⤦',
23
+ return: '⤦',
24
+ up: '↑',
25
+ down: '↓',
26
+ left: '←',
27
+ right: '→',
28
+ cmd: '⌘',
29
+ command: '⌘',
30
+ ctrl: '⌃',
31
+ control: '⌃',
32
+ alt: '⌥',
33
+ option: '⌥',
34
+ opt: '⌥',
35
+ shift: '⇧',
36
+ escape: '␛',
37
+ esc: '␛',
38
+ tab: '⇥',
39
+ space: '␣',
40
+ backspace: '⌫',
41
+ delete: '⌦',
42
+ };
43
+ export function mapKey(key) {
44
+ return KEY_SIGILS[key.toLowerCase()] ?? key;
15
45
  }
16
46
  export function isKeyPrintable(event) {
17
47
  switch (event.name) {
@@ -63,6 +93,9 @@ export const match = (key, event) => {
63
93
  if ((key.ctrl ?? false) !== event.ctrl) {
64
94
  return false;
65
95
  }
96
+ if ((key.alt ?? false) !== event.alt) {
97
+ return false;
98
+ }
66
99
  if ((key.meta ?? false) !== event.meta) {
67
100
  return false;
68
101
  }
@@ -71,7 +104,7 @@ export const match = (key, event) => {
71
104
  }
72
105
  return key.char === event.name;
73
106
  };
74
- export const styleTextForHotKey = (text, key_) => {
107
+ export function styleTextForHotKey(text, key_) {
75
108
  const key = toHotKeyDef(key_);
76
109
  const alt = '⌥';
77
110
  const shift = '⇧';
@@ -80,13 +113,16 @@ export const styleTextForHotKey = (text, key_) => {
80
113
  if (key.ctrl) {
81
114
  mod += ctrl;
82
115
  }
83
- if (key.meta) {
116
+ if (key.alt) {
84
117
  mod += alt;
85
118
  }
119
+ if (key.meta) {
120
+ mod += '⌘';
121
+ }
86
122
  if (key.shift) {
87
123
  mod += shift;
88
124
  }
89
- if (!mod) {
125
+ if (!mod && text) {
90
126
  return text;
91
127
  }
92
128
  mod = underline(mod + key.char);
@@ -94,5 +130,5 @@ export const styleTextForHotKey = (text, key_) => {
94
130
  return mod;
95
131
  }
96
132
  return `${text} ${mod}`;
97
- };
133
+ }
98
134
  //# sourceMappingURL=key.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"key.js","sourceRoot":"","sources":["../../lib/events/key.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key.js","sourceRoot":"","sources":["../../lib/events/key.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export type MouseEvent = {
12
12
  type: 'mouse';
13
13
  name: MouseEventName;
14
14
  ctrl: boolean;
15
+ alt: boolean;
15
16
  meta: boolean;
16
17
  shift: boolean;
17
18
  button: MouseButton;
@@ -1 +1 @@
1
- {"version":3,"file":"mouse.js","sourceRoot":"","sources":["../../lib/events/mouse.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,KAAK,EAAO,MAAM,gBAAgB,CAAA;AAkE1C,MAAM,UAAU,cAAc,CAAC,KAAiB,EAAE,MAAa;IAC7D,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACrC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAoC;IACpE,OAAO,CACL,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QACtC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAC9D,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAoC;IACnE,OAAO,CACL,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QACtC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CACrE,CAAA;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAoC;IAClE,OAAO,CACL,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QACtC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAC7D,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAoC;IAClE,OAAO,CACL,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QACtC,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,CACzC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CACvC,CACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAiB;IAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AACtC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAiB;IAC3C,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAuB;IACnD,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;AAC/C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAoC;IAC/D,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAoC;IAC9D,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;AAC7C,CAAC"}
1
+ {"version":3,"file":"mouse.js","sourceRoot":"","sources":["../../lib/events/mouse.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,KAAK,EAAO,MAAM,gBAAgB,CAAA;AAmE1C,MAAM,UAAU,cAAc,CAAC,KAAiB,EAAE,MAAa;IAC7D,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACrC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAoC;IACpE,OAAO,CACL,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QACtC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAC9D,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAoC;IACnE,OAAO,CACL,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QACtC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CACrE,CAAA;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAoC;IAClE,OAAO,CACL,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QACtC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAC7D,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAoC;IAClE,OAAO,CACL,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QACtC,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,CACzC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CACvC,CACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAiB;IAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AACtC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAiB;IAC3C,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAuB;IACnD,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;AAC/C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAoC;IAC/D,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAoC;IAC9D,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;AAC7C,CAAC"}
@@ -1,7 +1,8 @@
1
1
  export function translateTermKeyEvent(event) {
2
2
  const name = event.key;
3
3
  const ctrl = event.ctrl;
4
- const meta = event.alt || event.meta;
4
+ const alt = event.alt;
5
+ const meta = event.meta;
5
6
  const shift = event.shift;
6
7
  // Named keys (return, backspace, escape, etc.) have length > 1 and are all ASCII.
7
8
  // Single characters may have length > 1 due to surrogate pairs (emoji) or
@@ -9,16 +10,27 @@ export function translateTermKeyEvent(event) {
9
10
  const isSingleCodePoint = event.key.length > 0 &&
10
11
  String.fromCodePoint(event.key.codePointAt(0)).length === event.key.length;
11
12
  const char = event.key === 'space' ? ' ' : isSingleCodePoint ? event.key : '';
12
- // Build "full" string like blessed: "C-M-S-x"
13
+ // Build "full" string: "C-A-M-S-x"
13
14
  let full = '';
14
15
  if (ctrl)
15
16
  full += 'C-';
17
+ if (alt)
18
+ full += 'A-';
16
19
  if (meta)
17
20
  full += 'M-';
18
21
  if (shift)
19
22
  full += 'S-';
20
23
  full += name;
21
- return { type: 'key', char, name, ctrl, meta, shift, full };
24
+ return {
25
+ type: 'key',
26
+ char,
27
+ name,
28
+ ctrl,
29
+ alt,
30
+ meta,
31
+ shift,
32
+ full: full,
33
+ };
22
34
  }
23
35
  export function translateTermMouseEvent(event) {
24
36
  let name;
@@ -76,7 +88,8 @@ export function translateTermMouseEvent(event) {
76
88
  x: event.x,
77
89
  y: event.y,
78
90
  ctrl: event.ctrl,
79
- meta: event.alt || false,
91
+ alt: event.alt,
92
+ meta: false,
80
93
  shift: event.shift,
81
94
  button,
82
95
  };
@@ -1 +1 @@
1
- {"version":3,"file":"translate.js","sourceRoot":"","sources":["../../lib/events/translate.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,qBAAqB,CAAC,KAAmB;IACvD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAA;IACtB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACvB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,CAAA;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;IACzB,kFAAkF;IAClF,0EAA0E;IAC1E,yEAAyE;IACzE,MAAM,iBAAiB,GACrB,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC;QACpB,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,GAAG,CAAC,MAAM,CAAA;IAC7E,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IAE7E,8CAA8C;IAC9C,IAAI,IAAI,GAAG,EAAE,CAAA;IACb,IAAI,IAAI;QAAE,IAAI,IAAI,IAAI,CAAA;IACtB,IAAI,IAAI;QAAE,IAAI,IAAI,IAAI,CAAA;IACtB,IAAI,KAAK;QAAE,IAAI,IAAI,IAAI,CAAA;IACvB,IAAI,IAAI,IAAI,CAAA;IAEZ,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,CAAA;AAC3D,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAqB;IAErB,IAAI,IAA0B,CAAA;IAC9B,IAAI,MAAmB,CAAA;IAEvB,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,OAAO;YACV,IAAI,GAAG,mBAAmB,CAAA;YAC1B,MAAK;QACP,KAAK,SAAS;YACZ,IAAI,GAAG,iBAAiB,CAAA;YACxB,MAAK;QACP,KAAK,MAAM;YACT,IAAI,GAAG,eAAe,CAAA;YACtB,MAAK;QACP,KAAK,MAAM;YACT,IAAI,GAAG,mBAAmB,CAAA;YAC1B,MAAK;QACP,KAAK,UAAU;YACb,IAAI,GAAG,gBAAgB,CAAA;YACvB,MAAK;QACP,KAAK,YAAY;YACf,IAAI,GAAG,kBAAkB,CAAA;YACzB,MAAK;QACP,KAAK,YAAY;YACf,IAAI,GAAG,kBAAkB,CAAA;YACzB,MAAK;QACP,KAAK,aAAa;YAChB,IAAI,GAAG,mBAAmB,CAAA;YAC1B,MAAK;QACP;YACE,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,MAAM;YACT,MAAM,GAAG,MAAM,CAAA;YACf,MAAK;QACP,KAAK,QAAQ;YACX,MAAM,GAAG,QAAQ,CAAA;YACjB,MAAK;QACP,KAAK,OAAO;YACV,MAAM,GAAG,OAAO,CAAA;YAChB,MAAK;QACP,KAAK,MAAM;YACT,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;YAChE,MAAK;QACP;YACE,MAAM,GAAG,SAAS,CAAA;IACtB,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;QACrD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO;QACL,IAAI,EAAE,OAAO;QACb,IAAI;QACJ,CAAC,EAAE,KAAK,CAAC,CAAC;QACV,CAAC,EAAE,KAAK,CAAC,CAAC;QACV,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,GAAG,IAAI,KAAK;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM;KACP,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"translate.js","sourceRoot":"","sources":["../../lib/events/translate.ts"],"names":[],"mappings":"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"}
package/.dist/index.d.ts CHANGED
@@ -16,7 +16,7 @@ export { View, Props as ViewProps } from './View.js';
16
16
  export { Container, Props as ContainerProps } from './Container.js';
17
17
  export * from './ansi.js';
18
18
  export * from './events/mouse.js';
19
- export { type KeyEvent, type HotKeyDef, type HotKey as HotKeyProp, toHotKeyDef, isKeyPrintable, match as matchHotKey, styleTextForHotKey, } from './events/key.js';
19
+ export { type KeyEvent, type FullKeyName, type HotKeyDef, type HotKey as HotKeyProp, toHotKeyDef, isKeyPrintable, match as matchHotKey, styleTextForHotKey, } from './events/key.js';
20
20
  export * from './iTerm2.js';
21
21
  export { colors } from '@teaui/term';
22
22
  export { charWidth, lineWidth, stringSize, printableChars, words, ansiLocations, removeAnsi, getLocale, setLocale, } from '@teaui/term';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAC,YAAY,EAAE,oBAAoB,EAAC,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AACvC,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,OAAO,EAAC,IAAI,EAAqB,MAAM,WAAW,CAAA;AAClD,OAAO,EAAC,SAAS,EAA0B,MAAM,gBAAgB,CAAA;AACjE,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAIL,WAAW,EACX,cAAc,EACd,KAAK,IAAI,WAAW,EACpB,kBAAkB,GACnB,MAAM,iBAAiB,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EACL,SAAS,EACT,SAAS,EACT,UAAU,EACV,cAAc,EACd,KAAK,EACL,aAAa,EACb,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,aAAa,CAAA;AACpB,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAC,YAAY,EAAE,oBAAoB,EAAC,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AACvC,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,OAAO,EAAC,IAAI,EAAqB,MAAM,WAAW,CAAA;AAClD,OAAO,EAAC,SAAS,EAA0B,MAAM,gBAAgB,CAAA;AACjE,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAKL,WAAW,EACX,cAAc,EACd,KAAK,IAAI,WAAW,EACpB,kBAAkB,GACnB,MAAM,iBAAiB,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EACL,SAAS,EACT,SAAS,EACT,UAAU,EACV,cAAc,EACd,KAAK,EACL,aAAa,EACb,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,aAAa,CAAA;AACpB,cAAc,WAAW,CAAA"}
package/.dist/inspect.js CHANGED
@@ -71,6 +71,9 @@ export function inspect(value, wrap = true, recursionDepth = 0, visited = new Se
71
71
  else if (typeof value === 'function') {
72
72
  return `function${value.name ? ` ${value.name}` : ''}() {${value}}`;
73
73
  }
74
+ else if (value instanceof Date) {
75
+ return `Date(${colorize.string(value.toISOString())})`;
76
+ }
74
77
  else if (value instanceof Object &&
75
78
  value.constructor !== Object &&
76
79
  isEmpty(value)) {
@@ -1 +1 @@
1
- {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../lib/inspect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAC,MAAM,WAAW,CAAA;AAE9D,IAAI,MAAM,GAAG,KAAK,CAAA;AAClB,MAAM,UAAU,WAAW,CAAC,OAAiB;IAC3C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,GAAG,OAAO,CAAA;IAClB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,OAAO,CAAC,MAAc;IAC7B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,GAAG,GAAG,GAAG,CAAA;AAEf,MAAM,UAAU,OAAO,CACrB,KAAU,EACV,OAAgB,IAAI,EACpB,cAAc,GAAG,CAAC,EAClB,OAAO,GAAG,IAAI,GAAG,EAAE;IAEnB,IAAI,KAAK,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC,EAAE,CAAC;QACxE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,YAAY,CAAC,CAAA;QAC1B,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IAED,IAAI,cAAc,IAAI,EAAE,EAAE,CAAC;QACzB,OAAO,GAAG,CAAC,KAAK,CAAC,CAAA;IACnB,CAAC;IAED,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;QACzB,OAAO,WAAW,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,GAAG,CAAA;IACzF,CAAC;IAED,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;QACzB,OAAO,WAAW,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,GAAG,CAAA;IAC1F,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;IACvC,MAAM,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAA;IAE3B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAC7B,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,GAAG,CAAC,EAAE,OAAO,CAAC,CAChD,CAAA;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAC9D,MAAM,OAAO,GAAG,IAAI,IAAI,KAAK,GAAG,GAAG,CAAA;QACnC,IAAI,KAAa,CAAA;QACjB,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAChC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;gBACtB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oBACrC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAA;gBAC9D,CAAC;gBAED,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YACnD,CAAC,EACD,CAAC,EAAE,EAAE,EAAE,CAAqB,CAC7B,CAAA;YACD,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;QACtD,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC;QAED,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,QAAQ,GAAG,KAAK,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAA;IACrE,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,CAAC,CAAC,CAAA;IACnD,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;SAAM,IACL,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,SAAS;QAC1B,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,IAAI,EACd,CAAC;QACD,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QACvC,OAAO,WAAW,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,GAAG,CAAA;IACrE,CAAC;SAAM,IACL,KAAK,YAAY,MAAM;QACvB,KAAK,CAAC,WAAW,KAAK,MAAM;QAC5B,OAAO,CAAC,KAAK,CAAC,EACd,CAAC;QACD,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,MAAM,CAAA;IACxC,CAAC;IAED,MAAM,IAAI,GACR,KAAK,CAAC,WAAW,KAAK,SAAS;QAC7B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ;YACnC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,+BAA+B;IAC/B,IAAI,UAAU,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7C,MAAM,EAAC,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,EAAC,GAAG,KAAK,CAAA;QACvC,OAAO,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,CAAA;IAC1D,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CACrB,GAAG,CAAC,EAAE,CACJ,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,cAAc,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,CACpF,CAAA;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAC9D,MAAM,OAAO,GAAG,IAAI,IAAI,KAAK,GAAG,GAAG,CAAA;IACnC,IAAI,KAAa,CAAA;IACjB,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAChC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;YACtB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBACrC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAA;YAC9D,CAAC;YAED,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAClD,CAAC,EACD,CAAC,EAAE,EAAE,EAAE,CAAqB,CAC7B,CAAA;QACD,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;QAEpD,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAA;IACvC,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,OAAO,OAAO;QACZ,CAAC,CAAC,GAAG,IAAI,MAAM,QAAQ,GAAG,KAAK,KAAK,GAAG,GAAG;QAC1C,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,IAAI,CAAA;AAC3B,CAAC;AAaD,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,MAAM,EAAE,UAAU,KAAU;QAC1B,QAAQ,OAAO,KAAK,EAAE,CAAC;YACrB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAC/B,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAC/B,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAC/B,KAAK,WAAW;gBACd,OAAO,QAAQ,CAAC,SAAS,EAAE,CAAA;YAC7B,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAA;YAC3B;gBACE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IACD,MAAM,EAAE,UAAU,KAAa;QAC7B,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACzC,CAAC;IACD,MAAM,EAAE,UAAU,KAAa;QAC7B,OAAO,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC;IACD,MAAM,EAAE,UAAU,KAAa,EAAE,UAAmB,IAAI;QACtD,IAAI,KAAa,CAAA;QACjB,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,KAAK,GAAG,GAAG,CAAA;gBACX,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YACtC,CAAC;iBAAM,CAAC;gBACN,KAAK,GAAG,GAAG,CAAA;gBACX,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YACtC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,EAAE,CAAA;QACZ,CAAC;QAED,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACpC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QAEtC,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;IAC1C,CAAC;IACD,GAAG,EAAE,UAAU,KAA+B;QAC5C,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5B,CAAC;IACD,OAAO,EAAE,UAAU,KAAc;QAC/B,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACzC,CAAC;IACD,SAAS,EAAE;QACT,OAAO,IAAI,CAAC,WAAW,CAAC,CAAA;IAC1B,CAAC;IACD,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,CAAA;IACrB,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../lib/inspect.ts"],"names":[],"mappings":"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"}
@@ -12,10 +12,11 @@ export declare class FocusManager {
12
12
  */
13
13
  reset(isRootView: boolean): void;
14
14
  trigger(event: KeyEvent): void;
15
+ triggerPaste(text: string): void;
15
16
  /**
16
17
  * Returns whether the current view has focus.
17
18
  */
18
- registerFocus(view: View): boolean;
19
+ registerFocus(view: View, isDefault: boolean): boolean;
19
20
  registerHotKey(view: View, key: HotKeyDef): void;
20
21
  /**
21
22
  * Registers a fallback keyboard listener. When no hotkey matches and no view
@@ -48,14 +48,26 @@ export class FocusManager {
48
48
  this.#keyboardListeners[this.#keyboardListeners.length - 1].receiveKey(event);
49
49
  }
50
50
  }
51
+ triggerPaste(text) {
52
+ if (this.#currentFocus && this.#currentFocus !== UNFOCUS) {
53
+ this.#currentFocus.receivePaste(text);
54
+ }
55
+ }
51
56
  /**
52
57
  * Returns whether the current view has focus.
53
58
  */
54
- registerFocus(view) {
59
+ registerFocus(view, isDefault) {
55
60
  if (!this.#didCommit) {
56
61
  this.#focusRing.push(view);
57
62
  }
58
- if (!this.#currentFocus && (!this.#prevFocus || this.#prevFocus === view)) {
63
+ if (!this.#currentFocus && this.#prevFocus === view) {
64
+ // The previously-focused view is re-registering — restore its focus
65
+ // regardless of isDefault (it was explicitly focused via tab/click).
66
+ this.#currentFocus = view;
67
+ return true;
68
+ }
69
+ else if (!this.#currentFocus && !this.#prevFocus && isDefault) {
70
+ // First render: only isDefault views can claim initial focus.
59
71
  this.#currentFocus = view;
60
72
  return true;
61
73
  }
@@ -100,8 +112,17 @@ export class FocusManager {
100
112
  else if (this.#focusRing.length > 0 &&
101
113
  this.#prevFocus &&
102
114
  !this.#currentFocus) {
115
+ // The previously-focused view didn't re-register — fall back to the
116
+ // first view in the ring so focus doesn't disappear.
103
117
  this.#currentFocus = this.#focusRing[0];
104
118
  }
119
+ else if (this.#focusRing.length > 0 &&
120
+ !this.#prevFocus &&
121
+ !this.#currentFocus) {
122
+ // First render with focusable views but no default view claimed focus —
123
+ // enter the unfocused state so that tab can move into the focus ring.
124
+ this.#currentFocus = UNFOCUS;
125
+ }
105
126
  // Detect focus changes and fire lifecycle events
106
127
  const prev = this.#lastCommittedFocus;
107
128
  const current = this.#currentFocus;
@@ -128,11 +149,18 @@ export class FocusManager {
128
149
  }
129
150
  }
130
151
  prevFocus() {
131
- if (this.#currentFocus === UNFOCUS) {
152
+ if (!this.#currentFocus || this.#currentFocus === UNFOCUS) {
132
153
  this.#currentFocus = this.#focusRing.at(-1);
133
154
  return;
134
155
  }
135
156
  if (this.#focusRing.length <= 1) {
157
+ this.#currentFocus = UNFOCUS;
158
+ return;
159
+ }
160
+ // If focused on the first item, unfocus instead of wrapping.
161
+ const index = this.#focusRing.indexOf(this.#currentFocus);
162
+ if (index === 0) {
163
+ this.#currentFocus = UNFOCUS;
136
164
  return;
137
165
  }
138
166
  this.#reorderRing();
@@ -142,11 +170,18 @@ export class FocusManager {
142
170
  return this.#currentFocus;
143
171
  }
144
172
  nextFocus() {
145
- if (this.#currentFocus === UNFOCUS) {
173
+ if (!this.#currentFocus || this.#currentFocus === UNFOCUS) {
146
174
  this.#currentFocus = this.#focusRing[0];
147
175
  return;
148
176
  }
149
177
  if (this.#focusRing.length <= 1) {
178
+ this.#currentFocus = UNFOCUS;
179
+ return;
180
+ }
181
+ // If focused on the last item, unfocus instead of wrapping.
182
+ const index = this.#focusRing.indexOf(this.#currentFocus);
183
+ if (index === this.#focusRing.length - 1) {
184
+ this.#currentFocus = UNFOCUS;
150
185
  return;
151
186
  }
152
187
  this.#reorderRing();
@@ -1 +1 @@
1
- {"version":3,"file":"FocusManager.js","sourceRoot":"","sources":["../../lib/managers/FocusManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FocusManager.js","sourceRoot":"","sources":["../../lib/managers/FocusManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAgC,MAAM,oBAAoB,CAAA;AAEvE,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;AAEjC,MAAM,OAAO,YAAY;IACvB,UAAU,GAAG,KAAK,CAAA;IAClB,aAAa,CAAmC;IAChD,UAAU,CAAmC;IAC7C,mBAAmB,CAAmC;IACtD,UAAU,GAAW,EAAE,CAAA;IACvB,QAAQ,GAAwB,EAAE,CAAA;IAClC,kBAAkB,GAAW,EAAE,CAAA;IAE/B;;;;;;;OAOG;IACH,KAAK,CAAC,UAAmB;QACvB,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAA;QACtC,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;QAC9B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;QACpB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;QAClB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;IACzB,CAAC;IAED,OAAO,CAAC,KAAe;QACrB,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YAC/B,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,SAAS,EAAE,CAAA;YAClB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,SAAS,EAAE,CAAA;YAClB,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE,CAAC;YAChE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACtC,CAAC;aAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,sDAAsD;YACtD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CACpE,KAAK,CACN,CAAA;QACH,CAAC;IACH,CAAC;IAED,YAAY,CAAC,IAAY;QACvB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE,CAAC;YACzD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAU,EAAE,SAAkB;QAC1C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YACpD,oEAAoE;YACpE,qEAAqE;YACrE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;YACzB,OAAO,IAAI,CAAA;QACb,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,SAAS,EAAE,CAAC;YAChE,8DAA8D;YAC9D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;YACzB,OAAO,IAAI,CAAA;QACb,CAAC;aAAM,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YACvC,OAAO,IAAI,CAAA;QACb,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,cAAc,CAAC,IAAU,EAAE,GAAc;QACvC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAM;QACR,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;IACjC,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,IAAU;QACzB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAM;QACR,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IAED,YAAY,CAAC,IAAU;QACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO;QACL,IAAI,CAAC,aAAa,GAAG,OAAO,CAAA;IAC9B,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;QAEtB,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACvD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAA;QAC9B,CAAC;aAAM,IACL,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YAC1B,IAAI,CAAC,UAAU;YACf,CAAC,IAAI,CAAC,aAAa,EACnB,CAAC;YACD,oEAAoE;YACpE,qDAAqD;YACrD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QACzC,CAAC;aAAM,IACL,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YAC1B,CAAC,IAAI,CAAC,UAAU;YAChB,CAAC,IAAI,CAAC,aAAa,EACnB,CAAC;YACD,wEAAwE;YACxE,sEAAsE;YACtE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAA;QAC9B,CAAC;QAED,iDAAiD;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAA;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAA;QAElC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,IAAI,IAAI,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,OAAO,EAAE,CAAA;YAChB,CAAC;YACD,IAAI,OAAO,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBACnC,OAAO,CAAC,QAAQ,EAAE,CAAA;YACpB,CAAC;YACD,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAA;YAClC,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE,CAAC;YAC1D,OAAM;QACR,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACzD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;YAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;IAED,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE,CAAC;YAC1D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YAC3C,OAAM;QACR,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAA;YAC5B,OAAM;QACR,CAAC;QAED,6DAA6D;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACzD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,aAAa,GAAG,OAAO,CAAA;YAC5B,OAAM;QACR,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAA;QAEnB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAG,CAAA;QACnC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC7B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;QAEzB,OAAO,IAAI,CAAC,aAAa,CAAA;IAC3B,CAAC;IAED,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE,CAAC;YAC1D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YACvC,OAAM;QACR,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAA;YAC5B,OAAM;QACR,CAAC;QAED,4DAA4D;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACzD,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAA;YAC5B,OAAM;QACR,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAA;QAEnB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAG,CAAA;QACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAE3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAEvC,OAAO,IAAI,CAAC,aAAa,CAAA;IAC3B,CAAC;CACF;AAED,SAAS,QAAQ,CAAC,MAAY,EAAE,SAAe;IAC7C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAA;AAClE,CAAC"}
@@ -43,6 +43,7 @@ export class MouseManager {
43
43
  name: 'mouse.move.in',
44
44
  button: 'unknown',
45
45
  ctrl: false,
46
+ alt: false,
46
47
  meta: false,
47
48
  shift: false,
48
49
  ...this.#mousePosition,
@@ -138,6 +139,7 @@ export class MouseManager {
138
139
  if (systemEvent.name === 'mouse.button.down' &&
139
140
  !this.#mouseDownEvent &&
140
141
  !this.hasMouseDownListener(systemEvent.x, systemEvent.y, systemEvent)) {
142
+ // If there's no listener for the mouse down event, unfocus the current view.
141
143
  system.focusManager.unfocus();
142
144
  return;
143
145
  }