@deepseek-harness-tui/dsh-tui 0.5.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/LICENSE +21 -0
- package/README.md +235 -0
- package/bin/dsh-tui.js +95 -0
- package/cordis.patch.yml +218 -0
- package/cordis.yml +185 -0
- package/lib/invariant.js +28 -0
- package/lib/types/activityPrefs.d.ts +29 -0
- package/lib/types/activityPrefs.d.ts.map +1 -0
- package/lib/types/activityPrefs.js +60 -0
- package/lib/types/bootstrap/state.d.ts +13 -0
- package/lib/types/bootstrap/state.d.ts.map +1 -0
- package/lib/types/bootstrap/state.js +12 -0
- package/lib/types/cc/cliHighlight.d.ts +20 -0
- package/lib/types/cc/cliHighlight.d.ts.map +1 -0
- package/lib/types/cc/cliHighlight.js +53 -0
- package/lib/types/cc/figures.d.ts +59 -0
- package/lib/types/cc/figures.d.ts.map +1 -0
- package/lib/types/cc/figures.js +69 -0
- package/lib/types/cc/format.d.ts +26 -0
- package/lib/types/cc/format.d.ts.map +1 -0
- package/lib/types/cc/format.js +55 -0
- package/lib/types/cc/hash.d.ts +25 -0
- package/lib/types/cc/hash.d.ts.map +1 -0
- package/lib/types/cc/hash.js +41 -0
- package/lib/types/cc/hyperlink.d.ts +21 -0
- package/lib/types/cc/hyperlink.d.ts.map +1 -0
- package/lib/types/cc/hyperlink.js +31 -0
- package/lib/types/cc/markdown.d.ts +43 -0
- package/lib/types/cc/markdown.d.ts.map +1 -0
- package/lib/types/cc/markdown.js +345 -0
- package/lib/types/cc/spinnerVerbs.d.ts +3 -0
- package/lib/types/cc/spinnerVerbs.d.ts.map +1 -0
- package/lib/types/cc/spinnerVerbs.js +190 -0
- package/lib/types/cc/terminal.d.ts +15 -0
- package/lib/types/cc/terminal.d.ts.map +1 -0
- package/lib/types/cc/terminal.js +84 -0
- package/lib/types/channel.d.ts +672 -0
- package/lib/types/channel.d.ts.map +1 -0
- package/lib/types/channel.js +2427 -0
- package/lib/types/childStderr.d.ts +63 -0
- package/lib/types/childStderr.d.ts.map +1 -0
- package/lib/types/childStderr.js +161 -0
- package/lib/types/commands.d.ts +55 -0
- package/lib/types/commands.d.ts.map +1 -0
- package/lib/types/commands.js +101 -0
- package/lib/types/components/ActivityLine.d.ts +29 -0
- package/lib/types/components/ActivityLine.d.ts.map +1 -0
- package/lib/types/components/ActivityLine.js +47 -0
- package/lib/types/components/ActivityPicker.d.ts +13 -0
- package/lib/types/components/ActivityPicker.d.ts.map +1 -0
- package/lib/types/components/ActivityPicker.js +24 -0
- package/lib/types/components/CommandSuggestions.d.ts +14 -0
- package/lib/types/components/CommandSuggestions.d.ts.map +1 -0
- package/lib/types/components/CommandSuggestions.js +33 -0
- package/lib/types/components/FileSuggestions.d.ts +12 -0
- package/lib/types/components/FileSuggestions.d.ts.map +1 -0
- package/lib/types/components/FileSuggestions.js +26 -0
- package/lib/types/components/GoalTodoPanel.d.ts +13 -0
- package/lib/types/components/GoalTodoPanel.d.ts.map +1 -0
- package/lib/types/components/GoalTodoPanel.js +57 -0
- package/lib/types/components/HelpMenu.d.ts +12 -0
- package/lib/types/components/HelpMenu.d.ts.map +1 -0
- package/lib/types/components/HelpMenu.js +12 -0
- package/lib/types/components/HistorySearchDialog.d.ts +16 -0
- package/lib/types/components/HistorySearchDialog.d.ts.map +1 -0
- package/lib/types/components/HistorySearchDialog.js +31 -0
- package/lib/types/components/InterruptedByUser.d.ts +7 -0
- package/lib/types/components/InterruptedByUser.d.ts.map +1 -0
- package/lib/types/components/InterruptedByUser.js +9 -0
- package/lib/types/components/LoadedContextPanel.d.ts +20 -0
- package/lib/types/components/LoadedContextPanel.d.ts.map +1 -0
- package/lib/types/components/LoadedContextPanel.js +30 -0
- package/lib/types/components/LogoV2.d.ts +23 -0
- package/lib/types/components/LogoV2.d.ts.map +1 -0
- package/lib/types/components/LogoV2.js +95 -0
- package/lib/types/components/Markdown.d.ts +24 -0
- package/lib/types/components/Markdown.d.ts.map +1 -0
- package/lib/types/components/Markdown.js +106 -0
- package/lib/types/components/MarkdownTable.d.ts +17 -0
- package/lib/types/components/MarkdownTable.d.ts.map +1 -0
- package/lib/types/components/MarkdownTable.js +272 -0
- package/lib/types/components/MessageList.d.ts +41 -0
- package/lib/types/components/MessageList.d.ts.map +1 -0
- package/lib/types/components/MessageList.js +303 -0
- package/lib/types/components/ModelPicker.d.ts +14 -0
- package/lib/types/components/ModelPicker.d.ts.map +1 -0
- package/lib/types/components/ModelPicker.js +15 -0
- package/lib/types/components/PresetPicker.d.ts +17 -0
- package/lib/types/components/PresetPicker.d.ts.map +1 -0
- package/lib/types/components/PresetPicker.js +25 -0
- package/lib/types/components/PromptInput.d.ts +67 -0
- package/lib/types/components/PromptInput.d.ts.map +1 -0
- package/lib/types/components/PromptInput.js +778 -0
- package/lib/types/components/ResumePicker.d.ts +15 -0
- package/lib/types/components/ResumePicker.d.ts.map +1 -0
- package/lib/types/components/ResumePicker.js +34 -0
- package/lib/types/components/RewindPicker.d.ts +14 -0
- package/lib/types/components/RewindPicker.d.ts.map +1 -0
- package/lib/types/components/RewindPicker.js +23 -0
- package/lib/types/components/SearchBox.d.ts +20 -0
- package/lib/types/components/SearchBox.d.ts.map +1 -0
- package/lib/types/components/SearchBox.js +33 -0
- package/lib/types/components/Select.d.ts +22 -0
- package/lib/types/components/Select.d.ts.map +1 -0
- package/lib/types/components/Select.js +19 -0
- package/lib/types/components/Spinner/GlimmerMessage.d.ts +19 -0
- package/lib/types/components/Spinner/GlimmerMessage.d.ts.map +1 -0
- package/lib/types/components/Spinner/GlimmerMessage.js +78 -0
- package/lib/types/components/Spinner/SpinnerAnimationRow.d.ts +31 -0
- package/lib/types/components/Spinner/SpinnerAnimationRow.d.ts.map +1 -0
- package/lib/types/components/Spinner/SpinnerAnimationRow.js +162 -0
- package/lib/types/components/Spinner/SpinnerGlyph.d.ts +16 -0
- package/lib/types/components/Spinner/SpinnerGlyph.d.ts.map +1 -0
- package/lib/types/components/Spinner/SpinnerGlyph.js +36 -0
- package/lib/types/components/Spinner/spinnerMode.d.ts +6 -0
- package/lib/types/components/Spinner/spinnerMode.d.ts.map +1 -0
- package/lib/types/components/Spinner/spinnerMode.js +1 -0
- package/lib/types/components/Spinner/spinnerUtils.d.ts +41 -0
- package/lib/types/components/Spinner/spinnerUtils.d.ts.map +1 -0
- package/lib/types/components/Spinner/spinnerUtils.js +104 -0
- package/lib/types/components/Spinner/useStalledAnimation.d.ts +16 -0
- package/lib/types/components/Spinner/useStalledAnimation.d.ts.map +1 -0
- package/lib/types/components/Spinner/useStalledAnimation.js +71 -0
- package/lib/types/components/StreamingMarkdown.d.ts +12 -0
- package/lib/types/components/StreamingMarkdown.d.ts.map +1 -0
- package/lib/types/components/StreamingMarkdown.js +39 -0
- package/lib/types/components/ThemePicker.d.ts +22 -0
- package/lib/types/components/ThemePicker.d.ts.map +1 -0
- package/lib/types/components/ThemePicker.js +51 -0
- package/lib/types/components/ThinkingToggle.d.ts +17 -0
- package/lib/types/components/ThinkingToggle.d.ts.map +1 -0
- package/lib/types/components/ThinkingToggle.js +30 -0
- package/lib/types/components/ToolUseLoader.d.ts +13 -0
- package/lib/types/components/ToolUseLoader.d.ts.map +1 -0
- package/lib/types/components/ToolUseLoader.js +17 -0
- package/lib/types/components/Whale.d.ts +22 -0
- package/lib/types/components/Whale.d.ts.map +1 -0
- package/lib/types/components/Whale.js +78 -0
- package/lib/types/components/WorkingSpinner.d.ts +26 -0
- package/lib/types/components/WorkingSpinner.d.ts.map +1 -0
- package/lib/types/components/WorkingSpinner.js +68 -0
- package/lib/types/components/activityFrames.d.ts +31 -0
- package/lib/types/components/activityFrames.d.ts.map +1 -0
- package/lib/types/components/activityFrames.js +83 -0
- package/lib/types/components/bigfont.d.ts +28 -0
- package/lib/types/components/bigfont.d.ts.map +1 -0
- package/lib/types/components/bigfont.js +91 -0
- package/lib/types/components/design-system/Byline.d.ts +14 -0
- package/lib/types/components/design-system/Byline.d.ts.map +1 -0
- package/lib/types/components/design-system/Byline.js +17 -0
- package/lib/types/components/design-system/Divider.d.ts +40 -0
- package/lib/types/components/design-system/Divider.d.ts.map +1 -0
- package/lib/types/components/design-system/Divider.js +24 -0
- package/lib/types/components/design-system/KeyboardShortcutHint.d.ts +19 -0
- package/lib/types/components/design-system/KeyboardShortcutHint.d.ts.map +1 -0
- package/lib/types/components/design-system/KeyboardShortcutHint.js +14 -0
- package/lib/types/components/design-system/ListItem.d.ts +36 -0
- package/lib/types/components/design-system/ListItem.d.ts.map +1 -0
- package/lib/types/components/design-system/ListItem.js +48 -0
- package/lib/types/components/design-system/LoadingState.d.ts +19 -0
- package/lib/types/components/design-system/LoadingState.d.ts.map +1 -0
- package/lib/types/components/design-system/LoadingState.js +22 -0
- package/lib/types/components/design-system/Pane.d.ts +17 -0
- package/lib/types/components/design-system/Pane.d.ts.map +1 -0
- package/lib/types/components/design-system/Pane.js +15 -0
- package/lib/types/components/design-system/ProgressBar.d.ts +22 -0
- package/lib/types/components/design-system/ProgressBar.d.ts.map +1 -0
- package/lib/types/components/design-system/ProgressBar.js +27 -0
- package/lib/types/components/design-system/StatusIcon.d.ts +15 -0
- package/lib/types/components/design-system/StatusIcon.d.ts.map +1 -0
- package/lib/types/components/design-system/StatusIcon.js +20 -0
- package/lib/types/components/design-system/ThemeProvider.d.ts +11 -0
- package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -0
- package/lib/types/components/design-system/ThemeProvider.js +135 -0
- package/lib/types/components/design-system/ThemedBox.d.ts +37 -0
- package/lib/types/components/design-system/ThemedBox.d.ts.map +1 -0
- package/lib/types/components/design-system/ThemedBox.js +26 -0
- package/lib/types/components/design-system/ThemedText.d.ts +56 -0
- package/lib/types/components/design-system/ThemedText.d.ts.map +1 -0
- package/lib/types/components/design-system/ThemedText.js +45 -0
- package/lib/types/components/messages/AssistantTextMessage.d.ts +18 -0
- package/lib/types/components/messages/AssistantTextMessage.d.ts.map +1 -0
- package/lib/types/components/messages/AssistantTextMessage.js +15 -0
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts +23 -0
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts.map +1 -0
- package/lib/types/components/messages/AssistantThinkingMessage.js +23 -0
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts +23 -0
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -0
- package/lib/types/components/messages/AssistantToolUseMessage.js +220 -0
- package/lib/types/components/messages/MessageMetadata.d.ts +15 -0
- package/lib/types/components/messages/MessageMetadata.d.ts.map +1 -0
- package/lib/types/components/messages/MessageMetadata.js +20 -0
- package/lib/types/components/messages/UserPromptMessage.d.ts +19 -0
- package/lib/types/components/messages/UserPromptMessage.d.ts.map +1 -0
- package/lib/types/components/messages/UserPromptMessage.js +15 -0
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts +39 -0
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -0
- package/lib/types/components/questions/AskUserQuestionPanel.js +228 -0
- package/lib/types/components/shimmer.d.ts +35 -0
- package/lib/types/components/shimmer.d.ts.map +1 -0
- package/lib/types/components/shimmer.js +43 -0
- package/lib/types/components/whaleFrames.d.ts +25 -0
- package/lib/types/components/whaleFrames.d.ts.map +1 -0
- package/lib/types/components/whaleFrames.js +419 -0
- package/lib/types/customTheme.d.ts +104 -0
- package/lib/types/customTheme.d.ts.map +1 -0
- package/lib/types/customTheme.js +268 -0
- package/lib/types/effortPrefs.d.ts +22 -0
- package/lib/types/effortPrefs.d.ts.map +1 -0
- package/lib/types/effortPrefs.js +45 -0
- package/lib/types/history.d.ts +24 -0
- package/lib/types/history.d.ts.map +1 -0
- package/lib/types/history.js +75 -0
- package/lib/types/hooks/useBlink.d.ts +11 -0
- package/lib/types/hooks/useBlink.d.ts.map +1 -0
- package/lib/types/hooks/useBlink.js +20 -0
- package/lib/types/i18n.d.ts +926 -0
- package/lib/types/i18n.d.ts.map +1 -0
- package/lib/types/i18n.js +356 -0
- package/lib/types/index.d.ts +70 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +31 -0
- package/lib/types/ink/Ansi.d.ts +11 -0
- package/lib/types/ink/Ansi.d.ts.map +1 -0
- package/lib/types/ink/Ansi.js +269 -0
- package/lib/types/ink/bidi.d.ts +18 -0
- package/lib/types/ink/bidi.d.ts.map +1 -0
- package/lib/types/ink/bidi.js +119 -0
- package/lib/types/ink/clearTerminal.d.ts +22 -0
- package/lib/types/ink/clearTerminal.d.ts.map +1 -0
- package/lib/types/ink/clearTerminal.js +72 -0
- package/lib/types/ink/colorize.d.ts +33 -0
- package/lib/types/ink/colorize.d.ts.map +1 -0
- package/lib/types/ink/colorize.js +213 -0
- package/lib/types/ink/components/AlternateScreen.d.ts +22 -0
- package/lib/types/ink/components/AlternateScreen.d.ts.map +1 -0
- package/lib/types/ink/components/AlternateScreen.js +74 -0
- package/lib/types/ink/components/App.d.ts +73 -0
- package/lib/types/ink/components/App.d.ts.map +1 -0
- package/lib/types/ink/components/App.js +597 -0
- package/lib/types/ink/components/AppContext.d.ts +15 -0
- package/lib/types/ink/components/AppContext.d.ts.map +1 -0
- package/lib/types/ink/components/AppContext.js +11 -0
- package/lib/types/ink/components/Box.d.ts +49 -0
- package/lib/types/ink/components/Box.d.ts.map +1 -0
- package/lib/types/ink/components/Box.js +153 -0
- package/lib/types/ink/components/Button.d.ts +37 -0
- package/lib/types/ink/components/Button.d.ts.map +1 -0
- package/lib/types/ink/components/Button.js +166 -0
- package/lib/types/ink/components/ClockContext.d.ts +10 -0
- package/lib/types/ink/components/ClockContext.d.ts.map +1 -0
- package/lib/types/ink/components/ClockContext.js +108 -0
- package/lib/types/ink/components/CursorDeclarationContext.d.ts +30 -0
- package/lib/types/ink/components/CursorDeclarationContext.d.ts.map +1 -0
- package/lib/types/ink/components/CursorDeclarationContext.js +6 -0
- package/lib/types/ink/components/ErrorOverview.d.ts +7 -0
- package/lib/types/ink/components/ErrorOverview.d.ts.map +1 -0
- package/lib/types/ink/components/ErrorOverview.js +49 -0
- package/lib/types/ink/components/Link.d.ts +8 -0
- package/lib/types/ink/components/Link.d.ts.map +1 -0
- package/lib/types/ink/components/Link.js +33 -0
- package/lib/types/ink/components/Newline.d.ts +13 -0
- package/lib/types/ink/components/Newline.d.ts.map +1 -0
- package/lib/types/ink/components/Newline.js +29 -0
- package/lib/types/ink/components/NoSelect.d.ts +20 -0
- package/lib/types/ink/components/NoSelect.d.ts.map +1 -0
- package/lib/types/ink/components/NoSelect.js +56 -0
- package/lib/types/ink/components/RawAnsi.d.ts +17 -0
- package/lib/types/ink/components/RawAnsi.d.ts.map +1 -0
- package/lib/types/ink/components/RawAnsi.js +45 -0
- package/lib/types/ink/components/ScrollBox.d.ts +78 -0
- package/lib/types/ink/components/ScrollBox.d.ts.map +1 -0
- package/lib/types/ink/components/ScrollBox.js +174 -0
- package/lib/types/ink/components/Spacer.d.ts +6 -0
- package/lib/types/ink/components/Spacer.d.ts.map +1 -0
- package/lib/types/ink/components/Spacer.js +19 -0
- package/lib/types/ink/components/StdinContext.d.ts +32 -0
- package/lib/types/ink/components/StdinContext.d.ts.map +1 -0
- package/lib/types/ink/components/StdinContext.js +16 -0
- package/lib/types/ink/components/TerminalFocusContext.d.ts +11 -0
- package/lib/types/ink/components/TerminalFocusContext.d.ts.map +1 -0
- package/lib/types/ink/components/TerminalFocusContext.js +45 -0
- package/lib/types/ink/components/TerminalSizeContext.d.ts +6 -0
- package/lib/types/ink/components/TerminalSizeContext.d.ts.map +1 -0
- package/lib/types/ink/components/TerminalSizeContext.js +3 -0
- package/lib/types/ink/components/Text.d.ts +56 -0
- package/lib/types/ink/components/Text.d.ts.map +1 -0
- package/lib/types/ink/components/Text.js +194 -0
- package/lib/types/ink/constants.d.ts +3 -0
- package/lib/types/ink/constants.d.ts.map +1 -0
- package/lib/types/ink/constants.js +2 -0
- package/lib/types/ink/cursor.d.ts +11 -0
- package/lib/types/ink/cursor.d.ts.map +1 -0
- package/lib/types/ink/cursor.js +1 -0
- package/lib/types/ink/devtools.d.ts +7 -0
- package/lib/types/ink/devtools.d.ts.map +1 -0
- package/lib/types/ink/devtools.js +1 -0
- package/lib/types/ink/dom.d.ts +178 -0
- package/lib/types/ink/dom.d.ts.map +1 -0
- package/lib/types/ink/dom.js +424 -0
- package/lib/types/ink/events/click-event.d.ts +32 -0
- package/lib/types/ink/events/click-event.d.ts.map +1 -0
- package/lib/types/ink/events/click-event.js +36 -0
- package/lib/types/ink/events/dispatcher.d.ts +63 -0
- package/lib/types/ink/events/dispatcher.d.ts.map +1 -0
- package/lib/types/ink/events/dispatcher.js +194 -0
- package/lib/types/ink/events/emitter.d.ts +20 -0
- package/lib/types/ink/events/emitter.d.ts.map +1 -0
- package/lib/types/ink/events/emitter.js +43 -0
- package/lib/types/ink/events/event-handlers.d.ts +47 -0
- package/lib/types/ink/events/event-handlers.d.ts.map +1 -0
- package/lib/types/ink/events/event-handlers.js +30 -0
- package/lib/types/ink/events/event.d.ts +19 -0
- package/lib/types/ink/events/event.d.ts.map +1 -0
- package/lib/types/ink/events/event.js +22 -0
- package/lib/types/ink/events/focus-event.d.ts +19 -0
- package/lib/types/ink/events/focus-event.d.ts.map +1 -0
- package/lib/types/ink/events/focus-event.js +21 -0
- package/lib/types/ink/events/input-event.d.ts +53 -0
- package/lib/types/ink/events/input-event.d.ts.map +1 -0
- package/lib/types/ink/events/input-event.js +180 -0
- package/lib/types/ink/events/keyboard-event.d.ts +40 -0
- package/lib/types/ink/events/keyboard-event.d.ts.map +1 -0
- package/lib/types/ink/events/keyboard-event.js +65 -0
- package/lib/types/ink/events/paste-event.d.ts +11 -0
- package/lib/types/ink/events/paste-event.d.ts.map +1 -0
- package/lib/types/ink/events/paste-event.js +13 -0
- package/lib/types/ink/events/resize-event.d.ts +13 -0
- package/lib/types/ink/events/resize-event.d.ts.map +1 -0
- package/lib/types/ink/events/resize-event.js +16 -0
- package/lib/types/ink/events/terminal-event.d.ts +112 -0
- package/lib/types/ink/events/terminal-event.d.ts.map +1 -0
- package/lib/types/ink/events/terminal-event.js +131 -0
- package/lib/types/ink/events/terminal-focus-event.d.ts +21 -0
- package/lib/types/ink/events/terminal-focus-event.d.ts.map +1 -0
- package/lib/types/ink/events/terminal-focus-event.js +18 -0
- package/lib/types/ink/focus.d.ts +74 -0
- package/lib/types/ink/focus.d.ts.map +1 -0
- package/lib/types/ink/focus.js +188 -0
- package/lib/types/ink/frame.d.ts +119 -0
- package/lib/types/ink/frame.d.ts.map +1 -0
- package/lib/types/ink/frame.js +43 -0
- package/lib/types/ink/get-max-width.d.ts +20 -0
- package/lib/types/ink/get-max-width.d.ts.map +1 -0
- package/lib/types/ink/get-max-width.js +25 -0
- package/lib/types/ink/hit-test.d.ts +47 -0
- package/lib/types/ink/hit-test.d.ts.map +1 -0
- package/lib/types/ink/hit-test.js +126 -0
- package/lib/types/ink/hooks/use-animation-frame.d.ts +27 -0
- package/lib/types/ink/hooks/use-animation-frame.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-animation-frame.js +48 -0
- package/lib/types/ink/hooks/use-app.d.ts +8 -0
- package/lib/types/ink/hooks/use-app.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-app.js +8 -0
- package/lib/types/ink/hooks/use-copy-on-select.d.ts +22 -0
- package/lib/types/ink/hooks/use-copy-on-select.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-copy-on-select.js +40 -0
- package/lib/types/ink/hooks/use-declared-cursor.d.ts +31 -0
- package/lib/types/ink/hooks/use-declared-cursor.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-declared-cursor.js +65 -0
- package/lib/types/ink/hooks/use-input.d.ts +41 -0
- package/lib/types/ink/hooks/use-input.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-input.js +73 -0
- package/lib/types/ink/hooks/use-interval.d.ts +23 -0
- package/lib/types/ink/hooks/use-interval.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-interval.js +58 -0
- package/lib/types/ink/hooks/use-search-highlight.d.ts +34 -0
- package/lib/types/ink/hooks/use-search-highlight.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-search-highlight.js +35 -0
- package/lib/types/ink/hooks/use-selection.d.ts +44 -0
- package/lib/types/ink/hooks/use-selection.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-selection.js +64 -0
- package/lib/types/ink/hooks/use-stdin.d.ts +8 -0
- package/lib/types/ink/hooks/use-stdin.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-stdin.js +8 -0
- package/lib/types/ink/hooks/use-tab-status.d.ts +18 -0
- package/lib/types/ink/hooks/use-tab-status.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-tab-status.js +58 -0
- package/lib/types/ink/hooks/use-terminal-focus.d.ts +11 -0
- package/lib/types/ink/hooks/use-terminal-focus.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-terminal-focus.js +15 -0
- package/lib/types/ink/hooks/use-terminal-size.d.ts +6 -0
- package/lib/types/ink/hooks/use-terminal-size.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-terminal-size.js +12 -0
- package/lib/types/ink/hooks/use-terminal-title.d.ts +14 -0
- package/lib/types/ink/hooks/use-terminal-title.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-terminal-title.js +30 -0
- package/lib/types/ink/hooks/use-terminal-viewport.d.ts +32 -0
- package/lib/types/ink/hooks/use-terminal-viewport.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-terminal-viewport.js +79 -0
- package/lib/types/ink/ink.d.ts +370 -0
- package/lib/types/ink/ink.d.ts.map +1 -0
- package/lib/types/ink/ink.js +1665 -0
- package/lib/types/ink/instances.d.ts +10 -0
- package/lib/types/ink/instances.d.ts.map +1 -0
- package/lib/types/ink/instances.js +13 -0
- package/lib/types/ink/layout/engine.d.ts +7 -0
- package/lib/types/ink/layout/engine.d.ts.map +1 -0
- package/lib/types/ink/layout/engine.js +8 -0
- package/lib/types/ink/layout/geometry.d.ts +86 -0
- package/lib/types/ink/layout/geometry.d.ts.map +1 -0
- package/lib/types/ink/layout/geometry.js +95 -0
- package/lib/types/ink/layout/node.d.ts +151 -0
- package/lib/types/ink/layout/node.d.ts.map +1 -0
- package/lib/types/ink/layout/node.js +72 -0
- package/lib/types/ink/layout/yoga.d.ts +69 -0
- package/lib/types/ink/layout/yoga.d.ts.map +1 -0
- package/lib/types/ink/layout/yoga.js +249 -0
- package/lib/types/ink/line-width-cache.d.ts +9 -0
- package/lib/types/ink/line-width-cache.d.ts.map +1 -0
- package/lib/types/ink/line-width-cache.js +45 -0
- package/lib/types/ink/log-update.d.ts +57 -0
- package/lib/types/ink/log-update.d.ts.map +1 -0
- package/lib/types/ink/log-update.js +710 -0
- package/lib/types/ink/measure-element.d.ts +19 -0
- package/lib/types/ink/measure-element.d.ts.map +1 -0
- package/lib/types/ink/measure-element.js +10 -0
- package/lib/types/ink/measure-text.d.ts +13 -0
- package/lib/types/ink/measure-text.d.ts.map +1 -0
- package/lib/types/ink/measure-text.js +38 -0
- package/lib/types/ink/node-cache.d.ts +33 -0
- package/lib/types/ink/node-cache.d.ts.map +1 -0
- package/lib/types/ink/node-cache.js +42 -0
- package/lib/types/ink/optimizer.d.ts +18 -0
- package/lib/types/ink/optimizer.d.ts.map +1 -0
- package/lib/types/ink/optimizer.js +83 -0
- package/lib/types/ink/output.d.ts +200 -0
- package/lib/types/ink/output.d.ts.map +1 -0
- package/lib/types/ink/output.js +663 -0
- package/lib/types/ink/parse-keypress.d.ts +132 -0
- package/lib/types/ink/parse-keypress.d.ts.map +1 -0
- package/lib/types/ink/parse-keypress.js +707 -0
- package/lib/types/ink/reconciler.d.ts +43 -0
- package/lib/types/ink/reconciler.d.ts.map +1 -0
- package/lib/types/ink/reconciler.js +413 -0
- package/lib/types/ink/render-border.d.ts +36 -0
- package/lib/types/ink/render-border.d.ts.map +1 -0
- package/lib/types/ink/render-border.js +143 -0
- package/lib/types/ink/render-node-to-output.d.ts +93 -0
- package/lib/types/ink/render-node-to-output.d.ts.map +1 -0
- package/lib/types/ink/render-node-to-output.js +1290 -0
- package/lib/types/ink/render-to-screen.d.ts +65 -0
- package/lib/types/ink/render-to-screen.d.ts.map +1 -0
- package/lib/types/ink/render-to-screen.js +189 -0
- package/lib/types/ink/renderer.d.ts +24 -0
- package/lib/types/ink/renderer.d.ts.map +1 -0
- package/lib/types/ink/renderer.js +136 -0
- package/lib/types/ink/root.d.ts +91 -0
- package/lib/types/ink/root.d.ts.map +1 -0
- package/lib/types/ink/root.js +93 -0
- package/lib/types/ink/screen.d.ts +443 -0
- package/lib/types/ink/screen.d.ts.map +1 -0
- package/lib/types/ink/screen.js +1295 -0
- package/lib/types/ink/searchHighlight.d.ts +25 -0
- package/lib/types/ink/searchHighlight.d.ts.map +1 -0
- package/lib/types/ink/searchHighlight.js +82 -0
- package/lib/types/ink/selection.d.ts +323 -0
- package/lib/types/ink/selection.d.ts.map +1 -0
- package/lib/types/ink/selection.js +881 -0
- package/lib/types/ink/squash-text-nodes.d.ts +30 -0
- package/lib/types/ink/squash-text-nodes.d.ts.map +1 -0
- package/lib/types/ink/squash-text-nodes.js +63 -0
- package/lib/types/ink/stringWidth.d.ts +11 -0
- package/lib/types/ink/stringWidth.d.ts.map +1 -0
- package/lib/types/ink/stringWidth.js +209 -0
- package/lib/types/ink/styles.d.ts +324 -0
- package/lib/types/ink/styles.d.ts.map +1 -0
- package/lib/types/ink/styles.js +307 -0
- package/lib/types/ink/supports-hyperlinks.d.ts +20 -0
- package/lib/types/ink/supports-hyperlinks.d.ts.map +1 -0
- package/lib/types/ink/supports-hyperlinks.js +44 -0
- package/lib/types/ink/tabstops.d.ts +9 -0
- package/lib/types/ink/tabstops.d.ts.map +1 -0
- package/lib/types/ink/tabstops.js +46 -0
- package/lib/types/ink/terminal-focus-state.d.ts +35 -0
- package/lib/types/ink/terminal-focus-state.d.ts.map +1 -0
- package/lib/types/ink/terminal-focus-state.js +57 -0
- package/lib/types/ink/terminal-querier.d.ts +161 -0
- package/lib/types/ink/terminal-querier.d.ts.map +1 -0
- package/lib/types/ink/terminal-querier.js +204 -0
- package/lib/types/ink/terminal.d.ts +80 -0
- package/lib/types/ink/terminal.d.ts.map +1 -0
- package/lib/types/ink/terminal.js +268 -0
- package/lib/types/ink/termio/ansi.d.ts +75 -0
- package/lib/types/ink/termio/ansi.d.ts.map +1 -0
- package/lib/types/ink/termio/ansi.js +79 -0
- package/lib/types/ink/termio/csi.d.ts +253 -0
- package/lib/types/ink/termio/csi.d.ts.map +1 -0
- package/lib/types/ink/termio/csi.js +347 -0
- package/lib/types/ink/termio/dec.d.ts +61 -0
- package/lib/types/ink/termio/dec.d.ts.map +1 -0
- package/lib/types/ink/termio/dec.js +76 -0
- package/lib/types/ink/termio/esc.d.ts +15 -0
- package/lib/types/ink/termio/esc.d.ts.map +1 -0
- package/lib/types/ink/termio/esc.js +57 -0
- package/lib/types/ink/termio/osc.d.ts +208 -0
- package/lib/types/ink/termio/osc.d.ts.map +1 -0
- package/lib/types/ink/termio/osc.js +466 -0
- package/lib/types/ink/termio/parser.d.ts +46 -0
- package/lib/types/ink/termio/parser.d.ts.map +1 -0
- package/lib/types/ink/termio/parser.js +366 -0
- package/lib/types/ink/termio/sgr.d.ts +17 -0
- package/lib/types/ink/termio/sgr.d.ts.map +1 -0
- package/lib/types/ink/termio/sgr.js +300 -0
- package/lib/types/ink/termio/tokenize.d.ts +50 -0
- package/lib/types/ink/termio/tokenize.d.ts.map +1 -0
- package/lib/types/ink/termio/tokenize.js +266 -0
- package/lib/types/ink/termio/types.d.ts +211 -0
- package/lib/types/ink/termio/types.d.ts.map +1 -0
- package/lib/types/ink/termio/types.js +68 -0
- package/lib/types/ink/termio.d.ts +25 -0
- package/lib/types/ink/termio.d.ts.map +1 -0
- package/lib/types/ink/termio.js +24 -0
- package/lib/types/ink/truncateToWidth.d.ts +7 -0
- package/lib/types/ink/truncateToWidth.d.ts.map +1 -0
- package/lib/types/ink/truncateToWidth.js +18 -0
- package/lib/types/ink/useTerminalNotification.d.ts +45 -0
- package/lib/types/ink/useTerminalNotification.d.ts.map +1 -0
- package/lib/types/ink/useTerminalNotification.js +70 -0
- package/lib/types/ink/warn.d.ts +7 -0
- package/lib/types/ink/warn.d.ts.map +1 -0
- package/lib/types/ink/warn.js +15 -0
- package/lib/types/ink/widest-line.d.ts +7 -0
- package/lib/types/ink/widest-line.d.ts.map +1 -0
- package/lib/types/ink/widest-line.js +19 -0
- package/lib/types/ink/wrap-text.d.ts +10 -0
- package/lib/types/ink/wrap-text.d.ts.map +1 -0
- package/lib/types/ink/wrap-text.js +61 -0
- package/lib/types/ink/wrapAnsi.d.ts +18 -0
- package/lib/types/ink/wrapAnsi.d.ts.map +1 -0
- package/lib/types/ink/wrapAnsi.js +16 -0
- package/lib/types/invariant.d.ts +20 -0
- package/lib/types/invariant.d.ts.map +1 -0
- package/lib/types/invariant.js +26 -0
- package/lib/types/modelPrefs.d.ts +37 -0
- package/lib/types/modelPrefs.d.ts.map +1 -0
- package/lib/types/modelPrefs.js +66 -0
- package/lib/types/modelRoute.d.ts +79 -0
- package/lib/types/modelRoute.d.ts.map +1 -0
- package/lib/types/modelRoute.js +96 -0
- package/lib/types/native-ts/yoga-layout/enums.d.ts +183 -0
- package/lib/types/native-ts/yoga-layout/enums.d.ts.map +1 -0
- package/lib/types/native-ts/yoga-layout/enums.js +150 -0
- package/lib/types/native-ts/yoga-layout/index.d.ts +788 -0
- package/lib/types/native-ts/yoga-layout/index.d.ts.map +1 -0
- package/lib/types/native-ts/yoga-layout/index.js +2571 -0
- package/lib/types/packaged-skills.d.ts +10 -0
- package/lib/types/packaged-skills.d.ts.map +1 -0
- package/lib/types/packaged-skills.js +63 -0
- package/lib/types/plugin.d.ts +33 -0
- package/lib/types/plugin.d.ts.map +1 -0
- package/lib/types/plugin.js +454 -0
- package/lib/types/presetPrefs.d.ts +29 -0
- package/lib/types/presetPrefs.d.ts.map +1 -0
- package/lib/types/presetPrefs.js +61 -0
- package/lib/types/presets.d.ts +110 -0
- package/lib/types/presets.d.ts.map +1 -0
- package/lib/types/presets.js +114 -0
- package/lib/types/questions.d.ts +97 -0
- package/lib/types/questions.d.ts.map +1 -0
- package/lib/types/questions.js +201 -0
- package/lib/types/screens/Chat.d.ts +23 -0
- package/lib/types/screens/Chat.d.ts.map +1 -0
- package/lib/types/screens/Chat.js +1263 -0
- package/lib/types/screens/StatusLine.d.ts +16 -0
- package/lib/types/screens/StatusLine.d.ts.map +1 -0
- package/lib/types/screens/StatusLine.js +105 -0
- package/lib/types/screens/StatusMetrics.d.ts +87 -0
- package/lib/types/screens/StatusMetrics.d.ts.map +1 -0
- package/lib/types/screens/StatusMetrics.js +252 -0
- package/lib/types/sessionHistory.d.ts +32 -0
- package/lib/types/sessionHistory.d.ts.map +1 -0
- package/lib/types/sessionHistory.js +87 -0
- package/lib/types/theme.d.ts +115 -0
- package/lib/types/theme.d.ts.map +1 -0
- package/lib/types/theme.js +300 -0
- package/lib/types/themePrefs.d.ts +28 -0
- package/lib/types/themePrefs.d.ts.map +1 -0
- package/lib/types/themePrefs.js +59 -0
- package/lib/types/ui.d.ts +28 -0
- package/lib/types/ui.d.ts.map +1 -0
- package/lib/types/ui.js +25 -0
- package/lib/types/update.d.ts +76 -0
- package/lib/types/update.d.ts.map +1 -0
- package/lib/types/update.js +203 -0
- package/lib/types/utils/clipboard.d.ts +43 -0
- package/lib/types/utils/clipboard.d.ts.map +1 -0
- package/lib/types/utils/clipboard.js +82 -0
- package/lib/types/utils/debug.d.ts +8 -0
- package/lib/types/utils/debug.d.ts.map +1 -0
- package/lib/types/utils/debug.js +12 -0
- package/lib/types/utils/earlyInput.d.ts +7 -0
- package/lib/types/utils/earlyInput.d.ts.map +1 -0
- package/lib/types/utils/earlyInput.js +6 -0
- package/lib/types/utils/env.d.ts +10 -0
- package/lib/types/utils/env.d.ts.map +1 -0
- package/lib/types/utils/env.js +9 -0
- package/lib/types/utils/envUtils.d.ts +8 -0
- package/lib/types/utils/envUtils.d.ts.map +1 -0
- package/lib/types/utils/envUtils.js +13 -0
- package/lib/types/utils/execFileNoThrow.d.ts +34 -0
- package/lib/types/utils/execFileNoThrow.d.ts.map +1 -0
- package/lib/types/utils/execFileNoThrow.js +31 -0
- package/lib/types/utils/fullscreen.d.ts +8 -0
- package/lib/types/utils/fullscreen.d.ts.map +1 -0
- package/lib/types/utils/fullscreen.js +10 -0
- package/lib/types/utils/intl.d.ts +7 -0
- package/lib/types/utils/intl.d.ts.map +1 -0
- package/lib/types/utils/intl.js +9 -0
- package/lib/types/utils/loaded-context.d.ts +20 -0
- package/lib/types/utils/loaded-context.d.ts.map +1 -0
- package/lib/types/utils/loaded-context.js +36 -0
- package/lib/types/utils/log.d.ts +7 -0
- package/lib/types/utils/log.d.ts.map +1 -0
- package/lib/types/utils/log.js +9 -0
- package/lib/types/utils/mentions.d.ts +30 -0
- package/lib/types/utils/mentions.d.ts.map +1 -0
- package/lib/types/utils/mentions.js +72 -0
- package/lib/types/utils/narration.d.ts +11 -0
- package/lib/types/utils/narration.d.ts.map +1 -0
- package/lib/types/utils/narration.js +16 -0
- package/lib/types/utils/semver.d.ts +9 -0
- package/lib/types/utils/semver.d.ts.map +1 -0
- package/lib/types/utils/semver.js +24 -0
- package/lib/types/utils/sliceAnsi.d.ts +12 -0
- package/lib/types/utils/sliceAnsi.d.ts.map +1 -0
- package/lib/types/utils/sliceAnsi.js +79 -0
- package/lib/types/working-activity.d.ts +19 -0
- package/lib/types/working-activity.d.ts.map +1 -0
- package/lib/types/working-activity.js +18 -0
- package/package.json +141 -0
- package/skills/audit/SKILL.md +24 -0
- package/skills/bug/SKILL.md +27 -0
- package/skills/pr-comments/SKILL.md +20 -0
- package/skills/practice/SKILL.md +22 -0
- package/skills/release-notes/SKILL.md +25 -0
- package/skills/review/SKILL.md +25 -0
- package/skills/vuln-check/SKILL.md +25 -0
|
@@ -0,0 +1,424 @@
|
|
|
1
|
+
import { createLayoutNode } from './layout/engine.js';
|
|
2
|
+
import { LayoutDisplay, LayoutMeasureMode } from './layout/node.js';
|
|
3
|
+
import measureText from './measure-text.js';
|
|
4
|
+
import { addPendingClear, nodeCache } from './node-cache.js';
|
|
5
|
+
import squashTextNodes from './squash-text-nodes.js';
|
|
6
|
+
import { expandTabs } from './tabstops.js';
|
|
7
|
+
import wrapText from './wrap-text.js';
|
|
8
|
+
/**
|
|
9
|
+
* Create an element node of the given kind, allocating its yoga layout node
|
|
10
|
+
* unless the kind renders without layout (`ink-virtual-text`, `ink-link`,
|
|
11
|
+
* `ink-progress`).
|
|
12
|
+
* @param nodeName - the element kind to create.
|
|
13
|
+
* @returns the new element node.
|
|
14
|
+
*/
|
|
15
|
+
export const createNode = (nodeName) => {
|
|
16
|
+
const needsYogaNode = nodeName !== 'ink-virtual-text' &&
|
|
17
|
+
nodeName !== 'ink-link' &&
|
|
18
|
+
nodeName !== 'ink-progress';
|
|
19
|
+
const node = {
|
|
20
|
+
nodeName,
|
|
21
|
+
style: {},
|
|
22
|
+
attributes: {},
|
|
23
|
+
childNodes: [],
|
|
24
|
+
parentNode: undefined,
|
|
25
|
+
yogaNode: needsYogaNode ? createLayoutNode() : undefined,
|
|
26
|
+
dirty: false,
|
|
27
|
+
};
|
|
28
|
+
if (nodeName === 'ink-text') {
|
|
29
|
+
node.yogaNode?.setMeasureFunc(measureTextNode.bind(null, node));
|
|
30
|
+
}
|
|
31
|
+
else if (nodeName === 'ink-raw-ansi') {
|
|
32
|
+
node.yogaNode?.setMeasureFunc(measureRawAnsiNode.bind(null, node));
|
|
33
|
+
}
|
|
34
|
+
return node;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Append a child element to a parent, moving it from its current parent if
|
|
38
|
+
* any and keeping the yoga tree in sync.
|
|
39
|
+
* @param node - the parent element.
|
|
40
|
+
* @param childNode - the element to append.
|
|
41
|
+
*/
|
|
42
|
+
export const appendChildNode = (node, childNode) => {
|
|
43
|
+
if (childNode.parentNode) {
|
|
44
|
+
removeChildNode(childNode.parentNode, childNode);
|
|
45
|
+
}
|
|
46
|
+
childNode.parentNode = node;
|
|
47
|
+
node.childNodes.push(childNode);
|
|
48
|
+
if (childNode.yogaNode) {
|
|
49
|
+
node.yogaNode?.insertChild(childNode.yogaNode, node.yogaNode.getChildCount());
|
|
50
|
+
}
|
|
51
|
+
markDirty(node);
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Insert a child before an existing sibling, moving it from its current
|
|
55
|
+
* parent if any and keeping the yoga tree in sync. Nodes without a yoga
|
|
56
|
+
* node do not affect yoga indices.
|
|
57
|
+
* @param node - the parent element.
|
|
58
|
+
* @param newChildNode - the node to insert.
|
|
59
|
+
* @param beforeChildNode - the sibling the new node is inserted before;
|
|
60
|
+
* when absent from the parent, the new node is appended.
|
|
61
|
+
*/
|
|
62
|
+
export const insertBeforeNode = (node, newChildNode, beforeChildNode) => {
|
|
63
|
+
if (newChildNode.parentNode) {
|
|
64
|
+
removeChildNode(newChildNode.parentNode, newChildNode);
|
|
65
|
+
}
|
|
66
|
+
newChildNode.parentNode = node;
|
|
67
|
+
const index = node.childNodes.indexOf(beforeChildNode);
|
|
68
|
+
if (index >= 0) {
|
|
69
|
+
// Calculate yoga index BEFORE modifying childNodes.
|
|
70
|
+
// We can't use DOM index directly because some children (like ink-progress,
|
|
71
|
+
// ink-link, ink-virtual-text) don't have yogaNodes, so DOM indices don't
|
|
72
|
+
// match yoga indices.
|
|
73
|
+
let yogaIndex = 0;
|
|
74
|
+
if (newChildNode.yogaNode && node.yogaNode) {
|
|
75
|
+
for (let i = 0; i < index; i++) {
|
|
76
|
+
if (node.childNodes[i]?.yogaNode) {
|
|
77
|
+
yogaIndex++;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
node.childNodes.splice(index, 0, newChildNode);
|
|
82
|
+
if (newChildNode.yogaNode && node.yogaNode) {
|
|
83
|
+
node.yogaNode.insertChild(newChildNode.yogaNode, yogaIndex);
|
|
84
|
+
}
|
|
85
|
+
markDirty(node);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
node.childNodes.push(newChildNode);
|
|
89
|
+
if (newChildNode.yogaNode) {
|
|
90
|
+
node.yogaNode?.insertChild(newChildNode.yogaNode, node.yogaNode.getChildCount());
|
|
91
|
+
}
|
|
92
|
+
markDirty(node);
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Remove a child node from a parent, clearing its yoga node, cached rects,
|
|
96
|
+
* and parent reference.
|
|
97
|
+
* @param node - the parent element.
|
|
98
|
+
* @param removeNode - the child node to remove.
|
|
99
|
+
*/
|
|
100
|
+
export const removeChildNode = (node, removeNode) => {
|
|
101
|
+
if (removeNode.yogaNode) {
|
|
102
|
+
removeNode.parentNode?.yogaNode?.removeChild(removeNode.yogaNode);
|
|
103
|
+
}
|
|
104
|
+
// Collect cached rects from the removed subtree so they can be cleared
|
|
105
|
+
collectRemovedRects(node, removeNode);
|
|
106
|
+
removeNode.parentNode = undefined;
|
|
107
|
+
const index = node.childNodes.indexOf(removeNode);
|
|
108
|
+
if (index >= 0) {
|
|
109
|
+
node.childNodes.splice(index, 1);
|
|
110
|
+
}
|
|
111
|
+
markDirty(node);
|
|
112
|
+
};
|
|
113
|
+
function collectRemovedRects(parent, removed, underAbsolute = false) {
|
|
114
|
+
if (removed.nodeName === '#text')
|
|
115
|
+
return;
|
|
116
|
+
const elem = removed;
|
|
117
|
+
// If this node or any ancestor in the removed subtree was absolute,
|
|
118
|
+
// its painted pixels may overlap non-siblings — flag for global blit
|
|
119
|
+
// disable. Normal-flow removals only affect direct siblings, which
|
|
120
|
+
// hasRemovedChild already handles.
|
|
121
|
+
const isAbsolute = underAbsolute || elem.style.position === 'absolute';
|
|
122
|
+
const cached = nodeCache.get(elem);
|
|
123
|
+
if (cached) {
|
|
124
|
+
addPendingClear(parent, cached, isAbsolute);
|
|
125
|
+
nodeCache.delete(elem);
|
|
126
|
+
}
|
|
127
|
+
for (const child of elem.childNodes) {
|
|
128
|
+
collectRemovedRects(parent, child, isAbsolute);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Set an attribute on an element, skipping `children` and unchanged values
|
|
133
|
+
* so unrelated renders do not mark the node dirty.
|
|
134
|
+
* @param node - the element to update.
|
|
135
|
+
* @param key - the attribute name.
|
|
136
|
+
* @param value - the attribute value.
|
|
137
|
+
*/
|
|
138
|
+
export const setAttribute = (node, key, value) => {
|
|
139
|
+
// Skip 'children' - React handles children via appendChild/removeChild,
|
|
140
|
+
// not attributes. React always passes a new children reference, so
|
|
141
|
+
// tracking it as an attribute would mark everything dirty every render.
|
|
142
|
+
if (key === 'children') {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
// Skip if unchanged
|
|
146
|
+
if (node.attributes[key] === value) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
node.attributes[key] = value;
|
|
150
|
+
markDirty(node);
|
|
151
|
+
};
|
|
152
|
+
/**
|
|
153
|
+
* Replace an element's style, skipping the write when the new style is
|
|
154
|
+
* shallow-equal to the current one to avoid needless dirty marks.
|
|
155
|
+
* @param node - the node to update.
|
|
156
|
+
* @param style - the new style object.
|
|
157
|
+
*/
|
|
158
|
+
export const setStyle = (node, style) => {
|
|
159
|
+
// Compare style properties to avoid marking dirty unnecessarily.
|
|
160
|
+
// React creates new style objects on every render even when unchanged.
|
|
161
|
+
if (stylesEqual(node.style, style)) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
node.style = style;
|
|
165
|
+
markDirty(node);
|
|
166
|
+
};
|
|
167
|
+
/**
|
|
168
|
+
* Replace an element's text styles, skipping the write when the new styles
|
|
169
|
+
* are shallow-equal to the current ones to avoid needless dirty marks.
|
|
170
|
+
* @param node - the element to update.
|
|
171
|
+
* @param textStyles - the new text styles.
|
|
172
|
+
*/
|
|
173
|
+
export const setTextStyles = (node, textStyles) => {
|
|
174
|
+
// Same dirty-check guard as setStyle: React (and buildTextStyles in Text.tsx)
|
|
175
|
+
// allocate a new textStyles object on every render even when values are
|
|
176
|
+
// unchanged, so compare by value to avoid markDirty -> yoga re-measurement
|
|
177
|
+
// on every Text re-render.
|
|
178
|
+
if (shallowEqual(node.textStyles, textStyles)) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
node.textStyles = textStyles;
|
|
182
|
+
markDirty(node);
|
|
183
|
+
};
|
|
184
|
+
function stylesEqual(a, b) {
|
|
185
|
+
return shallowEqual(a, b);
|
|
186
|
+
}
|
|
187
|
+
function shallowEqual(a, b) {
|
|
188
|
+
// Fast path: same object reference (or both undefined)
|
|
189
|
+
if (a === b)
|
|
190
|
+
return true;
|
|
191
|
+
if (a === undefined || b === undefined)
|
|
192
|
+
return false;
|
|
193
|
+
// Get all keys from both objects
|
|
194
|
+
const aKeys = Object.keys(a);
|
|
195
|
+
const bKeys = Object.keys(b);
|
|
196
|
+
// Different number of properties
|
|
197
|
+
if (aKeys.length !== bKeys.length)
|
|
198
|
+
return false;
|
|
199
|
+
// Compare each property
|
|
200
|
+
for (const key of aKeys) {
|
|
201
|
+
if (a[key] !== b[key])
|
|
202
|
+
return false;
|
|
203
|
+
}
|
|
204
|
+
return true;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Create a text node holding the given string.
|
|
208
|
+
* @param text - the text content.
|
|
209
|
+
* @returns the new text node.
|
|
210
|
+
*/
|
|
211
|
+
export const createTextNode = (text) => {
|
|
212
|
+
const node = {
|
|
213
|
+
nodeName: '#text',
|
|
214
|
+
nodeValue: text,
|
|
215
|
+
yogaNode: undefined,
|
|
216
|
+
parentNode: undefined,
|
|
217
|
+
style: {},
|
|
218
|
+
};
|
|
219
|
+
setTextNodeValue(node, text);
|
|
220
|
+
return node;
|
|
221
|
+
};
|
|
222
|
+
const measureWrapCache = new WeakMap();
|
|
223
|
+
const measureTextNode = function (node, width, widthMode) {
|
|
224
|
+
const rawText = node.nodeName === '#text' ? node.nodeValue : squashTextNodes(node);
|
|
225
|
+
// Expand tabs for measurement (worst case: 8 spaces each).
|
|
226
|
+
// Actual tab expansion happens in output.ts based on screen position.
|
|
227
|
+
const text = expandTabs(rawText);
|
|
228
|
+
const dimensions = measureText(text, width);
|
|
229
|
+
// Text fits into container, no need to wrap
|
|
230
|
+
if (dimensions.width <= width) {
|
|
231
|
+
return dimensions;
|
|
232
|
+
}
|
|
233
|
+
// This is happening when <Box> is shrinking child nodes and layout asks
|
|
234
|
+
// if we can fit this text node in a <1px space, so we just say "no"
|
|
235
|
+
if (dimensions.width >= 1 && width > 0 && width < 1) {
|
|
236
|
+
return dimensions;
|
|
237
|
+
}
|
|
238
|
+
// For text with embedded newlines (pre-wrapped content), avoid re-wrapping
|
|
239
|
+
// at measurement width when layout is asking for intrinsic size (Undefined mode).
|
|
240
|
+
// This prevents height inflation during min/max size checks.
|
|
241
|
+
//
|
|
242
|
+
// However, when layout provides an actual constraint (Exactly or AtMost mode),
|
|
243
|
+
// we must respect it and measure at that width. Otherwise, if the actual
|
|
244
|
+
// rendering width is smaller than the natural width, the text will wrap to
|
|
245
|
+
// more lines than layout expects, causing content to be truncated.
|
|
246
|
+
if (text.includes('\n') && widthMode === LayoutMeasureMode.Undefined) {
|
|
247
|
+
const effectiveWidth = Math.max(width, dimensions.width);
|
|
248
|
+
return measureText(text, effectiveWidth);
|
|
249
|
+
}
|
|
250
|
+
const textWrap = node.style.textWrap ?? 'wrap';
|
|
251
|
+
// Incremental path: same node, same width/wrap, text grew by append.
|
|
252
|
+
const cached = measureWrapCache.get(node);
|
|
253
|
+
if (cached !== undefined && cached.width === width && cached.wrap === textWrap) {
|
|
254
|
+
if (cached.text === text) {
|
|
255
|
+
// Same-frame repeat measure (yoga min/max probing) — free.
|
|
256
|
+
return cached.result;
|
|
257
|
+
}
|
|
258
|
+
if (text.startsWith(cached.text)) {
|
|
259
|
+
const tail = text.slice(cached.tailStart);
|
|
260
|
+
const tailWrapped = wrapText(tail, width, textWrap);
|
|
261
|
+
const tailDim = measureText(tailWrapped, width);
|
|
262
|
+
// Commit fully-terminated logical lines into the head so the tail
|
|
263
|
+
// stays bounded at one line of source text.
|
|
264
|
+
const lastNewline = tail.lastIndexOf('\n');
|
|
265
|
+
let { headHeight, tailStart } = cached;
|
|
266
|
+
let tailHeight = tailDim.height;
|
|
267
|
+
if (lastNewline > 0) {
|
|
268
|
+
const committed = wrapText(tail.slice(0, lastNewline + 1), width, textWrap);
|
|
269
|
+
headHeight += measureText(committed, width).height;
|
|
270
|
+
tailStart += lastNewline + 1;
|
|
271
|
+
tailHeight = measureText(wrapText(tail.slice(lastNewline + 1), width, textWrap), width).height;
|
|
272
|
+
}
|
|
273
|
+
const result = {
|
|
274
|
+
width: Math.max(cached.result.width, tailDim.width),
|
|
275
|
+
height: headHeight + tailHeight,
|
|
276
|
+
};
|
|
277
|
+
measureWrapCache.set(node, {
|
|
278
|
+
text,
|
|
279
|
+
width,
|
|
280
|
+
wrap: textWrap,
|
|
281
|
+
headHeight,
|
|
282
|
+
tailStart,
|
|
283
|
+
tailHeight,
|
|
284
|
+
result,
|
|
285
|
+
});
|
|
286
|
+
return result;
|
|
287
|
+
}
|
|
288
|
+
// Text replaced or shrunk (node reuse for a different message): fall
|
|
289
|
+
// through to the full path and overwrite the cache below.
|
|
290
|
+
}
|
|
291
|
+
const wrappedText = wrapText(text, width, textWrap);
|
|
292
|
+
const fullResult = measureText(wrappedText, width);
|
|
293
|
+
// Seed the incremental cache: commit everything before the last newline.
|
|
294
|
+
const lastNewline = text.lastIndexOf('\n');
|
|
295
|
+
const tailStart = lastNewline === -1 ? 0 : lastNewline + 1;
|
|
296
|
+
const headHeight = tailStart === 0
|
|
297
|
+
? 0
|
|
298
|
+
: measureText(wrapText(text.slice(0, tailStart), width, textWrap), width).height;
|
|
299
|
+
measureWrapCache.set(node, {
|
|
300
|
+
text,
|
|
301
|
+
width,
|
|
302
|
+
wrap: textWrap,
|
|
303
|
+
headHeight,
|
|
304
|
+
tailStart,
|
|
305
|
+
tailHeight: fullResult.height - headHeight,
|
|
306
|
+
result: fullResult,
|
|
307
|
+
});
|
|
308
|
+
return fullResult;
|
|
309
|
+
};
|
|
310
|
+
// ink-raw-ansi nodes hold pre-rendered ANSI strings with known dimensions.
|
|
311
|
+
// No stringWidth, no wrapping, no tab expansion — the producer (e.g. ColorDiff)
|
|
312
|
+
// already wrapped to the target width and each line is exactly one terminal row.
|
|
313
|
+
const measureRawAnsiNode = function (node) {
|
|
314
|
+
return {
|
|
315
|
+
width: node.attributes['rawWidth'],
|
|
316
|
+
height: node.attributes['rawHeight'],
|
|
317
|
+
};
|
|
318
|
+
};
|
|
319
|
+
/**
|
|
320
|
+
* Mark a node and all its ancestors as dirty for re-rendering.
|
|
321
|
+
* Also marks yoga dirty for text remeasurement if this is a text node.
|
|
322
|
+
* @param node - the node whose dirty chain to mark; a no-op when undefined.
|
|
323
|
+
*/
|
|
324
|
+
export const markDirty = (node) => {
|
|
325
|
+
let current = node;
|
|
326
|
+
let markedYoga = false;
|
|
327
|
+
while (current) {
|
|
328
|
+
if (current.nodeName !== '#text') {
|
|
329
|
+
;
|
|
330
|
+
(current).dirty = true;
|
|
331
|
+
// Only mark yoga dirty on leaf nodes that have measure functions
|
|
332
|
+
if (!markedYoga &&
|
|
333
|
+
(current.nodeName === 'ink-text' ||
|
|
334
|
+
current.nodeName === 'ink-raw-ansi') &&
|
|
335
|
+
current.yogaNode) {
|
|
336
|
+
current.yogaNode.markDirty();
|
|
337
|
+
markedYoga = true;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
current = current.parentNode;
|
|
341
|
+
}
|
|
342
|
+
};
|
|
343
|
+
/**
|
|
344
|
+
* Walk to the root and call its onRender (the throttled scheduleRender).
|
|
345
|
+
* Use for DOM-level mutations (scrollTop changes) that should trigger an
|
|
346
|
+
* Ink frame without going through React's reconciler. Pair with markDirty()
|
|
347
|
+
* so the renderer knows which subtree to re-evaluate.
|
|
348
|
+
* @param node - the node to walk up from; a no-op when undefined.
|
|
349
|
+
*/
|
|
350
|
+
export const scheduleRenderFrom = (node) => {
|
|
351
|
+
let cur = node;
|
|
352
|
+
while (cur?.parentNode)
|
|
353
|
+
cur = cur.parentNode;
|
|
354
|
+
if (cur && cur.nodeName !== '#text')
|
|
355
|
+
(cur).onRender?.();
|
|
356
|
+
};
|
|
357
|
+
/**
|
|
358
|
+
* Replace a text node's value, skipping the write when unchanged and
|
|
359
|
+
* marking the node dirty otherwise.
|
|
360
|
+
* @param node - the text node to update.
|
|
361
|
+
* @param text - the new text value; non-strings are stringified.
|
|
362
|
+
*/
|
|
363
|
+
export const setTextNodeValue = (node, text) => {
|
|
364
|
+
if (typeof text !== 'string') {
|
|
365
|
+
text = String(text);
|
|
366
|
+
}
|
|
367
|
+
// Skip if unchanged
|
|
368
|
+
if (node.nodeValue === text) {
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
node.nodeValue = text;
|
|
372
|
+
markDirty(node);
|
|
373
|
+
};
|
|
374
|
+
function isDOMElement(node) {
|
|
375
|
+
return node.nodeName !== '#text';
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Clear yogaNode references on a node and its whole subtree before freeing.
|
|
379
|
+
* freeRecursive() frees the node and ALL its children, so every reference
|
|
380
|
+
* must be cleared to prevent dangling pointers.
|
|
381
|
+
* @param node - the node whose subtree to clear.
|
|
382
|
+
*/
|
|
383
|
+
export const clearYogaNodeReferences = (node) => {
|
|
384
|
+
if ('childNodes' in node) {
|
|
385
|
+
for (const child of node.childNodes) {
|
|
386
|
+
clearYogaNodeReferences(child);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
node.yogaNode = undefined;
|
|
390
|
+
};
|
|
391
|
+
/**
|
|
392
|
+
* Find the React component stack responsible for content at screen row `y`.
|
|
393
|
+
*
|
|
394
|
+
* DFS the DOM tree accumulating yoga offsets. Returns the debugOwnerChain of
|
|
395
|
+
* the deepest node whose bounding box contains `y`. Called from ink.tsx when
|
|
396
|
+
* log-update triggers a full reset, to attribute the flicker to its source.
|
|
397
|
+
*
|
|
398
|
+
* Only useful when CLAUDE_CODE_DEBUG_REPAINTS is set (otherwise chains are
|
|
399
|
+
* undefined and this returns []).
|
|
400
|
+
* @param root - the ink-root element to search from.
|
|
401
|
+
* @param y - the screen row to locate.
|
|
402
|
+
* @returns the debugOwnerChain of the deepest node containing `y`, or an
|
|
403
|
+
* empty array when none is recorded.
|
|
404
|
+
*/
|
|
405
|
+
export function findOwnerChainAtRow(root, y) {
|
|
406
|
+
let best = [];
|
|
407
|
+
walk(root, 0);
|
|
408
|
+
return best;
|
|
409
|
+
function walk(node, offsetY) {
|
|
410
|
+
const yoga = node.yogaNode;
|
|
411
|
+
if (!yoga || yoga.getDisplay() === LayoutDisplay.None)
|
|
412
|
+
return;
|
|
413
|
+
const top = offsetY + yoga.getComputedTop();
|
|
414
|
+
const height = yoga.getComputedHeight();
|
|
415
|
+
if (y < top || y >= top + height)
|
|
416
|
+
return;
|
|
417
|
+
if (node.debugOwnerChain)
|
|
418
|
+
best = node.debugOwnerChain;
|
|
419
|
+
for (const child of node.childNodes) {
|
|
420
|
+
if (isDOMElement(child))
|
|
421
|
+
walk(child, top);
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Event } from './event.js';
|
|
2
|
+
/**
|
|
3
|
+
* Mouse click event. Fired on left-button release without drag, only when
|
|
4
|
+
* mouse tracking is enabled (i.e. inside <AlternateScreen>).
|
|
5
|
+
*
|
|
6
|
+
* Bubbles from the deepest hit node up through parentNode. Call
|
|
7
|
+
* stopImmediatePropagation() to prevent ancestors' onClick from firing.
|
|
8
|
+
*/
|
|
9
|
+
export declare class ClickEvent extends Event {
|
|
10
|
+
/** 0-indexed screen column of the click */
|
|
11
|
+
readonly col: number;
|
|
12
|
+
/** 0-indexed screen row of the click */
|
|
13
|
+
readonly row: number;
|
|
14
|
+
/**
|
|
15
|
+
* Click column relative to the current handler's Box (col - box.x).
|
|
16
|
+
* Recomputed by dispatchClick before each handler fires, so an onClick
|
|
17
|
+
* on a container sees coords relative to that container, not to any
|
|
18
|
+
* child the click landed on.
|
|
19
|
+
*/
|
|
20
|
+
localCol: number;
|
|
21
|
+
/** Click row relative to the current handler's Box (row - box.y). */
|
|
22
|
+
localRow: number;
|
|
23
|
+
/**
|
|
24
|
+
* True if the clicked cell has no visible content (unwritten in the
|
|
25
|
+
* screen buffer — both packed words are 0). Handlers can check this to
|
|
26
|
+
* ignore clicks on blank space to the right of text, so accidental
|
|
27
|
+
* clicks on empty terminal space don't toggle state.
|
|
28
|
+
*/
|
|
29
|
+
readonly cellIsBlank: boolean;
|
|
30
|
+
constructor(col: number, row: number, cellIsBlank: boolean);
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=click-event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"click-event.d.ts","sourceRoot":"","sources":["../../../../src/ink/events/click-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC;;;;;;GAMG;AACH,qBAAa,UAAW,SAAQ,KAAK;IACnC,2CAA2C;IAC3C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,wCAAwC;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB;;;;;OAKG;IACH,QAAQ,SAAI;IACZ,qEAAqE;IACrE,QAAQ,SAAI;IACZ;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;gBAEjB,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO;CAM3D"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Event } from './event.js';
|
|
2
|
+
/**
|
|
3
|
+
* Mouse click event. Fired on left-button release without drag, only when
|
|
4
|
+
* mouse tracking is enabled (i.e. inside <AlternateScreen>).
|
|
5
|
+
*
|
|
6
|
+
* Bubbles from the deepest hit node up through parentNode. Call
|
|
7
|
+
* stopImmediatePropagation() to prevent ancestors' onClick from firing.
|
|
8
|
+
*/
|
|
9
|
+
export class ClickEvent extends Event {
|
|
10
|
+
/** 0-indexed screen column of the click */
|
|
11
|
+
col;
|
|
12
|
+
/** 0-indexed screen row of the click */
|
|
13
|
+
row;
|
|
14
|
+
/**
|
|
15
|
+
* Click column relative to the current handler's Box (col - box.x).
|
|
16
|
+
* Recomputed by dispatchClick before each handler fires, so an onClick
|
|
17
|
+
* on a container sees coords relative to that container, not to any
|
|
18
|
+
* child the click landed on.
|
|
19
|
+
*/
|
|
20
|
+
localCol = 0;
|
|
21
|
+
/** Click row relative to the current handler's Box (row - box.y). */
|
|
22
|
+
localRow = 0;
|
|
23
|
+
/**
|
|
24
|
+
* True if the clicked cell has no visible content (unwritten in the
|
|
25
|
+
* screen buffer — both packed words are 0). Handlers can check this to
|
|
26
|
+
* ignore clicks on blank space to the right of text, so accidental
|
|
27
|
+
* clicks on empty terminal space don't toggle state.
|
|
28
|
+
*/
|
|
29
|
+
cellIsBlank;
|
|
30
|
+
constructor(col, row, cellIsBlank) {
|
|
31
|
+
super();
|
|
32
|
+
this.col = col;
|
|
33
|
+
this.row = row;
|
|
34
|
+
this.cellIsBlank = cellIsBlank;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { EventTarget, TerminalEvent } from './terminal-event.js';
|
|
2
|
+
type DiscreteUpdates = <A, B>(fn: (a: A, b: B) => boolean, a: A, b: B, c: undefined, d: undefined) => boolean;
|
|
3
|
+
/**
|
|
4
|
+
* Owns event dispatch state and the capture/bubble dispatch loop.
|
|
5
|
+
*
|
|
6
|
+
* The reconciler host config reads currentEvent and currentUpdatePriority
|
|
7
|
+
* to implement resolveUpdatePriority, resolveEventType, and
|
|
8
|
+
* resolveEventTimeStamp — mirroring how react-dom's host config reads
|
|
9
|
+
* ReactDOMSharedInternals and window.event.
|
|
10
|
+
*
|
|
11
|
+
* discreteUpdates is injected after construction (by InkReconciler)
|
|
12
|
+
* to break the import cycle.
|
|
13
|
+
*/
|
|
14
|
+
export declare class Dispatcher {
|
|
15
|
+
/**
|
|
16
|
+
* The terminal event currently being dispatched, or null between dispatches.
|
|
17
|
+
*/
|
|
18
|
+
currentEvent: TerminalEvent | null;
|
|
19
|
+
/**
|
|
20
|
+
* The update priority currently applied to updates triggered by dispatch,
|
|
21
|
+
* or the default priority when none is set.
|
|
22
|
+
*/
|
|
23
|
+
currentUpdatePriority: number;
|
|
24
|
+
/**
|
|
25
|
+
* The reconciler's `discreteUpdates` helper, injected after construction to
|
|
26
|
+
* break the import cycle, or null before injection.
|
|
27
|
+
*/
|
|
28
|
+
discreteUpdates: DiscreteUpdates | null;
|
|
29
|
+
/**
|
|
30
|
+
* Infer event priority from the currently-dispatching event.
|
|
31
|
+
* Called by the reconciler host config's resolveUpdatePriority
|
|
32
|
+
* when no explicit priority has been set.
|
|
33
|
+
* @returns the current update priority, the dispatching event's mapped
|
|
34
|
+
* priority, or the default priority.
|
|
35
|
+
*/
|
|
36
|
+
resolveEventPriority(): number;
|
|
37
|
+
/**
|
|
38
|
+
* Dispatch an event through capture and bubble phases.
|
|
39
|
+
* Returns true if preventDefault() was NOT called.
|
|
40
|
+
* @param target - the node the event is dispatched to.
|
|
41
|
+
* @param event - the event to dispatch.
|
|
42
|
+
* @returns true when `preventDefault()` was not called on the event.
|
|
43
|
+
*/
|
|
44
|
+
dispatch(target: EventTarget, event: TerminalEvent): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Dispatch with discrete (sync) priority.
|
|
47
|
+
* For user-initiated events: keyboard, click, focus, paste.
|
|
48
|
+
* @param target - the node the event is dispatched to.
|
|
49
|
+
* @param event - the event to dispatch.
|
|
50
|
+
* @returns true when `preventDefault()` was not called on the event.
|
|
51
|
+
*/
|
|
52
|
+
dispatchDiscrete(target: EventTarget, event: TerminalEvent): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Dispatch with continuous priority.
|
|
55
|
+
* For high-frequency events: resize, scroll, mouse move.
|
|
56
|
+
* @param target - the node the event is dispatched to.
|
|
57
|
+
* @param event - the event to dispatch.
|
|
58
|
+
* @returns true when `preventDefault()` was not called on the event.
|
|
59
|
+
*/
|
|
60
|
+
dispatchContinuous(target: EventTarget, event: TerminalEvent): boolean;
|
|
61
|
+
}
|
|
62
|
+
export {};
|
|
63
|
+
//# sourceMappingURL=dispatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../../../src/ink/events/dispatcher.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAqIrE,KAAK,eAAe,GAAG,CAAC,CAAC,EAAE,CAAC,EAC1B,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,EAC3B,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,SAAS,EACZ,CAAC,EAAE,SAAS,KACT,OAAO,CAAA;AAEZ;;;;;;;;;;GAUG;AACH,qBAAa,UAAU;IACrB;;OAEG;IACH,YAAY,EAAE,aAAa,GAAG,IAAI,CAAO;IAEzC;;;OAGG;IACH,qBAAqB,EAAE,MAAM,CAAiC;IAE9D;;;OAGG;IACH,eAAe,EAAE,eAAe,GAAG,IAAI,CAAO;IAE9C;;;;;;OAMG;IACH,oBAAoB,IAAI,MAAM;IAU9B;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO;IAkB5D;;;;;;OAMG;IACH,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO;IAapE;;;;;;OAMG;IACH,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO;CASvE"}
|