@assistant-ui/react-ink 0.0.6 → 0.0.8
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 +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/primitives/composer/ComposerSend.js +1 -1
- package/dist/primitives/composer/ComposerSend.js.map +1 -1
- package/dist/primitives/diff/DiffContent.d.ts +22 -0
- package/dist/primitives/diff/DiffContent.d.ts.map +1 -0
- package/dist/primitives/diff/DiffContent.js +40 -0
- package/dist/primitives/diff/DiffContent.js.map +1 -0
- package/dist/primitives/diff/DiffContext.d.ts +8 -0
- package/dist/primitives/diff/DiffContext.d.ts.map +1 -0
- package/dist/primitives/diff/DiffContext.js +11 -0
- package/dist/primitives/diff/DiffContext.js.map +1 -0
- package/dist/primitives/diff/DiffHeader.d.ts +10 -0
- package/dist/primitives/diff/DiffHeader.d.ts.map +1 -0
- package/dist/primitives/diff/DiffHeader.js +18 -0
- package/dist/primitives/diff/DiffHeader.js.map +1 -0
- package/dist/primitives/diff/DiffLine.d.ts +13 -0
- package/dist/primitives/diff/DiffLine.d.ts.map +1 -0
- package/dist/primitives/diff/DiffLine.js +20 -0
- package/dist/primitives/diff/DiffLine.js.map +1 -0
- package/dist/primitives/diff/DiffRoot.d.ts +12 -0
- package/dist/primitives/diff/DiffRoot.d.ts.map +1 -0
- package/dist/primitives/diff/DiffRoot.js +8 -0
- package/dist/primitives/diff/DiffRoot.js.map +1 -0
- package/dist/primitives/diff/DiffStats.d.ts +10 -0
- package/dist/primitives/diff/DiffStats.d.ts.map +1 -0
- package/dist/primitives/diff/DiffStats.js +12 -0
- package/dist/primitives/diff/DiffStats.js.map +1 -0
- package/dist/primitives/diff/DiffView.d.ts +13 -0
- package/dist/primitives/diff/DiffView.d.ts.map +1 -0
- package/dist/primitives/diff/DiffView.js +76 -0
- package/dist/primitives/diff/DiffView.js.map +1 -0
- package/dist/primitives/diff/diff-utils.d.ts +9 -0
- package/dist/primitives/diff/diff-utils.d.ts.map +1 -0
- package/dist/primitives/diff/diff-utils.js +125 -0
- package/dist/primitives/diff/diff-utils.js.map +1 -0
- package/dist/primitives/diff/index.d.ts +7 -0
- package/dist/primitives/diff/index.d.ts.map +1 -0
- package/dist/primitives/diff/index.js +6 -0
- package/dist/primitives/diff/index.js.map +1 -0
- package/dist/primitives/diff/types.d.ts +24 -0
- package/dist/primitives/diff/types.d.ts.map +1 -0
- package/dist/primitives/diff/types.js +2 -0
- package/dist/primitives/diff/types.js.map +1 -0
- package/dist/primitives/diff.d.ts +2 -0
- package/dist/primitives/diff.d.ts.map +1 -0
- package/dist/primitives/diff.js +2 -0
- package/dist/primitives/diff.js.map +1 -0
- package/package.json +10 -8
- package/src/index.ts +9 -0
- package/src/primitives/composer/ComposerSend.tsx +1 -1
- package/src/primitives/diff/DiffContent.tsx +77 -0
- package/src/primitives/diff/DiffContext.tsx +18 -0
- package/src/primitives/diff/DiffHeader.tsx +38 -0
- package/src/primitives/diff/DiffLine.tsx +42 -0
- package/src/primitives/diff/DiffRoot.tsx +25 -0
- package/src/primitives/diff/DiffStats.tsx +22 -0
- package/src/primitives/diff/DiffView.test.tsx +340 -0
- package/src/primitives/diff/DiffView.tsx +204 -0
- package/src/primitives/diff/diff-utils.ts +149 -0
- package/src/primitives/diff/index.ts +25 -0
- package/src/primitives/diff/types.ts +28 -0
- package/src/primitives/diff.ts +1 -0
package/README.md
CHANGED
|
@@ -63,6 +63,7 @@ render(<App />);
|
|
|
63
63
|
- Composable, unstyled primitives (Thread, Composer, Message, ActionBar, etc.)
|
|
64
64
|
- Streaming responses with real-time updates
|
|
65
65
|
- Tool call support with built-in ToolFallback component
|
|
66
|
+
- Diff rendering with DiffPrimitive components and DiffView for unified diffs and file comparisons in the terminal
|
|
66
67
|
- Message branching and editing
|
|
67
68
|
- Multi-thread support with thread list management
|
|
68
69
|
- Markdown rendering via `@assistant-ui/react-ink-markdown`
|
package/dist/index.d.ts
CHANGED
|
@@ -20,8 +20,10 @@ export * as ChainOfThoughtPrimitive from "./primitives/chainOfThought.js";
|
|
|
20
20
|
export * as SuggestionPrimitive from "./primitives/suggestion.js";
|
|
21
21
|
export * as ToolCallPrimitive from "./primitives/toolCall.js";
|
|
22
22
|
export * as ErrorPrimitive from "./primitives/error/index.js";
|
|
23
|
+
export * as DiffPrimitive from "./primitives/diff.js";
|
|
24
|
+
export { DiffView, type DiffViewProps } from "./primitives/diff/DiffView.js";
|
|
23
25
|
export { ThreadListItemByIndexProvider, ChainOfThoughtByIndicesProvider, MessageByIndexProvider, PartByIndexProvider, TextMessagePartProvider, ChainOfThoughtPartByIndexProvider, SuggestionByIndexProvider, } from "@assistant-ui/core/react";
|
|
24
|
-
export { makeAssistantTool, type AssistantTool, makeAssistantToolUI, type AssistantToolUI, makeAssistantDataUI, type AssistantDataUI, useAssistantTool, type AssistantToolProps, useAssistantToolUI, type AssistantToolUIProps, useAssistantDataUI, type AssistantDataUIProps, useAssistantInstructions, useInlineRender, type Toolkit, type ToolDefinition, Tools, DataRenderers, } from "@assistant-ui/core/react";
|
|
26
|
+
export { makeAssistantTool, type AssistantTool, makeAssistantToolUI, type AssistantToolUI, makeAssistantDataUI, type AssistantDataUI, useAssistantTool, type AssistantToolProps, useAssistantToolUI, type AssistantToolUIProps, useAssistantDataUI, type AssistantDataUIProps, useAssistantInstructions, useInlineRender, type Toolkit, type ToolDefinition, Tools, DataRenderers, Interactables, useInteractable, type UseInteractableConfig, type UseInteractableMetadata, makeInteractable, type InteractableConfig, type AssistantInteractable, } from "@assistant-ui/core/react";
|
|
25
27
|
export type { ModelContext, ModelContextProvider, LanguageModelConfig, LanguageModelV1CallSettings, } from "@assistant-ui/core";
|
|
26
28
|
export { mergeModelContexts } from "@assistant-ui/core";
|
|
27
29
|
export type { Tool } from "assistant-stream";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAEV,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,SAAS,EAET,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,EAE1B,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EAErB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EAEnB,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAEjB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EAEjB,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAG/D,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,eAAe,EACf,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,MAAM,EACN,WAAW,EACX,WAAW,EACX,WAAW,EACX,KAAK,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,wBAAwB,EAAE,sCAAmC;AAGtE,OAAO,EACL,eAAe,EACf,KAAK,mBAAmB,GACzB,sCAAmC;AACpC,OAAO,EAAE,0BAA0B,EAAE,iDAA8C;AAGnF,OAAO,KAAK,eAAe,+BAA4B;AACvD,OAAO,KAAK,iBAAiB,iCAA8B;AAC3D,OAAO,KAAK,gBAAgB,gCAA6B;AACzD,OAAO,KAAK,mBAAmB,mCAAgC;AAC/D,OAAO,KAAK,kBAAkB,kCAA+B;AAC7D,OAAO,KAAK,qBAAqB,qCAAkC;AACnE,OAAO,KAAK,mBAAmB,mCAAgC;AAC/D,OAAO,KAAK,uBAAuB,uCAAoC;AACvE,OAAO,KAAK,uBAAuB,uCAAoC;AACvE,OAAO,KAAK,mBAAmB,mCAAgC;AAC/D,OAAO,KAAK,iBAAiB,iCAA8B;AAC3D,OAAO,KAAK,cAAc,oCAA2B;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -22,10 +22,12 @@ export * as ChainOfThoughtPrimitive from "./primitives/chainOfThought.js";
|
|
|
22
22
|
export * as SuggestionPrimitive from "./primitives/suggestion.js";
|
|
23
23
|
export * as ToolCallPrimitive from "./primitives/toolCall.js";
|
|
24
24
|
export * as ErrorPrimitive from "./primitives/error/index.js";
|
|
25
|
+
export * as DiffPrimitive from "./primitives/diff.js";
|
|
26
|
+
export { DiffView } from "./primitives/diff/DiffView.js";
|
|
25
27
|
// Re-export shared providers from core/react
|
|
26
28
|
export { ThreadListItemByIndexProvider, ChainOfThoughtByIndicesProvider, MessageByIndexProvider, PartByIndexProvider, TextMessagePartProvider, ChainOfThoughtPartByIndexProvider, SuggestionByIndexProvider, } from "@assistant-ui/core/react";
|
|
27
29
|
// Model context, tools & clients
|
|
28
|
-
export { makeAssistantTool, makeAssistantToolUI, makeAssistantDataUI, useAssistantTool, useAssistantToolUI, useAssistantDataUI, useAssistantInstructions, useInlineRender, Tools, DataRenderers, } from "@assistant-ui/core/react";
|
|
30
|
+
export { makeAssistantTool, makeAssistantToolUI, makeAssistantDataUI, useAssistantTool, useAssistantToolUI, useAssistantDataUI, useAssistantInstructions, useInlineRender, Tools, DataRenderers, Interactables, useInteractable, makeInteractable, } from "@assistant-ui/core/react";
|
|
29
31
|
export { mergeModelContexts } from "@assistant-ui/core";
|
|
30
32
|
export { tool } from "@assistant-ui/core";
|
|
31
33
|
export { Suggestions } from "@assistant-ui/core/store";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AA0DlD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,qCAAqC;AACrC,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAY5B,6BAA6B;AAC7B,OAAO,EACL,MAAM,EACN,WAAW,EACX,WAAW,EACX,WAAW,EACX,KAAK,GAQN,MAAM,qBAAqB,CAAC;AAE7B,oBAAoB;AACpB,OAAO,EAAE,wBAAwB,EAAE,sCAAmC;AAEtE,UAAU;AACV,OAAO,EACL,eAAe,GAEhB,sCAAmC;AACpC,OAAO,EAAE,0BAA0B,EAAE,iDAA8C;AAEnF,aAAa;AACb,OAAO,KAAK,eAAe,+BAA4B;AACvD,OAAO,KAAK,iBAAiB,iCAA8B;AAC3D,OAAO,KAAK,gBAAgB,gCAA6B;AACzD,OAAO,KAAK,mBAAmB,mCAAgC;AAC/D,OAAO,KAAK,kBAAkB,kCAA+B;AAC7D,OAAO,KAAK,qBAAqB,qCAAkC;AACnE,OAAO,KAAK,mBAAmB,mCAAgC;AAC/D,OAAO,KAAK,uBAAuB,uCAAoC;AACvE,OAAO,KAAK,uBAAuB,uCAAoC;AACvE,OAAO,KAAK,mBAAmB,mCAAgC;AAC/D,OAAO,KAAK,iBAAiB,iCAA8B;AAC3D,OAAO,KAAK,cAAc,oCAA2B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AA0DlD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,qCAAqC;AACrC,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAY5B,6BAA6B;AAC7B,OAAO,EACL,MAAM,EACN,WAAW,EACX,WAAW,EACX,WAAW,EACX,KAAK,GAQN,MAAM,qBAAqB,CAAC;AAE7B,oBAAoB;AACpB,OAAO,EAAE,wBAAwB,EAAE,sCAAmC;AAEtE,UAAU;AACV,OAAO,EACL,eAAe,GAEhB,sCAAmC;AACpC,OAAO,EAAE,0BAA0B,EAAE,iDAA8C;AAEnF,aAAa;AACb,OAAO,KAAK,eAAe,+BAA4B;AACvD,OAAO,KAAK,iBAAiB,iCAA8B;AAC3D,OAAO,KAAK,gBAAgB,gCAA6B;AACzD,OAAO,KAAK,mBAAmB,mCAAgC;AAC/D,OAAO,KAAK,kBAAkB,kCAA+B;AAC7D,OAAO,KAAK,qBAAqB,qCAAkC;AACnE,OAAO,KAAK,mBAAmB,mCAAgC;AAC/D,OAAO,KAAK,uBAAuB,uCAAoC;AACvE,OAAO,KAAK,uBAAuB,uCAAoC;AACvE,OAAO,KAAK,mBAAmB,mCAAgC;AAC/D,OAAO,KAAK,iBAAiB,iCAA8B;AAC3D,OAAO,KAAK,cAAc,oCAA2B;AACrD,OAAO,KAAK,aAAa,6BAA0B;AACnD,OAAO,EAAE,QAAQ,EAAsB,sCAAmC;AAE1E,6CAA6C;AAC7C,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,EAC/B,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,iCAAiC,EACjC,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAElC,iCAAiC;AACjC,OAAO,EACL,iBAAiB,EAEjB,mBAAmB,EAEnB,mBAAmB,EAEnB,gBAAgB,EAEhB,kBAAkB,EAElB,kBAAkB,EAElB,wBAAwB,EACxB,eAAe,EAGf,KAAK,EACL,aAAa,EACb,aAAa,EACb,eAAe,EAGf,gBAAgB,GAGjB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAyB,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAO1D,iBAAiB;AACjB,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -3,6 +3,6 @@ import { useComposerSend } from "@assistant-ui/core/react";
|
|
|
3
3
|
import { Pressable } from "../internal/Pressable.js";
|
|
4
4
|
export const ComposerSend = ({ children, disabled, ...pressableProps }) => {
|
|
5
5
|
const { send, disabled: hookDisabled } = useComposerSend();
|
|
6
|
-
return (_jsx(Pressable, { onPress: send, disabled: disabled ?? hookDisabled, ...pressableProps, children: children }));
|
|
6
|
+
return (_jsx(Pressable, { onPress: () => send(), disabled: disabled ?? hookDisabled, ...pressableProps, children: children }));
|
|
7
7
|
};
|
|
8
8
|
//# sourceMappingURL=ComposerSend.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComposerSend.js","sourceRoot":"","sources":["../../../src/primitives/composer/ComposerSend.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAuB,iCAA8B;AAMvE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,QAAQ,EACR,QAAQ,EACR,GAAG,cAAc,EACC,EAAE,EAAE;IACtB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAC;IAE3D,OAAO,CACL,KAAC,SAAS,IACR,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"ComposerSend.js","sourceRoot":"","sources":["../../../src/primitives/composer/ComposerSend.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAuB,iCAA8B;AAMvE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,QAAQ,EACR,QAAQ,EACR,GAAG,cAAc,EACC,EAAE,EAAE;IACtB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAC;IAE3D,OAAO,CACL,KAAC,SAAS,IACR,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EACrB,QAAQ,EAAE,QAAQ,IAAI,YAAY,KAC9B,cAAc,YAEjB,QAAQ,GACC,CACb,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type ComponentProps, type ReactNode } from "react";
|
|
2
|
+
import { Box } from "ink";
|
|
3
|
+
import type { ParsedLine, FoldedRegion } from "./types.js";
|
|
4
|
+
export type DiffContentProps = ComponentProps<typeof Box> & {
|
|
5
|
+
fileIndex?: number | undefined;
|
|
6
|
+
showLineNumbers?: boolean | undefined;
|
|
7
|
+
contextLines?: number | undefined;
|
|
8
|
+
maxLines?: number | undefined;
|
|
9
|
+
renderLine?: ((props: {
|
|
10
|
+
line: ParsedLine;
|
|
11
|
+
index: number;
|
|
12
|
+
}) => ReactNode) | undefined;
|
|
13
|
+
renderFold?: ((props: {
|
|
14
|
+
region: FoldedRegion;
|
|
15
|
+
index: number;
|
|
16
|
+
}) => ReactNode) | undefined;
|
|
17
|
+
};
|
|
18
|
+
export declare const DiffContent: {
|
|
19
|
+
({ fileIndex, showLineNumbers, contextLines, maxLines, renderLine, renderFold, ...boxProps }: DiffContentProps): import("react/jsx-runtime").JSX.Element | null;
|
|
20
|
+
displayName: string;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=DiffContent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiffContent.d.ts","sourceRoot":"","sources":["../../../src/primitives/diff/DiffContent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AACtE,OAAO,EAAE,GAAG,EAAQ,MAAM,KAAK,CAAC;AAKhC,OAAO,KAAK,EAAE,UAAU,EAAe,YAAY,EAAE,mBAAgB;AAErE,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG;IAC1D,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,CAAC,EACP,CAAC,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,SAAS,CAAC,GAC3D,SAAS,CAAC;IACd,UAAU,CAAC,EACP,CAAC,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,SAAS,CAAC,GAC/D,SAAS,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,WAAW;kGAQrB,gBAAgB;;CA6ClB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Fragment } from "react";
|
|
3
|
+
import { Box, Text } from "ink";
|
|
4
|
+
import { useMemo } from "react";
|
|
5
|
+
import { useDiffContext } from "./DiffContext.js";
|
|
6
|
+
import { DiffLine } from "./DiffLine.js";
|
|
7
|
+
import { foldContext } from "./diff-utils.js";
|
|
8
|
+
export const DiffContent = ({ fileIndex = 0, showLineNumbers = true, contextLines, maxLines, renderLine, renderFold, ...boxProps }) => {
|
|
9
|
+
const { files } = useDiffContext();
|
|
10
|
+
const file = files[fileIndex];
|
|
11
|
+
const displayLines = useMemo(() => {
|
|
12
|
+
if (!file)
|
|
13
|
+
return [];
|
|
14
|
+
if (contextLines !== undefined) {
|
|
15
|
+
return foldContext(file.lines, contextLines);
|
|
16
|
+
}
|
|
17
|
+
return file.lines;
|
|
18
|
+
}, [file, contextLines]);
|
|
19
|
+
if (!file)
|
|
20
|
+
return null;
|
|
21
|
+
const truncated = maxLines !== undefined && displayLines.length > maxLines;
|
|
22
|
+
const visibleLines = truncated
|
|
23
|
+
? displayLines.slice(0, maxLines)
|
|
24
|
+
: displayLines;
|
|
25
|
+
const remainingCount = truncated ? displayLines.length - maxLines : 0;
|
|
26
|
+
return (_jsxs(Box, { flexDirection: "column", ...boxProps, children: [visibleLines.map((line, i) => {
|
|
27
|
+
if (line.type === "fold") {
|
|
28
|
+
if (renderFold) {
|
|
29
|
+
return (_jsx(Fragment, { children: renderFold({ region: line, index: i }) }, i));
|
|
30
|
+
}
|
|
31
|
+
return (_jsx(Text, { children: ` --- ${line.hiddenCount} lines hidden ---` }, i));
|
|
32
|
+
}
|
|
33
|
+
if (renderLine) {
|
|
34
|
+
return _jsx(Fragment, { children: renderLine({ line, index: i }) }, i);
|
|
35
|
+
}
|
|
36
|
+
return (_jsx(DiffLine, { line: line, showLineNumbers: showLineNumbers }, i));
|
|
37
|
+
}), truncated && _jsx(Text, { children: `... (${remainingCount} more lines)` })] }));
|
|
38
|
+
};
|
|
39
|
+
DiffContent.displayName = "DiffPrimitive.Content";
|
|
40
|
+
//# sourceMappingURL=DiffContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiffContent.js","sourceRoot":"","sources":["../../../src/primitives/diff/DiffContent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAuC,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,yBAAsB;AAC/C,OAAO,EAAE,QAAQ,EAAE,sBAAmB;AACtC,OAAO,EAAE,WAAW,EAAE,wBAAqB;AAgB3C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,SAAS,GAAG,CAAC,EACb,eAAe,GAAG,IAAI,EACtB,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,UAAU,EACV,GAAG,QAAQ,EACM,EAAE,EAAE;IACrB,MAAM,EAAE,KAAK,EAAE,GAAG,cAAc,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IAE9B,MAAM,YAAY,GAAkB,OAAO,CAAC,GAAG,EAAE;QAC/C,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAEzB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,SAAS,GAAG,QAAQ,KAAK,SAAS,IAAI,YAAY,CAAC,MAAM,GAAG,QAAQ,CAAC;IAC3E,MAAM,YAAY,GAAG,SAAS;QAC5B,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;QACjC,CAAC,CAAC,YAAY,CAAC;IACjB,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,QAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvE,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,KAAK,QAAQ,aACrC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACzB,IAAI,UAAU,EAAE,CAAC;wBACf,OAAO,CACL,KAAC,QAAQ,cACN,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,IAD1B,CAAC,CAEL,CACZ,CAAC;oBACJ,CAAC;oBACD,OAAO,CACL,KAAC,IAAI,cAAU,SAAS,IAAI,CAAC,WAAW,mBAAmB,IAAhD,CAAC,CAAuD,CACpE,CAAC;gBACJ,CAAC;gBACD,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,KAAC,QAAQ,cAAU,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,IAAlC,CAAC,CAA6C,CAAC;gBACvE,CAAC;gBACD,OAAO,CACL,KAAC,QAAQ,IAAS,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,IAA/C,CAAC,CAAkD,CACnE,CAAC;YACJ,CAAC,CAAC,EACD,SAAS,IAAI,KAAC,IAAI,cAAE,QAAQ,cAAc,cAAc,GAAQ,IAC7D,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,WAAW,CAAC,WAAW,GAAG,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ParsedFile } from "./types.js";
|
|
2
|
+
interface DiffContextValue {
|
|
3
|
+
files: ParsedFile[];
|
|
4
|
+
}
|
|
5
|
+
export declare const useDiffContext: () => DiffContextValue;
|
|
6
|
+
export declare const DiffContextProvider: import("react").Provider<DiffContextValue | null>;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=DiffContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiffContext.d.ts","sourceRoot":"","sources":["../../../src/primitives/diff/DiffContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAgB;AAE1C,UAAU,gBAAgB;IACxB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAID,eAAO,MAAM,cAAc,QAAO,gBAMjC,CAAC;AAEF,eAAO,MAAM,mBAAmB,mDAAuB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createContext, useContext } from "react";
|
|
2
|
+
const DiffContext = createContext(null);
|
|
3
|
+
export const useDiffContext = () => {
|
|
4
|
+
const ctx = useContext(DiffContext);
|
|
5
|
+
if (!ctx) {
|
|
6
|
+
throw new Error("useDiffContext must be used within a DiffRoot");
|
|
7
|
+
}
|
|
8
|
+
return ctx;
|
|
9
|
+
};
|
|
10
|
+
export const DiffContextProvider = DiffContext.Provider;
|
|
11
|
+
//# sourceMappingURL=DiffContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiffContext.js","sourceRoot":"","sources":["../../../src/primitives/diff/DiffContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAOlD,MAAM,WAAW,GAAG,aAAa,CAA0B,IAAI,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAqB,EAAE;IACnD,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAC,QAAQ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ComponentProps } from "react";
|
|
2
|
+
import { Box } from "ink";
|
|
3
|
+
export type DiffHeaderProps = ComponentProps<typeof Box> & {
|
|
4
|
+
fileIndex?: number;
|
|
5
|
+
};
|
|
6
|
+
export declare const DiffHeader: {
|
|
7
|
+
({ fileIndex, ...boxProps }: DiffHeaderProps): import("react/jsx-runtime").JSX.Element | null;
|
|
8
|
+
displayName: string;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=DiffHeader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiffHeader.d.ts","sourceRoot":"","sources":["../../../src/primitives/diff/DiffHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAQ,MAAM,KAAK,CAAC;AAIhC,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,UAAU;iCAAoC,eAAe;;CA0BzE,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
import { useDiffContext } from "./DiffContext.js";
|
|
4
|
+
import { DiffStats } from "./DiffStats.js";
|
|
5
|
+
export const DiffHeader = ({ fileIndex = 0, ...boxProps }) => {
|
|
6
|
+
const { files } = useDiffContext();
|
|
7
|
+
const file = files[fileIndex];
|
|
8
|
+
if (!file)
|
|
9
|
+
return null;
|
|
10
|
+
const isDevNull = (n) => !n || n === "/dev/null";
|
|
11
|
+
const renamed = !isDevNull(file.oldName) &&
|
|
12
|
+
!isDevNull(file.newName) &&
|
|
13
|
+
file.oldName !== file.newName;
|
|
14
|
+
const displayName = isDevNull(file.newName) ? file.oldName : file.newName;
|
|
15
|
+
return (_jsxs(Box, { gap: 1, ...boxProps, children: [renamed ? (_jsxs(_Fragment, { children: [_jsx(Text, { children: file.oldName }), _jsx(Text, { children: "->" }), _jsx(Text, { children: file.newName })] })) : (_jsx(Text, { children: displayName })), _jsx(DiffStats, { fileIndex: fileIndex })] }));
|
|
16
|
+
};
|
|
17
|
+
DiffHeader.displayName = "DiffPrimitive.Header";
|
|
18
|
+
//# sourceMappingURL=DiffHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiffHeader.js","sourceRoot":"","sources":["../../../src/primitives/diff/DiffHeader.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,yBAAsB;AAC/C,OAAO,EAAE,SAAS,EAAE,uBAAoB;AAMxC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,GAAG,QAAQ,EAAmB,EAAE,EAAE;IAC5E,MAAM,EAAE,KAAK,EAAE,GAAG,cAAc,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,SAAS,GAAG,CAAC,CAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC;IACrE,MAAM,OAAO,GACX,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;QACxB,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;QACxB,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC;IAChC,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IAE1E,OAAO,CACL,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,KAAM,QAAQ,aACtB,OAAO,CAAC,CAAC,CAAC,CACT,8BACE,KAAC,IAAI,cAAE,IAAI,CAAC,OAAO,GAAQ,EAC3B,KAAC,IAAI,cAAE,IAAI,GAAQ,EACnB,KAAC,IAAI,cAAE,IAAI,CAAC,OAAO,GAAQ,IAC1B,CACJ,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,cAAE,WAAW,GAAQ,CAC3B,EACD,KAAC,SAAS,IAAC,SAAS,EAAE,SAAS,GAAI,IAC/B,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,UAAU,CAAC,WAAW,GAAG,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ComponentProps } from "react";
|
|
2
|
+
import { Box } from "ink";
|
|
3
|
+
import type { ParsedLine } from "./types.js";
|
|
4
|
+
export type DiffLineProps = ComponentProps<typeof Box> & {
|
|
5
|
+
line: ParsedLine;
|
|
6
|
+
showLineNumbers?: boolean;
|
|
7
|
+
lineNumberWidth?: number;
|
|
8
|
+
};
|
|
9
|
+
export declare const DiffLine: {
|
|
10
|
+
({ line, showLineNumbers, lineNumberWidth, ...boxProps }: DiffLineProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
displayName: string;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=DiffLine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiffLine.d.ts","sourceRoot":"","sources":["../../../src/primitives/diff/DiffLine.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAQ,MAAM,KAAK,CAAC;AAChC,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAgB;AAQ1C,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG;IACvD,IAAI,EAAE,UAAU,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,QAAQ;8DAKlB,aAAa;;CAkBf,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
const INDICATOR = {
|
|
4
|
+
add: "+",
|
|
5
|
+
del: "-",
|
|
6
|
+
normal: " ",
|
|
7
|
+
};
|
|
8
|
+
export const DiffLine = ({ line, showLineNumbers = true, lineNumberWidth = 4, ...boxProps }) => {
|
|
9
|
+
const lineNum = line.type === "del"
|
|
10
|
+
? line.oldLineNumber
|
|
11
|
+
: line.type === "add"
|
|
12
|
+
? line.newLineNumber
|
|
13
|
+
: line.oldLineNumber;
|
|
14
|
+
const numStr = lineNum !== undefined ? String(lineNum) : "";
|
|
15
|
+
const padded = numStr.padStart(lineNumberWidth);
|
|
16
|
+
const content = `${INDICATOR[line.type]} ${line.content}`;
|
|
17
|
+
return (_jsxs(Box, { ...boxProps, children: [showLineNumbers && _jsxs(Text, { children: [padded, " "] }), _jsx(Text, { children: content })] }));
|
|
18
|
+
};
|
|
19
|
+
DiffLine.displayName = "DiffPrimitive.Line";
|
|
20
|
+
//# sourceMappingURL=DiffLine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiffLine.js","sourceRoot":"","sources":["../../../src/primitives/diff/DiffLine.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAGhC,MAAM,SAAS,GAAuC;IACpD,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,MAAM,EAAE,GAAG;CACZ,CAAC;AAQF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EACvB,IAAI,EACJ,eAAe,GAAG,IAAI,EACtB,eAAe,GAAG,CAAC,EACnB,GAAG,QAAQ,EACG,EAAE,EAAE;IAClB,MAAM,OAAO,GACX,IAAI,CAAC,IAAI,KAAK,KAAK;QACjB,CAAC,CAAC,IAAI,CAAC,aAAa;QACpB,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK;YACnB,CAAC,CAAC,IAAI,CAAC,aAAa;YACpB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;IAE3B,MAAM,MAAM,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;IAE1D,OAAO,CACL,MAAC,GAAG,OAAK,QAAQ,aACd,eAAe,IAAI,MAAC,IAAI,eAAE,MAAM,SAAS,EAC1C,KAAC,IAAI,cAAE,OAAO,GAAQ,IAClB,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,QAAQ,CAAC,WAAW,GAAG,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ComponentProps, ReactNode } from "react";
|
|
2
|
+
import { Box } from "ink";
|
|
3
|
+
import type { ParsedFile } from "./types.js";
|
|
4
|
+
export type DiffRootProps = ComponentProps<typeof Box> & {
|
|
5
|
+
files?: ParsedFile[] | undefined;
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
};
|
|
8
|
+
export declare const DiffRoot: {
|
|
9
|
+
({ files, children, ...boxProps }: DiffRootProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
displayName: string;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=DiffRoot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiffRoot.d.ts","sourceRoot":"","sources":["../../../src/primitives/diff/DiffRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAgB;AAE1C,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG;IACvD,KAAK,CAAC,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;IACjC,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,QAAQ;uCAIlB,aAAa;;CAQf,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Box } from "ink";
|
|
3
|
+
import { DiffContextProvider } from "./DiffContext.js";
|
|
4
|
+
export const DiffRoot = ({ files = [], children, ...boxProps }) => {
|
|
5
|
+
return (_jsx(DiffContextProvider, { value: { files }, children: _jsx(Box, { flexDirection: "column", ...boxProps, children: children }) }));
|
|
6
|
+
};
|
|
7
|
+
DiffRoot.displayName = "DiffPrimitive.Root";
|
|
8
|
+
//# sourceMappingURL=DiffRoot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiffRoot.js","sourceRoot":"","sources":["../../../src/primitives/diff/DiffRoot.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,yBAAsB;AAQpD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EACvB,KAAK,GAAG,EAAE,EACV,QAAQ,EACR,GAAG,QAAQ,EACG,EAAE,EAAE;IAClB,OAAO,CACL,KAAC,mBAAmB,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,YACnC,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,KAAK,QAAQ,YACrC,QAAQ,GACL,GACc,CACvB,CAAC;AACJ,CAAC,CAAC;AAEF,QAAQ,CAAC,WAAW,GAAG,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ComponentProps } from "react";
|
|
2
|
+
import { Box } from "ink";
|
|
3
|
+
export type DiffStatsProps = ComponentProps<typeof Box> & {
|
|
4
|
+
fileIndex?: number;
|
|
5
|
+
};
|
|
6
|
+
export declare const DiffStats: {
|
|
7
|
+
({ fileIndex, ...boxProps }: DiffStatsProps): import("react/jsx-runtime").JSX.Element | null;
|
|
8
|
+
displayName: string;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=DiffStats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiffStats.d.ts","sourceRoot":"","sources":["../../../src/primitives/diff/DiffStats.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAQ,MAAM,KAAK,CAAC;AAGhC,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,SAAS;iCAAoC,cAAc;;CAWvE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
import { useDiffContext } from "./DiffContext.js";
|
|
4
|
+
export const DiffStats = ({ fileIndex = 0, ...boxProps }) => {
|
|
5
|
+
const { files } = useDiffContext();
|
|
6
|
+
const file = files[fileIndex];
|
|
7
|
+
if (!file)
|
|
8
|
+
return null;
|
|
9
|
+
return (_jsxs(Box, { gap: 1, ...boxProps, children: [_jsxs(Text, { children: ["+", file.additions] }), _jsxs(Text, { children: ["-", file.deletions] })] }));
|
|
10
|
+
};
|
|
11
|
+
DiffStats.displayName = "DiffPrimitive.Stats";
|
|
12
|
+
//# sourceMappingURL=DiffStats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiffStats.js","sourceRoot":"","sources":["../../../src/primitives/diff/DiffStats.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,yBAAsB;AAM/C,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,GAAG,QAAQ,EAAkB,EAAE,EAAE;IAC1E,MAAM,EAAE,KAAK,EAAE,GAAG,cAAc,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,OAAO,CACL,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,KAAM,QAAQ,aACvB,MAAC,IAAI,oBAAG,IAAI,CAAC,SAAS,IAAQ,EAC9B,MAAC,IAAI,oBAAG,IAAI,CAAC,SAAS,IAAQ,IAC1B,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,CAAC,WAAW,GAAG,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ComponentProps } from "react";
|
|
2
|
+
import { Box } from "ink";
|
|
3
|
+
import type { DiffFileInput } from "./types.js";
|
|
4
|
+
export type DiffViewProps = Omit<ComponentProps<typeof Box>, "children"> & {
|
|
5
|
+
patch?: string | undefined;
|
|
6
|
+
oldFile?: DiffFileInput | undefined;
|
|
7
|
+
newFile?: DiffFileInput | undefined;
|
|
8
|
+
showLineNumbers?: boolean | undefined;
|
|
9
|
+
contextLines?: number | undefined;
|
|
10
|
+
maxLines?: number | undefined;
|
|
11
|
+
};
|
|
12
|
+
export declare const DiffView: ({ patch, oldFile, newFile, showLineNumbers, contextLines, maxLines, ...boxProps }: DiffViewProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=DiffView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiffView.d.ts","sourceRoot":"","sources":["../../../src/primitives/diff/DiffView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAW,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,GAAG,EAAQ,MAAM,KAAK,CAAC;AAKhC,OAAO,KAAK,EACV,aAAa,EAId,mBAAgB;AAEjB,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,EAAE,UAAU,CAAC,GAAG;IACzE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACpC,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACpC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B,CAAC;AAgJF,eAAO,MAAM,QAAQ,GAAI,mFAQtB,aAAa,4CA+Bf,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { Box, Text } from "ink";
|
|
4
|
+
import { DiffContent } from "./DiffContent.js";
|
|
5
|
+
import { useDiffContext } from "./DiffContext.js";
|
|
6
|
+
import { DiffRoot } from "./DiffRoot.js";
|
|
7
|
+
import { computeDiff, parsePatch } from "./diff-utils.js";
|
|
8
|
+
const INDICATOR = {
|
|
9
|
+
add: "+",
|
|
10
|
+
del: "-",
|
|
11
|
+
normal: " ",
|
|
12
|
+
};
|
|
13
|
+
const isDevNull = (n) => !n || n === "/dev/null";
|
|
14
|
+
const StyledLine = ({ line, showLineNumbers, }) => {
|
|
15
|
+
const lineNum = line.type === "del"
|
|
16
|
+
? line.oldLineNumber
|
|
17
|
+
: line.type === "add"
|
|
18
|
+
? line.newLineNumber
|
|
19
|
+
: line.oldLineNumber;
|
|
20
|
+
const numStr = lineNum !== undefined ? String(lineNum) : "";
|
|
21
|
+
const padded = numStr.padStart(4);
|
|
22
|
+
const content = `${INDICATOR[line.type]} ${line.content}`;
|
|
23
|
+
return (_jsxs(Box, { children: [showLineNumbers && _jsxs(Text, { dimColor: true, children: [padded, " "] }), line.type === "add" ? (_jsx(Text, { color: "green", children: content })) : line.type === "del" ? (_jsx(Text, { color: "red", children: content })) : (_jsx(Text, { children: content }))] }));
|
|
24
|
+
};
|
|
25
|
+
const StyledFold = ({ region }) => (_jsx(Text, { dimColor: true, children: ` --- ${region.hiddenCount} lines hidden ---` }));
|
|
26
|
+
const DiffViewInner = ({ showLineNumbers, contextLines, maxLines, }) => {
|
|
27
|
+
const { files } = useDiffContext();
|
|
28
|
+
const shouldShowLineNumbers = showLineNumbers ?? true;
|
|
29
|
+
if (files.length === 0) {
|
|
30
|
+
return _jsx(Text, { dimColor: true, children: "No diff content" });
|
|
31
|
+
}
|
|
32
|
+
return (_jsx(_Fragment, { children: files.map((file, i) => {
|
|
33
|
+
const renamed = !isDevNull(file.oldName) &&
|
|
34
|
+
!isDevNull(file.newName) &&
|
|
35
|
+
file.oldName !== file.newName;
|
|
36
|
+
const displayName = isDevNull(file.newName)
|
|
37
|
+
? file.oldName
|
|
38
|
+
: file.newName;
|
|
39
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { gap: 1, children: [renamed ? (_jsxs(_Fragment, { children: [_jsx(Text, { bold: true, dimColor: true, children: file.oldName }), _jsx(Text, { dimColor: true, children: "->" }), _jsx(Text, { bold: true, children: file.newName })] })) : (_jsx(Text, { bold: true, children: displayName })), _jsxs(Text, { color: "green", children: ["+", file.additions] }), _jsxs(Text, { color: "red", children: ["-", file.deletions] })] }), _jsx(DiffContent, { fileIndex: i, contextLines: contextLines, maxLines: maxLines, renderLine: ({ line }) => (_jsx(StyledLine, { line: line, showLineNumbers: shouldShowLineNumbers })), renderFold: ({ region }) => _jsx(StyledFold, { region: region }) }), i < files.length - 1 && _jsx(Text, { children: " " })] }, i));
|
|
40
|
+
}) }));
|
|
41
|
+
};
|
|
42
|
+
const getDiffViewFiles = ({ patch, oldFile, newFile, }) => {
|
|
43
|
+
if (patch) {
|
|
44
|
+
return parsePatch(patch);
|
|
45
|
+
}
|
|
46
|
+
if (!oldFile || !newFile) {
|
|
47
|
+
return [];
|
|
48
|
+
}
|
|
49
|
+
const { lines, additions, deletions } = computeDiff(oldFile.content, newFile.content);
|
|
50
|
+
return [
|
|
51
|
+
{
|
|
52
|
+
oldName: oldFile.name,
|
|
53
|
+
newName: newFile.name,
|
|
54
|
+
lines,
|
|
55
|
+
additions,
|
|
56
|
+
deletions,
|
|
57
|
+
},
|
|
58
|
+
];
|
|
59
|
+
};
|
|
60
|
+
export const DiffView = ({ patch, oldFile, newFile, showLineNumbers, contextLines, maxLines, ...boxProps }) => {
|
|
61
|
+
const oldContent = oldFile?.content;
|
|
62
|
+
const oldName = oldFile?.name;
|
|
63
|
+
const newContent = newFile?.content;
|
|
64
|
+
const newName = newFile?.name;
|
|
65
|
+
const files = useMemo(() => getDiffViewFiles({
|
|
66
|
+
patch,
|
|
67
|
+
oldFile: oldContent !== undefined
|
|
68
|
+
? { content: oldContent, name: oldName }
|
|
69
|
+
: undefined,
|
|
70
|
+
newFile: newContent !== undefined
|
|
71
|
+
? { content: newContent, name: newName }
|
|
72
|
+
: undefined,
|
|
73
|
+
}), [patch, oldContent, oldName, newContent, newName]);
|
|
74
|
+
return (_jsx(DiffRoot, { files: files, ...boxProps, children: _jsx(DiffViewInner, { showLineNumbers: showLineNumbers, contextLines: contextLines, maxLines: maxLines }) }));
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=DiffView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiffView.js","sourceRoot":"","sources":["../../../src/primitives/diff/DiffView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ParsedLine, ParsedFile, DisplayLine } from "./types.js";
|
|
2
|
+
export declare function parsePatch(patch: string): ParsedFile[];
|
|
3
|
+
export declare function computeDiff(oldContent: string, newContent: string): {
|
|
4
|
+
lines: ParsedLine[];
|
|
5
|
+
additions: number;
|
|
6
|
+
deletions: number;
|
|
7
|
+
};
|
|
8
|
+
export declare function foldContext(lines: ParsedLine[], contextLines: number): DisplayLine[];
|
|
9
|
+
//# sourceMappingURL=diff-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-utils.d.ts","sourceRoot":"","sources":["../../../src/primitives/diff/diff-utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,WAAW,EAEZ,mBAAgB;AAsBjB,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,CAgDtD;AAED,wBAAgB,WAAW,CACzB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB;IAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CA4B/D;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,UAAU,EAAE,EACnB,YAAY,EAAE,MAAM,GACnB,WAAW,EAAE,CAiCf"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { diffLines } from "diff";
|
|
2
|
+
import parseDiff from "parse-diff";
|
|
3
|
+
const NO_NEWLINE_MARKER = "\";
|
|
4
|
+
const stripTrailingCarriageReturn = (content) => {
|
|
5
|
+
return content.endsWith("\r") ? content.slice(0, -1) : content;
|
|
6
|
+
};
|
|
7
|
+
const parseChangeContent = (content) => {
|
|
8
|
+
const normalized = stripTrailingCarriageReturn(content);
|
|
9
|
+
if (normalized === NO_NEWLINE_MARKER)
|
|
10
|
+
return null;
|
|
11
|
+
return stripTrailingCarriageReturn(normalized.slice(1));
|
|
12
|
+
};
|
|
13
|
+
const splitDiffLines = (value) => {
|
|
14
|
+
const normalized = value.endsWith("\n") ? value.slice(0, -1) : value;
|
|
15
|
+
if (normalized.length === 0) {
|
|
16
|
+
return value.length > 0 ? [""] : [];
|
|
17
|
+
}
|
|
18
|
+
return normalized.split("\n").map(stripTrailingCarriageReturn);
|
|
19
|
+
};
|
|
20
|
+
export function parsePatch(patch) {
|
|
21
|
+
const files = parseDiff(patch);
|
|
22
|
+
return files.map((file) => {
|
|
23
|
+
const lines = [];
|
|
24
|
+
let additions = 0;
|
|
25
|
+
let deletions = 0;
|
|
26
|
+
for (const chunk of file.chunks) {
|
|
27
|
+
let oldLine = chunk.oldStart;
|
|
28
|
+
let newLine = chunk.newStart;
|
|
29
|
+
for (const change of chunk.changes) {
|
|
30
|
+
const content = parseChangeContent(change.content);
|
|
31
|
+
if (content === null)
|
|
32
|
+
continue;
|
|
33
|
+
if (change.type === "add") {
|
|
34
|
+
additions++;
|
|
35
|
+
lines.push({
|
|
36
|
+
type: "add",
|
|
37
|
+
content,
|
|
38
|
+
newLineNumber: newLine++,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
else if (change.type === "del") {
|
|
42
|
+
deletions++;
|
|
43
|
+
lines.push({
|
|
44
|
+
type: "del",
|
|
45
|
+
content,
|
|
46
|
+
oldLineNumber: oldLine++,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
lines.push({
|
|
51
|
+
type: "normal",
|
|
52
|
+
content,
|
|
53
|
+
oldLineNumber: oldLine++,
|
|
54
|
+
newLineNumber: newLine++,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
oldName: file.from,
|
|
61
|
+
newName: file.to,
|
|
62
|
+
lines,
|
|
63
|
+
additions,
|
|
64
|
+
deletions,
|
|
65
|
+
};
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
export function computeDiff(oldContent, newContent) {
|
|
69
|
+
const changes = diffLines(oldContent, newContent);
|
|
70
|
+
const lines = [];
|
|
71
|
+
let oldLine = 1;
|
|
72
|
+
let newLine = 1;
|
|
73
|
+
let additions = 0;
|
|
74
|
+
let deletions = 0;
|
|
75
|
+
for (const change of changes) {
|
|
76
|
+
for (const content of splitDiffLines(change.value)) {
|
|
77
|
+
if (change.added) {
|
|
78
|
+
additions++;
|
|
79
|
+
lines.push({ type: "add", content, newLineNumber: newLine++ });
|
|
80
|
+
}
|
|
81
|
+
else if (change.removed) {
|
|
82
|
+
deletions++;
|
|
83
|
+
lines.push({ type: "del", content, oldLineNumber: oldLine++ });
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
lines.push({
|
|
87
|
+
type: "normal",
|
|
88
|
+
content,
|
|
89
|
+
oldLineNumber: oldLine++,
|
|
90
|
+
newLineNumber: newLine++,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return { lines, additions, deletions };
|
|
96
|
+
}
|
|
97
|
+
export function foldContext(lines, contextLines) {
|
|
98
|
+
const ctx = Math.max(0, contextLines);
|
|
99
|
+
const keep = new Set();
|
|
100
|
+
for (let i = 0; i < lines.length; i++) {
|
|
101
|
+
if (lines[i].type !== "normal") {
|
|
102
|
+
for (let j = Math.max(0, i - ctx); j <= Math.min(lines.length - 1, i + ctx); j++) {
|
|
103
|
+
keep.add(j);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
const result = [];
|
|
108
|
+
let i = 0;
|
|
109
|
+
while (i < lines.length) {
|
|
110
|
+
if (keep.has(i)) {
|
|
111
|
+
result.push(lines[i]);
|
|
112
|
+
i++;
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
let hiddenCount = 0;
|
|
116
|
+
while (i < lines.length && !keep.has(i)) {
|
|
117
|
+
hiddenCount++;
|
|
118
|
+
i++;
|
|
119
|
+
}
|
|
120
|
+
result.push({ type: "fold", hiddenCount });
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return result;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=diff-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-utils.js","sourceRoot":"","sources":["../../../src/primitives/diff/diff-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { DiffRoot as Root, type DiffRootProps as RootProps } from "./DiffRoot.js";
|
|
2
|
+
export { DiffHeader as Header, type DiffHeaderProps as HeaderProps, } from "./DiffHeader.js";
|
|
3
|
+
export { DiffContent as Content, type DiffContentProps as ContentProps, } from "./DiffContent.js";
|
|
4
|
+
export { DiffLine as Line, type DiffLineProps as LineProps, } from "./DiffLine.js";
|
|
5
|
+
export { DiffStats as Stats, type DiffStatsProps as StatsProps, } from "./DiffStats.js";
|
|
6
|
+
export type { ParsedLine, ParsedFile, DiffFileInput, DiffLineType, DisplayLine, FoldedRegion, } from "./types.js";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/primitives/diff/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,IAAI,EAAE,KAAK,aAAa,IAAI,SAAS,EAAE,sBAAmB;AAC/E,OAAO,EACL,UAAU,IAAI,MAAM,EACpB,KAAK,eAAe,IAAI,WAAW,GACpC,wBAAqB;AACtB,OAAO,EACL,WAAW,IAAI,OAAO,EACtB,KAAK,gBAAgB,IAAI,YAAY,GACtC,yBAAsB;AACvB,OAAO,EACL,QAAQ,IAAI,IAAI,EAChB,KAAK,aAAa,IAAI,SAAS,GAChC,sBAAmB;AACpB,OAAO,EACL,SAAS,IAAI,KAAK,EAClB,KAAK,cAAc,IAAI,UAAU,GAClC,uBAAoB;AACrB,YAAY,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,GACb,mBAAgB"}
|