blecsd 0.3.0 → 0.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 (96) hide show
  1. package/README.md +1 -2
  2. package/dist/3d/index.js +1 -1
  3. package/dist/{border-Jb7TrMob.d.ts → border-DGNDfT6T.d.ts} +1 -1
  4. package/dist/chunk-25OEBENM.js +3 -0
  5. package/dist/chunk-26STV7ZS.js +1 -0
  6. package/dist/chunk-2NMGUEFC.js +4 -0
  7. package/dist/{chunk-LYSK5S63.js → chunk-4PRDJTCM.js} +1 -1
  8. package/dist/chunk-5VEKHA3B.js +5 -0
  9. package/dist/chunk-6KEM3OS2.js +11 -0
  10. package/dist/chunk-6PX5R326.js +1 -0
  11. package/dist/{chunk-3LHLSY3Y.js → chunk-6XWY6GB7.js} +1 -1
  12. package/dist/{chunk-FCMTWFSE.js → chunk-735KKTP3.js} +1 -1
  13. package/dist/chunk-7SWJNDOL.js +26 -0
  14. package/dist/chunk-APKUNIMB.js +1 -0
  15. package/dist/{chunk-FGHEFXLK.js → chunk-CJCSZRV6.js} +1 -1
  16. package/dist/chunk-DMBMCCLN.js +1 -0
  17. package/dist/{chunk-OR3BZY7C.js → chunk-DQTVJITR.js} +1 -1
  18. package/dist/chunk-DSKQ5J4R.js +1 -0
  19. package/dist/{chunk-OB66FB4F.js → chunk-EF4DC6IN.js} +1 -1
  20. package/dist/chunk-EJAKECSN.js +1 -0
  21. package/dist/chunk-FNQRUMFD.js +1 -0
  22. package/dist/chunk-GJ3RS2VG.js +1 -0
  23. package/dist/{chunk-G437VE43.js → chunk-KTVEMB2I.js} +1 -1
  24. package/dist/chunk-KYAPE44E.js +8 -0
  25. package/dist/chunk-LI4Y7TBZ.js +1 -0
  26. package/dist/chunk-NHOL4BN6.js +1 -0
  27. package/dist/chunk-NPNUUSIB.js +1 -0
  28. package/dist/chunk-OFRWGW2G.js +1 -0
  29. package/dist/chunk-OMU5BSAS.js +2 -0
  30. package/dist/chunk-P3ZLIQJP.js +1 -0
  31. package/dist/chunk-PWI36BQJ.js +1 -0
  32. package/dist/{chunk-R7AICVRN.js → chunk-QQMUDJ32.js} +2 -2
  33. package/dist/chunk-R3ICZOE4.js +1 -0
  34. package/dist/chunk-RJULLVTH.js +1 -0
  35. package/dist/chunk-S6WS46FE.js +1 -0
  36. package/dist/{chunk-TWSWTBYL.js → chunk-TSARUU56.js} +1 -1
  37. package/dist/{chunk-MKMFUXLB.js → chunk-WJRVUAZR.js} +2 -2
  38. package/dist/{chunk-XZJRWFOS.js → chunk-WY5EZOOL.js} +1 -1
  39. package/dist/chunk-YY6RZCZH.js +4 -0
  40. package/dist/chunk-ZPGJCHXH.js +1 -0
  41. package/dist/chunk-ZPL2J25N.js +1 -0
  42. package/dist/components/index.d.ts +6886 -6763
  43. package/dist/components/index.js +1 -1
  44. package/dist/core/index.d.ts +3621 -3217
  45. package/dist/core/index.js +1 -1
  46. package/dist/debug/index.d.ts +2 -2
  47. package/dist/debug/index.js +1 -1
  48. package/dist/game/index.d.ts +6 -6
  49. package/dist/game/index.js +1 -1
  50. package/dist/{gameLoop-C-Ez_i54.d.ts → gameLoop-CSTb7e0L.d.ts} +1 -1
  51. package/dist/index.d.ts +741 -23
  52. package/dist/index.js +3 -3
  53. package/dist/input/index.d.ts +1 -1
  54. package/dist/{inputActions-CRsUtTHM.d.ts → inputActions-Fyw14_Gm.d.ts} +3 -3
  55. package/dist/{keyParser-BnHbg2iD.d.ts → keyParser-m7fWto6g.d.ts} +18 -18
  56. package/dist/{mouseParser-Cfrbn3AX.d.ts → mouseParser-B7p5ow7K.d.ts} +1 -1
  57. package/dist/{scheduler-CMcYew9Z.d.ts → scheduler-DeeZleia.d.ts} +2 -0
  58. package/dist/systems/index.d.ts +351 -4
  59. package/dist/systems/index.js +1 -1
  60. package/dist/terminal/index.d.ts +329 -7
  61. package/dist/terminal/index.js +1 -1
  62. package/dist/utils/index.d.ts +3 -3
  63. package/dist/utils/index.js +1 -1
  64. package/dist/widgets/bigText.js +1 -1
  65. package/dist/widgets/index.d.ts +1222 -101
  66. package/dist/widgets/index.js +1 -1
  67. package/package.json +1 -1
  68. package/dist/chunk-2IEMMRUO.js +0 -1
  69. package/dist/chunk-3AV52GY5.js +0 -1
  70. package/dist/chunk-3O4TQHGK.js +0 -4
  71. package/dist/chunk-3UJWZ5ZN.js +0 -1
  72. package/dist/chunk-6M2J5QUA.js +0 -1
  73. package/dist/chunk-7IQEUVGF.js +0 -1
  74. package/dist/chunk-A6M6TFBL.js +0 -1
  75. package/dist/chunk-CIK4AMUA.js +0 -1
  76. package/dist/chunk-CUEUJAHK.js +0 -3
  77. package/dist/chunk-D42Q2KKR.js +0 -1
  78. package/dist/chunk-DYEXOFUU.js +0 -2
  79. package/dist/chunk-DYU72XLL.js +0 -1
  80. package/dist/chunk-EAY7B5GL.js +0 -1
  81. package/dist/chunk-FL56THSI.js +0 -25
  82. package/dist/chunk-G7GIWWLE.js +0 -1
  83. package/dist/chunk-GGXNWT36.js +0 -8
  84. package/dist/chunk-HLFORKXS.js +0 -1
  85. package/dist/chunk-J7MBKEBY.js +0 -1
  86. package/dist/chunk-K3SX2LY5.js +0 -1
  87. package/dist/chunk-LDAFEXN5.js +0 -1
  88. package/dist/chunk-MQWPHPUM.js +0 -1
  89. package/dist/chunk-MTI376CU.js +0 -5
  90. package/dist/chunk-MTV2RJZD.js +0 -1
  91. package/dist/chunk-PXXGH3BV.js +0 -1
  92. package/dist/chunk-SHUC6JWA.js +0 -1
  93. package/dist/chunk-UMGTXSQB.js +0 -11
  94. package/dist/chunk-X3Q3T2SS.js +0 -4
  95. package/dist/chunk-ZAHG7Y3X.js +0 -1
  96. package/dist/{virtualViewport-Bpv6jlKt.d.ts → virtualViewport-DTSN6jFk.d.ts} +152 -152
@@ -1,9 +1,9 @@
1
1
  import { z } from 'zod';
2
2
  import { E as Entity, W as World, L as LoopPhase } from '../types-CPB4CpbH.js';
3
3
  export { BigText, BigTextConfig, BigTextConfigSchema, BigTextWidget, FontDefinition, createBigText, isBigText, resetBigTextStore, setText } from './bigText.js';
4
- import { h as BorderCharset, k as BorderType } from '../border-Jb7TrMob.js';
5
- import { S as Scheduler } from '../scheduler-CMcYew9Z.js';
6
- import { j as DimensionValue$8, p as ListItem, u as ListState, t as ListSelectCallback, L as ListAction, H as TableData, F as TableCell, K as TableRow, G as TableColumn, I as TableDisplay, C as CellAlign, w as ScrollPercentage, x as ScrollPosition, z as ScrollableData, Q as CursorShape, R as TerminalState, Y as ScrollInfo } from '../virtualViewport-Bpv6jlKt.js';
4
+ import { B as BorderCharset, k as BorderType } from '../border-DGNDfT6T.js';
5
+ import { S as Scheduler } from '../scheduler-DeeZleia.js';
6
+ import { j as DimensionValue$8, p as ListItem, u as ListState, t as ListSelectCallback, L as ListAction, H as TableData, F as TableCell, K as TableRow, G as TableColumn, I as TableDisplay, C as CellAlign, w as ScrollPercentage, x as ScrollPosition, z as ScrollableData, Q as CursorShape, R as TerminalState, Y as ScrollInfo } from '../virtualViewport-DTSN6jFk.js';
7
7
  export { BitmapFont, BitmapFontSchema, CharBitmap, CharBitmapSchema, FontName, FontNotFoundError, RenderCharOptions, createFontNotFoundError, getCharBitmap, loadFont, renderChar } from './fonts/index.js';
8
8
  import { C as Cell$1 } from '../cell-DwIu2ryP.js';
9
9
  import { T as Transform3DConfig, M as Material3DConfig, h as Viewport3DWidgetConfig } from '../viewport3d-xI33-_wq.js';
@@ -1301,6 +1301,272 @@ declare function isButtonWidget(_world: World, eid: Entity): boolean;
1301
1301
  */
1302
1302
  declare function resetButtonWidgetStore(): void;
1303
1303
 
