@vizejs/fresco 0.714.0 → 0.716.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.
- package/dist/accessibility-OEhyYUxd.d.mts +88 -0
- package/dist/accessibility-OEhyYUxd.d.mts.map +1 -0
- package/dist/{app-DoXcF_Dn.mjs → app-CIX6NAW-.mjs} +209 -88
- package/dist/app-CIX6NAW-.mjs.map +1 -0
- package/dist/{app-adHHi99c.d.mts → app-CKsTWQuP.d.mts} +38 -19
- package/dist/app-CKsTWQuP.d.mts.map +1 -0
- package/dist/components/index.d.mts +2 -2
- package/dist/components/index.mjs +2 -2
- package/dist/{components-DWIDBGTL.mjs → components-D9SeB0Be.mjs} +511 -374
- package/dist/components-D9SeB0Be.mjs.map +1 -0
- package/dist/composables/index.d.mts +1 -1
- package/dist/composables/index.mjs +3 -3
- package/dist/{composables-b_R5s4QQ.mjs → composables-DbJGVNSG.mjs} +3 -3
- package/dist/{composables-b_R5s4QQ.mjs.map → composables-DbJGVNSG.mjs.map} +1 -1
- package/dist/{index-Ck5VFXgP.d.mts → index-CWRginDz.d.mts} +313 -667
- package/dist/index-CWRginDz.d.mts.map +1 -0
- package/dist/{index-B-asCcvK.d.mts → index-Dikou9bu.d.mts} +4 -2
- package/dist/{index-B-asCcvK.d.mts.map → index-Dikou9bu.d.mts.map} +1 -1
- package/dist/index.d.mts +6 -6
- package/dist/index.mjs +8 -5
- package/dist/index.mjs.map +1 -1
- package/dist/{protocol--xy80nuC.d.mts → protocol-D8xt3DG7.d.mts} +31 -1
- package/dist/protocol-D8xt3DG7.d.mts.map +1 -0
- package/dist/testing/index.d.mts +8 -2
- package/dist/testing/index.d.mts.map +1 -1
- package/dist/testing/index.mjs +10 -7
- package/dist/testing/index.mjs.map +1 -1
- package/dist/{useVirtualViewport-CcJuIc7U.mjs → useVirtualViewport-pPZWmwUC.mjs} +2 -2
- package/dist/{useVirtualViewport-CcJuIc7U.mjs.map → useVirtualViewport-pPZWmwUC.mjs.map} +1 -1
- package/package.json +2 -2
- package/dist/accessibility-D1R9HiTE.d.mts +0 -40
- package/dist/accessibility-D1R9HiTE.d.mts.map +0 -1
- package/dist/app-DoXcF_Dn.mjs.map +0 -1
- package/dist/app-adHHi99c.d.mts.map +0 -1
- package/dist/components-DWIDBGTL.mjs.map +0 -1
- package/dist/index-Ck5VFXgP.d.mts.map +0 -1
- package/dist/protocol--xy80nuC.d.mts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-CWRginDz.d.mts","names":[],"sources":["../src/components/Box.ts","../src/components/FrescoSpacer.vue","../src/components/Divider.ts","../src/components/Stack.ts","../src/components/Grid.ts","../src/components/presentational-primitive-types.ts","../src/components/FrescoCard.vue","../src/components/scroll-types.ts","../src/components/ScrollBox.vue","../src/components/ScrollBar.vue","../src/components/Text.ts","../src/components/text-utility-types.ts","../src/components/FrescoNewline.vue","../src/components/FrescoStatic.vue","../src/components/display-primitive-types.ts","../src/components/FrescoTransform.vue","../src/components/Code.ts","../src/components/FrescoLink.vue","../src/components/TextInput.ts","../src/components/TextArea.ts","../src/components/Select.ts","../src/components/Checkbox.ts","../src/components/RadioGroup.ts","../src/components/Confirm.ts","../src/components/Form.ts","../src/components/FrescoSpinner.vue","../src/components/ProgressBar.ts","../src/components/FrescoAlert.vue","../src/components/FrescoBadge.vue","../src/components/Timer.ts","../src/components/FrescoTooltip.vue","../src/components/List.ts","../src/components/Table.ts","../src/components/Tree.ts","../src/components/Menu.ts","../src/components/Tabs.ts","../src/components/FrescoBreadcrumb.vue","../src/components/Stepper.ts","../src/components/Modal.ts","../src/components/StatusBar.ts","../src/components/FrescoHeader.vue","../src/components/KeyHint.ts","../src/components/FrescoAvatar.vue"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { M as MouseEvent } from "./protocol
|
|
1
|
+
import { M as MouseEvent } from "./protocol-D8xt3DG7.mjs";
|
|
2
2
|
import { Ref } from "vue";
|
|
3
3
|
//#region src/composables/useInput.d.ts
|
|
4
4
|
interface Key {
|
|
@@ -216,12 +216,14 @@ interface AnimationResult {
|
|
|
216
216
|
declare function useAnimation(options?: UseAnimationOptions): AnimationResult;
|
|
217
217
|
//#endregion
|
|
218
218
|
//#region src/layoutMetrics.d.ts
|
|
219
|
+
/** Renderer element or component public instance accepted by layout helpers. */
|
|
219
220
|
interface DOMElement {
|
|
220
221
|
id?: number;
|
|
221
222
|
$el?: {
|
|
222
223
|
id?: number;
|
|
223
224
|
};
|
|
224
225
|
}
|
|
226
|
+
/** Return the latest element dimensions, falling back to zero before layout. */
|
|
225
227
|
declare function measureElement(node: DOMElement): {
|
|
226
228
|
width: number;
|
|
227
229
|
height: number;
|
|
@@ -247,4 +249,4 @@ declare function useBoxMetrics(ref: Ref<MetricTarget | null>): UseBoxMetricsResu
|
|
|
247
249
|
declare function useIsScreenReaderEnabled(): boolean;
|
|
248
250
|
//#endregion
|
|
249
251
|
export { KeyHandler as A, UseMouseOptions as C, usePaste as D, UsePasteOptions as E, UseInputReturn as M, useInput as N, InputHandler as O, useKeyPress as P, useIme as S, useMouse as T, useStderr as _, DOMElement as a, ImeManager as b, UseAnimationOptions as c, useCursor as d, WindowSize as f, UseStdoutReturn as g, UseStdinReturn as h, useBoxMetrics as i, UseInputOptions as j, Key as k, useAnimation as l, UseStderrReturn as m, BoxMetrics as n, measureElement as o, useWindowSize as p, UseBoxMetricsResult as r, AnimationResult as s, useIsScreenReaderEnabled as t, CursorPosition as u, useStdin as v, UseMouseReturn as w, UseImeOptions as x, useStdout as y };
|
|
250
|
-
//# sourceMappingURL=index-
|
|
252
|
+
//# sourceMappingURL=index-Dikou9bu.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-Dikou9bu.d.mts","names":[],"sources":["../src/composables/useInput.ts","../src/composables/usePaste.ts","../src/composables/useMouse.ts","../src/composables/useIme.ts","../src/composables/useStreams.ts","../src/composables/useWindowSize.ts","../src/composables/useCursor.ts","../src/composables/useAnimation.ts","../src/layoutMetrics.ts","../src/composables/useBoxMetrics.ts","../src/composables/useIsScreenReaderEnabled.ts"],"mappings":"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"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { A as KeyEvent, C as FrescoRenderStyle, D as FrescoTextRenderNode, E as FrescoStyle, M as MouseEvent, N as PasteEvent, O as FrescoTextWrapMode, P as ResizeEvent, S as FrescoRenderNodeKind, T as FrescoSnakeStyleAliases, _ as FrescoModifiers, a as FrescoAlignSelf, b as FrescoPosition, c as FrescoBoxRenderNode, d as FrescoDisplay, f as FrescoFlexDirection, g as FrescoJustifyContent, h as FrescoInputRenderNode, i as FrescoAlignItems, j as KeyEventType, k as InputEvent, l as FrescoCanonicalStyle, m as FrescoInputEvent, n as FocusEvent, o as FrescoAppearance, p as FrescoFlexWrap, r as FrescoAlignContent, s as FrescoBorderStyle, t as CompositionEvent, u as FrescoDimension, v as FrescoMouseEventKind, w as FrescoRootRenderNode, x as FrescoRenderNode, y as FrescoOverflow } from "./protocol
|
|
2
|
-
import { a as createRenderer } from "./accessibility-
|
|
3
|
-
import { $ as
|
|
1
|
+
import { A as KeyEvent, C as FrescoRenderStyle, D as FrescoTextRenderNode, E as FrescoStyle, M as MouseEvent, N as PasteEvent, O as FrescoTextWrapMode, P as ResizeEvent, S as FrescoRenderNodeKind, T as FrescoSnakeStyleAliases, _ as FrescoModifiers, a as FrescoAlignSelf, b as FrescoPosition, c as FrescoBoxRenderNode, d as FrescoDisplay, f as FrescoFlexDirection, g as FrescoJustifyContent, h as FrescoInputRenderNode, i as FrescoAlignItems, j as KeyEventType, k as InputEvent, l as FrescoCanonicalStyle, m as FrescoInputEvent, n as FocusEvent, o as FrescoAppearance, p as FrescoFlexWrap, r as FrescoAlignContent, s as FrescoBorderStyle, t as CompositionEvent, u as FrescoDimension, v as FrescoMouseEventKind, w as FrescoRootRenderNode, x as FrescoRenderNode, y as FrescoOverflow } from "./protocol-D8xt3DG7.mjs";
|
|
2
|
+
import { a as FrescoHostNode, c as FrescoNodeUpdateKind, l as FrescoRendererOptions, r as FrescoDeclaredSize, s as FrescoNodeLifecycleHooks, u as createRenderer } from "./accessibility-OEhyYUxd.mjs";
|
|
3
|
+
import { $ as TextArea, A as ListProps, At as BreadcrumbProps, B as Form, Bt as VStack, C as TreeNode, Ct as ScrollBoxItemSlot, D as TableProps, Dt as AlertType, E as TableColumn, Et as AlertProps, F as _default$2, Ft as Grid, G as RadioGroup, Gt as BoxProps, H as FormProps, Ht as DividerProps, I as _default, It as GridProps, J as Checkbox, K as RadioGroupProps, L as ProgressBar, Lt as HStack, M as Timer, Mt as HeaderProps, N as TimerMode, Nt as TooltipPosition, O as List, Ot as AvatarProps, P as TimerProps, Pt as TooltipProps, Q as SelectProps, R as ProgressBarProps, Rt as Stack, S as Tree, St as ScrollBoxExposed, T as Table, Tt as _default$4, U as Confirm, Ut as _default$10, V as FormField, Vt as Divider, W as ConfirmProps, Wt as Box, X as Select, Y as CheckboxProps, Z as SelectOption, _ as Tabs, _t as TextProps, a as _default$5, at as CodeProps, b as MenuItem, bt as ScrollBarOrientation, c as StatusBarProps, ct as BadgeVariant, d as Step, dt as StaticProps, et as TextAreaProps, f as StepStatus, ft as _default$12, g as Tab, gt as Text, h as _default$3, ht as TransformProps, i as KeyHintProps, it as Code, j as _default$13, jt as CardProps, k as ListItem, kt as BreadcrumbItem, l as Modal, lt as LinkProps, m as StepperProps, mt as NewlineProps, n as KeyBinding, nt as TextInputProps, o as StatusBar, ot as _default$14, p as Stepper, pt as _default$7, q as RadioOption, r as KeyHint, rt as _default$6, s as StatusBarItem, st as BadgeProps, t as _default$1, tt as TextInput, u as ModalProps, ut as SpinnerProps, v as TabsProps, vt as _default$8, w as TreeProps, wt as ScrollBoxProps, x as MenuProps, xt as ScrollBarProps, y as Menu, yt as _default$9, z as _default$11, zt as StackProps } from "./index-CWRginDz.mjs";
|
|
4
4
|
import { a as createVirtualViewport, i as VirtualViewportRange, n as VirtualViewport, o as useVirtualViewport, r as VirtualViewportOptions, t as VirtualScrollAlignment } from "./useVirtualViewport-TxTapifg.mjs";
|
|
5
|
-
import { A as KeyHandler, C as UseMouseOptions, D as usePaste, E as UsePasteOptions, M as UseInputReturn, N as useInput, O as InputHandler, P as useKeyPress, S as useIme, T as useMouse, _ as useStderr, a as DOMElement, b as ImeManager, c as UseAnimationOptions, d as useCursor, f as WindowSize, g as UseStdoutReturn, h as UseStdinReturn, i as useBoxMetrics, j as UseInputOptions, k as Key, l as useAnimation, m as UseStderrReturn, n as BoxMetrics, o as measureElement, p as useWindowSize, r as UseBoxMetricsResult, s as AnimationResult, t as useIsScreenReaderEnabled, u as CursorPosition, v as useStdin, w as UseMouseReturn, x as UseImeOptions, y as useStdout } from "./index-
|
|
5
|
+
import { A as KeyHandler, C as UseMouseOptions, D as usePaste, E as UsePasteOptions, M as UseInputReturn, N as useInput, O as InputHandler, P as useKeyPress, S as useIme, T as useMouse, _ as useStderr, a as DOMElement, b as ImeManager, c as UseAnimationOptions, d as useCursor, f as WindowSize, g as UseStdoutReturn, h as UseStdinReturn, i as useBoxMetrics, j as UseInputOptions, k as Key, l as useAnimation, m as UseStderrReturn, n as BoxMetrics, o as measureElement, p as useWindowSize, r as UseBoxMetricsResult, s as AnimationResult, t as useIsScreenReaderEnabled, u as CursorPosition, v as useStdin, w as UseMouseReturn, x as UseImeOptions, y as useStdout } from "./index-Dikou9bu.mjs";
|
|
6
6
|
import { a as useFocus, i as UseFocusOptions, n as useApp, o as useFocusManager, r as FocusManager, t as UseAppReturn } from "./useApp-CVB2jNCO.mjs";
|
|
7
|
-
import { _ as KittyFlagName, a as RenderMetrics, b as kittyModifiers, c as createApp, d as lastKeyEvent, f as lastMouseEvent, g as renderToString, h as render, i as RenderInstance, l as lastCompositionEvent, m as lastResizeEvent, n as AppOptions, o as RenderOptions, p as lastPasteEvent, r as Instance, s as RenderToStringOptions, t as App, u as lastFocusEvent, v as KittyKeyboardOptions, x as resolveKittyFlags, y as kittyFlags } from "./app-
|
|
7
|
+
import { _ as KittyFlagName, a as RenderMetrics, b as kittyModifiers, c as createApp, d as lastKeyEvent, f as lastMouseEvent, g as renderToString, h as render, i as RenderInstance, l as lastCompositionEvent, m as lastResizeEvent, n as AppOptions, o as RenderOptions, p as lastPasteEvent, r as Instance, s as RenderToStringOptions, t as App, u as lastFocusEvent, v as KittyKeyboardOptions, x as resolveKittyFlags, y as kittyFlags } from "./app-CKsTWQuP.mjs";
|
|
8
8
|
import { FlexStyleNapi, ImeStateNapi, InputEventNapi, LayoutResultNapi, ModifiersNapi, RenderNodeNapi, StyleNapi, TerminalInfoNapi, TerminalOptionsNapi } from "@vizejs/fresco-native";
|
|
9
|
-
export { Alert, type AlertProps, type AlertType, type AnimationResult, type App, type AppOptions, Avatar, type AvatarProps, Badge, type BadgeProps, type BadgeVariant, Box, type BoxMetrics, type BoxProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, Card, type CardProps, Checkbox, type CheckboxProps, Code, type CodeProps, type CompositionEvent, Confirm, type ConfirmProps, type CursorPosition, type DOMElement, Divider, type DividerProps, type FlexStyleNapi, type FocusEvent, type FocusManager, Form, type FormField, type FormProps, type FrescoAlignContent, type FrescoAlignItems, type FrescoAlignSelf, type FrescoAppearance, type FrescoBorderStyle, type FrescoBoxRenderNode, type FrescoCanonicalStyle, type FrescoDimension, type FrescoDisplay, type FrescoFlexDirection, type FrescoFlexWrap, type FrescoInputEvent, type FrescoInputRenderNode, type FrescoJustifyContent, type FrescoModifiers, type FrescoMouseEventKind, type FrescoOverflow, type FrescoPosition, type FrescoRenderNode, type FrescoRenderNodeKind, type FrescoRenderStyle, type FrescoRootRenderNode, type FrescoSnakeStyleAliases, type FrescoStyle, type FrescoTextRenderNode, type FrescoTextWrapMode, Grid, type GridProps, HStack, Header, type HeaderProps, type ImeManager, type ImeStateNapi, type InputEvent, type InputEventNapi, type InputHandler, type Instance, type Key, type KeyBinding, type KeyEvent, type KeyEventType, type KeyHandler, KeyHint, type KeyHintProps, type KittyFlagName, type KittyKeyboardOptions, type LayoutResultNapi, Link, type LinkProps, List, type ListItem, type ListProps, Menu, type MenuItem, type MenuProps, Modal, type ModalProps, type ModifiersNapi, type MouseEvent, Newline, type NewlineProps, type PasteEvent, ProgressBar, type ProgressBarProps, RadioGroup, type RadioGroupProps, type RadioOption, type RenderInstance, type RenderMetrics, type RenderNodeNapi, type RenderOptions, type RenderToStringOptions, type ResizeEvent, _default as ScrollBar, type ScrollBarOrientation, type ScrollBarProps, _default$
|
|
9
|
+
export { _default as Alert, type AlertProps, type AlertType, type AnimationResult, type App, type AppOptions, _default$1 as Avatar, type AvatarProps, _default$2 as Badge, type BadgeProps, type BadgeVariant, Box, type BoxMetrics, type BoxProps, _default$3 as Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, _default$4 as Card, type CardProps, Checkbox, type CheckboxProps, Code, type CodeProps, type CompositionEvent, Confirm, type ConfirmProps, type CursorPosition, type DOMElement, Divider, type DividerProps, type FlexStyleNapi, type FocusEvent, type FocusManager, Form, type FormField, type FormProps, type FrescoAlignContent, type FrescoAlignItems, type FrescoAlignSelf, type FrescoAppearance, type FrescoBorderStyle, type FrescoBoxRenderNode, type FrescoCanonicalStyle, type FrescoDeclaredSize, type FrescoDimension, type FrescoDisplay, type FrescoFlexDirection, type FrescoFlexWrap, type FrescoHostNode, type FrescoInputEvent, type FrescoInputRenderNode, type FrescoJustifyContent, type FrescoModifiers, type FrescoMouseEventKind, type FrescoNodeLifecycleHooks, type FrescoNodeUpdateKind, type FrescoOverflow, type FrescoPosition, type FrescoRenderNode, type FrescoRenderNodeKind, type FrescoRenderStyle, type FrescoRendererOptions, type FrescoRootRenderNode, type FrescoSnakeStyleAliases, type FrescoStyle, type FrescoTextRenderNode, type FrescoTextWrapMode, Grid, type GridProps, HStack, _default$5 as Header, type HeaderProps, type ImeManager, type ImeStateNapi, type InputEvent, type InputEventNapi, type InputHandler, type Instance, type Key, type KeyBinding, type KeyEvent, type KeyEventType, type KeyHandler, KeyHint, type KeyHintProps, type KittyFlagName, type KittyKeyboardOptions, type LayoutResultNapi, _default$6 as Link, type LinkProps, List, type ListItem, type ListProps, Menu, type MenuItem, type MenuProps, Modal, type ModalProps, type ModifiersNapi, type MouseEvent, _default$7 as Newline, type NewlineProps, type PasteEvent, ProgressBar, type ProgressBarProps, RadioGroup, type RadioGroupProps, type RadioOption, type RenderInstance, type RenderMetrics, type RenderNodeNapi, type RenderOptions, type RenderToStringOptions, type ResizeEvent, _default$8 as ScrollBar, type ScrollBarOrientation, type ScrollBarProps, _default$9 as ScrollBox, type ScrollBoxExposed, type ScrollBoxItemSlot, type ScrollBoxProps, Select, type SelectOption, type SelectProps, _default$10 as Spacer, _default$11 as Spinner, type SpinnerProps, Stack, type StackProps, _default$12 as Static, type StaticProps, StatusBar, type StatusBarItem, type StatusBarProps, type Step, type StepStatus, Stepper, type StepperProps, type StyleNapi, type Tab, Table, type TableColumn, type TableProps, Tabs, type TabsProps, type TerminalInfoNapi, type TerminalOptionsNapi, Text, TextArea, type TextAreaProps, TextInput, type TextInputProps, type TextProps, Timer, type TimerMode, type TimerProps, _default$13 as Tooltip, type TooltipPosition, type TooltipProps, _default$14 as Transform, type TransformProps, Tree, type TreeNode, type TreeProps, type UseAnimationOptions, type UseAppReturn, type UseBoxMetricsResult, type UseFocusOptions, type UseImeOptions, type UseInputOptions, type UseInputReturn, type UseMouseOptions, type UseMouseReturn, type UsePasteOptions, type UseStderrReturn, type UseStdinReturn, type UseStdoutReturn, VStack, type VirtualScrollAlignment, type VirtualViewport, type VirtualViewportOptions, type VirtualViewportRange, type WindowSize, createApp, createRenderer, createVirtualViewport, kittyFlags, kittyModifiers, lastCompositionEvent, lastFocusEvent, lastKeyEvent, lastMouseEvent, lastPasteEvent, lastResizeEvent, measureElement, render, renderToString, resolveKittyFlags, useAnimation, useApp, useBoxMetrics, useCursor, useFocus, useFocusManager, useIme, useInput, useIsScreenReaderEnabled, useKeyPress, useMouse, usePaste, useStderr, useStdin, useStdout, useVirtualViewport, useWindowSize };
|
package/dist/index.mjs
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as useKeyPress, i as useInput, n as useVirtualViewport, o as usePaste, r as useMouse, s as useIsScreenReaderEnabled, t as createVirtualViewport } from "./useVirtualViewport-
|
|
3
|
-
import { A as
|
|
4
|
-
import { i as useIme, n as useAnimation, r as useWindowSize, t as useBoxMetrics } from "./composables-
|
|
1
|
+
import { C as useStdin, M as useApp, O as useFocus, S as useStderr, a as lastMouseEvent, c as render, f as createRenderer, h as measureElement, i as lastKeyEvent, k as useFocusManager, l as renderToString, n as lastCompositionEvent, o as lastPasteEvent, r as lastFocusEvent, s as lastResizeEvent, t as createApp, w as useStdout, y as useCursor } from "./app-CIX6NAW-.mjs";
|
|
2
|
+
import { a as useKeyPress, i as useInput, n as useVirtualViewport, o as usePaste, r as useMouse, s as useIsScreenReaderEnabled, t as createVirtualViewport } from "./useVirtualViewport-pPZWmwUC.mjs";
|
|
3
|
+
import { A as FrescoNewline_default, B as FrescoSpacer_default, C as Select, D as Code, E as FrescoLink_default, F as Grid, I as HStack, L as Stack, M as ScrollBar_default, N as Text, O as FrescoTransform_default, P as FrescoCard_default, R as VStack, S as Checkbox, T as TextInput, V as Box, _ as ProgressBar, a as Modal, b as Confirm, c as Tabs, d as Table, f as List, g as FrescoAlert_default, h as FrescoBadge_default, i as StatusBar, j as ScrollBox_default, k as FrescoStatic_default, l as Menu, m as Timer, n as KeyHint, o as Stepper, p as FrescoTooltip_default, r as FrescoHeader_default, s as FrescoBreadcrumb_default, t as FrescoAvatar_default, u as Tree, v as FrescoSpinner_default, w as TextArea, x as RadioGroup, y as Form, z as Divider } from "./components-D9SeB0Be.mjs";
|
|
4
|
+
import { i as useIme, n as useAnimation, r as useWindowSize, t as useBoxMetrics } from "./composables-DbJGVNSG.mjs";
|
|
5
5
|
//#region src/kittyKeyboard.ts
|
|
6
6
|
/**
|
|
7
7
|
* Kitty keyboard protocol constants compatible with Ink.
|
|
8
8
|
*/
|
|
9
|
+
/** Bit values defined by the Kitty keyboard progressive-enhancement protocol. */
|
|
9
10
|
const kittyFlags = {
|
|
10
11
|
disambiguateEscapeCodes: 1,
|
|
11
12
|
reportEventTypes: 2,
|
|
@@ -13,9 +14,11 @@ const kittyFlags = {
|
|
|
13
14
|
reportAllKeysAsEscapeCodes: 8,
|
|
14
15
|
reportAssociatedText: 16
|
|
15
16
|
};
|
|
17
|
+
/** Combine named Kitty keyboard flags into the protocol bit mask. */
|
|
16
18
|
function resolveKittyFlags(flags) {
|
|
17
19
|
return flags.reduce((bits, flag) => bits | kittyFlags[flag], 0);
|
|
18
20
|
}
|
|
21
|
+
/** Modifier bit values reported by the Kitty keyboard protocol. */
|
|
19
22
|
const kittyModifiers = {
|
|
20
23
|
shift: 1,
|
|
21
24
|
alt: 2,
|
|
@@ -27,6 +30,6 @@ const kittyModifiers = {
|
|
|
27
30
|
numLock: 128
|
|
28
31
|
};
|
|
29
32
|
//#endregion
|
|
30
|
-
export { Alert, Avatar, Badge, Box, Breadcrumb, Card, Checkbox, Code, Confirm, Divider, Form, Grid, HStack, Header, KeyHint, Link, List, Menu, Modal, Newline, ProgressBar, RadioGroup, ScrollBar_default as ScrollBar, ScrollBox_default as ScrollBox, Select, Spacer, Spinner, Stack, Static, StatusBar, Stepper, Table, Tabs, Text, TextArea, TextInput, Timer, Tooltip, Transform, Tree, VStack, createApp, createRenderer, createVirtualViewport, kittyFlags, kittyModifiers, lastCompositionEvent, lastFocusEvent, lastKeyEvent, lastMouseEvent, lastPasteEvent, lastResizeEvent, measureElement, render, renderToString, resolveKittyFlags, useAnimation, useApp, useBoxMetrics, useCursor, useFocus, useFocusManager, useIme, useInput, useIsScreenReaderEnabled, useKeyPress, useMouse, usePaste, useStderr, useStdin, useStdout, useVirtualViewport, useWindowSize };
|
|
33
|
+
export { FrescoAlert_default as Alert, FrescoAvatar_default as Avatar, FrescoBadge_default as Badge, Box, FrescoBreadcrumb_default as Breadcrumb, FrescoCard_default as Card, Checkbox, Code, Confirm, Divider, Form, Grid, HStack, FrescoHeader_default as Header, KeyHint, FrescoLink_default as Link, List, Menu, Modal, FrescoNewline_default as Newline, ProgressBar, RadioGroup, ScrollBar_default as ScrollBar, ScrollBox_default as ScrollBox, Select, FrescoSpacer_default as Spacer, FrescoSpinner_default as Spinner, Stack, FrescoStatic_default as Static, StatusBar, Stepper, Table, Tabs, Text, TextArea, TextInput, Timer, FrescoTooltip_default as Tooltip, FrescoTransform_default as Transform, Tree, VStack, createApp, createRenderer, createVirtualViewport, kittyFlags, kittyModifiers, lastCompositionEvent, lastFocusEvent, lastKeyEvent, lastMouseEvent, lastPasteEvent, lastResizeEvent, measureElement, render, renderToString, resolveKittyFlags, useAnimation, useApp, useBoxMetrics, useCursor, useFocus, useFocusManager, useIme, useInput, useIsScreenReaderEnabled, useKeyPress, useMouse, usePaste, useStderr, useStdin, useStdout, useVirtualViewport, useWindowSize };
|
|
31
34
|
|
|
32
35
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../src/kittyKeyboard.ts"],"sourcesContent":["/**\n * Kitty keyboard protocol constants compatible with Ink.\n */\n\nexport const kittyFlags = {\n disambiguateEscapeCodes: 1,\n reportEventTypes: 2,\n reportAlternateKeys: 4,\n reportAllKeysAsEscapeCodes: 8,\n reportAssociatedText: 16,\n} as const;\n\nexport type KittyFlagName = keyof typeof kittyFlags;\n\nexport interface KittyKeyboardOptions {\n mode?: \"auto\" | \"enabled\" | \"disabled\";\n flags?: KittyFlagName[];\n}\n\nexport function resolveKittyFlags(flags: KittyFlagName[]): number {\n return flags.reduce((bits, flag) => bits | kittyFlags[flag], 0);\n}\n\nexport const kittyModifiers = {\n shift: 1,\n alt: 2,\n ctrl: 4,\n super: 8,\n hyper: 16,\n meta: 32,\n capsLock: 64,\n numLock: 128,\n} as const;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../src/kittyKeyboard.ts"],"sourcesContent":["/**\n * Kitty keyboard protocol constants compatible with Ink.\n */\n\n/** Bit values defined by the Kitty keyboard progressive-enhancement protocol. */\nexport const kittyFlags = {\n disambiguateEscapeCodes: 1,\n reportEventTypes: 2,\n reportAlternateKeys: 4,\n reportAllKeysAsEscapeCodes: 8,\n reportAssociatedText: 16,\n} as const;\n\n/** Supported Kitty keyboard protocol flag name. */\nexport type KittyFlagName = keyof typeof kittyFlags;\n\n/** Kitty keyboard protocol negotiation options. */\nexport interface KittyKeyboardOptions {\n /** Whether protocol negotiation is automatic, forced, or disabled. @default \"auto\" */\n mode?: \"auto\" | \"enabled\" | \"disabled\";\n /** Progressive-enhancement flags requested from the terminal. @default [] */\n flags?: KittyFlagName[];\n}\n\n/** Combine named Kitty keyboard flags into the protocol bit mask. */\nexport function resolveKittyFlags(flags: KittyFlagName[]): number {\n return flags.reduce((bits, flag) => bits | kittyFlags[flag], 0);\n}\n\n/** Modifier bit values reported by the Kitty keyboard protocol. */\nexport const kittyModifiers = {\n shift: 1,\n alt: 2,\n ctrl: 4,\n super: 8,\n hyper: 16,\n meta: 32,\n capsLock: 64,\n numLock: 128,\n} as const;\n"],"mappings":";;;;;;;;;AAKA,MAAa,aAAa;CACxB,yBAAyB;CACzB,kBAAkB;CAClB,qBAAqB;CACrB,4BAA4B;CAC5B,sBAAsB;AACxB;;AAcA,SAAgB,kBAAkB,OAAgC;CAChE,OAAO,MAAM,QAAQ,MAAM,SAAS,OAAO,WAAW,OAAO,CAAC;AAChE;;AAGA,MAAa,iBAAiB;CAC5B,OAAO;CACP,KAAK;CACL,MAAM;CACN,OAAO;CACP,OAAO;CACP,MAAM;CACN,UAAU;CACV,SAAS;AACX"}
|
|
@@ -1,15 +1,26 @@
|
|
|
1
1
|
//#region src/protocol.d.ts
|
|
2
2
|
/** Public JavaScript protocol shared by Fresco components and the renderer. */
|
|
3
|
+
/** Discriminant shared by JavaScript and native render nodes. */
|
|
3
4
|
type FrescoRenderNodeKind = "root" | "box" | "text" | "input";
|
|
5
|
+
/** Numeric or CSS-like dimension accepted by component style props. */
|
|
4
6
|
type FrescoDimension = number | string;
|
|
7
|
+
/** Display modes supported by the native layout engine. */
|
|
5
8
|
type FrescoDisplay = "flex" | "none";
|
|
9
|
+
/** Positioning modes supported by the native layout engine. */
|
|
6
10
|
type FrescoPosition = "absolute" | "relative" | "static";
|
|
11
|
+
/** Overflow behavior accepted on either layout axis. */
|
|
7
12
|
type FrescoOverflow = "visible" | "hidden" | "scroll";
|
|
13
|
+
/** Main-axis direction accepted by Fresco flex layouts. */
|
|
8
14
|
type FrescoFlexDirection = "row" | "column" | "row-reverse" | "column-reverse";
|
|
15
|
+
/** Flex-line wrapping mode accepted by Fresco layouts. */
|
|
9
16
|
type FrescoFlexWrap = "nowrap" | "wrap" | "wrap-reverse";
|
|
17
|
+
/** Main-axis distribution accepted by Fresco flex layouts. */
|
|
10
18
|
type FrescoJustifyContent = "flex-start" | "flex-end" | "start" | "end" | "center" | "space-between" | "space-around" | "space-evenly";
|
|
19
|
+
/** Cross-axis item alignment accepted by Fresco layouts. */
|
|
11
20
|
type FrescoAlignItems = "flex-start" | "flex-end" | "start" | "end" | "center" | "stretch" | "baseline";
|
|
21
|
+
/** Per-item cross-axis override accepted by Fresco layouts. */
|
|
12
22
|
type FrescoAlignSelf = "auto" | FrescoAlignItems;
|
|
23
|
+
/** Multi-line cross-axis distribution accepted by Fresco layouts. */
|
|
13
24
|
type FrescoAlignContent = "flex-start" | "flex-end" | "start" | "end" | "center" | "stretch" | "space-between" | "space-around" | "space-evenly";
|
|
14
25
|
/** Canonical camelCase style fields. Components accept number or string dimensions. */
|
|
15
26
|
interface FrescoCanonicalStyle<Dimension extends FrescoDimension = FrescoDimension> {
|
|
@@ -81,9 +92,11 @@ interface FrescoSnakeStyleAliases<Dimension extends FrescoDimension = FrescoDime
|
|
|
81
92
|
column_gap?: number;
|
|
82
93
|
row_gap?: number;
|
|
83
94
|
}
|
|
95
|
+
/** Complete public style bag with canonical fields and compatibility aliases. */
|
|
84
96
|
type FrescoStyle<Dimension extends FrescoDimension = FrescoDimension> = FrescoCanonicalStyle<Dimension> & FrescoSnakeStyleAliases<Dimension>;
|
|
85
97
|
/** Canonical style emitted to the native renderer. Dimensions are normalized to strings. */
|
|
86
98
|
type FrescoRenderStyle = FrescoCanonicalStyle<string>;
|
|
99
|
+
/** Terminal color and text attributes emitted with a render node. */
|
|
87
100
|
interface FrescoAppearance {
|
|
88
101
|
fg?: string;
|
|
89
102
|
bg?: string;
|
|
@@ -96,7 +109,9 @@ interface FrescoAppearance {
|
|
|
96
109
|
hidden?: boolean;
|
|
97
110
|
strikethrough?: boolean;
|
|
98
111
|
}
|
|
112
|
+
/** Border glyph family rendered around a box. */
|
|
99
113
|
type FrescoBorderStyle = "none" | "single" | "double" | "rounded" | "heavy" | "dashed";
|
|
114
|
+
/** Wrapping or truncation policy for native text nodes. */
|
|
100
115
|
type FrescoTextWrapMode = "none" | "wrap" | "hard" | "truncate" | "truncate-start" | "truncate-middle" | "truncate-end";
|
|
101
116
|
interface FrescoRenderNodeBase {
|
|
102
117
|
id: number;
|
|
@@ -105,18 +120,22 @@ interface FrescoRenderNodeBase {
|
|
|
105
120
|
border?: FrescoBorderStyle;
|
|
106
121
|
children?: number[];
|
|
107
122
|
}
|
|
123
|
+
/** Root node sent to the native renderer. */
|
|
108
124
|
interface FrescoRootRenderNode extends FrescoRenderNodeBase {
|
|
109
125
|
nodeType: "root";
|
|
110
126
|
}
|
|
127
|
+
/** Layout and appearance-only box node sent to the native renderer. */
|
|
111
128
|
interface FrescoBoxRenderNode extends FrescoRenderNodeBase {
|
|
112
129
|
nodeType: "box";
|
|
113
130
|
}
|
|
131
|
+
/** Text node sent to the native renderer. */
|
|
114
132
|
interface FrescoTextRenderNode extends FrescoRenderNodeBase {
|
|
115
133
|
nodeType: "text";
|
|
116
134
|
text?: string;
|
|
117
135
|
wrap?: boolean;
|
|
118
136
|
wrapMode?: FrescoTextWrapMode;
|
|
119
137
|
}
|
|
138
|
+
/** Editable text input node sent to the native renderer. */
|
|
120
139
|
interface FrescoInputRenderNode extends FrescoRenderNodeBase {
|
|
121
140
|
nodeType: "input";
|
|
122
141
|
value?: string;
|
|
@@ -129,8 +148,11 @@ interface FrescoInputRenderNode extends FrescoRenderNodeBase {
|
|
|
129
148
|
type UnionKeys<Union> = Union extends Union ? keyof Union : never;
|
|
130
149
|
type StrictUnionHelper<Member, Union> = Member extends Member ? Member & Partial<Record<Exclude<UnionKeys<Union>, keyof Member>, never>> : never;
|
|
131
150
|
type StrictUnion<Union> = StrictUnionHelper<Union, Union>;
|
|
151
|
+
/** Strict discriminated union accepted by the native render bridge. */
|
|
132
152
|
type FrescoRenderNode = StrictUnion<FrescoRootRenderNode | FrescoBoxRenderNode | FrescoTextRenderNode | FrescoInputRenderNode>;
|
|
153
|
+
/** Lifecycle phase attached to a normalized keyboard event. */
|
|
133
154
|
type KeyEventType = "press" | "repeat" | "release";
|
|
155
|
+
/** Modifier state shared by keyboard and mouse events. */
|
|
134
156
|
interface FrescoModifiers {
|
|
135
157
|
ctrl: boolean;
|
|
136
158
|
alt: boolean;
|
|
@@ -141,22 +163,27 @@ interface FrescoModifiers {
|
|
|
141
163
|
capsLock: boolean;
|
|
142
164
|
numLock: boolean;
|
|
143
165
|
}
|
|
166
|
+
/** Normalized keyboard event exposed to components and composables. */
|
|
144
167
|
interface KeyEvent extends FrescoModifiers {
|
|
145
168
|
type: "key";
|
|
146
169
|
key?: string;
|
|
147
170
|
char?: string;
|
|
148
171
|
eventType?: KeyEventType;
|
|
149
172
|
}
|
|
173
|
+
/** Bracketed-paste input event. */
|
|
150
174
|
interface PasteEvent {
|
|
151
175
|
type: "paste";
|
|
152
176
|
text: string;
|
|
153
177
|
}
|
|
178
|
+
/** Terminal viewport resize event. */
|
|
154
179
|
interface ResizeEvent {
|
|
155
180
|
type: "resize";
|
|
156
181
|
width: number;
|
|
157
182
|
height: number;
|
|
158
183
|
}
|
|
184
|
+
/** Mouse transition or scroll direction reported by the terminal. */
|
|
159
185
|
type FrescoMouseEventKind = "down" | "up" | "drag" | "moved" | "scroll-up" | "scroll-down" | "scroll-left" | "scroll-right";
|
|
186
|
+
/** Normalized mouse event exposed to components and composables. */
|
|
160
187
|
interface MouseEvent {
|
|
161
188
|
type: "mouse";
|
|
162
189
|
kind?: FrescoMouseEventKind;
|
|
@@ -165,18 +192,21 @@ interface MouseEvent {
|
|
|
165
192
|
y: number;
|
|
166
193
|
modifiers?: FrescoModifiers;
|
|
167
194
|
}
|
|
195
|
+
/** Terminal focus-in or focus-out event. */
|
|
168
196
|
interface FocusEvent {
|
|
169
197
|
type: "focus";
|
|
170
198
|
focused: boolean;
|
|
171
199
|
}
|
|
200
|
+
/** IME composition lifecycle event with text and cursor state. */
|
|
172
201
|
interface CompositionEvent {
|
|
173
202
|
type: "compositionstart" | "compositionupdate" | "compositionend";
|
|
174
203
|
text: string;
|
|
175
204
|
cursor: number;
|
|
176
205
|
}
|
|
206
|
+
/** Strict union of every public terminal input event. */
|
|
177
207
|
type FrescoInputEvent = StrictUnion<KeyEvent | PasteEvent | ResizeEvent | MouseEvent | FocusEvent | CompositionEvent>;
|
|
178
208
|
/** Compatibility alias for the pre-protocol event union name. */
|
|
179
209
|
type InputEvent = FrescoInputEvent;
|
|
180
210
|
//#endregion
|
|
181
211
|
export { KeyEvent as A, FrescoRenderStyle as C, FrescoTextRenderNode as D, FrescoStyle as E, MouseEvent as M, PasteEvent as N, FrescoTextWrapMode as O, ResizeEvent as P, FrescoRenderNodeKind as S, FrescoSnakeStyleAliases as T, FrescoModifiers as _, FrescoAlignSelf as a, FrescoPosition as b, FrescoBoxRenderNode as c, FrescoDisplay as d, FrescoFlexDirection as f, FrescoJustifyContent as g, FrescoInputRenderNode as h, FrescoAlignItems as i, KeyEventType as j, InputEvent as k, FrescoCanonicalStyle as l, FrescoInputEvent as m, FocusEvent as n, FrescoAppearance as o, FrescoFlexWrap as p, FrescoAlignContent as r, FrescoBorderStyle as s, CompositionEvent as t, FrescoDimension as u, FrescoMouseEventKind as v, FrescoRootRenderNode as w, FrescoRenderNode as x, FrescoOverflow as y };
|
|
182
|
-
//# sourceMappingURL=protocol
|
|
212
|
+
//# sourceMappingURL=protocol-D8xt3DG7.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol-D8xt3DG7.d.mts","names":[],"sources":["../src/protocol.ts"],"mappings":"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"}
|
package/dist/testing/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A as KeyEvent, M as MouseEvent, x as FrescoRenderNode } from "../protocol
|
|
2
|
-
import { i as
|
|
1
|
+
import { A as KeyEvent, M as MouseEvent, x as FrescoRenderNode } from "../protocol-D8xt3DG7.mjs";
|
|
2
|
+
import { i as FrescoElement, n as AriaState, o as FrescoNode, s as FrescoNodeLifecycleHooks, t as AriaRole, u as createRenderer$1 } from "../accessibility-OEhyYUxd.mjs";
|
|
3
3
|
import { r as FocusManager, t as UseAppReturn } from "../useApp-CVB2jNCO.mjs";
|
|
4
4
|
import { App, Component, Ref, VNodeChild } from "vue";
|
|
5
5
|
|
|
@@ -12,6 +12,10 @@ interface MountFrescoOptions {
|
|
|
12
12
|
height?: number;
|
|
13
13
|
/** Initial screen reader mode. Defaults to false. */
|
|
14
14
|
screenReader?: boolean;
|
|
15
|
+
/** Observe host-tree mutations that require a native frame. */
|
|
16
|
+
onMutation?: () => void;
|
|
17
|
+
/** Observe host-node lifecycle transitions. */
|
|
18
|
+
lifecycle?: FrescoNodeLifecycleHooks;
|
|
15
19
|
}
|
|
16
20
|
/** A mounted Fresco component tree under test. */
|
|
17
21
|
interface MountedFresco {
|
|
@@ -25,6 +29,8 @@ interface MountedFresco {
|
|
|
25
29
|
focusManager: FocusManager;
|
|
26
30
|
/** Screen reader flag provided to the tree; writable to flip modes. */
|
|
27
31
|
screenReaderEnabled: Ref<boolean>;
|
|
32
|
+
/** Renderer controls for stable lookup and recursive disposal. */
|
|
33
|
+
renderer: ReturnType<typeof createRenderer$1>;
|
|
28
34
|
/** Unmount the tree and dispose all component watchers. */
|
|
29
35
|
unmount(): void;
|
|
30
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/testing/mount.ts","../../src/testing/queries.ts","../../src/testing/index.ts"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/testing/mount.ts","../../src/testing/queries.ts","../../src/testing/index.ts"],"mappings":"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"}
|
package/dist/testing/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { A as APP_KEY, D as createFocusManager, E as FOCUS_KEY, N as SCREEN_READER_KEY, _ as CURSOR_KEY, a as lastMouseEvent, b as STREAMS_KEY, d as isStaticNode, f as createRenderer$1, i as lastKeyEvent, j as createAppContext, n as lastCompositionEvent, o as lastPasteEvent, p as treeToRenderNodes, r as lastFocusEvent, s as lastResizeEvent, u as isStaticItemNode, v as createCursorContext, x as createStreamsContext } from "../app-CIX6NAW-.mjs";
|
|
2
2
|
import { h, nextTick, ref } from "vue";
|
|
3
3
|
//#region src/testing/mount.ts
|
|
4
4
|
/**
|
|
@@ -20,7 +20,11 @@ import { h, nextTick, ref } from "vue";
|
|
|
20
20
|
* updates plus `await nextTick()` to observe the patched output tree.
|
|
21
21
|
*/
|
|
22
22
|
function mountFresco(root, options = {}) {
|
|
23
|
-
const
|
|
23
|
+
const renderer = createRenderer$1({
|
|
24
|
+
onMutation: options.onMutation,
|
|
25
|
+
lifecycle: options.lifecycle
|
|
26
|
+
});
|
|
27
|
+
const { createApp } = renderer;
|
|
24
28
|
const app = createApp(typeof root === "function" ? { setup: () => root } : root);
|
|
25
29
|
const focusManager = createFocusManager();
|
|
26
30
|
const screenReaderEnabled = ref(options.screenReader ?? false);
|
|
@@ -60,6 +64,7 @@ function mountFresco(root, options = {}) {
|
|
|
60
64
|
appContext,
|
|
61
65
|
focusManager,
|
|
62
66
|
screenReaderEnabled,
|
|
67
|
+
renderer,
|
|
63
68
|
unmount: () => app.unmount()
|
|
64
69
|
};
|
|
65
70
|
}
|
|
@@ -239,9 +244,6 @@ function nodeText(node) {
|
|
|
239
244
|
if (typeof placeholder === "string" || typeof placeholder === "number") return String(placeholder);
|
|
240
245
|
return "";
|
|
241
246
|
}
|
|
242
|
-
function isStaticNode(node) {
|
|
243
|
-
return node.props.internal_static === true || node.props.internalStatic === true;
|
|
244
|
-
}
|
|
245
247
|
function joinOutput(parts, separator = "\n") {
|
|
246
248
|
return parts.filter(Boolean).join(separator);
|
|
247
249
|
}
|
|
@@ -266,9 +268,10 @@ function captureStaticOutput(node, renderedStaticItems) {
|
|
|
266
268
|
const visit = (current) => {
|
|
267
269
|
if (isStaticNode(current)) {
|
|
268
270
|
const renderedItems = renderedStaticItems.get(current.id) ?? 0;
|
|
269
|
-
const
|
|
271
|
+
const staticItems = current.children.filter(isStaticItemNode);
|
|
272
|
+
const nextOutput = joinOutput(staticItems.slice(renderedItems).map((child) => treeToFrameOutput(child)), "\n");
|
|
270
273
|
if (nextOutput) output.push(nextOutput);
|
|
271
|
-
renderedStaticItems.set(current.id,
|
|
274
|
+
renderedStaticItems.set(current.id, staticItems.length);
|
|
272
275
|
return;
|
|
273
276
|
}
|
|
274
277
|
for (const child of current.children) visit(child);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["createRenderer"],"sources":["../../src/testing/mount.ts","../../src/testing/queries.ts","../../src/testing/index.ts"],"sourcesContent":["/**\n * Test-only mount harness for the Fresco JS layer.\n *\n * Fresco's renderer is pure JS up to the byte boundary that crosses into the\n * native module: `renderer.ts` imports only types from `@vizejs/fresco-native`,\n * and `app.ts` loads the native binding lazily and only in interactive mode.\n * This harness mounts components through the real custom renderer with the\n * same provide set `createApp`/`renderToString` install, so tests assert the\n * mounted `FrescoNode` output tree without a native build and without mocks.\n *\n * Not exported from the package entry points; `vp pack` does not ship it.\n */\n\nimport {\n h,\n ref,\n nextTick,\n type App as VueApp,\n type Component,\n type Ref,\n type VNodeChild,\n} from \"vue\";\nimport { SCREEN_READER_KEY } from \"../accessibility.js\";\nimport { lastKeyEvent, type KeyEvent } from \"../app.js\";\nimport { APP_KEY, createAppContext, type UseAppReturn } from \"../composables/useApp.js\";\nimport { createCursorContext, CURSOR_KEY } from \"../composables/useCursor.js\";\nimport { createFocusManager, FOCUS_KEY, type FocusManager } from \"../composables/useFocus.js\";\nimport { createStreamsContext, STREAMS_KEY } from \"../composables/useStreams.js\";\nimport { createRenderer, type FrescoElement, type FrescoNode } from \"../renderer.js\";\n\n/** Options for {@link mountFresco}. */\nexport interface MountFrescoOptions {\n /** Terminal width provided through the app context. Defaults to 80. */\n width?: number;\n /** Terminal height provided through the app context. Defaults to 24. */\n height?: number;\n /** Initial screen reader mode. Defaults to false. */\n screenReader?: boolean;\n}\n\n/** A mounted Fresco component tree under test. */\nexport interface MountedFresco {\n /** Root element the Vue app mounted into; children form the output tree. */\n root: FrescoElement;\n /** The Vue app instance (for `provide`-level introspection if needed). */\n app: VueApp<FrescoElement>;\n /** App context provided to composables such as `useApp` and `useWindowSize`. */\n appContext: UseAppReturn;\n /** Focus manager provided to the tree, as the real app would. */\n focusManager: FocusManager;\n /** Screen reader flag provided to the tree; writable to flip modes. */\n screenReaderEnabled: Ref<boolean>;\n /** Unmount the tree and dispose all component watchers. */\n unmount(): void;\n}\n\n/**\n * Mount a component (or a plain render function) through the Fresco renderer.\n *\n * The returned {@link MountedFresco.root} is live: re-read it after reactive\n * updates plus `await nextTick()` to observe the patched output tree.\n */\nexport function mountFresco(\n root: Component | (() => VNodeChild),\n options: MountFrescoOptions = {},\n): MountedFresco {\n const { createApp } = createRenderer();\n const component: Component = typeof root === \"function\" ? { setup: () => root } : root;\n const app = createApp(component);\n\n const focusManager = createFocusManager();\n const screenReaderEnabled = ref(options.screenReader ?? false);\n const noopWrite = () => {};\n const width = options.width ?? 80;\n const height = options.height ?? 24;\n // A detached stdout stand-in keeps createAppContext from attaching resize\n // listeners to the real process.stdout on every mounted test tree.\n const stdout = {\n isTTY: false,\n columns: width,\n rows: height,\n write: () => true,\n } as unknown as NodeJS.WriteStream;\n\n const appContext = createAppContext({ width, height, stdout });\n app.provide(APP_KEY, appContext);\n app.provide(FOCUS_KEY, focusManager);\n app.provide(SCREEN_READER_KEY, screenReaderEnabled);\n app.provide(CURSOR_KEY, createCursorContext(noopWrite));\n app.provide(\n STREAMS_KEY,\n createStreamsContext({\n interactive: false,\n writeToStdout: noopWrite,\n writeToStderr: noopWrite,\n }),\n );\n\n const rootElement: FrescoElement = {\n id: -1,\n type: \"root\",\n props: {},\n children: [],\n parent: null,\n };\n app.mount(rootElement);\n\n return {\n root: rootElement,\n app,\n appContext,\n focusManager,\n screenReaderEnabled,\n unmount: () => app.unmount(),\n };\n}\n\n/**\n * Dispatch a key event through the same `lastKeyEvent` ref the interactive\n * event loop writes, then wait for watchers to flush.\n *\n * Pass `char` for printable input or `key` for named keys (\"left\", \"enter\",\n * \"backspace\", ...). Modifiers default to false.\n */\nexport function dispatchKey(event: Partial<Omit<KeyEvent, \"type\">>): Promise<void> {\n lastKeyEvent.value = {\n type: \"key\",\n ctrl: false,\n alt: false,\n shift: false,\n meta: false,\n super: false,\n hyper: false,\n capsLock: false,\n numLock: false,\n ...event,\n };\n return nextTick();\n}\n\n/** Dispatch a sequence of printable characters via {@link dispatchKey}. */\nexport async function typeChars(text: string): Promise<void> {\n for (const char of text) {\n await dispatchKey({ char });\n }\n}\n\n/**\n * Serializable snapshot of a mounted output tree.\n *\n * Node ids come from a module-global counter and depend on mount order, and\n * `parent` back-references make trees cyclic, so both are omitted. Props are\n * kept only when defined, so snapshots stay inline-sized and deterministic.\n */\nexport interface FrescoNodeSnapshot {\n type: FrescoNode[\"type\"];\n text?: string;\n props?: Record<string, unknown>;\n children?: FrescoNodeSnapshot[];\n}\n\nfunction definedProps(props: Record<string, unknown>): Record<string, unknown> | undefined {\n const entries = Object.entries(props).filter(([, value]) => value !== undefined);\n if (entries.length === 0) return undefined;\n return Object.fromEntries(entries);\n}\n\n/**\n * Convert a mounted node (or the harness root) into a plain snapshot object\n * suitable for `assert.deepEqual` against an inline expected structure.\n */\nexport function toTreeSnapshot(node: FrescoNode): FrescoNodeSnapshot {\n const snapshot: FrescoNodeSnapshot = { type: node.type };\n if (node.text !== undefined) snapshot.text = node.text;\n const props = definedProps(node.props);\n if (props) snapshot.props = props;\n if (node.children.length > 0) {\n snapshot.children = node.children.map((child) => toTreeSnapshot(child));\n }\n return snapshot;\n}\n\n/** Depth-first list of nodes matching a predicate, starting at `node`. */\nexport function findNodes(\n node: FrescoNode,\n predicate: (candidate: FrescoNode) => boolean,\n): FrescoNode[] {\n const matches: FrescoNode[] = [];\n const visit = (current: FrescoNode) => {\n if (predicate(current)) matches.push(current);\n for (const child of current.children) visit(child);\n };\n visit(node);\n return matches;\n}\n\n/** First mounted child under the harness root, asserting it exists. */\nexport function firstChild(mounted: MountedFresco): FrescoNode {\n const child = mounted.root.children[0];\n if (!child) throw new Error(\"expected the mounted tree to have a root child\");\n return child;\n}\n\n/** Convenience wrapper that renders `component` with `h` and mounts it. */\nexport function mountComponent(\n component: Component,\n props: Record<string, unknown> = {},\n slot?: () => VNodeChild,\n options: MountFrescoOptions = {},\n): MountedFresco {\n return mountFresco(() => h(component, props, slot), options);\n}\n","import type { AriaRole, AriaState } from \"../accessibility.js\";\nimport type { FrescoNode } from \"../renderer.js\";\nimport { findNodes } from \"./mount.js\";\n\nexport type FrescoTextMatcher = string | RegExp;\n\nexport interface FrescoRoleQueryOptions {\n readonly name?: FrescoTextMatcher;\n readonly description?: FrescoTextMatcher;\n readonly state?: AriaState;\n}\n\nfunction stringValue(value: unknown): string | undefined {\n if (typeof value === \"string\" || typeof value === \"number\") return String(value);\n return undefined;\n}\n\nfunction ownText(node: FrescoNode): string | undefined {\n if (node.text !== undefined) return node.text;\n const propText = node.props.text ?? node.props.content;\n if (typeof propText === \"string\" || typeof propText === \"number\") return String(propText);\n\n if (node.type === \"input\") {\n const value = node.props.value;\n const placeholder = node.props.placeholder;\n if (typeof value === \"string\" || typeof value === \"number\") return String(value);\n if (typeof placeholder === \"string\" || typeof placeholder === \"number\")\n return String(placeholder);\n }\n\n return undefined;\n}\n\nfunction accessibleName(node: FrescoNode): string {\n const ariaLabel = stringValue(node.props[\"aria-label\"]);\n if (ariaLabel !== undefined) return ariaLabel;\n\n const text = ownText(node);\n if (text !== undefined) return text;\n\n return node.children\n .map((child) => accessibleName(child))\n .filter(Boolean)\n .join(\" \");\n}\n\nfunction accessibleDescription(node: FrescoNode): string | undefined {\n return stringValue(\n node.props[\"aria-description\"] ?? node.props.ariaDescription ?? node.props.description,\n );\n}\n\nfunction matchesText(text: string, matcher: FrescoTextMatcher): boolean {\n if (typeof matcher === \"string\") return text === matcher;\n matcher.lastIndex = 0;\n return matcher.test(text);\n}\n\nfunction roleOf(node: FrescoNode): AriaRole | undefined {\n return stringValue(node.props[\"aria-role\"]) as AriaRole | undefined;\n}\n\nfunction testIdOf(node: FrescoNode): string | undefined {\n return stringValue(node.props[\"test-id\"] ?? node.props[\"data-testid\"]);\n}\n\nfunction stateOf(node: FrescoNode): AriaState {\n const state = node.props[\"aria-state\"];\n return state && typeof state === \"object\" ? (state as AriaState) : {};\n}\n\nfunction matchesState(node: FrescoNode, expected: AriaState | undefined): boolean {\n if (expected === undefined) return true;\n const actual = stateOf(node);\n return Object.entries(expected).every(([key, value]) => actual[key as keyof AriaState] === value);\n}\n\nfunction describeRole(role: AriaRole, options: FrescoRoleQueryOptions): string {\n const parts = [`role ${JSON.stringify(role)}`];\n if (options.name !== undefined) parts.push(`name ${String(options.name)}`);\n if (options.description !== undefined) parts.push(`description ${String(options.description)}`);\n if (options.state !== undefined) parts.push(`state ${JSON.stringify(options.state)}`);\n return parts.join(\", \");\n}\n\nfunction uniqueNode(nodes: readonly FrescoNode[], description: string): FrescoNode {\n if (nodes.length === 0) throw new Error(`Unable to find Fresco node with ${description}`);\n if (nodes.length > 1) throw new Error(`Found ${nodes.length} Fresco nodes with ${description}`);\n return nodes[0]!;\n}\n\nexport function queryAllByRole(\n root: FrescoNode,\n role: AriaRole,\n options: FrescoRoleQueryOptions = {},\n): FrescoNode[] {\n return findNodes(root, (node) => {\n if (roleOf(node) !== role) return false;\n if (options.name !== undefined && !matchesText(accessibleName(node), options.name))\n return false;\n if (\n options.description !== undefined &&\n !matchesText(accessibleDescription(node) ?? \"\", options.description)\n )\n return false;\n return matchesState(node, options.state);\n });\n}\n\nexport function getByRole(\n root: FrescoNode,\n role: AriaRole,\n options: FrescoRoleQueryOptions = {},\n): FrescoNode {\n return uniqueNode(queryAllByRole(root, role, options), describeRole(role, options));\n}\n\nexport function queryAllByText(root: FrescoNode, text: FrescoTextMatcher): FrescoNode[] {\n return findNodes(root, (node) => {\n const value = ownText(node);\n return value !== undefined && matchesText(value, text);\n });\n}\n\nexport function getByText(root: FrescoNode, text: FrescoTextMatcher): FrescoNode {\n return uniqueNode(queryAllByText(root, text), `text ${String(text)}`);\n}\n\nexport function queryAllByDescription(\n root: FrescoNode,\n description: FrescoTextMatcher,\n): FrescoNode[] {\n return findNodes(root, (node) => {\n const value = accessibleDescription(node);\n return value !== undefined && matchesText(value, description);\n });\n}\n\nexport function getByDescription(root: FrescoNode, description: FrescoTextMatcher): FrescoNode {\n return uniqueNode(queryAllByDescription(root, description), `description ${String(description)}`);\n}\n\nexport function queryAllByTestId(root: FrescoNode, testId: string): FrescoNode[] {\n return findNodes(root, (node) => testIdOf(node) === testId);\n}\n\nexport function getByTestId(root: FrescoNode, testId: string): FrescoNode {\n return uniqueNode(queryAllByTestId(root, testId), `test id ${JSON.stringify(testId)}`);\n}\n","/**\n * Test utilities for Fresco component and app behavior.\n *\n * The harness mounts through the real Vue custom renderer and records frames\n * without loading the native terminal binding, so it is safe in plain Node,\n * Vitest, and `node:test` suites.\n */\n\nimport { nextTick, type Component, type VNodeChild } from \"vue\";\nimport {\n lastCompositionEvent,\n lastFocusEvent,\n lastMouseEvent,\n lastPasteEvent,\n lastResizeEvent,\n type CompositionEvent,\n type FocusEvent,\n type KeyEvent,\n type MouseEvent,\n type PasteEvent,\n type ResizeEvent,\n} from \"../app.js\";\nimport type { FrescoNode } from \"../renderer.js\";\nimport {\n dispatchKey,\n mountFresco,\n toTreeSnapshot,\n type FrescoNodeSnapshot,\n type MountedFresco,\n type MountFrescoOptions,\n} from \"./mount.js\";\nimport { treeToRenderNodes } from \"../renderer.js\";\nimport type { FrescoRenderNode } from \"../protocol.js\";\n\nexport {\n dispatchKey,\n findNodes,\n firstChild,\n mountComponent,\n mountFresco,\n toTreeSnapshot,\n typeChars,\n type FrescoNodeSnapshot,\n type MountedFresco,\n type MountFrescoOptions,\n} from \"./mount.js\";\nexport {\n getByDescription,\n getByRole,\n getByTestId,\n getByText,\n queryAllByDescription,\n queryAllByRole,\n queryAllByTestId,\n queryAllByText,\n type FrescoRoleQueryOptions,\n type FrescoTextMatcher,\n} from \"./queries.js\";\nexport type { FrescoRenderNode } from \"../protocol.js\";\n\nexport type RenderTuiOptions = MountFrescoOptions;\nexport type RenderTuiRoot = Component | (() => VNodeChild);\nexport type KeyInput = Partial<Omit<KeyEvent, \"type\">>;\nexport type MouseInput = Omit<MouseEvent, \"type\">;\n\n/** A single recorded harness frame. */\nexport interface FrescoFrameSnapshot {\n /** Plain terminal output projected from the current mounted tree. */\n output: string;\n /** Serializable renderer tree for structural assertions. */\n tree: FrescoNodeSnapshot;\n /** Stable native protocol payload for assertions before crossing into Rust. */\n protocolNodes: readonly FrescoRenderNode[];\n}\n\n/** Input driver that injects events through Fresco's public event refs. */\nexport interface FrescoInputDriver {\n /** Dispatch a key event and record the resulting frame. */\n key(event: KeyInput): Promise<FrescoFrameSnapshot>;\n /** Dispatch each printable character and record one frame after the text. */\n text(text: string): Promise<FrescoFrameSnapshot>;\n /** Dispatch a bracketed paste payload and record the resulting frame. */\n paste(text: string): Promise<FrescoFrameSnapshot>;\n /** Update the provided app size, dispatch a resize event, and record a frame. */\n resize(width: number, height: number): Promise<FrescoFrameSnapshot>;\n /** Dispatch a mouse event and record the resulting frame. */\n mouse(event: MouseInput): Promise<FrescoFrameSnapshot>;\n /** Dispatch terminal focus state and record the resulting frame. */\n focus(focused: boolean): Promise<FrescoFrameSnapshot>;\n /** Dispatch a composition start event and record the resulting frame. */\n compositionStart(text?: string, cursor?: number): Promise<FrescoFrameSnapshot>;\n /** Dispatch a composition update event and record the resulting frame. */\n compositionUpdate(text: string, cursor: number): Promise<FrescoFrameSnapshot>;\n /** Dispatch a composition end event and record the resulting frame. */\n compositionEnd(text: string, cursor?: number): Promise<FrescoFrameSnapshot>;\n}\n\n/** Mounted TUI harness with frame history and input helpers. */\nexport interface RenderTuiResult extends MountedFresco {\n /** Recorded plain frames, including the initial mount frame. */\n readonly frames: readonly string[];\n /** Recorded frame snapshots, including the initial mount frame. */\n readonly frameSnapshots: readonly FrescoFrameSnapshot[];\n /** Event injection helpers. */\n readonly input: FrescoInputDriver;\n /** Record and return a fresh snapshot of the current mounted tree. */\n captureFrame(): FrescoFrameSnapshot;\n /** Return the latest recorded plain frame. */\n lastFrame(): string;\n /** Return the latest recorded frame snapshot. */\n frameSnapshot(): FrescoFrameSnapshot;\n}\n\nfunction nodeText(node: FrescoNode): string {\n if (node.text !== undefined) return node.text;\n const propText = node.props.text ?? node.props.content;\n if (typeof propText === \"string\" || typeof propText === \"number\") return String(propText);\n if (node.type !== \"input\") return \"\";\n\n const value = node.props.value;\n const placeholder = node.props.placeholder;\n if (typeof value === \"string\" || typeof value === \"number\") return String(value);\n if (typeof placeholder === \"string\" || typeof placeholder === \"number\")\n return String(placeholder);\n return \"\";\n}\n\nfunction isStaticNode(node: FrescoNode): boolean {\n return node.props.internal_static === true || node.props.internalStatic === true;\n}\n\nfunction joinOutput(parts: readonly string[], separator = \"\\n\"): string {\n return parts.filter(Boolean).join(separator);\n}\n\nfunction normalizeOutput(output: string): string {\n return output.endsWith(\"\\n\") ? output.slice(0, -1) : output;\n}\n\nfunction appendOutput(previous: string, next: string): string {\n const normalized = normalizeOutput(next);\n if (!normalized) return previous;\n return previous ? `${previous}\\n${normalized}` : normalized;\n}\n\nfunction treeToFrameOutput(node: FrescoNode, options: { skipStatic?: boolean } = {}): string {\n if (options.skipStatic && isStaticNode(node)) return \"\";\n\n const ownText = nodeText(node);\n const childOutput = node.children.map((child) => treeToFrameOutput(child, options));\n\n if (node.type === \"text\" || node.type === \"input\") {\n return `${ownText}${childOutput.join(\"\")}`;\n }\n\n const style = (node.props.style ?? {}) as Record<string, unknown>;\n const flexDirection = style.flexDirection ?? style.flex_direction;\n const separator = flexDirection === \"column\" ? \"\\n\" : \"\";\n return joinOutput(childOutput, separator);\n}\n\nfunction captureStaticOutput(node: FrescoNode, renderedStaticItems: Map<number, number>): string {\n const output: string[] = [];\n\n const visit = (current: FrescoNode) => {\n if (isStaticNode(current)) {\n const renderedItems = renderedStaticItems.get(current.id) ?? 0;\n const nextItems = current.children.slice(renderedItems);\n const nextOutput = joinOutput(\n nextItems.map((child) => treeToFrameOutput(child)),\n \"\\n\",\n );\n if (nextOutput) output.push(nextOutput);\n renderedStaticItems.set(current.id, current.children.length);\n return;\n }\n\n for (const child of current.children) visit(child);\n };\n\n visit(node);\n return joinOutput(output, \"\\n\");\n}\n\nfunction renderFrame(root: FrescoNode, staticOutput: string): string {\n return joinOutput([staticOutput, treeToFrameOutput(root, { skipStatic: true })], \"\\n\");\n}\n\nfunction latestSnapshot(snapshots: readonly FrescoFrameSnapshot[]): FrescoFrameSnapshot {\n const snapshot = snapshots[snapshots.length - 1];\n if (!snapshot) throw new Error(\"expected renderTui to record an initial frame\");\n return snapshot;\n}\n\nfunction protocolSnapshot(root: FrescoNode): FrescoRenderNode[] {\n const nodes = treeToRenderNodes(root);\n const ids = new Map(nodes.map((node, index) => [node.id, index - 1]));\n return nodes.map((node) => {\n const id = ids.get(node.id) ?? node.id;\n const children = node.children?.map((child) => ids.get(child) ?? child);\n return (\n children === undefined ? { ...node, id } : { ...node, id, children }\n ) as FrescoRenderNode;\n });\n}\n\nasync function dispatchPaste(text: string): Promise<void> {\n const event: PasteEvent = { type: \"paste\", text };\n lastPasteEvent.value = event;\n await nextTick();\n}\n\nasync function dispatchMouse(event: MouseInput): Promise<void> {\n lastMouseEvent.value = { type: \"mouse\", ...event };\n await nextTick();\n}\n\nasync function dispatchFocus(focused: boolean): Promise<void> {\n const event: FocusEvent = { type: \"focus\", focused };\n lastFocusEvent.value = event;\n await nextTick();\n}\n\nasync function dispatchComposition(\n type: CompositionEvent[\"type\"],\n text: string,\n cursor: number,\n): Promise<void> {\n lastCompositionEvent.value = { type, text, cursor };\n await nextTick();\n}\n\nasync function dispatchResize(\n mounted: MountedFresco,\n width: number,\n height: number,\n): Promise<void> {\n const event: ResizeEvent = { type: \"resize\", width, height };\n lastResizeEvent.value = event;\n mounted.appContext.width.value = width;\n mounted.appContext.height.value = height;\n await nextTick();\n}\n\n/** Mount a Fresco app for tests with frame snapshots and input injection. */\nexport function renderTui(root: RenderTuiRoot, options: RenderTuiOptions = {}): RenderTuiResult {\n const mounted = mountFresco(root, options);\n const frames: string[] = [];\n const frameSnapshots: FrescoFrameSnapshot[] = [];\n const renderedStaticItems = new Map<number, number>();\n let staticOutput = \"\";\n\n const captureFrame = () => {\n staticOutput = appendOutput(\n staticOutput,\n captureStaticOutput(mounted.root, renderedStaticItems),\n );\n const snapshot: FrescoFrameSnapshot = {\n output: renderFrame(mounted.root, staticOutput),\n tree: toTreeSnapshot(mounted.root),\n protocolNodes: protocolSnapshot(mounted.root),\n };\n frames.push(snapshot.output);\n frameSnapshots.push(snapshot);\n return snapshot;\n };\n\n const recordAfter = async (dispatch: Promise<void>) => {\n await dispatch;\n return captureFrame();\n };\n\n const input: FrescoInputDriver = {\n key: (event) => recordAfter(dispatchKey(event)),\n async text(text) {\n for (const char of text) {\n await dispatchKey({ char });\n }\n return captureFrame();\n },\n paste: (text) => recordAfter(dispatchPaste(text)),\n resize: (width, height) => recordAfter(dispatchResize(mounted, width, height)),\n mouse: (event) => recordAfter(dispatchMouse(event)),\n focus: (focused) => recordAfter(dispatchFocus(focused)),\n compositionStart: (text = \"\", cursor = 0) =>\n recordAfter(dispatchComposition(\"compositionstart\", text, cursor)),\n compositionUpdate: (text, cursor) =>\n recordAfter(dispatchComposition(\"compositionupdate\", text, cursor)),\n compositionEnd: (text, cursor = text.length) =>\n recordAfter(dispatchComposition(\"compositionend\", text, cursor)),\n };\n\n captureFrame();\n\n return {\n ...mounted,\n frames,\n frameSnapshots,\n input,\n captureFrame,\n lastFrame: () => latestSnapshot(frameSnapshots).output,\n frameSnapshot: () => latestSnapshot(frameSnapshots),\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["createRenderer"],"sources":["../../src/testing/mount.ts","../../src/testing/queries.ts","../../src/testing/index.ts"],"sourcesContent":["/**\n * Test-only mount harness for the Fresco JS layer.\n *\n * Fresco's renderer is pure JS up to the byte boundary that crosses into the\n * native module: `renderer.ts` imports only types from `@vizejs/fresco-native`,\n * and `app.ts` loads the native binding lazily and only in interactive mode.\n * This harness mounts components through the real custom renderer with the\n * same provide set `createApp`/`renderToString` install, so tests assert the\n * mounted `FrescoNode` output tree without a native build and without mocks.\n *\n * Not exported from the package entry points; `vp pack` does not ship it.\n */\n\nimport {\n h,\n ref,\n nextTick,\n type App as VueApp,\n type Component,\n type Ref,\n type VNodeChild,\n} from \"vue\";\nimport { SCREEN_READER_KEY } from \"../accessibility.js\";\nimport { lastKeyEvent, type KeyEvent } from \"../app.js\";\nimport { APP_KEY, createAppContext, type UseAppReturn } from \"../composables/useApp.js\";\nimport { createCursorContext, CURSOR_KEY } from \"../composables/useCursor.js\";\nimport { createFocusManager, FOCUS_KEY, type FocusManager } from \"../composables/useFocus.js\";\nimport { createStreamsContext, STREAMS_KEY } from \"../composables/useStreams.js\";\nimport {\n createRenderer,\n type FrescoElement,\n type FrescoNode,\n type FrescoNodeLifecycleHooks,\n} from \"../renderer.js\";\n\n/** Options for {@link mountFresco}. */\nexport interface MountFrescoOptions {\n /** Terminal width provided through the app context. Defaults to 80. */\n width?: number;\n /** Terminal height provided through the app context. Defaults to 24. */\n height?: number;\n /** Initial screen reader mode. Defaults to false. */\n screenReader?: boolean;\n /** Observe host-tree mutations that require a native frame. */\n onMutation?: () => void;\n /** Observe host-node lifecycle transitions. */\n lifecycle?: FrescoNodeLifecycleHooks;\n}\n\n/** A mounted Fresco component tree under test. */\nexport interface MountedFresco {\n /** Root element the Vue app mounted into; children form the output tree. */\n root: FrescoElement;\n /** The Vue app instance (for `provide`-level introspection if needed). */\n app: VueApp<FrescoElement>;\n /** App context provided to composables such as `useApp` and `useWindowSize`. */\n appContext: UseAppReturn;\n /** Focus manager provided to the tree, as the real app would. */\n focusManager: FocusManager;\n /** Screen reader flag provided to the tree; writable to flip modes. */\n screenReaderEnabled: Ref<boolean>;\n /** Renderer controls for stable lookup and recursive disposal. */\n renderer: ReturnType<typeof createRenderer>;\n /** Unmount the tree and dispose all component watchers. */\n unmount(): void;\n}\n\n/**\n * Mount a component (or a plain render function) through the Fresco renderer.\n *\n * The returned {@link MountedFresco.root} is live: re-read it after reactive\n * updates plus `await nextTick()` to observe the patched output tree.\n */\nexport function mountFresco(\n root: Component | (() => VNodeChild),\n options: MountFrescoOptions = {},\n): MountedFresco {\n const renderer = createRenderer({\n onMutation: options.onMutation,\n lifecycle: options.lifecycle,\n });\n const { createApp } = renderer;\n const component: Component = typeof root === \"function\" ? { setup: () => root } : root;\n const app = createApp(component);\n\n const focusManager = createFocusManager();\n const screenReaderEnabled = ref(options.screenReader ?? false);\n const noopWrite = () => {};\n const width = options.width ?? 80;\n const height = options.height ?? 24;\n // A detached stdout stand-in keeps createAppContext from attaching resize\n // listeners to the real process.stdout on every mounted test tree.\n const stdout = {\n isTTY: false,\n columns: width,\n rows: height,\n write: () => true,\n } as unknown as NodeJS.WriteStream;\n\n const appContext = createAppContext({ width, height, stdout });\n app.provide(APP_KEY, appContext);\n app.provide(FOCUS_KEY, focusManager);\n app.provide(SCREEN_READER_KEY, screenReaderEnabled);\n app.provide(CURSOR_KEY, createCursorContext(noopWrite));\n app.provide(\n STREAMS_KEY,\n createStreamsContext({\n interactive: false,\n writeToStdout: noopWrite,\n writeToStderr: noopWrite,\n }),\n );\n\n const rootElement: FrescoElement = {\n id: -1,\n type: \"root\",\n props: {},\n children: [],\n parent: null,\n };\n app.mount(rootElement);\n\n return {\n root: rootElement,\n app,\n appContext,\n focusManager,\n screenReaderEnabled,\n renderer,\n unmount: () => app.unmount(),\n };\n}\n\n/**\n * Dispatch a key event through the same `lastKeyEvent` ref the interactive\n * event loop writes, then wait for watchers to flush.\n *\n * Pass `char` for printable input or `key` for named keys (\"left\", \"enter\",\n * \"backspace\", ...). Modifiers default to false.\n */\nexport function dispatchKey(event: Partial<Omit<KeyEvent, \"type\">>): Promise<void> {\n lastKeyEvent.value = {\n type: \"key\",\n ctrl: false,\n alt: false,\n shift: false,\n meta: false,\n super: false,\n hyper: false,\n capsLock: false,\n numLock: false,\n ...event,\n };\n return nextTick();\n}\n\n/** Dispatch a sequence of printable characters via {@link dispatchKey}. */\nexport async function typeChars(text: string): Promise<void> {\n for (const char of text) {\n await dispatchKey({ char });\n }\n}\n\n/**\n * Serializable snapshot of a mounted output tree.\n *\n * Node ids come from a module-global counter and depend on mount order, and\n * `parent` back-references make trees cyclic, so both are omitted. Props are\n * kept only when defined, so snapshots stay inline-sized and deterministic.\n */\nexport interface FrescoNodeSnapshot {\n type: FrescoNode[\"type\"];\n text?: string;\n props?: Record<string, unknown>;\n children?: FrescoNodeSnapshot[];\n}\n\nfunction definedProps(props: Record<string, unknown>): Record<string, unknown> | undefined {\n const entries = Object.entries(props).filter(([, value]) => value !== undefined);\n if (entries.length === 0) return undefined;\n return Object.fromEntries(entries);\n}\n\n/**\n * Convert a mounted node (or the harness root) into a plain snapshot object\n * suitable for `assert.deepEqual` against an inline expected structure.\n */\nexport function toTreeSnapshot(node: FrescoNode): FrescoNodeSnapshot {\n const snapshot: FrescoNodeSnapshot = { type: node.type };\n if (node.text !== undefined) snapshot.text = node.text;\n const props = definedProps(node.props);\n if (props) snapshot.props = props;\n if (node.children.length > 0) {\n snapshot.children = node.children.map((child) => toTreeSnapshot(child));\n }\n return snapshot;\n}\n\n/** Depth-first list of nodes matching a predicate, starting at `node`. */\nexport function findNodes(\n node: FrescoNode,\n predicate: (candidate: FrescoNode) => boolean,\n): FrescoNode[] {\n const matches: FrescoNode[] = [];\n const visit = (current: FrescoNode) => {\n if (predicate(current)) matches.push(current);\n for (const child of current.children) visit(child);\n };\n visit(node);\n return matches;\n}\n\n/** First mounted child under the harness root, asserting it exists. */\nexport function firstChild(mounted: MountedFresco): FrescoNode {\n const child = mounted.root.children[0];\n if (!child) throw new Error(\"expected the mounted tree to have a root child\");\n return child;\n}\n\n/** Convenience wrapper that renders `component` with `h` and mounts it. */\nexport function mountComponent(\n component: Component,\n props: Record<string, unknown> = {},\n slot?: () => VNodeChild,\n options: MountFrescoOptions = {},\n): MountedFresco {\n return mountFresco(() => h(component, props, slot), options);\n}\n","import type { AriaRole, AriaState } from \"../accessibility.js\";\nimport type { FrescoNode } from \"../renderer.js\";\nimport { findNodes } from \"./mount.js\";\n\nexport type FrescoTextMatcher = string | RegExp;\n\nexport interface FrescoRoleQueryOptions {\n readonly name?: FrescoTextMatcher;\n readonly description?: FrescoTextMatcher;\n readonly state?: AriaState;\n}\n\nfunction stringValue(value: unknown): string | undefined {\n if (typeof value === \"string\" || typeof value === \"number\") return String(value);\n return undefined;\n}\n\nfunction ownText(node: FrescoNode): string | undefined {\n if (node.text !== undefined) return node.text;\n const propText = node.props.text ?? node.props.content;\n if (typeof propText === \"string\" || typeof propText === \"number\") return String(propText);\n\n if (node.type === \"input\") {\n const value = node.props.value;\n const placeholder = node.props.placeholder;\n if (typeof value === \"string\" || typeof value === \"number\") return String(value);\n if (typeof placeholder === \"string\" || typeof placeholder === \"number\")\n return String(placeholder);\n }\n\n return undefined;\n}\n\nfunction accessibleName(node: FrescoNode): string {\n const ariaLabel = stringValue(node.props[\"aria-label\"]);\n if (ariaLabel !== undefined) return ariaLabel;\n\n const text = ownText(node);\n if (text !== undefined) return text;\n\n return node.children\n .map((child) => accessibleName(child))\n .filter(Boolean)\n .join(\" \");\n}\n\nfunction accessibleDescription(node: FrescoNode): string | undefined {\n return stringValue(\n node.props[\"aria-description\"] ?? node.props.ariaDescription ?? node.props.description,\n );\n}\n\nfunction matchesText(text: string, matcher: FrescoTextMatcher): boolean {\n if (typeof matcher === \"string\") return text === matcher;\n matcher.lastIndex = 0;\n return matcher.test(text);\n}\n\nfunction roleOf(node: FrescoNode): AriaRole | undefined {\n return stringValue(node.props[\"aria-role\"]) as AriaRole | undefined;\n}\n\nfunction testIdOf(node: FrescoNode): string | undefined {\n return stringValue(node.props[\"test-id\"] ?? node.props[\"data-testid\"]);\n}\n\nfunction stateOf(node: FrescoNode): AriaState {\n const state = node.props[\"aria-state\"];\n return state && typeof state === \"object\" ? (state as AriaState) : {};\n}\n\nfunction matchesState(node: FrescoNode, expected: AriaState | undefined): boolean {\n if (expected === undefined) return true;\n const actual = stateOf(node);\n return Object.entries(expected).every(([key, value]) => actual[key as keyof AriaState] === value);\n}\n\nfunction describeRole(role: AriaRole, options: FrescoRoleQueryOptions): string {\n const parts = [`role ${JSON.stringify(role)}`];\n if (options.name !== undefined) parts.push(`name ${String(options.name)}`);\n if (options.description !== undefined) parts.push(`description ${String(options.description)}`);\n if (options.state !== undefined) parts.push(`state ${JSON.stringify(options.state)}`);\n return parts.join(\", \");\n}\n\nfunction uniqueNode(nodes: readonly FrescoNode[], description: string): FrescoNode {\n if (nodes.length === 0) throw new Error(`Unable to find Fresco node with ${description}`);\n if (nodes.length > 1) throw new Error(`Found ${nodes.length} Fresco nodes with ${description}`);\n return nodes[0]!;\n}\n\nexport function queryAllByRole(\n root: FrescoNode,\n role: AriaRole,\n options: FrescoRoleQueryOptions = {},\n): FrescoNode[] {\n return findNodes(root, (node) => {\n if (roleOf(node) !== role) return false;\n if (options.name !== undefined && !matchesText(accessibleName(node), options.name))\n return false;\n if (\n options.description !== undefined &&\n !matchesText(accessibleDescription(node) ?? \"\", options.description)\n )\n return false;\n return matchesState(node, options.state);\n });\n}\n\nexport function getByRole(\n root: FrescoNode,\n role: AriaRole,\n options: FrescoRoleQueryOptions = {},\n): FrescoNode {\n return uniqueNode(queryAllByRole(root, role, options), describeRole(role, options));\n}\n\nexport function queryAllByText(root: FrescoNode, text: FrescoTextMatcher): FrescoNode[] {\n return findNodes(root, (node) => {\n const value = ownText(node);\n return value !== undefined && matchesText(value, text);\n });\n}\n\nexport function getByText(root: FrescoNode, text: FrescoTextMatcher): FrescoNode {\n return uniqueNode(queryAllByText(root, text), `text ${String(text)}`);\n}\n\nexport function queryAllByDescription(\n root: FrescoNode,\n description: FrescoTextMatcher,\n): FrescoNode[] {\n return findNodes(root, (node) => {\n const value = accessibleDescription(node);\n return value !== undefined && matchesText(value, description);\n });\n}\n\nexport function getByDescription(root: FrescoNode, description: FrescoTextMatcher): FrescoNode {\n return uniqueNode(queryAllByDescription(root, description), `description ${String(description)}`);\n}\n\nexport function queryAllByTestId(root: FrescoNode, testId: string): FrescoNode[] {\n return findNodes(root, (node) => testIdOf(node) === testId);\n}\n\nexport function getByTestId(root: FrescoNode, testId: string): FrescoNode {\n return uniqueNode(queryAllByTestId(root, testId), `test id ${JSON.stringify(testId)}`);\n}\n","/**\n * Test utilities for Fresco component and app behavior.\n *\n * The harness mounts through the real Vue custom renderer and records frames\n * without loading the native terminal binding, so it is safe in plain Node,\n * Vitest, and `node:test` suites.\n */\n\nimport { nextTick, type Component, type VNodeChild } from \"vue\";\nimport {\n lastCompositionEvent,\n lastFocusEvent,\n lastMouseEvent,\n lastPasteEvent,\n lastResizeEvent,\n type CompositionEvent,\n type FocusEvent,\n type KeyEvent,\n type MouseEvent,\n type PasteEvent,\n type ResizeEvent,\n} from \"../app.js\";\nimport type { FrescoNode } from \"../renderer.js\";\nimport {\n dispatchKey,\n mountFresco,\n toTreeSnapshot,\n type FrescoNodeSnapshot,\n type MountedFresco,\n type MountFrescoOptions,\n} from \"./mount.js\";\nimport { treeToRenderNodes } from \"../renderer.js\";\nimport { isStaticItemNode, isStaticNode } from \"../staticNodes.js\";\nimport type { FrescoRenderNode } from \"../protocol.js\";\n\nexport {\n dispatchKey,\n findNodes,\n firstChild,\n mountComponent,\n mountFresco,\n toTreeSnapshot,\n typeChars,\n type FrescoNodeSnapshot,\n type MountedFresco,\n type MountFrescoOptions,\n} from \"./mount.js\";\nexport {\n getByDescription,\n getByRole,\n getByTestId,\n getByText,\n queryAllByDescription,\n queryAllByRole,\n queryAllByTestId,\n queryAllByText,\n type FrescoRoleQueryOptions,\n type FrescoTextMatcher,\n} from \"./queries.js\";\nexport type { FrescoRenderNode } from \"../protocol.js\";\n\nexport type RenderTuiOptions = MountFrescoOptions;\nexport type RenderTuiRoot = Component | (() => VNodeChild);\nexport type KeyInput = Partial<Omit<KeyEvent, \"type\">>;\nexport type MouseInput = Omit<MouseEvent, \"type\">;\n\n/** A single recorded harness frame. */\nexport interface FrescoFrameSnapshot {\n /** Plain terminal output projected from the current mounted tree. */\n output: string;\n /** Serializable renderer tree for structural assertions. */\n tree: FrescoNodeSnapshot;\n /** Stable native protocol payload for assertions before crossing into Rust. */\n protocolNodes: readonly FrescoRenderNode[];\n}\n\n/** Input driver that injects events through Fresco's public event refs. */\nexport interface FrescoInputDriver {\n /** Dispatch a key event and record the resulting frame. */\n key(event: KeyInput): Promise<FrescoFrameSnapshot>;\n /** Dispatch each printable character and record one frame after the text. */\n text(text: string): Promise<FrescoFrameSnapshot>;\n /** Dispatch a bracketed paste payload and record the resulting frame. */\n paste(text: string): Promise<FrescoFrameSnapshot>;\n /** Update the provided app size, dispatch a resize event, and record a frame. */\n resize(width: number, height: number): Promise<FrescoFrameSnapshot>;\n /** Dispatch a mouse event and record the resulting frame. */\n mouse(event: MouseInput): Promise<FrescoFrameSnapshot>;\n /** Dispatch terminal focus state and record the resulting frame. */\n focus(focused: boolean): Promise<FrescoFrameSnapshot>;\n /** Dispatch a composition start event and record the resulting frame. */\n compositionStart(text?: string, cursor?: number): Promise<FrescoFrameSnapshot>;\n /** Dispatch a composition update event and record the resulting frame. */\n compositionUpdate(text: string, cursor: number): Promise<FrescoFrameSnapshot>;\n /** Dispatch a composition end event and record the resulting frame. */\n compositionEnd(text: string, cursor?: number): Promise<FrescoFrameSnapshot>;\n}\n\n/** Mounted TUI harness with frame history and input helpers. */\nexport interface RenderTuiResult extends MountedFresco {\n /** Recorded plain frames, including the initial mount frame. */\n readonly frames: readonly string[];\n /** Recorded frame snapshots, including the initial mount frame. */\n readonly frameSnapshots: readonly FrescoFrameSnapshot[];\n /** Event injection helpers. */\n readonly input: FrescoInputDriver;\n /** Record and return a fresh snapshot of the current mounted tree. */\n captureFrame(): FrescoFrameSnapshot;\n /** Return the latest recorded plain frame. */\n lastFrame(): string;\n /** Return the latest recorded frame snapshot. */\n frameSnapshot(): FrescoFrameSnapshot;\n}\n\nfunction nodeText(node: FrescoNode): string {\n if (node.text !== undefined) return node.text;\n const propText = node.props.text ?? node.props.content;\n if (typeof propText === \"string\" || typeof propText === \"number\") return String(propText);\n if (node.type !== \"input\") return \"\";\n\n const value = node.props.value;\n const placeholder = node.props.placeholder;\n if (typeof value === \"string\" || typeof value === \"number\") return String(value);\n if (typeof placeholder === \"string\" || typeof placeholder === \"number\")\n return String(placeholder);\n return \"\";\n}\n\nfunction joinOutput(parts: readonly string[], separator = \"\\n\"): string {\n return parts.filter(Boolean).join(separator);\n}\n\nfunction normalizeOutput(output: string): string {\n return output.endsWith(\"\\n\") ? output.slice(0, -1) : output;\n}\n\nfunction appendOutput(previous: string, next: string): string {\n const normalized = normalizeOutput(next);\n if (!normalized) return previous;\n return previous ? `${previous}\\n${normalized}` : normalized;\n}\n\nfunction treeToFrameOutput(node: FrescoNode, options: { skipStatic?: boolean } = {}): string {\n if (options.skipStatic && isStaticNode(node)) return \"\";\n\n const ownText = nodeText(node);\n const childOutput = node.children.map((child) => treeToFrameOutput(child, options));\n\n if (node.type === \"text\" || node.type === \"input\") {\n return `${ownText}${childOutput.join(\"\")}`;\n }\n\n const style = (node.props.style ?? {}) as Record<string, unknown>;\n const flexDirection = style.flexDirection ?? style.flex_direction;\n const separator = flexDirection === \"column\" ? \"\\n\" : \"\";\n return joinOutput(childOutput, separator);\n}\n\nfunction captureStaticOutput(node: FrescoNode, renderedStaticItems: Map<number, number>): string {\n const output: string[] = [];\n\n const visit = (current: FrescoNode) => {\n if (isStaticNode(current)) {\n const renderedItems = renderedStaticItems.get(current.id) ?? 0;\n const staticItems = current.children.filter(isStaticItemNode);\n const nextItems = staticItems.slice(renderedItems);\n const nextOutput = joinOutput(\n nextItems.map((child) => treeToFrameOutput(child)),\n \"\\n\",\n );\n if (nextOutput) output.push(nextOutput);\n renderedStaticItems.set(current.id, staticItems.length);\n return;\n }\n\n for (const child of current.children) visit(child);\n };\n\n visit(node);\n return joinOutput(output, \"\\n\");\n}\n\nfunction renderFrame(root: FrescoNode, staticOutput: string): string {\n return joinOutput([staticOutput, treeToFrameOutput(root, { skipStatic: true })], \"\\n\");\n}\n\nfunction latestSnapshot(snapshots: readonly FrescoFrameSnapshot[]): FrescoFrameSnapshot {\n const snapshot = snapshots[snapshots.length - 1];\n if (!snapshot) throw new Error(\"expected renderTui to record an initial frame\");\n return snapshot;\n}\n\nfunction protocolSnapshot(root: FrescoNode): FrescoRenderNode[] {\n const nodes = treeToRenderNodes(root);\n const ids = new Map(nodes.map((node, index) => [node.id, index - 1]));\n return nodes.map((node) => {\n const id = ids.get(node.id) ?? node.id;\n const children = node.children?.map((child) => ids.get(child) ?? child);\n return (\n children === undefined ? { ...node, id } : { ...node, id, children }\n ) as FrescoRenderNode;\n });\n}\n\nasync function dispatchPaste(text: string): Promise<void> {\n const event: PasteEvent = { type: \"paste\", text };\n lastPasteEvent.value = event;\n await nextTick();\n}\n\nasync function dispatchMouse(event: MouseInput): Promise<void> {\n lastMouseEvent.value = { type: \"mouse\", ...event };\n await nextTick();\n}\n\nasync function dispatchFocus(focused: boolean): Promise<void> {\n const event: FocusEvent = { type: \"focus\", focused };\n lastFocusEvent.value = event;\n await nextTick();\n}\n\nasync function dispatchComposition(\n type: CompositionEvent[\"type\"],\n text: string,\n cursor: number,\n): Promise<void> {\n lastCompositionEvent.value = { type, text, cursor };\n await nextTick();\n}\n\nasync function dispatchResize(\n mounted: MountedFresco,\n width: number,\n height: number,\n): Promise<void> {\n const event: ResizeEvent = { type: \"resize\", width, height };\n lastResizeEvent.value = event;\n mounted.appContext.width.value = width;\n mounted.appContext.height.value = height;\n await nextTick();\n}\n\n/** Mount a Fresco app for tests with frame snapshots and input injection. */\nexport function renderTui(root: RenderTuiRoot, options: RenderTuiOptions = {}): RenderTuiResult {\n const mounted = mountFresco(root, options);\n const frames: string[] = [];\n const frameSnapshots: FrescoFrameSnapshot[] = [];\n const renderedStaticItems = new Map<number, number>();\n let staticOutput = \"\";\n\n const captureFrame = () => {\n staticOutput = appendOutput(\n staticOutput,\n captureStaticOutput(mounted.root, renderedStaticItems),\n );\n const snapshot: FrescoFrameSnapshot = {\n output: renderFrame(mounted.root, staticOutput),\n tree: toTreeSnapshot(mounted.root),\n protocolNodes: protocolSnapshot(mounted.root),\n };\n frames.push(snapshot.output);\n frameSnapshots.push(snapshot);\n return snapshot;\n };\n\n const recordAfter = async (dispatch: Promise<void>) => {\n await dispatch;\n return captureFrame();\n };\n\n const input: FrescoInputDriver = {\n key: (event) => recordAfter(dispatchKey(event)),\n async text(text) {\n for (const char of text) {\n await dispatchKey({ char });\n }\n return captureFrame();\n },\n paste: (text) => recordAfter(dispatchPaste(text)),\n resize: (width, height) => recordAfter(dispatchResize(mounted, width, height)),\n mouse: (event) => recordAfter(dispatchMouse(event)),\n focus: (focused) => recordAfter(dispatchFocus(focused)),\n compositionStart: (text = \"\", cursor = 0) =>\n recordAfter(dispatchComposition(\"compositionstart\", text, cursor)),\n compositionUpdate: (text, cursor) =>\n recordAfter(dispatchComposition(\"compositionupdate\", text, cursor)),\n compositionEnd: (text, cursor = text.length) =>\n recordAfter(dispatchComposition(\"compositionend\", text, cursor)),\n };\n\n captureFrame();\n\n return {\n ...mounted,\n frames,\n frameSnapshots,\n input,\n captureFrame,\n lastFrame: () => latestSnapshot(frameSnapshots).output,\n frameSnapshot: () => latestSnapshot(frameSnapshots),\n };\n}\n"],"mappings":"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"}
|