@pstdio/ui 0.2.3 → 0.2.5

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 (38) hide show
  1. package/dist/chat-ui.js +627 -570
  2. package/dist/chat-ui.js.map +1 -1
  3. package/dist/components/chat-ui/agent-types.d.ts +7 -1
  4. package/dist/components/chat-ui/components/ai-message.d.ts +3 -10
  5. package/dist/components/chat-ui/components/chat-input.d.ts +1 -0
  6. package/dist/components/chat-ui/components/chat-panel-alerts.stories.d.ts +9 -0
  7. package/dist/components/chat-ui/components/chat-panel.d.ts +5 -0
  8. package/dist/components/chat-ui/components/chat-panel.stories.d.ts +1 -0
  9. package/dist/components/chat-ui/components/chat-skeleton.d.ts +1 -0
  10. package/dist/components/chat-ui/components/message-parts-renderer.stories.d.ts +1 -0
  11. package/dist/components/chat-ui/components/workspace-hub.d.ts +12 -0
  12. package/dist/components/chat-ui/components/workspace-hub.stories.d.ts +6 -0
  13. package/dist/components/chat-ui/index.d.ts +3 -0
  14. package/dist/components/diff-editor.d.ts +2 -0
  15. package/dist/components/diff-view-adapter.d.ts +14 -0
  16. package/dist/components/diff-view-adapter.test.d.ts +1 -0
  17. package/dist/components/menu-item.d.ts +0 -1
  18. package/dist/components/searchable-menu.d.ts +32 -0
  19. package/dist/components/searchable-menu.stories.d.ts +6 -0
  20. package/dist/components/searchable-menu.test.d.ts +1 -0
  21. package/dist/components/sidebar-tree/searchable-action-menu.d.ts +6 -0
  22. package/dist/components/sidebar-tree/sidebar-tree-searchable-action-menu.stories.d.ts +6 -0
  23. package/dist/components/sidebar-tree/sidebar-tree.types.d.ts +2 -0
  24. package/dist/components/tickets/ticket-card.stories.d.ts +1 -0
  25. package/dist/components/tickets/types.d.ts +4 -6
  26. package/dist/empty-state-yGspgiPl.js +185 -0
  27. package/dist/empty-state-yGspgiPl.js.map +1 -0
  28. package/dist/index.d.ts +3 -1
  29. package/dist/index.js +1682 -1586
  30. package/dist/index.js.map +1 -1
  31. package/dist/theme/global.d.ts +10 -0
  32. package/dist/{theme-C7CIuIPZ.js → theme-BFV2Q048.js} +18 -8
  33. package/dist/theme-BFV2Q048.js.map +1 -0
  34. package/dist/theme.js +1 -1
  35. package/package.json +5 -3
  36. package/dist/empty-state-kQR0gd4j.js +0 -232
  37. package/dist/empty-state-kQR0gd4j.js.map +0 -1
  38. package/dist/theme-C7CIuIPZ.js.map +0 -1
@@ -61,7 +61,13 @@ export type TokenUsagePart = {
61
61
  cacheReadTokens?: number;
62
62
  cacheWriteTokens?: number;
63
63
  };
64
- export type SessionMessagePart = TextPart | ReasoningPart | ToolPart | StepStartPart | StepFinishPart | PatchPart | FilePart | LoadingPart | ErrorPart | TokenUsagePart;
64
+ export type AlertPart = {
65
+ type: "alert";
66
+ status: "info" | "warning" | "error" | "success" | "loading";
67
+ title: string;
68
+ message?: string;
69
+ };
70
+ export type SessionMessagePart = TextPart | ReasoningPart | ToolPart | StepStartPart | StepFinishPart | PatchPart | FilePart | LoadingPart | ErrorPart | TokenUsagePart | AlertPart;
65
71
  export type SessionMessage = {
66
72
  id: string;
67
73
  role: SessionMessageRole;
@@ -10,6 +10,8 @@ declare const recipe: import('@chakra-ui/react').SlotRecipeDefinition<"content"
10
10
  border: "1px solid";
11
11
  borderColor: "border.muted";
12
12
  bg: "bg.subtle";
13
+ px: "xs";
14
+ py: "xs";
13
15
  width: "full";
14
16
  borderBottomRightRadius: number;
15
17
  };