1304
+ /**
1305
+ * Calendar Widget - Monthly calendar display with date selection
1306
+ * @module widgets/calendar
1307
+ */
1308
+
1309
+ /**
1310
+ * Calendar theme configuration for styling different elements.
1311
+ */
1312
+ interface CalendarTheme {
1313
+ /** Header (month/year) foreground color */
1314
+ readonly headerFg?: string | number;
1315
+ /** Header background color */
1316
+ readonly headerBg?: string | number;
1317
+ /** Weekday labels foreground color */
1318
+ readonly weekdayFg?: string | number;
1319
+ /** Regular day foreground color */
1320
+ readonly dayFg?: string | number;
1321
+ /** Selected day foreground color */
1322
+ readonly selectedFg?: string | number;
1323
+ /** Selected day background color */
1324
+ readonly selectedBg?: string | number;
1325
+ /** Today's date foreground color */
1326
+ readonly todayFg?: string | number;
1327
+ /** Today's date background color */
1328
+ readonly todayBg?: string | number;
1329
+ /** Marked date foreground color */
1330
+ readonly markedFg?: string | number;
1331
+ /** Marked date background color */
1332
+ readonly markedBg?: string | number;
1333
+ /** Outside month day foreground color */
1334
+ readonly outsideFg?: string | number;
1335
+ /** Cursor (current focus) foreground color */
1336
+ readonly cursorFg?: string | number;
1337
+ /** Cursor background color */
1338
+ readonly cursorBg?: string | number;
1339
+ }
1340
+ /**
1341
+ * Calendar widget configuration.
1342
+ *
1343
+ * @example
1344
+ * ```typescript
1345
+ * import { createWorld, addEntity, createCalendar } from 'blecsd';
1346
+ *
1347
+ * const world = createWorld();
1348
+ * const eid = addEntity(world);
1349
+ *
1350
+ * // Basic calendar
1351
+ * const calendar = createCalendar(world, eid, {
1352
+ * left: 0,
1353
+ * top: 0,
1354
+ * initialDate: new Date('2026-02-08'),
1355
+ * });
1356
+ *
1357
+ * // With custom theme and marked dates
1358
+ * const calendar = createCalendar(world, eid, {
1359
+ * left: 10,
1360
+ * top: 5,
1361
+ * initialDate: new Date(),
1362
+ * minDate: new Date('2026-01-01'),
1363
+ * maxDate: new Date('2026-12-31'),
1364
+ * firstDayOfWeek: 1, // Monday
1365
+ * showWeekNumbers: true,
1366
+ * markedDates: [
1367
+ * new Date('2026-02-14'), // Valentine's Day
1368
+ * new Date('2026-12-25'), // Christmas
1369
+ * ],
1370
+ * theme: {
1371
+ * headerFg: 0xffffffff,
1372
+ * headerBg: 0x333333ff,
1373
+ * selectedBg: 0x0000ffff,
1374
+ * todayBg: 0x00ff00ff,
1375
+ * }
1376
+ * });
1377
+ *
1378
+ * // Handle selection
1379
+ * calendar.onSelect((date) => {
1380
+ * console.log('Selected:', date.toISOString());
1381
+ * });
1382
+ * ```
1383
+ */
1384
+ interface CalendarConfig {
1385
+ /**
1386
+ * X position (left coordinate)
1387
+ * @default 0
1388
+ */
1389
+ readonly left?: number;
1390
+ /**
1391
+ * Y position (top coordinate)
1392
+ * @default 0
1393
+ */
1394
+ readonly top?: number;
1395
+ /**
1396
+ * Initial date to display (defaults to today)
1397
+ */
1398
+ readonly initialDate?: Date;
1399
+ /**
1400
+ * Minimum selectable date (inclusive)
1401
+ */
1402
+ readonly minDate?: Date;
1403
+ /**
1404
+ * Maximum selectable date (inclusive)
1405
+ */
1406
+ readonly maxDate?: Date;
1407
+ /**
1408
+ * First day of week (0=Sunday, 1=Monday, ..., 6=Saturday)
1409
+ * @default 0 (Sunday)
1410
+ */
1411
+ readonly firstDayOfWeek?: number;
1412
+ /**
1413
+ * Show week numbers in the left column
1414
+ * @default false
1415
+ */
1416
+ readonly showWeekNumbers?: boolean;
1417
+ /**
1418
+ * Dates to highlight/mark
1419
+ * @default []
1420
+ */
1421
+ readonly markedDates?: readonly Date[];
1422
+ /**
1423
+ * Theme configuration for styling calendar elements
1424
+ */
1425
+ readonly theme?: CalendarTheme;
1426
+ }
1427
+ /**
1428
+ * Calendar widget interface providing chainable methods.
1429
+ */
1430
+ interface CalendarWidget {
1431
+ /** The underlying entity ID */
1432
+ readonly eid: Entity;
1433
+ /** Sets the selected date */
1434
+ setDate(date: Date): CalendarWidget;
1435
+ /** Gets the selected date */
1436
+ getDate(): Date | undefined;
1437
+ /** Gets the currently displayed month */
1438
+ getMonth(): {
1439
+ year: number;
1440
+ month: number;
1441
+ };
1442
+ /** Moves to the previous month */
1443
+ prevMonth(): CalendarWidget;
1444
+ /** Moves to the next month */
1445
+ nextMonth(): CalendarWidget;
1446
+ /** Moves to the previous year */
1447
+ prevYear(): CalendarWidget;
1448
+ /** Moves to the next year */
1449
+ nextYear(): CalendarWidget;
1450
+ /** Moves cursor up one week */
1451
+ cursorUp(): CalendarWidget;
1452
+ /** Moves cursor down one week */
1453
+ cursorDown(): CalendarWidget;
1454
+ /** Moves cursor left one day */
1455
+ cursorLeft(): CalendarWidget;
1456
+ /** Moves cursor right one day */
1457
+ cursorRight(): CalendarWidget;
1458
+ /** Selects the current cursor date */
1459
+ selectCursor(): CalendarWidget;
1460
+ /** Sets marked dates */
1461
+ setMarkedDates(dates: readonly Date[]): CalendarWidget;
1462
+ /** Adds a marked date */
1463
+ addMarkedDate(date: Date): CalendarWidget;
1464
+ /** Removes a marked date */
1465
+ removeMarkedDate(date: Date): CalendarWidget;
1466
+ /** Gets all marked dates */
1467
+ getMarkedDates(): readonly Date[];
1468
+ /** Handles a key press, returns true if handled */
1469
+ handleKey(key: string): boolean;
1470
+ /** Registers callback for date selection */
1471
+ onSelect(callback: (date: Date) => void): () => void;
1472
+ /** Renders and marks dirty */
1473
+ render(): CalendarWidget;
1474
+ /** Destroys the widget */
1475
+ destroy(): void;
1476
+ }
1477
+ /**
1478
+ * Zod schema for calendar configuration validation.
1479
+ */
1480
+ declare const CalendarConfigSchema: z.ZodObject<{
1481
+ left: z.ZodDefault<z.ZodNumber>;
1482
+ top: z.ZodDefault<z.ZodNumber>;
1483
+ initialDate: z.ZodOptional<z.ZodDate>;
1484
+ minDate: z.ZodOptional<z.ZodDate>;
1485
+ maxDate: z.ZodOptional<z.ZodDate>;
1486
+ firstDayOfWeek: z.ZodDefault<z.ZodNumber>;
1487
+ showWeekNumbers: z.ZodDefault<z.ZodBoolean>;
1488
+ markedDates: z.ZodDefault<z.ZodArray<z.ZodDate>>;
1489
+ theme: z.ZodOptional<z.ZodObject<{
1490
+ headerFg: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
1491
+ headerBg: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
1492
+ weekdayFg: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
1493
+ dayFg: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
1494
+ selectedFg: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
1495
+ selectedBg: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
1496
+ todayFg: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
1497
+ todayBg: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
1498
+ markedFg: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
1499
+ markedBg: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
1500
+ outsideFg: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
1501
+ cursorFg: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
1502
+ cursorBg: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
1503
+ }, z.core.$strip>>;
1504
+ }, z.core.$strict>;
1505
+ /**
1506
+ * Resets the calendar store (for testing).
1507
+ */
1508
+ declare function resetCalendarStore(): void;
1509
+ /**
1510
+ * Creates a Calendar widget with the given configuration.
1511
+ *
1512
+ * The Calendar widget displays a monthly calendar with date selection,
1513
+ * keyboard navigation, and support for marked dates.
1514
+ *
1515
+ * Key bindings:
1516
+ * - Arrow keys: Navigate dates
1517
+ * - Enter: Select current cursor date
1518
+ * - PageUp: Previous month
1519
+ * - PageDown: Next month
1520
+ * - Shift+PageUp: Previous year
1521
+ * - Shift+PageDown: Next year
1522
+ *
1523
+ * @param world - The ECS world
1524
+ * @param entity - The entity to wrap
1525
+ * @param config - Widget configuration
1526
+ * @returns The Calendar widget instance
1527
+ *
1528
+ * @example
1529
+ * ```typescript
1530
+ * import { createWorld, addEntity, createCalendar } from 'blecsd';
1531
+ *
1532
+ * const world = createWorld();
1533
+ * const eid = addEntity(world);
1534
+ *
1535
+ * const calendar = createCalendar(world, eid, {
1536
+ * left: 5,
1537
+ * top: 5,
1538
+ * initialDate: new Date(),
1539
+ * showWeekNumbers: true,
1540
+ * });
1541
+ *
1542
+ * calendar.onSelect((date) => {
1543
+ * console.log('Selected date:', date.toISOString());
1544
+ * });
1545
+ *
1546
+ * // Navigate with methods
1547
+ * calendar.nextMonth().render();
1548
+ *
1549
+ * // Or handle keys
1550
+ * calendar.handleKey('down'); // Move cursor down one week
1551
+ * calendar.handleKey('enter'); // Select cursor date
1552
+ *
1553
+ * // Clean up
1554
+ * calendar.destroy();
1555
+ * ```
1556
+ */
1557
+ declare function createCalendar(world: World, entity: Entity, config?: CalendarConfig): CalendarWidget;
1558
+ /**
1559
+ * Checks if an entity is a calendar.
1560
+ *
1561
+ * @param eid - The entity ID
1562
+ * @returns true if the entity is a calendar
1563
+ */
1564
+ declare function isCalendar(eid: Entity): boolean;
1565
+ /**
1566
+ * Calendar component tag for registry.
1567
+ */
1568
+ declare const Calendar: "Calendar";
1569
+
1304
1570
  /**
1305
1571
  * Canvas Widget
1306
1572
  *
@@ -2459,6 +2725,79 @@ declare function replaceLines(world: World, eid: Entity, startIndex: number, new
2459
2725
  */
2460
2726
  declare function spliceLines(world: World, eid: Entity, start: number, deleteCount: number, insertLines?: string[]): string[];
2461
2727
 
2728
+ /**
2729
+ * Context menu widget for terminal UIs.
2730
+ * Provides right-click style menus with keyboard navigation.
2731
+ * @module widgets/contextMenu
2732
+ */
2733
+
2734
+ /**
2735
+ * Context menu item definition.
2736
+ */
2737
+ interface ContextMenuItem {
2738
+ /** Display label */
2739
+ readonly label: string;
2740
+ /** Action callback when item is selected */
2741
+ readonly action?: () => void;
2742
+ /** Whether item is disabled */
2743
+ readonly disabled?: boolean;
2744
+ /** Whether item is a separator */
2745
+ readonly separator?: boolean;
2746
+ }
2747
+ /**
2748
+ * Context menu configuration.
2749
+ */
2750
+ interface ContextMenuConfig {
2751
+ /** Menu items */
2752
+ readonly items: readonly ContextMenuItem[];
2753
+ /** X position (auto-adjusted if near edge) */
2754
+ readonly x: number;
2755
+ /** Y position (auto-adjusted if near edge) */
2756
+ readonly y: number;
2757
+ /** Terminal width for edge detection */
2758
+ readonly termWidth?: number;
2759
+ /** Terminal height for edge detection */
2760
+ readonly termHeight?: number;
2761
+ }
2762
+ /**
2763
+ * Creates a context menu widget.
2764
+ * Returns the container entity.
2765
+ *
2766
+ * @param world - The ECS world
2767
+ * @param config - Context menu configuration
2768
+ * @returns The container entity ID
2769
+ *
2770
+ * @example
2771
+ * ```typescript
2772
+ * import { createContextMenu } from 'blecsd';
2773
+ *
2774
+ * const menu = createContextMenu(world, {
2775
+ * x: 10,
2776
+ * y: 5,
2777
+ * items: [
2778
+ * { label: 'Copy', action: () => console.log('Copy') },
2779
+ * { label: 'Paste', action: () => console.log('Paste') },
2780
+ * { separator: true },
2781
+ * { label: 'Delete', action: () => console.log('Delete'), disabled: true },
2782
+ * ],
2783
+ * });
2784
+ * ```
2785
+ */
2786
+ declare function createContextMenu(world: World, config: ContextMenuConfig): Entity;
2787
+ /**
2788
+ * Handles keyboard input for context menu.
2789
+ *
2790
+ * @param world - The ECS world
2791
+ * @param eid - The context menu entity
2792
+ * @param key - The key pressed
2793
+ * @returns True if key was handled
2794
+ */
2795
+ declare function handleContextMenuKey(world: World, eid: Entity, key: string): boolean;
2796
+ /**
2797
+ * Gets the currently selected item index.
2798
+ */
2799
+ declare function getContextMenuSelectedIndex(eid: Entity): number;
2800
+
2462
2801
  /**
2463
2802
  * DevTools Widget
2464
2803
  *
@@ -2646,8 +2985,8 @@ declare const DevToolsConfigSchema: z.ZodObject<{
2646
2985
  floating: "floating";
2647
2986
  }>>>;
2648
2987
  initialTab: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
2649
- systems: "systems";
2650
2988
  components: "components";
2989
+ systems: "systems";
2651
2990
  entities: "entities";
2652
2991
  events: "events";
2653
2992
  }>>>;
@@ -2667,52 +3006,6 @@ declare const DevToolsConfigSchema: z.ZodObject<{
2667
3006
  height: z.ZodOptional<z.ZodNumber>;
2668
3007
  scheduler: z.ZodOptional<z.ZodAny>;
2669
3008
  }, z.core.$strip>;
2670
- /**
2671
- * Creates a DevTools widget for runtime debugging and inspection.
2672
- *
2673
- * The devtools widget provides tabbed panels for inspecting entities,
2674
- * components, systems, and event logs. Typically toggled with F12.
2675
- *
2676
- * @param world - The ECS world
2677
- * @param entity - The entity to wrap
2678
- * @param config - Widget configuration
2679
- * @returns The DevTools widget instance
2680
- *
2681
- * @example
2682
- * ```typescript
2683
- * import { createWorld, addEntity } from '../core/ecs';
2684
- * import { createDevTools } from 'blecsd/widgets';
2685
- * import { createScheduler } from 'blecsd';
2686
- *
2687
- * const world = createWorld();
2688
- * const eid = addEntity(world);
2689
- * const scheduler = createScheduler();
2690
- *
2691
- * // Create devtools at bottom of screen
2692
- * const devTools = createDevTools(world, eid, {
2693
- * position: 'bottom',
2694
- * initialTab: 'entities',
2695
- * scheduler,
2696
- * theme: {
2697
- * fg: '#00ff00',
2698
- * bg: '#000000'
2699
- * }
2700
- * });
2701
- *
2702
- * // Toggle visibility
2703
- * devTools.toggle();
2704
- *
2705
- * // Inspect entities
2706
- * const entities = devTools.getEntities();
2707
- * console.log(`Found ${entities.length} entities`);
2708
- *
2709
- * // Filter by component
2710
- * devTools.filterByComponent('Position');
2711
- *
2712
- * // Log events
2713
- * devTools.logEvent('player_moved', { x: 10, y: 20 });
2714
- * ```
2715
- */
2716
3009
  declare function createDevTools(world: World, entity: Entity, config?: DevToolsConfig): DevToolsWidget;
