silvery 0.18.2 → 0.19.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 (156) hide show
  1. package/dist/{animation-DhINOJk8.mjs → animation-Cn64yepo.mjs} +1 -1
  2. package/dist/{animation-DhINOJk8.mjs.map → animation-Cn64yepo.mjs.map} +1 -1
  3. package/dist/{ansi-C6Qs1Wn2.mjs → ansi-CLOitHKx.mjs} +1 -1
  4. package/dist/ansi-CLOitHKx.mjs.map +1 -0
  5. package/dist/{ansi-CsjnZtAw.d.mts → ansi-Cc33mW54.d.mts} +1 -1
  6. package/dist/{ansi-CsjnZtAw.d.mts.map → ansi-Cc33mW54.d.mts.map} +1 -1
  7. package/dist/{chunk-BSw8zbkd.mjs → chunk-Vs_PY4HZ.mjs} +1 -1
  8. package/dist/cli-BKp0YtBD.mjs +4 -0
  9. package/dist/{context-BjWgrikx.mjs → context-BU5LkkIy.mjs} +8 -7
  10. package/dist/context-BU5LkkIy.mjs.map +1 -0
  11. package/dist/devtools-9QY4teqI.mjs +2 -0
  12. package/dist/{devtools-CeO9X_uv.mjs → devtools-DxkSLXDA.mjs} +4 -5
  13. package/dist/devtools-DxkSLXDA.mjs.map +1 -0
  14. package/dist/{eta-BnQSZcWf.mjs → eta-Bb3RH3wh.mjs} +1 -1
  15. package/dist/{eta-BnQSZcWf.mjs.map → eta-Bb3RH3wh.mjs.map} +1 -1
  16. package/dist/{flexily-zero-adapter-BOM0cl8R.mjs → flexily-zero-adapter-BlQa46nr.mjs} +21 -64
  17. package/dist/flexily-zero-adapter-BlQa46nr.mjs.map +1 -0
  18. package/dist/{flexily-zero-adapter-V8R3HQtK.mjs → flexily-zero-adapter-CMxXhdOL.mjs} +1 -1
  19. package/dist/{image-B0zMbVUr.mjs → image-CTII5QWI.mjs} +3 -3
  20. package/dist/image-CTII5QWI.mjs.map +1 -0
  21. package/dist/{index-Bh3U1K09.d.mts → index-BXslOebb.d.mts} +547 -137
  22. package/dist/index-BXslOebb.d.mts.map +1 -0
  23. package/dist/{index-C4vrhbud.d.mts → index-BnA7mNpo.d.mts} +1 -1
  24. package/dist/{index-C4vrhbud.d.mts.map → index-BnA7mNpo.d.mts.map} +1 -1
  25. package/dist/index-D3saHouR.d.mts +1392 -0
  26. package/dist/index-D3saHouR.d.mts.map +1 -0
  27. package/dist/index.d.mts +5 -33
  28. package/dist/index.d.mts.map +1 -1
  29. package/dist/index.mjs +13 -13
  30. package/dist/{layout-engine--drvrWjD.mjs → layout-engine-B6Cdz1yZ.mjs} +1 -1
  31. package/dist/{layout-engine-Dr3cY5U4.mjs → layout-engine-ClUgv6jB.mjs} +3 -3
  32. package/dist/{layout-engine-Dr3cY5U4.mjs.map → layout-engine-ClUgv6jB.mjs.map} +1 -1
  33. package/dist/{multi-progress-CcdqJFlf.mjs → multi-progress-Bq9Oi_WI.mjs} +3 -3
  34. package/dist/{multi-progress-CcdqJFlf.mjs.map → multi-progress-Bq9Oi_WI.mjs.map} +1 -1
  35. package/dist/{multi-progress-DQ-uUzLf.d.mts → multi-progress-DAQC7eap.d.mts} +2 -2
  36. package/dist/{multi-progress-DQ-uUzLf.d.mts.map → multi-progress-DAQC7eap.d.mts.map} +1 -1
  37. package/dist/{node-CP5WChgr.mjs → node-BeWlnCPY.mjs} +4 -4
  38. package/dist/node-BeWlnCPY.mjs.map +1 -0
  39. package/dist/{progress-bar-IrUjkLfU.mjs → progress-bar-CXE5Qfkd.mjs} +4 -4
  40. package/dist/progress-bar-CXE5Qfkd.mjs.map +1 -0
  41. package/dist/reconciler-Cwgm8hRR.mjs +8459 -0
  42. package/dist/reconciler-Cwgm8hRR.mjs.map +1 -0
  43. package/dist/{render-string-BwLG7rIX.mjs → render-string-0mN37DLf.mjs} +1 -1
  44. package/dist/{render-string-DVfgc8xr.mjs → render-string-X-CxpTdZ.mjs} +935 -136
  45. package/dist/render-string-X-CxpTdZ.mjs.map +1 -0
  46. package/dist/runtime.d.mts +2 -2
  47. package/dist/runtime.mjs +3 -3
  48. package/dist/{spinner-BRkaJI0N.d.mts → spinner-CGo34vyR.d.mts} +2 -2
  49. package/dist/{spinner-BRkaJI0N.d.mts.map → spinner-CGo34vyR.d.mts.map} +1 -1
  50. package/dist/{spinner-BmldKx0M.mjs → spinner-CeOmcuw_.mjs} +3 -3
  51. package/dist/spinner-CeOmcuw_.mjs.map +1 -0
  52. package/dist/src-B5GjfG7g.mjs +4305 -0
  53. package/dist/src-B5GjfG7g.mjs.map +1 -0
  54. package/dist/{src-CJPXf3fC.mjs → src-Bd7ezSgG.mjs} +7560 -6474
  55. package/dist/src-Bd7ezSgG.mjs.map +1 -0
  56. package/dist/{src-D8kLrQBT.mjs → src-CChwjk0Z.mjs} +8 -86
  57. package/dist/src-CChwjk0Z.mjs.map +1 -0
  58. package/dist/{src-D_BS-as7.mjs → src-NCKb8kE5.mjs} +777 -776
  59. package/dist/src-NCKb8kE5.mjs.map +1 -0
  60. package/dist/theme.d.mts +2 -130
  61. package/dist/theme.mjs +3 -8
  62. package/dist/{types-B4A8Ebba.d.mts → types-BH_v3iMT.d.mts} +1 -1
  63. package/dist/{types-B4A8Ebba.d.mts.map → types-BH_v3iMT.d.mts.map} +1 -1
  64. package/dist/{types-e4dpfbSa.mjs → types-Bk2yw9Qj.mjs} +3 -3
  65. package/dist/types-Bk2yw9Qj.mjs.map +1 -0
  66. package/dist/ui/animation.d.mts +1 -1
  67. package/dist/ui/animation.mjs +1 -1
  68. package/dist/ui/ansi.d.mts +1 -1
  69. package/dist/ui/ansi.mjs +1 -1
  70. package/dist/ui/cli.d.mts +3 -3
  71. package/dist/ui/cli.mjs +5 -5
  72. package/dist/ui/display.d.mts +1 -1
  73. package/dist/ui/display.mjs.map +1 -1
  74. package/dist/ui/image.d.mts +1 -1
  75. package/dist/ui/image.mjs +1 -1
  76. package/dist/ui/input.d.mts +1 -1
  77. package/dist/ui/input.d.mts.map +1 -1
  78. package/dist/ui/input.mjs +2 -4
  79. package/dist/ui/input.mjs.map +1 -1
  80. package/dist/ui/progress.d.mts +3 -3
  81. package/dist/ui/progress.d.mts.map +1 -1
  82. package/dist/ui/progress.mjs +3 -3
  83. package/dist/ui/progress.mjs.map +1 -1
  84. package/dist/ui/react.d.mts +1 -1
  85. package/dist/ui/react.d.mts.map +1 -1
  86. package/dist/ui/react.mjs +2 -2
  87. package/dist/ui/react.mjs.map +1 -1
  88. package/dist/ui/utils.mjs +1 -1
  89. package/dist/ui/wrappers.d.mts +2 -2
  90. package/dist/ui/wrappers.mjs +1 -1
  91. package/dist/ui.d.mts +5 -5
  92. package/dist/ui.mjs +6 -6
  93. package/dist/{useLatest-6xqnGIU6.d.mts → useLatest-Bg2x4bfP.d.mts} +1 -1
  94. package/dist/{useLatest-6xqnGIU6.d.mts.map → useLatest-Bg2x4bfP.d.mts.map} +1 -1
  95. package/dist/{with-text-input-lUh9gYAG.d.mts → with-text-input-CRfoiFFG.d.mts} +3 -3
  96. package/dist/with-text-input-CRfoiFFG.d.mts.map +1 -0
  97. package/dist/{wrappers-JrEYTuKA.mjs → wrappers-UTADQkSY.mjs} +4 -4
  98. package/dist/wrappers-UTADQkSY.mjs.map +1 -0
  99. package/dist/{yoga-adapter-Bc8XT9cN.mjs → yoga-adapter-8oRGRw8V.mjs} +2 -2
  100. package/dist/{yoga-adapter-Bc8XT9cN.mjs.map → yoga-adapter-8oRGRw8V.mjs.map} +1 -1
  101. package/dist/yoga-adapter-D_CcxSt5.mjs +2 -0
  102. package/package.json +3 -3
  103. package/dist/UPNG-DvKjM6wE.mjs +0 -5076
  104. package/dist/UPNG-DvKjM6wE.mjs.map +0 -1
  105. package/dist/__vite-browser-external-2447137e-DPKHHqQK.mjs +0 -6
  106. package/dist/__vite-browser-external-2447137e-DPKHHqQK.mjs.map +0 -1
  107. package/dist/ansi-C6Qs1Wn2.mjs.map +0 -1
  108. package/dist/apng-CvSlLBtc.mjs +0 -3
  109. package/dist/apng-DFFVOItr.mjs +0 -70
  110. package/dist/apng-DFFVOItr.mjs.map +0 -1
  111. package/dist/assets/resvgjs.darwin-arm64-BtufyGW1.node +0 -0
  112. package/dist/backend-DU0Y938U.mjs +0 -13396
  113. package/dist/backend-DU0Y938U.mjs.map +0 -1
  114. package/dist/backends-BihMKFY_.mjs +0 -1181
  115. package/dist/backends-BihMKFY_.mjs.map +0 -1
  116. package/dist/backends-Dk_5G_gC.mjs +0 -3
  117. package/dist/cli-GwJ0S2In.mjs +0 -4
  118. package/dist/context-BjWgrikx.mjs.map +0 -1
  119. package/dist/derive-O_Kb1Bk_.d.mts +0 -28
  120. package/dist/derive-O_Kb1Bk_.d.mts.map +0 -1
  121. package/dist/devtools-CeO9X_uv.mjs.map +0 -1
  122. package/dist/devtools-nX4tj6OH.mjs +0 -2
  123. package/dist/flexily-zero-adapter-BOM0cl8R.mjs.map +0 -1
  124. package/dist/gif-B9Uq4qZA.mjs +0 -73
  125. package/dist/gif-B9Uq4qZA.mjs.map +0 -1
  126. package/dist/gif-BdrLRBmM.mjs +0 -3
  127. package/dist/gifenc-DfhOb4xr.mjs +0 -730
  128. package/dist/gifenc-DfhOb4xr.mjs.map +0 -1
  129. package/dist/image-B0zMbVUr.mjs.map +0 -1
  130. package/dist/index-Bh3U1K09.d.mts.map +0 -1
  131. package/dist/index-dehZ18K-.d.mts +0 -679
  132. package/dist/index-dehZ18K-.d.mts.map +0 -1
  133. package/dist/key-mapping-7k2ufK2b.mjs +0 -3
  134. package/dist/key-mapping-WLUmxjx1.mjs +0 -132
  135. package/dist/key-mapping-WLUmxjx1.mjs.map +0 -1
  136. package/dist/node-CP5WChgr.mjs.map +0 -1
  137. package/dist/progress-bar-IrUjkLfU.mjs.map +0 -1
  138. package/dist/reconciler-B8uxQxaU.mjs +0 -16482
  139. package/dist/reconciler-B8uxQxaU.mjs.map +0 -1
  140. package/dist/render-string-DVfgc8xr.mjs.map +0 -1
  141. package/dist/resvg-js-Cwipz-_J.mjs +0 -203
  142. package/dist/resvg-js-Cwipz-_J.mjs.map +0 -1
  143. package/dist/spinner-BmldKx0M.mjs.map +0 -1
  144. package/dist/src-C0sOQW-t.mjs +0 -3866
  145. package/dist/src-C0sOQW-t.mjs.map +0 -1
  146. package/dist/src-CJPXf3fC.mjs.map +0 -1
  147. package/dist/src-D8kLrQBT.mjs.map +0 -1
  148. package/dist/src-D_BS-as7.mjs.map +0 -1
  149. package/dist/theme.d.mts.map +0 -1
  150. package/dist/theme.mjs.map +0 -1
  151. package/dist/types-e4dpfbSa.mjs.map +0 -1
  152. package/dist/with-text-input-lUh9gYAG.d.mts.map +0 -1
  153. package/dist/wrapper-CE6GQ27z.mjs +0 -3527
  154. package/dist/wrapper-CE6GQ27z.mjs.map +0 -1
  155. package/dist/wrappers-JrEYTuKA.mjs.map +0 -1
  156. package/dist/yoga-adapter-B8LZpQcE.mjs +0 -2
