feat: 第一个可以用的 ink 组件抽象 (#158)

This commit is contained in:
claude-code-best
2026-04-06 23:56:45 +08:00
committed by GitHub
parent 3ea64eeb0f
commit c445f43f8d
645 changed files with 7255 additions and 1214 deletions

View File

@@ -1,6 +1,6 @@
import figures from 'figures'
import React from 'react'
import { Box, Text } from '../../ink.js'
import { Box, Text } from '@anthropic/ink'
import type { PastedContent } from '../../utils/config.js'
import type { ImageDimensions } from '../../utils/imageResizer.js'
import type { OptionWithDescription } from './select.js'

View File

@@ -1,6 +1,6 @@
import React, { type ReactNode, useEffect, useRef, useState } from 'react'
// eslint-disable-next-line custom-rules/prefer-use-keybindings -- UP arrow exit not in Attachments bindings
import { Box, Text, useInput } from '../../ink.js'
import { Box, Text, useInput } from '@anthropic/ink'
import {
useKeybinding,
useKeybindings,
@@ -10,7 +10,7 @@ import { getImageFromClipboard } from '../../utils/imagePaste.js'
import type { ImageDimensions } from '../../utils/imageResizer.js'
import { ClickableImageRef } from '../ClickableImageRef.js'
import { ConfigurableShortcutHint } from '../ConfigurableShortcutHint.js'
import { Byline } from '../design-system/Byline.js'
import { Byline } from '@anthropic/ink'
import TextInput from '../TextInput.js'
import type { OptionWithDescription } from './select.js'
import { SelectOption } from './select-option.js'

View File

@@ -1,5 +1,5 @@
import React, { type ReactNode } from 'react'
import { ListItem } from '../design-system/ListItem.js'
import { ListItem } from '@anthropic/ink'
export type SelectOptionProps = {
/**

View File

@@ -1,8 +1,6 @@
import figures from 'figures'
import React, { type ReactNode, useEffect, useRef, useState } from 'react'
import { useDeclaredCursor } from '../../ink/hooks/use-declared-cursor.js'
import { stringWidth } from '../../ink/stringWidth.js'
import { Ansi, Box, Text } from '../../ink.js'
import { Ansi, Box, Text, stringWidth, useDeclaredCursor } from '@anthropic/ink'
import { count } from '../../utils/array.js'
import type { PastedContent } from '../../utils/config.js'
import type { ImageDimensions } from '../../utils/imageResizer.js'

View File

@@ -1,9 +1,7 @@
import { useCallback, useState } from 'react'
import { isDeepStrictEqual } from 'util'
import { useRegisterOverlay } from '../../context/overlayContext.js'
import type { InputEvent } from '../../ink/events/input-event.js'
// eslint-disable-next-line custom-rules/prefer-use-keybindings -- raw space/arrow multiselect input
import { useInput } from '../../ink.js'
import { type InputEvent, useInput } from '@anthropic/ink'
import {
normalizeFullWidthDigits,
normalizeFullWidthSpace,

View File

@@ -1,7 +1,6 @@
import { useMemo } from 'react'
import { useRegisterOverlay } from '../../context/overlayContext.js'
import type { InputEvent } from '../../ink/events/input-event.js'
import { useInput } from '../../ink.js'
import { type InputEvent, useInput } from '@anthropic/ink'
import { useKeybindings } from '../../keybindings/useKeybinding.js'
import {
normalizeFullWidthDigits,