2717
3010
  /**
2718
3011
  * Type guard to check if an entity is a devtools widget.
@@ -2999,34 +3292,6 @@ declare const fileManagerStateMap: Map<number, FileManagerState>;
2999
3292
  * ```
3000
3293
  */
3001
3294
  declare function createFileManager(world: World, config?: FileManagerConfig): FileManagerWidget;
3002
- /**
3003
- * Handles a key event for a file manager widget.
3004
- *
3005
- * Supported keys:
3006
- * - `up`: Move selection up
3007
- * - `down`: Move selection down
3008
- * - `enter`: Open file (fires onSelect) or navigate into directory (fires onNavigate)
3009
- * - `backspace`: Navigate to parent directory
3010
- * - `h`: Toggle hidden files visibility
3011
- * - `d`: Delete selected file/directory (fires onDelete callback)
3012
- * - `r`: Rename selected file/directory (fires onRename callback)
3013
- * - `n`: Sort by name
3014
- * - `s`: Sort by size
3015
- * - `t`: Sort by date/time
3016
- *
3017
- * @param world - The ECS world
3018
- * @param eid - The file manager entity ID
3019
- * @param key - The key name
3020
- * @returns true if the key was handled
3021
- *
3022
- * @example
3023
- * ```typescript
3024
- * import { handleFileManagerKey } from 'blecsd';
3025
- *
3026
- * // In an input handler:
3027
- * handleFileManagerKey(world, fmEid, 'enter');
3028
- * ```
3029
- */
3030
3295
  declare function handleFileManagerKey(world: World, eid: Entity, key: string): boolean;
3031
3296
  /**
3032
3297
  * Checks if an entity is a file manager widget.
@@ -7409,8 +7674,8 @@ declare const MessageConfigSchema: z.ZodObject<{
7409
7674
  type: z.ZodOptional<z.ZodEnum<{
7410
7675
  error: "error";
7411
7676
  success: "success";
7412
- warning: "warning";
7413
7677
  info: "info";
7678
+ warning: "warning";
7414
7679
  }>>;
7415
7680
  fg: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
7416
7681
  bg: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
@@ -7964,38 +8229,333 @@ declare function handleModalBackdropClick(world: World, eid: Entity): boolean;
7964
8229
  declare function handleModalEscape(world: World, eid: Entity): boolean;
7965
8230
 
7966
8231
  /**
7967
- * Panel Widget
8232
+ * Multi-Select Widget
7968
8233
  *
7969
- * A container widget with a title bar, optional close button,
7970
- * and optional collapse/expand functionality.
8234
+ * A standalone multi-select dropdown/list with checkbox display,
8235
+ * filter-as-you-type, range selection, and keyboard-only navigation.
7971
8236
  *
7972
- * @module widgets/panel
8237
+ * @module widgets/multiSelect
8238
+ *
8239
+ * @example
8240
+ * ```typescript
8241
+ * import { createMultiSelect, getSelectedItems, onSelectionChange } from 'blecsd';
8242
+ *
8243
+ * const world = createWorld();
8244
+ * const ms = createMultiSelect(world, {
8245
+ * items: ['Apple', 'Banana', 'Cherry', 'Date'],
8246
+ * width: 30,
8247
+ * height: 10,
8248
+ * });
8249
+ *
8250
+ * // Toggle items
8251
+ * ms.focus().select(0).toggleCurrent();
8252
+ *
8253
+ * // Get selected
8254
+ * const selected = getSelectedItems(world, ms.eid);
8255
+ * console.log(selected); // ['Apple']
8256
+ *
8257
+ * // Listen for changes
8258
+ * onSelectionChange(world, ms.eid, (items) => {
8259
+ * console.log('Selected:', items);
8260
+ * });
8261
+ * ```
7973
8262
  */
7974
8263
 
7975
8264
  /**
7976
- * Dimension value that can be a number, percentage string, or 'auto'.
8265
+ * A multi-select item with display text and optional value.
8266
+ *
8267
+ * @example
8268
+ * ```typescript
8269
+ * const item: MultiSelectItem = {
8270
+ * text: 'Option A',
8271
+ * value: 'a',
8272
+ * disabled: false,
8273
+ * };
8274
+ * ```
7977
8275
  */
7978
- type DimensionValue$4 = number | `${number}%` | 'auto';
8276
+ interface MultiSelectItem {
8277
+ /** Display text */
8278
+ readonly text: string;
8279
+ /** Optional value (defaults to text) */
8280
+ readonly value?: string | undefined;
8281
+ /** Whether the item is disabled and cannot be selected */
8282
+ readonly disabled?: boolean | undefined;
8283
+ }
7979
8284
  /**
7980
- * Position value that can be a number, percentage string, or keyword.
8285
+ * Configuration for creating a MultiSelect widget.
8286
+ *
8287
+ * @example
8288
+ * ```typescript
8289
+ * const config: MultiSelectConfig = {
8290
+ * items: ['Apple', 'Banana', 'Cherry'],
8291
+ * width: 30,
8292
+ * height: 10,
8293
+ * selected: [0, 2],
8294
+ * };
8295
+ * ```
7981
8296
  */
7982
- type PositionValue$5 = number | `${number}%` | 'center' | 'left' | 'right' | 'top' | 'bottom';
8297
+ interface MultiSelectConfig {
8298
+ /** X position @default 0 */
8299
+ readonly x?: number;
8300
+ /** Y position @default 0 */
8301
+ readonly y?: number;
8302
+ /** Width in columns @default 30 */
8303
+ readonly width?: number;
8304
+ /** Height in rows @default 10 */
8305
+ readonly height?: number;
8306
+ /** Items as strings or MultiSelectItem objects */
8307
+ readonly items?: readonly (string | MultiSelectItem)[];
8308
+ /** Initially selected indices @default [] */
8309
+ readonly selected?: readonly number[];
8310
+ /** Foreground color for normal items */
8311
+ readonly fg?: number;
8312
+ /** Background color for normal items */
8313
+ readonly bg?: number;
8314
+ /** Foreground color for the highlighted/cursor item */
8315
+ readonly cursorFg?: number;
8316
+ /** Background color for the highlighted/cursor item */
8317
+ readonly cursorBg?: number;
8318
+ /** Foreground color for selected items */
8319
+ readonly selectedFg?: number;
8320
+ /** Background color for selected items */
8321
+ readonly selectedBg?: number;
8322
+ /** Foreground color for disabled items */
8323
+ readonly disabledFg?: number;
8324
+ /** Whether to enable filter-as-you-type @default true */
8325
+ readonly filterable?: boolean;
8326
+ }
7983
8327
  /**
7984
- * Horizontal text alignment for title.
8328
+ * Callback fired when the selection changes.
7985
8329
  */
7986
- type TitleAlign = 'left' | 'center' | 'right';
8330
+ type SelectionChangeCallback = (selectedIndices: readonly number[], selectedItems: readonly MultiSelectItem[]) => void;
7987
8331
  /**
7988
- * Border configuration for panels.
8332
+ * MultiSelect widget interface providing chainable methods.
7989
8333
  */
