@vizejs/fresco 0.712.0 → 0.714.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/accessibility-D1R9HiTE.d.mts +40 -0
  2. package/dist/accessibility-D1R9HiTE.d.mts.map +1 -0
  3. package/dist/{app-D1EmYPR5.mjs → app-DoXcF_Dn.mjs} +23 -8
  4. package/dist/app-DoXcF_Dn.mjs.map +1 -0
  5. package/dist/{app-BnHjO4sM.d.mts → app-adHHi99c.d.mts} +2 -2
  6. package/dist/{app-BnHjO4sM.d.mts.map → app-adHHi99c.d.mts.map} +1 -1
  7. package/dist/components/index.d.mts +2 -2
  8. package/dist/components/index.mjs +2 -2
  9. package/dist/{components-CqGU-NNE.mjs → components-DWIDBGTL.mjs} +299 -4
  10. package/dist/components-DWIDBGTL.mjs.map +1 -0
  11. package/dist/composables/index.d.mts +3 -2
  12. package/dist/composables/index.mjs +4 -4
  13. package/dist/{composables-CZLZwicA.mjs → composables-b_R5s4QQ.mjs} +3 -3
  14. package/dist/{composables-CZLZwicA.mjs.map → composables-b_R5s4QQ.mjs.map} +1 -1
  15. package/dist/{index-DqiuvriA.d.mts → index-B-asCcvK.d.mts} +20 -2
  16. package/dist/index-B-asCcvK.d.mts.map +1 -0
  17. package/dist/{index-DHSs5acI.d.mts → index-Ck5VFXgP.d.mts} +103 -34
  18. package/dist/index-Ck5VFXgP.d.mts.map +1 -0
  19. package/dist/index.d.mts +7 -5
  20. package/dist/index.mjs +5 -5
  21. package/dist/{accessibility-CsJ09kle.d.mts → protocol--xy80nuC.d.mts} +5 -25
  22. package/dist/protocol--xy80nuC.d.mts.map +1 -0
  23. package/dist/testing/index.d.mts +2 -1
  24. package/dist/testing/index.d.mts.map +1 -1
  25. package/dist/testing/index.mjs +1 -1
  26. package/dist/{useInput-BmjmkjZ9.mjs → useVirtualViewport-CcJuIc7U.mjs} +113 -4
  27. package/dist/useVirtualViewport-CcJuIc7U.mjs.map +1 -0
  28. package/dist/useVirtualViewport-TxTapifg.d.mts +49 -0
  29. package/dist/useVirtualViewport-TxTapifg.d.mts.map +1 -0
  30. package/package.json +11 -6
  31. package/dist/accessibility-CsJ09kle.d.mts.map +0 -1
  32. package/dist/app-D1EmYPR5.mjs.map +0 -1
  33. package/dist/components-CqGU-NNE.mjs.map +0 -1
  34. package/dist/index-DHSs5acI.d.mts.map +0 -1
  35. package/dist/index-DqiuvriA.d.mts.map +0 -1
  36. package/dist/useInput-BmjmkjZ9.mjs.map +0 -1
@@ -1,5 +1,3 @@
1
- import { Ref, RendererElement, RendererNode } from "vue";
2
-
3
1
  //#region src/protocol.d.ts
4
2
  /** Public JavaScript protocol shared by Fresco components and the renderer. */
5
3
  type FrescoRenderNodeKind = "root" | "box" | "text" | "input";
@@ -158,11 +156,14 @@ interface ResizeEvent {
158
156
  width: number;
159
157
  height: number;
160
158
  }
159
+ type FrescoMouseEventKind = "down" | "up" | "drag" | "moved" | "scroll-up" | "scroll-down" | "scroll-left" | "scroll-right";
161
160
  interface MouseEvent {
162
161
  type: "mouse";
162
+ kind?: FrescoMouseEventKind;
163
163
  button?: string;
164
164
  x: number;
165
165
  y: number;
166
+ modifiers?: FrescoModifiers;
166
167
  }
