@excalidraw/math 0.18.0-c158187 → 0.18.0-c1dbbdf
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/dev/index.js +3 -3
- package/dist/dev/index.js.map +2 -2
- package/dist/prod/index.js +1 -1
- package/dist/types/common/debug.d.ts +21 -0
- package/dist/types/common/src/colors.d.ts +57 -40
- package/dist/types/common/src/constants.d.ts +4 -0
- package/dist/types/common/src/editorInterface.d.ts +1 -1
- package/dist/types/common/src/index.d.ts +1 -1
- package/dist/types/common/src/utils.d.ts +3 -5
- package/dist/types/element/src/Scene.d.ts +2 -0
- package/dist/types/element/src/arrows/focus.d.ts +27 -0
- package/dist/types/element/src/arrows/helpers.d.ts +5 -0
- package/dist/types/element/src/binding.d.ts +13 -8
- package/dist/types/element/src/collision.d.ts +4 -3
- package/dist/types/element/src/distribute.d.ts +2 -1
- package/dist/types/element/src/elbowArrow.d.ts +2 -0
- package/dist/types/element/src/index.d.ts +2 -0
- package/dist/types/element/src/linearElementEditor.d.ts +5 -0
- package/dist/types/element/src/mutateElement.d.ts +2 -0
- package/dist/types/element/src/types.d.ts +1 -1
- package/dist/types/element/src/utils.d.ts +5 -3
- package/dist/types/element/src/zindex.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +30 -27
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +20 -18
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +121 -109
- package/dist/types/excalidraw/actions/actionClipboard.d.ts +20 -18
- package/dist/types/excalidraw/actions/actionCropEditor.d.ts +10 -9
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +32 -27
- package/dist/types/excalidraw/actions/actionElementLink.d.ts +6 -9
- package/dist/types/excalidraw/actions/actionElementLock.d.ts +20 -18
- package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +10 -9
- package/dist/types/excalidraw/actions/actionExport.d.ts +42 -42
- package/dist/types/excalidraw/actions/actionFrame.d.ts +40 -36
- package/dist/types/excalidraw/actions/actionGroup.d.ts +20 -18
- package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +12 -9
- package/dist/types/excalidraw/actions/actionLink.d.ts +10 -9
- package/dist/types/excalidraw/actions/actionMenu.d.ts +6 -9
- package/dist/types/excalidraw/actions/actionProperties.d.ts +20 -18
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +10 -9
- package/dist/types/excalidraw/actions/actionStyles.d.ts +10 -9
- package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +172 -0
- package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +10 -9
- package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +172 -0
- package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +10 -9
- package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +6 -9
- package/dist/types/excalidraw/actions/actionToggleStats.d.ts +10 -9
- package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +10 -9
- package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +10 -9
- package/dist/types/excalidraw/actions/index.d.ts +2 -0
- package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
- package/dist/types/excalidraw/actions/types.d.ts +1 -1
- package/dist/types/excalidraw/appState.d.ts +9 -7
- package/dist/types/excalidraw/charts/charts.bar.d.ts +2 -0
- package/dist/types/excalidraw/charts/charts.constants.d.ts +48 -0
- package/dist/types/excalidraw/charts/charts.helpers.d.ts +32 -0
- package/dist/types/excalidraw/charts/charts.line.d.ts +2 -0
- package/dist/types/excalidraw/charts/charts.parse.d.ts +10 -0
- package/dist/types/excalidraw/charts/charts.radar.d.ts +2 -0
- package/dist/types/excalidraw/charts/charts.types.d.ts +18 -0
- package/dist/types/excalidraw/charts/index.d.ts +7 -0
- package/dist/types/excalidraw/clipboard.d.ts +4 -4
- package/dist/types/excalidraw/components/App.d.ts +10 -3
- package/dist/types/excalidraw/components/Card.d.ts +1 -2
- package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +0 -5
- package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +0 -1
- package/dist/types/excalidraw/components/CommandPalette/types.d.ts +1 -1
- package/dist/types/excalidraw/components/FilledButton.d.ts +1 -0
- package/dist/types/excalidraw/components/PasteChartDialog.d.ts +4 -5
- package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -1
- package/dist/types/excalidraw/components/TTDDialog/Chat/ChatHistoryMenu.d.ts +15 -0
- package/dist/types/excalidraw/components/TTDDialog/Chat/ChatInterface.d.ts +23 -0
- package/dist/types/excalidraw/components/TTDDialog/Chat/ChatMessage.d.ts +14 -0
- package/dist/types/excalidraw/components/TTDDialog/Chat/TTDChatPanel.d.ts +27 -0
- package/dist/types/excalidraw/components/TTDDialog/Chat/index.d.ts +3 -0
- package/dist/types/excalidraw/components/TTDDialog/Chat/useChatAgent.d.ts +8 -0
- package/dist/types/excalidraw/components/TTDDialog/CodeMirrorEditor.d.ts +11 -0
- package/dist/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +3 -2
- package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +13 -0
- package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +12 -28
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +3 -3
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +5 -1
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +13 -9
- package/dist/types/excalidraw/components/TTDDialog/TTDPreviewPanel.d.ts +9 -0
- package/dist/types/excalidraw/components/TTDDialog/TTDWelcomeMessage.d.ts +1 -0
- package/dist/types/excalidraw/components/TTDDialog/TextToDiagram.d.ts +9 -0
- package/dist/types/excalidraw/components/TTDDialog/common.d.ts +14 -13
- package/dist/types/excalidraw/components/TTDDialog/hooks/useChatManagement.d.ts +13 -0
- package/dist/types/excalidraw/components/TTDDialog/hooks/useMermaidRenderer.d.ts +14 -0
- package/dist/types/excalidraw/components/TTDDialog/hooks/useTextGeneration.d.ts +7 -0
- package/dist/types/excalidraw/components/TTDDialog/mermaid-lang-lite.d.ts +2 -0
- package/dist/types/excalidraw/components/TTDDialog/types.d.ts +95 -0
- package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +22 -0
- package/dist/types/excalidraw/components/TTDDialog/utils/TTDStreamFetch.d.ts +24 -0
- package/dist/types/excalidraw/components/TTDDialog/utils/chat.d.ts +10 -0
- package/dist/types/excalidraw/components/TTDDialog/utils/mermaidAutoFix.d.ts +1 -0
- package/dist/types/excalidraw/components/TTDDialog/utils/mermaidError.d.ts +10 -0
- package/dist/types/excalidraw/components/TTDDialog/utils/mermaidValidation.d.ts +1 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +30 -16
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +3 -2
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +11 -12
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCheckbox.d.ts +5 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +2 -1
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSub.d.ts +23 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubContent.d.ts +8 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubTrigger.d.ts +12 -0
- package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +1 -1
- package/dist/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +2 -0
- package/dist/types/excalidraw/components/icons.d.ts +11 -2
- package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +17 -0
- package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +23 -14
- package/dist/types/excalidraw/components/shapes.d.ts +74 -1
- package/dist/types/excalidraw/data/blob.d.ts +32 -30
- package/dist/types/excalidraw/data/json.d.ts +16 -15
- package/dist/types/excalidraw/errors.d.ts +14 -0
- package/dist/types/excalidraw/index.d.ts +4 -0
- package/dist/types/excalidraw/types.d.ts +24 -13
- package/dist/types/math/src/point.d.ts +6 -1
- package/dist/types/math/src/types.d.ts +25 -1
- package/package.json +2 -2
- package/dist/types/common/src/visualdebug.d.ts +0 -41
- package/dist/types/excalidraw/charts.d.ts +0 -27
|
@@ -89,10 +89,16 @@ declare class App extends React.Component<AppProps, AppState> {
|
|
|
89
89
|
lastPointerDownEvent: React.PointerEvent<HTMLElement> | null;
|
|
90
90
|
lastPointerUpEvent: React.PointerEvent<HTMLElement> | PointerEvent | null;
|
|
91
91
|
lastPointerMoveEvent: PointerEvent | null;
|
|
92
|
+
/** current frame pointer cords */
|
|
92
93
|
lastPointerMoveCoords: {
|
|
93
94
|
x: number;
|
|
94
95
|
y: number;
|
|
95
96
|
} | null;
|
|
97
|
+
/** previous frame pointer coords */
|
|
98
|
+
previousPointerMoveCoords: {
|
|
99
|
+
x: number;
|
|
100
|
+
y: number;
|
|
101
|
+
} | null;
|
|
96
102
|
lastViewportPosition: {
|
|
97
103
|
x: number;
|
|
98
104
|
y: number;
|
|
@@ -246,7 +252,9 @@ declare class App extends React.Component<AppProps, AppState> {
|
|
|
246
252
|
*/
|
|
247
253
|
getEffectiveGridSize: () => NullableGridSize;
|
|
248
254
|
private getHTMLIFrameElement;
|
|
249
|
-
private
|
|
255
|
+
private handleIframeLikeElementHover;
|
|
256
|
+
/** @returns true if iframe-like element click handled */
|
|
257
|
+
private handleIframeLikeCenterClick;
|
|
250
258
|
private isIframeLikeElementCenter;
|
|
251
259
|
private updateEmbedValidationStatus;
|
|
252
260
|
private updateEmbeddables;
|
|
@@ -452,7 +460,7 @@ declare class App extends React.Component<AppProps, AppState> {
|
|
|
452
460
|
private finishImageCropping;
|
|
453
461
|
private handleCanvasDoubleClick;
|
|
454
462
|
private getElementLinkAtPosition;
|
|
455
|
-
private
|
|
463
|
+
private handleElementLinkClick;
|
|
456
464
|
private getTopLayerFrameAtSceneCoords;
|
|
457
465
|
private handleCanvasPointerMove;
|
|
458
466
|
private handleEraser;
|
|
@@ -523,7 +531,6 @@ declare class App extends React.Component<AppProps, AppState> {
|
|
|
523
531
|
/** generally you should use `addNewImagesToImageCache()` directly if you need
|
|
524
532
|
* to render new images. This is just a failsafe */
|
|
525
533
|
private scheduleImageRefresh;
|
|
526
|
-
private updateBindingEnabledOnPointerMove;
|
|
527
534
|
private clearSelection;
|
|
528
535
|
private handleInteractiveCanvasRef;
|
|
529
536
|
private insertImages;
|
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
import type { ColorPickerType } from "./colorPickerUtils";
|
|
2
|
-
/**
|
|
3
|
-
* tries to keep the input color as-is if it's valid, making minimal adjustments
|
|
4
|
-
* (trimming whitespace or adding `#` to hex colors)
|
|
5
|
-
*/
|
|
6
|
-
export declare const normalizeInputColor: (color: string) => string | null;
|
|
7
2
|
export declare const ColorInput: ({ color, onChange, label, colorPickerType, placeholder, }: {
|
|
8
3
|
color: string;
|
|
9
4
|
onChange: (color: string) => void;
|
|
@@ -17,5 +17,4 @@ export type ActiveColorPickerSectionAtomType = "custom" | "baseColors" | "shades
|
|
|
17
17
|
export declare const activeColorPickerSectionAtom: import("jotai/vanilla/atom").PrimitiveAtom<ActiveColorPickerSectionAtomType> & {
|
|
18
18
|
init: ActiveColorPickerSectionAtomType;
|
|
19
19
|
};
|
|
20
|
-
export declare const isColorDark: (color: string, threshold?: number) => boolean;
|
|
21
20
|
export type ColorPickerType = "canvasBackground" | "elementBackground" | "elementStroke";
|
|
@@ -14,7 +14,7 @@ export type CommandPaletteItem = {
|
|
|
14
14
|
category: string;
|
|
15
15
|
order?: number;
|
|
16
16
|
predicate?: boolean | Action["predicate"];
|
|
17
|
-
shortcut?: string;
|
|
17
|
+
shortcut?: string | null;
|
|
18
18
|
/** if false, command will not show while in view mode */
|
|
19
19
|
viewMode?: boolean;
|
|
20
20
|
perform: (data: {
|
|
@@ -14,5 +14,6 @@ export type FilledButtonProps = {
|
|
|
14
14
|
className?: string;
|
|
15
15
|
fullWidth?: boolean;
|
|
16
16
|
icon?: React.ReactNode;
|
|
17
|
+
disabled?: boolean;
|
|
17
18
|
};
|
|
18
19
|
export declare const FilledButton: React.ForwardRefExoticComponent<FilledButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import React from "react";
|
|
2
1
|
import "./PasteChartDialog.scss";
|
|
3
|
-
import type {
|
|
4
|
-
export declare const PasteChartDialog: ({
|
|
5
|
-
|
|
2
|
+
import type { Spreadsheet } from "../charts";
|
|
3
|
+
export declare const PasteChartDialog: ({ data, rawText, onClose, }: {
|
|
4
|
+
data: Spreadsheet;
|
|
5
|
+
rawText: string;
|
|
6
6
|
onClose: () => void;
|
|
7
|
-
setAppState: React.Component<any, UIAppState>["setState"];
|
|
8
7
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { SavedChat } from "../types";
|
|
2
|
+
interface ChatHistoryMenuProps {
|
|
3
|
+
isOpen: boolean;
|
|
4
|
+
onToggle: () => void;
|
|
5
|
+
onClose: () => void;
|
|
6
|
+
onNewChat: () => void;
|
|
7
|
+
onRestoreChat: (chat: SavedChat) => void;
|
|
8
|
+
onDeleteChat: (chatId: string, event: React.MouseEvent) => void;
|
|
9
|
+
savedChats: SavedChat[];
|
|
10
|
+
activeSessionId: string;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
isNewChatBtnVisible?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare const ChatHistoryMenu: ({ isOpen, onToggle, onClose, onNewChat, onRestoreChat, onDeleteChat, isNewChatBtnVisible, savedChats, activeSessionId, disabled, }: ChatHistoryMenuProps) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { TChat, TTTDDialog } from "../types";
|
|
2
|
+
export declare const ChatInterface: ({ chatId, messages, currentPrompt, onPromptChange, onGenerate, isGenerating, rateLimits, onAbort, onMermaidTabClick, onAiRepairClick, onDeleteMessage, onInsertMessage, onRetry, renderWelcomeScreen, renderWarning, }: {
|
|
3
|
+
chatId: string;
|
|
4
|
+
messages: TChat.ChatMessage[];
|
|
5
|
+
currentPrompt: string;
|
|
6
|
+
onPromptChange: (prompt: string) => void;
|
|
7
|
+
onGenerate: TTTDDialog.OnGenerate;
|
|
8
|
+
isGenerating: boolean;
|
|
9
|
+
rateLimits?: {
|
|
10
|
+
rateLimit: number;
|
|
11
|
+
rateLimitRemaining: number;
|
|
12
|
+
} | null;
|
|
13
|
+
onViewAsMermaid?: () => void;
|
|
14
|
+
generatedResponse?: string | null;
|
|
15
|
+
onAbort?: () => void;
|
|
16
|
+
onMermaidTabClick?: (message: TChat.ChatMessage) => void;
|
|
17
|
+
onAiRepairClick?: (message: TChat.ChatMessage) => void;
|
|
18
|
+
onDeleteMessage?: (messageId: string) => void;
|
|
19
|
+
onInsertMessage?: (message: TChat.ChatMessage) => void;
|
|
20
|
+
onRetry?: (message: TChat.ChatMessage) => void;
|
|
21
|
+
renderWelcomeScreen?: TTTDDialog.renderWelcomeScreen;
|
|
22
|
+
renderWarning?: TTTDDialog.renderWarning;
|
|
23
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { TChat, TTTDDialog } from "../types";
|
|
3
|
+
export declare const ChatMessage: React.FC<{
|
|
4
|
+
message: TChat.ChatMessage;
|
|
5
|
+
onMermaidTabClick?: (message: TChat.ChatMessage) => void;
|
|
6
|
+
onAiRepairClick?: (message: TChat.ChatMessage) => void;
|
|
7
|
+
onDeleteMessage?: (messageId: string) => void;
|
|
8
|
+
onInsertMessage?: (message: TChat.ChatMessage) => void;
|
|
9
|
+
onRetry?: (message: TChat.ChatMessage) => void;
|
|
10
|
+
rateLimitRemaining?: number;
|
|
11
|
+
isLastMessage?: boolean;
|
|
12
|
+
renderWarning?: TTTDDialog.renderWarning;
|
|
13
|
+
allowFixingParseError?: boolean;
|
|
14
|
+
}>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { SavedChat, TChat, TTTDDialog } from "../types";
|
|
2
|
+
export declare const TTDChatPanel: ({ chatId, messages, currentPrompt, onPromptChange, onGenerate, isGenerating, generatedResponse, isMenuOpen, onMenuToggle, onMenuClose, onNewChat, onRestoreChat, onDeleteChat, savedChats, activeSessionId, onAbort, onMermaidTabClick, onAiRepairClick, onDeleteMessage, onInsertMessage, onRetry, onViewAsMermaid, renderWelcomeScreen, renderWarning, }: {
|
|
3
|
+
chatId: string;
|
|
4
|
+
messages: TChat.ChatMessage[];
|
|
5
|
+
currentPrompt: string;
|
|
6
|
+
onPromptChange: (prompt: string) => void;
|
|
7
|
+
onGenerate: TTTDDialog.OnGenerate;
|
|
8
|
+
isGenerating: boolean;
|
|
9
|
+
generatedResponse: string | null | undefined;
|
|
10
|
+
isMenuOpen: boolean;
|
|
11
|
+
onMenuToggle: () => void;
|
|
12
|
+
onMenuClose: () => void;
|
|
13
|
+
onNewChat: () => void;
|
|
14
|
+
onRestoreChat: (chat: SavedChat) => void;
|
|
15
|
+
onDeleteChat: (chatId: string, event: React.MouseEvent) => void;
|
|
16
|
+
savedChats: SavedChat[];
|
|
17
|
+
activeSessionId: string;
|
|
18
|
+
onAbort: () => void;
|
|
19
|
+
onMermaidTabClick: (message: TChat.ChatMessage) => void;
|
|
20
|
+
onAiRepairClick: (message: TChat.ChatMessage) => void;
|
|
21
|
+
onDeleteMessage: (messageId: string) => void;
|
|
22
|
+
onInsertMessage: (message: TChat.ChatMessage) => void;
|
|
23
|
+
onRetry?: (message: TChat.ChatMessage) => void;
|
|
24
|
+
onViewAsMermaid: () => void;
|
|
25
|
+
renderWelcomeScreen?: TTTDDialog.renderWelcomeScreen;
|
|
26
|
+
renderWarning?: TTTDDialog.renderWarning;
|
|
27
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const useChatAgent: () => {
|
|
2
|
+
addUserMessage: (content: string) => void;
|
|
3
|
+
addAssistantMessage: () => void;
|
|
4
|
+
setAssistantError: (errorMessage: string, errorType?: "parse" | "network" | "other", errorDetails?: Error | unknown) => void;
|
|
5
|
+
chatHistory: import("../types").TChat.ChatHistory;
|
|
6
|
+
setChatHistory: (args_0: import("../types").TChat.ChatHistory | ((prev: import("../types").TChat.ChatHistory) => import("../types").TChat.ChatHistory)) => void;
|
|
7
|
+
setLastRetryAttempt: () => void;
|
|
8
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Theme } from "@excalidraw/element/types";
|
|
2
|
+
export interface CodeMirrorEditorProps {
|
|
3
|
+
value: string;
|
|
4
|
+
onChange: (value: string) => void;
|
|
5
|
+
onKeyboardSubmit?: () => void;
|
|
6
|
+
placeholder?: string;
|
|
7
|
+
theme: Theme;
|
|
8
|
+
errorLine?: number | null;
|
|
9
|
+
}
|
|
10
|
+
declare const CodeMirrorEditor: ({ value, onChange, onKeyboardSubmit, placeholder, theme, errorLine, }: CodeMirrorEditorProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export default CodeMirrorEditor;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import "./MermaidToExcalidraw.scss";
|
|
2
|
-
import type { MermaidToExcalidrawLibProps } from "./
|
|
3
|
-
declare const MermaidToExcalidraw: ({ mermaidToExcalidrawLib, }: {
|
|
2
|
+
import type { MermaidToExcalidrawLibProps } from "./types";
|
|
3
|
+
declare const MermaidToExcalidraw: ({ mermaidToExcalidrawLib, isActive, }: {
|
|
4
4
|
mermaidToExcalidrawLib: MermaidToExcalidrawLibProps;
|
|
5
|
+
isActive?: boolean;
|
|
5
6
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
6
7
|
export default MermaidToExcalidraw;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { RateLimits, TChat } from "./types";
|
|
2
|
+
export declare const rateLimitsAtom: import("jotai/vanilla/atom").PrimitiveAtom<RateLimits | null> & {
|
|
3
|
+
init: RateLimits | null;
|
|
4
|
+
};
|
|
5
|
+
export declare const showPreviewAtom: import("jotai/vanilla/atom").PrimitiveAtom<boolean> & {
|
|
6
|
+
init: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare const errorAtom: import("jotai/vanilla/atom").PrimitiveAtom<Error | null> & {
|
|
9
|
+
init: Error | null;
|
|
10
|
+
};
|
|
11
|
+
export declare const chatHistoryAtom: import("jotai/vanilla/atom").PrimitiveAtom<TChat.ChatHistory> & {
|
|
12
|
+
init: TChat.ChatHistory;
|
|
13
|
+
};
|
|
@@ -1,29 +1,13 @@
|
|
|
1
1
|
import "./TTDDialog.scss";
|
|
2
|
-
type
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
} | {
|
|
15
|
-
__fallback: true;
|
|
16
|
-
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
17
|
-
/**
|
|
18
|
-
* Text to diagram (TTD) dialog
|
|
19
|
-
*/
|
|
20
|
-
export declare const TTDDialogBase: import("react").FC<({
|
|
21
|
-
tab: "text-to-diagram" | "mermaid";
|
|
22
|
-
} & ({
|
|
23
|
-
onTextSubmit(value: string): Promise<OnTestSubmitRetValue>;
|
|
24
|
-
} | {
|
|
25
|
-
__fallback: true;
|
|
26
|
-
})) & {
|
|
27
|
-
__fallback?: boolean;
|
|
28
|
-
}>;
|
|
29
|
-
export {};
|
|
2
|
+
import type { TTDPersistenceAdapter, TTTDDialog } from "./types";
|
|
3
|
+
export declare const TTDDialog: {
|
|
4
|
+
(props: {
|
|
5
|
+
onTextSubmit: TTTDDialog.onTextSubmit;
|
|
6
|
+
renderWelcomeScreen?: TTTDDialog.renderWelcomeScreen;
|
|
7
|
+
renderWarning?: TTTDDialog.renderWarning;
|
|
8
|
+
persistenceAdapter: TTDPersistenceAdapter;
|
|
9
|
+
} | {
|
|
10
|
+
__fallback: true;
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
12
|
+
WelcomeMessage: () => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { ChangeEventHandler } from "react";
|
|
2
1
|
interface TTDDialogInputProps {
|
|
3
2
|
input: string;
|
|
4
3
|
placeholder: string;
|
|
5
|
-
onChange:
|
|
4
|
+
onChange: (value: string) => void;
|
|
6
5
|
onKeyboardSubmit?: () => void;
|
|
6
|
+
errorLine?: number | null;
|
|
7
7
|
}
|
|
8
|
-
export declare const TTDDialogInput: ({ input, placeholder, onChange, onKeyboardSubmit, }: TTDDialogInputProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare const TTDDialogInput: ({ input, placeholder, onChange, onKeyboardSubmit, errorLine, }: TTDDialogInputProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
9
9
|
export {};
|
|
@@ -2,6 +2,10 @@ interface TTDDialogOutputProps {
|
|
|
2
2
|
error: Error | null;
|
|
3
3
|
canvasRef: React.RefObject<HTMLDivElement | null>;
|
|
4
4
|
loaded: boolean;
|
|
5
|
+
hideErrorDetails?: boolean;
|
|
6
|
+
sourceText?: string;
|
|
7
|
+
autoFixAvailable?: boolean;
|
|
8
|
+
onApplyAutoFix?: () => void;
|
|
5
9
|
}
|
|
6
|
-
export declare const TTDDialogOutput: ({ error, canvasRef, loaded, }: TTDDialogOutputProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export declare const TTDDialogOutput: ({ error, canvasRef, loaded, hideErrorDetails, sourceText, autoFixAvailable, onApplyAutoFix, }: TTDDialogOutputProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
11
|
export {};
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
|
-
|
|
2
|
+
export type TTDPanelAction = {
|
|
3
3
|
label: string;
|
|
4
|
+
action?: () => void;
|
|
5
|
+
icon?: ReactNode;
|
|
6
|
+
variant: "button" | "link" | "rateLimit";
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
className?: string;
|
|
9
|
+
};
|
|
10
|
+
interface TTDDialogPanelProps {
|
|
11
|
+
label?: string | ReactNode;
|
|
4
12
|
children: ReactNode;
|
|
5
|
-
|
|
6
|
-
label: string;
|
|
7
|
-
action: () => void;
|
|
8
|
-
icon?: ReactNode;
|
|
9
|
-
};
|
|
10
|
-
panelActionDisabled?: boolean;
|
|
13
|
+
panelActions?: TTDPanelAction[];
|
|
11
14
|
onTextSubmitInProgess?: boolean;
|
|
12
15
|
renderTopRight?: () => ReactNode;
|
|
13
16
|
renderSubmitShortcut?: () => ReactNode;
|
|
14
|
-
|
|
17
|
+
className?: string;
|
|
18
|
+
panelActionJustifyContent?: "flex-start" | "flex-end" | "center" | "space-between" | "space-around" | "space-evenly";
|
|
15
19
|
}
|
|
16
|
-
export declare const TTDDialogPanel: ({ label, children,
|
|
20
|
+
export declare const TTDDialogPanel: ({ label, children, panelActions, onTextSubmitInProgess, renderTopRight, renderSubmitShortcut, className, panelActionJustifyContent, }: TTDDialogPanelProps) => import("react/jsx-runtime").JSX.Element;
|
|
17
21
|
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface TTDPreviewPanelProps {
|
|
2
|
+
canvasRef: React.RefObject<HTMLDivElement | null>;
|
|
3
|
+
error: Error | null;
|
|
4
|
+
loaded: boolean;
|
|
5
|
+
onInsert: () => void;
|
|
6
|
+
hideErrorDetails?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare const TTDPreviewPanel: ({ canvasRef, error, loaded, onInsert, hideErrorDetails, }: TTDPreviewPanelProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const TTDWelcomeMessage: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { MermaidToExcalidrawLibProps, TTDPersistenceAdapter, TTTDDialog } from "./types";
|
|
2
|
+
export declare const TextToDiagram: ({ mermaidToExcalidrawLib, onTextSubmit, renderWelcomeScreen, renderWarning, persistenceAdapter, }: {
|
|
3
|
+
mermaidToExcalidrawLib: MermaidToExcalidrawLibProps;
|
|
4
|
+
onTextSubmit(props: TTTDDialog.OnTextSubmitProps): Promise<TTTDDialog.OnTextSubmitRetValue>;
|
|
5
|
+
renderWelcomeScreen?: TTTDDialog.renderWelcomeScreen;
|
|
6
|
+
renderWarning?: TTTDDialog.renderWarning;
|
|
7
|
+
persistenceAdapter: TTDPersistenceAdapter;
|
|
8
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export default TextToDiagram;
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
import type { NonDeletedExcalidrawElement } from "@excalidraw/element/types";
|
|
1
|
+
import type { NonDeletedExcalidrawElement, Theme } from "@excalidraw/element/types";
|
|
2
|
+
import type { MermaidToExcalidrawLibProps } from "./types";
|
|
4
3
|
import type { AppClassProperties, BinaryFiles } from "../../types";
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
interface ConvertMermaidToExcalidrawFormatProps {
|
|
4
|
+
export declare const resetPreview: ({ canvasRef, setError, }: {
|
|
5
|
+
canvasRef: React.RefObject<HTMLDivElement | null>;
|
|
6
|
+
setError: (error: Error | null) => void;
|
|
7
|
+
}) => void;
|
|
8
|
+
export declare const convertMermaidToExcalidraw: ({ canvasRef, mermaidToExcalidrawLib, mermaidDefinition, setError, data, theme, }: {
|
|
12
9
|
canvasRef: React.RefObject<HTMLDivElement | null>;
|
|
13
10
|
mermaidToExcalidrawLib: MermaidToExcalidrawLibProps;
|
|
14
11
|
mermaidDefinition: string;
|
|
@@ -17,8 +14,13 @@ interface ConvertMermaidToExcalidrawFormatProps {
|
|
|
17
14
|
elements: readonly NonDeletedExcalidrawElement[];
|
|
18
15
|
files: BinaryFiles | null;
|
|
19
16
|
}>;
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
theme: Theme;
|
|
18
|
+
}) => Promise<{
|
|
19
|
+
success: true;
|
|
20
|
+
} | {
|
|
21
|
+
success: false;
|
|
22
|
+
error?: Error;
|
|
23
|
+
}>;
|
|
22
24
|
export declare const saveMermaidDataToStorage: (mermaidDefinition: string) => void;
|
|
23
25
|
export declare const insertToEditor: ({ app, data, text, shouldSaveMermaidDataToStorage, }: {
|
|
24
26
|
app: AppClassProperties;
|
|
@@ -29,4 +31,3 @@ export declare const insertToEditor: ({ app, data, text, shouldSaveMermaidDataTo
|
|
|
29
31
|
text?: string;
|
|
30
32
|
shouldSaveMermaidDataToStorage?: boolean;
|
|
31
33
|
}) => void;
|
|
32
|
-
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SavedChat, TTDPersistenceAdapter } from "../types";
|
|
2
|
+
interface UseChatManagementProps {
|
|
3
|
+
persistenceAdapter: TTDPersistenceAdapter;
|
|
4
|
+
}
|
|
5
|
+
export declare const useChatManagement: ({ persistenceAdapter, }: UseChatManagementProps) => {
|
|
6
|
+
isMenuOpen: boolean;
|
|
7
|
+
onRestoreChat: (chat: SavedChat) => void;
|
|
8
|
+
handleDeleteChat: (chatId: string, event: React.MouseEvent) => Promise<void>;
|
|
9
|
+
handleNewChat: () => Promise<void>;
|
|
10
|
+
handleMenuToggle: () => void;
|
|
11
|
+
handleMenuClose: () => void;
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { NonDeletedExcalidrawElement } from "@excalidraw/element/types";
|
|
2
|
+
import type { BinaryFiles } from "../../../types";
|
|
3
|
+
import type { MermaidToExcalidrawLibProps } from "../types";
|
|
4
|
+
interface UseMermaidRendererProps {
|
|
5
|
+
mermaidToExcalidrawLib: MermaidToExcalidrawLibProps;
|
|
6
|
+
canvasRef: React.RefObject<HTMLDivElement | null>;
|
|
7
|
+
}
|
|
8
|
+
export declare const useMermaidRenderer: ({ mermaidToExcalidrawLib, canvasRef, }: UseMermaidRendererProps) => {
|
|
9
|
+
data: import("react").RefObject<{
|
|
10
|
+
elements: readonly NonDeletedExcalidrawElement[];
|
|
11
|
+
files: BinaryFiles | null;
|
|
12
|
+
}>;
|
|
13
|
+
};
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { TTTDDialog } from "../types";
|
|
2
|
+
export declare const useTextGeneration: ({ onTextSubmit, }: {
|
|
3
|
+
onTextSubmit: (props: TTTDDialog.OnTextSubmitProps) => Promise<TTTDDialog.OnTextSubmitRetValue>;
|
|
4
|
+
}) => {
|
|
5
|
+
onGenerate: TTTDDialog.OnGenerate;
|
|
6
|
+
handleAbort: () => void;
|
|
7
|
+
};
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import type { RequestError } from "@excalidraw/excalidraw/errors";
|
|
2
|
+
import type { NonDeletedExcalidrawElement } from "@excalidraw/element/types";
|
|
3
|
+
import type { MermaidConfig } from "@excalidraw/mermaid-to-excalidraw";
|
|
4
|
+
import type { MermaidToExcalidrawResult } from "@excalidraw/mermaid-to-excalidraw/dist/interfaces";
|
|
5
|
+
import type { BinaryFiles } from "../../types";
|
|
6
|
+
export type LLMMessage = {
|
|
7
|
+
role: "user" | "assistant";
|
|
8
|
+
content: string;
|
|
9
|
+
};
|
|
10
|
+
export type MermaidData = {
|
|
11
|
+
elements: readonly NonDeletedExcalidrawElement[];
|
|
12
|
+
files: BinaryFiles | null;
|
|
13
|
+
};
|
|
14
|
+
export interface RateLimits {
|
|
15
|
+
rateLimit: number;
|
|
16
|
+
rateLimitRemaining: number;
|
|
17
|
+
}
|
|
18
|
+
export declare namespace TChat {
|
|
19
|
+
type ChatMessage = {
|
|
20
|
+
id: string;
|
|
21
|
+
timestamp: Date;
|
|
22
|
+
isGenerating?: boolean;
|
|
23
|
+
error?: string;
|
|
24
|
+
errorDetails?: string;
|
|
25
|
+
errorType?: "parse" | "network" | "other";
|
|
26
|
+
lastAttemptAt?: number;
|
|
27
|
+
type: "user" | "assistant" | "warning";
|
|
28
|
+
warningType?: /* daily rate limit */ "messageLimitExceeded" | /* general 429 */ "rateLimitExceeded";
|
|
29
|
+
content?: string;
|
|
30
|
+
};
|
|
31
|
+
type ChatHistory = {
|
|
32
|
+
id: string;
|
|
33
|
+
messages: ChatMessage[];
|
|
34
|
+
currentPrompt: string;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export interface SavedChat {
|
|
38
|
+
id: string;
|
|
39
|
+
title: string;
|
|
40
|
+
messages: TChat.ChatMessage[];
|
|
41
|
+
currentPrompt: string;
|
|
42
|
+
timestamp: number;
|
|
43
|
+
}
|
|
44
|
+
export type SavedChats = SavedChat[];
|
|
45
|
+
/**
|
|
46
|
+
* Interface for TTD chat persistence. Preferably should be stable
|
|
47
|
+
* (e.g. static class/singleton)
|
|
48
|
+
*/
|
|
49
|
+
export interface TTDPersistenceAdapter {
|
|
50
|
+
/**
|
|
51
|
+
* Load saved chats from storage.
|
|
52
|
+
*/
|
|
53
|
+
loadChats(): Promise<SavedChats>;
|
|
54
|
+
/**
|
|
55
|
+
* Save chats to storage.
|
|
56
|
+
*/
|
|
57
|
+
saveChats(chats: SavedChats): Promise<void>;
|
|
58
|
+
}
|
|
59
|
+
export interface MermaidToExcalidrawLibProps {
|
|
60
|
+
loaded: boolean;
|
|
61
|
+
api: Promise<{
|
|
62
|
+
parseMermaidToExcalidraw: (definition: string, config?: MermaidConfig) => Promise<MermaidToExcalidrawResult>;
|
|
63
|
+
}>;
|
|
64
|
+
}
|
|
65
|
+
export declare namespace TTTDDialog {
|
|
66
|
+
type OnGenerate = (opts: {
|
|
67
|
+
prompt: string;
|
|
68
|
+
isRepairFlow?: boolean;
|
|
69
|
+
}) => Promise<void>;
|
|
70
|
+
type OnTextSubmitProps = {
|
|
71
|
+
messages: LLMMessage[];
|
|
72
|
+
onChunk?: (chunk: string) => void;
|
|
73
|
+
onStreamCreated?: () => void;
|
|
74
|
+
signal?: AbortSignal;
|
|
75
|
+
};
|
|
76
|
+
type OnTextSubmitRetValue = {
|
|
77
|
+
rateLimit?: number | null;
|
|
78
|
+
rateLimitRemaining?: number | null;
|
|
79
|
+
} & ({
|
|
80
|
+
generatedResponse: string;
|
|
81
|
+
error: null;
|
|
82
|
+
} | {
|
|
83
|
+
error: RequestError;
|
|
84
|
+
generatedResponse?: null;
|
|
85
|
+
});
|
|
86
|
+
type onTextSubmit = (props: OnTextSubmitProps) => Promise<OnTextSubmitRetValue>;
|
|
87
|
+
/**
|
|
88
|
+
* return undefined to use default rendering
|
|
89
|
+
*/
|
|
90
|
+
type renderWarning = (chatMessage: TChat.ChatMessage) => React.ReactNode | undefined;
|
|
91
|
+
type renderWelcomeScreen = (props: {
|
|
92
|
+
/** null if not rate limit data currently available */
|
|
93
|
+
rateLimits: RateLimits | null;
|
|
94
|
+
}) => React.ReactNode | undefined;
|
|
95
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { SavedChat, SavedChats, TTDPersistenceAdapter } from "./types";
|
|
2
|
+
interface UseTTDChatStorageProps {
|
|
3
|
+
persistenceAdapter: TTDPersistenceAdapter;
|
|
4
|
+
}
|
|
5
|
+
interface UseTTDChatStorageReturn {
|
|
6
|
+
savedChats: SavedChats;
|
|
7
|
+
saveCurrentChat: () => Promise<void>;
|
|
8
|
+
deleteChat: (chatId: string) => Promise<SavedChats>;
|
|
9
|
+
restoreChat: (chat: SavedChat) => SavedChat;
|
|
10
|
+
createNewChatId: () => Promise<string>;
|
|
11
|
+
}
|
|
12
|
+
export declare const savedChatsAtom: import("jotai/vanilla/atom").PrimitiveAtom<SavedChats> & {
|
|
13
|
+
init: SavedChats;
|
|
14
|
+
};
|
|
15
|
+
export declare const isLoadingChatsAtom: import("jotai/vanilla/atom").PrimitiveAtom<boolean> & {
|
|
16
|
+
init: boolean;
|
|
17
|
+
};
|
|
18
|
+
export declare const chatsLoadedAtom: import("jotai/vanilla/atom").PrimitiveAtom<boolean> & {
|
|
19
|
+
init: boolean;
|
|
20
|
+
};
|
|
21
|
+
export declare const useTTDChatStorage: ({ persistenceAdapter, }: UseTTDChatStorageProps) => UseTTDChatStorageReturn;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { LLMMessage, TTTDDialog } from "@excalidraw/excalidraw/components/TTDDialog/types";
|
|
2
|
+
interface StreamingOptions {
|
|
3
|
+
url: string;
|
|
4
|
+
messages: readonly LLMMessage[];
|
|
5
|
+
onChunk?: (chunk: string) => void;
|
|
6
|
+
extractRateLimits?: boolean;
|
|
7
|
+
signal?: AbortSignal;
|
|
8
|
+
onStreamCreated?: () => void;
|
|
9
|
+
}
|
|
10
|
+
export type StreamChunk = {
|
|
11
|
+
type: "content";
|
|
12
|
+
delta: string;
|
|
13
|
+
} | {
|
|
14
|
+
type: "done";
|
|
15
|
+
finishReason: "stop" | "length" | "content_filter" | "tool_calls" | null;
|
|
16
|
+
} | {
|
|
17
|
+
type: "error";
|
|
18
|
+
error: {
|
|
19
|
+
message: string;
|
|
20
|
+
status?: number;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
export declare function TTDStreamFetch(options: StreamingOptions): Promise<TTTDDialog.OnTextSubmitRetValue>;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { LLMMessage, TChat } from "../types";
|
|
2
|
+
export declare const updateAssistantContent: (chatHistory: TChat.ChatHistory, payload: Partial<TChat.ChatMessage>) => TChat.ChatHistory;
|
|
3
|
+
export declare const getLastAssistantMessage: (chatHistory: TChat.ChatHistory) => TChat.ChatMessage;
|
|
4
|
+
export declare const addMessages: (chatHistory: TChat.ChatHistory, messages: Array<Omit<TChat.ChatMessage, "id" | "timestamp">>) => {
|
|
5
|
+
messages: TChat.ChatMessage[];
|
|
6
|
+
id: string;
|
|
7
|
+
currentPrompt: string;
|
|
8
|
+
};
|
|
9
|
+
export declare const removeLastAssistantMessage: (chatHistory: TChat.ChatHistory) => TChat.ChatHistory;
|
|
10
|
+
export declare const getMessagesForLLM: (chatHistory: TChat.ChatHistory) => LLMMessage[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getMermaidAutoFixCandidates: (sourceText: string, errorMessage: string) => string[];
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const isMermaidParseSyntaxError: (message: string) => boolean;
|
|
2
|
+
export declare const isMermaidAutoFixableError: (message: string) => boolean;
|
|
3
|
+
export declare const isMermaidCaretLine: (line: string) => boolean;
|
|
4
|
+
export declare const getMermaidInactiveParticipant: (message: string) => string | null;
|
|
5
|
+
export declare const getMermaidErrorLineNumber: (message: string, sourceText?: string) => number | null;
|
|
6
|
+
export declare const getMermaidSyntaxErrorGuidance: (message: string, sourceText?: string) => {
|
|
7
|
+
summary: string;
|
|
8
|
+
likelyCauses: string[];
|
|
9
|
+
} | null;
|
|
10
|
+
export declare const formatMermaidParseErrorMessage: (message: string) => string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const isValidMermaidSyntax: (content: string) => boolean;
|