@promptbook/editable 0.102.0-12 → 0.102.0-16
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/esm/index.es.js +11 -2
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/_packages/components.index.d.ts +2 -0
- package/esm/typings/src/_packages/utils.index.d.ts +2 -0
- package/esm/typings/src/book-components/Chat/Chat/ChatMessageItem.d.ts +5 -1
- package/esm/typings/src/book-components/Chat/Chat/ChatProps.d.ts +4 -0
- package/esm/typings/src/book-components/Chat/save/_common/ChatSaveFormatDefinition.d.ts +43 -5
- package/esm/typings/src/book-components/Chat/save/html/htmlSaveFormatDefinition.d.ts +6 -2
- package/esm/typings/src/book-components/Chat/save/index.d.ts +38 -8
- package/esm/typings/src/book-components/Chat/save/json/jsonSaveFormatDefinition.d.ts +6 -2
- package/esm/typings/src/book-components/Chat/save/markdown/mdSaveFormatDefinition.d.ts +5 -1
- package/esm/typings/src/book-components/Chat/save/pdf/pdfSaveFormatDefinition.d.ts +6 -2
- package/esm/typings/src/book-components/Chat/save/react/reactSaveFormatDefinition.d.ts +16 -0
- package/esm/typings/src/book-components/Chat/save/text/txtSaveFormatDefinition.d.ts +5 -1
- package/esm/typings/src/utils/color/Color.d.ts +7 -0
- package/esm/typings/src/utils/serialization/serializeToPromptbookJavascript.d.ts +22 -0
- package/esm/typings/src/version.d.ts +1 -1
- package/package.json +2 -2
- package/umd/index.umd.js +11 -2
- package/umd/index.umd.js.map +1 -1
@@ -25,11 +25,15 @@ type ChatMessageItemProps = Pick<ChatProps, 'onMessage' | 'participants'> & {
|
|
25
25
|
* Enables the feedback (rating) UI for this message bubble.
|
26
26
|
*/
|
27
27
|
isFeedbackEnabled?: boolean;
|
28
|
+
/**
|
29
|
+
* Called when the copy button is pressed.
|
30
|
+
*/
|
31
|
+
onCopy?: () => void;
|
28
32
|
};
|
29
33
|
/**
|
30
34
|
* Renders a single chat message item with avatar, content, buttons, and rating.
|
31
35
|
*
|
32
36
|
* @private internal subcomponent of `<Chat>` component
|
33
37
|
*/
|
34
|
-
export declare const ChatMessageItem: import("react").MemoExoticComponent<({ message, participant, participants, isLastMessage, onMessage, setExpandedMessageId, isExpanded, currentRating, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, }: ChatMessageItemProps) => import("react/jsx-runtime").JSX.Element>;
|
38
|
+
export declare const ChatMessageItem: import("react").MemoExoticComponent<({ message, participant, participants, isLastMessage, onMessage, setExpandedMessageId, isExpanded, currentRating, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, onCopy, }: ChatMessageItemProps) => import("react/jsx-runtime").JSX.Element>;
|
35
39
|
export {};
|
@@ -1,13 +1,51 @@
|
|
1
|
+
import type { Promisable } from 'type-fest';
|
1
2
|
import type { string_file_extension, string_mime_type } from '../../../../types/typeAliases';
|
2
3
|
import type { ChatMessage } from '../../types/ChatMessage';
|
4
|
+
import { ChatParticipant } from '../../types/ChatParticipant';
|
3
5
|
/**
|
4
6
|
* Plugin contract for chat export formatNames
|
7
|
+
*
|
5
8
|
* @public exported from `@promptbook/components`
|
6
9
|
*/
|
7
10
|
export type ChatSaveFormatDefinition = {
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
11
|
+
/**
|
12
|
+
* A unique name for the format (e.g. 'json', 'txt', 'md', 'html', 'pdf', etc.)
|
13
|
+
*/
|
14
|
+
readonly formatName: string_file_extension | string_mime_type | string;
|
15
|
+
/**
|
16
|
+
* A human-readable label for the format (e.g. 'JSON', 'Plain Text', 'Markdown', 'HTML', 'PDF', etc.) shown in UI
|
17
|
+
*/
|
18
|
+
readonly label: string;
|
19
|
+
/**
|
20
|
+
* MIME type (e.g. 'application/json', 'text/plain', 'text/markdown', 'text/html', 'application/pdf', etc.)
|
21
|
+
*/
|
22
|
+
readonly mimeType: string;
|
23
|
+
/**
|
24
|
+
* File extension without leading dot (e.g. 'json', 'txt', 'md', 'html', 'pdf', etc.)
|
25
|
+
*/
|
26
|
+
readonly fileExtension: string;
|
27
|
+
/**
|
28
|
+
* The function that generates the content of the file to be saved
|
29
|
+
*/
|
30
|
+
getContent(chatExportData: ChatExportData): Promisable<string>;
|
13
31
|
};
|
32
|
+
/**
|
33
|
+
* Plugin contract for the data passed to `ChatSaveFormatDefinition.getContent()`
|
34
|
+
*
|
35
|
+
* @public exported from `@promptbook/components`
|
36
|
+
*/
|
37
|
+
type ChatExportData = {
|
38
|
+
/**
|
39
|
+
* The title of the chat (used for file naming, etc.)
|
40
|
+
*/
|
41
|
+
readonly title: string;
|
42
|
+
/**
|
43
|
+
* The chat messages to be exported
|
44
|
+
*/
|
45
|
+
readonly messages: ReadonlyArray<ChatMessage>;
|
46
|
+
/**
|
47
|
+
* The participants in the chat
|
48
|
+
*/
|
49
|
+
readonly participants: ReadonlyArray<ChatParticipant>;
|
50
|
+
};
|
51
|
+
export {};
|
@@ -5,8 +5,12 @@
|
|
5
5
|
*/
|
6
6
|
export declare const htmlSaveFormatDefinition: {
|
7
7
|
readonly formatName: "html";
|
8
|
-
readonly label: "
|
9
|
-
readonly getContent: (messages:
|
8
|
+
readonly label: "Html";
|
9
|
+
readonly getContent: ({ messages }: {
|
10
|
+
readonly title: string;
|
11
|
+
readonly messages: readonly import("../../types/ChatMessage").ChatMessage[];
|
12
|
+
readonly participants: readonly import("../../types/ChatParticipant").ChatParticipant[];
|
13
|
+
}) => string;
|
10
14
|
readonly mimeType: "text/html";
|
11
15
|
readonly fileExtension: "html";
|
12
16
|
};
|
@@ -5,32 +5,62 @@
|
|
5
5
|
*/
|
6
6
|
export declare const CHAT_SAVE_FORMATS: readonly [{
|
7
7
|
readonly formatName: "json";
|
8
|
-
readonly label: "
|
9
|
-
readonly getContent: (messages:
|
8
|
+
readonly label: "Json";
|
9
|
+
readonly getContent: ({ messages }: {
|
10
|
+
readonly title: string;
|
11
|
+
readonly messages: readonly import("../types/ChatMessage").ChatMessage[];
|
12
|
+
readonly participants: readonly import("../types/ChatParticipant").ChatParticipant[];
|
13
|
+
}) => string;
|
10
14
|
readonly mimeType: "application/json";
|
11
15
|
readonly fileExtension: "json";
|
12
16
|
}, {
|
13
17
|
readonly formatName: "txt";
|
14
18
|
readonly label: "Plain Text";
|
15
|
-
readonly getContent: (messages:
|
19
|
+
readonly getContent: ({ messages }: {
|
20
|
+
readonly title: string;
|
21
|
+
readonly messages: readonly import("../types/ChatMessage").ChatMessage[];
|
22
|
+
readonly participants: readonly import("../types/ChatParticipant").ChatParticipant[];
|
23
|
+
}) => string;
|
16
24
|
readonly mimeType: "text/plain";
|
17
25
|
readonly fileExtension: "txt";
|
18
26
|
}, {
|
19
27
|
readonly formatName: "md";
|
20
28
|
readonly label: "Markdown";
|
21
|
-
readonly getContent: (messages:
|
29
|
+
readonly getContent: ({ messages }: {
|
30
|
+
readonly title: string;
|
31
|
+
readonly messages: readonly import("../types/ChatMessage").ChatMessage[];
|
32
|
+
readonly participants: readonly import("../types/ChatParticipant").ChatParticipant[];
|
33
|
+
}) => string;
|
22
34
|
readonly mimeType: "text/markdown";
|
23
35
|
readonly fileExtension: "md";
|
24
36
|
}, {
|
25
37
|
readonly formatName: "html";
|
26
|
-
readonly label: "
|
27
|
-
readonly getContent: (messages:
|
38
|
+
readonly label: "Html";
|
39
|
+
readonly getContent: ({ messages }: {
|
40
|
+
readonly title: string;
|
41
|
+
readonly messages: readonly import("../types/ChatMessage").ChatMessage[];
|
42
|
+
readonly participants: readonly import("../types/ChatParticipant").ChatParticipant[];
|
43
|
+
}) => string;
|
28
44
|
readonly mimeType: "text/html";
|
29
45
|
readonly fileExtension: "html";
|
46
|
+
}, {
|
47
|
+
readonly formatName: "jsx";
|
48
|
+
readonly label: "React";
|
49
|
+
readonly getContent: (chatExportData: {
|
50
|
+
readonly title: string;
|
51
|
+
readonly messages: readonly import("../types/ChatMessage").ChatMessage[];
|
52
|
+
readonly participants: readonly import("../types/ChatParticipant").ChatParticipant[];
|
53
|
+
}) => string;
|
54
|
+
readonly mimeType: "application/javascript";
|
55
|
+
readonly fileExtension: "jsx";
|
30
56
|
}, {
|
31
57
|
readonly formatName: "pdf";
|
32
|
-
readonly label: "
|
33
|
-
readonly getContent: (
|
58
|
+
readonly label: "Pdf";
|
59
|
+
readonly getContent: (chatExportData: {
|
60
|
+
readonly title: string;
|
61
|
+
readonly messages: readonly import("../types/ChatMessage").ChatMessage[];
|
62
|
+
readonly participants: readonly import("../types/ChatParticipant").ChatParticipant[];
|
63
|
+
}) => Promise<string>;
|
34
64
|
readonly mimeType: "application/pdf";
|
35
65
|
readonly fileExtension: "pdf";
|
36
66
|
}];
|
@@ -5,8 +5,12 @@
|
|
5
5
|
*/
|
6
6
|
export declare const jsonSaveFormatDefinition: {
|
7
7
|
readonly formatName: "json";
|
8
|
-
readonly label: "
|
9
|
-
readonly getContent: (messages:
|
8
|
+
readonly label: "Json";
|
9
|
+
readonly getContent: ({ messages }: {
|
10
|
+
readonly title: string;
|
11
|
+
readonly messages: readonly import("../../types/ChatMessage").ChatMessage[];
|
12
|
+
readonly participants: readonly import("../../types/ChatParticipant").ChatParticipant[];
|
13
|
+
}) => string;
|
10
14
|
readonly mimeType: "application/json";
|
11
15
|
readonly fileExtension: "json";
|
12
16
|
};
|
@@ -6,7 +6,11 @@
|
|
6
6
|
export declare const mdSaveFormatDefinition: {
|
7
7
|
readonly formatName: "md";
|
8
8
|
readonly label: "Markdown";
|
9
|
-
readonly getContent: (messages:
|
9
|
+
readonly getContent: ({ messages }: {
|
10
|
+
readonly title: string;
|
11
|
+
readonly messages: readonly import("../../types/ChatMessage").ChatMessage[];
|
12
|
+
readonly participants: readonly import("../../types/ChatParticipant").ChatParticipant[];
|
13
|
+
}) => string;
|
10
14
|
readonly mimeType: "text/markdown";
|
11
15
|
readonly fileExtension: "md";
|
12
16
|
};
|
@@ -5,8 +5,12 @@
|
|
5
5
|
*/
|
6
6
|
export declare const pdfSaveFormatDefinition: {
|
7
7
|
readonly formatName: "pdf";
|
8
|
-
readonly label: "
|
9
|
-
readonly getContent: (
|
8
|
+
readonly label: "Pdf";
|
9
|
+
readonly getContent: (chatExportData: {
|
10
|
+
readonly title: string;
|
11
|
+
readonly messages: readonly import("../../types/ChatMessage").ChatMessage[];
|
12
|
+
readonly participants: readonly import("../../types/ChatParticipant").ChatParticipant[];
|
13
|
+
}) => Promise<string>;
|
10
14
|
readonly mimeType: "application/pdf";
|
11
15
|
readonly fileExtension: "pdf";
|
12
16
|
};
|
@@ -0,0 +1,16 @@
|
|
1
|
+
/**
|
2
|
+
* React <jsx/> export plugin (full metadata)
|
3
|
+
*
|
4
|
+
* @public exported from `@promptbook/components`
|
5
|
+
*/
|
6
|
+
export declare const reactSaveFormatDefinition: {
|
7
|
+
readonly formatName: "jsx";
|
8
|
+
readonly label: "React";
|
9
|
+
readonly getContent: (chatExportData: {
|
10
|
+
readonly title: string;
|
11
|
+
readonly messages: readonly import("../../types/ChatMessage").ChatMessage[];
|
12
|
+
readonly participants: readonly import("../../types/ChatParticipant").ChatParticipant[];
|
13
|
+
}) => string;
|
14
|
+
readonly mimeType: "application/javascript";
|
15
|
+
readonly fileExtension: "jsx";
|
16
|
+
};
|
@@ -6,7 +6,11 @@
|
|
6
6
|
export declare const txtSaveFormatDefinition: {
|
7
7
|
readonly formatName: "txt";
|
8
8
|
readonly label: "Plain Text";
|
9
|
-
readonly getContent: (messages:
|
9
|
+
readonly getContent: ({ messages }: {
|
10
|
+
readonly title: string;
|
11
|
+
readonly messages: readonly import("../../types/ChatMessage").ChatMessage[];
|
12
|
+
readonly participants: readonly import("../../types/ChatParticipant").ChatParticipant[];
|
13
|
+
}) => string;
|
10
14
|
readonly mimeType: "text/plain";
|
11
15
|
readonly fileExtension: "txt";
|
12
16
|
};
|
@@ -111,6 +111,13 @@ export declare class Color {
|
|
111
111
|
* @return {value is WithTake<Color>} Returns true if the value is a valid Color object, false otherwise.
|
112
112
|
*/
|
113
113
|
static isColor(value: unknown): value is WithTake<Color>;
|
114
|
+
/**
|
115
|
+
* Checks if the given value is a valid hex color string
|
116
|
+
*
|
117
|
+
* @param value - value to check
|
118
|
+
* @returns true if the value is a valid hex color string (e.g., `#009edd`, `#fff`, etc.)
|
119
|
+
*/
|
120
|
+
static isHexColorString(value: unknown): value is string_color;
|
114
121
|
/**
|
115
122
|
* Creates new Color object
|
116
123
|
*
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { string_javascript } from '../../types/typeAliases';
|
2
|
+
import { TODO_any } from '../organization/TODO_any';
|
3
|
+
type SerializeToPromptbookJavascriptReturn = {
|
4
|
+
/**
|
5
|
+
* Array of import statements required for the `value` to work
|
6
|
+
*/
|
7
|
+
readonly imports: ReadonlyArray<string_javascript>;
|
8
|
+
/**
|
9
|
+
* The serialized value as a string of JavaScript code
|
10
|
+
*/
|
11
|
+
readonly value: string_javascript;
|
12
|
+
};
|
13
|
+
/**
|
14
|
+
* Function `serializeToPromptbookJavascript` will serialize a value to a javascript representation using `@promptbook/*` entities where possible.
|
15
|
+
*
|
16
|
+
* @public exported from `@promptbook/utils`
|
17
|
+
*/
|
18
|
+
export declare function serializeToPromptbookJavascript(value: TODO_any): SerializeToPromptbookJavascriptReturn;
|
19
|
+
export {};
|
20
|
+
/**
|
21
|
+
* TODO: Dynamic indentation passable through options in a second argument
|
22
|
+
*/
|
@@ -15,7 +15,7 @@ export declare const BOOK_LANGUAGE_VERSION: string_semantic_version;
|
|
15
15
|
export declare const PROMPTBOOK_ENGINE_VERSION: string_promptbook_version;
|
16
16
|
/**
|
17
17
|
* Represents the version string of the Promptbook engine.
|
18
|
-
* It follows semantic versioning (e.g., `0.102.0-
|
18
|
+
* It follows semantic versioning (e.g., `0.102.0-15`).
|
19
19
|
*
|
20
20
|
* @generated
|
21
21
|
*/
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@promptbook/editable",
|
3
|
-
"version": "0.102.0-
|
3
|
+
"version": "0.102.0-16",
|
4
4
|
"description": "Promptbook: Run AI apps in plain human language across multiple models and platforms",
|
5
5
|
"private": false,
|
6
6
|
"sideEffects": false,
|
@@ -95,7 +95,7 @@
|
|
95
95
|
"module": "./esm/index.es.js",
|
96
96
|
"typings": "./esm/typings/src/_packages/editable.index.d.ts",
|
97
97
|
"peerDependencies": {
|
98
|
-
"@promptbook/core": "0.102.0-
|
98
|
+
"@promptbook/core": "0.102.0-16"
|
99
99
|
},
|
100
100
|
"dependencies": {
|
101
101
|
"crypto-js": "4.2.0",
|
package/umd/index.umd.js
CHANGED
@@ -23,7 +23,7 @@
|
|
23
23
|
* @generated
|
24
24
|
* @see https://github.com/webgptorg/promptbook
|
25
25
|
*/
|
26
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.102.0-
|
26
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.102.0-16';
|
27
27
|
/**
|
28
28
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
29
29
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
@@ -306,7 +306,7 @@
|
|
306
306
|
return Color.fromString(CSS_COLORS[color]);
|
307
307
|
// -----
|
308
308
|
}
|
309
|
-
else if (
|
309
|
+
else if (Color.isHexColorString(color)) {
|
310
310
|
return Color.fromHex(color);
|
311
311
|
// -----
|
312
312
|
}
|
@@ -565,6 +565,15 @@
|
|
565
565
|
}
|
566
566
|
return true;
|
567
567
|
}
|
568
|
+
/**
|
569
|
+
* Checks if the given value is a valid hex color string
|
570
|
+
*
|
571
|
+
* @param value - value to check
|
572
|
+
* @returns true if the value is a valid hex color string (e.g., `#009edd`, `#fff`, etc.)
|
573
|
+
*/
|
574
|
+
static isHexColorString(value) {
|
575
|
+
return typeof value === 'string' && /^#(?:[0-9a-fA-F]{3}){1,2}$/.test(value);
|
576
|
+
}
|
568
577
|
/**
|
569
578
|
* Creates new Color object
|
570
579
|
*
|