@@ -40,24 +42,15 @@ declare const recipe: import('@chakra-ui/react').SlotRecipeDefinition<"content"
40
42
  gap: "xs";
41
43
  };
42
44
  content: {
43
- px: "xs";
44
- py: "xs";
45
45
  textStyle: "xs";
46
46
  };
47
47
  };
48
- md: {
49
- content: {
50
- px: "xs";
51
- py: "xs";
52
- };
53
- };
48
+ md: {};
54
49
  lg: {
55
50
  root: {
56
51
  gap: "md";
57
52
  };
58
53
  content: {
59
- px: "sm";
60
- py: "xs";
61
54
  textStyle: "md";
62
55
  };
63
56
  };
@@ -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,9 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { ChatPanel } from './chat-panel';
3
+ declare const meta: Meta<typeof ChatPanel>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof ChatPanel>;
6
+ export declare const AlertVariants: Story;
7
+ export declare const WorkspaceInitializing: Story;
8
+ export declare const WorkspaceReady: Story;
9
+ export declare const WorkspaceSetupFailed: Story;
@@ -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,9 @@ interface ChatPanelProps {
15
17
  onClearAttachments?: () => void;
16
18
  attachmentList?: ReactNode;
17
19
  approvalPrompt?: ReactNode;
20
+ workspaceHub?: ReactNode;
21
+ workspaceInitializing?: boolean;
22
+ inputDisabled?: boolean;
18
23
  }
19
24
  export declare const ChatPanel: (props: ChatPanelProps) => import("react/jsx-runtime").JSX.Element;
20
25
  export {};
@@ -7,3 +7,4 @@ export declare const Empty: Story;
7
7
  export declare const Conversation: Story;
8
8
  export declare const Streaming: Story;
9
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;
@@ -5,4 +5,5 @@ export default meta;
5
5
  type Story = StoryObj<typeof MessagePartsRenderer>;
6
6
  export declare const AssistantReasoningAndToolParts: Story;
7
7
  export declare const UserTextParts: Story;
8
+ export declare const TokenUsageParts: Story;
8
9
  export declare const ErrorParts: Story;
@@ -0,0 +1,12 @@
1
+ import { ReactNode } from 'react';
2
+ type WorkspaceHubStatus = "ready" | "loading" | "error";
3
+ interface ChatWorkspaceHubProps {
4
+ changesLabel: string;
5
+ additions: number;
6
+ deletions: number;
7
+ action?: ReactNode;
8
+ status?: WorkspaceHubStatus;
9
+ statusLabel?: string;
10
+ }
11
+ export declare const ChatWorkspaceHub: (props: ChatWorkspaceHubProps) => import("react/jsx-runtime").JSX.Element;
12
+ 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;
@@ -1,3 +1,4 @@
1
+ export type { AlertPart } from '../chat-ui/agent-types';
1
2
  export type { ConversationContentProps, ConversationRootProps, ConversationScrollButtonProps, } from './components/ai-conversation';
2
3
  export { ChatPrimitives } from './components/ai-conversation';
3
4
  export type { MessageContentProps, MessageRootProps } from './components/ai-message';
@@ -7,7 +8,9 @@ export type { AutoScrollProps } from './components/auto-scroll';
7
8
  export { AutoScroll } from './components/auto-scroll';
8
9
  export { ChatInput } from './components/chat-input';
9
10
  export { ChatPanel } from './components/chat-panel';
11
+ export { ChatSkeleton } from './components/chat-skeleton';
10
12
  export type { SessionMessage, SessionMessagePart } from './components/message-types';
11
13
  export type { SendButtonProps } from './components/send-button';
12
14
  export { SendButton } from './components/send-button';
15
+ export { ChatWorkspaceHub } from './components/workspace-hub';
13
16
  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 {};