@@ -1,73 +1,7 @@
1
- import { It as ColorLevel, Lt as TerminalCaps, Mt as ColorScheme$1, Pt as Theme } from "./index-dehZ18K-.mjs";
1
+ import { Cn as disableMouse$1, Mn as ColorLevel, Nn as TerminalCaps, Sn as disableKittyKeyboard$1, Tn as enableMouse$1, bn as Theme, fn as KnownVariant, gn as ActiveScheme, kn as ColorTier, mn as DetectSchemeResult, pn as DetectSchemeOptions, wn as enableKittyKeyboard$1 } from "./index-D3saHouR.mjs";
2
2
  import * as _$react from "react";
3
3
  import React$1, { Component, ErrorInfo, JSX, ReactElement, ReactNode, RefObject, useDeferredValue, useId as useId$1, useTransition } from "react";
4
4
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
5
-
6
- //#region packages/ansi/src/terminal-control.d.ts
7
- /**
8
- * Enable mouse tracking with full hover support.
9
- *
10
- * Uses two modes:
11
- * - **1003** (any-event tracking): Reports ALL mouse motion — clicks, drags, AND hover.
12
- * This is what makes onMouseEnter/onMouseLeave work. Without it, only clicks are reported.
13
- * - **1006** (SGR encoding): Decimal coordinates with no 223-column limit.
14
- *
15
- * WARNING: Do NOT replace 1003 with 1000+1002. The xterm mouse modes form a hierarchy:
16
- * 1000 = clicks only
17
- * 1002 = clicks + drag (motion while button held)
18
- * 1003 = clicks + drag + hover (ALL motion, even without button)
19
- * Mode 1003 supersedes 1000 and 1002. Using 1000+1002 instead of 1003 silently
20
- * disables hover — onMouseEnter/onMouseLeave stop firing with no error.
21
- */
22
- declare function enableMouse$1(): string;
23
- /**
24
- * Disable mouse tracking. Disables in reverse order of enabling.
25
- */
26
- declare function disableMouse$1(): string;
27
- /**
28
- * Enable the Kitty keyboard protocol (push mode).
29
- *
30
- * Sends CSI > flags u to opt into the specified modes.
31
- * Supported by: Ghostty, Kitty, WezTerm, foot. Ignored by unsupported terminals.
32
- *
33
- * Flags are a bitfield:
34
- *
35
- * | Flag | Bit | Description |
36
- * | ---- | --- | ----------------------------------------- |
37
- * | 1 | 0 | Disambiguate escape codes |
38
- * | 2 | 1 | Report event types (press/repeat/release) |
39
- * | 4 | 2 | Report alternate keys |
40
- * | 8 | 3 | Report all keys as escape codes |
41
- * | 16 | 4 | Report associated text |
42
- *
43
- * @param flags Bitfield of Kitty keyboard flags
44
- */
45
- declare function enableKittyKeyboard$1(flags?: number): string;
46
- /**
47
- * Disable the Kitty keyboard protocol (pop mode stack).
48
- * Sends CSI < u to restore the previous keyboard mode.
49
- */
50
- declare function disableKittyKeyboard$1(): string;
51
- //#endregion
52
- //#region packages/ansi/src/theme/orchestrator.d.ts
53
- interface DetectSchemeOptions {
54
- /** Explicit override — if provided, skips all probing. */
55
- override?: ColorScheme$1;
56
- /** Catalog to fingerprint against. If empty or undefined, skip fingerprinting. */
57
- catalog?: readonly ColorScheme$1[];
58
- /** OSC probe timeout (ms). Default 150. */
59
- timeoutMs?: number;
60
- /** Force dark/light inference when no bg is probed. */
61
- darkFallback?: boolean;
62
- /**
63
- * Apply strict invariant validation to the loaded Theme. Default `lenient`.
64
- * See `loadTheme`'s `enforce` parameter.
65
- */
66
- enforce?: "strict" | "lenient" | "off";
67
- /** Add WCAG contrast check to the invariant validation. Default `false`. */
68
- wcag?: boolean;
69
- }
70
- //#endregion
71
5
  //#region packages/ag/src/drag-event-types.d.ts
72
6
  /**
73
7
  * Drag event payload passed to handler props.
@@ -1205,6 +1139,18 @@ interface ListViewProps<T> {
1205
1139
  onEndReached?: () => void;
1206
1140
  /** How many items from the end to trigger onEndReached. Default: 5 */
1207
1141
  onEndReachedThreshold?: number;
1142
+ /**
1143
+ * Called when mouse enters an item. Defaults to moving the cursor to that
1144
+ * item (hover-to-focus). Provide a custom handler to override this behavior.
1145
+ * Only active when nav=true.
1146
+ */
1147
+ onItemHover?: (index: number) => void;
1148
+ /**
1149
+ * Called when an item is clicked. Defaults to moving the cursor + firing
1150
+ * onSelect (click-to-confirm). Provide a custom handler to override.
1151
+ * Only active when nav=true.
1152
+ */
1153
+ onItemClick?: (index: number) => void;
1208
1154
  /** Content rendered after all items inside the scroll container (e.g., hidden count indicator) */
1209
1155
  listFooter?: React$1.ReactNode;
1210
1156
  /** Predicate for items already unmounted (cached, pushed to scrollback).
@@ -1897,6 +1843,13 @@ interface Buffer$1 {
1897
1843
  readonly nodes: AgNode;
1898
1844
  /** Raw terminal buffer for diffing */
1899
1845
  readonly _buffer: TerminalBuffer;
1846
+ /**
1847
+ * Optional out-of-band ANSI escapes (currently Kitty graphics placements
1848
+ * for emoji scrim in the backdrop-fade pass). Appended by the runtime AFTER
1849
+ * the output-phase diff — they're not part of the cell grid but need to be
1850
+ * emitted every frame the overlay is active. Empty string when no overlay.
1851
+ */
1852
+ readonly overlay?: string;
1900
1853
  }
1901
1854
  /**
1902
1855
  * Event types from the runtime.
@@ -2800,6 +2753,20 @@ declare function Fill({
2800
2753
  interface TextProps extends TextProps$1 {
2801
2754
  /** Text content (string, number, or nested Text elements) */
2802
2755
  children?: ReactNode;
2756
+ /**
2757
+ * Typography variant — pulls defaults from `theme.variants[variant]`.
2758
+ * Caller props always win over variant values (variant is the *default*).
2759
+ *
2760
+ * @example
2761
+ * ```tsx
2762
+ * <Text variant="h1">Title</Text>
2763
+ * // → uses theme.variants.h1 as defaults ({ color: "$primary", bold: true })
2764
+ *
2765
+ * <Text variant="h1" color="$success">Done</Text>
2766
+ * // → color="$success" wins; bold still comes from variant
2767
+ * ```
2768
+ */
2769
+ variant?: KnownVariant;
2803
2770
  }
2804
2771
  /**
2805
2772
  * Methods exposed via ref on Text component.
@@ -2841,6 +2808,11 @@ interface TextHandle {
2841
2808
  * // With ref
2842
2809
  * const textRef = useRef<TextHandle>(null);
2843
2810
  * <Text ref={textRef}>Hello</Text>
2811
+ *
2812
+ * // With variant — typography presets from theme
2813
+ * <Text variant="h1">Page Title</Text>
2814
+ * <Text variant="body-muted">Caption text</Text>
2815
+ * <Text variant="h1" color="$success">Done</Text> // caller color wins
2844
2816
  * ```
2845
2817
  */
2846
2818
  declare const Text: _$react.ForwardRefExoticComponent<TextProps & _$react.RefAttributes<TextHandle>>;