7990
- interface PanelBorderConfig {
7991
- /** Border type */
7992
- readonly type?: 'line' | 'bg' | 'none';
7993
- /** Foreground color for border (hex string or packed number) */
7994
- readonly fg?: string | number;
7995
- /** Background color for border (hex string or packed number) */
7996
- readonly bg?: string | number;
7997
- /** Border charset ('single', 'double', 'rounded', 'bold', 'ascii', or custom) */
7998
- readonly ch?: 'single' | 'double' | 'rounded' | 'bold' | 'ascii' | BorderCharset;
8334
+ interface MultiSelectWidget {
8335
+ /** The underlying entity ID */
8336
+ readonly eid: Entity;
8337
+ /** Shows the widget */
8338
+ show(): MultiSelectWidget;
8339
+ /** Hides the widget */
8340
+ hide(): MultiSelectWidget;
8341
+ /** Focuses the widget */
8342
+ focus(): MultiSelectWidget;
8343
+ /** Blurs the widget */
8344
+ blur(): MultiSelectWidget;
8345
+ /** Returns whether the widget is focused */
8346
+ isFocused(): boolean;
8347
+ /** Moves cursor to a specific index */
8348
+ select(index: number): MultiSelectWidget;
8349
+ /** Gets the current cursor index */
8350
+ getCursorIndex(): number;
8351
+ /** Moves cursor up */
8352
+ cursorUp(): MultiSelectWidget;
8353
+ /** Moves cursor down */
8354
+ cursorDown(): MultiSelectWidget;
8355
+ /** Moves to first item */
8356
+ cursorFirst(): MultiSelectWidget;
8357
+ /** Moves to last item */
8358
+ cursorLast(): MultiSelectWidget;
8359
+ /** Scrolls up by page */
8360
+ pageUp(): MultiSelectWidget;
8361
+ /** Scrolls down by page */
8362
+ pageDown(): MultiSelectWidget;
8363
+ /** Toggles the selection of the current item */
8364
+ toggleCurrent(): MultiSelectWidget;
8365
+ /** Toggles the selection of a specific item by index */
8366
+ toggleItem(index: number): MultiSelectWidget;
8367
+ /** Selects all items */
8368
+ selectAll(): MultiSelectWidget;
8369
+ /** Deselects all items */
8370
+ deselectAll(): MultiSelectWidget;
8371
+ /** Range select from anchor to current cursor (Shift+Arrow behavior) */
8372
+ rangeSelectTo(index: number): MultiSelectWidget;
8373
+ /** Gets all selected indices (sorted) */
8374
+ getSelectedIndices(): readonly number[];
8375
+ /** Gets all selected items */
8376
+ getSelectedItems(): readonly MultiSelectItem[];
8377
+ /** Gets the count of selected items */
8378
+ getSelectedCount(): number;
8379
+ /** Gets a formatted status string like "3 selected" */
8380
+ getSelectionStatus(): string;
8381
+ /** Checks if a specific index is selected */
8382
+ isSelected(index: number): boolean;
8383
+ /** Sets the items */
8384
+ setItems(items: readonly (string | MultiSelectItem)[]): MultiSelectWidget;
8385
+ /** Gets all items */
8386
+ getItems(): readonly MultiSelectItem[];
8387
+ /** Gets visible items (after filtering) */
8388
+ getVisibleItems(): readonly MultiSelectItem[];
8389
+ /** Sets the filter query (filter-as-you-type) */
8390
+ setFilter(query: string): MultiSelectWidget;
8391
+ /** Gets the current filter query */
8392
+ getFilter(): string;
8393
+ /** Clears the filter */
8394
+ clearFilter(): MultiSelectWidget;
8395
+ /** Gets the rendered lines for display (with checkboxes) */
8396
+ getRenderLines(): readonly string[];
8397
+ /** Registers a callback for selection changes */
8398
+ onSelectionChange(callback: SelectionChangeCallback): () => void;
8399
+ /** Handles a key press, returns true if consumed */
8400
+ handleKey(key: string, ctrl?: boolean, shift?: boolean): boolean;
8401
+ /** Destroys the widget */
8402
+ destroy(): void;
8403
+ }
8404
+ /**
8405
+ * Zod schema for MultiSelectConfig validation.
8406
+ */
8407
+ declare const MultiSelectConfigSchema: z.ZodObject<{
8408
+ x: z.ZodDefault<z.ZodNumber>;
8409
+ y: z.ZodDefault<z.ZodNumber>;
8410
+ width: z.ZodDefault<z.ZodNumber>;
8411
+ height: z.ZodDefault<z.ZodNumber>;
8412
+ items: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
8413
+ text: z.ZodString;
8414
+ value: z.ZodOptional<z.ZodString>;
8415
+ disabled: z.ZodOptional<z.ZodBoolean>;
8416
+ }, z.core.$strip>]>>>;
8417
+ selected: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
8418
+ fg: z.ZodOptional<z.ZodNumber>;
8419
+ bg: z.ZodOptional<z.ZodNumber>;
8420
+ cursorFg: z.ZodOptional<z.ZodNumber>;
8421
+ cursorBg: z.ZodOptional<z.ZodNumber>;
8422
+ selectedFg: z.ZodOptional<z.ZodNumber>;
8423
+ selectedBg: z.ZodOptional<z.ZodNumber>;
8424
+ disabledFg: z.ZodOptional<z.ZodNumber>;
8425
+ filterable: z.ZodDefault<z.ZodBoolean>;
8426
+ }, z.core.$strip>;
8427
+ /**
8428
+ * MultiSelect component marker for identifying multi-select entities.
8429
+ *
8430
+ * @example
8431
+ * ```typescript
8432
+ * import { MultiSelect } from 'blecsd';
8433
+ *
8434
+ * if (MultiSelect.isMultiSelect[eid] === 1) {
8435
+ * // Entity is a multi-select widget
8436
+ * }
8437
+ * ```
8438
+ */
8439
+ declare const MultiSelect: {
8440
+ /** Tag indicating this is a multi-select widget (1 = yes) */
8441
+ isMultiSelect: Uint8Array<ArrayBuffer>;
8442
+ /** Whether the widget is visible (0 = hidden, 1 = visible) */
8443
+ visible: Uint8Array<ArrayBuffer>;
8444
+ /** Whether the widget is focused (0 = no, 1 = yes) */
8445
+ focused: Uint8Array<ArrayBuffer>;
8446
+ };
8447
+ /**
8448
+ * Creates a MultiSelect widget.
8449
+ *
8450
+ * @param world - The ECS world
8451
+ * @param config - Widget configuration
8452
+ * @returns The MultiSelectWidget instance
8453
+ *
8454
+ * @example
8455
+ * ```typescript
8456
+ * import { createWorld } from 'blecsd';
8457
+ * import { createMultiSelect } from 'blecsd';
8458
+ *
8459
+ * const world = createWorld();
8460
+ * const ms = createMultiSelect(world, {
8461
+ * items: ['Apple', 'Banana', 'Cherry', 'Date', 'Elderberry'],
8462
+ * width: 30,
8463
+ * height: 8,
8464
+ * selected: [0, 2],
8465
+ * });
8466
+ *
8467
+ * ms.focus();
8468
+ * console.log(ms.getSelectionStatus()); // "2 selected"
8469
+ *
8470
+ * ms.handleKey(' '); // Toggle current
8471
+ * ms.handleKey('down'); // Move cursor
8472
+ * ```
8473
+ */
8474
+ declare function createMultiSelect(world: World, config?: MultiSelectConfig): MultiSelectWidget;
8475
+ /**
8476
+ * Gets the selected items from a MultiSelect entity.
8477
+ *
8478
+ * @param _world - The ECS world
8479
+ * @param eid - The multi-select entity ID
8480
+ * @returns Array of selected items, or empty array if not a multi-select
8481
+ *
8482
+ * @example
8483
+ * ```typescript
8484
+ * import { getSelectedItems } from 'blecsd';
8485
+ *
8486
+ * const items = getSelectedItems(world, multiSelectEid);
8487
+ * console.log(items.map(i => i.text));
8488
+ * ```
8489
+ */
8490
+ declare function getSelectedItems(_world: World, eid: Entity): readonly MultiSelectItem[];
8491
+ /**
8492
+ * Registers a callback for when the selection changes on a MultiSelect entity.
8493
+ *
8494
+ * @param _world - The ECS world
8495
+ * @param eid - The multi-select entity ID
8496
+ * @param callback - The callback to fire on selection change
8497
+ * @returns Unsubscribe function
8498
+ *
8499
+ * @example
8500
+ * ```typescript
8501
+ * import { onSelectionChange } from 'blecsd';
8502
+ *
8503
+ * const unsub = onSelectionChange(world, msEid, (indices, items) => {
8504
+ * console.log(`${items.length} items selected`);
8505
+ * });
8506
+ *
8507
+ * // Later: unsub();
8508
+ * ```
8509
+ */
8510
+ declare function onSelectionChange(_world: World, eid: Entity, callback: SelectionChangeCallback): () => void;
8511
+ /**
8512
+ * Checks if an entity is a MultiSelect widget.
8513
+ *
8514
+ * @param _world - The ECS world (unused, for API consistency)
8515
+ * @param eid - The entity ID
8516
+ * @returns true if the entity is a multi-select widget
8517
+ */
8518
+ declare function isMultiSelect(_world: World, eid: Entity): boolean;
8519
+ /**
8520
+ * Resets the MultiSelect component store. Useful for testing.
8521
+ *
8522
+ * @internal
8523
+ */
8524
+ declare function resetMultiSelectStore(): void;
8525
+
8526
+ /**
8527
+ * Panel Widget
8528
+ *
8529
+ * A container widget with a title bar, optional close button,
8530
+ * and optional collapse/expand functionality.
8531
+ *
8532
+ * @module widgets/panel
8533
+ */
8534
+
8535
+ /**
8536
+ * Dimension value that can be a number, percentage string, or 'auto'.
8537
+ */
8538
+ type DimensionValue$4 = number | `${number}%` | 'auto';
8539
+ /**
8540
+ * Position value that can be a number, percentage string, or keyword.
8541
+ */
8542
+ type PositionValue$5 = number | `${number}%` | 'center' | 'left' | 'right' | 'top' | 'bottom';
8543
+ /**
8544
+ * Horizontal text alignment for title.
8545
+ */
8546
+ type TitleAlign = 'left' | 'center' | 'right';
8547
+ /**
8548
+ * Border configuration for panels.
8549
+ */
8550
+ interface PanelBorderConfig {
8551
+ /** Border type */
8552
+ readonly type?: 'line' | 'bg' | 'none';
8553
+ /** Foreground color for border (hex string or packed number) */
8554
+ readonly fg?: string | number;
8555
+ /** Background color for border (hex string or packed number) */
8556
+ readonly bg?: string | number;
8557
+ /** Border charset ('single', 'double', 'rounded', 'bold', 'ascii', or custom) */
8558
+ readonly ch?: 'single' | 'double' | 'rounded' | 'bold' | 'ascii' | BorderCharset;
7999
8559
  }
8000
8560
  /**
8001
8561
  * Style configuration for the panel title.
@@ -9852,6 +10412,567 @@ type ScrollableTextWidget = ScrollableBoxWidget;
9852
10412
  */
9853
10413
  declare function createScrollableText(world: World, entity: Entity, config?: ScrollableTextConfig): ScrollableTextWidget;
9854
10414
 
