@rezi-ui/ink-compat 0.1.0-alpha.3 → 0.1.0-alpha.44
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/README.md +104 -0
- package/dist/components/Box.d.ts +61 -39
- package/dist/components/Box.d.ts.map +1 -1
- package/dist/components/Box.js +3 -12
- package/dist/components/Box.js.map +1 -1
- package/dist/components/Newline.d.ts +3 -13
- package/dist/components/Newline.d.ts.map +1 -1
- package/dist/components/Newline.js +4 -8
- package/dist/components/Newline.js.map +1 -1
- package/dist/components/Spacer.d.ts +1 -7
- package/dist/components/Spacer.d.ts.map +1 -1
- package/dist/components/Spacer.js +4 -9
- package/dist/components/Spacer.js.map +1 -1
- package/dist/components/Static.d.ts +12 -26
- package/dist/components/Static.d.ts.map +1 -1
- package/dist/components/Static.js +12 -13
- package/dist/components/Static.js.map +1 -1
- package/dist/components/Text.d.ts +28 -7
- package/dist/components/Text.d.ts.map +1 -1
- package/dist/components/Text.js +4 -11
- package/dist/components/Text.js.map +1 -1
- package/dist/components/Transform.d.ts +9 -16
- package/dist/components/Transform.d.ts.map +1 -1
- package/dist/components/Transform.js +11 -11
- package/dist/components/Transform.js.map +1 -1
- package/dist/hooks/useApp.d.ts +3 -2
- package/dist/hooks/useApp.d.ts.map +1 -1
- package/dist/hooks/useApp.js +4 -5
- package/dist/hooks/useApp.js.map +1 -1
- package/dist/hooks/useCursor.d.ts +5 -0
- package/dist/hooks/useCursor.d.ts.map +1 -0
- package/dist/hooks/useCursor.js +15 -0
- package/dist/hooks/useCursor.js.map +1 -0
- package/dist/hooks/useFocus.d.ts +5 -25
- package/dist/hooks/useFocus.d.ts.map +1 -1
- package/dist/hooks/useFocus.js +47 -31
- package/dist/hooks/useFocus.js.map +1 -1
- package/dist/hooks/useFocusManager.d.ts +2 -4
- package/dist/hooks/useFocusManager.d.ts.map +1 -1
- package/dist/hooks/useFocusManager.js +9 -12
- package/dist/hooks/useFocusManager.js.map +1 -1
- package/dist/hooks/useInput.d.ts +4 -9
- package/dist/hooks/useInput.d.ts.map +1 -1
- package/dist/hooks/useInput.js +15 -118
- package/dist/hooks/useInput.js.map +1 -1
- package/dist/hooks/useIsScreenReaderEnabled.d.ts +1 -1
- package/dist/hooks/useIsScreenReaderEnabled.d.ts.map +1 -1
- package/dist/hooks/useIsScreenReaderEnabled.js +4 -4
- package/dist/hooks/useIsScreenReaderEnabled.js.map +1 -1
- package/dist/hooks/useStderr.d.ts +2 -7
- package/dist/hooks/useStderr.d.ts.map +1 -1
- package/dist/hooks/useStderr.js +4 -9
- package/dist/hooks/useStderr.js.map +1 -1
- package/dist/hooks/useStdin.d.ts +4 -14
- package/dist/hooks/useStdin.d.ts.map +1 -1
- package/dist/hooks/useStdin.js +6 -11
- package/dist/hooks/useStdin.js.map +1 -1
- package/dist/hooks/useStdout.d.ts +2 -7
- package/dist/hooks/useStdout.d.ts.map +1 -1
- package/dist/hooks/useStdout.js +4 -9
- package/dist/hooks/useStdout.js.map +1 -1
- package/dist/index.d.ts +34 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -23
- package/dist/index.js.map +1 -1
- package/dist/kitty-keyboard.d.ts +20 -0
- package/dist/kitty-keyboard.d.ts.map +1 -0
- package/dist/kitty-keyboard.js +25 -0
- package/dist/kitty-keyboard.js.map +1 -0
- package/dist/reconciler/hostConfig.d.ts +63 -4
- package/dist/reconciler/hostConfig.d.ts.map +1 -1
- package/dist/reconciler/hostConfig.js +157 -110
- package/dist/reconciler/hostConfig.js.map +1 -1
- package/dist/reconciler/reconciler.d.ts +9 -0
- package/dist/reconciler/reconciler.d.ts.map +1 -0
- package/dist/reconciler/reconciler.js +4 -0
- package/dist/reconciler/reconciler.js.map +1 -0
- package/dist/reconciler/types.d.ts +25 -62
- package/dist/reconciler/types.d.ts.map +1 -1
- package/dist/reconciler/types.js +39 -27
- package/dist/reconciler/types.js.map +1 -1
- package/dist/runtime/ResizeObserver.d.ts +33 -0
- package/dist/runtime/ResizeObserver.d.ts.map +1 -0
- package/dist/runtime/ResizeObserver.js +68 -0
- package/dist/runtime/ResizeObserver.js.map +1 -0
- package/dist/runtime/bridge.d.ts +28 -0
- package/dist/runtime/bridge.d.ts.map +1 -0
- package/dist/runtime/bridge.js +491 -0
- package/dist/runtime/bridge.js.map +1 -0
- package/dist/runtime/context.d.ts +55 -0
- package/dist/runtime/context.d.ts.map +1 -0
- package/dist/runtime/context.js +10 -0
- package/dist/runtime/context.js.map +1 -0
- package/dist/runtime/domHelpers.d.ts +21 -0
- package/dist/runtime/domHelpers.d.ts.map +1 -0
- package/dist/runtime/domHelpers.js +39 -0
- package/dist/runtime/domHelpers.js.map +1 -0
- package/dist/runtime/getBoundingBox.d.ts +18 -0
- package/dist/runtime/getBoundingBox.d.ts.map +1 -0
- package/dist/runtime/getBoundingBox.js +22 -0
- package/dist/runtime/getBoundingBox.js.map +1 -0
- package/dist/runtime/measureElement.d.ts +6 -0
- package/dist/runtime/measureElement.d.ts.map +1 -0
- package/dist/runtime/measureElement.js +10 -0
- package/dist/runtime/measureElement.js.map +1 -0
- package/dist/runtime/reactBridge.d.ts +7 -0
- package/dist/runtime/reactBridge.d.ts.map +1 -0
- package/dist/runtime/reactBridge.js +85 -0
- package/dist/runtime/reactBridge.js.map +1 -0
- package/dist/runtime/reactHelpers.d.ts +5 -0
- package/dist/runtime/reactHelpers.d.ts.map +1 -0
- package/dist/runtime/reactHelpers.js +22 -0
- package/dist/runtime/reactHelpers.js.map +1 -0
- package/dist/runtime/render.d.ts +40 -0
- package/dist/runtime/render.d.ts.map +1 -0
- package/dist/runtime/render.js +2373 -0
- package/dist/runtime/render.js.map +1 -0
- package/dist/runtime/renderToString.d.ts +6 -0
- package/dist/runtime/renderToString.d.ts.map +1 -0
- package/dist/runtime/renderToString.js +45 -0
- package/dist/runtime/renderToString.js.map +1 -0
- package/dist/shims/ink-gradient.d.ts +12 -0
- package/dist/shims/ink-gradient.d.ts.map +1 -0
- package/dist/shims/ink-gradient.js +137 -0
- package/dist/shims/ink-gradient.js.map +1 -0
- package/dist/shims/ink-spinner.d.ts +16 -0
- package/dist/shims/ink-spinner.d.ts.map +1 -0
- package/dist/shims/ink-spinner.js +39 -0
- package/dist/shims/ink-spinner.js.map +1 -0
- package/dist/styledChars.d.ts +45 -0
- package/dist/styledChars.d.ts.map +1 -0
- package/dist/styledChars.js +283 -0
- package/dist/styledChars.js.map +1 -0
- package/dist/testing/index.d.ts +12 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +75 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/translation/borderMap.d.ts +3 -0
- package/dist/translation/borderMap.d.ts.map +1 -0
- package/dist/translation/borderMap.js +21 -0
- package/dist/translation/borderMap.js.map +1 -0
- package/dist/translation/colorMap.d.ts +8 -0
- package/dist/translation/colorMap.d.ts.map +1 -0
- package/dist/translation/colorMap.js +114 -0
- package/dist/translation/colorMap.js.map +1 -0
- package/dist/translation/layoutMap.d.ts +6 -0
- package/dist/translation/layoutMap.d.ts.map +1 -0
- package/dist/translation/layoutMap.js +28 -0
- package/dist/translation/layoutMap.js.map +1 -0
- package/dist/translation/propsToVNode.d.ts +14 -0
- package/dist/translation/propsToVNode.d.ts.map +1 -0
- package/dist/translation/propsToVNode.js +1036 -0
- package/dist/translation/propsToVNode.js.map +1 -0
- package/dist/translation/traceCollector.d.ts +16 -0
- package/dist/translation/traceCollector.d.ts.map +1 -0
- package/dist/translation/traceCollector.js +28 -0
- package/dist/translation/traceCollector.js.map +1 -0
- package/package.json +30 -24
- package/dist/__tests__/Newline.test.d.ts +0 -2
- package/dist/__tests__/Newline.test.d.ts.map +0 -1
- package/dist/__tests__/Newline.test.js +0 -42
- package/dist/__tests__/Newline.test.js.map +0 -1
- package/dist/__tests__/Static.test.d.ts +0 -2
- package/dist/__tests__/Static.test.d.ts.map +0 -1
- package/dist/__tests__/Static.test.js +0 -53
- package/dist/__tests__/Static.test.js.map +0 -1
- package/dist/__tests__/Transform.test.d.ts +0 -2
- package/dist/__tests__/Transform.test.d.ts.map +0 -1
- package/dist/__tests__/Transform.test.js +0 -36
- package/dist/__tests__/Transform.test.js.map +0 -1
- package/dist/__tests__/api.surface.test.d.ts +0 -2
- package/dist/__tests__/api.surface.test.d.ts.map +0 -1
- package/dist/__tests__/api.surface.test.js +0 -23
- package/dist/__tests__/api.surface.test.js.map +0 -1
- package/dist/__tests__/color.test.d.ts +0 -2
- package/dist/__tests__/color.test.d.ts.map +0 -1
- package/dist/__tests__/color.test.js +0 -37
- package/dist/__tests__/color.test.js.map +0 -1
- package/dist/__tests__/compat.thirdparty.test.d.ts +0 -2
- package/dist/__tests__/compat.thirdparty.test.d.ts.map +0 -1
- package/dist/__tests__/compat.thirdparty.test.js +0 -61
- package/dist/__tests__/compat.thirdparty.test.js.map +0 -1
- package/dist/__tests__/emitter.test.d.ts +0 -2
- package/dist/__tests__/emitter.test.d.ts.map +0 -1
- package/dist/__tests__/emitter.test.js +0 -34
- package/dist/__tests__/emitter.test.js.map +0 -1
- package/dist/__tests__/golden/border-styles.golden.test.d.ts +0 -2
- package/dist/__tests__/golden/border-styles.golden.test.d.ts.map +0 -1
- package/dist/__tests__/golden/border-styles.golden.test.js +0 -15
- package/dist/__tests__/golden/border-styles.golden.test.js.map +0 -1
- package/dist/__tests__/golden/box-layout.golden.test.d.ts +0 -2
- package/dist/__tests__/golden/box-layout.golden.test.d.ts.map +0 -1
- package/dist/__tests__/golden/box-layout.golden.test.js +0 -15
- package/dist/__tests__/golden/box-layout.golden.test.js.map +0 -1
- package/dist/__tests__/golden/flex-layout.golden.test.d.ts +0 -2
- package/dist/__tests__/golden/flex-layout.golden.test.d.ts.map +0 -1
- package/dist/__tests__/golden/flex-layout.golden.test.js +0 -15
- package/dist/__tests__/golden/flex-layout.golden.test.js.map +0 -1
- package/dist/__tests__/golden/harness.d.ts +0 -6
- package/dist/__tests__/golden/harness.d.ts.map +0 -1
- package/dist/__tests__/golden/harness.js +0 -31
- package/dist/__tests__/golden/harness.js.map +0 -1
- package/dist/__tests__/golden/simple-text.golden.test.d.ts +0 -2
- package/dist/__tests__/golden/simple-text.golden.test.d.ts.map +0 -1
- package/dist/__tests__/golden/simple-text.golden.test.js +0 -15
- package/dist/__tests__/golden/simple-text.golden.test.js.map +0 -1
- package/dist/__tests__/integration/counter.test.d.ts +0 -2
- package/dist/__tests__/integration/counter.test.d.ts.map +0 -1
- package/dist/__tests__/integration/counter.test.js +0 -40
- package/dist/__tests__/integration/counter.test.js.map +0 -1
- package/dist/__tests__/integration/focus-cycle.test.d.ts +0 -2
- package/dist/__tests__/integration/focus-cycle.test.d.ts.map +0 -1
- package/dist/__tests__/integration/focus-cycle.test.js +0 -37
- package/dist/__tests__/integration/focus-cycle.test.js.map +0 -1
- package/dist/__tests__/integration/harness.d.ts +0 -17
- package/dist/__tests__/integration/harness.d.ts.map +0 -1
- package/dist/__tests__/integration/harness.js +0 -57
- package/dist/__tests__/integration/harness.js.map +0 -1
- package/dist/__tests__/integration/list-nav.test.d.ts +0 -2
- package/dist/__tests__/integration/list-nav.test.d.ts.map +0 -1
- package/dist/__tests__/integration/list-nav.test.js +0 -40
- package/dist/__tests__/integration/list-nav.test.js.map +0 -1
- package/dist/__tests__/integration/nested-layout.test.d.ts +0 -2
- package/dist/__tests__/integration/nested-layout.test.d.ts.map +0 -1
- package/dist/__tests__/integration/nested-layout.test.js +0 -47
- package/dist/__tests__/integration/nested-layout.test.js.map +0 -1
- package/dist/__tests__/integration/static-log.test.d.ts +0 -2
- package/dist/__tests__/integration/static-log.test.d.ts.map +0 -1
- package/dist/__tests__/integration/static-log.test.js +0 -48
- package/dist/__tests__/integration/static-log.test.js.map +0 -1
- package/dist/__tests__/measurement.test.d.ts +0 -2
- package/dist/__tests__/measurement.test.d.ts.map +0 -1
- package/dist/__tests__/measurement.test.js +0 -115
- package/dist/__tests__/measurement.test.js.map +0 -1
- package/dist/__tests__/props.test.d.ts +0 -2
- package/dist/__tests__/props.test.d.ts.map +0 -1
- package/dist/__tests__/props.test.js +0 -131
- package/dist/__tests__/props.test.js.map +0 -1
- package/dist/__tests__/reconciler.test.d.ts +0 -2
- package/dist/__tests__/reconciler.test.d.ts.map +0 -1
- package/dist/__tests__/reconciler.test.js +0 -56
- package/dist/__tests__/reconciler.test.js.map +0 -1
- package/dist/__tests__/render.consoleCapture.test.d.ts +0 -2
- package/dist/__tests__/render.consoleCapture.test.d.ts.map +0 -1
- package/dist/__tests__/render.consoleCapture.test.js +0 -46
- package/dist/__tests__/render.consoleCapture.test.js.map +0 -1
- package/dist/__tests__/render.deferred.test.d.ts +0 -2
- package/dist/__tests__/render.deferred.test.d.ts.map +0 -1
- package/dist/__tests__/render.deferred.test.js +0 -16
- package/dist/__tests__/render.deferred.test.js.map +0 -1
- package/dist/__tests__/render.options.test.d.ts +0 -2
- package/dist/__tests__/render.options.test.d.ts.map +0 -1
- package/dist/__tests__/render.options.test.js +0 -17
- package/dist/__tests__/render.options.test.js.map +0 -1
- package/dist/__tests__/render.parity.test.d.ts +0 -2
- package/dist/__tests__/render.parity.test.d.ts.map +0 -1
- package/dist/__tests__/render.parity.test.js +0 -124
- package/dist/__tests__/render.parity.test.js.map +0 -1
- package/dist/__tests__/render.test.d.ts +0 -2
- package/dist/__tests__/render.test.d.ts.map +0 -1
- package/dist/__tests__/render.test.js +0 -46
- package/dist/__tests__/render.test.js.map +0 -1
- package/dist/__tests__/resizeObserver.test.d.ts +0 -2
- package/dist/__tests__/resizeObserver.test.d.ts.map +0 -1
- package/dist/__tests__/resizeObserver.test.js +0 -50
- package/dist/__tests__/resizeObserver.test.js.map +0 -1
- package/dist/__tests__/testBackend.d.ts +0 -48
- package/dist/__tests__/testBackend.d.ts.map +0 -1
- package/dist/__tests__/testBackend.js +0 -109
- package/dist/__tests__/testBackend.js.map +0 -1
- package/dist/__tests__/useApp.test.d.ts +0 -2
- package/dist/__tests__/useApp.test.d.ts.map +0 -1
- package/dist/__tests__/useApp.test.js +0 -40
- package/dist/__tests__/useApp.test.js.map +0 -1
- package/dist/__tests__/useFocus.test.d.ts +0 -2
- package/dist/__tests__/useFocus.test.d.ts.map +0 -1
- package/dist/__tests__/useFocus.test.js +0 -60
- package/dist/__tests__/useFocus.test.js.map +0 -1
- package/dist/__tests__/useFocusManager.test.d.ts +0 -2
- package/dist/__tests__/useFocusManager.test.d.ts.map +0 -1
- package/dist/__tests__/useFocusManager.test.js +0 -57
- package/dist/__tests__/useFocusManager.test.js.map +0 -1
- package/dist/__tests__/useInput.test.d.ts +0 -2
- package/dist/__tests__/useInput.test.d.ts.map +0 -1
- package/dist/__tests__/useInput.test.js +0 -182
- package/dist/__tests__/useInput.test.js.map +0 -1
- package/dist/__tests__/useStderr.test.d.ts +0 -2
- package/dist/__tests__/useStderr.test.d.ts.map +0 -1
- package/dist/__tests__/useStderr.test.js +0 -59
- package/dist/__tests__/useStderr.test.js.map +0 -1
- package/dist/__tests__/useStdin.test.d.ts +0 -2
- package/dist/__tests__/useStdin.test.d.ts.map +0 -1
- package/dist/__tests__/useStdin.test.js +0 -45
- package/dist/__tests__/useStdin.test.js.map +0 -1
- package/dist/__tests__/useStdout.test.d.ts +0 -2
- package/dist/__tests__/useStdout.test.d.ts.map +0 -1
- package/dist/__tests__/useStdout.test.js +0 -59
- package/dist/__tests__/useStdout.test.js.map +0 -1
- package/dist/color.d.ts +0 -19
- package/dist/color.d.ts.map +0 -1
- package/dist/color.js +0 -121
- package/dist/color.js.map +0 -1
- package/dist/context/AccessibilityContext.d.ts +0 -4
- package/dist/context/AccessibilityContext.d.ts.map +0 -1
- package/dist/context/AccessibilityContext.js +0 -4
- package/dist/context/AccessibilityContext.js.map +0 -1
- package/dist/context/AppContext.d.ts +0 -9
- package/dist/context/AppContext.d.ts.map +0 -1
- package/dist/context/AppContext.js +0 -8
- package/dist/context/AppContext.js.map +0 -1
- package/dist/context/FocusContext.d.ts +0 -31
- package/dist/context/FocusContext.d.ts.map +0 -1
- package/dist/context/FocusContext.js +0 -16
- package/dist/context/FocusContext.js.map +0 -1
- package/dist/context/FocusProvider.d.ts +0 -5
- package/dist/context/FocusProvider.d.ts.map +0 -1
- package/dist/context/FocusProvider.js +0 -154
- package/dist/context/FocusProvider.js.map +0 -1
- package/dist/context/StdioContext.d.ts +0 -24
- package/dist/context/StdioContext.d.ts.map +0 -1
- package/dist/context/StdioContext.js +0 -15
- package/dist/context/StdioContext.js.map +0 -1
- package/dist/errors.d.ts +0 -8
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -9
- package/dist/errors.js.map +0 -1
- package/dist/internal/emitter.d.ts +0 -8
- package/dist/internal/emitter.d.ts.map +0 -1
- package/dist/internal/emitter.js +0 -26
- package/dist/internal/emitter.js.map +0 -1
- package/dist/internal/warn.d.ts +0 -3
- package/dist/internal/warn.d.ts.map +0 -1
- package/dist/internal/warn.js +0 -17
- package/dist/internal/warn.js.map +0 -1
- package/dist/measureElement.d.ts +0 -12
- package/dist/measureElement.d.ts.map +0 -1
- package/dist/measureElement.js +0 -11
- package/dist/measureElement.js.map +0 -1
- package/dist/measurement.d.ts +0 -24
- package/dist/measurement.d.ts.map +0 -1
- package/dist/measurement.js +0 -272
- package/dist/measurement.js.map +0 -1
- package/dist/props/boxProps.d.ts +0 -17
- package/dist/props/boxProps.d.ts.map +0 -1
- package/dist/props/boxProps.js +0 -223
- package/dist/props/boxProps.js.map +0 -1
- package/dist/props/textProps.d.ts +0 -8
- package/dist/props/textProps.d.ts.map +0 -1
- package/dist/props/textProps.js +0 -35
- package/dist/props/textProps.js.map +0 -1
- package/dist/props.d.ts +0 -5
- package/dist/props.d.ts.map +0 -1
- package/dist/props.js +0 -3
- package/dist/props.js.map +0 -1
- package/dist/reconciler/convert.d.ts +0 -4
- package/dist/reconciler/convert.d.ts.map +0 -1
- package/dist/reconciler/convert.js +0 -157
- package/dist/reconciler/convert.js.map +0 -1
- package/dist/reconciler/textUtils.d.ts +0 -6
- package/dist/reconciler/textUtils.d.ts.map +0 -1
- package/dist/reconciler/textUtils.js +0 -181
- package/dist/reconciler/textUtils.js.map +0 -1
- package/dist/reconciler.d.ts +0 -3
- package/dist/reconciler.d.ts.map +0 -1
- package/dist/reconciler.js +0 -2
- package/dist/reconciler.js.map +0 -1
- package/dist/render/consoleCapture.d.ts +0 -14
- package/dist/render/consoleCapture.d.ts.map +0 -1
- package/dist/render/consoleCapture.js +0 -89
- package/dist/render/consoleCapture.js.map +0 -1
- package/dist/render/deferred.d.ts +0 -7
- package/dist/render/deferred.d.ts.map +0 -1
- package/dist/render/deferred.js +0 -10
- package/dist/render/deferred.js.map +0 -1
- package/dist/render/options.d.ts +0 -3
- package/dist/render/options.d.ts.map +0 -1
- package/dist/render/options.js +0 -12
- package/dist/render/options.js.map +0 -1
- package/dist/render.d.ts +0 -4
- package/dist/render.d.ts.map +0 -1
- package/dist/render.js +0 -269
- package/dist/render.js.map +0 -1
- package/dist/resizeObserver.d.ts +0 -24
- package/dist/resizeObserver.d.ts.map +0 -1
- package/dist/resizeObserver.js +0 -54
- package/dist/resizeObserver.js.map +0 -1
- package/dist/testing/findText.d.ts +0 -4
- package/dist/testing/findText.d.ts.map +0 -1
- package/dist/testing/findText.js +0 -27
- package/dist/testing/findText.js.map +0 -1
- package/dist/testing/renderToVNode.d.ts +0 -9
- package/dist/testing/renderToVNode.d.ts.map +0 -1
- package/dist/testing/renderToVNode.js +0 -22
- package/dist/testing/renderToVNode.js.map +0 -1
- package/dist/testing/simulateKeyEvent.d.ts +0 -18
- package/dist/testing/simulateKeyEvent.d.ts.map +0 -1
- package/dist/testing/simulateKeyEvent.js +0 -23
- package/dist/testing/simulateKeyEvent.js.map +0 -1
- package/dist/types.d.ts +0 -185
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCursor.d.ts","sourceRoot":"","sources":["../../src/hooks/useCursor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,wBAAgB,SAAS;kCAIV,cAAc,GAAG,SAAS,KAAG,IAAI;EAa/C"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useCallback, useEffect } from "react";
|
|
2
|
+
import { useInkContext } from "../runtime/context.js";
|
|
3
|
+
export function useCursor() {
|
|
4
|
+
const ctx = useInkContext();
|
|
5
|
+
const setCursorPosition = useCallback((position) => {
|
|
6
|
+
ctx.setCursorPosition(position);
|
|
7
|
+
}, [ctx]);
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
return () => {
|
|
10
|
+
ctx.setCursorPosition(undefined);
|
|
11
|
+
};
|
|
12
|
+
}, [ctx]);
|
|
13
|
+
return { setCursorPosition };
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=useCursor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCursor.js","sourceRoot":"","sources":["../../src/hooks/useCursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,UAAU,SAAS;IACvB,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAE5B,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,QAAoC,EAAQ,EAAE;QAC7C,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC,EACD,CAAC,GAAG,CAAC,CACN,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC/B,CAAC"}
|
package/dist/hooks/useFocus.d.ts
CHANGED
|
@@ -1,29 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* Enable or disable this component's focus, while still maintaining its
|
|
4
|
-
* position in the list of focusable components.
|
|
5
|
-
*/
|
|
6
|
-
isActive?: boolean;
|
|
7
|
-
/**
|
|
8
|
-
* Auto focus this component, if there's no active (focused) component right now.
|
|
9
|
-
*/
|
|
1
|
+
export declare function useFocus(options?: {
|
|
10
2
|
autoFocus?: boolean;
|
|
11
|
-
|
|
12
|
-
* Assign an ID to this component, so it can be programmatically focused with `focus(id)`.
|
|
13
|
-
*/
|
|
3
|
+
isActive?: boolean;
|
|
14
4
|
id?: string;
|
|
15
|
-
}
|
|
16
|
-
type Output = Readonly<{
|
|
5
|
+
}): {
|
|
17
6
|
isFocused: boolean;
|
|
18
|
-
focus: (
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Ink-compatible `useFocus()`.
|
|
22
|
-
*
|
|
23
|
-
* This is a compat-only focus system used to coordinate `isActive` flags for
|
|
24
|
-
* `useInput` in third-party Ink components. It does not integrate with Rezi's
|
|
25
|
-
* widget-level focus system.
|
|
26
|
-
*/
|
|
27
|
-
export default function useFocus({ isActive, autoFocus, id: customId, }?: Input): Output;
|
|
28
|
-
export {};
|
|
7
|
+
focus: () => void;
|
|
8
|
+
};
|
|
29
9
|
//# sourceMappingURL=useFocus.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFocus.d.ts","sourceRoot":"","sources":["../../src/hooks/useFocus.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useFocus.d.ts","sourceRoot":"","sources":["../../src/hooks/useFocus.ts"],"names":[],"mappings":"AA2BA,wBAAgB,QAAQ,CAAC,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE;;;EAiC1F"}
|
package/dist/hooks/useFocus.js
CHANGED
|
@@ -1,40 +1,56 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
1
|
+
import { useEffect, useId, useState } from "react";
|
|
2
|
+
import { useInkContext } from "../runtime/context.js";
|
|
3
|
+
const rawModeRefCounts = new WeakMap();
|
|
4
|
+
function retainRawMode(ctx) {
|
|
5
|
+
const count = rawModeRefCounts.get(ctx) ?? 0;
|
|
6
|
+
if (count === 0) {
|
|
7
|
+
ctx.setRawMode(true);
|
|
8
|
+
}
|
|
9
|
+
rawModeRefCounts.set(ctx, count + 1);
|
|
10
|
+
}
|
|
11
|
+
function releaseRawMode(ctx) {
|
|
12
|
+
const count = rawModeRefCounts.get(ctx) ?? 0;
|
|
13
|
+
if (count <= 0) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
if (count === 1) {
|
|
17
|
+
rawModeRefCounts.delete(ctx);
|
|
18
|
+
ctx.setRawMode(false);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
rawModeRefCounts.set(ctx, count - 1);
|
|
22
|
+
}
|
|
23
|
+
export function useFocus(options) {
|
|
24
|
+
const autoId = useId();
|
|
25
|
+
const focusId = options?.id ?? autoId;
|
|
26
|
+
const ctx = useInkContext();
|
|
27
|
+
const [, setTick] = useState(0);
|
|
21
28
|
useEffect(() => {
|
|
22
|
-
if (isActive)
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
29
|
+
if (options?.isActive === false)
|
|
30
|
+
return;
|
|
31
|
+
const registerOptions = options?.autoFocus === undefined ? undefined : { autoFocus: options.autoFocus };
|
|
32
|
+
ctx.registerFocusable(focusId, registerOptions);
|
|
33
|
+
// Force re-render so the component picks up the focus state
|
|
34
|
+
// (focusedId lives on the bridge, not in React state)
|
|
35
|
+
setTick((t) => t + 1);
|
|
36
|
+
return () => ctx.unregisterFocusable(focusId);
|
|
37
|
+
}, [ctx, focusId, options?.autoFocus, options?.isActive]);
|
|
27
38
|
useEffect(() => {
|
|
28
|
-
if (
|
|
39
|
+
if (options?.isActive === false)
|
|
40
|
+
return;
|
|
41
|
+
if (!ctx.isRawModeSupported)
|
|
29
42
|
return;
|
|
30
|
-
|
|
43
|
+
retainRawMode(ctx);
|
|
31
44
|
return () => {
|
|
32
|
-
|
|
45
|
+
releaseRawMode(ctx);
|
|
33
46
|
};
|
|
34
|
-
}, [
|
|
47
|
+
}, [ctx, options?.isActive]);
|
|
35
48
|
return {
|
|
36
|
-
isFocused:
|
|
37
|
-
focus
|
|
49
|
+
isFocused: ctx.getFocusedId() === focusId,
|
|
50
|
+
focus: () => {
|
|
51
|
+
ctx.focusById(focusId);
|
|
52
|
+
ctx.rerender();
|
|
53
|
+
},
|
|
38
54
|
};
|
|
39
55
|
}
|
|
40
56
|
//# sourceMappingURL=useFocus.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFocus.js","sourceRoot":"","sources":["../../src/hooks/useFocus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useFocus.js","sourceRoot":"","sources":["../../src/hooks/useFocus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAwB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE5E,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAA2B,CAAC;AAEhE,SAAS,aAAa,CAAC,GAAoB;IACzC,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IACD,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,cAAc,CAAC,GAAoB;IAC1C,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACtB,OAAO;IACT,CAAC;IACD,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAkE;IACzF,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,OAAO,EAAE,EAAE,IAAI,MAAM,CAAC;IACtC,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEhC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE,QAAQ,KAAK,KAAK;YAAE,OAAO;QACxC,MAAM,eAAe,GACnB,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QAClF,GAAG,CAAC,iBAAiB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAChD,4DAA4D;QAC5D,sDAAsD;QACtD,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtB,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE1D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE,QAAQ,KAAK,KAAK;YAAE,OAAO;QACxC,IAAI,CAAC,GAAG,CAAC,kBAAkB;YAAE,OAAO;QACpC,aAAa,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,GAAG,EAAE;YACV,cAAc,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE7B,OAAO;QACL,SAAS,EAAE,GAAG,CAAC,YAAY,EAAE,KAAK,OAAO;QACzC,KAAK,EAAE,GAAG,EAAE;YACV,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACvB,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
* Ink-compatible `useFocusManager()`.
|
|
3
|
-
*/
|
|
4
|
-
export default function useFocusManager(): {
|
|
1
|
+
export declare function useFocusManager(): {
|
|
5
2
|
enableFocus: () => void;
|
|
6
3
|
disableFocus: () => void;
|
|
7
4
|
focusNext: () => void;
|
|
8
5
|
focusPrevious: () => void;
|
|
9
6
|
focus: (id: string) => void;
|
|
7
|
+
activeId: string | undefined;
|
|
10
8
|
};
|
|
11
9
|
//# sourceMappingURL=useFocusManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFocusManager.d.ts","sourceRoot":"","sources":["../../src/hooks/useFocusManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useFocusManager.d.ts","sourceRoot":"","sources":["../../src/hooks/useFocusManager.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe;;;;;gBAOf,MAAM;;EAGrB"}
|
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* Ink-compatible `useFocusManager()`.
|
|
5
|
-
*/
|
|
6
|
-
export default function useFocusManager() {
|
|
7
|
-
const focusContext = useContext(FocusContext);
|
|
1
|
+
import { useInkContext } from "../runtime/context.js";
|
|
2
|
+
export function useFocusManager() {
|
|
3
|
+
const ctx = useInkContext();
|
|
8
4
|
return {
|
|
9
|
-
enableFocus:
|
|
10
|
-
disableFocus:
|
|
11
|
-
focusNext:
|
|
12
|
-
focusPrevious:
|
|
13
|
-
focus:
|
|
5
|
+
enableFocus: () => ctx.setFocusEnabled(true),
|
|
6
|
+
disableFocus: () => ctx.setFocusEnabled(false),
|
|
7
|
+
focusNext: () => ctx.focusNext(),
|
|
8
|
+
focusPrevious: () => ctx.focusPrevious(),
|
|
9
|
+
focus: (id) => ctx.focusById(id),
|
|
10
|
+
activeId: ctx.getFocusedId(),
|
|
14
11
|
};
|
|
15
12
|
}
|
|
16
13
|
//# sourceMappingURL=useFocusManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFocusManager.js","sourceRoot":"","sources":["../../src/hooks/useFocusManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useFocusManager.js","sourceRoot":"","sources":["../../src/hooks/useFocusManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,UAAU,eAAe;IAC7B,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,OAAO;QACL,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;QAC5C,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC;QAC9C,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE;QAChC,aAAa,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE;QACxC,KAAK,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACxC,QAAQ,EAAE,GAAG,CAAC,YAAY,EAAE;KAC7B,CAAC;AACJ,CAAC"}
|
package/dist/hooks/useInput.d.ts
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
import type
|
|
2
|
-
type
|
|
3
|
-
|
|
1
|
+
import { type Key } from "../runtime/context.js";
|
|
2
|
+
export type { Key };
|
|
3
|
+
export declare function useInput(handler: (input: string, key: Key) => void, options?: {
|
|
4
4
|
isActive?: boolean;
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* Ink-compatible `useInput()` implemented on top of Rezi engine events.
|
|
8
|
-
*/
|
|
9
|
-
declare const useInput: (inputHandler: Handler, options?: Options) => void;
|
|
10
|
-
export default useInput;
|
|
5
|
+
}): void;
|
|
11
6
|
//# sourceMappingURL=useInput.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInput.d.ts","sourceRoot":"","sources":["../../src/hooks/useInput.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useInput.d.ts","sourceRoot":"","sources":["../../src/hooks/useInput.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,GAAG,EAAiB,MAAM,uBAAuB,CAAC;AAEhE,YAAY,EAAE,GAAG,EAAE,CAAC;AAEpB,wBAAgB,QAAQ,CACtB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,EAC1C,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/B,IAAI,CAgBN"}
|
package/dist/hooks/useInput.js
CHANGED
|
@@ -1,124 +1,21 @@
|
|
|
1
|
-
import { ZR_KEY_BACKSPACE, ZR_KEY_DELETE, ZR_KEY_DOWN, ZR_KEY_ENTER, ZR_KEY_ESCAPE, ZR_KEY_LEFT, ZR_KEY_PAGE_DOWN, ZR_KEY_PAGE_UP, ZR_KEY_RIGHT, ZR_KEY_TAB, ZR_KEY_UP, ZR_MOD_ALT, ZR_MOD_CTRL, ZR_MOD_META, ZR_MOD_SHIFT, } from "@rezi-ui/core/keybindings";
|
|
2
1
|
import { useEffect } from "react";
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
function buildKey(mods, ev) {
|
|
7
|
-
const ctrl = (mods & ZR_MOD_CTRL) !== 0;
|
|
8
|
-
const shift = (mods & ZR_MOD_SHIFT) !== 0;
|
|
9
|
-
const meta = (mods & (ZR_MOD_ALT | ZR_MOD_META)) !== 0;
|
|
10
|
-
const keyCode = ev?.kind === "key" ? ev.key : null;
|
|
11
|
-
return {
|
|
12
|
-
upArrow: keyCode === ZR_KEY_UP,
|
|
13
|
-
downArrow: keyCode === ZR_KEY_DOWN,
|
|
14
|
-
leftArrow: keyCode === ZR_KEY_LEFT,
|
|
15
|
-
rightArrow: keyCode === ZR_KEY_RIGHT,
|
|
16
|
-
pageDown: keyCode === ZR_KEY_PAGE_DOWN,
|
|
17
|
-
pageUp: keyCode === ZR_KEY_PAGE_UP,
|
|
18
|
-
return: keyCode === ZR_KEY_ENTER,
|
|
19
|
-
escape: keyCode === ZR_KEY_ESCAPE,
|
|
20
|
-
ctrl,
|
|
21
|
-
shift,
|
|
22
|
-
tab: keyCode === ZR_KEY_TAB,
|
|
23
|
-
backspace: keyCode === ZR_KEY_BACKSPACE,
|
|
24
|
-
delete: keyCode === ZR_KEY_DELETE,
|
|
25
|
-
// Ink sets meta=true for Escape for backward compatibility.
|
|
26
|
-
meta: meta || keyCode === ZR_KEY_ESCAPE,
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
function isNonTextKey(keyCode) {
|
|
30
|
-
return (keyCode === ZR_KEY_UP ||
|
|
31
|
-
keyCode === ZR_KEY_DOWN ||
|
|
32
|
-
keyCode === ZR_KEY_LEFT ||
|
|
33
|
-
keyCode === ZR_KEY_RIGHT ||
|
|
34
|
-
keyCode === ZR_KEY_PAGE_UP ||
|
|
35
|
-
keyCode === ZR_KEY_PAGE_DOWN ||
|
|
36
|
-
keyCode === ZR_KEY_ENTER ||
|
|
37
|
-
keyCode === ZR_KEY_ESCAPE ||
|
|
38
|
-
keyCode === ZR_KEY_TAB ||
|
|
39
|
-
keyCode === ZR_KEY_BACKSPACE ||
|
|
40
|
-
keyCode === ZR_KEY_DELETE);
|
|
41
|
-
}
|
|
42
|
-
function keyCodeToChar(keyCode, shift) {
|
|
43
|
-
// Only handle printable ASCII here; unicode text input comes from ZREV TEXT/PASTE.
|
|
44
|
-
if (keyCode < 32 || keyCode > 126)
|
|
45
|
-
return null;
|
|
46
|
-
const ch = String.fromCharCode(keyCode);
|
|
47
|
-
// Engine key codes for letters are commonly normalized to uppercase; treat shift=false as lowercase.
|
|
48
|
-
if (!shift && ch >= "A" && ch <= "Z")
|
|
49
|
-
return ch.toLowerCase();
|
|
50
|
-
return ch;
|
|
51
|
-
}
|
|
52
|
-
function mapEngineEventToInput(ev, lastMods) {
|
|
53
|
-
if (ev.kind === "key") {
|
|
54
|
-
if (ev.action === "up")
|
|
55
|
-
return null;
|
|
56
|
-
const mods = ev.mods;
|
|
57
|
-
const key = buildKey(mods, ev);
|
|
58
|
-
// Always surface non-text keys.
|
|
59
|
-
if (isNonTextKey(ev.key)) {
|
|
60
|
-
return { input: "", key };
|
|
61
|
-
}
|
|
62
|
-
// Avoid double-calling for normal typing: prefer TEXT events when no ctrl/meta.
|
|
63
|
-
if ((mods & (ZR_MOD_CTRL | ZR_MOD_ALT | ZR_MOD_META)) === 0)
|
|
64
|
-
return null;
|
|
65
|
-
const input = keyCodeToChar(ev.key, key.shift) ?? "";
|
|
66
|
-
return { input, key };
|
|
67
|
-
}
|
|
68
|
-
if (ev.kind === "text") {
|
|
69
|
-
let input = "";
|
|
70
|
-
try {
|
|
71
|
-
input = String.fromCodePoint(ev.codepoint);
|
|
72
|
-
}
|
|
73
|
-
catch {
|
|
74
|
-
return null;
|
|
75
|
-
}
|
|
76
|
-
const key = buildKey(lastMods, null);
|
|
77
|
-
return { input, key };
|
|
78
|
-
}
|
|
79
|
-
if (ev.kind === "paste") {
|
|
80
|
-
const input = TEXT_DECODER.decode(ev.bytes);
|
|
81
|
-
const key = buildKey(lastMods, null);
|
|
82
|
-
return { input, key };
|
|
83
|
-
}
|
|
84
|
-
return null;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Ink-compatible `useInput()` implemented on top of Rezi engine events.
|
|
88
|
-
*/
|
|
89
|
-
const useInput = (inputHandler, options = {}) => {
|
|
90
|
-
const { internal_eventEmitter, internal_exitOnCtrlC } = useStdin();
|
|
2
|
+
import { useInkContext } from "../runtime/context.js";
|
|
3
|
+
export function useInput(handler, options) {
|
|
4
|
+
const ctx = useInkContext();
|
|
91
5
|
useEffect(() => {
|
|
92
|
-
if (options
|
|
6
|
+
if (options?.isActive === false)
|
|
93
7
|
return;
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
return;
|
|
98
|
-
// Track modifier state from engine KEY events so TEXT/PASTE can inherit it best-effort.
|
|
99
|
-
if (uiEv.event.kind === "key")
|
|
100
|
-
lastMods = uiEv.event.mods;
|
|
101
|
-
const mapped = mapEngineEventToInput(uiEv.event, lastMods);
|
|
102
|
-
if (!mapped)
|
|
103
|
-
return;
|
|
104
|
-
const { input, key } = mapped;
|
|
105
|
-
// Mirror Ink: don't forward Ctrl+C when exitOnCtrlC is enabled.
|
|
106
|
-
if (input.toLowerCase() === "c" && key.ctrl && internal_exitOnCtrlC)
|
|
107
|
-
return;
|
|
108
|
-
// If input is uppercase ASCII, mark shift=true (Ink compatibility quirk).
|
|
109
|
-
const keyMut = { ...key };
|
|
110
|
-
if (input.length === 1 && /^[A-Z]$/.test(input))
|
|
111
|
-
keyMut.shift = true;
|
|
112
|
-
// @ts-expect-error `batchedUpdates` is typed as requiring an argument.
|
|
113
|
-
reconciler.batchedUpdates(() => {
|
|
114
|
-
inputHandler(input, keyMut);
|
|
115
|
-
});
|
|
116
|
-
};
|
|
117
|
-
internal_eventEmitter.on("input", handle);
|
|
8
|
+
if (!ctx.isRawModeSupported)
|
|
9
|
+
return;
|
|
10
|
+
ctx.setRawMode(true);
|
|
118
11
|
return () => {
|
|
119
|
-
|
|
12
|
+
ctx.setRawMode(false);
|
|
120
13
|
};
|
|
121
|
-
}, [
|
|
122
|
-
|
|
123
|
-
|
|
14
|
+
}, [ctx, options?.isActive]);
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
if (options?.isActive === false)
|
|
17
|
+
return;
|
|
18
|
+
return ctx.onKeyEvent(handler);
|
|
19
|
+
}, [ctx, handler, options?.isActive]);
|
|
20
|
+
}
|
|
124
21
|
//# sourceMappingURL=useInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInput.js","sourceRoot":"","sources":["../../src/hooks/useInput.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useInput.js","sourceRoot":"","sources":["../../src/hooks/useInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAY,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAIhE,MAAM,UAAU,QAAQ,CACtB,OAA0C,EAC1C,OAAgC;IAEhC,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAE5B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE,QAAQ,KAAK,KAAK;YAAE,OAAO;QACxC,IAAI,CAAC,GAAG,CAAC,kBAAkB;YAAE,OAAO;QACpC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrB,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE7B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE,QAAQ,KAAK,KAAK;YAAE,OAAO;QACxC,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export declare function useIsScreenReaderEnabled(): boolean;
|
|
2
2
|
//# sourceMappingURL=useIsScreenReaderEnabled.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsScreenReaderEnabled.d.ts","sourceRoot":"","sources":["../../src/hooks/useIsScreenReaderEnabled.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useIsScreenReaderEnabled.d.ts","sourceRoot":"","sources":["../../src/hooks/useIsScreenReaderEnabled.ts"],"names":[],"mappings":"AAEA,wBAAgB,wBAAwB,IAAI,OAAO,CAGlD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
return
|
|
1
|
+
import { useInkContext } from "../runtime/context.js";
|
|
2
|
+
export function useIsScreenReaderEnabled() {
|
|
3
|
+
const ctx = useInkContext();
|
|
4
|
+
return ctx.isScreenReaderEnabled;
|
|
5
5
|
}
|
|
6
6
|
//# sourceMappingURL=useIsScreenReaderEnabled.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsScreenReaderEnabled.js","sourceRoot":"","sources":["../../src/hooks/useIsScreenReaderEnabled.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"useIsScreenReaderEnabled.js","sourceRoot":"","sources":["../../src/hooks/useIsScreenReaderEnabled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,UAAU,wBAAwB;IACtC,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,OAAO,GAAG,CAAC,qBAAqB,CAAC;AACnC,CAAC"}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* Note: direct writes bypass Rezi's renderer and may interfere with UI output.
|
|
5
|
-
*/
|
|
6
|
-
export default function useStderr(): {
|
|
7
|
-
stderr: NodeJS.WriteStream;
|
|
1
|
+
export declare function useStderr(): {
|
|
2
|
+
stderr: import("stream").Writable;
|
|
8
3
|
write: (data: string) => void;
|
|
9
4
|
};
|
|
10
5
|
//# sourceMappingURL=useStderr.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStderr.d.ts","sourceRoot":"","sources":["../../src/hooks/useStderr.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"useStderr.d.ts","sourceRoot":"","sources":["../../src/hooks/useStderr.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS;;kBAIP,MAAM;EAIvB"}
|
package/dist/hooks/useStderr.js
CHANGED
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
*
|
|
5
|
-
* Note: direct writes bypass Rezi's renderer and may interfere with UI output.
|
|
6
|
-
*/
|
|
7
|
-
export default function useStderr() {
|
|
8
|
-
const ctx = useRequiredStdioContext();
|
|
1
|
+
import { useInkContext } from "../runtime/context.js";
|
|
2
|
+
export function useStderr() {
|
|
3
|
+
const ctx = useInkContext();
|
|
9
4
|
return {
|
|
10
5
|
stderr: ctx.stderr,
|
|
11
6
|
write: (data) => {
|
|
12
|
-
|
|
7
|
+
ctx.writeStderr(data);
|
|
13
8
|
},
|
|
14
9
|
};
|
|
15
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStderr.js","sourceRoot":"","sources":["../../src/hooks/useStderr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useStderr.js","sourceRoot":"","sources":["../../src/hooks/useStderr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,UAAU,SAAS;IACvB,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE;YACtB,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/hooks/useStdin.d.ts
CHANGED
|
@@ -1,17 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* In Ink, this returns the StdinContext props. We keep the same surface.
|
|
5
|
-
*/
|
|
6
|
-
export default function useStdin(): {
|
|
7
|
-
stdin: NodeJS.ReadStream;
|
|
8
|
-
setRawMode: (value: boolean) => void;
|
|
1
|
+
import type tty from "node:tty";
|
|
2
|
+
export declare function useStdin(): {
|
|
3
|
+
stdin: tty.ReadStream;
|
|
9
4
|
isRawModeSupported: boolean;
|
|
10
|
-
|
|
11
|
-
internal_eventEmitter: Readonly<{
|
|
12
|
-
on: (event: "input", listener: import("../internal/emitter.js").Listener<import("@rezi-ui/core").UiEvent>) => void;
|
|
13
|
-
removeListener: (event: "input", listener: import("../internal/emitter.js").Listener<import("@rezi-ui/core").UiEvent>) => void;
|
|
14
|
-
emit: (event: "input", value: import("@rezi-ui/core").UiEvent) => void;
|
|
15
|
-
}>;
|
|
5
|
+
setRawMode: (enabled: boolean) => void;
|
|
16
6
|
};
|
|
17
7
|
//# sourceMappingURL=useStdin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStdin.d.ts","sourceRoot":"","sources":["../../src/hooks/useStdin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useStdin.d.ts","sourceRoot":"","sources":["../../src/hooks/useStdin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAIhC,wBAAgB,QAAQ,IAAI;IAC1B,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC,CASA"}
|
package/dist/hooks/useStdin.js
CHANGED
|
@@ -1,17 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
*/
|
|
7
|
-
export default function useStdin() {
|
|
8
|
-
const ctx = useRequiredStdioContext();
|
|
1
|
+
import { useInkContext } from "../runtime/context.js";
|
|
2
|
+
export function useStdin() {
|
|
3
|
+
const ctx = useInkContext();
|
|
4
|
+
// The actual stdin may be process.stdin (a ReadStream) or a mock PassThrough.
|
|
5
|
+
// We cast to ReadStream to match Ink's typing — callers already guard with isRawModeSupported.
|
|
9
6
|
return {
|
|
10
7
|
stdin: ctx.stdin,
|
|
11
|
-
setRawMode: ctx.setRawMode,
|
|
12
8
|
isRawModeSupported: ctx.isRawModeSupported,
|
|
13
|
-
|
|
14
|
-
internal_eventEmitter: ctx.internal_eventEmitter,
|
|
9
|
+
setRawMode: ctx.setRawMode,
|
|
15
10
|
};
|
|
16
11
|
}
|
|
17
12
|
//# sourceMappingURL=useStdin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStdin.js","sourceRoot":"","sources":["../../src/hooks/useStdin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useStdin.js","sourceRoot":"","sources":["../../src/hooks/useStdin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,UAAU,QAAQ;IAKtB,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,8EAA8E;IAC9E,+FAA+F;IAC/F,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,KAAkC;QAC7C,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;QAC1C,UAAU,EAAE,GAAG,CAAC,UAAU;KAC3B,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* Note: direct writes bypass Rezi's renderer and may interfere with UI output.
|
|
5
|
-
*/
|
|
6
|
-
export default function useStdout(): {
|
|
7
|
-
stdout: NodeJS.WriteStream;
|
|
1
|
+
export declare function useStdout(): {
|
|
2
|
+
stdout: import("stream").Writable;
|
|
8
3
|
write: (data: string) => void;
|
|
9
4
|
};
|
|
10
5
|
//# sourceMappingURL=useStdout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStdout.d.ts","sourceRoot":"","sources":["../../src/hooks/useStdout.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"useStdout.d.ts","sourceRoot":"","sources":["../../src/hooks/useStdout.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS;;kBAIP,MAAM;EAIvB"}
|
package/dist/hooks/useStdout.js
CHANGED
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
*
|
|
5
|
-
* Note: direct writes bypass Rezi's renderer and may interfere with UI output.
|
|
6
|
-
*/
|
|
7
|
-
export default function useStdout() {
|
|
8
|
-
const ctx = useRequiredStdioContext();
|
|
1
|
+
import { useInkContext } from "../runtime/context.js";
|
|
2
|
+
export function useStdout() {
|
|
3
|
+
const ctx = useInkContext();
|
|
9
4
|
return {
|
|
10
5
|
stdout: ctx.stdout,
|
|
11
6
|
write: (data) => {
|
|
12
|
-
|
|
7
|
+
ctx.writeStdout(data);
|
|
13
8
|
},
|
|
14
9
|
};
|
|
15
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStdout.js","sourceRoot":"","sources":["../../src/hooks/useStdout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useStdout.js","sourceRoot":"","sources":["../../src/hooks/useStdout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,UAAU,SAAS;IACvB,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE;YACtB,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC"}
|