@pstdio/ui 0.2.2 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/chat-ui.js +689 -637
  2. package/dist/chat-ui.js.map +1 -1
  3. package/dist/components/chat-ui/components/chat-input.d.ts +1 -0
  4. package/dist/components/chat-ui/components/chat-panel-sticky-user-message.d.ts +4 -0
  5. package/dist/components/chat-ui/components/chat-panel.d.ts +3 -0
  6. package/dist/components/chat-ui/components/chat-panel.sticky-user-message.test.d.ts +1 -0
  7. package/dist/components/chat-ui/components/chat-panel.stories.d.ts +2 -0
  8. package/dist/components/chat-ui/components/chat-skeleton.d.ts +1 -0
  9. package/dist/components/chat-ui/components/workspace-hub.d.ts +9 -0
  10. package/dist/components/chat-ui/components/workspace-hub.stories.d.ts +6 -0
  11. package/dist/components/chat-ui/index.d.ts +2 -0
  12. package/dist/components/diff-editor.d.ts +2 -0
  13. package/dist/components/diff-view-adapter.d.ts +14 -0
  14. package/dist/components/diff-view-adapter.test.d.ts +1 -0
  15. package/dist/components/rich-text/shared/components/content-editable.d.ts +2 -1
  16. package/dist/components/tickets/types.d.ts +4 -6
  17. package/dist/empty-state-DHSKuwia.js +160 -0
  18. package/dist/empty-state-DHSKuwia.js.map +1 -0
  19. package/dist/index.js +1334 -1317
  20. package/dist/index.js.map +1 -1
  21. package/dist/{rich-message-C0_i-4Ux.js → rich-message-ZT2CEiwt.js} +413 -404
  22. package/dist/rich-message-ZT2CEiwt.js.map +1 -0
  23. package/dist/rich-text.js +5 -5
  24. package/dist/rich-text.js.map +1 -1
  25. package/dist/style.css +1 -1
  26. package/dist/tooltip-Dze4WXVl.js +86 -0
  27. package/dist/tooltip-Dze4WXVl.js.map +1 -0
  28. package/package.json +6 -4
  29. package/dist/rich-message-C0_i-4Ux.js.map +0 -1
  30. package/dist/scroll-area-DZs-GiIp.js +0 -267
  31. package/dist/scroll-area-DZs-GiIp.js.map +0 -1
  32. package/dist/tooltip-Gm7PLwZG.js +0 -51
  33. package/dist/tooltip-Gm7PLwZG.js.map +0 -1
@@ -11,6 +11,7 @@ interface ChatInputProps {
11
11
  onChange?: (text: string) => void;
12
12
  attachmentList?: ReactNode;
13
13
  actions?: ReactNode;
14
+ attachedToTop?: boolean;
14
15
  }
15
16
  export declare const ChatInput: (props: ChatInputProps) => import("react/jsx-runtime").JSX.Element;
16
17
  export {};
