@pstdio/ui 0.5.0 → 0.5.1
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/dist/{MermaidComponent-DwEDwpo2.js → MermaidComponent-x3aKzNXm.js} +2 -2
- package/dist/{MermaidComponent-DwEDwpo2.js.map → MermaidComponent-x3aKzNXm.js.map} +1 -1
- package/dist/chat-ui.js +1335 -870
- package/dist/chat-ui.js.map +1 -1
- package/dist/components/chat-ui/agent-types.d.ts +4 -0
- package/dist/components/chat-ui/components/chat-input-question-prompt.d.ts +33 -0
- package/dist/components/chat-ui/components/chat-input.d.ts +3 -1
- package/dist/components/chat-ui/components/chat-panel-sticky-user-message.d.ts +9 -0
- package/dist/components/chat-ui/components/chat-panel.d.ts +3 -1
- package/dist/components/chat-ui/components/message-parts-renderer.d.ts +1 -0
- package/dist/components/chat-ui/components/timeline-tool-blocks.d.ts +14 -0
- package/dist/components/chat-ui/components/timeline.d.ts +22 -0
- package/dist/components/chat-ui/components/tool-invocation-timeline.d.ts +2 -1
- package/dist/components/chat-ui/index.d.ts +1 -0
- package/dist/components/chat-ui/tool-rendering/build-timeline.d.ts +2 -2
- package/dist/components/chat-ui/tool-rendering/default-renderers.d.ts +2 -0
- package/dist/components/chat-ui/tool-rendering/question-renderer.d.ts +10 -0
- package/dist/components/chat-ui/tool-rendering/shared.d.ts +1 -1
- package/dist/components/chat-ui/tool-rendering/todowrite-renderer.d.ts +10 -0
- package/dist/components/chat-ui/utils/get-icon.d.ts +2 -0
- package/dist/components/chat-ui/utils/tool-name.d.ts +2 -0
- package/dist/components/radio.d.ts +8 -0
- package/dist/components/tickets/ticket-board.d.ts +6 -2
- package/dist/components/tickets/ticket-list.d.ts +3 -0
- package/dist/components/tickets/tickets-workspace.d.ts +2 -0
- package/dist/components/tickets/workspace-helpers.d.ts +6 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1593 -1524
- package/dist/index.js.map +1 -1
- package/dist/radio-C42qncrD.js +236 -0
- package/dist/radio-C42qncrD.js.map +1 -0
- package/dist/{rich-message-BVRk9BSD.js → rich-message-CoXTd5kw.js} +364 -355
- package/dist/rich-message-CoXTd5kw.js.map +1 -0
- package/dist/rich-text.js +2 -2
- package/dist/theme/recipes/button.d.ts +6 -0
- package/dist/{theme-D0VvFB1Y.js → theme-BLGUwVOD.js} +7 -1
- package/dist/theme-BLGUwVOD.js.map +1 -0
- package/dist/theme.js +1 -1
- package/package.json +1 -1
- package/dist/components/chat-ui/tool-rendering/todo-write-renderer.d.ts +0 -2
- package/dist/empty-state-yGspgiPl.js +0 -185
- package/dist/empty-state-yGspgiPl.js.map +0 -1
- package/dist/rich-message-BVRk9BSD.js.map +0 -1
- package/dist/theme-D0VvFB1Y.js.map +0 -1
|
@@ -103,6 +103,10 @@ export type SessionMessageInput = {
|
|
|
103
103
|
model?: string | null;
|
|
104
104
|
cwd?: string;
|
|
105
105
|
messageOffset?: number;
|
|
106
|
+
questionResponse?: QuestionResponse;
|
|
107
|
+
};
|
|
108
|
+
export type QuestionResponse = {
|
|
109
|
+
answers: string[][];
|
|
106
110
|
};
|
|
107
111
|
export type SessionMessagesInput = {
|
|
108
112
|
cwd?: string | null;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface ChatInputQuestionOption {
|
|
2
|
+
label: string;
|
|
3
|
+
description?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface ChatInputQuestion {
|
|
6
|
+
id?: string;
|
|
7
|
+
question: string;
|
|
8
|
+
options: ChatInputQuestionOption[];
|
|
9
|
+
multiple?: boolean;
|
|
10
|
+
required?: boolean;
|
|
11
|
+
allowCustomAnswer?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface ChatInputQuestionPrompt {
|
|
14
|
+
questions: ChatInputQuestion[];
|
|
15
|
+
}
|
|
16
|
+
export interface ChatInputQuestionResponse {
|
|
17
|
+
answers: string[][];
|
|
18
|
+
}
|
|
19
|
+
export type ChatInputQuestionCustomAnswers = Record<string, string>;
|
|
20
|
+
interface QuestionPromptControlsProps {
|
|
21
|
+
questionPrompt: ChatInputQuestionPrompt;
|
|
22
|
+
selectedOptionsByQuestion: Record<string, string[]>;
|
|
23
|
+
customAnswersByQuestion: ChatInputQuestionCustomAnswers;
|
|
24
|
+
onToggleOption: (question: ChatInputQuestion, questionIndex: number, optionLabel: string) => void;
|
|
25
|
+
onCustomAnswerChange: (question: ChatInputQuestion, questionIndex: number, answer: string) => void;
|
|
26
|
+
}
|
|
27
|
+
export declare const getQuestionSelectionKey: (question: ChatInputQuestion, index: number) => string;
|
|
28
|
+
export declare const getQuestionPromptSignature: (questionPrompt: ChatInputQuestionPrompt | undefined) => string;
|
|
29
|
+
export declare const buildQuestionResponse: (questionPrompt: ChatInputQuestionPrompt | undefined, selectedOptionsByQuestion: Record<string, string[]>, answerInput: ChatInputQuestionCustomAnswers | string) => string;
|
|
30
|
+
export declare const buildQuestionAnswerValues: (questionPrompt: ChatInputQuestionPrompt, selectedOptionsByQuestion: Record<string, string[]>, answerInput: ChatInputQuestionCustomAnswers | string) => string[][];
|
|
31
|
+
export declare const hasMissingRequiredQuestionAnswer: (questionPrompt: ChatInputQuestionPrompt | undefined, selectedOptionsByQuestion: Record<string, string[]>, answerInput: ChatInputQuestionCustomAnswers | string) => boolean;
|
|
32
|
+
export declare const QuestionPromptControls: (props: QuestionPromptControlsProps) => import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
export {};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
+
import { ChatInputQuestionPrompt, ChatInputQuestionResponse } from './chat-input-question-prompt';
|
|
2
3
|
interface ChatInputProps {
|
|
3
4
|
defaultState: string;
|
|
4
5
|
placeholder?: string;
|
|
5
|
-
onSubmit?: (text: string, attachments: string[]) => void;
|
|
6
|
+
onSubmit?: (text: string, attachments: string[], questionResponse?: ChatInputQuestionResponse) => void;
|
|
6
7
|
onInterrupt?: () => void;
|
|
7
8
|
streaming?: boolean;
|
|
8
9
|
attachedResources?: string[];
|
|
@@ -12,6 +13,7 @@ interface ChatInputProps {
|
|
|
12
13
|
attachmentList?: ReactNode;
|
|
13
14
|
actions?: ReactNode;
|
|
14
15
|
attachedToTop?: boolean;
|
|
16
|
+
questionPrompt?: ChatInputQuestionPrompt;
|
|
15
17
|
}
|
|
16
18
|
export declare const ChatInput: (props: ChatInputProps) => import("react/jsx-runtime").JSX.Element;
|
|
17
19
|
export {};
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import { SessionMessage } from './message-types';
|
|
2
2
|
export declare const STICKY_USER_MESSAGE_COLLAPSE_TEXT_THRESHOLD = 360;
|
|
3
|
+
export declare const STICKY_USER_MESSAGE_COLLAPSE_LINE_THRESHOLD = 4;
|
|
3
4
|
export declare const STICKY_USER_MESSAGE_COLLAPSED_MAX_HEIGHT = "min(10vh, 4rem)";
|
|
5
|
+
export declare const STICKY_USER_MESSAGE_EXPANDED_MAX_HEIGHT = "min(70dvh, calc(100dvh - 12rem), 22rem)";
|
|
6
|
+
interface StickyUserMessageScrollElement {
|
|
7
|
+
clientHeight: number;
|
|
8
|
+
scrollHeight: number;
|
|
9
|
+
scrollTop: number;
|
|
10
|
+
}
|
|
4
11
|
export declare const isStickyUserMessageCollapsible: (message: SessionMessage) => boolean;
|
|
12
|
+
export declare const shouldStopStickyUserMessageWheel: (element: StickyUserMessageScrollElement, deltaY: number) => boolean;
|
|
13
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
+
import { ChatInputQuestionPrompt, ChatInputQuestionResponse } from './chat-input-question-prompt';
|
|
2
3
|
import { SessionMessage } from './message-types';
|
|
3
4
|
interface ChatPanelProps {
|
|
4
5
|
messages: SessionMessage[];
|
|
@@ -9,7 +10,7 @@ interface ChatPanelProps {
|
|
|
9
10
|
loadingContent?: ReactNode;
|
|
10
11
|
chatInputPlaceholder: string;
|
|
11
12
|
chatInputDefaultValue?: string;
|
|
12
|
-
onSubmitMessage?: (text: string, attachments: string[]) => void;
|
|
13
|
+
onSubmitMessage?: (text: string, attachments: string[], questionResponse?: ChatInputQuestionResponse) => void;
|
|
13
14
|
onInterrupt?: () => void;
|
|
14
15
|
onChatInputChange?: (text: string) => void;
|
|
15
16
|
actions?: ReactNode;
|
|
@@ -21,6 +22,7 @@ interface ChatPanelProps {
|
|
|
21
22
|
workspaceHub?: ReactNode;
|
|
22
23
|
workspaceInitializing?: boolean;
|
|
23
24
|
inputDisabled?: boolean;
|
|
25
|
+
chatInputQuestionPrompt?: ChatInputQuestionPrompt;
|
|
24
26
|
}
|
|
25
27
|
export declare const ChatPanel: (props: ChatPanelProps) => import("react/jsx-runtime").JSX.Element;
|
|
26
28
|
export {};
|
|
@@ -5,6 +5,7 @@ type ToolInvocationTimelineComponent = (props: ToolInvocationTimelineProps) => R
|
|
|
5
5
|
export interface MessagePartsProps {
|
|
6
6
|
message: SessionMessage;
|
|
7
7
|
streaming?: boolean;
|
|
8
|
+
hideQuestionForms?: boolean;
|
|
8
9
|
onOpenFile?: (filePath: string) => void;
|
|
9
10
|
toolInvocationTimeline?: ToolInvocationTimelineComponent;
|
|
10
11
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { QuestionFormBlockQuestion, TodoListBlockItem } from './timeline';
|
|
2
|
+
interface QuestionFormBlockViewProps {
|
|
3
|
+
questions: QuestionFormBlockQuestion[];
|
|
4
|
+
editable?: boolean;
|
|
5
|
+
selectedOptionsByQuestion?: Record<string, string[]>;
|
|
6
|
+
customAnswersByQuestion?: Record<string, string>;
|
|
7
|
+
onToggleOption?: (question: QuestionFormBlockQuestion, questionIndex: number, optionLabel: string) => void;
|
|
8
|
+
onCustomAnswerChange?: (question: QuestionFormBlockQuestion, questionIndex: number, answer: string) => void;
|
|
9
|
+
}
|
|
10
|
+
export declare const TodoListBlockView: (props: {
|
|
11
|
+
items: TodoListBlockItem[];
|
|
12
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export declare const QuestionFormBlockView: (props: QuestionFormBlockViewProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -48,6 +48,22 @@ export type TitleSegment = {
|
|
|
48
48
|
muted?: boolean;
|
|
49
49
|
variant?: "default" | "bubble";
|
|
50
50
|
};
|
|
51
|
+
export type TodoListBlockItem = {
|
|
52
|
+
label: string;
|
|
53
|
+
checked: boolean;
|
|
54
|
+
};
|
|
55
|
+
export type QuestionFormBlockOption = {
|
|
56
|
+
label: string;
|
|
57
|
+
description?: string;
|
|
58
|
+
};
|
|
59
|
+
export type QuestionFormBlockQuestion = {
|
|
60
|
+
id?: string;
|
|
61
|
+
question: string;
|
|
62
|
+
options: QuestionFormBlockOption[];
|
|
63
|
+
multiple: boolean;
|
|
64
|
+
required: boolean;
|
|
65
|
+
allowCustomAnswer: boolean;
|
|
66
|
+
};
|
|
51
67
|
export type Block = {
|
|
52
68
|
type: "comment";
|
|
53
69
|
text: string;
|
|
@@ -71,6 +87,12 @@ export type Block = {
|
|
|
71
87
|
} | {
|
|
72
88
|
type: "text";
|
|
73
89
|
text: string;
|
|
90
|
+
} | {
|
|
91
|
+
type: "todo-list";
|
|
92
|
+
items: TodoListBlockItem[];
|
|
93
|
+
} | {
|
|
94
|
+
type: "question-form";
|
|
95
|
+
questions: QuestionFormBlockQuestion[];
|
|
74
96
|
} | {
|
|
75
97
|
type: "references";
|
|
76
98
|
references: string[];
|
|
@@ -2,6 +2,7 @@ import { ToolPart } from './message-types';
|
|
|
2
2
|
export interface ToolInvocationTimelineProps {
|
|
3
3
|
invocations: ToolPart[];
|
|
4
4
|
labeledBlocks?: boolean;
|
|
5
|
+
hideQuestionForms?: boolean;
|
|
5
6
|
onOpenFile?: (filePath: string) => void;
|
|
6
7
|
}
|
|
7
|
-
export declare function ToolInvocationTimeline(props: ToolInvocationTimelineProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare function ToolInvocationTimeline(props: ToolInvocationTimelineProps): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -7,6 +7,7 @@ export { ApprovalPrompt } from './components/approval-prompt';
|
|
|
7
7
|
export type { AutoScrollProps } from './components/auto-scroll';
|
|
8
8
|
export { AutoScroll } from './components/auto-scroll';
|
|
9
9
|
export { ChatInput } from './components/chat-input';
|
|
10
|
+
export type { ChatInputQuestionPrompt, ChatInputQuestionResponse } from './components/chat-input-question-prompt';
|
|
10
11
|
export { ChatPanel } from './components/chat-panel';
|
|
11
12
|
export { ChatSkeleton } from './components/chat-skeleton';
|
|
12
13
|
export type { SessionMessage, SessionMessagePart } from './components/message-types';
|
|
@@ -5,7 +5,7 @@ export declare const buildTimelineDocFromInvocations: (invocations: ToolPart[],
|
|
|
5
5
|
items: (import('../components/timeline').Item | {
|
|
6
6
|
indicator: {
|
|
7
7
|
readonly type: "icon";
|
|
8
|
-
readonly icon: "search" | "dot" | "file" | "shell" | "patch" | "ls" | "read_file" | "write_file" | "delete_file" | "upload_files" | "download_file" | "move_file" | "danger" | "browser" | "terminal";
|
|
8
|
+
readonly icon: "search" | "dot" | "file" | "shell" | "patch" | "ls" | "read_file" | "write_file" | "delete_file" | "upload_files" | "download_file" | "move_file" | "danger" | "browser" | "question" | "todo" | "terminal";
|
|
9
9
|
};
|
|
10
10
|
title: TitleSegment[];
|
|
11
11
|
blocks: Block[];
|
|
@@ -15,7 +15,7 @@ export declare const createToolTimelineBuilder: (toolRenderers: ToolRenderersMap
|
|
|
15
15
|
items: (import('../components/timeline').Item | {
|
|
16
16
|
indicator: {
|
|
17
17
|
readonly type: "icon";
|
|
18
|
-
readonly icon: "search" | "dot" | "file" | "shell" | "patch" | "ls" | "read_file" | "write_file" | "delete_file" | "upload_files" | "download_file" | "move_file" | "danger" | "browser" | "terminal";
|
|
18
|
+
readonly icon: "search" | "dot" | "file" | "shell" | "patch" | "ls" | "read_file" | "write_file" | "delete_file" | "upload_files" | "download_file" | "move_file" | "danger" | "browser" | "question" | "todo" | "terminal";
|
|
19
19
|
};
|
|
20
20
|
title: TitleSegment[];
|
|
21
21
|
blocks: Block[];
|
|
@@ -4,7 +4,9 @@ export declare const createDefaultToolRenderers: () => {
|
|
|
4
4
|
edit: import('./types').ToolRenderer;
|
|
5
5
|
glob: import('./types').ToolRenderer;
|
|
6
6
|
grep: import('./types').ToolRenderer;
|
|
7
|
+
question: import('./types').ToolRenderer;
|
|
7
8
|
read: import('./types').ToolRenderer;
|
|
8
9
|
skill: import('./types').ToolRenderer;
|
|
10
|
+
todo_write: import('./types').ToolRenderer;
|
|
9
11
|
todowrite: import('./types').ToolRenderer;
|
|
10
12
|
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ToolPart } from '../agent-types';
|
|
2
|
+
import { Block, Item, TitleSegment } from '../components/timeline';
|
|
3
|
+
import { ToolRenderer } from './types';
|
|
4
|
+
type QuestionRendererDependencies = {
|
|
5
|
+
buildBaseTitle: (invocation: ToolPart, detail?: string, labelOverride?: string) => TitleSegment[];
|
|
6
|
+
buildIndicator: (invocation: ToolPart) => Item["indicator"];
|
|
7
|
+
prependErrorBlock: (invocation: ToolPart, blocks: Block[]) => Block[];
|
|
8
|
+
};
|
|
9
|
+
export declare const createQuestionRenderer: (deps: QuestionRendererDependencies) => ToolRenderer;
|
|
10
|
+
export {};
|
|
@@ -15,7 +15,7 @@ export declare const getStateLabel: (invocation: ToolPart) => string | null;
|
|
|
15
15
|
export declare const isErrorState: (invocation: ToolPart) => boolean;
|
|
16
16
|
export declare const buildIndicator: (invocation: ToolPart) => {
|
|
17
17
|
readonly type: "icon";
|
|
18
|
-
readonly icon: "search" | "dot" | "file" | "shell" | "patch" | "ls" | "read_file" | "write_file" | "delete_file" | "upload_files" | "download_file" | "move_file" | "danger" | "browser" | "terminal";
|
|
18
|
+
readonly icon: "search" | "dot" | "file" | "shell" | "patch" | "ls" | "read_file" | "write_file" | "delete_file" | "upload_files" | "download_file" | "move_file" | "danger" | "browser" | "question" | "todo" | "terminal";
|
|
19
19
|
};
|
|
20
20
|
export declare const buildBaseTitle: (invocation: ToolPart, detail?: string, labelOverride?: string) => TitleSegment[];
|
|
21
21
|
export declare const getInputObject: (invocation: ToolPart) => Record<string, unknown> | null;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ToolPart } from '../agent-types';
|
|
2
|
+
import { Block, Item, TitleSegment } from '../components/timeline';
|
|
3
|
+
import { ToolRenderer } from './types';
|
|
4
|
+
type TodowriteRendererDependencies = {
|
|
5
|
+
buildBaseTitle: (invocation: ToolPart, detail?: string, labelOverride?: string) => TitleSegment[];
|
|
6
|
+
buildIndicator: (invocation: ToolPart) => Item["indicator"];
|
|
7
|
+
prependErrorBlock: (invocation: ToolPart, blocks: Block[]) => Block[];
|
|
8
|
+
};
|
|
9
|
+
export declare const createTodowriteRenderer: (deps: TodowriteRendererDependencies) => ToolRenderer;
|
|
10
|
+
export {};
|
|
@@ -25,6 +25,8 @@ declare const iconMap: {
|
|
|
25
25
|
readonly search: import('react').ForwardRefExoticComponent<Omit<import('lucide-react').LucideProps, "ref"> & import('react').RefAttributes<SVGSVGElement>>;
|
|
26
26
|
readonly browser: import('react').ForwardRefExoticComponent<Omit<import('lucide-react').LucideProps, "ref"> & import('react').RefAttributes<SVGSVGElement>>;
|
|
27
27
|
readonly file: import('react').ForwardRefExoticComponent<Omit<import('lucide-react').LucideProps, "ref"> & import('react').RefAttributes<SVGSVGElement>>;
|
|
28
|
+
readonly question: import('react').ForwardRefExoticComponent<Omit<import('lucide-react').LucideProps, "ref"> & import('react').RefAttributes<SVGSVGElement>>;
|
|
29
|
+
readonly todo: import('react').ForwardRefExoticComponent<Omit<import('lucide-react').LucideProps, "ref"> & import('react').RefAttributes<SVGSVGElement>>;
|
|
28
30
|
readonly terminal: import('react').ForwardRefExoticComponent<Omit<import('lucide-react').LucideProps, "ref"> & import('react').RefAttributes<SVGSVGElement>>;
|
|
29
31
|
};
|
|
30
32
|
export type IconName = keyof typeof iconMap;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RadioGroup as ChakraRadioGroup } from '@chakra-ui/react';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
export interface RadioProps extends ChakraRadioGroup.ItemProps {
|
|
4
|
+
rootRef?: React.RefObject<HTMLDivElement | null>;
|
|
5
|
+
inputProps?: React.InputHTMLAttributes<HTMLInputElement>;
|
|
6
|
+
}
|
|
7
|
+
export declare const Radio: React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<HTMLInputElement>>;
|
|
8
|
+
export declare const RadioGroup: React.ForwardRefExoticComponent<ChakraRadioGroup.RootProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -33,8 +33,12 @@ export interface TicketBoardColumn {
|
|
|
33
33
|
interface TicketBoardProps {
|
|
34
34
|
columns: TicketBoardColumn[];
|
|
35
35
|
selectedItemId?: string | null;
|
|
36
|
-
onMoveItem?: (itemId: string, targetColumnId: string
|
|
37
|
-
|
|
36
|
+
onMoveItem?: (itemId: string, targetColumnId: string, context?: {
|
|
37
|
+
beforeItemId?: string;
|
|
38
|
+
}) => void;
|
|
39
|
+
onMoveToGroup?: (itemId: string, targetGroupKey: string, context?: {
|
|
40
|
+
beforeItemId?: string;
|
|
41
|
+
}) => void;
|
|
38
42
|
onCreateStart?: (columnId: string) => void;
|
|
39
43
|
onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;
|
|
40
44
|
}
|
|
@@ -18,11 +18,14 @@ export interface TicketListItem {
|
|
|
18
18
|
onClick?: () => void;
|
|
19
19
|
onTagChange?: (tagName: string, newValue: string) => void;
|
|
20
20
|
contextMenuActions?: ResourceContextAction[];
|
|
21
|
+
draggable?: boolean;
|
|
22
|
+
onDropTicket?: (ticketId: string) => void;
|
|
21
23
|
}
|
|
22
24
|
interface TicketListProps {
|
|
23
25
|
items: TicketListItem[];
|
|
24
26
|
selectedItemId?: string | null;
|
|
25
27
|
onItemClick?: (item: TicketListItem) => void;
|
|
26
28
|
}
|
|
29
|
+
export declare const getTicketListIndentation: (depth: number) => string | undefined;
|
|
27
30
|
export declare const TicketList: (props: TicketListProps) => import("react/jsx-runtime").JSX.Element;
|
|
28
31
|
export {};
|
|
@@ -23,9 +23,11 @@ interface TicketsWorkspaceProps<TTicket extends WorkspaceTicket = WorkspaceTicke
|
|
|
23
23
|
onTagChange?: (ticketId: string, tagName: string, newValue: string) => void;
|
|
24
24
|
onMoveTicket?: (ticketId: string, targetColumnId: string, context?: {
|
|
25
25
|
columnGrouping: GroupingField;
|
|
26
|
+
beforeTicketId?: string;
|
|
26
27
|
}) => void;
|
|
27
28
|
onMoveToGroup?: (ticketId: string, targetGroupKey: string, context?: {
|
|
28
29
|
rowGrouping: GroupingField;
|
|
30
|
+
beforeTicketId?: string;
|
|
29
31
|
}) => void;
|
|
30
32
|
onCreateTicket?: (columnId: string) => void;
|
|
31
33
|
onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;
|
|
@@ -9,5 +9,10 @@ export declare const buildTagOptions: (tagDefinitions: WorkspaceTagDefinition[])
|
|
|
9
9
|
ordering: WorkspaceOption<OrderingField>[];
|
|
10
10
|
display: WorkspaceOption<DisplayProperty>[];
|
|
11
11
|
};
|
|
12
|
-
export declare const
|
|
12
|
+
export declare const orderGroupingOptions: <TValue extends string>(options: WorkspaceOption<TValue>[]) => WorkspaceOption<TValue>[];
|
|
13
|
+
export declare const resolveSubGroupingOptions: (options: WorkspaceOption<GroupingField>[], columnGrouping: GroupingField) => WorkspaceOption<GroupingField>[];
|
|
14
|
+
export declare const resolveListDropTargetColumnKey: (columnGrouping: GroupingField, placement?: {
|
|
15
|
+
columnKey?: string;
|
|
16
|
+
}) => string | undefined;
|
|
17
|
+
export declare const resolveKnownColumnKeys: (columnGrouping: GroupingField, knownColumnKeys: string[] | undefined, categories: WorkspaceFilterCategory[], filters?: FilterState) => string[] | undefined;
|
|
13
18
|
export declare const omitFilterCategory: (filters: FilterState, category: FilterCategory) => FilterState;
|
package/dist/index.d.ts
CHANGED
|
@@ -28,6 +28,8 @@ export type { OpenSourceNotice, OpenSourceNoticesScreenProps, } from './componen
|
|
|
28
28
|
export { OpenSourceNoticesScreen } from './components/open-source-notices-screen';
|
|
29
29
|
export type { PropertiesProps, PropertyItem } from './components/properties';
|
|
30
30
|
export { Properties } from './components/properties';
|
|
31
|
+
export type { RadioProps } from './components/radio';
|
|
32
|
+
export { Radio, RadioGroup } from './components/radio';
|
|
31
33
|
export type { ResourceContextAction } from './components/resource-context-menu';
|
|
32
34
|
export { ResourceContextMenu } from './components/resource-context-menu';
|
|
33
35
|
export { ScrollArea } from './components/scroll-area';
|