10415
+ /**
10416
+ * Searchable List Enhancement
10417
+ *
10418
+ * Enhances list and virtualized list widgets with inline search/filter
10419
+ * capabilities. Adds a filter input that narrows displayed items in
10420
+ * real-time as the user types.
10421
+ *
10422
+ * Works with both the List widget (finite items) and VirtualizedList
10423
+ * widget (large datasets) through a common SearchableContent interface.
10424
+ *
10425
+ * @module widgets/searchableList
10426
+ *
10427
+ * @example
10428
+ * ```typescript
10429
+ * import { createSearchableList } from 'blecsd';
10430
+ *
10431
+ * const world = createWorld();
10432
+ * const sl = createSearchableList(world, {
10433
+ * items: ['Apple', 'Banana', 'Cherry', 'Date', 'Elderberry'],
10434
+ * enableSearch: true,
10435
+ * width: 30,
10436
+ * height: 10,
10437
+ * });
10438
+ *
10439
+ * // Filter in real-time
10440
+ * sl.setFilter('ber');
10441
+ * console.log(sl.getFilteredItems()); // ['Elderberry']
10442
+ *
10443
+ * // Preserve selection across filter changes
10444
+ * sl.select(0).setFilter('Ch');
10445
+ * sl.clearFilter();
10446
+ * // Original selection is restored
10447
+ * ```
10448
+ */
10449
+
10450
+ /**
10451
+ * An item in the searchable list.
10452
+ */
10453
+ interface SearchableListItem {
10454
+ /** Display text */
10455
+ readonly text: string;
10456
+ /** Optional value (defaults to text) */
10457
+ readonly value?: string;
10458
+ /** Whether the item is disabled */
10459
+ readonly disabled?: boolean;
10460
+ }
10461
+ /**
10462
+ * Configuration for the SearchableList widget.
10463
+ *
10464
+ * @example
10465
+ * ```typescript
10466
+ * const config: SearchableListConfig = {
10467
+ * items: ['Apple', 'Banana', 'Cherry'],
10468
+ * enableSearch: true,
10469
+ * placeholder: 'Type to filter...',
10470
+ * };
10471
+ * ```
10472
+ */
10473
+ interface SearchableListConfig {
10474
+ /** X position @default 0 */
10475
+ readonly x?: number;
10476
+ /** Y position @default 0 */
10477
+ readonly y?: number;
10478
+ /** Width in columns @default 30 */
10479
+ readonly width?: number;
10480
+ /** Height in rows @default 10 */
10481
+ readonly height?: number;
10482
+ /** Items to display */
10483
+ readonly items?: readonly string[];
10484
+ /** Whether to show the inline filter input @default true */
10485
+ readonly enableSearch?: boolean;
10486
+ /** Placeholder text for the filter input @default 'Filter...' */
10487
+ readonly placeholder?: string;
10488
+ /** Initially selected item index @default 0 */
10489
+ readonly selected?: number;
10490
+ /** Foreground color for normal items */
10491
+ readonly fg?: number;
10492
+ /** Background color for normal items */
10493
+ readonly bg?: number;
10494
+ /** Foreground color for the selected/highlighted item */
10495
+ readonly selectedFg?: number;
10496
+ /** Background color for the selected/highlighted item */
10497
+ readonly selectedBg?: number;
10498
+ /** Foreground color for disabled items */
10499
+ readonly disabledFg?: number;
10500
+ /** Foreground color for the filter input */
10501
+ readonly filterFg?: number;
10502
+ /** Background color for the filter input */
10503
+ readonly filterBg?: number;
10504
+ }
10505
+ /**
10506
+ * Callback fired when filter or selection changes.
10507
+ */
10508
+ type SearchableListCallback = (filteredItems: readonly SearchableListItem[], selectedIndex: number) => void;
10509
+ /**
10510
+ * SearchableList widget interface.
10511
+ */
10512
+ interface SearchableListWidget {
10513
+ /** The underlying entity ID */
10514
+ readonly eid: Entity;
10515
+ /** Shows the widget */
10516
+ show(): SearchableListWidget;
10517
+ /** Hides the widget */
10518
+ hide(): SearchableListWidget;
10519
+ /** Focuses the widget (activates filter input) */
10520
+ focus(): SearchableListWidget;
10521
+ /** Blurs the widget */
10522
+ blur(): SearchableListWidget;
10523
+ /** Returns whether the widget is focused */
10524
+ isFocused(): boolean;
10525
+ /** Sets the items */
10526
+ setItems(items: readonly string[]): SearchableListWidget;
10527
+ /** Gets all items */
10528
+ getItems(): readonly SearchableListItem[];
10529
+ /** Sets the filter query */
10530
+ setFilter(query: string): SearchableListWidget;
10531
+ /** Gets the current filter query */
10532
+ getFilter(): string;
10533
+ /** Clears the filter */
10534
+ clearFilter(): SearchableListWidget;
10535
+ /** Gets items after filtering */
10536
+ getFilteredItems(): readonly SearchableListItem[];
10537
+ /** Gets the filtered item count */
10538
+ getFilteredCount(): number;
10539
+ /** Gets a status string like "5 of 20 items" */
10540
+ getFilterStatus(): string;
10541
+ /** Whether search/filter is enabled */
10542
+ isSearchEnabled(): boolean;
10543
+ /** Enables or disables search */
10544
+ setSearchEnabled(enabled: boolean): SearchableListWidget;
10545
+ /** Selects the item at the given index (in filtered view) */
10546
+ select(index: number): SearchableListWidget;
10547
+ /** Gets the currently selected index (in filtered view) */
10548
+ getSelectedIndex(): number;
10549
+ /** Gets the currently selected item */
10550
+ getSelectedItem(): SearchableListItem | undefined;
10551
+ /** Gets the original (unfiltered) index of the selected item */
10552
+ getOriginalSelectedIndex(): number;
10553
+ /** Moves selection up */
10554
+ selectPrev(): SearchableListWidget;
10555
+ /** Moves selection down */
10556
+ selectNext(): SearchableListWidget;
10557
+ /** Selects the first item */
10558
+ selectFirst(): SearchableListWidget;
10559
+ /** Selects the last item */
10560
+ selectLast(): SearchableListWidget;
10561
+ /** Registers a callback for filter/selection changes */
10562
+ onChange(callback: SearchableListCallback): () => void;
10563
+ /** Handles a key press, returns true if consumed */
10564
+ handleKey(key: string, ctrl?: boolean, shift?: boolean): boolean;
10565
+ /** Destroys the widget */
10566
+ destroy(): void;
10567
+ }
10568
+ /**
10569
+ * Zod schema for SearchableListConfig validation.
10570
+ */
10571
+ declare const SearchableListConfigSchema: z.ZodObject<{
10572
+ x: z.ZodDefault<z.ZodNumber>;
10573
+ y: z.ZodDefault<z.ZodNumber>;
10574
+ width: z.ZodDefault<z.ZodNumber>;
10575
+ height: z.ZodDefault<z.ZodNumber>;
10576
+ items: z.ZodDefault<z.ZodArray<z.ZodString>>;
10577
+ enableSearch: z.ZodDefault<z.ZodBoolean>;
10578
+ placeholder: z.ZodDefault<z.ZodString>;
10579
+ selected: z.ZodDefault<z.ZodNumber>;
10580
+ fg: z.ZodOptional<z.ZodNumber>;
10581
+ bg: z.ZodOptional<z.ZodNumber>;
10582
+ selectedFg: z.ZodOptional<z.ZodNumber>;
10583
+ selectedBg: z.ZodOptional<z.ZodNumber>;
10584
+ disabledFg: z.ZodOptional<z.ZodNumber>;
10585
+ filterFg: z.ZodOptional<z.ZodNumber>;
10586
+ filterBg: z.ZodOptional<z.ZodNumber>;
10587
+ }, z.core.$strip>;
10588
+ /**
10589
+ * SearchableList component marker.
10590
+ */
10591
+ declare const SearchableList: {
10592
+ /** Tag indicating this is a searchable list widget */
10593
+ isSearchableList: Uint8Array<ArrayBuffer>;
10594
+ /** Whether the widget is visible */
10595
+ visible: Uint8Array<ArrayBuffer>;
10596
+ /** Whether the widget is focused */
10597
+ focused: Uint8Array<ArrayBuffer>;
10598
+ };
10599
+ /**
10600
+ * Creates a SearchableList widget with inline filtering.
10601
+ *
10602
+ * When `enableSearch` is true (default), the first row of the widget shows
10603
+ * a filter input. Typing narrows the displayed items in real-time.
10604
+ * Selection state is preserved across filter changes by tracking the
10605
+ * original item index.
10606
+ *
10607
+ * @param world - The ECS world
10608
+ * @param config - Widget configuration
10609
+ * @returns The SearchableListWidget instance
10610
+ *
10611
+ * @example
10612
+ * ```typescript
10613
+ * import { createSearchableList } from 'blecsd';
10614
+ *
10615
+ * const world = createWorld();
10616
+ * const list = createSearchableList(world, {
10617
+ * items: ['Apple', 'Banana', 'Cherry', 'Date', 'Elderberry'],
10618
+ * enableSearch: true,
10619
+ * placeholder: 'Type to filter...',
10620
+ * width: 30,
10621
+ * height: 10,
10622
+ * });
10623
+ *
10624
+ * list.focus();
10625
+ * list.setFilter('ber');
10626
+ * console.log(list.getFilterStatus()); // "1 of 5 items"
10627
+ * ```
10628
+ */
10629
+ declare function createSearchableList(world: World, config?: SearchableListConfig): SearchableListWidget;
10630
+ /**
10631
+ * Gets the filtered items from a SearchableList entity.
10632
+ *
10633
+ * @param _world - The ECS world
10634
+ * @param eid - The searchable list entity ID
10635
+ * @returns Array of filtered items
10636
+ *
10637
+ * @example
10638
+ * ```typescript
10639
+ * import { getFilteredItems } from 'blecsd';
10640
+ *
10641
+ * const items = getFilteredItems(world, listEid);
10642
+ * ```
10643
+ */
10644
+ declare function getSearchableFilteredItems(_world: World, eid: Entity): readonly SearchableListItem[];
10645
+ /**
10646
+ * Sets the filter query on a SearchableList entity.
10647
+ *
10648
+ * @param _world - The ECS world
10649
+ * @param eid - The searchable list entity ID
10650
+ * @param query - The filter query
10651
+ *
10652
+ * @example
10653
+ * ```typescript
10654
+ * import { setSearchableFilter } from 'blecsd';
10655
+ *
10656
+ * setSearchableFilter(world, listEid, 'apple');
10657
+ * ```
10658
+ */
10659
+ declare function setSearchableFilter(_world: World, eid: Entity, query: string): void;
10660
+ /**
10661
+ * Checks if an entity is a SearchableList widget.
10662
+ *
10663
+ * @param _world - The ECS world
10664
+ * @param eid - The entity ID
10665
+ * @returns true if the entity is a searchable list
10666
+ */
10667
+ declare function isSearchableList(_world: World, eid: Entity): boolean;
10668
+ /**
10669
+ * Resets the SearchableList store. Useful for testing.
10670
+ *
10671
+ * @internal
10672
+ */
10673
+ declare function resetSearchableListStore(): void;
10674
+
10675
+ /**
10676
+ * Search Overlay Widget
10677
+ *
10678
+ * A floating search bar that can be attached to any scrollable content widget.
10679
+ * Supports regex and plain text search modes, match highlighting, and
10680
+ * navigation between matches with Enter/Shift+Enter.
10681
+ *
10682
+ * @module widgets/searchOverlay
10683
+ *
10684
+ * @example
10685
+ * ```typescript
10686
+ * import { createSearchOverlay, attachSearchOverlay } from 'blecsd';
10687
+ *
10688
+ * const overlay = createSearchOverlay(world, {
10689
+ * width: 40,
10690
+ * mode: 'plain',
10691
+ * });
10692
+ *
10693
+ * // Attach to a scrollable widget
10694
+ * attachSearchOverlay(world, overlay, targetWidgetEid);
10695
+ *
10696
+ * // Open with Ctrl+F
10697
+ * overlay.show();
10698
+ *
10699
+ * // Navigate matches
10700
+ * overlay.nextMatch();
10701
+ * overlay.prevMatch();
10702
+ * ```
10703
+ */
10704
+
10705
+ /**
10706
+ * Search mode for the overlay.
10707
+ */
10708
+ type SearchMode = 'plain' | 'regex';
10709
+ /**
10710
+ * A single match found in content by the search overlay.
10711
+ */
10712
+ interface SearchOverlayMatch {
10713
+ /** Line index where the match was found */
10714
+ readonly lineIndex: number;
10715
+ /** Character offset within the line */
10716
+ readonly charOffset: number;
10717
+ /** Length of the matched text */
10718
+ readonly length: number;
10719
+ }
10720
+ /**
10721
+ * Configuration for creating a SearchOverlay widget.
10722
+ *
10723
+ * @example
10724
+ * ```typescript
10725
+ * const config: SearchOverlayConfig = {
10726
+ * width: 40,
10727
+ * mode: 'plain',
10728
+ * caseSensitive: false,
10729
+ * };
10730
+ * ```
10731
+ */
10732
+ interface SearchOverlayConfig {
10733
+ /** Width of the search bar in columns @default 40 */
10734
+ readonly width?: number;
10735
+ /** Search mode: 'plain' for substring, 'regex' for regular expression @default 'plain' */
10736
+ readonly mode?: SearchMode;
10737
+ /** Whether search is case-sensitive @default false */
10738
+ readonly caseSensitive?: boolean;
10739
+ /** Foreground color for the search bar @default 0xFFFFFFFF */
10740
+ readonly fg?: number;
10741
+ /** Background color for the search bar @default 0x333333FF */
10742
+ readonly bg?: number;
10743
+ /** Foreground color for highlighted matches @default 0x000000FF */
10744
+ readonly matchFg?: number;
10745
+ /** Background color for highlighted matches @default 0xFFFF00FF */
10746
+ readonly matchBg?: number;
10747
+ /** Foreground color for the current match @default 0x000000FF */
10748
+ readonly currentMatchFg?: number;
10749
+ /** Background color for the current match @default 0xFF8800FF */
10750
+ readonly currentMatchBg?: number;
10751
+ }
10752
+ /**
10753
+ * Content provider interface for searchable widgets.
10754
+ * Any widget that wants to support search overlay must provide
10755
+ * a way to retrieve its content lines.
10756
+ */
10757
+ interface SearchableContent {
10758
+ /** Returns the total number of lines */
10759
+ getLineCount(): number;
10760
+ /** Returns the text content at a given line index */
10761
+ getLine(index: number): string | undefined;
10762
+ }
10763
+ /**
10764
+ * Callback fired when the match set or current match changes.
10765
+ */
10766
+ type SearchOverlayMatchCallback = (matches: readonly SearchOverlayMatch[], currentIndex: number) => void;
10767
+ /**
10768
+ * SearchOverlay widget interface providing chainable methods.
10769
+ */
10770
+ interface SearchOverlayWidget {
10771
+ /** The underlying entity ID */
10772
+ readonly eid: Entity;
10773
+ /** Shows the search overlay */
10774
+ show(): SearchOverlayWidget;
10775
+ /** Hides the search overlay and clears state */
10776
+ hide(): SearchOverlayWidget;
10777
+ /** Returns whether the overlay is currently visible */
10778
+ isVisible(): boolean;
10779
+ /** Sets the search query text */
10780
+ setQuery(query: string): SearchOverlayWidget;
10781
+ /** Gets the current search query */
10782
+ getQuery(): string;
10783
+ /** Appends a character to the query */
10784
+ appendChar(char: string): SearchOverlayWidget;
10785
+ /** Removes the last character from the query */
10786
+ backspace(): SearchOverlayWidget;
10787
+ /** Clears the query */
10788
+ clearQuery(): SearchOverlayWidget;
10789
+ /** Sets the search mode (plain or regex) */
10790
+ setMode(mode: SearchMode): SearchOverlayWidget;
10791
+ /** Gets the current search mode */
10792
+ getMode(): SearchMode;
10793
+ /** Toggles between plain and regex mode */
10794
+ toggleMode(): SearchOverlayWidget;
10795
+ /** Sets case sensitivity */
10796
+ setCaseSensitive(sensitive: boolean): SearchOverlayWidget;
10797
+ /** Gets case sensitivity setting */
10798
+ isCaseSensitive(): boolean;
10799
+ /** Moves to the next match */
10800
+ nextMatch(): SearchOverlayWidget;
10801
+ /** Moves to the previous match */
10802
+ prevMatch(): SearchOverlayWidget;
10803
+ /** Gets all current matches */
10804
+ getMatches(): readonly SearchOverlayMatch[];
10805
+ /** Gets the current match index (0-based, -1 if no matches) */
10806
+ getCurrentMatchIndex(): number;
10807
+ /** Gets the total number of matches */
10808
+ getMatchCount(): number;
10809
+ /** Gets a formatted status string like "3 of 47" */
10810
+ getMatchStatus(): string;
10811
+ /** Attaches to a content provider for searching */
10812
+ attachContent(content: SearchableContent): SearchOverlayWidget;
10813
+ /** Detaches from the current content provider */
10814
+ detachContent(): SearchOverlayWidget;
10815
+ /** Registers a callback for match changes */
10816
+ onMatchChange(callback: SearchOverlayMatchCallback): () => void;
10817
+ /** Registers a callback for when the overlay is closed */
10818
+ onClose(callback: () => void): () => void;
10819
+ /** Handles a key press, returns true if consumed */
10820
+ handleKey(key: string, ctrl?: boolean, shift?: boolean): boolean;
10821
+ /** Destroys the widget */
10822
+ destroy(): void;
10823
+ }
10824
+ /**
10825
+ * Zod schema for SearchOverlayConfig validation.
10826
+ *
10827
+ * @example
10828
+ * ```typescript
10829
+ * import { SearchOverlayConfigSchema } from 'blecsd';
10830
+ *
10831
+ * const config = SearchOverlayConfigSchema.parse({
10832
+ * width: 50,
10833
+ * mode: 'regex',
10834
+ * caseSensitive: true,
10835
+ * });
10836
+ * ```
10837
+ */
10838
+ declare const SearchOverlayConfigSchema: z.ZodObject<{
10839
+ width: z.ZodDefault<z.ZodNumber>;
10840
+ mode: z.ZodDefault<z.ZodEnum<{
10841
+ plain: "plain";
10842
+ regex: "regex";
10843
+ }>>;
10844
+ caseSensitive: z.ZodDefault<z.ZodBoolean>;
10845
+ fg: z.ZodOptional<z.ZodNumber>;
10846
+ bg: z.ZodOptional<z.ZodNumber>;
10847
+ matchFg: z.ZodOptional<z.ZodNumber>;
10848
+ matchBg: z.ZodOptional<z.ZodNumber>;
10849
+ currentMatchFg: z.ZodOptional<z.ZodNumber>;
10850
+ currentMatchBg: z.ZodOptional<z.ZodNumber>;
10851
+ }, z.core.$strip>;
10852
+ /**
10853
+ * SearchOverlay component marker for identifying search overlay entities.
10854
+ *
10855
+ * @example
10856
+ * ```typescript
10857
+ * import { SearchOverlay } from 'blecsd';
10858
+ *
10859
+ * if (SearchOverlay.isSearchOverlay[eid] === 1) {
10860
+ * // Entity is a search overlay
10861
+ * }
10862
+ * ```
10863
+ */
10864
+ declare const SearchOverlay: {
10865
+ /** Tag indicating this is a search overlay widget (1 = yes) */
10866
+ isSearchOverlay: Uint8Array<ArrayBuffer>;
10867
+ /** Whether the overlay is currently visible (0 = hidden, 1 = visible) */
10868
+ visible: Uint8Array<ArrayBuffer>;
10869
+ };
10870
+ /**
10871
+ * Creates a SearchOverlay widget.
10872
+ *
10873
+ * The overlay starts hidden. Call `show()` to display it.
10874
+ *
10875
+ * @param world - The ECS world
10876
+ * @param config - Widget configuration
10877
+ * @returns The SearchOverlayWidget instance
10878
+ *
10879
+ * @example
10880
+ * ```typescript
10881
+ * import { createWorld, addEntity } from 'blecsd';
10882
+ * import { createSearchOverlay } from 'blecsd';
10883
+ *
10884
+ * const world = createWorld();
10885
+ * const overlay = createSearchOverlay(world, {
10886
+ * width: 40,
10887
+ * mode: 'plain',
10888
+ * });
10889
+ *
10890
+ * overlay.show();
10891
+ * overlay.setQuery('hello');
10892
+ * console.log(overlay.getMatchStatus()); // "3 of 47"
10893
+ * overlay.nextMatch();
10894
+ * ```
10895
+ */
10896
+ declare function createSearchOverlay(world: World, config?: SearchOverlayConfig): SearchOverlayWidget;
10897
+ /**
10898
+ * Attaches a search overlay to a target widget that provides searchable content.
10899
+ *
10900
+ * The target must expose content through the SearchableContent interface.
10901
+ * For VirtualizedList widgets, this wraps their getLine/getLineCount methods.
10902
+ *
10903
+ * @param _world - The ECS world
10904
+ * @param overlay - The search overlay widget
10905
+ * @param targetEid - The entity ID of the target widget
10906
+ * @param content - The searchable content provider
10907
+ * @returns The search overlay widget for chaining
10908
+ *
10909
+ * @example
10910
+ * ```typescript
10911
+ * import { createSearchOverlay, attachSearchOverlay } from 'blecsd';
10912
+ *
10913
+ * const overlay = createSearchOverlay(world);
10914
+ * const vlist = createVirtualizedList(world, { width: 80, height: 24 });
10915
+ *
10916
+ * attachSearchOverlay(world, overlay, vlist.eid, {
10917
+ * getLineCount: () => vlist.getLineCount(),
10918
+ * getLine: (i) => vlist.getLine(i),
10919
+ * });
10920
+ * ```
10921
+ */
10922
+ declare function attachSearchOverlay(_world: World, overlay: SearchOverlayWidget, targetEid: Entity, content: SearchableContent): SearchOverlayWidget;
10923
+ /**
10924
+ * Checks if an entity is a SearchOverlay widget.
10925
+ *
10926
+ * @param _world - The ECS world (unused, for API consistency)
10927
+ * @param eid - The entity ID
10928
+ * @returns true if the entity is a search overlay widget
10929
+ *
10930
+ * @example
10931
+ * ```typescript
10932
+ * import { isSearchOverlay } from 'blecsd';
10933
+ *
10934
+ * if (isSearchOverlay(world, entity)) {
10935
+ * // Handle search overlay
10936
+ * }
10937
+ * ```
10938
+ */
10939
+ declare function isSearchOverlay(_world: World, eid: Entity): boolean;
10940
+ /**
10941
+ * Gets the target entity ID that a search overlay is attached to.
10942
+ *
10943
+ * @param eid - The search overlay entity ID
10944
+ * @returns The target entity ID or null if not attached
10945
+ */
10946
+ declare function getSearchOverlayTarget(eid: Entity): Entity | null;
10947
+ /**
10948
+ * Gets the match highlight colors for rendering.
10949
+ *
10950
+ * @param eid - The search overlay entity ID
10951
+ * @returns Object with match and current match colors, or null if not a search overlay
10952
+ *
10953
+ * @example
10954
+ * ```typescript
10955
+ * const colors = getSearchOverlayColors(overlayEid);
10956
+ * if (colors) {
10957
+ * // Use colors.matchFg, colors.matchBg for highlighting
10958
+ * }
10959
+ * ```
10960
+ */
10961
+ declare function getSearchOverlayColors(eid: Entity): {
10962
+ fg: number;
10963
+ bg: number;
10964
+ matchFg: number;
10965
+ matchBg: number;
10966
+ currentMatchFg: number;
10967
+ currentMatchBg: number;
10968
+ } | null;
10969
+ /**
10970
+ * Resets the SearchOverlay component store. Useful for testing.
10971
+ *
10972
+ * @internal
10973
+ */
10974
+ declare function resetSearchOverlayStore(): void;
10975
+
9855
10976
  /**
9856
10977
  * Sparkline Widget
9857
10978
  *
@@ -12434,8 +13555,8 @@ declare const ToastConfigSchema: z.ZodObject<{
12434
13555
  type: z.ZodOptional<z.ZodEnum<{
12435
13556
  error: "error";
12436
13557
  success: "success";
12437
- warning: "warning";
12438
13558
  info: "info";
13559
+ warning: "warning";
12439
13560
  }>>;
12440
13561
  timeout: z.ZodOptional<z.ZodNumber>;
12441
13562
  position: z.ZodOptional<z.ZodEnum<{
@@ -13644,4 +14765,4 @@ declare function handleVirtualizedListWheel(widget: VirtualizedList, direction:
13644
14765
  */