@@ -17,7 +17,6 @@ export interface MenuItemProps {
17
17
  secondaryLabel?: string;
18
18
  tooltipLabel?: ReactNode;
19
19
  leftIcon?: MenuItemIcon | null;
20
- leftSlot?: ReactNode;
21
20
  rightIcon?: MenuItemIcon | null;
22
21
  leftIconColor?: MenuItemIconColor;
23
22
  rightIconColor?: MenuItemIconColor;
@@ -0,0 +1,32 @@
1
+ import { Menu } from '@chakra-ui/react';
2
+ import { ReactNode } from 'react';
3
+ type MenuRootProps = React.ComponentProps<typeof Menu.Root>;
4
+ type MenuContentProps = React.ComponentProps<typeof Menu.Content>;
5
+ export interface SearchableMenuItem {
6
+ id: string;
7
+ label: string;
8
+ searchText?: string;
9
+ }
10
+ interface SearchableMenuProps<T extends SearchableMenuItem> {
11
+ trigger: ReactNode;
12
+ items: T[];
13
+ searchPlaceholder: string;
14
+ emptyState: ReactNode;
15
+ renderItem: (item: T) => ReactNode;
16
+ filterItems?: (items: T[], query: string) => T[];
17
+ header?: ReactNode;
18
+ width?: MenuContentProps["width"];
19
+ maxListHeight?: string;
20
+ showSearch?: boolean;
21
+ closeOnSelect?: MenuRootProps["closeOnSelect"];
22
+ lazyMount?: MenuRootProps["lazyMount"];
23
+ open?: MenuRootProps["open"];
24
+ positioning?: MenuRootProps["positioning"];
25
+ onOpenChange?: MenuRootProps["onOpenChange"];
26
+ onFocusOutside?: MenuRootProps["onFocusOutside"];
27
+ contentTestId?: string;
28
+ portalled?: boolean;
29
+ }
30
+ export declare const filterSearchableMenuItems: <T extends SearchableMenuItem>(items: T[], query: string) => T[];
31
+ export declare const SearchableMenu: <T extends SearchableMenuItem>(props: SearchableMenuProps<T>) => import("react/jsx-runtime").JSX.Element;
32
+ export {};
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { SearchableMenu } from './searchable-menu';
3
+ declare const meta: Meta<typeof SearchableMenu>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof SearchableMenu>;
6
+ export declare const BranchSelector: Story;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import { SidebarAction } from './sidebar-tree.types';
2
+ interface SearchableActionMenuProps {
3
+ action: SidebarAction;
4
+ }
5
+ export declare const SearchableActionMenu: (props: SearchableActionMenuProps) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { SidebarTree } from './sidebar-tree';
3
+ declare const meta: Meta<typeof SidebarTree>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof SidebarTree>;
6
+ export declare const HooksSection: Story;
@@ -18,6 +18,8 @@ export interface SidebarAction {
18
18
  id: string;
19
19
  label: string;
20
20
  icon?: ReactNode;
21
+ searchPlaceholder?: string;
22
+ emptyMenuLabel?: string;
21
23
  menuItems?: SidebarActionMenuItem[];
22
24
  onAction?: (context: SidebarActionContext) => void;
23
25
  }
@@ -10,6 +10,7 @@ export declare const WithMultipleBadges: Story;
10
10
  export declare const WithParentAndStatus: Story;
11
11
  export declare const WithAllBadgeColors: Story;
12
12
  export declare const LongTitle: Story;
13
+ export declare const LongUnbrokenUrlLikeTitle: Story;
13
14
  export declare const NoBadges: Story;
14
15
  export declare const WithDiffBadge: Story;
15
16
  export declare const WithSessionIndicator: Story;
@@ -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,185 @@
1
+ import { jsx as u, jsxs as k } from "react/jsx-runtime";
2
+ import { c as F } from "react/compiler-runtime";
3
+ import { Alert as D, Span as E, Box as V, EmptyState as L, VStack as $ } from "@chakra-ui/react";
4
+ import * as N from "react";
5
+ import { DiffModeEnum as j, DiffView as R } from "@git-diff-view/react";
6
+ import "@git-diff-view/react/styles/diff-view.css";
7
+ import { generateDiffFile as B } from "@git-diff-view/file";
8
+ const G = N.forwardRef(function(t, c) {
9
+ const e = F(19);
10
+ let n, i, o, r, l, s;
11
+ e[0] !== t ? ({
12
+ title: s,
13
+ children: n,
14
+ icon: o,
15
+ startElement: l,
16
+ endElement: i,
17
+ ...r
18
+ } = t, e[0] = t, e[1] = n, e[2] = i, e[3] = o, e[4] = r, e[5] = l, e[6] = s) : (n = e[1], i = e[2], o = e[3], r = e[4], l = e[5], s = e[6]);
19
+ let a;
20
+ e[7] !== o || e[8] !== l ? (a = l || /* @__PURE__ */ u(D.Indicator, { children: o }), e[7] = o, e[8] = l, e[9] = a) : a = e[9];
21
+ let d;
22
+ e[10] !== n || e[11] !== s ? (d = n ? /* @__PURE__ */ k(D.Content, { children: [
23
+ /* @__PURE__ */ u(D.Title, { children: s }),
24
+ /* @__PURE__ */ u(D.Description, { children: n })
25
+ ] }) : /* @__PURE__ */ u(D.Title, { flex: "1", children: s }), e[10] = n, e[11] = s, e[12] = d) : d = e[12];
26
+ let f;
27
+ return e[13] !== i || e[14] !== c || e[15] !== r || e[16] !== a || e[17] !== d ? (f = /* @__PURE__ */ k(D.Root, { ref: c, ...r, children: [
28
+ a,
29
+ d,
30
+ i
31
+ ] }), e[13] = i, e[14] = c, e[15] = r, e[16] = a, e[17] = d, e[18] = f) : f = e[18], f;
32
+ }), J = (m) => {
33
+ const t = F(20), {
34
+ fileName: c,
35
+ additions: e,
36
+ deletions: n,
37
+ label: i,
38
+ variant: o,
39
+ size: r,
40
+ onClick: l,
41
+ onClickFileLink: s
42
+ } = m, a = o === void 0 ? "outline" : o, f = (r === void 0 ? "default" : r) === "small", x = a === "outline" ? "1px solid" : "none", b = a === "outline" ? f ? "3xs" : "2xs" : "2px", h = f ? "label/S/regular" : void 0, p = l ? "pointer" : "default", g = l ? "bg.muted" : "none";
43
+ let y;
44
+ t[0] !== g ? (y = {
45
+ background: g
46
+ }, t[0] = g, t[1] = y) : y = t[1];
47
+ let S;
48
+ t[2] !== c || t[3] !== s ? (S = c && /* @__PURE__ */ u(E, { display: "inline-block", maxW: "24ch", truncate: !0, mr: "xs", title: c, onClick: (T) => {
49
+ T.stopPropagation(), s?.();
50
+ }, cursor: s ? "pointer" : "default", _hover: {
51
+ textDecoration: s ? "underline" : "none",
52
+ color: s ? "fg.blue-dark" : "fg.muted"
53
+ }, children: c }), t[2] = c, t[3] = s, t[4] = S) : S = t[4];
54
+ const C = `+${e}`;
55
+ let v;
56
+ t[5] !== C ? (v = /* @__PURE__ */ u(E, { color: "fg.success", children: C }), t[5] = C, t[6] = v) : v = t[6];
57
+ const _ = `-${n}`;
58
+ let w;
59
+ t[7] !== _ ? (w = /* @__PURE__ */ u(E, { color: "fg.error", children: _ }), t[7] = _, t[8] = w) : w = t[8];
60
+ let A;
61
+ return t[9] !== i || t[10] !== l || t[11] !== v || t[12] !== w || t[13] !== x || t[14] !== b || t[15] !== h || t[16] !== p || t[17] !== y || t[18] !== S ? (A = /* @__PURE__ */ k(E, { display: "inline-flex", alignItems: "center", gap: "2xs", border: x, borderColor: "border.muted", color: "fg.muted", paddingX: b, paddingY: "1px", borderRadius: "xs", textStyle: h, cursor: p, onClick: l, _hover: y, children: [
62
+ i,
63
+ S,
64
+ v,
65
+ w
66
+ ] }), t[9] = i, t[10] = l, t[11] = v, t[12] = w, t[13] = x, t[14] = b, t[15] = h, t[16] = p, t[17] = y, t[18] = S, t[19] = A) : A = t[19], A;
67
+ }, z = "before.txt", W = "after.txt", H = {
68
+ ts: "typescript",
69
+ tsx: "typescript",
70
+ js: "javascript",
71
+ jsx: "javascript",
72
+ json: "json",
73
+ md: "markdown",
74
+ py: "python",
75
+ go: "go",
76
+ rs: "rust",
77
+ css: "css",
78
+ html: "html",
79
+ sh: "shell",
80
+ yml: "yaml",
81
+ yaml: "yaml"
82
+ }, I = (m) => (m.split(/[\\/]/).pop() ?? m).split(".").pop()?.toLowerCase(), M = ({
83
+ language: m,
84
+ oldPath: t,
85
+ newPath: c
86
+ }) => {
87
+ if (m)
88
+ return m;
89
+ const e = I(c ?? t ?? "");
90
+ return e ? H[e] ?? "plaintext" : "plaintext";
91
+ }, K = ({
92
+ original: m,
93
+ modified: t,
94
+ language: c,
95
+ oldPath: e,
96
+ newPath: n
97
+ }) => {
98
+ const i = e ?? n ?? z, o = n ?? e ?? W, r = M({
99
+ language: c,
100
+ oldPath: e,
101
+ newPath: n
102
+ }), l = B(i, m, o, t, r, r, {
103
+ context: 3
104
+ }, "pstdio-diff-view");
105
+ return {
106
+ oldFile: {
107
+ fileName: i,
108
+ fileLang: r,
109
+ content: m
110
+ },
111
+ newFile: {
112
+ fileName: o,
113
+ fileLang: r,
114
+ content: t
115
+ },
116
+ hunks: l._diffList
117
+ };
118
+ };
119
+ function Q(m) {
120
+ const t = F(13), {
121
+ original: c,
122
+ modified: e,
123
+ language: n,
124
+ oldPath: i,
125
+ newPath: o,
126
+ sideBySide: r,
127
+ disableScroll: l
128
+ } = m, s = r === void 0 ? !1 : r, a = l === void 0 ? !0 : l;
129
+ let d;
130
+ t[0] !== n || t[1] !== e || t[2] !== o || t[3] !== i || t[4] !== c ? (d = K({
131
+ original: c,
132
+ modified: e,
133
+ language: n,
134
+ oldPath: i,
135
+ newPath: o
136
+ }), t[0] = n, t[1] = e, t[2] = o, t[3] = i, t[4] = c, t[5] = d) : d = t[5];
137
+ const f = d, x = s ? j.Split : j.Unified, b = a ? "hidden" : "auto";
138
+ let h;
139
+ t[6] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (h = {
140
+ "& .gdv-root": {
141
+ border: "none",
142
+ borderRadius: "0"
143
+ },
144
+ "& .gdv-line-number": {
145
+ fontSize: "11px"
146
+ }
147
+ }, t[6] = h) : h = t[6];
148
+ let p;
149
+ t[7] !== f || t[8] !== x ? (p = /* @__PURE__ */ u(R, { data: f, diffViewMode: x, diffViewTheme: "dark", diffViewHighlight: !0, diffViewWrap: !0, diffViewFontSize: 11 }), t[7] = f, t[8] = x, t[9] = p) : p = t[9];
150
+ let g;
151
+ return t[10] !== b || t[11] !== p ? (g = /* @__PURE__ */ u(V, { height: "100%", width: "100%", overflow: b, css: h, children: p }), t[10] = b, t[11] = p, t[12] = g) : g = t[12], g;
152
+ }
153
+ const Z = N.forwardRef(function(t, c) {
154
+ const e = F(19);
155
+ let n, i, o, r, l;
156
+ e[0] !== t ? ({
157
+ title: l,
158
+ description: i,
159
+ icon: o,
160
+ children: n,
161
+ ...r
162
+ } = t, e[0] = t, e[1] = n, e[2] = i, e[3] = o, e[4] = r, e[5] = l) : (n = e[1], i = e[2], o = e[3], r = e[4], l = e[5]);
163
+ let s;
164
+ e[6] !== o ? (s = o && /* @__PURE__ */ u(L.Indicator, { children: o }), e[6] = o, e[7] = s) : s = e[7];
165
+ let a;
166
+ e[8] !== i || e[9] !== l ? (a = i ? /* @__PURE__ */ k($, { textAlign: "center", children: [
167
+ /* @__PURE__ */ u(L.Title, { fontWeight: "normal", children: l }),
168
+ /* @__PURE__ */ u(L.Description, { children: i })
169
+ ] }) : /* @__PURE__ */ u(L.Title, { fontWeight: "normal", children: l }), e[8] = i, e[9] = l, e[10] = a) : a = e[10];
170
+ let d;
171
+ e[11] !== n || e[12] !== s || e[13] !== a ? (d = /* @__PURE__ */ k(L.Content, { children: [
172
+ s,
173
+ a,
174
+ n
175
+ ] }), e[11] = n, e[12] = s, e[13] = a, e[14] = d) : d = e[14];
176
+ let f;
177
+ return e[15] !== c || e[16] !== r || e[17] !== d ? (f = /* @__PURE__ */ u(L.Root, { ref: c, ...r, children: d }), e[15] = c, e[16] = r, e[17] = d, e[18] = f) : f = e[18], f;
178
+ });
179
+ export {
180
+ G as A,
181
+ Q as D,
182
+ Z as E,
183
+ J as a
184
+ };
185
+ //# sourceMappingURL=empty-state-yGspgiPl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty-state-yGspgiPl.js","sources":["../src/components/alert.tsx","../src/components/diff-bubble.tsx","../src/components/diff-view-adapter.ts","../src/components/diff-editor.tsx","../src/components/empty-state.tsx"],"sourcesContent":["import { Alert as ChakraAlert } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface AlertProps extends Omit<ChakraAlert.RootProps, \"title\"> {\n startElement?: React.ReactNode;\n endElement?: React.ReactNode;\n title?: React.ReactNode;\n icon?: React.ReactElement;\n}\n\nexport const AlertMessage = React.forwardRef<HTMLDivElement, AlertProps>(function Alert(props, ref) {\n const { title, children, icon, startElement, endElement, ...rest } = props;\n return (\n <ChakraAlert.Root ref={ref} {...rest}>\n {startElement || <ChakraAlert.Indicator>{icon}</ChakraAlert.Indicator>}\n {children ? (\n <ChakraAlert.Content>\n <ChakraAlert.Title>{title}</ChakraAlert.Title>\n <ChakraAlert.Description>{children}</ChakraAlert.Description>\n </ChakraAlert.Content>\n ) : (\n <ChakraAlert.Title flex=\"1\">{title}</ChakraAlert.Title>\n )}\n {endElement}\n </ChakraAlert.Root>\n );\n});\n","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: onClick ? \"bg.muted\" : \"none\",\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":["AlertMessage","React","forwardRef","props","ref","$","_c","children","endElement","icon","rest","startElement","title","t0","jsx","ChakraAlert","t1","jsxs","t2","DiffBubble","fileName","additions","deletions","label","variant","size","onClick","onClickFileLink","undefined","isSmall","t3","t4","t5","t6","t7","background","t8","Span","e","stopPropagation","textDecoration","color","t9","t10","t11","t12","t13","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","Symbol","for","border","borderRadius","fontSize","DiffView","Box","EmptyState","description","ChakraEmptyState","VStack"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -34,8 +34,10 @@ export { PanelMenu } from './components/panel-menu';
34
34
  export type { PropertiesProps, PropertyItem } from './components/properties';
35
35
  export { Properties } from './components/properties';
36
36
  export { ScrollArea } from './components/scroll-area';
37
+ export type { SearchableMenuItem } from './components/searchable-menu';
38
+ export { SearchableMenu } from './components/searchable-menu';
37
39
  export type { SessionCompletionStatus } from './components/session-indicator';
38
- export { SessionIndicator } from './components/session-indicator';
40
+ export { resolveSessionIndicatorColor, resolveSessionIndicatorIcon, SessionIndicator, } from './components/session-indicator';
39
41
  export { SidebarNext } from './components/sidebar-next/sidebar-next';
40
42
  export { useSidebarNextStore } from './components/sidebar-next/sidebar-next.store';
41
43
  export type { SidebarNextProps } from './components/sidebar-next/sidebar-next.types';