@@ -3057,11 +3029,13 @@ interface TextInputProps {
3057
3029
  onEOF?: () => void;
3058
3030
  /** Placeholder text when empty */
3059
3031
  placeholder?: string;
3032
+ /** Placeholder color (default: "$fg-muted") */
3033
+ placeholderColor?: string;
3060
3034
  /** Whether input is focused/active (overrides focus system) */
3061
3035
  isActive?: boolean;
3062
3036
  /** Prompt prefix (e.g., "$ " or "> ") */
3063
3037
  prompt?: string;
3064
- /** Prompt color */
3038
+ /** Prompt color (default: "$fg-accent") */
3065
3039
  promptColor?: string;
3066
3040
  /** Text color */
3067
3041
  color?: string;
@@ -3075,9 +3049,9 @@ interface TextInputProps {
3075
3049
  mask?: string;
3076
3050
  /** Border style (e.g., "round", "single") — wraps input in bordered Box */
3077
3051
  borderStyle?: string;
3078
- /** Border color when unfocused (default: "$border") */
3052
+ /** Border color when unfocused (default: "$border-default") */
3079
3053
  borderColor?: string;
3080
- /** Border color when focused (default: "$focusborder") */
3054
+ /** Border color when focused (default: "$border-focus") */
3081
3055
  focusBorderColor?: string;
3082
3056
  /** Test ID for focus system identification */
3083
3057
  testID?: string;
@@ -3256,9 +3230,9 @@ interface TextAreaProps {
3256
3230
  maxLength?: number;
3257
3231
  /** Border style (e.g., "round", "single") — wraps input in bordered Box */
3258
3232
  borderStyle?: string;
3259
- /** Border color when unfocused (default: "$border") */
3233
+ /** Border color when unfocused (default: "$border-default") */
3260
3234
  borderColor?: string;
3261
- /** Border color when focused (default: "$focusborder") */
3235
+ /** Border color when focused (default: "$border-focus") */
3262
3236
  focusBorderColor?: string;
3263
3237
  /** Test ID for focus system identification */
3264
3238
  testID?: string;
@@ -3338,11 +3312,11 @@ declare function CursorLine({
3338
3312
  //#endregion
3339
3313
  //#region packages/ag-react/src/ui/components/ModalDialog.d.ts
3340
3314
  interface ModalDialogProps extends Omit<BoxProps, "children" | "flexDirection"> {
3341
- /** Border color (default: $border). Cyan is reserved for text input focus rings. */
3315
+ /** Border color (default: $border-default). Accent is reserved for text input focus rings. */
3342
3316
  borderColor?: string;
3343
3317
  /** Dialog title (rendered bold in titleColor or borderColor) */
3344
3318
  title?: string;
3345
- /** Title color override (default: $primary). Separate from border for independent styling. */
3319
+ /** Title color override (default: $fg-accent). Separate from border for independent styling. */
3346
3320
  titleColor?: string;
3347
3321
  /** Title alignment (default: center) */
3348
3322
  titleAlign?: "center" | "flex-start" | "flex-end";
@@ -3364,10 +3338,21 @@ interface ModalDialogProps extends Omit<BoxProps, "children" | "flexDirection">
3364
3338
  focusScope?: boolean;
3365
3339
  /**
3366
3340
  * Backdrop fade amount — fades everything OUTSIDE this dialog's rect, making
3367
- * the modal's content stand out visually. Range [0, 1]. Default: 0.4.
3341
+ * the modal's content stand out visually. Range [0, 1]. Default: 0.25.
3342
+ *
3343
+ * Calibrated against real-world scrim conventions:
3344
+ * - macOS sheet backdrop ≈ 0.20
3345
+ * - iOS action-sheet scrim ≈ 0.40
3346
+ * - Material 3 scrim = 0.32
3347
+ *
3348
+ * 0.25 lands in the middle — the backdrop is visibly dimmed but the UI
3349
+ * behind stays readable. An earlier default of 0.7 drowned the scene
3350
+ * because the asymmetric blend math used uniform amounts for fg/bg; with
3351
+ * the asymmetric path removed (see `pipeline/backdrop/`), 0.7 is now truly
3352
+ * too strong. Apps that want a heavier dim can opt in with `fade={0.4}`.
3368
3353
  *
3369
3354
  * Applied at render time via a cell-level color transform (see
3370
- * `@silvery/ag-term/pipeline/backdrop-phase`). Set `fade={0}` to disable.
3355
+ * `@silvery/ag-term/pipeline/backdrop`). Set `fade={0}` to disable.
3371
3356
  */
3372
3357
  fade?: number;
3373
3358
  /** Dialog children */
@@ -3416,9 +3401,12 @@ declare function ModalDialog({
3416
3401
  interface BackdropProps extends Omit<BoxProps, "children"> {
3417
3402
  /**
3418
3403
  * Fade amount in [0, 1]. 0 = crisp (no fade), 1 = fully blended into bg
3419
- * (fg == bg, effectively invisible text). Default: 0.4.
3404
+ * (fg == bg, effectively invisible text). Default: 0.25.
3405
+ *
3406
+ * Calibrated to match scrim conventions (macOS ~0.20, Material 3 = 0.32).
3407
+ * Apps that want a heavier dim can opt in with `fade={0.4}` or higher.
3420
3408
  *
3421
- * Interpreted by the `backdrop-phase` pass after content rendering — the
3409
+ * Interpreted by the `pipeline/backdrop` pass after content rendering — the
3422
3410
  * fade is NOT applied in React; it's a cell-level transform on the finished
3423
3411
  * buffer. Fade propagates through the subtree via the node's screen rect.
3424
3412
  */
@@ -3566,6 +3554,74 @@ declare function Toggle({
3566
3554
  ...rest
3567
3555
  }: ToggleProps): React$1.ReactElement;
3568
3556
  //#endregion
3557
+ //#region packages/ag-react/src/ui/components/_tone.d.ts
3558
+ /**
3559
+ * Tone — shared primitive for Sterling-tone-bearing components.
3560
+ *
3561
+ * The `tone` axis is Sterling's status vocabulary + a component-layer
3562
+ * `destructive` intent alias. See hub/silvery/design/v10-terminal/design-system.md
3563
+ * §"Intent vs role" and sterling-preflight.md D1 — `destructive` lives at the
3564
+ * component layer (not the Theme) to prevent palette sprawl.
3565
+ *
3566
+ * Consumers: Button, Alert, Banner, InlineAlert (and Badge/Toast, which have
3567
+ * their own legacy-compatible variants on top of this surface).
3568
+ *
3569
+ * All helpers return Sterling flat tokens (`$fg-error`, `$bg-warning-subtle`,
3570
+ * etc.) — the tokens are populated by `@silvery/design` and resolved by the
3571
+ * theme at render time.
3572
+ */
3573
+ /**
3574
+ * Canonical tone axis — 5 Sterling status roles plus the `destructive`
3575
+ * component-layer intent alias. `accent` is the default "primary" emphasis.
3576
+ */
3577
+ type ToneKey = "accent" | "error" | "warning" | "success" | "info" | "destructive";
3578
+ /**
3579
+ * Tone → Sterling flat-token mapping for fills (button backgrounds, filled
3580
+ * alert surfaces). Returns an object because callers usually need the paired
3581
+ * foreground, hover, and active tokens together — grouping them here keeps
3582
+ * the mapping DRY across components.
3583
+ */
3584
+ interface ToneFillTokens {
3585
+ /** Background fill (`$bg-<role>`). */
3586
+ bg: string;
3587
+ /** Foreground on the filled background (`$fg-on-<role>`). */
3588
+ fgOn: string;
3589
+ /** Hover-state fill (`$bg-<role>-hover`). */
3590
+ bgHover: string;
3591
+ /** Active/pressed-state fill (`$bg-<role>-active`). */
3592
+ bgActive: string;
3593
+ }
3594
+ /**
3595
+ * Get the full fill-token set for a tone. Used by `<Button>` and `<Alert>`
3596
+ * where the surface is filled with the tone color and foreground text sits
3597
+ * on top.
3598
+ */
3599
+ declare function toneFillTokens(tone: ToneKey): ToneFillTokens;
3600
+ /**
3601
+ * Get the foreground-only token for a tone. Used by `<InlineAlert>` where
3602
+ * only the text color carries the tone (no bg fill).
3603
+ */
3604
+ declare function toneFgToken(tone: ToneKey): string;
3605
+ /**
3606
+ * Get the subtle-surface token pair for a tone. Used by `<Banner>` where
3607
+ * the surface is tinted (not filled) so content stays legible without the
3608
+ * high-contrast "on-role" fg token.
3609
+ */
3610
+ interface ToneSubtleTokens {
3611
+ /** Tinted surface (`$bg-<role>-subtle`). */
3612
+ bg: string;
3613
+ /** Foreground that reads well on the tinted surface (`$fg-<role>`). */
3614
+ fg: string;
3615
+ }
3616
+ declare function toneSubtleTokens(tone: ToneKey): ToneSubtleTokens;
3617
+ /**
3618
+ * Single-character ASCII glyph conventionally associated with each tone.
3619
+ * Shared with Toast's existing mapping so Alert-family components render
3620
+ * consistent icons without each component inventing its own set.
3621
+ */
3622
+ declare const TONE_ICONS: Record<ToneKey, string>;
3623
+ declare function toneIcon(tone: ToneKey): string;
3624
+ //#endregion
3569
3625
  //#region packages/ag-react/src/ui/components/Button.d.ts
3570
3626
  interface ButtonProps extends Omit<BoxProps, "children"> {
3571
3627
  /** Button label */
@@ -3574,19 +3630,32 @@ interface ButtonProps extends Omit<BoxProps, "children"> {
3574
3630
  onPress: () => void;
3575
3631
  /** Whether input is active (default: from focus system) */
3576
3632
  isActive?: boolean;
3577
- /** Button color */
3633
+ /**
3634
+ * Sterling tone. Accepts status roles (`error` / `warning` / `success` /
3635
+ * `info`), the `accent` emphasis role, and the `destructive` intent alias
3636
+ * (resolves to `error`). Defaults to `accent` — the standard primary button.
3637
+ *
3638
+ * When both `tone` and `color` are set, `tone` wins.
3639
+ */
3640
+ tone?: ToneKey;
3641
+ /**
3642
+ * Raw color override. Kept for backward compatibility with callers that
3643
+ * reach around the tone axis (e.g. per-category coloring). Ignored when
3644
+ * `tone` is set.
3645
+ */
3578
3646
  color?: string;
3579
3647
  }
3580
3648
  /**
3581
3649
  * Focusable button control.
3582
3650
  *
3583
- * Renders `[ label ]` with inverse styling when focused. Activates on
3584
- * Enter or Space key press.
3651
+ * Renders `[ label ]` with tone-resolved background fill and inverse-mapped
3652
+ * foreground when focused. Activates on Enter or Space key press.
3585
3653
  */
3586
3654
  declare function Button({
3587
3655
  label,
3588
3656
  onPress,
3589
3657
  isActive,
3658
+ tone,
3590
3659
  color,
3591
3660
  ...rest
3592
3661
  }: ButtonProps): React$1.ReactElement;
@@ -3712,8 +3781,24 @@ interface SelectListProps {
3712
3781
  maxVisible?: number;
3713
3782
  /** Whether this list captures input (default: true) */
3714
3783
  isActive?: boolean;
3715
- /** Selection indicator prefix shown on highlighted item (default: "▸ "). Non-highlighted items get equal-width spaces. Pass "" to hide. */
3784
+ /**
3785
+ * Selection indicator prefix shown on highlighted item (default: "").
3786
+ * When empty (default), the cursor row is communicated via full-row background
3787
+ * color ($cursor-bg / $cursor fg) — the omnibox-style UX.
3788
+ * Pass "▸ " (or any string) to use an arrow/glyph indicator instead of row bg.
3789
+ * Non-highlighted items then get equal-width spaces for alignment.
3790
+ */
3716
3791
  indicator?: string;
3792
+ /**
3793
+ * Called when mouse enters an item row. Defaults to moving the keyboard cursor
3794
+ * to that row (hover-to-focus). Override to suppress or replace this behavior.
3795
+ */
3796
+ onItemHover?: (index: number) => void;
3797
+ /**
3798
+ * Called when an item row is clicked. Defaults to moving the cursor + firing
3799
+ * onSelect (click-to-confirm). Override to replace this behavior.
3800
+ */
3801
+ onItemClick?: (index: number) => void;
3717
3802
  }
3718
3803
  declare function SelectList({
3719
3804
  items,
@@ -3723,7 +3808,9 @@ declare function SelectList({
3723
3808
  initialIndex,
3724
3809
  maxVisible,
3725
3810
  isActive,
3726
- indicator
3811
+ indicator,
3812
+ onItemHover,
3813
+ onItemClick
3727
3814
  }: SelectListProps): React$1.ReactElement;
3728
3815
  //#endregion
3729
3816
  //#region packages/ag-react/src/components/Table.d.ts
@@ -3751,14 +3838,27 @@ declare function Table<T>({
3751
3838
  }: TableProps<T>): React$1.ReactElement;
3752
3839
  //#endregion
3753
3840
  //#region packages/ag-react/src/ui/components/Badge.d.ts
3841
+ /**
3842
+ * Tone values — Sterling statuses plus the `destructive` intent alias.
3843
+ * `primary` stays as a legacy synonym for `accent` while km-tui finishes
3844
+ * migrating; it resolves to the same Sterling token.
3845
+ */
3846
+ type BadgeTone = "default" | "accent" | "error" | "warning" | "success" | "info" | "destructive" | "primary";
3754
3847
  interface BadgeProps extends Omit<TextProps, "children"> {
3755
3848
  /** Badge text */
3756
3849
  label: string;
3757
- /** Color variant */
3758
- variant?: "default" | "primary" | "success" | "warning" | "error";
3850
+ /**
3851
+ * Sterling tone. Accepts status roles (`error`/`warning`/`success`/`info`),
3852
+ * the accent emphasis role, or the `destructive` intent alias. Legacy
3853
+ * `primary` stays as a synonym during Phase 2b/2c.
3854
+ */
3855
+ tone?: BadgeTone;
3856
+ /** Legacy alias for `tone`. Prefer `tone`. */
3857
+ variant?: BadgeTone;
3759
3858
  }
3760
3859
  declare function Badge({
3761
3860
  label,
3861
+ tone,
3762
3862
  variant,
3763
3863
  color,
3764
3864
  ...rest
@@ -3795,7 +3895,7 @@ declare function H2({
3795
3895
  color,
3796
3896
  ...rest
3797
3897
  }: TypographyProps): _$react_jsx_runtime0.JSX.Element;
3798
- /** Group heading — $primary, not bold. Same hue as H1 but lighter weight. */
3898
+ /** Group heading — bold, no color override. Same hue as theme's primary but no bold means lighter weight than H1. */
3799
3899
  declare function H3({
3800
3900
  children,
3801
3901
  color,
@@ -3942,7 +4042,16 @@ declare function FormField({
3942
4042
  }: FormFieldProps): React$1.ReactElement;
3943
4043
  //#endregion
3944
4044
  //#region packages/ag-react/src/ui/components/Toast.d.ts
3945
- type ToastVariant = "default" | "success" | "error" | "warning" | "info";
4045
+ /**
4046
+ * Toast tone — Sterling statuses plus the `destructive` intent alias. Phase 2b
4047
+ * adds `accent` and `destructive` to the surface; `default` stays for plain
4048
+ * notifications that don't carry semantic meaning.
4049
+ *
4050
+ * `destructive` resolves to `error` (see design-system.md §"Intent vs role");
4051
+ * apps write `tone="destructive"` when the toast announces a destructive action
4052
+ * and `tone="error"` when something failed.
4053
+ */
4054
+ type ToastVariant = "default" | "accent" | "success" | "error" | "warning" | "info" | "destructive";
3946
4055
  interface ToastData {
3947
4056
  /** Unique toast ID (auto-generated if not provided) */
3948
4057
  id: string;
@@ -4014,6 +4123,145 @@ declare function ToastContainer({
4014
4123
  ...boxProps
4015
4124
  }: ToastContainerProps): React$1.ReactElement;
4016
4125
  //#endregion
4126
+ //#region packages/ag-react/src/ui/components/InlineAlert.d.ts
4127
+ interface InlineAlertProps extends Omit<BoxProps, "children"> {
4128
+ /**
4129
+ * Sterling tone. `destructive` aliases to `error` at the component layer.
4130
+ * Defaults to `info` — the neutral "heads up" tone for low-urgency
4131
+ * messages.
4132
+ */
4133
+ tone?: ToneKey;
4134
+ /** Message content (text or React nodes). */
4135
+ children: React$1.ReactNode;
4136
+ /** Whether to render the tone icon prefix (default: true). */
4137
+ showIcon?: boolean;
4138
+ /**
4139
+ * Override the default tone icon glyph. Defaults to the shared
4140
+ * `TONE_ICONS` mapping (same as Toast).
4141
+ */
4142
+ icon?: string;
4143
+ }
4144
+ /**
4145
+ * Inline low-urgency tone message.
4146
+ *
4147
+ * Pick `<InlineAlert>` when the message is passive context a user can read
4148
+ * or ignore without interrupting their task. Escalate to `<Banner>` or
4149
+ * `<Alert>` when the message demands action or blocks flow.
4150
+ */
4151
+ declare function InlineAlert({
4152
+ tone,
4153
+ children,
4154
+ showIcon,
4155
+ icon,
4156
+ ...boxProps
4157
+ }: InlineAlertProps): React$1.ReactElement;
4158
+ //#endregion
4159
+ //#region packages/ag-react/src/ui/components/Banner.d.ts
4160
+ interface BannerProps extends Omit<BoxProps, "children"> {
4161
+ /**
4162
+ * Sterling tone. `destructive` aliases to `error` at the component layer.
4163
+ * Defaults to `info` — the neutral banner tone.
4164
+ */
4165
+ tone?: ToneKey;
4166
+ /** Banner content. */
4167
+ children: React$1.ReactNode;
4168
+ /**
4169
+ * When set, renders a dismiss affordance on the right side and calls this
4170
+ * callback when the user presses Escape (if focused) or activates the
4171
+ * affordance. Omit to make the banner non-dismissible.
4172
+ */
4173
+ onDismiss?: () => void;
4174
+ /** Label for the dismiss affordance (default: "dismiss ×"). */
4175
+ dismissLabel?: React$1.ReactNode;
4176
+ /** Whether to render the tone icon prefix (default: true). */
4177
+ showIcon?: boolean;
4178
+ /** Override the default tone icon glyph. */
4179
+ icon?: string;
4180
+ }
4181
+ /**
4182
+ * Dismissible tone banner — medium-urgency message row.
4183
+ *
4184
+ * Width defaults to "100%" so the banner spans its parent. Consumers that
4185
+ * want a narrower banner can set `width` directly; the subtle bg fill will
4186
+ * respect the explicit width.
4187
+ */
4188
+ declare function Banner({
4189
+ tone,
4190
+ children,
4191
+ onDismiss,
4192
+ dismissLabel,
4193
+ showIcon,
4194
+ icon,
4195
+ ...boxProps
4196
+ }: BannerProps): React$1.ReactElement;
4197
+ //#endregion
4198
+ //#region packages/ag-react/src/ui/components/Alert.d.ts
4199
+ interface AlertProps extends Omit<BoxProps, "children" | "flexDirection" | "width" | "height"> {
4200
+ /**
4201
+ * Sterling tone. `destructive` aliases to `error` at the component layer.
4202
+ * Defaults to `error` — the prototypical high-urgency case (destructive
4203
+ * confirmation, fatal error). Callers ask for `warning` / `info` / `success`
4204
+ * when the modal conveys those tones instead.
4205
+ */
4206
+ tone?: ToneKey;
4207
+ /** Whether the alert is open. Render nothing when `false`. */
4208
+ open?: boolean;
4209
+ /** Called when the user dismisses (Escape key). */
4210
+ onClose?: () => void;
4211
+ /** Alert content — compose `<Alert.Title>`, `<Alert.Body>`, `<Alert.Actions>`. */
4212
+ children: React$1.ReactNode;
4213
+ /** Whether to render the tone icon in the title (default: true). */
4214
+ showIcon?: boolean;
4215
+ /** Override the default tone icon glyph. */
4216
+ icon?: string;
4217
+ /** Dialog width (default: passed through to ModalDialog, which snaps to content). */
4218
+ width?: number | string;
4219
+ }
4220
+ interface AlertTitleProps {
4221
+ children: React$1.ReactNode;
4222
+ }
4223
+ interface AlertBodyProps {
4224
+ children: React$1.ReactNode;
4225
+ }
4226
+ interface AlertActionsProps {
4227
+ children: React$1.ReactNode;
4228
+ }
4229
+ declare function AlertTitle({
4230
+ children
4231
+ }: AlertTitleProps): React$1.ReactElement;
4232
+ declare function AlertBody({
4233
+ children
4234
+ }: AlertBodyProps): React$1.ReactElement;
4235
+ declare function AlertActions({
4236
+ children
4237
+ }: AlertActionsProps): React$1.ReactElement;
4238
+ /**
4239
+ * Modal high-urgency alert — blocks the user's flow until dismissed.
4240
+ *
4241
+ * Uses ModalDialog under the hood for the double border, backdrop fade, and
4242
+ * layout conventions. Adds tone-aware border + title-icon styling so the
4243
+ * modal reads as the matching status (error / warning / success / info).
4244
+ */
4245
+ declare function AlertRoot({
4246
+ tone,
4247
+ open,
4248
+ onClose,
4249
+ children,
4250
+ showIcon,
4251
+ icon,
4252
+ width,
4253
+ ...boxProps
4254
+ }: AlertProps): React$1.ReactElement | null;
4255
+ /**
4256
+ * Alert — high-urgency modal dialog. Use `<Alert.Title>`, `<Alert.Body>`,
4257
+ * and `<Alert.Actions>` for structured content.
4258
+ */
4259
+ declare const Alert: typeof AlertRoot & {
4260
+ Title: typeof AlertTitle;
4261
+ Body: typeof AlertBody;
4262
+ Actions: typeof AlertActions;
4263
+ };
4264
+ //#endregion
4017
4265
  //#region packages/ag-react/src/ui/components/CommandPalette.d.ts
4018
4266
  interface CommandItem {
4019
4267
  /** Command display name */
@@ -4177,6 +4425,10 @@ declare function TabList({
4177
4425
  *
4178
4426
  * Renders the tab label with active/inactive styling. Active tab is bold
4179
4427
  * with `$primary` color; inactive tabs use `$muted`.
4428
+ *
4429
+ * Hover: a non-active hovered tab gets a subtle `$bg-muted` background to
4430
+ * signal interactivity. The active tab is already visually prominent — no
4431
+ * extra hover styling is applied to avoid double-styling.
4180
4432
  */
4181
4433
  declare function Tab({
4182
4434
  value,
@@ -5308,7 +5560,11 @@ interface StderrContextValue {
5308
5560
  declare const StderrContext: _$react.Context<StderrContextValue | null>;
5309
5561
  /**
5310
5562
  * Base events every runtime provides.
5311
- * Apps extend this to add custom events (e.g., BoardEvents adds "op").
5563
+ *
5564
+ * Retained for backwards compatibility (legacy `useRuntime<E>()` generic
5565
+ * slot). The canonical subscription surface is {@link ChainAppContextValue}
5566
+ * — input / paste / focus flow through the apply-chain plugin stores and
5567
+ * app-defined events ride on {@link ChainCustomEvents}.
5312
5568
  */
5313
5569
  interface BaseRuntimeEvents {
5314
5570
  /** Keyboard input: [parsedInput, keyMetadata] */
@@ -5319,52 +5575,114 @@ interface BaseRuntimeEvents {
5319
5575
  focus: [focused: boolean];
5320
5576
  }
5321
5577
  /**
5322
- * Extract handler function type from an event map entry.
5323
- */
5324
- type EventHandler$1<Args extends unknown[]> = (...args: Args) => void;
5325
- /**
5326
- * Typed bidirectional event bus + app lifecycle controls.
5327
- *
5328
- * Replaces EventsContext, InputContext, StdinContext, and AppContext with
5329
- * a single typed interface. Components never see stdin or raw mode.
5578
+ * Minimal runtime handle the trimmed RuntimeContextValue exposes only
5579
+ * app-lifecycle controls (`exit`, and the opt-in pause / resume pair
5580
+ * used by console-mode suspension). Input / paste / focus subscriptions
5581
+ * live on {@link ChainAppContextValue}; custom view ↔ runtime events
5582
+ * live on {@link ChainCustomEvents} (`chain.events.emit / on`).
5330
5583
  *
5331
- * Generic parameter E extends BaseRuntimeEvents all runtimes provide
5332
- * at least "input" and "paste" events. Apps can extend with custom events:
5333
- *
5334
- * ```tsx
5335
- * interface BoardEvents extends BaseRuntimeEvents {
5336
- * op: [BoardOp]
5337
- * }
5338
- * const rt = useRuntime<BoardEvents>()
5339
- * rt?.on("input", handler) // runtime → view
5340
- * rt?.emit("op", { type: "cursor_down" }) // view → runtime
5341
- * ```
5342
- *
5343
- * Present in interactive mode (run/render/createApp/test renderer).
5344
- * Absent (null) in static mode (renderStatic).
5584
+ * The generic parameter is retained for source compatibility with
5585
+ * callers of `useRuntime<LinkEvents>()`; it has no effect on the type
5586
+ * surface below.
5345
5587
  */
5346
- interface RuntimeContextValue<E extends BaseRuntimeEvents = BaseRuntimeEvents> {
5347
- /** Subscribe to a typed event. Returns cleanup function. */
5348
- on<K extends string & keyof E>(event: K, handler: EventHandler$1<E[K] extends unknown[] ? E[K] : never>): () => void;
5349
- /** Emit a typed event (view → runtime). */
5350
- emit<K extends string & keyof E>(event: K, ...args: E[K] extends unknown[] ? E[K] : never): void;
5588
+ interface RuntimeContextValue<_E extends BaseRuntimeEvents = BaseRuntimeEvents> {
5351
5589
  /** Exit the application with optional error. */
5352
5590
  exit: (error?: Error) => void;
5353
- /** Pause rendering output (for screen switching). */
5591
+ /** Pause rendering output (used by console suspend). */
5354
5592
  pause?: () => void;
5355
- /** Resume rendering after pause. */
5593
+ /** Resume rendering after a pause. Forces a full redraw. */
5356
5594
  resume?: () => void;
5357
5595
  }
5358
5596
  /**
5359
- * Context that provides the typed runtime event bus.
5597
+ * Context that provides the trimmed runtime handle.
5360
5598
  *
5361
- * When non-null: interactive mode — useInput works, components can subscribe
5362
- * to events via rt.on() and emit via rt.emit().
5599
+ * When non-null: interactive mode — `useExit()` works. Input / paste /
5600
+ * focus subscriptions use `ChainAppContext`.
5363
5601
  *
5364
- * When null: static mode — useInput throws (by design), use useRuntime()
5365
- * for components that need to work in both modes.
5602
+ * When null: static mode — `useExit()` throws. Hooks subscribe through
5603
+ * `ChainAppContext` when present, otherwise no-op.
5366
5604
  */
5367
5605
  declare const RuntimeContext: _$react.Context<RuntimeContextValue<BaseRuntimeEvents> | null>;
5606
+ /**
5607
+ * Minimal key shape forwarded to chain handlers. Kept structural (not
5608
+ * imported from @silvery/ag/keys) so this context stays dependency-free;
5609
+ * consumers narrow to `Key` at the call site.
5610
+ */
5611
+ interface ChainKey {
5612
+ ctrl?: boolean;
5613
+ shift?: boolean;
5614
+ meta?: boolean;
5615
+ super?: boolean;
5616
+ hyper?: boolean;
5617
+ alt?: boolean;
5618
+ eventType?: "press" | "repeat" | "release" | undefined;
5619
+ }
5620
+ /** Handler registered with the fallback useInput store. */
5621
+ type ChainInputHandler = (input: string, key: ChainKey) => void | "exit";
5622
+ /** Handler registered with the paste store. */
5623
+ type ChainPasteHandler = (text: string) => void;
5624
+ /** Handler registered with the terminal focus store. */
5625
+ type ChainFocusHandler = (focused: boolean) => void;
5626
+ /** Raw-key observer handler — fires for every input:key op (press/repeat/release/modifier-only). */
5627
+ type ChainRawKeyHandler = (input: string, key: ChainKey) => void;
5628
+ /** Handler registered with the custom-events store — payload is app-defined. */
5629
+ type ChainCustomEventHandler = (...args: unknown[]) => void;
5630
+ /** Input-fallback store slice exposed by withInputChain. */
5631
+ interface ChainInputStore {
5632
+ register(handler: ChainInputHandler, active?: boolean): () => void;
5633
+ setActive(handler: ChainInputHandler, active: boolean): void;
5634
+ }
5635
+ /** Raw-key observer slice — sees every key event before focus/useInput filters. */
5636
+ interface ChainRawKeyObserver {
5637
+ register(handler: ChainRawKeyHandler): () => void;
5638
+ }
5639
+ /** Paste store slice exposed by withPasteChain. */
5640
+ interface ChainPasteStore {
5641
+ register(handler: ChainPasteHandler): () => void;
5642
+ }
5643
+ /** Window focus slice exposed alongside the chain for createApp. */
5644
+ interface ChainFocusEvents {
5645
+ register(handler: ChainFocusHandler): () => void;
5646
+ }
5647
+ /**
5648
+ * Custom-events slice — app-defined view ↔ runtime events (e.g.
5649
+ * `link:open` fired by `<Link>` and consumed by km-tui's
5650
+ * `useLinkOpen`). Channels are arbitrary strings chosen by the app;
5651
+ * payloads are untyped at the bus layer.
5652
+ */
5653
+ interface ChainCustomEvents {
5654
+ on(channel: string, handler: ChainCustomEventHandler): () => void;
5655
+ emit(channel: string, ...args: unknown[]): void;
5656
+ }
5657
+ /**
5658
+ * Context that exposes the apply-chain plugin stores.
5659
+ *
5660
+ * Provided by `createApp()` (and `run()` eventually) when an apply-chain
5661
+ * runtime is present. Hooks prefer this context; they fall back to
5662
+ * {@link RuntimeContext} when the chain is absent (e.g. children inside
5663
+ * an `InputBoundary`, which provides its own isolated RuntimeContext but
5664
+ * no chain).
5665
+ */
5666
+ interface ChainAppContextValue {
5667
+ readonly input: ChainInputStore;
5668
+ readonly paste: ChainPasteStore;
5669
+ readonly focusEvents: ChainFocusEvents;
5670
+ /**
5671
+ * Raw-key observer — sees every `input:key` op (press/repeat/release/
5672
+ * modifier-only), unfiltered by focus or useInput. Used by hooks like
5673
+ * `useModifierKeys` that need to track sub-press state regardless of
5674
+ * whether a focused element consumed the key.
5675
+ */
5676
+ readonly rawKeys: ChainRawKeyObserver;
5677
+ /**
5678
+ * Custom event bus — replaces the legacy `RuntimeContextValue.on /
5679
+ * emit` surface for app-defined channels. Consumers subscribe via
5680
+ * `events.on("channel", handler)` and producers fire via
5681
+ * `events.emit("channel", …payload)`.
5682
+ */
5683
+ readonly events: ChainCustomEvents;
5684
+ }
5685
+ declare const ChainAppContext: _$react.Context<ChainAppContextValue | null>;
5368
5686
  /**
5369
5687
  * Cache backend type — determines where ListView stores cached items.
5370
5688
  * - "terminal": Write to stdout as native scrollback (inline mode)
@@ -5434,8 +5752,12 @@ declare let lastModifierState: Readonly<ModifierState>;
5434
5752
  /**
5435
5753
  * Read the current modifier state imperatively (outside React).
5436
5754
  * For use in event handlers, TEA update functions, etc.
5755
+ *
5756
+ * Accepts a {@link ChainAppContextValue} — the canonical subscription
5757
+ * surface after the TEA Phase 2 wiring. Returns {@link INITIAL} when the
5758
+ * chain has no cached modifier store yet.
5437
5759
  */
5438
- declare function getModifierState(rt: RuntimeContextValue): ModifierState;
5760
+ declare function getModifierState(chain: ChainAppContextValue | null | undefined): ModifierState;
5439
5761
  /**
5440
5762
  * Track which modifier keys are currently held.
5441
5763
  *
@@ -6337,28 +6659,55 @@ declare function useSearchOptional(): SearchContextValue | null;
6337
6659
  declare function useRuntime<E extends BaseRuntimeEvents = BaseRuntimeEvents>(): RuntimeContextValue<E> | null;
6338
6660
  //#endregion
6339
6661
  //#region packages/ag-react/src/ThemeProvider.d.ts
6340
- /** Partial token bag — merged over the base theme. */
6341
- type ThemeTokens$1 = Partial<Theme> & Record<string, unknown>;
6662
+ /** Partial token bag — merged over the base theme. Accepts any Theme key, custom $tokens via app-defined keys, or a full Theme. */
6663
+ type ThemeTokens = Partial<Theme> | (Partial<Theme> & Record<string, string | string[] | undefined>) | Theme;
6342
6664
  interface ThemeProviderProps {
6343
6665
  /**
6344
6666
  * v2 API — a partial or full token bag. Merged over the inherited theme
6345
6667
  * (or default-dark/light if none). App-specific tokens (`"priority-p0"`,
6346
6668
  * `"my-app-brand"`) live in the same bag as standard tokens.
6347
6669
  */
6348
- tokens?: ThemeTokens$1;
6670
+ tokens?: ThemeTokens;
6349
6671
  /**
6350
6672
  * Legacy API — a full, pre-derived Theme. Equivalent to passing the
6351
6673
  * whole object as `tokens`. Prefer `tokens` for new code.
6352
6674
  */
6353
6675
  theme?: Theme;
6676
+ /**
6677
+ * Optional scheme detection metadata. When provided, makes
6678
+ * `useActiveScheme()` return this object for all descendants. Populated
6679
+ * automatically by `runThemed()`. Omitting it leaves any parent
6680
+ * ActiveSchemeContext unchanged (may be null).
6681
+ */
6682
+ scheme?: ActiveScheme;
6354
6683
  children: React$1.ReactNode;
6355
6684
  }
6356
6685
  declare function ThemeProvider({
6357
6686
  tokens,
6358
6687
  theme,
6688
+ scheme,
6359
6689
  children
6360
6690
  }: ThemeProviderProps): React$1.ReactElement;
6361
6691
  //#endregion
6692
+ //#region packages/ag-react/src/ThemeContext.d.ts
6693
+ /**
6694
+ * Context that carries scheme detection metadata (name, source, confidence).
6695
+ *
6696
+ * Separate from ThemeContext because scheme metadata is orthogonal to the
6697
+ * theme token bag. Populated by `<ThemeProvider scheme={...}>` when the
6698
+ * caller passes detection provenance (e.g. from `runThemed`). Null when
6699
+ * no scheme metadata was injected.
6700
+ *
6701
+ * @internal Exported for ThemeProvider.
6702
+ */
6703
+ declare const ActiveSchemeContext: _$react.Context<ActiveScheme | null>;
6704
+ /**
6705
+ * Read the current theme from context.
6706
+ *
6707
+ * Returns `defaultDarkTheme` when no `ThemeProvider` is present.
6708
+ */
6709
+ declare function useTheme(): Theme;
6710
+ //#endregion
6362
6711
  //#region packages/ag-term/src/hit-registry-core.d.ts
6363
6712
  /**
6364
6713
  * Hit Registry Core — Pure logic for mouse hit testing.
@@ -6905,7 +7254,7 @@ type PrintOptions = typeof PRINT_OPTIONS_LAYOUT | typeof PRINT_OPTIONS_STYLE | t
6905
7254
  type Unit = typeof UNIT_UNDEFINED | typeof UNIT_POINT | typeof UNIT_PERCENT | typeof UNIT_AUTO;
6906
7255
  type Wrap = typeof WRAP_NO_WRAP | typeof WRAP_WRAP | typeof WRAP_WRAP_REVERSE;
6907
7256
  //#endregion
6908
- //#region ../../node_modules/.bun/yoga-wasm-web@0.3.3/node_modules/yoga-wasm-web/dist/wrapAsm.d.ts
7257
+ //#region node_modules/.bun/yoga-wasm-web@0.3.3/node_modules/yoga-wasm-web/dist/wrapAsm.d.ts
6909
7258
  type Layout = {
6910
7259
  left: number;
6911
7260
  right: number;
@@ -9601,7 +9950,7 @@ interface InputBoundaryProps {
9601
9950
  *
9602
9951
  * When `active` is true:
9603
9952
  * - Registers a consuming layer in the parent's input layer stack
9604
- * - Forwards all input into the isolated child scope
9953
+ * - Dispatches every forwarded key as an `input:key` op on the child BaseApp
9605
9954
  * - Parent useInputLayer handlers do NOT fire (consumed by boundary)
9606
9955
  * - Parent useInput handlers still fire (useInput bypasses the layer stack)
9607
9956
  *
@@ -9610,7 +9959,7 @@ interface InputBoundaryProps {
9610
9959
  * - Parent input flows normally
9611
9960
  *
9612
9961
  * The `onEscape` callback (or custom `exitKey`) is intercepted BEFORE
9613
- * forwarding, allowing the parent to deactivate the boundary.
9962
+ * dispatch, allowing the parent to deactivate the boundary.
9614
9963
  */
9615
9964
  declare function InputBoundary({
9616
9965
  active,
@@ -10161,7 +10510,7 @@ declare function diff(prev: Buffer$1 | null, next: Buffer$1, mode?: DiffMode, sc
10161
10510
  declare function render(buffer: Buffer$1, mode?: DiffMode): string;
10162
10511
  //#endregion
10163
10512
  //#region packages/ag-term/src/runtime/create-buffer.d.ts
10164
- declare function createBuffer(termBuffer: TerminalBuffer, nodes: AgNode): Buffer$1;
10513
+ declare function createBuffer(termBuffer: TerminalBuffer, nodes: AgNode, overlay?: string): Buffer$1;
10165
10514
  //#endregion
10166
10515
  //#region packages/ag-term/src/runtime/create-runtime.d.ts
10167
10516
  /**
@@ -10273,6 +10622,29 @@ interface RunOptions {
10273
10622
  * Default: auto-detected via detectTerminalCaps()
10274
10623
  */
10275
10624
  caps?: TerminalCaps;
10625
+ /**
10626
+ * Force the color tier end-to-end, bypassing auto-detection.
10627
+ *
10628
+ * When set, the pipeline's `caps.colorLevel` is overridden for the full
10629
+ * run (affects inline hex quantization, mono attribute fallback, SGR
10630
+ * encoding, backdrop blend targets), AND the active Theme is pre-quantized
10631
+ * via {@link pickColorLevel} so token hex values match.
10632
+ *
10633
+ * Useful for:
10634
+ * - bypassing under-reporting terminals (force `"truecolor"`),
10635
+ * - testing low-end degradation (force `"ansi16"` or `"mono"`),
10636
+ * - accessibility / CI output (force `"mono"`).
10637
+ *
10638
+ * Priority (highest wins): `NO_COLOR` env → `FORCE_COLOR` env →
10639
+ * `colorLevel` → auto-detect.
10640
+ *
10641
+ * Tiers:
10642
+ * - `"mono"` — monochrome (attribute fallback: bold/dim/inverse).
10643
+ * - `"ansi16"` — 16-slot palette (SGR 30-37, 90-97).
10644
+ * - `"256"` — xterm-256 palette.
10645
+ * - `"truecolor"` — 24-bit RGB (no quantization).
10646
+ */
10647
+ colorLevel?: ColorTier;
10276
10648
  /**
10277
10649
  * Handle Ctrl+Z by suspending the process. Default: true
10278
10650
  */
@@ -10320,15 +10692,46 @@ interface RunHandle {
10320
10692
  declare function run(element: ReactElement, term: Term, termOptions?: Partial<RunOptions>): Promise<RunHandle>;
10321
10693
  declare function run(element: ReactElement, options?: RunOptions): Promise<RunHandle>;
10322
10694
  //#endregion
10323
- //#region packages/ag-term/src/runtime/themed.d.ts
10324
- interface RunThemedOptions extends DetectSchemeOptions {
10695
+ //#region packages/ag-term/src/runtime/wrap-with-themed-provider.d.ts
10696
+ interface ThemedProviderOptions extends DetectSchemeOptions {
10325
10697
  /**
10326
- * Additional token overrides applied after detection. Merged over the
10327
- * detected theme via `<ThemeProvider tokens={...}>`. Use for app brand
10328
- * colors (`{ brand: "#5B8DEF" }`) or app-specific custom tokens
10698
+ * Additional token overrides applied after detection merged over the
10699
+ * detected theme via an inner `<ThemeProvider tokens={...}>`. Use for
10700
+ * app brand colors (`{ brand: "#5B8DEF" }`) or app-specific custom tokens
10329
10701
  * (`{ "priority-p0": "#FF5555" }`).
10330
10702
  */
10331
10703
  tokens?: ThemeTokens;
10704
+ }
10705
+ interface WrapWithThemedProviderResult {
10706
+ /** The element wrapped in ThemeProvider (pass to run() or withReact()). */
10707
+ element: ReactElement;
10708
+ /** Full detection provenance — scheme, theme, source, confidence, slotSources. */
10709
+ result: DetectSchemeResult;
10710
+ }
10711
+ /**
10712
+ * Detect the terminal's color scheme, derive a theme, and wrap `element`
10713
+ * in `<ThemeProvider>`.
10714
+ *
10715
+ * Builds an `ActiveScheme` metadata object so `useActiveScheme()` returns
10716
+ * detection provenance to all descendants. Token overrides are applied as
10717
+ * an inner `<ThemeProvider tokens={...}>` so they merge over the detected
10718
+ * theme rather than replacing it.
10719
+ *
10720
+ * Detection cascade (full — see `detectScheme`):
10721
+ * 1. `opts.override` — explicit ColorScheme
10722
+ * 2. `SILVERY_COLOR` env var
10723
+ * 3. OSC probe (OSC 10/11/4/12/17/19)
10724
+ * 4. Fingerprint match against `opts.catalog`
10725
+ * 5. Fallback to defaultDarkScheme / defaultLightScheme
10726
+ *
10727
+ * @param element - Your root React element (the app)
10728
+ * @param opts - Detection + token override options
10729
+ * @returns Wrapped element + full detection result
10730
+ */
10731
+ declare function wrapWithThemedProvider(element: ReactElement, opts?: ThemedProviderOptions): Promise<WrapWithThemedProviderResult>;
10732
+ //#endregion
10733
+ //#region packages/ag-term/src/runtime/themed.d.ts
10734
+ interface RunThemedOptions extends ThemedProviderOptions {
10332
10735
  /** Forwarded to `run()` — terminal + rendering options. */
10333
10736
  run?: RunOptions;
10334
10737
  }
@@ -10819,5 +11222,12 @@ interface ReactiveThemeProviderProps {
10819
11222
  */
10820
11223
  declare function ReactiveThemeProvider(props: ReactiveThemeProviderProps): React$1.ReactElement;
10821
11224
  //#endregion
10822
- export { take as $, findSpatialTarget as $a, TextInputProps as $c, CursorStore as $i, PatchedConsole as $l, queryCursorFromStdio as $n, Skeleton as $o, FlexilyZeroLayoutEngine as $r, UL as $s, applyTextOp as $t, KeyEvent as $u, runThemed as A, setWindowTitle as Aa, ModalDialogProps as Ac, useFindState as Ai, isWideGrapheme as Al, FilterOptions as An, SilveryErrorBoundary as Ao, measureElement as Ar, FormField as As, WithKeybindingsOptions as At, getTabOrder$1 as Au, LayoutOptions as B, CapabilityRegistryContext as Ba, UseTextAreaOptions as Bc, PasteProvider as Bi, sliceByWidthFromEnd as Bl, queryTextAreaSize as Bn, scrollDown as Bo, TextMeasurer as Br, H1 as Bs, WithCommandsOptions as Bt, ListViewCacheConfig as Bu, TerminalLifecycleOptions as C, reportDirectory as Ca, PickerList as Cc, keyToName as Cd, SearchContextValue as Ci, graphemeWidth as Cl, createWheelEvent as Cn, useBoxMetrics as Co, parseBracketedPaste as Cr, ToastItem as Cs, useInputLayer as Ct, ConsoleEntry as Cu, restoreTerminalState as D, setCursorStyle as Da, Backdrop as Dc, parseKeypress as Dd, useSearchOptional as Di, isCJK as Dl, App as Dn, useBoxRect as Do, AriaState as Dr, UseToastResult as Ds, withDiagnostics as Dt, createLeaf as Du, performSuspend as E, resetWindowTitle as Ea, PickerDialogProps as Ec, parseKey as Ed, useSearch as Ei, hasZeroWidthCharacters as El, processMouseEvent as En, useAgNode as Eo, requestClipboard as Er, ToastVariant as Es, VirtualTerminal as Et, LayoutNode as Eu, createRuntime as F, useModifierKeys as Fa, EditContextDisplayProps as Fc, VirtualizerConfig as Fi, parseAnsiText as Fl, CanvasAdapterConfig as Fn, Transform as Fo, BorderChars as Fr, HeadingProps as Fs, Command as Ft, HorizontalVirtualList as Fu, concat as G, TermContext as Ga, countVisualLines as Gc, SemanticCopyProvider as Gi, truncateText as Gl, enableFocusReporting as Gn, GridCell as Go, setOutputCaps as Gr, LI as Gs, activeEditContextRef as Gt, BoxHandle as Gu, layout as H, RuntimeContext as Ha, clampScroll as Hc, ClipboardData as Hi, splitGraphemes as Hl, queryMode as Hn, setScrollRegion as Ho, OutputCaps as Hr, H3 as Hs, EditTarget as Ht, ListViewProps as Hu, createBuffer as I, BaseRuntimeEvents as Ia, TextArea as Ic, VirtualizerResult as Ii, runWithMeasurer as Il, CanvasRenderBuffer as In, TransformProps as Io, RenderBuffer as Ir, Blockquote as Is, CommandDef as It, HorizontalVirtualListHandle as Iu, filterMap as J, UseFocusableResult as Ja, cursorToRowCol as Jc, getInternalClipboard as Ji, writeTextToBuffer as Jl, queryDeviceAttributes as Jn, PositionRegistry as Jo, RenderMode as Jr, OL as Js, EditContextLike as Jt, BlurEvent as Ju, debounce as K, useTerminalFocused as Ka, cursorMoveDown as Kc, createCopyProvider as Ki, wrapText as Kl, parseFocusEvent as Kn, GridCellProps as Ko, Instance as Kr, Lead as Ks, activeEditTargetRef as Kt, BoxProps as Ku, DiffMode as L, CacheBackend as La, TextAreaHandle as Lc, useVirtualizer as Li, setTextEmojiWide as Ll, createCanvasAdapter as Ln, ScrollRegionConfig as Lo, RenderStyle as Lr, Code as Ls, CommandInfo as Lt, HorizontalVirtualListProps as Lu, run as M, UseModifierKeysOptions as Ma, CursorLine as Mc, useInteractiveState as Mi, measureText as Ml, DOMRenderBuffer as Mn, Static as Mo, renderString as Mr, FormProps as Ms, AppState as Mt, resizeSplit as Mu, PasteCallback as N, getModifierState as Na, CursorLineProps as Nc, ListItemContext as Ni, normalizeText as Nl, createDOMAdapter as Nn, Spacer as No, renderStringSync as Nr, Heading as Ns, AppWithCommands as Nt, splitPane as Nu, resumeTerminalState as O, setMouseCursorShape as Oa, BackdropProps as Oc, useDragState as Oi, isLikelyEmoji as Ol, BoundTerm as On, useScreenRect as Oo, renderScreenReaderOutput as Or, useToast as Os, ExtendedKeybindingDef as Ot, findAdjacentPane as Ou, usePasteCallback as P, lastModifierState as Pa, EditContextDisplay as Pc, useListItem as Pi, padText as Pl, injectDOMStyles as Pn, Newline as Po, PipelineConfig as Pr, HeadingLevel as Ps, Cmd as Pt, swapPanes as Pu, merge as Q, findFocusableAncestor as Qa, TextInputHandle as Qc, CursorState as Qi, PatchConsoleOptions as Ql, queryTertiaryDA as Qn, usePositionRegistry as Qo, renderSync as Qr, TypographyProps as Qs, TextOp as Qt, FocusEvent as Qu, diff as R, CacheBackendContext as Ra, TextAreaProps as Rc, usePasteEvents as Ri, setTextSizingEnabled as Rl, queryCellSize as Rn, moveCursor$1 as Ro, TextMeasureResult as Rr, CodeBlock as Rs, CommandRegistryLike as Rt, ListItemMeta as Ru, CTRL_Z as S, queryKittyKeyboard as Sa, ToggleProps as Sc, keyToModifiers as Sd, useRuntime as Si, graphemeCount as Sl, createMouseEventProcessor as Sn, BoxMetrics as So, enableBracketedPaste as Sr, ToastData as Ss, InputLayerProviderProps as St, RuntimeOptions as Su, captureTerminalState as T, resetMouseCursorShape as Ta, PickerDialog as Tc, parseHotkey as Td, Searchable as Ti, hasWideCharacters as Tl, hitTest as Tn, AgNodeHandle as To, parseClipboardResponse as Tr, ToastOptions as Ts, DiagnosticOptions as Tt, SplitViewProps as Tu, layoutSync as U, RuntimeContextValue as Ua, useTextArea as Uc, CopyEvent as Ui, stripAnsi as Ul, queryModes as Un, supportsScrollRegions as Uo, OutputPhaseFn as Ur, HR as Us, UseEditContextOptions as Ut, ListViewSearchConfig as Uu, ensureLayoutEngine as V, FocusManagerContext as Va, UseTextAreaResult as Vc, usePaste as Vi, sliceByWidthRange as Vl, DecMode as Vn, scrollUp as Vo, PipelineContext as Vr, H2 as Vs, withCommands as Vt, ListViewHandle as Vu, batch as W, StderrContext as Wa, WrappedLine as Wc, PasteEvent as Wi, truncateAnsi as Wl, disableFocusReporting as Wn, calcEdgeBasedScrollOffset as Wo, createOutputPhase as Wr, Kbd as Ws, UseEditContextResult as Wt, Box as Wu, fromArrayWithDelay as X, findByTestID as Xa, rowColToCursor as Xc, CursorPosition as Xi, term as Xl, querySecondaryDA as Xn, ScrollRect as Xo, render$1 as Xr, Small as Xs, TermEditContextOptions as Xt, Event$1 as Xu, fromArray as Y, useFocusable as Ya, getWrappedLines as Yc, CursorAccessors as Yi, writeTextTruncated as Yl, queryPrimaryDA as Yn, PositionRegistryProvider as Yo, RenderOptions as Yr, P$1 as Ys, TermEditContext as Yt, CustomEvent as Yu, map as Z, findEnclosingScope as Za, TextInput as Zc, CursorProvider as Zi, ConsoleStats as Zl, queryTerminalVersion as Zn, createPositionRegistry as Zo, renderStatic as Zr, Strong as Zs, createTermEditContext as Zt, EventSource as Zu, StoreContext as _, enableKittyKeyboard as _a, UseReadlineResult as _c, InputHandler as _d, HitTarget as _i, createWidthMeasurer as _l, MouseEventProcessorState as _n, useExit as _o, OSC133 as _r, CommandItem as _s, InputLayer as _t, Provider as _u, useColorScheme as a, useConsole as aa, Table as ac, SilveryMouseEvent as ad, createInputEvents as ai, Link as al, enableInspector as an, FocusOrigin as ao, RenderTerm as ar, TabListProps as as, createStore as at, TermProvider as au, useAppShallow as b, notifyITerm2 as ba, ButtonProps as bc, ParsedKeypress as bd, ThemeProvider as bi, ensureEmojiPresentation as bl, createDoubleClickState as bn, UseInputOptions as bo, PASTE_START as br, ToastContainer as bs, InputLayerHandler as bt, RenderTarget as bu, createSecondTick as c, useTerm as ca, SelectListProps as cc, MeasureFunc as cd, LayoutEngine as ci, TextHandle as cl, isInspectorEnabled as cn, UseFocusOptions as co, createPipeline as cr, TabProps as cs, withFocusManagement as ct, createTermProvider as cu, AppHandle as d, BEL as da, ProgressBarProps as dc, SilveryFocusEvent as dd, HitRegistryContext as di, FillProps as dl, isDevToolsConnected as dn, UseFocusManagerResult as do, TermtestOptions as dr, Breadcrumb as ds, fx as dt, parseMouseSequence as du, createCursorStore as ea, Divider as ec, MouseEvent as ed, createFlexilyZeroEngine as ei, Screen as el, invertTextOp as en, getExplicitFocusLink as eo, queryCursorPosition as er, SkeletonProps as es, takeUntil as et, patchConsole as eu, AppRunOptions as f, CursorShape as fa, Spinner as fc, SilveryKeyEvent as fd, useHitRegion as fi, Measurer as fl, NonTTYOptions as fn, useFocusManager as fo, TermtestSection as fr, BreadcrumbItem as fs, EffectLike as ft, Buffer$1 as fu, EventHandlers as g, disableMouse as ga, UseReadlineOptions as gc, dispatchKeyEvent as gd, HitRegistry as gi, createMeasurer as gl, MouseEventProcessorOptions as gn, useStdout as go, detectKittySupport as gr, TreeViewProps as gs, InputBoundaryProps as gt, NamespacedEvent as gu, EventHandlerContext as h, disableKittyKeyboard as ha, ReadlineState as hc, dispatchFocusEvent as hd, HitRegion as hi, constrainText as hl, resolveNonTTYMode as hn, UseStdoutResult as ho, detectKittyFromStdio as hr, TreeView as hs, InputBoundary as ht, EventData as hu, ReactiveThemeProvider as i, useCursor as ia, Column as ic, MouseEventProps as id, TermDef as ii, ErrorBoundaryProps as il, disableInspector as in, FocusManagerOptions as io, textSized as ir, TabList as is, StoreConfig as it, TermEvents as iu, RunOptions as j, ModifierState as ja, formatTitleWithHotkey as jc, useSelection as ji, isZeroWidthGrapheme as jl, DOMAdapterConfig as jn, SilveryErrorBoundaryProps as jo, RenderStringOptions as jr, FormFieldProps as js, withKeybindings as jt, removePane as ju, RunThemedOptions as k, setWindowAndIconTitle as ka, ModalDialog as kc, useCopyModeState as ki, isTextSizingEnabled as kl, AutoLocator as kn, useScrollRect as ko, MeasureElementOutput as kr, Form as ks, KeybindingContext as kt, getPaneIds as ku, createTick as l, useMouseCursor as la, SelectOption as lc, MeasureMode$1 as ld, isLayoutEngineInitialized as li, TextProps as ll, IncrementalRenderMismatchError as ln, UseFocusResult as lo, withMeasurer as lr, Tabs as ls, useTea as lt, ParsedMouse as lu, EventHandler as m, MouseCursorShape as ma, SearchBar as mc, createKeyEvent as md, useHitRegistry as mi, WidthMeasurer as ml, isTTY as mn, useStderr as mo, KittyDetectResult as mr, TreeNode as ms, collect as mt, Event as mu, useId$1 as n, resetCursorState as na, Badge as nc, ResizeEvent as nd, createYogaEngine as ni, Console$1 as nl, InspectorOptions as nn, FocusChangeCallback as no, isPrivateUseArea as nr, TooltipProps as ns, zip as nt, Term as nu, createAdaptiveTick as o, useWindowSize as oa, TableProps as oc, SilveryWheelEvent as od, isTerm as oi, LinkProps as ol, inspectFrame as on, FocusSnapshot as oo, withRender as or, TabPanel as os, defaultInit as ot, TermProviderOptions as ou, AppRunner as p, KittyFlags as pa, SpinnerProps as pc, createFocusEvent as pd, useHitRegionCallback as pi, StyledSegment as pl, ResolvedNonTTYMode as pn, UseStderrResult as po, runTermtest as pr, BreadcrumbProps as ps, TeaResult as pt, Dims as pu, filter as q, useFocusWithin as qa, cursorMoveUp as qc, createPasteEvent as qi, writeLinesToBuffer as ql, DeviceAttributes as qn, useGridPosition as qo, NonTTYMode$1 as qr, Muted as qs, useEditContext as qt, AgNode as qu, useTransition as r, subscribeCursor as ra, BadgeProps as rc, SignalEvent as rd, initYogaEngine as ri, ErrorBoundary as rl, autoEnableInspector as rn, FocusManager as ro, isTextSizingLikelySupported as rr, Tab as rs, StoreApi as rt, createTerm as ru, createFrameTick as s, shallow as sa, SelectList as sc, LayoutNode$1 as sd, LayoutConstants as si, Text as sl, inspectTree as sn, createFocusManager as so, MeasuredTerm as sr, TabPanelProps as ss, silveryUpdate as st, TermState as su, useDeferredValue as t, getCursorState as ta, DividerProps as tc, Rect as td, YogaLayoutEngine as ti, ScreenProps as tl, mergeTextOps as tn, getTabOrder as to, detectTextSizingSupport as tr, Tooltip as ts, throttle as tt, StyleChain as tu, AppDefinition as u, ANSI as ua, ProgressBar as uc, FocusEventProps as ud, setLayoutEngine as ui, Fill as ul, connectDevTools as un, useFocus as uo, TERMTEST_SECTIONS as ur, TabsProps as us, TimerEffect as ut, isMouseSequence as uu, createApp as v, enableMouse as va, useReadline as vc, Key as vd, Z_INDEX as vi, displayWidth as vl, checkDoubleClick as vn, UseAppResult as vo, BracketedPasteResult as vr, CommandPalette as vs, InputLayerContext as vt, ProviderEvent as vu, TerminalState as w, resetCursorStyle as wa, PickerListProps as wc, matchHotkey as wd, SearchProvider as wi, hasAnsi as wl, dispatchMouseEvent as wn, useSignal as wo, copyToClipboard as wr, ToastItemProps as ws, useInputLayerContext as wt, SplitView as wu, CTRL_C as x, notifyKitty as xa, Toggle as xc, emptyKey as xd, ThemeProviderProps as xi, getFirstCodePoint as xl, createMouseEvent as xn, useInput as xo, disableBracketedPaste as xr, ToastContainerProps as xs, InputLayerProvider as xt, Runtime as xu, useApp as y, notify as ya, Button as yc, ParsedHotkey as yd, resetHitRegionIdCounter as yi, displayWidthAnsi as yl, computeEnterLeave as yn, useApp$1 as yo, PASTE_END as yr, CommandPaletteProps as ys, InputLayerContextValue as yt, ProviderEventKey as yu, render as z, CapabilityLookup as za, TextAreaSelection as zc, PasteHandler as zi, sliceByWidth as zl, queryTextAreaPixels as zn, resetScrollRegion as zo, TextMeasureStyle as zr, Em as zs, KeybindingDef as zt, ListView as zu };
10823
- //# sourceMappingURL=index-Bh3U1K09.d.mts.map
11225
+ //#region packages/ag-react/src/hooks/useActiveScheme.d.ts
11226
+ /**
11227
+ * Hook that returns the active scheme detection metadata, or `null` if no
11228
+ * scheme metadata was injected by an ancestor `ThemeProvider`.
11229
+ */
11230
+ declare function useActiveScheme(): ActiveScheme | null;
11231
+ //#endregion
11232
+ export { fromArray as $, ChainInputStore as $a, toneFillTokens as $c, Key as $d, createCopyProvider as $i, displayWidth as $l, queryPrimaryDA as $n, Transform as $o, RenderOptions as $r, ToastVariant as $s, TermEditContext as $t, ProviderEvent as $u, RunThemedOptions as A, reportDirectory as Aa, BadgeProps as Ac, CustomEvent as Ad, SearchContextValue as Ai, getWrappedLines as Al, processMouseEvent as An, useFocusManager as Ao, requestClipboard as Ar, BreadcrumbItem as As, VirtualTerminal as At, writeTextTruncated as Au, createBuffer as B, getModifierState as Ba, SpinnerProps as Bc, SilveryMouseEvent as Bd, ListItemContext as Bi, Link as Bl, CanvasRenderBuffer as Bn, BoxMetrics as Bo, RenderBuffer as Br, AlertBodyProps as Bs, CommandDef as Bt, TermProvider as Bu, CTRL_Z as C, disableMouse as Ca, Small as Cc, ListViewProps as Cd, resetHitRegionIdCounter as Ci, clampScroll as Cl, computeEnterLeave as Cn, FocusOrigin as Co, PASTE_END as Cr, TabListProps as Cs, InputLayerContextValue as Ct, splitGraphemes as Cu, performSuspend as D, notifyITerm2 as Da, Divider as Dc, BoxProps as Dd, ThemeProviderProps as Di, cursorMoveDown as Dl, createWheelEvent as Dn, UseFocusResult as Do, parseBracketedPaste as Dr, Tabs as Ds, useInputLayer as Dt, wrapText as Du, captureTerminalState as E, notify as Ea, UL as Ec, BoxHandle as Ed, ThemeProvider as Ei, countVisualLines as El, createMouseEventProcessor as En, UseFocusOptions as Eo, enableBracketedPaste as Er, TabProps as Es, InputLayerProviderProps as Et, truncateText as Eu, RunOptions as F, setMouseCursorShape as Fa, SelectListProps as Fc, MouseEvent as Fd, useDragState as Fi, Screen as Fl, DOMAdapterConfig as Fn, useExit as Fo, RenderStringOptions as Fr, CommandItem as Fs, withKeybindings as Ft, patchConsole as Fu, ensureLayoutEngine as G, CacheBackendContext as Ga, useReadline as Gc, FocusEventProps as Gd, usePasteEvents as Gi, Fill as Gl, DecMode as Gn, useBoxRect as Go, PipelineContext as Gr, InlineAlert as Gs, withCommands as Gt, isMouseSequence as Gu, diff as H, useModifierKeys as Ha, ReadlineState as Hc, LayoutNode$1 as Hd, VirtualizerConfig as Hi, Text as Hl, queryCellSize as Hn, useSignal as Ho, TextMeasureResult as Hr, AlertTitleProps as Hs, CommandRegistryLike as Ht, TermState as Hu, run as I, setWindowAndIconTitle as Ia, SelectOption as Ic, Rect as Id, useCopyModeState as Ii, ScreenProps as Il, DOMRenderBuffer as In, UseAppResult as Io, renderString as Ir, CommandPalette as Is, AppState as It, StyleChain as Iu, batch as J, ChainAppContext as Ja, TONE_ICONS as Jc, createFocusEvent as Jd, usePaste as Ji, StyledSegment as Jl, disableFocusReporting as Jn, SilveryErrorBoundary as Jo, createOutputPhase as Jr, ToastContainerProps as Js, UseEditContextResult as Jt, Dims as Ju, layout as K, CapabilityLookup as Ka, Button as Kc, SilveryFocusEvent as Kd, PasteHandler as Ki, FillProps as Kl, queryMode as Kn, useScreenRect as Ko, OutputCaps as Kr, InlineAlertProps as Ks, EditTarget as Kt, parseMouseSequence as Ku, PasteCallback as L, setWindowTitle as La, ProgressBar as Lc, ResizeEvent as Ld, useFindState as Li, Console$1 as Ll, createDOMAdapter as Ln, useApp$1 as Lo, renderStringSync as Lr, CommandPaletteProps as Ls, AppWithCommands as Lt, Term as Lu, ThemedProviderOptions as M, resetMouseCursorShape as Ma, Table as Mc, EventSource as Md, Searchable as Mi, TextInput as Ml, BoundTerm as Mn, useStderr as Mo, renderScreenReaderOutput as Mr, TreeNode as Ms, ExtendedKeybindingDef as Mt, ConsoleStats as Mu, WrapWithThemedProviderResult as N, resetWindowTitle as Na, TableProps as Nc, FocusEvent as Nd, useSearch as Ni, TextInputHandle as Nl, AutoLocator as Nn, UseStdoutResult as No, MeasureElementOutput as Nr, TreeView as Ns, KeybindingContext as Nt, PatchConsoleOptions as Nu, restoreTerminalState as O, notifyKitty as Oa, DividerProps as Oc, AgNode as Od, ThemeTokens as Oi, cursorMoveUp as Ol, dispatchMouseEvent as On, useFocus as Oo, copyToClipboard as Or, TabsProps as Os, useInputLayerContext as Ot, writeLinesToBuffer as Ou, wrapWithThemedProvider as P, setCursorStyle as Pa, SelectList as Pc, KeyEvent as Pd, useSearchOptional as Pi, TextInputProps as Pl, FilterOptions as Pn, useStdout as Po, measureElement as Pr, TreeViewProps as Ps, WithKeybindingsOptions as Pt, PatchedConsole as Pu, filterMap as Q, ChainInputHandler as Qa, toneFgToken as Qc, InputHandler as Qd, SemanticCopyProvider as Qi, createWidthMeasurer as Ql, queryDeviceAttributes as Qn, Newline as Qo, RenderMode as Qr, ToastOptions as Qs, EditContextLike as Qt, Provider as Qu, usePasteCallback as R, ModifierState as Ra, ProgressBarProps as Rc, SignalEvent as Rd, useSelection as Ri, ErrorBoundary as Rl, injectDOMStyles as Rn, UseInputOptions as Ro, PipelineConfig as Rr, Alert as Rs, Cmd as Rt, createTerm as Ru, CTRL_C as S, disableKittyKeyboard as Sa, P$1 as Sc, ListViewHandle as Sd, Z_INDEX as Si, UseTextAreaResult as Sl, checkDoubleClick as Sn, FocusManagerOptions as So, BracketedPasteResult as Sr, TabList as Ss, InputLayerContext as St, sliceByWidthRange as Su, TerminalState as T, enableMouse as Ta, TypographyProps as Tc, Box as Td, useTheme as Ti, WrappedLine as Tl, createMouseEvent as Tn, createFocusManager as To, disableBracketedPaste as Tr, TabPanelProps as Ts, InputLayerProvider as Tt, truncateAnsi as Tu, render as U, BaseRuntimeEvents as Ua, UseReadlineOptions as Uc, MeasureFunc as Ud, VirtualizerResult as Ui, TextHandle as Ul, queryTextAreaPixels as Un, AgNodeHandle as Uo, TextMeasureStyle as Ur, Banner as Us, KeybindingDef as Ut, createTermProvider as Uu, DiffMode as V, lastModifierState as Va, SearchBar as Vc, SilveryWheelEvent as Vd, useListItem as Vi, LinkProps as Vl, createCanvasAdapter as Vn, useBoxMetrics as Vo, RenderStyle as Vr, AlertProps as Vs, CommandInfo as Vt, TermProviderOptions as Vu, LayoutOptions as W, CacheBackend as Wa, UseReadlineResult as Wc, MeasureMode$1 as Wd, useVirtualizer as Wi, TextProps as Wl, queryTextAreaSize as Wn, useAgNode as Wo, TextMeasurer as Wr, BannerProps as Ws, WithCommandsOptions as Wt, ParsedMouse as Wu, debounce as X, ChainFocusEvents as Xa, ToneKey as Xc, dispatchFocusEvent as Xd, CopyEvent as Xi, constrainText as Xl, parseFocusEvent as Xn, Static as Xo, Instance as Xr, ToastItem as Xs, activeEditTargetRef as Xt, EventData as Xu, concat as Y, ChainAppContextValue as Ya, ToneFillTokens as Yc, createKeyEvent as Yd, ClipboardData as Yi, WidthMeasurer as Yl, enableFocusReporting as Yn, SilveryErrorBoundaryProps as Yo, setOutputCaps as Yr, ToastData as Ys, activeEditContextRef as Yt, Event as Yu, filter as Z, ChainFocusHandler as Za, ToneSubtleTokens as Zc, dispatchKeyEvent as Zd, PasteEvent as Zi, createMeasurer as Zl, DeviceAttributes as Zn, Spacer as Zo, NonTTYMode$1 as Zr, ToastItemProps as Zs, useEditContext as Zt, NamespacedEvent as Zu, EventHandlers as _, ANSI as _a, Kbd as _c, HorizontalVirtualListHandle as _d, useHitRegionCallback as _i, TextArea as _l, ResolvedNonTTYMode as _n, findSpatialTarget as _o, runTermtest as _r, Skeleton as _s, TeaResult as _t, runWithMeasurer as _u, ReactiveThemeProvider as a, CursorState as aa, FormProps as ac, SplitView as ad, matchHotkey as af, YogaLayoutEngine as ai, PickerListProps as al, mergeTextOps as an, FocusManagerContext as ao, detectTextSizingSupport as ar, scrollUp as as, throttle as at, hasAnsi as au, useApp as b, KittyFlags as ba, Muted as bc, ListView as bd, HitRegistry as bi, TextAreaSelection as bl, MouseEventProcessorOptions as bn, FocusChangeCallback as bo, detectKittySupport as br, TooltipProps as bs, InputBoundaryProps as bt, sliceByWidth as bu, createFrameTick as c, getCursorState as ca, HeadingProps as cc, createLeaf as cd, parseKeypress as cf, TermDef as ci, Backdrop as cl, disableInspector as cn, StderrContext as co, textSized as cr, calcEdgeBasedScrollOffset as cs, StoreConfig as ct, isCJK as cu, AppDefinition as d, useCursor as da, CodeBlock as dc, getTabOrder$1 as dd, LayoutConstants as di, ModalDialogProps as dl, inspectTree as dn, useFocusWithin as do, MeasuredTerm as dr, useGridPosition as ds, silveryUpdate as dt, isWideGrapheme as du, createPasteEvent as ea, UseToastResult as ec, ProviderEventKey as ed, ParsedHotkey as ef, render$1 as ei, toneIcon as el, TermEditContextOptions as en, ChainKey as eo, querySecondaryDA as er, TransformProps as es, fromArrayWithDelay as et, displayWidthAnsi as eu, AppHandle as f, useConsole as fa, Em as fc, removePane as fd, LayoutEngine as fi, formatTitleWithHotkey as fl, isInspectorEnabled as fn, UseFocusableResult as fo, createPipeline as fr, PositionRegistry as fs, withFocusManagement as ft, isZeroWidthGrapheme as fu, EventHandlerContext as g, useMouseCursor as ga, HR as gc, HorizontalVirtualList as gd, useHitRegion as gi, EditContextDisplayProps as gl, NonTTYOptions as gn, findFocusableAncestor as go, TermtestSection as gr, usePositionRegistry as gs, EffectLike as gt, parseAnsiText as gu, EventHandler as h, useTerm as ha, H3 as hc, swapPanes as hd, HitRegistryContext as hi, EditContextDisplay as hl, isDevToolsConnected as hn, findEnclosingScope as ho, TermtestOptions as hr, createPositionRegistry as hs, fx as ht, padText as hu, useActiveScheme as i, CursorProvider as ia, FormFieldProps as ic, ConsoleEntry as id, keyToName as if, createFlexilyZeroEngine as ii, PickerList as il, invertTextOp as in, ChainRawKeyObserver as io, queryCursorPosition as ir, scrollDown as is, takeUntil as it, graphemeWidth as iu, runThemed as j, resetCursorStyle as ja, Column as jc, Event$1 as jd, SearchProvider as ji, rowColToCursor as jl, App as jn, UseStderrResult as jo, AriaState as jr, BreadcrumbProps as js, withDiagnostics as jt, term as ju, resumeTerminalState as k, queryKittyKeyboard as ka, Badge as kc, BlurEvent as kd, useRuntime as ki, cursorToRowCol as kl, hitTest as kn, UseFocusManagerResult as ko, parseClipboardResponse as kr, Breadcrumb as ks, DiagnosticOptions as kt, writeTextToBuffer as ku, createSecondTick as l, resetCursorState as la, Blockquote as lc, findAdjacentPane as ld, createInputEvents as li, BackdropProps as ll, enableInspector as ln, TermContext as lo, RenderTerm as lr, GridCell as ls, createStore as lt, isLikelyEmoji as lu, AppRunner as m, shallow as ma, H2 as mc, splitPane as md, setLayoutEngine as mi, CursorLineProps as ml, connectDevTools as mn, findByTestID as mo, TERMTEST_SECTIONS as mr, ScrollRect as ms, TimerEffect as mt, normalizeText as mu, useId$1 as n, CursorAccessors as na, Form as nc, Runtime as nd, emptyKey as nf, renderSync as ni, Toggle as nl, TextOp as nn, ChainPasteStore as no, queryTertiaryDA as nr, moveCursor$1 as ns, merge as nt, getFirstCodePoint as nu, useColorScheme as o, CursorStore as oa, Heading as oc, SplitViewProps as od, parseHotkey as of, createYogaEngine as oi, PickerDialog as ol, InspectorOptions as on, RuntimeContext as oo, isPrivateUseArea as or, setScrollRegion as os, zip as ot, hasWideCharacters as ou, AppRunOptions as p, useWindowSize as pa, H1 as pc, resizeSplit as pd, isLayoutEngineInitialized as pi, CursorLine as pl, IncrementalRenderMismatchError as pn, useFocusable as po, withMeasurer as pr, PositionRegistryProvider as ps, useTea as pt, measureText as pu, layoutSync as q, CapabilityRegistryContext as qa, ButtonProps as qc, SilveryKeyEvent as qd, PasteProvider as qi, Measurer as ql, queryModes as qn, useScrollRect as qo, OutputPhaseFn as qr, ToastContainer as qs, UseEditContextOptions as qt, Buffer$1 as qu, useTransition as r, CursorPosition as ra, FormField as rc, RuntimeOptions as rd, keyToModifiers as rf, FlexilyZeroLayoutEngine as ri, ToggleProps as rl, applyTextOp as rn, ChainRawKeyHandler as ro, queryCursorFromStdio as rr, resetScrollRegion as rs, take as rt, graphemeCount as ru, createAdaptiveTick as s, createCursorStore as sa, HeadingLevel as sc, LayoutNode as sd, parseKey as sf, initYogaEngine as si, PickerDialogProps as sl, autoEnableInspector as sn, RuntimeContextValue as so, isTextSizingLikelySupported as sr, supportsScrollRegions as ss, StoreApi as st, hasZeroWidthCharacters as su, useDeferredValue as t, getInternalClipboard as ta, useToast as tc, RenderTarget as td, ParsedKeypress as tf, renderStatic as ti, toneSubtleTokens as tl, createTermEditContext as tn, ChainPasteHandler as to, queryTerminalVersion as tr, ScrollRegionConfig as ts, map as tt, ensureEmojiPresentation as tu, createTick as u, subscribeCursor as ua, Code as uc, getPaneIds as ud, isTerm as ui, ModalDialog as ul, inspectFrame as un, useTerminalFocused as uo, withRender as ur, GridCellProps as us, defaultInit as ut, isTextSizingEnabled as uu, StoreContext as v, BEL as va, LI as vc, HorizontalVirtualListProps as vd, useHitRegistry as vi, TextAreaHandle as vl, isTTY as vn, getExplicitFocusLink as vo, KittyDetectResult as vr, SkeletonProps as vs, collect as vt, setTextEmojiWide as vu, TerminalLifecycleOptions as w, enableKittyKeyboard as wa, Strong as wc, ListViewSearchConfig as wd, ActiveSchemeContext as wi, useTextArea as wl, createDoubleClickState as wn, FocusSnapshot as wo, PASTE_START as wr, TabPanel as ws, InputLayerHandler as wt, stripAnsi as wu, useAppShallow as x, MouseCursorShape as xa, OL as xc, ListViewCacheConfig as xd, HitTarget as xi, UseTextAreaOptions as xl, MouseEventProcessorState as xn, FocusManager as xo, OSC133 as xr, Tab as xs, InputLayer as xt, sliceByWidthFromEnd as xu, createApp as y, CursorShape as ya, Lead as yc, ListItemMeta as yd, HitRegion as yi, TextAreaProps as yl, resolveNonTTYMode as yn, getTabOrder as yo, detectKittyFromStdio as yr, Tooltip as ys, InputBoundary as yt, setTextSizingEnabled as yu, createRuntime as z, UseModifierKeysOptions as za, Spinner as zc, MouseEventProps as zd, useInteractiveState as zi, ErrorBoundaryProps as zl, CanvasAdapterConfig as zn, useInput as zo, BorderChars as zr, AlertActionsProps as zs, Command as zt, TermEvents as zu };
11233
+ //# sourceMappingURL=index-BXslOebb.d.mts.map