@@ -0,0 +1,4 @@
1
+ import { SessionMessage } from './message-types';
2
+ export declare const STICKY_USER_MESSAGE_COLLAPSE_TEXT_THRESHOLD = 360;
3
+ export declare const STICKY_USER_MESSAGE_COLLAPSED_MAX_HEIGHT = "min(20vh, 8rem)";
4
+ export declare const isStickyUserMessageCollapsible: (message: SessionMessage) => boolean;
@@ -5,6 +5,8 @@ interface ChatPanelProps {
5
5
  streaming?: boolean;
6
6
  emptyStateTitle: string;
7
7
  emptyStateDescription: string;
8
+ emptyStateContent?: ReactNode;
9
+ loadingContent?: ReactNode;
8
10
  chatInputPlaceholder: string;
9
11
  chatInputDefaultValue?: string;
10
12
  onSubmitMessage?: (text: string, attachments: string[]) => void;
@@ -15,6 +17,7 @@ interface ChatPanelProps {
15
17
  onClearAttachments?: () => void;
16
18
  attachmentList?: ReactNode;
17
19
  approvalPrompt?: ReactNode;
20
+ workspaceHub?: ReactNode;
18
21
  }
19
22
  export declare const ChatPanel: (props: ChatPanelProps) => import("react/jsx-runtime").JSX.Element;
20
23
  export {};
@@ -6,3 +6,5 @@ type Story = StoryObj<typeof ChatPanel>;
6
6
  export declare const Empty: Story;
7
7
  export declare const Conversation: Story;
8
8
  export declare const Streaming: Story;
9
+ export declare const LongStickyUserPrompt: Story;
10
+ export declare const ConversationWithWorkspaceHub: Story;
@@ -0,0 +1 @@
1
+ export declare const ChatSkeleton: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { ReactNode } from 'react';
2
+ interface ChatWorkspaceHubProps {
3
+ changesLabel: string;
4
+ additions: number;
5
+ deletions: number;
6
+ action?: ReactNode;
7
+ }
8
+ export declare const ChatWorkspaceHub: (props: ChatWorkspaceHubProps) => import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { ChatWorkspaceHub } from './workspace-hub';
3
+ declare const meta: Meta<typeof ChatWorkspaceHub>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof ChatWorkspaceHub>;
6
+ export declare const Default: Story;
@@ -7,7 +7,9 @@ export type { AutoScrollProps } from './components/auto-scroll';
7
7
  export { AutoScroll } from './components/auto-scroll';
8
8
  export { ChatInput } from './components/chat-input';
9
9
  export { ChatPanel } from './components/chat-panel';
10
+ export { ChatSkeleton } from './components/chat-skeleton';
10
11
  export type { SessionMessage, SessionMessagePart } from './components/message-types';
11
12
  export type { SendButtonProps } from './components/send-button';
12
13
  export { SendButton } from './components/send-button';
14
+ export { ChatWorkspaceHub } from './components/workspace-hub';
13
15
  export { createSerializedPromptState } from './utils/editor-state';
@@ -2,6 +2,8 @@ interface DiffEditorProps {
2
2
  original: string;
3
3
  modified: string;
4
4
  language?: string;
5
+ oldPath?: string;
6
+ newPath?: string;
5
7
  sideBySide?: boolean;
6
8
  disableScroll?: boolean;
7
9
  }
@@ -0,0 +1,14 @@
1
+ import { DiffViewProps } from '@git-diff-view/react';
2
+ interface ResolveDiffLanguageInput {
3
+ language?: string;
4
+ oldPath?: string;
5
+ newPath?: string;
6
+ }
7
+ interface BuildDiffViewDataInput extends ResolveDiffLanguageInput {
8
+ original: string;
9
+ modified: string;
10
+ }
11
+ type DiffViewData = NonNullable<DiffViewProps<unknown>["data"]>;
12
+ export declare const resolveDiffLanguage: ({ language, oldPath, newPath }: ResolveDiffLanguageInput) => string;
13
+ export declare const buildDiffViewData: ({ original, modified, language, oldPath, newPath, }: BuildDiffViewDataInput) => DiffViewData;
14
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -2,6 +2,7 @@ interface ContentEditableProps {
2
2
  onRef?: (elem: HTMLDivElement) => void;
3
3
  fullWidth?: boolean;
4
4
  padding?: string;
5
+ isRichMessage?: boolean;
5
6
  }
6
- export declare function ContentEditable({ onRef, fullWidth, padding }: ContentEditableProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function ContentEditable({ onRef, fullWidth, padding, isRichMessage }: ContentEditableProps): import("react/jsx-runtime").JSX.Element;
7
8
  export {};
@@ -1,9 +1,9 @@
1
1
  export type ViewMode = "board" | "list";
2
- export type GroupingField = "status" | "complexity" | "assignee" | "priority" | "none";
3
- export type OrderingField = "manual" | "updated" | "title" | "complexity" | "priority" | "ticketId";
2
+ export type GroupingField = "status" | "assignee" | "none";
3
+ export type OrderingField = "manual" | "updated" | "title" | "ticketId";
4
4
  export type SortDirection = "asc" | "desc";
5
- export type DisplayProperty = "id" | "status" | "assignee" | "priority" | "complexity" | "labels" | "updated";
6
- export type FilterCategory = "status" | "assignee" | "priority" | "complexity" | "labels";
5
+ export type DisplayProperty = "id" | "status" | "assignee" | "labels" | "updated";
6
+ export type FilterCategory = "status" | "assignee" | "labels";
7
7
  export interface WorkspaceOrdering {
8
8
  field: OrderingField;
9
9
  direction: SortDirection;
@@ -36,8 +36,6 @@ export interface WorkspaceTicket {
36
36
  status?: string | null;
37
37
  statusColor?: string;
38
38
  assignee?: string | null;
39
- priority?: string | null;
40
- complexity?: string | null;
41
39
  labels?: string[];
42
40
  updatedAt?: string | null;
43
41
  parentPath?: string[];
@@ -0,0 +1,160 @@
1
+ import { jsx as p, jsxs as F } from "react/jsx-runtime";
2
+ import { c as E } from "react/compiler-runtime";
3
+ import { Span as D, Box as N, EmptyState as w, VStack as V } from "@chakra-ui/react";
4
+ import { DiffModeEnum as j, DiffView as A } from "@git-diff-view/react";
5
+ import "@git-diff-view/react/styles/diff-view.css";
6
+ import { generateDiffFile as B } from "@git-diff-view/file";
7
+ import * as T from "react";
8
+ const Y = (a) => {
9
+ const e = E(18), {
10
+ fileName: i,
11
+ additions: t,
12
+ deletions: r,
13
+ label: o,
14
+ variant: n,
15
+ size: l,
16
+ onClick: s,
17
+ onClickFileLink: c
18
+ } = a, d = n === void 0 ? "outline" : n, m = (l === void 0 ? "default" : l) === "small", x = d === "outline" ? "1px solid" : "none", b = d === "outline" ? m ? "3xs" : "2xs" : "2px", h = m ? "label/S/regular" : void 0, u = s ? "pointer" : "default";
19
+ let g;
20
+ e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (g = {
21
+ background: "bg.muted"
22
+ }, e[0] = g) : g = e[0];
23
+ let y;
24
+ e[1] !== i || e[2] !== c ? (y = i && /* @__PURE__ */ p(D, { display: "inline-block", maxW: "24ch", truncate: !0, mr: "xs", title: i, onClick: (C) => {
25
+ C.stopPropagation(), c?.();
26
+ }, cursor: c ? "pointer" : "default", _hover: {
27
+ textDecoration: c ? "underline" : "none",
28
+ color: c ? "fg.blue-dark" : "fg.muted"
29
+ }, children: i }), e[1] = i, e[2] = c, e[3] = y) : y = e[3];
30
+ const k = `+${t}`;
31
+ let S;
32
+ e[4] !== k ? (S = /* @__PURE__ */ p(D, { color: "fg.success", children: k }), e[4] = k, e[5] = S) : S = e[5];
33
+ const _ = `-${r}`;
34
+ let v;
35
+ e[6] !== _ ? (v = /* @__PURE__ */ p(D, { color: "fg.error", children: _ }), e[6] = _, e[7] = v) : v = e[7];
36
+ let L;
37
+ return e[8] !== o || e[9] !== s || e[10] !== v || e[11] !== x || e[12] !== b || e[13] !== h || e[14] !== u || e[15] !== y || e[16] !== S ? (L = /* @__PURE__ */ F(D, { display: "inline-flex", alignItems: "center", gap: "2xs", border: x, borderColor: "border.muted", color: "fg.muted", paddingX: b, paddingY: "1px", borderRadius: "xs", textStyle: h, cursor: u, onClick: s, _hover: g, children: [
38
+ o,
39
+ y,
40
+ S,
41
+ v
42
+ ] }), e[8] = o, e[9] = s, e[10] = v, e[11] = x, e[12] = b, e[13] = h, e[14] = u, e[15] = y, e[16] = S, e[17] = L) : L = e[17], L;
43
+ }, $ = "before.txt", z = "after.txt", R = {
44
+ ts: "typescript",
45
+ tsx: "typescript",
46
+ js: "javascript",
47
+ jsx: "javascript",
48
+ json: "json",
49
+ md: "markdown",
50
+ py: "python",
51
+ go: "go",
52
+ rs: "rust",
53
+ css: "css",
54
+ html: "html",
55
+ sh: "shell",
56
+ yml: "yaml",
57
+ yaml: "yaml"
58
+ }, W = (a) => (a.split(/[\\/]/).pop() ?? a).split(".").pop()?.toLowerCase(), H = ({
59
+ language: a,
60
+ oldPath: e,
61
+ newPath: i
62
+ }) => {
63
+ if (a)
64
+ return a;
65
+ const t = W(i ?? e ?? "");
66
+ return t ? R[t] ?? "plaintext" : "plaintext";
67
+ }, I = ({
68
+ original: a,
69
+ modified: e,
70
+ language: i,
71
+ oldPath: t,
72
+ newPath: r
73
+ }) => {
74
+ const o = t ?? r ?? $, n = r ?? t ?? z, l = H({
75
+ language: i,
76
+ oldPath: t,
77
+ newPath: r
78
+ }), s = B(o, a, n, e, l, l, {
79
+ context: 3
80
+ }, "pstdio-diff-view");
81
+ return {
82
+ oldFile: {
83
+ fileName: o,
84
+ fileLang: l,
85
+ content: a
86
+ },
87
+ newFile: {
88
+ fileName: n,
89
+ fileLang: l,
90
+ content: e
91
+ },
92
+ hunks: s._diffList
93
+ };
94
+ };
95
+ function q(a) {
96
+ const e = E(13), {
97
+ original: i,
98
+ modified: t,
99
+ language: r,
100
+ oldPath: o,
101
+ newPath: n,
102
+ sideBySide: l,
103
+ disableScroll: s
104
+ } = a, c = l === void 0 ? !1 : l, d = s === void 0 ? !0 : s;
105
+ let f;
106
+ e[0] !== r || e[1] !== t || e[2] !== n || e[3] !== o || e[4] !== i ? (f = I({
107
+ original: i,
108
+ modified: t,
109
+ language: r,
110
+ oldPath: o,
111
+ newPath: n
112
+ }), e[0] = r, e[1] = t, e[2] = n, e[3] = o, e[4] = i, e[5] = f) : f = e[5];
113
+ const m = f, x = c ? j.Split : j.Unified, b = d ? "hidden" : "auto";
114
+ let h;
115
+ e[6] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (h = {
116
+ "& .gdv-root": {
117
+ border: "none",
118
+ borderRadius: "0"
119
+ },
120
+ "& .gdv-line-number": {
121
+ fontSize: "11px"
122
+ }
123
+ }, e[6] = h) : h = e[6];
124
+ let u;
125
+ e[7] !== m || e[8] !== x ? (u = /* @__PURE__ */ p(A, { data: m, diffViewMode: x, diffViewTheme: "dark", diffViewHighlight: !0, diffViewWrap: !0, diffViewFontSize: 11 }), e[7] = m, e[8] = x, e[9] = u) : u = e[9];
126
+ let g;
127
+ return e[10] !== b || e[11] !== u ? (g = /* @__PURE__ */ p(N, { height: "100%", width: "100%", overflow: b, css: h, children: u }), e[10] = b, e[11] = u, e[12] = g) : g = e[12], g;
128
+ }
129
+ const G = T.forwardRef(function(e, i) {
130
+ const t = E(19);
131
+ let r, o, n, l, s;
132
+ t[0] !== e ? ({
133
+ title: s,
134
+ description: o,
135
+ icon: n,
136
+ children: r,
137
+ ...l
138
+ } = e, t[0] = e, t[1] = r, t[2] = o, t[3] = n, t[4] = l, t[5] = s) : (r = t[1], o = t[2], n = t[3], l = t[4], s = t[5]);
139
+ let c;
140
+ t[6] !== n ? (c = n && /* @__PURE__ */ p(w.Indicator, { children: n }), t[6] = n, t[7] = c) : c = t[7];
141
+ let d;
142
+ t[8] !== o || t[9] !== s ? (d = o ? /* @__PURE__ */ F(V, { textAlign: "center", children: [
143
+ /* @__PURE__ */ p(w.Title, { fontWeight: "normal", children: s }),
144
+ /* @__PURE__ */ p(w.Description, { children: o })
145
+ ] }) : /* @__PURE__ */ p(w.Title, { fontWeight: "normal", children: s }), t[8] = o, t[9] = s, t[10] = d) : d = t[10];
146
+ let f;
147
+ t[11] !== r || t[12] !== c || t[13] !== d ? (f = /* @__PURE__ */ F(w.Content, { children: [
148
+ c,
149
+ d,
150
+ r
151
+ ] }), t[11] = r, t[12] = c, t[13] = d, t[14] = f) : f = t[14];
152
+ let m;
153
+ return t[15] !== i || t[16] !== l || t[17] !== f ? (m = /* @__PURE__ */ p(w.Root, { ref: i, ...l, children: f }), t[15] = i, t[16] = l, t[17] = f, t[18] = m) : m = t[18], m;
154
+ });
155
+ export {
156
+ q as D,
157
+ G as E,
158
+ Y as a
159
+ };
160
+ //# sourceMappingURL=empty-state-DHSKuwia.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty-state-DHSKuwia.js","sources":["../src/components/diff-bubble.tsx","../src/components/diff-view-adapter.ts","../src/components/diff-editor.tsx","../src/components/empty-state.tsx"],"sourcesContent":["import { Span } from \"@chakra-ui/react\";\nimport type React from \"react\";\nimport type { ComponentProps, MouseEvent } from \"react\";\n\ninterface DiffBubbleProps extends Omit<ComponentProps<typeof Span>, \"onClick\"> {\n fileName?: string;\n additions: number;\n deletions: number;\n label?: React.ReactNode;\n variant?: \"outline\" | \"ghost\";\n size?: \"default\" | \"small\";\n onClick?: (event: MouseEvent<HTMLSpanElement>) => void;\n onClickFileLink?: () => void;\n}\n\nexport const DiffBubble = (props: DiffBubbleProps) => {\n const {\n fileName,\n additions,\n deletions,\n label,\n variant = \"outline\",\n size = \"default\",\n onClick,\n onClickFileLink,\n } = props;\n\n const isSmall = size === \"small\";\n\n return (\n <Span\n display=\"inline-flex\"\n alignItems=\"center\"\n gap={\"2xs\"}\n border={variant === \"outline\" ? \"1px solid\" : \"none\"}\n borderColor=\"border.muted\"\n color=\"fg.muted\"\n paddingX={variant === \"outline\" ? (isSmall ? \"3xs\" : \"2xs\") : \"2px\"}\n paddingY=\"1px\"\n borderRadius=\"xs\"\n textStyle={isSmall ? \"label/S/regular\" : undefined}\n cursor={onClick ? \"pointer\" : \"default\"}\n onClick={onClick}\n _hover={{\n background: \"bg.muted\",\n }}\n >\n {label}\n {fileName && (\n <Span\n display=\"inline-block\"\n maxW=\"24ch\"\n truncate\n mr=\"xs\"\n title={fileName}\n onClick={(e) => {\n e.stopPropagation();\n onClickFileLink?.();\n }}\n cursor={onClickFileLink ? \"pointer\" : \"default\"}\n _hover={{\n textDecoration: onClickFileLink ? \"underline\" : \"none\",\n color: onClickFileLink ? \"fg.blue-dark\" : \"fg.muted\",\n }}\n >\n {fileName}\n </Span>\n )}\n <Span color=\"fg.success\">{`+${additions}`}</Span>\n <Span color=\"fg.error\">{`-${deletions}`}</Span>\n </Span>\n );\n};\n","import { generateDiffFile } from \"@git-diff-view/file\";\nimport type { DiffViewProps } from \"@git-diff-view/react\";\n\nconst FALLBACK_OLD_PATH = \"before.txt\";\nconst FALLBACK_NEW_PATH = \"after.txt\";\n\ninterface ResolveDiffLanguageInput {\n language?: string;\n oldPath?: string;\n newPath?: string;\n}\n\ninterface BuildDiffViewDataInput extends ResolveDiffLanguageInput {\n original: string;\n modified: string;\n}\n\ntype DiffViewData = NonNullable<DiffViewProps<unknown>[\"data\"]>;\n\nconst extToLanguage: Record<string, string> = {\n ts: \"typescript\",\n tsx: \"typescript\",\n js: \"javascript\",\n jsx: \"javascript\",\n json: \"json\",\n md: \"markdown\",\n py: \"python\",\n go: \"go\",\n rs: \"rust\",\n css: \"css\",\n html: \"html\",\n sh: \"shell\",\n yml: \"yaml\",\n yaml: \"yaml\",\n};\n\nconst getExtension = (path: string) => {\n const fileName = path.split(/[\\\\/]/).pop() ?? path;\n const ext = fileName.split(\".\").pop();\n\n return ext?.toLowerCase();\n};\n\nexport const resolveDiffLanguage = ({ language, oldPath, newPath }: ResolveDiffLanguageInput) => {\n if (language) {\n return language;\n }\n\n const extension = getExtension(newPath ?? oldPath ?? \"\");\n\n if (!extension) {\n return \"plaintext\";\n }\n\n return extToLanguage[extension] ?? \"plaintext\";\n};\n\nexport const buildDiffViewData = ({\n original,\n modified,\n language,\n oldPath,\n newPath,\n}: BuildDiffViewDataInput): DiffViewData => {\n const oldFileName = oldPath ?? newPath ?? FALLBACK_OLD_PATH;\n const newFileName = newPath ?? oldPath ?? FALLBACK_NEW_PATH;\n const fileLanguage = resolveDiffLanguage({ language, oldPath, newPath });\n\n const diffFile = generateDiffFile(\n oldFileName,\n original,\n newFileName,\n modified,\n fileLanguage,\n fileLanguage,\n { context: 3 },\n \"pstdio-diff-view\",\n );\n\n return {\n oldFile: {\n fileName: oldFileName,\n fileLang: fileLanguage,\n content: original,\n },\n newFile: {\n fileName: newFileName,\n fileLang: fileLanguage,\n content: modified,\n },\n hunks: diffFile._diffList,\n };\n};\n","import { DiffModeEnum, DiffView } from \"@git-diff-view/react\";\nimport \"@git-diff-view/react/styles/diff-view.css\";\nimport { Box } from \"@chakra-ui/react\";\nimport { buildDiffViewData } from \"./diff-view-adapter\";\n\ninterface DiffEditorProps {\n original: string;\n modified: string;\n language?: string;\n oldPath?: string;\n newPath?: string;\n sideBySide?: boolean;\n disableScroll?: boolean;\n}\n\nexport function DiffEditor(props: DiffEditorProps) {\n const { original, modified, language, oldPath, newPath, sideBySide = false, disableScroll = true } = props;\n\n const data = buildDiffViewData({\n original,\n modified,\n language,\n oldPath,\n newPath,\n });\n\n const mode = sideBySide ? DiffModeEnum.Split : DiffModeEnum.Unified;\n\n return (\n <Box\n height=\"100%\"\n width=\"100%\"\n overflow={disableScroll ? \"hidden\" : \"auto\"}\n css={{\n \"& .gdv-root\": {\n border: \"none\",\n borderRadius: \"0\",\n },\n \"& .gdv-line-number\": {\n fontSize: \"11px\",\n },\n }}\n >\n <DiffView\n data={data}\n diffViewMode={mode}\n diffViewTheme=\"dark\"\n diffViewHighlight={true}\n diffViewWrap={true}\n diffViewFontSize={11}\n />\n </Box>\n );\n}\n","import { EmptyState as ChakraEmptyState, VStack } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface EmptyStateProps extends ChakraEmptyState.RootProps {\n title: string;\n description?: string;\n icon?: React.ReactNode;\n}\n\nexport const EmptyState = React.forwardRef<HTMLDivElement, EmptyStateProps>(function EmptyState(props, ref) {\n const { title, description, icon, children, ...rest } = props;\n return (\n <ChakraEmptyState.Root ref={ref} {...rest}>\n <ChakraEmptyState.Content>\n {icon && <ChakraEmptyState.Indicator>{icon}</ChakraEmptyState.Indicator>}\n {description ? (\n <VStack textAlign=\"center\">\n <ChakraEmptyState.Title fontWeight=\"normal\">{title}</ChakraEmptyState.Title>\n <ChakraEmptyState.Description>{description}</ChakraEmptyState.Description>\n </VStack>\n ) : (\n <ChakraEmptyState.Title fontWeight=\"normal\">{title}</ChakraEmptyState.Title>\n )}\n {children}\n </ChakraEmptyState.Content>\n </ChakraEmptyState.Root>\n );\n});\n"],"names":["DiffBubble","props","$","_c","fileName","additions","deletions","label","variant","t0","size","t1","onClick","onClickFileLink","undefined","isSmall","t2","t3","t4","t5","t6","Symbol","for","background","t7","jsx","Span","e","stopPropagation","textDecoration","color","t8","t9","t10","t11","t12","FALLBACK_OLD_PATH","FALLBACK_NEW_PATH","extToLanguage","ts","tsx","js","json","md","py","go","rs","css","html","sh","yml","yaml","getExtension","path","split","pop","toLowerCase","resolveDiffLanguage","language","oldPath","newPath","extension","buildDiffViewData","original","modified","oldFileName","newFileName","fileLanguage","diffFile","generateDiffFile","context","oldFile","fileLang","content","newFile","hunks","_diffList","DiffEditor","sideBySide","disableScroll","data","mode","DiffModeEnum","Split","Unified","border","borderRadius","fontSize","DiffView","Box","EmptyState","React","forwardRef","ref","children","description","icon","rest","title","ChakraEmptyState","jsxs","VStack"],"mappings":"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"}