167
168
  interface FocusEvent {
168
169
  type: "focus";
@@ -177,26 +178,5 @@ type FrescoInputEvent = StrictUnion<KeyEvent | PasteEvent | ResizeEvent | MouseE
177
178
  /** Compatibility alias for the pre-protocol event union name. */
178
179
  type InputEvent = FrescoInputEvent;
179
180
  //#endregion
180
- //#region src/renderer.d.ts
181
- /** @internal Mutable Vue host node; not part of the public render protocol. */
182
- interface FrescoNode extends RendererNode {
183
- id: number;
184
- type: FrescoRenderNodeKind;
185
- props: Record<string, unknown>;
186
- children: FrescoNode[];
187
- parent: FrescoNode | null;
188
- text?: string;
189
- }
190
- /** @internal Mutable Vue host element; not part of the public render protocol. */
191
- interface FrescoElement extends FrescoNode, RendererElement {}
192
- /**
193
- * Create the Fresco renderer
194
- */
195
- declare function createRenderer$1(): import("vue").Renderer<FrescoElement>;
196
- //#endregion
197
- //#region src/accessibility.d.ts
198
- type AriaRole = "button" | "checkbox" | "combobox" | "list" | "listbox" | "listitem" | "menu" | "menuitem" | "option" | "progressbar" | "radio" | "radiogroup" | "tab" | "tablist" | "table" | "textbox" | "timer" | "toolbar";
199
- type AriaState = Partial<Record<"busy" | "checked" | "disabled" | "expanded" | "multiline" | "multiselectable" | "readonly" | "required" | "selected", boolean>>;
200
- //#endregion
201
- export { FrescoStyle as A, FrescoOverflow as C, FrescoRenderStyle as D, FrescoRenderNodeKind as E, KeyEventType as F, MouseEvent as I, PasteEvent as L, FrescoTextWrapMode as M, InputEvent as N, FrescoRootRenderNode as O, KeyEvent as P, ResizeEvent as R, FrescoModifiers as S, FrescoRenderNode as T, FrescoFlexDirection as _, createRenderer$1 as a, FrescoInputRenderNode as b, FrescoAlignContent as c, FrescoAppearance as d, FrescoBorderStyle as f, FrescoDisplay as g, FrescoDimension as h, FrescoNode as i, FrescoTextRenderNode as j, FrescoSnakeStyleAliases as k, FrescoAlignItems as l, FrescoCanonicalStyle as m, AriaState as n, CompositionEvent as o, FrescoBoxRenderNode as p, FrescoElement as r, FocusEvent as s, AriaRole as t, FrescoAlignSelf as u, FrescoFlexWrap as v, FrescoPosition as w, FrescoJustifyContent as x, FrescoInputEvent as y };
202
- //# sourceMappingURL=accessibility-CsJ09kle.d.mts.map
181
+ 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--xy80nuC.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol--xy80nuC.d.mts","names":[],"sources":["../src/protocol.ts"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { I as MouseEvent, P as KeyEvent, T as FrescoRenderNode, i as FrescoNode, n as AriaState, r as FrescoElement, t as AriaRole } from "../accessibility-CsJ09kle.mjs";
1
+ import { A as KeyEvent, M as MouseEvent, x as FrescoRenderNode } from "../protocol--xy80nuC.mjs";
2
+ import { i as FrescoNode, n as AriaState, r as FrescoElement, t as AriaRole } from "../accessibility-D1R9HiTE.mjs";
2
3
  import { r as FocusManager, t as UseAppReturn } from "../useApp-CVB2jNCO.mjs";
3
4
  import { App, Component, Ref, VNodeChild } from "vue";
4
5
 
@@ -1 +1 @@
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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"}
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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"}
@@ -1,4 +1,4 @@
1
- import { O as APP_KEY, T as createFocusManager, a as lastMouseEvent, d as treeToRenderNodes, g as createCursorContext, h as CURSOR_KEY, i as lastKeyEvent, j as SCREEN_READER_KEY, k as createAppContext, n as lastCompositionEvent, o as lastPasteEvent, r as lastFocusEvent, s as lastResizeEvent, u as createRenderer$1, v as STREAMS_KEY, w as FOCUS_KEY, y as createStreamsContext } from "../app-D1EmYPR5.mjs";
1
+ import { O as APP_KEY, T as createFocusManager, a as lastMouseEvent, d as treeToRenderNodes, g as createCursorContext, h as CURSOR_KEY, i as lastKeyEvent, j as SCREEN_READER_KEY, k as createAppContext, n as lastCompositionEvent, o as lastPasteEvent, r as lastFocusEvent, s as lastResizeEvent, u as createRenderer$1, v as STREAMS_KEY, w as FOCUS_KEY, y as createStreamsContext } from "../app-DoXcF_Dn.mjs";
2
2
  import { h, nextTick, ref } from "vue";
3
3
  //#region src/testing/mount.ts
4
4
  /**
@@ -1,5 +1,5 @@
1
- import { C as useStreamsContext, M as isScreenReaderEnabledByDefault, i as lastKeyEvent, j as SCREEN_READER_KEY, n as lastCompositionEvent, o as lastPasteEvent } from "./app-D1EmYPR5.mjs";
2
- import { inject, isRef, onUnmounted, ref, watch } from "vue";
1
+ import { C as useStreamsContext, M as isScreenReaderEnabledByDefault, a as lastMouseEvent, i as lastKeyEvent, j as SCREEN_READER_KEY, n as lastCompositionEvent, o as lastPasteEvent } from "./app-DoXcF_Dn.mjs";
2
+ import { computed, inject, isRef, onUnmounted, ref, watch } from "vue";
3
3
  //#region src/composables/useIsScreenReaderEnabled.ts
4
4
  /**
5
5
  * useIsScreenReaderEnabled - screen reader mode flag.
@@ -214,6 +214,115 @@ function useKeyPress(key, handler, options = {}) {
214
214
  } });
215
215
  }
216
216
  //#endregion
217
- export { useIsScreenReaderEnabled as i, useKeyPress as n, usePaste as r, useInput as t };
217
+ //#region src/composables/useMouse.ts
218
+ /** Mouse and wheel input handling for focused Fresco surfaces. */
219
+ /** Subscribe to normalized mouse actions, including wheel direction. */
220
+ function useMouse(handler, options = {}) {
221
+ const externalIsActive = isRef(options.isActive) ? options.isActive : void 0;
222
+ const locallyEnabled = ref(externalIsActive ? true : options.isActive ?? true);
223
+ const isActive = computed(() => locallyEnabled.value && (externalIsActive?.value ?? true));
224
+ return {
225
+ isActive,
226
+ enable: () => {
227
+ locallyEnabled.value = true;
228
+ },
229
+ disable: () => {
230
+ locallyEnabled.value = false;
231
+ },
232
+ stop: watch(lastMouseEvent, (event) => {
233
+ if (event && isActive.value) handler(event);
234
+ }, { flush: "sync" })
235
+ };
236
+ }
237
+ //#endregion
238
+ //#region src/composables/useVirtualViewport.ts
239
+ /** Bounded viewport state for large terminal collections. */
240
+ function count(value, name) {
241
+ if (!Number.isSafeInteger(value) || value < 0) throw new RangeError(`${name} must be a non-negative safe integer`);
242
+ return value;
243
+ }
244
+ /** Create viewport state whose retained range scales with visible rows, not item count. */
245
+ function createVirtualViewport(options) {
246
+ const itemCount = ref(count(options.itemCount, "itemCount"));
247
+ const viewportSize = ref(count(options.viewportSize, "viewportSize"));
248
+ const overscan = ref(count(options.overscan ?? 2, "overscan"));
249
+ const offset = ref(0);
250
+ const maxOffset = computed(() => Math.max(0, itemCount.value - viewportSize.value));
251
+ const atStart = computed(() => offset.value === 0);
252
+ const atEnd = computed(() => offset.value === maxOffset.value);
253
+ const range = computed(() => {
254
+ const visibleStart = Math.min(offset.value, itemCount.value);
255
+ const visibleEnd = Math.min(itemCount.value, visibleStart + viewportSize.value);
256
+ return {
257
+ visibleStart,
258
+ visibleEnd,
259
+ overscanStart: Math.max(0, visibleStart - overscan.value),
260
+ overscanEnd: Math.min(itemCount.value, visibleEnd + overscan.value)
261
+ };
262
+ });
263
+ const scrollTo = (value) => {
264
+ const next = Math.min(maxOffset.value, count(value, "offset"));
265
+ if (next === offset.value) return false;
266
+ offset.value = next;
267
+ return true;
268
+ };
269
+ const clamp = () => scrollTo(Math.min(offset.value, maxOffset.value));
270
+ const setItemCount = (value) => {
271
+ const next = count(value, "itemCount");
272
+ if (next === itemCount.value) return false;
273
+ itemCount.value = next;
274
+ clamp();
275
+ return true;
276
+ };
277
+ const setViewportSize = (value) => {
278
+ const next = count(value, "viewportSize");
279
+ if (next === viewportSize.value) return false;
280
+ viewportSize.value = next;
281
+ clamp();
282
+ return true;
283
+ };
284
+ const setOverscan = (value) => {
285
+ const next = count(value, "overscan");
286
+ if (next === overscan.value) return false;
287
+ overscan.value = next;
288
+ return true;
289
+ };
290
+ const scrollBy = (delta) => {
291
+ if (!Number.isSafeInteger(delta)) throw new RangeError("delta must be a safe integer");
292
+ return scrollTo(Math.max(0, offset.value + delta));
293
+ };
294
+ const scrollIntoView = (index, alignment = "nearest") => {
295
+ count(index, "index");
296
+ if (index >= itemCount.value || viewportSize.value === 0) return false;
297
+ let next = offset.value;
298
+ if (alignment === "start") next = index;
299
+ else if (alignment === "center") next = Math.max(0, index - Math.floor(viewportSize.value / 2));
300
+ else if (alignment === "end") next = Math.max(0, index + 1 - viewportSize.value);
301
+ else if (index < offset.value) next = index;
302
+ else if (index >= offset.value + viewportSize.value) next = index + 1 - viewportSize.value;
303
+ return scrollTo(next);
304
+ };
305
+ scrollTo(options.initialOffset ?? 0);
306
+ return {
307
+ itemCount,
308
+ viewportSize,
309
+ overscan,
310
+ offset,
311
+ maxOffset,
312
+ atStart,
313
+ atEnd,
314
+ range,
315
+ setItemCount,
316
+ setViewportSize,
317
+ setOverscan,
318
+ scrollTo,
319
+ scrollBy,
320
+ scrollIntoView
321
+ };
322
+ }
323
+ /** Composition API alias for {@link createVirtualViewport}. */
324
+ const useVirtualViewport = createVirtualViewport;
325
+ //#endregion
326
+ export { useKeyPress as a, useInput as i, useVirtualViewport as n, usePaste as o, useMouse as r, useIsScreenReaderEnabled as s, createVirtualViewport as t };
218
327
 
219
- //# sourceMappingURL=useInput-BmjmkjZ9.mjs.map
328
+ //# sourceMappingURL=useVirtualViewport-CcJuIc7U.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useVirtualViewport-CcJuIc7U.mjs","names":["toRef"],"sources":["../src/composables/useIsScreenReaderEnabled.ts","../src/composables/usePaste.ts","../src/composables/useInput.ts","../src/composables/useMouse.ts","../src/composables/useVirtualViewport.ts"],"sourcesContent":["/**\n * useIsScreenReaderEnabled - screen reader mode flag.\n */\n\nimport { inject } from \"vue\";\nimport { SCREEN_READER_KEY, isScreenReaderEnabledByDefault } from \"../accessibility.js\";\n\nexport function useIsScreenReaderEnabled(): boolean {\n const enabled = inject(SCREEN_READER_KEY, null);\n return enabled?.value ?? isScreenReaderEnabledByDefault();\n}\n","/**\n * usePaste - bracketed paste handling.\n */\n\nimport { isRef, onUnmounted, ref, watch, type Ref } from \"vue\";\nimport { lastPasteEvent } from \"../app.js\";\nimport { useStreamsContext } from \"./useStreams.js\";\n\nlet activePasteHandlerCount = 0;\n\nexport interface UsePasteOptions {\n /** Whether the paste handler is active */\n isActive?: boolean | Ref<boolean>;\n}\n\nexport function hasActivePasteHandlers(): boolean {\n return activePasteHandlerCount > 0;\n}\n\nfunction toRef(value: boolean | Ref<boolean>): Ref<boolean> {\n return isRef(value) ? value : ref(value);\n}\n\nexport function usePaste(handler: (text: string) => void, options: UsePasteOptions = {}) {\n const isActive = toRef(options.isActive ?? true);\n const streams = useStreamsContext();\n let rawModeEnabled = false;\n let bracketedPasteEnabled = false;\n let pasteHandlerRegistered = false;\n\n const syncRawMode = (isEnabled: boolean) => {\n if (rawModeEnabled === isEnabled) return;\n streams.setRawMode(isEnabled);\n rawModeEnabled = isEnabled;\n };\n\n const syncBracketedPasteMode = (isEnabled: boolean) => {\n if (bracketedPasteEnabled === isEnabled) return;\n streams.setBracketedPasteMode(isEnabled);\n bracketedPasteEnabled = isEnabled;\n };\n\n const syncPasteRegistration = (isEnabled: boolean) => {\n if (pasteHandlerRegistered === isEnabled) return;\n activePasteHandlerCount += isEnabled ? 1 : -1;\n pasteHandlerRegistered = isEnabled;\n };\n\n const syncActiveState = (isEnabled: boolean) => {\n syncRawMode(isEnabled);\n syncBracketedPasteMode(isEnabled);\n syncPasteRegistration(isEnabled);\n };\n\n watch(lastPasteEvent, (event) => {\n if (!event || !isActive.value) return;\n handler(event.text);\n });\n\n watch(isActive, syncActiveState, { immediate: true });\n onUnmounted(() => syncActiveState(false));\n\n return {\n isActive,\n enable: () => {\n isActive.value = true;\n },\n disable: () => {\n isActive.value = false;\n },\n };\n}\n","/**\n * useInput - Input handling composable\n */\n\nimport { isRef, onUnmounted, ref, watch, type Ref } from \"vue\";\nimport { lastCompositionEvent, lastKeyEvent, lastPasteEvent, type KeyEvent } from \"../app.js\";\nimport { hasActivePasteHandlers } from \"./usePaste.js\";\nimport { useStreamsContext } from \"./useStreams.js\";\n\nexport interface Key {\n upArrow: boolean;\n downArrow: boolean;\n leftArrow: boolean;\n rightArrow: boolean;\n pageDown: boolean;\n pageUp: boolean;\n home: boolean;\n end: boolean;\n return: boolean;\n escape: boolean;\n ctrl: boolean;\n shift: boolean;\n tab: boolean;\n backspace: boolean;\n delete: boolean;\n meta: boolean;\n super: boolean;\n hyper: boolean;\n capsLock: boolean;\n numLock: boolean;\n eventType?: \"press\" | \"repeat\" | \"release\";\n}\n\nexport interface KeyHandler {\n (key: string, modifiers: { ctrl: boolean; alt: boolean; shift: boolean; meta: boolean }): void;\n}\n\nexport interface UseInputOptions {\n /** Whether to capture input (boolean or Ref<boolean>) */\n active?: boolean | Ref<boolean>;\n /** Whether to capture input (alias for active, boolean or Ref<boolean>) */\n isActive?: boolean | Ref<boolean>;\n /** Ink-compatible input callback */\n handler?: (input: string, key: Key) => void;\n /** Called on key press */\n onKey?: KeyHandler;\n /** Called on character input */\n onChar?: (char: string) => void;\n /** Called on Enter */\n onSubmit?: () => void;\n /** Called on Escape */\n onEscape?: () => void;\n /** Called on arrow keys */\n onArrow?: (direction: \"up\" | \"down\" | \"left\" | \"right\") => void;\n /** Called when an IME composition starts */\n onCompositionStart?: () => void;\n /** Called when IME preedit text changes */\n onCompositionUpdate?: (text: string, cursor: number) => void;\n /** Called when IME commits text */\n onCompositionEnd?: (text: string) => void;\n}\n\nexport interface UseInputReturn {\n isActive: Ref<boolean>;\n lastKey: Ref<string | null>;\n enable: () => void;\n disable: () => void;\n}\n\nexport type InputHandler = (input: string, key: Key) => void;\n\nexport interface UseInputHandlerOptions {\n isActive?: boolean | Ref<boolean>;\n}\n\nfunction toRef(value: boolean | Ref<boolean>): Ref<boolean> {\n return isRef(value) ? value : ref(value);\n}\n\nfunction keyName(event: KeyEvent): string {\n return event.char ?? event.key ?? \"\";\n}\n\nfunction toInkKey(event: KeyEvent): Key {\n const key = event.key;\n\n return {\n upArrow: key === \"up\",\n downArrow: key === \"down\",\n leftArrow: key === \"left\",\n rightArrow: key === \"right\",\n pageDown: key === \"pagedown\" || key === \"pageDown\",\n pageUp: key === \"pageup\" || key === \"pageUp\",\n home: key === \"home\",\n end: key === \"end\",\n return: key === \"enter\" || key === \"return\",\n escape: key === \"escape\" || key === \"esc\",\n ctrl: event.ctrl,\n shift: event.shift,\n tab: key === \"tab\" || key === \"backtab\",\n backspace: key === \"backspace\",\n delete: key === \"delete\",\n meta: event.meta,\n super: event.super,\n hyper: event.hyper,\n capsLock: event.capsLock,\n numLock: event.numLock,\n eventType: event.eventType,\n };\n}\n\nfunction emptyKey(): Key {\n return {\n upArrow: false,\n downArrow: false,\n leftArrow: false,\n rightArrow: false,\n pageDown: false,\n pageUp: false,\n home: false,\n end: false,\n return: false,\n escape: false,\n ctrl: false,\n shift: false,\n tab: false,\n backspace: false,\n delete: false,\n meta: false,\n super: false,\n hyper: false,\n capsLock: false,\n numLock: false,\n };\n}\n\nfunction inputValue(event: KeyEvent, key: Key): string {\n if (event.char) return event.char;\n if (key.return) return \"\\r\";\n return \"\";\n}\n\nfunction handleStructuredOptions(\n event: KeyEvent,\n options: UseInputOptions,\n lastKey: Ref<string | null>,\n) {\n const modifiers = {\n ctrl: event.ctrl,\n alt: event.alt,\n shift: event.shift,\n meta: event.meta,\n };\n const pressedKey = keyName(event);\n const inkKey = toInkKey(event);\n\n if (event.char) {\n lastKey.value = event.char;\n options.onChar?.(event.char);\n options.onKey?.(event.char, modifiers);\n return;\n }\n\n if (pressedKey) {\n lastKey.value = pressedKey;\n options.onKey?.(pressedKey, modifiers);\n }\n\n if (inkKey.return) options.onSubmit?.();\n if (inkKey.escape) options.onEscape?.();\n if (inkKey.upArrow) options.onArrow?.(\"up\");\n if (inkKey.downArrow) options.onArrow?.(\"down\");\n if (inkKey.leftArrow) options.onArrow?.(\"left\");\n if (inkKey.rightArrow) options.onArrow?.(\"right\");\n}\n\nexport function useInput(handler: InputHandler, options?: UseInputHandlerOptions): UseInputReturn;\nexport function useInput(options?: UseInputOptions): UseInputReturn;\nexport function useInput(\n handlerOrOptions: InputHandler | UseInputOptions = {},\n handlerOptions: UseInputHandlerOptions = {},\n): UseInputReturn {\n const options =\n typeof handlerOrOptions === \"function\"\n ? { handler: handlerOrOptions, isActive: handlerOptions.isActive }\n : handlerOrOptions;\n\n const activeSource = options.isActive ?? options.active ?? true;\n const isActive = toRef(activeSource);\n const lastKey = ref<string | null>(null);\n const streams = useStreamsContext();\n let rawModeEnabled = false;\n\n const syncRawMode = (isEnabled: boolean) => {\n if (rawModeEnabled === isEnabled) return;\n streams.setRawMode(isEnabled);\n rawModeEnabled = isEnabled;\n };\n\n watch(lastKeyEvent, (event) => {\n if (!event || !isActive.value) return;\n\n const inkKey = toInkKey(event);\n const input = inputValue(event, inkKey);\n const pressedKey = keyName(event);\n\n if (input === \"c\" && inkKey.ctrl && streams.internal_exitOnCtrlC) return;\n\n lastKey.value = pressedKey || null;\n options.handler?.(input, inkKey);\n handleStructuredOptions(event, options, lastKey);\n });\n\n watch(lastPasteEvent, (event) => {\n if (!event || !isActive.value || hasActivePasteHandlers()) return;\n\n lastKey.value = event.text;\n options.handler?.(event.text, emptyKey());\n options.onChar?.(event.text);\n });\n\n watch(lastCompositionEvent, (event) => {\n if (!event || !isActive.value) return;\n\n if (event.type === \"compositionstart\") {\n options.onCompositionStart?.();\n } else if (event.type === \"compositionupdate\") {\n options.onCompositionUpdate?.(event.text, event.cursor);\n } else {\n options.onCompositionEnd?.(event.text);\n }\n });\n\n watch(isActive, syncRawMode, { immediate: true });\n onUnmounted(() => syncRawMode(false));\n\n const enable = () => {\n isActive.value = true;\n };\n\n const disable = () => {\n isActive.value = false;\n };\n\n return {\n isActive,\n lastKey,\n enable,\n disable,\n };\n}\n\n/**\n * Shorthand for handling specific key combinations\n */\nexport function useKeyPress(\n key: string,\n handler: () => void,\n options: { ctrl?: boolean; alt?: boolean; shift?: boolean; meta?: boolean } = {},\n) {\n const { ctrl = false, alt = false, shift = false, meta = false } = options;\n\n useInput({\n onKey: (pressedKey, modifiers) => {\n const matches =\n pressedKey.toLowerCase() === key.toLowerCase() &&\n modifiers.ctrl === ctrl &&\n modifiers.alt === alt &&\n modifiers.shift === shift &&\n modifiers.meta === meta;\n\n if (matches) {\n handler();\n }\n },\n });\n}\n","/** Mouse and wheel input handling for focused Fresco surfaces. */\n\nimport { computed, isRef, ref, watch, type Ref } from \"vue\";\nimport { lastMouseEvent } from \"../app.js\";\nimport type { MouseEvent } from \"../protocol.js\";\n\nexport interface UseMouseOptions {\n /** Whether the handler receives events. */\n isActive?: boolean | Readonly<Ref<boolean>>;\n}\n\nexport interface UseMouseReturn {\n isActive: Readonly<Ref<boolean>>;\n /** Start delivering normalized mouse events. */\n enable: () => void;\n /** Stop delivering normalized mouse events. */\n disable: () => void;\n /** Unsubscribe the handler from the shared mouse event stream. */\n stop: () => void;\n}\n\n/** Subscribe to normalized mouse actions, including wheel direction. */\nexport function useMouse(\n handler: (event: MouseEvent) => void,\n options: UseMouseOptions = {},\n): UseMouseReturn {\n const externalIsActive = isRef(options.isActive) ? options.isActive : undefined;\n const locallyEnabled = ref(externalIsActive ? true : (options.isActive ?? true));\n const isActive = computed(() => locallyEnabled.value && (externalIsActive?.value ?? true));\n\n const stop = watch(\n lastMouseEvent,\n (event) => {\n if (event && isActive.value) handler(event);\n },\n { flush: \"sync\" },\n );\n\n return {\n isActive,\n enable: () => {\n locallyEnabled.value = true;\n },\n disable: () => {\n locallyEnabled.value = false;\n },\n stop,\n };\n}\n","/** Bounded viewport state for large terminal collections. */\n\nimport { computed, ref, type ComputedRef, type Ref } from \"vue\";\n\nexport type VirtualScrollAlignment = \"nearest\" | \"start\" | \"center\" | \"end\";\n\nexport interface VirtualViewportRange {\n /** First item occupying the viewport. */\n visibleStart: number;\n /** Exclusive end of items occupying the viewport. */\n visibleEnd: number;\n /** First retained item, including leading overscan. */\n overscanStart: number;\n /** Exclusive end of retained items, including trailing overscan. */\n overscanEnd: number;\n}\n\nexport interface VirtualViewportOptions {\n itemCount: number;\n viewportSize: number;\n overscan?: number;\n initialOffset?: number;\n}\n\nexport interface VirtualViewport {\n readonly itemCount: Readonly<Ref<number>>;\n readonly viewportSize: Readonly<Ref<number>>;\n readonly overscan: Readonly<Ref<number>>;\n readonly offset: Readonly<Ref<number>>;\n readonly maxOffset: ComputedRef<number>;\n readonly atStart: ComputedRef<boolean>;\n readonly atEnd: ComputedRef<boolean>;\n readonly range: ComputedRef<VirtualViewportRange>;\n /** Replace the collection size and clamp the current offset. */\n setItemCount(value: number): boolean;\n /** Replace the visible row count and clamp the current offset. */\n setViewportSize(value: number): boolean;\n /** Replace the number of retained rows on each side of the viewport. */\n setOverscan(value: number): boolean;\n /** Move to an absolute, bounded offset. */\n scrollTo(offset: number): boolean;\n /** Move by a signed row delta. */\n scrollBy(delta: number): boolean;\n /** Reveal one item using the requested viewport alignment. */\n scrollIntoView(index: number, alignment?: VirtualScrollAlignment): boolean;\n}\n\nfunction count(value: number, name: string): number {\n if (!Number.isSafeInteger(value) || value < 0) {\n throw new RangeError(`${name} must be a non-negative safe integer`);\n }\n return value;\n}\n\n/** Create viewport state whose retained range scales with visible rows, not item count. */\nexport function createVirtualViewport(options: VirtualViewportOptions): VirtualViewport {\n const itemCount = ref(count(options.itemCount, \"itemCount\"));\n const viewportSize = ref(count(options.viewportSize, \"viewportSize\"));\n const overscan = ref(count(options.overscan ?? 2, \"overscan\"));\n const offset = ref(0);\n const maxOffset = computed(() => Math.max(0, itemCount.value - viewportSize.value));\n const atStart = computed(() => offset.value === 0);\n const atEnd = computed(() => offset.value === maxOffset.value);\n const range = computed<VirtualViewportRange>(() => {\n const visibleStart = Math.min(offset.value, itemCount.value);\n const visibleEnd = Math.min(itemCount.value, visibleStart + viewportSize.value);\n return {\n visibleStart,\n visibleEnd,\n overscanStart: Math.max(0, visibleStart - overscan.value),\n overscanEnd: Math.min(itemCount.value, visibleEnd + overscan.value),\n };\n });\n\n const scrollTo = (value: number) => {\n const next = Math.min(maxOffset.value, count(value, \"offset\"));\n if (next === offset.value) return false;\n offset.value = next;\n return true;\n };\n const clamp = () => scrollTo(Math.min(offset.value, maxOffset.value));\n\n const setItemCount = (value: number) => {\n const next = count(value, \"itemCount\");\n if (next === itemCount.value) return false;\n itemCount.value = next;\n clamp();\n return true;\n };\n const setViewportSize = (value: number) => {\n const next = count(value, \"viewportSize\");\n if (next === viewportSize.value) return false;\n viewportSize.value = next;\n clamp();\n return true;\n };\n const setOverscan = (value: number) => {\n const next = count(value, \"overscan\");\n if (next === overscan.value) return false;\n overscan.value = next;\n return true;\n };\n const scrollBy = (delta: number) => {\n if (!Number.isSafeInteger(delta)) throw new RangeError(\"delta must be a safe integer\");\n return scrollTo(Math.max(0, offset.value + delta));\n };\n const scrollIntoView = (index: number, alignment: VirtualScrollAlignment = \"nearest\") => {\n count(index, \"index\");\n if (index >= itemCount.value || viewportSize.value === 0) return false;\n let next = offset.value;\n if (alignment === \"start\") next = index;\n else if (alignment === \"center\") next = Math.max(0, index - Math.floor(viewportSize.value / 2));\n else if (alignment === \"end\") next = Math.max(0, index + 1 - viewportSize.value);\n else if (index < offset.value) next = index;\n else if (index >= offset.value + viewportSize.value) {\n next = index + 1 - viewportSize.value;\n }\n return scrollTo(next);\n };\n\n scrollTo(options.initialOffset ?? 0);\n\n return {\n itemCount,\n viewportSize,\n overscan,\n offset,\n maxOffset,\n atStart,\n atEnd,\n range,\n setItemCount,\n setViewportSize,\n setOverscan,\n scrollTo,\n scrollBy,\n scrollIntoView,\n };\n}\n\n/** Composition API alias for {@link createVirtualViewport}. */\nexport const useVirtualViewport = createVirtualViewport;\n"],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { ComputedRef, Ref } from "vue";
2
+
3
+ //#region src/composables/useVirtualViewport.d.ts
4
+ type VirtualScrollAlignment = "nearest" | "start" | "center" | "end";
5
+ interface VirtualViewportRange {
6
+ /** First item occupying the viewport. */
7
+ visibleStart: number;
8
+ /** Exclusive end of items occupying the viewport. */
9
+ visibleEnd: number;
10
+ /** First retained item, including leading overscan. */
11
+ overscanStart: number;
12
+ /** Exclusive end of retained items, including trailing overscan. */
13
+ overscanEnd: number;
14
+ }
15
+ interface VirtualViewportOptions {
16
+ itemCount: number;
17
+ viewportSize: number;
18
+ overscan?: number;
19
+ initialOffset?: number;
20
+ }
21
+ interface VirtualViewport {
22
+ readonly itemCount: Readonly<Ref<number>>;
23
+ readonly viewportSize: Readonly<Ref<number>>;
24
+ readonly overscan: Readonly<Ref<number>>;
25
+ readonly offset: Readonly<Ref<number>>;
26
+ readonly maxOffset: ComputedRef<number>;
27
+ readonly atStart: ComputedRef<boolean>;
28
+ readonly atEnd: ComputedRef<boolean>;
29
+ readonly range: ComputedRef<VirtualViewportRange>;
30
+ /** Replace the collection size and clamp the current offset. */
31
+ setItemCount(value: number): boolean;
32
+ /** Replace the visible row count and clamp the current offset. */
33
+ setViewportSize(value: number): boolean;
34
+ /** Replace the number of retained rows on each side of the viewport. */
35
+ setOverscan(value: number): boolean;
36
+ /** Move to an absolute, bounded offset. */
37
+ scrollTo(offset: number): boolean;
38
+ /** Move by a signed row delta. */
39
+ scrollBy(delta: number): boolean;
40
+ /** Reveal one item using the requested viewport alignment. */
41
+ scrollIntoView(index: number, alignment?: VirtualScrollAlignment): boolean;
42
+ }
43
+ /** Create viewport state whose retained range scales with visible rows, not item count. */
44
+ declare function createVirtualViewport(options: VirtualViewportOptions): VirtualViewport;
45
+ /** Composition API alias for {@link createVirtualViewport}. */
46
+ declare const useVirtualViewport: typeof createVirtualViewport;
47
+ //#endregion
48
+ export { createVirtualViewport as a, VirtualViewportRange as i, VirtualViewport as n, useVirtualViewport as o, VirtualViewportOptions as r, VirtualScrollAlignment as t };
49
+ //# sourceMappingURL=useVirtualViewport-TxTapifg.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useVirtualViewport-TxTapifg.d.mts","names":[],"sources":["../src/composables/useVirtualViewport.ts"],"mappings":";;;KAIY,sBAAA;AAAA,UAEK,oBAAA;EAFiB;EAIhC,YAAA;EAJgC;EAMhC,UAAA;EAJe;EAMf,aAAA;;EAEA,WAAA;AAAA;AAAA,UAGe,sBAAA;EACf,SAAA;EACA,YAAA;EACA,QAAA;EACA,aAAA;AAAA;AAAA,UAGe,eAAA;EAAA,SACN,SAAA,EAAW,QAAA,CAAS,GAAA;EAAA,SACpB,YAAA,EAAc,QAAA,CAAS,GAAA;EAAA,SACvB,QAAA,EAAU,QAAA,CAAS,GAAA;EAAA,SACnB,MAAA,EAAQ,QAAA,CAAS,GAAA;EAAA,SACjB,SAAA,EAAW,WAAA;EAAA,SACX,OAAA,EAAS,WAAA;EAAA,SACT,KAAA,EAAO,WAAA;EAAA,SACP,KAAA,EAAO,WAAA,CAAY,oBAAA;EARb;EAUf,YAAA,CAAa,KAAA;;EAEb,eAAA,CAAgB,KAAA;EAXI;EAapB,WAAA,CAAY,KAAA;EAZW;EAcvB,QAAA,CAAS,MAAA;EAbU;EAenB,QAAA,CAAS,KAAA;EAdQ;EAgBjB,cAAA,CAAe,KAAA,UAAe,SAAA,GAAY,sBAAA;AAAA;;iBAW5B,qBAAA,CAAsB,OAAA,EAAS,sBAAA,GAAyB,eAAe;;cAsF1E,kBAAA,SAAkB,qBAAwB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vizejs/fresco",
3
- "version": "0.712.0",
3
+ "version": "0.714.0",
4
4
  "description": "Vue TUI framework - Build terminal UIs with Vue.js",
5
5
  "keywords": [
6
6
  "cli",
@@ -49,14 +49,19 @@
49
49
  "access": "public"
50
50
  },
51
51
  "dependencies": {
52
- "@vizejs/fresco-native": "0.712.0"
52
+ "@vizejs/fresco-native": "0.714.0"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@types/node": "25.9.2",
56
+ "@vitejs/plugin-vue": "6.0.7",
57
+ "@vue/compiler-sfc": "3.5.35",
58
+ "happy-dom": "21.0.4",
56
59
  "tsx": "4.23.12",
57
60
  "typescript": "6.0.3",
58
61
  "vite-plus": "0.1.24",
59
- "vue": "3.5.35"
62
+ "vitest": "npm:@voidzero-dev/vite-plus-test@0.1.24",
63
+ "vue": "3.5.35",
64
+ "vue-tsc": "3.3.11"
60
65
  },
61
66
  "peerDependencies": {
62
67
  "vue": "^3.4.0"
@@ -73,10 +78,10 @@
73
78
  "scripts": {
74
79
  "build": "vp pack",
75
80
  "dev": "vp pack --watch",
76
- "check": "vp check src vite.config.ts && tsc --noEmit -p tsconfig.json",
81
+ "check": "vp check src vite.config.ts && vue-tsc --noEmit -p tsconfig.json && vue-tsc --noEmit -p tsconfig.examples.json",
77
82
  "check:fix": "vp check --fix src vite.config.ts",
78
- "check:types": "tsc --noEmit -p tsconfig.json",
83
+ "check:types": "vue-tsc --noEmit -p tsconfig.json && vue-tsc --noEmit -p tsconfig.examples.json",
79
84
  "fmt": "vp fmt --write src vite.config.ts",
80
- "test": "vp exec tsx --test \"src/**/*.test.ts\""
85
+ "test": "vp test run"
81
86
  }
82
87
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessibility-CsJ09kle.d.mts","names":[],"sources":["../src/protocol.ts","../src/renderer.ts","../src/accessibility.ts"],"mappings":"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"}