13645
14766
  declare function isVirtualizedList(_world: World, eid: Entity): boolean;
13646
14767
 
13647
- export { Accordion, type AccordionConfig, AccordionConfigSchema, type AccordionSection, type AccordionWidget, type Align$2 as Align, type AlignItems, Autocomplete, type AutocompleteConfig, AutocompleteConfigSchema, type AutocompleteWidget, BRAILLE_BASE, BRAILLE_DOTS, BarChart, type BarChartConfig, BarChartConfigSchema, type BarChartWidget, type BarMode, type BarOrientation, type BarSeries, type BorderConfig$4 as BorderConfig, BorderConfigSchema, Box, type BoxConfig, BoxConfigSchema, type BoxWidget, type ButtonWidget, ButtonWidgetComponent, type ButtonConfig as ButtonWidgetConfig, ButtonConfigSchema as ButtonWidgetConfigSchema, CHART_COLORS, CLOSE_BUTTON_CHAR, COLLAPSE_CHAR, Canvas, type CanvasConfig, CanvasConfigSchema, type CanvasWidget, type CellSize, type CheckboxWidget, CheckboxWidgetComponent, type CheckboxConfig as CheckboxWidgetConfig, CheckboxConfigSchema as CheckboxWidgetConfigSchema, type ChildLayoutData, type CollapsibleConfig, CollapsibleConfigSchema, type CollapsibleWidget, type Command, CommandPalette, type CommandPaletteConfig, CommandPaletteConfigSchema, type CommandPaletteTheme, type CommandPaletteWidget, DEFAULT_CURSOR_OFFSET_X, DEFAULT_CURSOR_OFFSET_Y, DEFAULT_HIDE_DELAY, DEFAULT_HORIZONTAL_CHAR, DEFAULT_HOVER_DELAY, DEFAULT_LINE_LENGTH, DEFAULT_LOADING_BG, DEFAULT_LOADING_FG, DEFAULT_MESSAGE_PADDING, DEFAULT_MESSAGE_STYLES, DEFAULT_MESSAGE_TIMEOUT, DEFAULT_PANEL_TITLE, DEFAULT_PROMPT_BG, DEFAULT_PROMPT_FG, DEFAULT_PROMPT_HEIGHT, DEFAULT_PROMPT_WIDTH, DEFAULT_QUESTION_BG, DEFAULT_QUESTION_FG, DEFAULT_QUESTION_HEIGHT, DEFAULT_QUESTION_WIDTH, DEFAULT_TAB_POSITION, DEFAULT_TOAST_PADDING, DEFAULT_TOAST_STYLES, DEFAULT_TOAST_TIMEOUT, DEFAULT_TOOLTIP_BG, DEFAULT_TOOLTIP_BORDER, DEFAULT_TOOLTIP_FG, DEFAULT_VERTICAL_CHAR, DevTools, type DevToolsComponentInfo, type DevToolsConfig, DevToolsConfigSchema, type DevToolsPosition, type DevToolsTab, type DevToolsTheme, type DevToolsWidget, type DimensionValue$7 as DimensionValue, type DirtyRect, type DividerState, EXPAND_CHAR, type EntityInfo, type EventLogEntry, type FileEntry, FileManager, type FileManagerBorderConfig, type FileManagerConfig, FileManagerConfigSchema, type FileManagerPaddingConfig, type FileManagerWidget, type FlattenedNode, type AlignItems$1 as FlexAlignItems, type FlexChildOptions, FlexContainer, type FlexContainerConfig, FlexContainerConfigSchema, type FlexContainerWidget, type FlexDirection, type JustifyContent$1 as FlexJustifyContent, type FlexWrap, type FlexDirection$1 as FlexboxDirection, Footer, type FooterAlign, type FooterConfig, FooterConfigSchema, type FooterWidget, FormComponent, type FormField, type FormValidator, type FormWidget, type FormConfig as FormWidgetConfig, FormConfigSchema as FormWidgetConfigSchema, Gauge, type GaugeConfig, GaugeConfigSchema, type GaugeThreshold, type GaugeWidget, Grid, type GridCell, type GridConfig, GridConfigSchema, type GridWidget, HORIZONTAL_BLOCKS, Header, type HeaderAlign, type HeaderConfig, HeaderConfigSchema, type HeaderWidget, type HoverTextConfig, type HoverTextManager, type HoverTextManagerConfig, Image, type ImageConfig, ImageConfigSchema, type ImageType, type ImageWidget, type JustifyContent, Layout, type LayoutConfig, LayoutConfigSchema, type LayoutMode, type LayoutPosition, type LayoutWidget, Line, LineChart, type LineChartConfig, LineChartConfigSchema, type LineChartWidget, type LineConfig, LineConfigSchema, type LineOrientation, type LineSeries, type LineWidget, type ListStyleConfig, type ListTableStyleConfig, type ListTableWidget, type ListTableWidgetConfig, ListTableWidgetConfigSchema, type ListWidget, type ListWidgetConfig, ListWidgetConfigSchema, type ListbarAction, type ListbarItem, type ListbarSelectCallback, type ListbarState, type ListbarStyleConfig, type ListbarWidget, type ListbarWidgetConfig, ListbarWidgetConfigSchema, type LoadingConfig, LoadingConfigSchema, type LoadingStyleConfig, LoadingStyleConfigSchema, type LoadingWidget, Log, type BorderConfig$3 as LogBorderConfig, type LogConfig, LogConfigSchema, type DimensionValue$5 as LogDimensionValue, type PaddingConfig$2 as LogPaddingConfig, type PositionValue$7 as LogPositionValue, type ScrollbarConfig$1 as LogScrollbarConfig, type ScrollbarMode$1 as LogScrollbarMode, type LogWidget, MPLAYER_SEARCH_PATHS, MPV_SEARCH_PATHS, Message, type BorderConfig$2 as MessageBorderConfig, type MessageConfig, MessageConfigSchema, type PositionValue$6 as MessagePositionValue, type MessageStyleConfig, type MessageType, type MessageWidget, Modal, type ModalBorderConfig, type ModalConfig, ModalConfigSchema, type ModalPaddingConfig, type ModalWidget, type PaddingConfig$3 as PaddingConfig, type PaneScrollState, type PaneState, type PaneViewport, Panel, type PanelAction, type PanelBorderConfig, type PanelConfig, PanelConfigSchema, type PanelContentStyle, type PanelStyleConfig, type PanelTitleStyle, type PanelWidget, type PositionValue$a as PositionValue, ProgressBarComponent, type ProgressBarWidget, type ProgressBarConfig as ProgressBarWidgetConfig, ProgressBarConfigSchema as ProgressBarWidgetConfigSchema, Prompt, type PromptBorderConfig, PromptBorderConfigSchema, type PromptConfig, PromptConfigSchema, type PromptPaddingConfig, PromptPaddingConfigSchema, type PromptValidator, type PromptWidget, type PtyOptions, PtyOptionsSchema, Question, type QuestionBorderConfig, type QuestionConfig, QuestionConfigSchema, type QuestionPaddingConfig, type QuestionWidget, type RadioButtonWidget, RadioButtonWidgetComponent, type RadioButtonConfig as RadioButtonWidgetConfig, RadioButtonConfigSchema as RadioButtonWidgetConfigSchema, type RadioGroupWidget, RadioGroupWidgetComponent, type RadioGroupConfig as RadioGroupWidgetConfig, RadioGroupConfigSchema as RadioGroupWidgetConfigSchema, ScrollableBox, type ScrollableBoxConfig, ScrollableBoxConfigSchema, type ScrollableBoxWidget, type ScrollableTextConfig, type ScrollableTextWidget, type ScrollbarConfig, type ScrollbarMode, type SharedTextBuffer, Sparkline, type SparklineConfig, SparklineConfigSchema, type SparklineWidget, type SplitDirection, SplitPane, type SplitPaneConfig, SplitPaneConfigSchema, type DimensionValue$2 as SplitPaneDimensionValue, type PositionValue$3 as SplitPanePositionValue, type SplitPaneWidget, type SplitResizeEvent, StopwatchComponent, type StopwatchConfig, StopwatchConfigSchema, type StopwatchState, type StopwatchWidget, type StreamDirtyRegion, type StreamProgress, type StreamingTextConfig, StreamingTextConfigSchema, type StreamingTextState, type StreamingTextWidget, Switch, type SwitchConfig, SwitchConfigSchema, type SwitchWidget, type SystemInfo, TAB_CLOSE_CHAR, TAB_SEPARATOR, TOAST_STACK_SPACING, type TabConfig, type TabData, type TabPosition, type TabStyleConfig, type TableStyleConfig, type TableWidget, type TableWidgetConfig, TableWidgetConfigSchema, Tabs, type TabsAction, type TabsBorderConfig, type TabsConfig, TabsConfigSchema, type ContentStyleConfig as TabsContentStyleConfig, type TabsStyleConfig, type TabsWidget, Terminal, type BorderConfig as TerminalBorderConfig, type TerminalConfig, TerminalConfigSchema, type TerminalStyle, type TerminalWidget, Text, type TextConfig, TextConfigSchema, type TextWidget, type TimeFormat, TimerComponent, type TimerConfig, TimerConfigSchema, type TimerState, type TimerWidget, type TitleAlign, Toast, type ToastBorderConfig, type ToastConfig, ToastConfigSchema, type ToastPosition, type ToastStyleConfig, type ToastType, type ToastWidget, type TooltipPosition, type TooltipRenderData, type TooltipState, type TooltipStyle, type TreeNode, type TreeStyleConfig, type TreeWidget, type TreeWidgetConfig, TreeWidgetConfigSchema, type VAlign$2 as VAlign, VERTICAL_BLOCKS, Video, type VideoConfig, VideoConfigSchema, type VideoOutputDriver, type VideoPlaybackState, type VideoPlayer, type VideoProcessHandle, type VideoProcessSpawner, type VideoWidget, Viewport3DTag, type Viewport3DWidget, type VirtualizedList, type VirtualizedListConfig, VirtualizedListConfigSchema, type VirtualizedListStyle, VirtualizedListStyleSchema, type WidgetFactory, type WidgetRegistration, type WidgetRegistry, addFlexChild, addToGrid, appendToState, ask, brailleChar, buildMplayerArgs, buildMpvArgs, buildPlayerArgs, calculateFlexLayout, calculateGridLayout, calculateInlineLayout, calculateTickInterval, clearAllHoverText, clearCanvas, clearHoverText, clearLines, clearState, closeAllModals, closeModal, collapseAllSections, combineBrailleDots, confirm, createAccordion, createAutocomplete, createBarChart, createBox, createButton, createCanvas, createCheckbox, createCollapsible, createCommandPalette, createDevTools, createFileManager, createFlexContainer, createFooter, createForm, createGauge, createGrid, createHeader, createHoverTextManager, createImage, createLayout, createLine, createLineChart, createList, createListTable, createListbar, createLoading, createLog, createMessage, createModal, createPanel, createProgressBar, createPrompt, createQuestion, createRadioButton, createRadioGroup, createScrollableBox, createScrollableText, createSharedTextBuffer, createSparkline, createSplitPane, createStopwatch, createStreamingState, createStreamingText, createSwitch, createTable, createTabs, createTerminal, createText, createTimer, createToast, createTree, createVideo, createViewport3D, createVirtualizedList, createWidgetRegistry, defaultRegistry, deleteBottom, deleteLine, deleteTop, detectVideoPlayer, drawCircle, drawLine, drawRect, drawText, expandAllSections, expandSection, fileManagerStateMap, formatNumber, formatPercentage, generateTicks, getActiveTabIndex, getBaseLine, getBoxContent, getCanvasContent, getChartColor, getDividerRenderInfo, getExpandedSections, getHoverText, getHoverTextCount, getImageBitmap, getImageCellMap, getLayoutMode, getLine, getLineChar, getLineCount, getLineOrientation, getLines, getModalStack, getPanelTitle, getPanelTitleAlign, getScrollback, getSharedTextBuffer, getSplitDirection, getStreamVisibleLines, getTabCount, getTabPosition, getTextContent, getVideoPlaybackState, getVideoPlayer, getWidgetTypes, getWidgetsByTag, handleFileManagerKey, handleMessageClick, handleMessageKey, handleModalBackdropClick, handleModalEscape, handlePromptKey, handleQuestionKey, handleSwitchClick, handleSwitchKey, handleTerminalKey, handleVirtualizedListKey, handleVirtualizedListWheel, hasHoverText, hideLoading, hitTestDivider, insertBottom, insertLine, insertTop, interpolateChartColor, isAccordion, isAutocomplete, isBarChart, isBox, isButtonWidget, isCanvas, isCheckboxWidget, isCollapsible, isCommandPalette, isDevTools, isDismissOnClick, isDismissOnKey, isFileManager, isFlexContainer, isForm as isFormWidget, isGauge, isGrid, isImage, isKeysScrollEnabled, isLayout, isLine, isLineChart, isListTableWidget, isListWidget, isListbarWidget, isLoadingWidget, isLog, isKeysScrollEnabled$1 as isLogKeysScrollEnabled, isMouseScrollEnabled$1 as isLogMouseScrollEnabled, isMessage, isModal, isModalOpen, isMouseScrollEnabled, isPanel, isPanelCollapsed, isProgressBar as isProgressBarWidget, isPrompt, isQuestion, isRadioButtonWidget, isRadioGroupWidget, isScrollableBox, isScrollableBox as isScrollableText, isSparkline, isSplitPane, isStopwatch, isSwitch, isTableWidget, isTabs, isTerminal, isTerminalKeysEnabled, isTerminalMouseEnabled, isText, isTimer, isToast, isTreeWidget, isVideo, isViewport3DWidget, isVirtualizedList, isWidgetType, openModal, popLine, prompt, promptStateMap, pushLine, questionStateMap, registerBuiltinWidgets, renderPanelTitleBar, renderTabBar, renderXAxisLabel, renderYAxisLabel, replaceLines, resetAccordionStore, resetAutocompleteStore, resetBarChartStore, resetBoxStore, resetButtonWidgetStore, resetCanvasStore, resetCheckboxWidgetStore, resetCommandPaletteStore, resetDevToolsStore, resetFileManagerStore, resetFlexContainerStore, resetFormStore as resetFormWidgetStore, resetGaugeStore, resetGridStore, resetHoverTextStore, resetImageStore, resetLayoutStore, resetLineChartStore, resetLineStore, resetListbarStore, resetLoadingStore, resetLogStore, resetMessageStore, resetModalStore, resetPanelStore, resetProgressBarStore as resetProgressBarWidgetStore, resetPromptStore, resetQuestionStore, resetRadioWidgetStore, resetScrollableBoxStore, resetSparklineStore, resetSplitPaneStore, resetStopwatchWidgetStore, resetSwitchStore, resetTabsStore, resetTerminalStore, resetTextStore, resetTimerWidgetStore, resetToastStore, resetTreeStore, resetVideoStore, scaleValue, scrollByLines, scrollToLine, sendPauseCommand, sendSeekCommand, setBaseLine, setBoxContent, setHoverText, setLine, setLineChar, setLines, setLoadingMessage, setPanelTitle, setPixel, setReadDirFn, setTextContent, shiftLine, showError, showErrorToast, showInfo, showInfoToast, showLoading, showSuccess, showSuccessToast, showWarning, showWarningToast, spliceLines, stripAnsiSequences, toggleCollapsible, toggleSection, unshiftLine, updateLoadingAnimation, updateTimeWidgets, wrapLine };
14768
+ export { Accordion, type AccordionConfig, AccordionConfigSchema, type AccordionSection, type AccordionWidget, type Align$2 as Align, type AlignItems, Autocomplete, type AutocompleteConfig, AutocompleteConfigSchema, type AutocompleteWidget, BRAILLE_BASE, BRAILLE_DOTS, BarChart, type BarChartConfig, BarChartConfigSchema, type BarChartWidget, type BarMode, type BarOrientation, type BarSeries, type BorderConfig$4 as BorderConfig, BorderConfigSchema, Box, type BoxConfig, BoxConfigSchema, type BoxWidget, type ButtonWidget, ButtonWidgetComponent, type ButtonConfig as ButtonWidgetConfig, ButtonConfigSchema as ButtonWidgetConfigSchema, CHART_COLORS, CLOSE_BUTTON_CHAR, COLLAPSE_CHAR, Calendar, type CalendarConfig, CalendarConfigSchema, type CalendarTheme, type CalendarWidget, Canvas, type CanvasConfig, CanvasConfigSchema, type CanvasWidget, type CellSize, type CheckboxWidget, CheckboxWidgetComponent, type CheckboxConfig as CheckboxWidgetConfig, CheckboxConfigSchema as CheckboxWidgetConfigSchema, type ChildLayoutData, type CollapsibleConfig, CollapsibleConfigSchema, type CollapsibleWidget, type Command, CommandPalette, type CommandPaletteConfig, CommandPaletteConfigSchema, type CommandPaletteTheme, type CommandPaletteWidget, type ContextMenuConfig, type ContextMenuItem, DEFAULT_CURSOR_OFFSET_X, DEFAULT_CURSOR_OFFSET_Y, DEFAULT_HIDE_DELAY, DEFAULT_HORIZONTAL_CHAR, DEFAULT_HOVER_DELAY, DEFAULT_LINE_LENGTH, DEFAULT_LOADING_BG, DEFAULT_LOADING_FG, DEFAULT_MESSAGE_PADDING, DEFAULT_MESSAGE_STYLES, DEFAULT_MESSAGE_TIMEOUT, DEFAULT_PANEL_TITLE, DEFAULT_PROMPT_BG, DEFAULT_PROMPT_FG, DEFAULT_PROMPT_HEIGHT, DEFAULT_PROMPT_WIDTH, DEFAULT_QUESTION_BG, DEFAULT_QUESTION_FG, DEFAULT_QUESTION_HEIGHT, DEFAULT_QUESTION_WIDTH, DEFAULT_TAB_POSITION, DEFAULT_TOAST_PADDING, DEFAULT_TOAST_STYLES, DEFAULT_TOAST_TIMEOUT, DEFAULT_TOOLTIP_BG, DEFAULT_TOOLTIP_BORDER, DEFAULT_TOOLTIP_FG, DEFAULT_VERTICAL_CHAR, DevTools, type DevToolsComponentInfo, type DevToolsConfig, DevToolsConfigSchema, type DevToolsPosition, type DevToolsTab, type DevToolsTheme, type DevToolsWidget, type DimensionValue$7 as DimensionValue, type DirtyRect, type DividerState, EXPAND_CHAR, type EntityInfo, type EventLogEntry, type FileEntry, FileManager, type FileManagerBorderConfig, type FileManagerConfig, FileManagerConfigSchema, type FileManagerPaddingConfig, type FileManagerWidget, type FlattenedNode, type AlignItems$1 as FlexAlignItems, type FlexChildOptions, FlexContainer, type FlexContainerConfig, FlexContainerConfigSchema, type FlexContainerWidget, type FlexDirection, type JustifyContent$1 as FlexJustifyContent, type FlexWrap, type FlexDirection$1 as FlexboxDirection, Footer, type FooterAlign, type FooterConfig, FooterConfigSchema, type FooterWidget, FormComponent, type FormField, type FormValidator, type FormWidget, type FormConfig as FormWidgetConfig, FormConfigSchema as FormWidgetConfigSchema, Gauge, type GaugeConfig, GaugeConfigSchema, type GaugeThreshold, type GaugeWidget, Grid, type GridCell, type GridConfig, GridConfigSchema, type GridWidget, HORIZONTAL_BLOCKS, Header, type HeaderAlign, type HeaderConfig, HeaderConfigSchema, type HeaderWidget, type HoverTextConfig, type HoverTextManager, type HoverTextManagerConfig, Image, type ImageConfig, ImageConfigSchema, type ImageType, type ImageWidget, type JustifyContent, Layout, type LayoutConfig, LayoutConfigSchema, type LayoutMode, type LayoutPosition, type LayoutWidget, Line, LineChart, type LineChartConfig, LineChartConfigSchema, type LineChartWidget, type LineConfig, LineConfigSchema, type LineOrientation, type LineSeries, type LineWidget, type ListStyleConfig, type ListTableStyleConfig, type ListTableWidget, type ListTableWidgetConfig, ListTableWidgetConfigSchema, type ListWidget, type ListWidgetConfig, ListWidgetConfigSchema, type ListbarAction, type ListbarItem, type ListbarSelectCallback, type ListbarState, type ListbarStyleConfig, type ListbarWidget, type ListbarWidgetConfig, ListbarWidgetConfigSchema, type LoadingConfig, LoadingConfigSchema, type LoadingStyleConfig, LoadingStyleConfigSchema, type LoadingWidget, Log, type BorderConfig$3 as LogBorderConfig, type LogConfig, LogConfigSchema, type DimensionValue$5 as LogDimensionValue, type PaddingConfig$2 as LogPaddingConfig, type PositionValue$7 as LogPositionValue, type ScrollbarConfig$1 as LogScrollbarConfig, type ScrollbarMode$1 as LogScrollbarMode, type LogWidget, MPLAYER_SEARCH_PATHS, MPV_SEARCH_PATHS, Message, type BorderConfig$2 as MessageBorderConfig, type MessageConfig, MessageConfigSchema, type PositionValue$6 as MessagePositionValue, type MessageStyleConfig, type MessageType, type MessageWidget, Modal, type ModalBorderConfig, type ModalConfig, ModalConfigSchema, type ModalPaddingConfig, type ModalWidget, MultiSelect, type MultiSelectConfig, MultiSelectConfigSchema, type MultiSelectItem, type MultiSelectWidget, type PaddingConfig$3 as PaddingConfig, type PaneScrollState, type PaneState, type PaneViewport, Panel, type PanelAction, type PanelBorderConfig, type PanelConfig, PanelConfigSchema, type PanelContentStyle, type PanelStyleConfig, type PanelTitleStyle, type PanelWidget, type PositionValue$a as PositionValue, ProgressBarComponent, type ProgressBarWidget, type ProgressBarConfig as ProgressBarWidgetConfig, ProgressBarConfigSchema as ProgressBarWidgetConfigSchema, Prompt, type PromptBorderConfig, PromptBorderConfigSchema, type PromptConfig, PromptConfigSchema, type PromptPaddingConfig, PromptPaddingConfigSchema, type PromptValidator, type PromptWidget, type PtyOptions, PtyOptionsSchema, Question, type QuestionBorderConfig, type QuestionConfig, QuestionConfigSchema, type QuestionPaddingConfig, type QuestionWidget, type RadioButtonWidget, RadioButtonWidgetComponent, type RadioButtonConfig as RadioButtonWidgetConfig, RadioButtonConfigSchema as RadioButtonWidgetConfigSchema, type RadioGroupWidget, RadioGroupWidgetComponent, type RadioGroupConfig as RadioGroupWidgetConfig, RadioGroupConfigSchema as RadioGroupWidgetConfigSchema, ScrollableBox, type ScrollableBoxConfig, ScrollableBoxConfigSchema, type ScrollableBoxWidget, type ScrollableTextConfig, type ScrollableTextWidget, type ScrollbarConfig, type ScrollbarMode, type SearchMode, SearchOverlay, type SearchOverlayConfig, SearchOverlayConfigSchema, type SearchOverlayMatch, type SearchOverlayMatchCallback, type SearchOverlayWidget, type SearchableContent, SearchableList, type SearchableListCallback, type SearchableListConfig, SearchableListConfigSchema, type SearchableListItem, type SearchableListWidget, type SelectionChangeCallback, type SharedTextBuffer, Sparkline, type SparklineConfig, SparklineConfigSchema, type SparklineWidget, type SplitDirection, SplitPane, type SplitPaneConfig, SplitPaneConfigSchema, type DimensionValue$2 as SplitPaneDimensionValue, type PositionValue$3 as SplitPanePositionValue, type SplitPaneWidget, type SplitResizeEvent, StopwatchComponent, type StopwatchConfig, StopwatchConfigSchema, type StopwatchState, type StopwatchWidget, type StreamDirtyRegion, type StreamProgress, type StreamingTextConfig, StreamingTextConfigSchema, type StreamingTextState, type StreamingTextWidget, Switch, type SwitchConfig, SwitchConfigSchema, type SwitchWidget, type SystemInfo, TAB_CLOSE_CHAR, TAB_SEPARATOR, TOAST_STACK_SPACING, type TabConfig, type TabData, type TabPosition, type TabStyleConfig, type TableStyleConfig, type TableWidget, type TableWidgetConfig, TableWidgetConfigSchema, Tabs, type TabsAction, type TabsBorderConfig, type TabsConfig, TabsConfigSchema, type ContentStyleConfig as TabsContentStyleConfig, type TabsStyleConfig, type TabsWidget, Terminal, type BorderConfig as TerminalBorderConfig, type TerminalConfig, TerminalConfigSchema, type TerminalStyle, type TerminalWidget, Text, type TextConfig, TextConfigSchema, type TextWidget, type TimeFormat, TimerComponent, type TimerConfig, TimerConfigSchema, type TimerState, type TimerWidget, type TitleAlign, Toast, type ToastBorderConfig, type ToastConfig, ToastConfigSchema, type ToastPosition, type ToastStyleConfig, type ToastType, type ToastWidget, type TooltipPosition, type TooltipRenderData, type TooltipState, type TooltipStyle, type TreeNode, type TreeStyleConfig, type TreeWidget, type TreeWidgetConfig, TreeWidgetConfigSchema, type VAlign$2 as VAlign, VERTICAL_BLOCKS, Video, type VideoConfig, VideoConfigSchema, type VideoOutputDriver, type VideoPlaybackState, type VideoPlayer, type VideoProcessHandle, type VideoProcessSpawner, type VideoWidget, Viewport3DTag, type Viewport3DWidget, type VirtualizedList, type VirtualizedListConfig, VirtualizedListConfigSchema, type VirtualizedListStyle, VirtualizedListStyleSchema, type WidgetFactory, type WidgetRegistration, type WidgetRegistry, addFlexChild, addToGrid, appendToState, ask, attachSearchOverlay, brailleChar, buildMplayerArgs, buildMpvArgs, buildPlayerArgs, calculateFlexLayout, calculateGridLayout, calculateInlineLayout, calculateTickInterval, clearAllHoverText, clearCanvas, clearHoverText, clearLines, clearState, closeAllModals, closeModal, collapseAllSections, combineBrailleDots, confirm, createAccordion, createAutocomplete, createBarChart, createBox, createButton, createCalendar, createCanvas, createCheckbox, createCollapsible, createCommandPalette, createContextMenu, createDevTools, createFileManager, createFlexContainer, createFooter, createForm, createGauge, createGrid, createHeader, createHoverTextManager, createImage, createLayout, createLine, createLineChart, createList, createListTable, createListbar, createLoading, createLog, createMessage, createModal, createMultiSelect, createPanel, createProgressBar, createPrompt, createQuestion, createRadioButton, createRadioGroup, createScrollableBox, createScrollableText, createSearchOverlay, createSearchableList, createSharedTextBuffer, createSparkline, createSplitPane, createStopwatch, createStreamingState, createStreamingText, createSwitch, createTable, createTabs, createTerminal, createText, createTimer, createToast, createTree, createVideo, createViewport3D, createVirtualizedList, createWidgetRegistry, defaultRegistry, deleteBottom, deleteLine, deleteTop, detectVideoPlayer, drawCircle, drawLine, drawRect, drawText, expandAllSections, expandSection, fileManagerStateMap, formatNumber, formatPercentage, generateTicks, getActiveTabIndex, getBaseLine, getBoxContent, getCanvasContent, getChartColor, getContextMenuSelectedIndex, getDividerRenderInfo, getExpandedSections, getHoverText, getHoverTextCount, getImageBitmap, getImageCellMap, getLayoutMode, getLine, getLineChar, getLineCount, getLineOrientation, getLines, getModalStack, getPanelTitle, getPanelTitleAlign, getScrollback, getSearchOverlayColors, getSearchOverlayTarget, getSearchableFilteredItems, getSelectedItems, getSharedTextBuffer, getSplitDirection, getStreamVisibleLines, getTabCount, getTabPosition, getTextContent, getVideoPlaybackState, getVideoPlayer, getWidgetTypes, getWidgetsByTag, handleContextMenuKey, handleFileManagerKey, handleMessageClick, handleMessageKey, handleModalBackdropClick, handleModalEscape, handlePromptKey, handleQuestionKey, handleSwitchClick, handleSwitchKey, handleTerminalKey, handleVirtualizedListKey, handleVirtualizedListWheel, hasHoverText, hideLoading, hitTestDivider, insertBottom, insertLine, insertTop, interpolateChartColor, isAccordion, isAutocomplete, isBarChart, isBox, isButtonWidget, isCalendar, isCanvas, isCheckboxWidget, isCollapsible, isCommandPalette, isDevTools, isDismissOnClick, isDismissOnKey, isFileManager, isFlexContainer, isForm as isFormWidget, isGauge, isGrid, isImage, isKeysScrollEnabled, isLayout, isLine, isLineChart, isListTableWidget, isListWidget, isListbarWidget, isLoadingWidget, isLog, isKeysScrollEnabled$1 as isLogKeysScrollEnabled, isMouseScrollEnabled$1 as isLogMouseScrollEnabled, isMessage, isModal, isModalOpen, isMouseScrollEnabled, isMultiSelect, isPanel, isPanelCollapsed, isProgressBar as isProgressBarWidget, isPrompt, isQuestion, isRadioButtonWidget, isRadioGroupWidget, isScrollableBox, isScrollableBox as isScrollableText, isSearchOverlay, isSearchableList, isSparkline, isSplitPane, isStopwatch, isSwitch, isTableWidget, isTabs, isTerminal, isTerminalKeysEnabled, isTerminalMouseEnabled, isText, isTimer, isToast, isTreeWidget, isVideo, isViewport3DWidget, isVirtualizedList, isWidgetType, onSelectionChange, openModal, popLine, prompt, promptStateMap, pushLine, questionStateMap, registerBuiltinWidgets, renderPanelTitleBar, renderTabBar, renderXAxisLabel, renderYAxisLabel, replaceLines, resetAccordionStore, resetAutocompleteStore, resetBarChartStore, resetBoxStore, resetButtonWidgetStore, resetCalendarStore, resetCanvasStore, resetCheckboxWidgetStore, resetCommandPaletteStore, resetDevToolsStore, resetFileManagerStore, resetFlexContainerStore, resetFormStore as resetFormWidgetStore, resetGaugeStore, resetGridStore, resetHoverTextStore, resetImageStore, resetLayoutStore, resetLineChartStore, resetLineStore, resetListbarStore, resetLoadingStore, resetLogStore, resetMessageStore, resetModalStore, resetMultiSelectStore, resetPanelStore, resetProgressBarStore as resetProgressBarWidgetStore, resetPromptStore, resetQuestionStore, resetRadioWidgetStore, resetScrollableBoxStore, resetSearchOverlayStore, resetSearchableListStore, resetSparklineStore, resetSplitPaneStore, resetStopwatchWidgetStore, resetSwitchStore, resetTabsStore, resetTerminalStore, resetTextStore, resetTimerWidgetStore, resetToastStore, resetTreeStore, resetVideoStore, scaleValue, scrollByLines, scrollToLine, sendPauseCommand, sendSeekCommand, setBaseLine, setBoxContent, setHoverText, setLine, setLineChar, setLines, setLoadingMessage, setPanelTitle, setPixel, setReadDirFn, setSearchableFilter, setTextContent, shiftLine, showError, showErrorToast, showInfo, showInfoToast, showLoading, showSuccess, showSuccessToast, showWarning, showWarningToast, spliceLines, stripAnsiSequences, toggleCollapsible, toggleSection, unshiftLine, updateLoadingAnimation, updateTimeWidgets, wrapLine };