@valyrianjs/terminal 0.2.0 → 0.2.1

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 (55) hide show
  1. package/dist/ansi.d.ts +2 -0
  2. package/dist/ansi.d.ts.map +1 -1
  3. package/dist/ansi.js +12 -0
  4. package/dist/ansi.js.map +1 -1
  5. package/dist/events.d.ts.map +1 -1
  6. package/dist/events.js +6 -2
  7. package/dist/events.js.map +1 -1
  8. package/dist/keymap.d.ts.map +1 -1
  9. package/dist/keymap.js +4 -2
  10. package/dist/keymap.js.map +1 -1
  11. package/dist/layout.d.ts.map +1 -1
  12. package/dist/layout.js +2 -1
  13. package/dist/layout.js.map +1 -1
  14. package/dist/mouse.d.ts +6 -0
  15. package/dist/mouse.d.ts.map +1 -1
  16. package/dist/mouse.js +30 -16
  17. package/dist/mouse.js.map +1 -1
  18. package/dist/primitives.d.ts.map +1 -1
  19. package/dist/primitives.js +8 -1
  20. package/dist/primitives.js.map +1 -1
  21. package/dist/render.d.ts.map +1 -1
  22. package/dist/render.js +184 -27
  23. package/dist/render.js.map +1 -1
  24. package/dist/runtime.d.ts.map +1 -1
  25. package/dist/runtime.js +13 -5
  26. package/dist/runtime.js.map +1 -1
  27. package/dist/session.d.ts.map +1 -1
  28. package/dist/session.js +323 -83
  29. package/dist/session.js.map +1 -1
  30. package/dist/theme.d.ts.map +1 -1
  31. package/dist/theme.js +3 -0
  32. package/dist/theme.js.map +1 -1
  33. package/dist/tree.d.ts.map +1 -1
  34. package/dist/tree.js +18 -4
  35. package/dist/tree.js.map +1 -1
  36. package/dist/types.d.ts +38 -4
  37. package/dist/types.d.ts.map +1 -1
  38. package/docs/api-reference.md +13 -6
  39. package/docs/cookbook.md +1 -1
  40. package/docs/interaction-model.md +7 -5
  41. package/docs/primitive-gallery.md +7 -3
  42. package/llms-full.txt +28 -15
  43. package/package.json +1 -1
  44. package/src/ansi.ts +12 -0
  45. package/src/events.ts +4 -2
  46. package/src/keymap.ts +4 -2
  47. package/src/layout.ts +2 -1
  48. package/src/mouse.ts +31 -15
  49. package/src/primitives.ts +8 -1
  50. package/src/render.ts +199 -28
  51. package/src/runtime.ts +13 -5
  52. package/src/session.ts +341 -79
  53. package/src/theme.ts +3 -0
  54. package/src/tree.ts +19 -4
  55. package/src/types.ts +45 -3
package/src/types.ts CHANGED
@@ -28,6 +28,10 @@ export type TerminalCommandId =
28
28
  | "button.press"
29
29
  | "list.prev"
30
30
  | "list.next"
31
+ | "list.pageUp"
32
+ | "list.pageDown"
33
+ | "list.home"
34
+ | "list.end"
31
35
  | "list.press"
32
36
  | "scroll.up"
33
37
  | "scroll.down"
@@ -126,7 +130,11 @@ export interface TerminalHitbox {
126
130
  textStartX?: number;
127
131
  textLength?: number;
128
132
  itemOffset?: number;
133
+ itemIndexes?: number[];
134
+ contentY?: number;
129
135
  pointerLayer?: number;
136
+ __listItemIndex?: number;
137
+ __pressHandler?: (event: TerminalButtonPressEventPayload) => void;
130
138
  }
131
139
 
132
140
  export interface CursorPosition {
@@ -290,14 +298,29 @@ export interface TerminalButtonPressEventPayload extends TerminalEventPayloadBas
290
298
  type: "press" | "doublepress" | "contextpress";
291
299
  }
292
300
 
293
- export interface TerminalListChangeEventPayload<T = any> extends TerminalValueEventPayloadBase<T> {
301
+ export interface TerminalListStateEventPayload {
302
+ activeIndex: number;
303
+ selectedIndex: number | null;
304
+ viewportOffset: number;
305
+ viewportRows: number;
306
+ }
307
+
308
+ export interface TerminalListChangeEventPayload<T = any> extends TerminalValueEventPayloadBase<T>, TerminalListStateEventPayload {
294
309
  type: "change";
295
310
  index: number;
311
+ key?: string;
312
+ }
313
+
314
+ export interface TerminalListViewportChangeEventPayload extends TerminalEventPayloadBase, TerminalListStateEventPayload {
315
+ type: "viewportchange";
316
+ offset: number;
317
+ rows: number;
296
318
  }
297
319
 
298
- export interface TerminalListPressEventPayload<T = any> extends TerminalValueEventPayloadBase<T> {
320
+ export interface TerminalListPressEventPayload<T = any> extends TerminalValueEventPayloadBase<T>, TerminalListStateEventPayload {
299
321
  type: "press" | "doublepress" | "contextpress";
300
322
  index: number;
323
+ key?: string;
301
324
  }
302
325
 
303
326
  export type TerminalChangeEventPayload =
@@ -334,6 +357,7 @@ export interface TerminalRowPointerEventPayloadBase extends TerminalPointerCoord
334
357
  export interface TerminalListPointerEventPayload<T = any> extends TerminalRowPointerEventPayloadBase {
335
358
  type: TerminalMouseEventType;
336
359
  index: number;
360
+ key?: string;
337
361
  value: T;
338
362
  }
339
363
 
@@ -377,13 +401,31 @@ export interface TerminalButtonProps extends TerminalFocusableProps, TerminalSty
377
401
  oncontextpress?(event: TerminalButtonPressEventPayload): void;
378
402
  }
379
403
 
404
+ export interface TerminalListRenderContext<T = any> {
405
+ index: number;
406
+ key: string;
407
+ active: boolean;
408
+ selected: boolean;
409
+ viewportIndex: number;
410
+ item: T;
411
+ }
412
+
413
+ export type TerminalListItemKey<T = any> = (item: T, index: number) => string | number;
414
+ export type TerminalListItemRenderer<T = any> = (item: T, ctx: TerminalListRenderContext<T>) => any;
415
+
380
416
  export interface TerminalListProps<T = any> extends TerminalFocusableProps, TerminalPointerCaptureProps, TerminalStyleProps {
381
417
  items?: readonly T[];
382
418
  virtualized?: boolean;
419
+ height?: number;
383
420
  itemHeight?: 1;
384
421
  overscan?: number;
385
- renderItem?(item: T, index: number): string;
422
+ wrap?: boolean;
423
+ itemKey?: TerminalListItemKey<T>;
424
+ showActive?: boolean;
425
+ renderItem?(item: T, index: number): any;
426
+ children?: TerminalListItemRenderer<T>;
386
427
  onchange?(event: TerminalListChangeEventPayload<T>): void;
428
+ onviewportchange?(event: TerminalListViewportChangeEventPayload): void;
387
429
  onpress?(event: TerminalListPressEventPayload<T>): void;
388
430
  ondoublepress?(event: TerminalListPressEventPayload<T>): void;
389
431
  oncontextpress?(event: TerminalListPressEventPayload<T>): void;