reachat 2.1.0-alpha.4 → 2.1.0-alpha.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.
- package/dist/AppBar/AppBar.d.ts +1 -1
- package/dist/{CSVFileRenderer-DodyJ8ty.js → CSVFileRenderer-Bh5dmsTS.js} +15 -14
- package/dist/CSVFileRenderer-Bh5dmsTS.js.map +1 -0
- package/dist/Chat.d.ts +3 -3
- package/dist/ChatBubble/ChatBubble.d.ts +1 -1
- package/dist/ChatContext.d.ts +2 -2
- package/dist/ChatInput/ChatInput.d.ts +4 -0
- package/dist/ChatInput/FileInput.d.ts +1 -1
- package/dist/{DefaultFileRenderer-CjPMoUSC.js → DefaultFileRenderer-CeV73ofi.js} +2 -2
- package/dist/DefaultFileRenderer-CeV73ofi.js.map +1 -0
- package/dist/ImageFileRenderer-C8tVW3I8.js.map +1 -1
- package/dist/Markdown/Table.d.ts +1 -1
- package/dist/Markdown/index.d.ts +2 -2
- package/dist/Markdown/plugins/remarkCve.d.ts +1 -1
- package/dist/PDFFileRenderer-BBn2EVrV.js +16 -0
- package/dist/PDFFileRenderer-BBn2EVrV.js.map +1 -0
- package/dist/SessionMessages/SessionEmpty.d.ts +1 -4
- package/dist/SessionMessages/SessionMessage/MessageFile/renderers/index.d.ts +1 -1
- package/dist/SessionMessages/SessionMessage/MessageFiles.d.ts +1 -1
- package/dist/SessionMessages/SessionMessage/MessageSources.d.ts +1 -1
- package/dist/SessionMessages/SessionMessage/index.d.ts +2 -2
- package/dist/SessionMessages/SessionMessages.d.ts +1 -1
- package/dist/SessionMessages/index.d.ts +2 -2
- package/dist/SessionsList/index.d.ts +2 -2
- package/dist/docs.json +20 -20
- package/dist/{index-B0_s-rPq.js → index-nY4fLD9h.js} +1117 -1132
- package/dist/index-nY4fLD9h.js.map +1 -0
- package/dist/index.css +6296 -738
- package/dist/index.d.ts +6 -6
- package/dist/index.js +31 -31
- package/dist/index.umd.cjs +1097 -1104
- package/dist/index.umd.cjs.map +1 -1
- package/dist/stories/Changelog.mdx +1 -1
- package/dist/stories/Chat.stories.tsx +5 -5
- package/dist/stories/ChatBubble.stories.tsx +3 -3
- package/dist/stories/Companion.stories.tsx +6 -6
- package/dist/stories/Console.stories.tsx +22 -22
- package/dist/stories/Integration.stories.tsx +2 -2
- package/dist/stories/Intro.mdx +1 -1
- package/dist/stories/assets/logo.svg +38 -19
- package/dist/stories/assets/paperclip.svg +4 -1
- package/dist/stories/assets/search.svg +5 -1
- package/dist/stories/examples.ts +20 -13
- package/dist/theme.d.ts +13 -0
- package/package.json +62 -46
- package/dist/CSVFileRenderer-DodyJ8ty.js.map +0 -1
- package/dist/DefaultFileRenderer-CjPMoUSC.js.map +0 -1
- package/dist/PDFFileRenderer-DQdFS2l6.js +0 -9
- package/dist/PDFFileRenderer-DQdFS2l6.js.map +0 -1
- package/dist/index-B0_s-rPq.js.map +0 -1
package/dist/AppBar/AppBar.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
import { useState, useRef, useEffect } from "react";
|
|
4
2
|
import { AnimatePresence, motion } from "motion/react";
|
|
5
|
-
import { a as SvgCopy } from "./index-B0_s-rPq.js";
|
|
6
3
|
import { IconButton } from "reablocks";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { useContext, useState, useRef, useEffect } from "react";
|
|
6
|
+
import { C as ChatContext, a as SvgCopy } from "./index-nY4fLD9h.js";
|
|
7
|
+
const SvgDownload = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: "24px", height: "24px", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M 11 2 C 10.448 2 10 2.448 10 3 L 10 11 L 6.5 11 A 0.5 0.5 0 0 0 6 11.5 A 0.5 0.5 0 0 0 6.1464844 11.853516 A 0.5 0.5 0 0 0 6.1777344 11.882812 L 11.283203 16.697266 L 11.316406 16.728516 A 1 1 0 0 0 12 17 A 1 1 0 0 0 12.683594 16.728516 L 12.697266 16.716797 A 1 1 0 0 0 12.707031 16.705078 L 17.810547 11.892578 A 0.5 0.5 0 0 0 17.839844 11.865234 L 17.847656 11.859375 A 0.5 0.5 0 0 0 17.853516 11.853516 A 0.5 0.5 0 0 0 18 11.5 A 0.5 0.5 0 0 0 17.5 11 L 14 11 L 14 3 C 14 2.448 13.552 2 13 2 L 12 2 L 11 2 z M 3 20 A 1.0001 1.0001 0 1 0 3 22 L 21 22 A 1.0001 1.0001 0 1 0 21 20 L 3 20 z", fill: "currentColor" }));
|
|
7
8
|
const sanitizeSVGCell = (cell) => {
|
|
8
9
|
const trimmed = cell.trim();
|
|
9
10
|
const escaped = trimmed.replace(/"/g, '""');
|
|
@@ -20,8 +21,8 @@ const parseCSV = (csvString) => {
|
|
|
20
21
|
throw new Error("Failed to parse CSV file.");
|
|
21
22
|
}
|
|
22
23
|
};
|
|
23
|
-
const SvgDownload = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: 24, height: 24, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 1, strokeLinecap: "round", strokeLinejoin: "round", className: "lucide lucide-cloud-download", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242" }), /* @__PURE__ */ React.createElement("path", { d: "M12 12v9" }), /* @__PURE__ */ React.createElement("path", { d: "m8 17 4 4 4-4" }));
|
|
24
24
|
const CSVFileRenderer = ({ name, url, fileIcon }) => {
|
|
25
|
+
const { theme } = useContext(ChatContext);
|
|
25
26
|
const [isLoading, setIsLoading] = useState(true);
|
|
26
27
|
const [csvData, setCsvData] = useState([]);
|
|
27
28
|
const [error, setError] = useState(null);
|
|
@@ -97,24 +98,24 @@ const CSVFileRenderer = ({ name, url, fileIcon }) => {
|
|
|
97
98
|
]
|
|
98
99
|
}
|
|
99
100
|
);
|
|
100
|
-
return /* @__PURE__ */ jsxs("div", { className:
|
|
101
|
-
/* @__PURE__ */ jsxs("div", { className:
|
|
102
|
-
/* @__PURE__ */ jsxs("div", { className:
|
|
101
|
+
return /* @__PURE__ */ jsxs("div", { className: theme.messages.message.csvPreview.base, children: [
|
|
102
|
+
/* @__PURE__ */ jsxs("div", { className: theme.messages.message.csvPreview.header.base, children: [
|
|
103
|
+
/* @__PURE__ */ jsxs("div", { className: theme.messages.message.csvPreview.header.icon, children: [
|
|
103
104
|
fileIcon,
|
|
104
105
|
name && /* @__PURE__ */ jsx("figcaption", { className: "ml-1", children: name })
|
|
105
106
|
] }),
|
|
106
|
-
/* @__PURE__ */ jsxs("div", { className:
|
|
107
|
-
/* @__PURE__ */ jsx(IconButton, { size: "
|
|
108
|
-
/* @__PURE__ */ jsx(IconButton, { size: "
|
|
107
|
+
/* @__PURE__ */ jsxs("div", { className: theme.messages.message.csvPreview.header.actions, children: [
|
|
108
|
+
/* @__PURE__ */ jsx(IconButton, { size: "medium", variant: "text", onClick: downloadCSV, children: /* @__PURE__ */ jsx(SvgDownload, {}) }),
|
|
109
|
+
/* @__PURE__ */ jsx(IconButton, { size: "medium", variant: "text", onClick: toggleModal, children: /* @__PURE__ */ jsx(SvgCopy, {}) })
|
|
109
110
|
] })
|
|
110
111
|
] }),
|
|
111
112
|
error && /* @__PURE__ */ jsx("div", { className: "error-message", children: error }),
|
|
112
113
|
isLoading && !csvData && /* @__PURE__ */ jsx("div", { className: "text-text-secondary", children: "Loading..." }),
|
|
113
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
114
|
+
/* @__PURE__ */ jsx("div", { className: theme.messages.message.csvPreview.tableContainer, children: !error && csvData.length > 0 && renderTable(csvData, 6) }),
|
|
114
115
|
/* @__PURE__ */ jsx(AnimatePresence, { children: isModalOpen && /* @__PURE__ */ jsx(
|
|
115
116
|
motion.div,
|
|
116
117
|
{
|
|
117
|
-
className:
|
|
118
|
+
className: theme.messages.message.csvPreview.dialog.base,
|
|
118
119
|
initial: { opacity: 0 },
|
|
119
120
|
animate: { opacity: 1 },
|
|
120
121
|
exit: { opacity: 0 },
|
|
@@ -123,7 +124,7 @@ const CSVFileRenderer = ({ name, url, fileIcon }) => {
|
|
|
123
124
|
motion.div,
|
|
124
125
|
{
|
|
125
126
|
ref: modalRef,
|
|
126
|
-
className:
|
|
127
|
+
className: theme.messages.message.csvPreview.dialog.container,
|
|
127
128
|
initial: { scale: 0.8 },
|
|
128
129
|
animate: { scale: 1 },
|
|
129
130
|
exit: { scale: 0.8 },
|
|
@@ -138,4 +139,4 @@ const CSVFileRenderer = ({ name, url, fileIcon }) => {
|
|
|
138
139
|
export {
|
|
139
140
|
CSVFileRenderer as default
|
|
140
141
|
};
|
|
141
|
-
//# sourceMappingURL=CSVFileRenderer-
|
|
142
|
+
//# sourceMappingURL=CSVFileRenderer-Bh5dmsTS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CSVFileRenderer-Bh5dmsTS.js","sources":["../src/assets/download.svg?react","../src/utils/sanitize.ts","../src/utils/parseCSV.ts","../src/SessionMessages/SessionMessage/MessageFile/renderers/CSVFileRenderer.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgDownload = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 24 24\", width: \"24px\", height: \"24px\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M 11 2 C 10.448 2 10 2.448 10 3 L 10 11 L 6.5 11 A 0.5 0.5 0 0 0 6 11.5 A 0.5 0.5 0 0 0 6.1464844 11.853516 A 0.5 0.5 0 0 0 6.1777344 11.882812 L 11.283203 16.697266 L 11.316406 16.728516 A 1 1 0 0 0 12 17 A 1 1 0 0 0 12.683594 16.728516 L 12.697266 16.716797 A 1 1 0 0 0 12.707031 16.705078 L 17.810547 11.892578 A 0.5 0.5 0 0 0 17.839844 11.865234 L 17.847656 11.859375 A 0.5 0.5 0 0 0 17.853516 11.853516 A 0.5 0.5 0 0 0 18 11.5 A 0.5 0.5 0 0 0 17.5 11 L 14 11 L 14 3 C 14 2.448 13.552 2 13 2 L 12 2 L 11 2 z M 3 20 A 1.0001 1.0001 0 1 0 3 22 L 21 22 A 1.0001 1.0001 0 1 0 21 20 L 3 20 z\", fill: \"currentColor\" }));\nexport default SvgDownload;\n","/**\n * Sanitizes cell content to prevent CSV injection and other potential vulnerabilities.\n * Based on the documentation of OWASP for CSV Injection\n * https://owasp.org/www-community/attacks/CSV_Injection\n * @param cell The cell content to sanitize.\n * @returns The sanitized cell content.\n */\nexport const sanitizeSVGCell = (cell: string): string => {\n const trimmed = cell.trim();\n // Escape double quotes by doubling them\n const escaped = trimmed.replace(/\"/g, '\"\"');\n // Add single quote prefix only for potentially dangerous content\n const prefix = /^[=+\\-@]/.test(trimmed) ? \"'\" : '';\n // Only wrap in quotes if the content contains special characters\n const needsQuotes = /[\",\\n\\r]/.test(escaped) || prefix;\n\n return needsQuotes ? `\"${prefix}${escaped}\"` : escaped;\n};\n","import { sanitizeSVGCell } from './sanitize';\n\n/**\n * Parses a CSV string from a local file and returns an array of rows.\n * Sanitizes cell data to prevent injection attacks.\n * @param csvString The raw CSV string content to parse.\n * @returns The parsed CSV data as a 2D array of strings.\n */\nexport const parseCSV = (csvString: string): string[][] => {\n try {\n const rows = csvString.split('\\n');\n return rows.map(row => row.split(',').map(cell => sanitizeSVGCell(cell)));\n } catch (error) {\n console.error('Error parsing CSV:', error);\n throw new Error('Failed to parse CSV file.');\n }\n};\n","import { AnimatePresence, motion } from 'motion/react';\nimport { IconButton } from 'reablocks';\nimport type { FC, ReactElement } from 'react';\nimport { useContext, useEffect, useRef, useState } from 'react';\n\nimport PlaceholderIcon from '@/assets/copy.svg?react';\nimport DownloadIcon from '@/assets/download.svg?react';\nimport { ChatContext } from '@/ChatContext';\nimport { parseCSV } from '@/utils/parseCSV';\n\ninterface CSVFileRendererProps {\n /**\n * Name of the file.\n */\n name?: string;\n\n /**\n * URL of the file.\n */\n url: string;\n\n /**\n * Icon to for file type.\n */\n fileIcon?: ReactElement;\n}\n\n/**\n * Renderer for CSV files that fetches and displays a snippet of the file data.\n */\nconst CSVFileRenderer: FC<CSVFileRendererProps> = ({ name, url, fileIcon }) => {\n const { theme } = useContext(ChatContext);\n const [isLoading, setIsLoading] = useState<boolean>(true);\n const [csvData, setCsvData] = useState<string[][]>([]);\n const [error, setError] = useState<string | null>(null);\n const [isModalOpen, setIsModalOpen] = useState(false);\n const modalRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const fetchCsvData = async () => {\n try {\n setIsLoading(true);\n const response = await fetch(url);\n const data = parseCSV(await response.text());\n setCsvData(data);\n } catch {\n setError('Failed to load CSV file.');\n } finally {\n setIsLoading(false);\n }\n };\n\n fetchCsvData();\n }, [url]);\n\n const toggleModal = () => {\n setIsModalOpen(prev => !prev);\n };\n\n const handleClickOutside = (event: MouseEvent) => {\n if (modalRef.current && !modalRef.current.contains(event.target as Node)) {\n setIsModalOpen(false);\n }\n };\n\n useEffect(() => {\n if (isModalOpen) {\n document.addEventListener('mousedown', handleClickOutside);\n } else {\n document.removeEventListener('mousedown', handleClickOutside);\n }\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [isModalOpen]);\n\n const downloadCSV = () => {\n if (csvData.length === 0) return;\n\n const csvContent = csvData.map(row => row.join(',')).join('\\n');\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', `${name || 'data'}`);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n };\n\n const renderTable = (data: string[][], maxRows?: number) => (\n <motion.table\n layout\n className=\"w-full\"\n transition={{ type: 'spring', stiffness: 100, damping: 20 }}\n >\n <thead className=\"sticky top-0 bg-gray-200 dark:bg-gray-800 z-10\">\n <tr>\n <th className=\"py-4 px-6\">#</th>\n {data[0].map((header, index) => (\n <th key={`header-${index}`} className=\"py-4 px-6\">\n {header}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {data.slice(1, maxRows).map((row, rowIndex) => (\n <tr\n key={`row-${rowIndex}`}\n className=\"border-b border-panel-accent light:border-gray-700 hover:bg-panel-accent hover:light:bg-gray-700/40 transition-colors text-base\"\n >\n <td className=\"py-4 px-6\">{rowIndex + 1}</td>\n {row.map((cell, cellIndex) => (\n <td key={`cell-${rowIndex}-${cellIndex}`} className=\"py-4 px-6\">\n {cell}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </motion.table>\n );\n\n return (\n <div className={theme.messages.message.csvPreview.base}>\n <div className={theme.messages.message.csvPreview.header.base}>\n <div className={theme.messages.message.csvPreview.header.icon}>\n {fileIcon}\n {name && <figcaption className=\"ml-1\">{name}</figcaption>}\n </div>\n <div className={theme.messages.message.csvPreview.header.actions}>\n <IconButton size=\"medium\" variant=\"text\" onClick={downloadCSV}>\n <DownloadIcon />\n </IconButton>\n <IconButton size=\"medium\" variant=\"text\" onClick={toggleModal}>\n <PlaceholderIcon />\n </IconButton>\n </div>\n </div>\n\n {error && <div className=\"error-message\">{error}</div>}\n\n {isLoading && !csvData && (\n <div className=\"text-text-secondary\">Loading...</div>\n )}\n\n <div className={theme.messages.message.csvPreview.tableContainer}>\n {!error && csvData.length > 0 && renderTable(csvData, 6)}\n </div>\n\n <AnimatePresence>\n {isModalOpen && (\n <motion.div\n className={theme.messages.message.csvPreview.dialog.base}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.3 }}\n >\n <motion.div\n ref={modalRef}\n className={theme.messages.message.csvPreview.dialog.container}\n initial={{ scale: 0.8 }}\n animate={{ scale: 1 }}\n exit={{ scale: 0.8 }}\n transition={{ duration: 0.3 }}\n >\n {!error && csvData.length > 0 && renderTable(csvData)}\n </motion.div>\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n );\n};\n\nexport default CSVFileRenderer;\n"],"names":["url","DownloadIcon","PlaceholderIcon"],"mappings":"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"}
|
package/dist/Chat.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { CSSProperties, FC, PropsWithChildren } from 'react';
|
|
2
|
-
import { Session } from './types';
|
|
3
|
-
import { ChatTheme } from './theme';
|
|
4
|
-
import { ChatViewType } from './ChatContext';
|
|
5
2
|
import { Plugin } from 'unified';
|
|
3
|
+
import { ChatViewType } from './ChatContext';
|
|
4
|
+
import { ChatTheme } from './theme';
|
|
5
|
+
import { Session } from './types';
|
|
6
6
|
export interface ChatProps extends PropsWithChildren {
|
|
7
7
|
/**
|
|
8
8
|
* The style to apply to the root element.
|
|
@@ -24,4 +24,4 @@ export interface ChatBubbleProps {
|
|
|
24
24
|
*/
|
|
25
25
|
className?: string;
|
|
26
26
|
}
|
|
27
|
-
export declare const ChatBubble: import('react').
|
|
27
|
+
export declare const ChatBubble: import('react').MemoExoticComponent<({ children, bubbleContent, position, modifiers, className }: ChatBubbleProps) => import("react/jsx-runtime").JSX.Element>;
|
package/dist/ChatContext.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Session } from './types';
|
|
2
|
-
import { ChatTheme } from './theme';
|
|
3
1
|
import { Plugin } from 'unified';
|
|
2
|
+
import { ChatTheme } from './theme';
|
|
3
|
+
import { Session } from './types';
|
|
4
4
|
export type ChatViewType = 'chat' | 'companion' | 'console';
|
|
5
5
|
export interface ChatContextProps {
|
|
6
6
|
sessions: Session[];
|
|
@@ -42,6 +42,10 @@ export interface ChatInputRef {
|
|
|
42
42
|
* Send the message.
|
|
43
43
|
*/
|
|
44
44
|
send: () => void;
|
|
45
|
+
/**
|
|
46
|
+
* Set the input value programmatically.
|
|
47
|
+
*/
|
|
48
|
+
setValue: (value: string) => void;
|
|
45
49
|
}
|
|
46
50
|
export declare const ChatInput: import('react').ForwardRefExoticComponent<ChatInputProps & import('react').RefAttributes<ChatInputRef>>;
|
|
47
51
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
-
import { S as SvgFile } from "./index-B0_s-rPq.js";
|
|
3
2
|
import { cn, Ellipsis } from "reablocks";
|
|
3
|
+
import { S as SvgFile } from "./index-nY4fLD9h.js";
|
|
4
4
|
const DefaultFileRenderer = ({
|
|
5
5
|
name,
|
|
6
6
|
limit = 100,
|
|
@@ -12,4 +12,4 @@ const DefaultFileRenderer = ({
|
|
|
12
12
|
export {
|
|
13
13
|
DefaultFileRenderer as default
|
|
14
14
|
};
|
|
15
|
-
//# sourceMappingURL=DefaultFileRenderer-
|
|
15
|
+
//# sourceMappingURL=DefaultFileRenderer-CeV73ofi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultFileRenderer-CeV73ofi.js","sources":["../src/SessionMessages/SessionMessage/MessageFile/renderers/DefaultFileRenderer.tsx"],"sourcesContent":["import { cn, Ellipsis } from 'reablocks';\nimport type { FC, ReactElement } from 'react';\n\nimport FileIcon from '@/assets/file.svg?react';\n\ninterface DefaultFileRendererProps {\n /**\n * Limit for the name.\n */\n limit?: number;\n\n /**\n * Name of the file.\n */\n name?: string;\n\n /**\n * URL of the file.\n */\n url: string;\n\n /**\n * Icon to for file type.\n */\n fileIcon?: ReactElement;\n}\n\n/**\n * Default renderer for unspecified file types.\n */\nconst DefaultFileRenderer: FC<DefaultFileRendererProps> = ({\n name,\n limit = 100,\n fileIcon = <FileIcon />\n}) => (\n <figure className=\"flex items-center gap-2\">\n {fileIcon}\n {name && (\n <figcaption className={cn('file-name-class')}>\n <Ellipsis value={name} limit={limit} />\n </figcaption>\n )}\n </figure>\n);\n\nexport default DefaultFileRenderer;\n"],"names":["FileIcon"],"mappings":";;;AA8BA,MAAM,sBAAoD,CAAC;AAAA,EACzD;AAAA,EACA,QAAQ;AAAA,EACR,+BAAYA,SAAA,CAAA,CAAS;AACvB,MACE,qBAAC,UAAA,EAAO,WAAU,2BACf,UAAA;AAAA,EAAA;AAAA,EACA,QACC,oBAAC,cAAA,EAAW,WAAW,GAAG,iBAAiB,GACzC,UAAA,oBAAC,UAAA,EAAS,OAAO,MAAM,MAAA,CAAc,EAAA,CACvC;AAAA,EAAA,CAEJ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageFileRenderer-C8tVW3I8.js","sources":["../src/SessionMessages/SessionMessage/MessageFile/renderers/ImageFileRenderer.tsx"],"sourcesContent":["import { FC } from 'react';\n\ninterface ImageFileRendererProps {\n /**\n * Name of the file.\n */\n name?: string;\n\n /**\n * URL of the file.\n */\n url: string;\n}\n\n/**\n * Renderer for image files.\n */\nconst ImageFileRenderer: FC<ImageFileRendererProps> = ({ url }) => (\n <img src={url} alt=\"Image\" className=\"size-10\" />\n);\n\nexport default ImageFileRenderer;\n"],"names":[],"mappings":";AAiBA,MAAM,oBAAgD,CAAC,EAAE,IAAA,MACvD,oBAAC,OAAA,EAAI,KAAK,KAAK,KAAI,SAAQ,WAAU,UAAA,CAAU;"}
|
|
1
|
+
{"version":3,"file":"ImageFileRenderer-C8tVW3I8.js","sources":["../src/SessionMessages/SessionMessage/MessageFile/renderers/ImageFileRenderer.tsx"],"sourcesContent":["import type { FC } from 'react';\n\ninterface ImageFileRendererProps {\n /**\n * Name of the file.\n */\n name?: string;\n\n /**\n * URL of the file.\n */\n url: string;\n}\n\n/**\n * Renderer for image files.\n */\nconst ImageFileRenderer: FC<ImageFileRendererProps> = ({ url }) => (\n <img src={url} alt=\"Image\" className=\"size-10\" />\n);\n\nexport default ImageFileRenderer;\n"],"names":[],"mappings":";AAiBA,MAAM,oBAAgD,CAAC,EAAE,IAAA,MACvD,oBAAC,OAAA,EAAI,KAAK,KAAK,KAAI,SAAQ,WAAU,UAAA,CAAU;"}
|
package/dist/Markdown/Table.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { default as React
|
|
1
|
+
import { FC, PropsWithChildren, default as React } from 'react';
|
|
2
2
|
export declare const TableComponent: FC<PropsWithChildren<React.HTMLAttributes<HTMLTableElement>>>;
|
|
3
3
|
export declare const TableHeaderCell: FC<PropsWithChildren<React.HTMLAttributes<HTMLTableHeaderCellElement>>>;
|
|
4
4
|
export declare const TableDataCell: FC<PropsWithChildren<React.HTMLAttributes<HTMLTableDataCellElement>>>;
|
package/dist/Markdown/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function remarkCve(): (tree: any
|
|
1
|
+
export declare function remarkCve(): (tree: any) => void;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
const PDFFileRenderer = ({ name, url, fileIcon }) => /* @__PURE__ */ jsxs(
|
|
3
|
+
"figure",
|
|
4
|
+
{
|
|
5
|
+
className: "csv-icon flex items-center gap-2",
|
|
6
|
+
onClick: () => window.open(url, "_blank"),
|
|
7
|
+
children: [
|
|
8
|
+
fileIcon,
|
|
9
|
+
name && /* @__PURE__ */ jsx("figcaption", { className: "file-name", children: name })
|
|
10
|
+
]
|
|
11
|
+
}
|
|
12
|
+
);
|
|
13
|
+
export {
|
|
14
|
+
PDFFileRenderer as default
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=PDFFileRenderer-BBn2EVrV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PDFFileRenderer-BBn2EVrV.js","sources":["../src/SessionMessages/SessionMessage/MessageFile/renderers/PDFFileRenderer.tsx"],"sourcesContent":["import type { FC, ReactElement } from 'react';\n\ninterface PDFFileRendererProps {\n /**\n * Name of the file.\n */\n name?: string;\n\n /**\n * URL of the file.\n */\n url: string;\n\n /**\n * Icon to for file type.\n */\n fileIcon?: ReactElement;\n}\n\n/**\n * Renderer for PDF files.\n */\nconst PDFFileRenderer: FC<PDFFileRendererProps> = ({ name, url, fileIcon }) => (\n <figure\n className=\"csv-icon flex items-center gap-2\"\n onClick={() => window.open(url, '_blank')}\n >\n {fileIcon}\n {name && <figcaption className=\"file-name\">{name}</figcaption>}\n </figure>\n);\n\nexport default PDFFileRenderer;\n"],"names":[],"mappings":";AAsBA,MAAM,kBAA4C,CAAC,EAAE,MAAM,KAAK,eAC9D;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAU;AAAA,IACV,SAAS,MAAM,OAAO,KAAK,KAAK,QAAQ;AAAA,IAEvC,UAAA;AAAA,MAAA;AAAA,MACA,QAAQ,oBAAC,cAAA,EAAW,WAAU,aAAa,UAAA,KAAA,CAAK;AAAA,IAAA;AAAA,EAAA;AACnD;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export * from './SessionMessage';
|
|
2
|
-
export * from './MessageSource';
|
|
3
1
|
export * from './MessageActions';
|
|
4
2
|
export * from './MessageFile';
|
|
5
3
|
export * from './MessageFiles';
|
|
6
4
|
export * from './MessageQuestion';
|
|
7
5
|
export * from './MessageResponse';
|
|
6
|
+
export * from './MessageSource';
|
|
8
7
|
export * from './MessageSources';
|
|
8
|
+
export * from './SessionMessage';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from './SessionEmpty';
|
|
2
|
-
export * from './SessionMessagesHeader';
|
|
3
|
-
export * from './SessionMessagePanel';
|
|
4
2
|
export * from './SessionMessage';
|
|
3
|
+
export * from './SessionMessagePanel';
|
|
5
4
|
export * from './SessionMessages';
|
|
5
|
+
export * from './SessionMessagesHeader';
|
package/dist/docs.json
CHANGED
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
},
|
|
106
106
|
"theme": {
|
|
107
107
|
"defaultValue": {
|
|
108
|
-
"value": "{\n base: '
|
|
108
|
+
"value": "{\n base: 'text-content-text-neutral-base',\n console: 'flex w-full gap-4 h-full',\n companion: 'w-full h-full overflow-hidden',\n empty: 'text-center flex-1',\n appbar: 'flex p-5',\n sessions: {\n base: 'overflow-auto',\n console:\n 'min-w-[150px] w-[30%] max-w-[300px] bg-gradient-neutral-200 p-5 rounded-3xl',\n companion: 'w-full h-full',\n group: 'text-xs text-content-text-neutral-3 mt-4 hover:bg-transparent mb-1',\n create: 'relative mb-4 rounded-[10px] text-white',\n session: {\n base: 'group my-1 rounded-[10px] p-2 text-content-text-neutral-1 border border-transparent',\n active:\n 'border-select-menu-items-color-item-stroke-row-hover [&_button]:opacity-100!',\n delete: '[&>svg]:w-4 [&>svg]:h-4 opacity-0 group-hover:opacity-50!'\n }\n },\n messages: {\n base: '',\n console: 'flex flex-col mx-5 flex-1 overflow-hidden',\n companion: 'flex w-full h-full',\n back: 'self-start pl-0 my-2 ',\n inner: 'flex-1 h-full flex flex-col',\n title: 'text-base font-bold',\n date: 'text-xs whitespace-nowrap text-content-text-neutral-2',\n content: 'mt-2 flex-1 overflow-auto',\n header: 'flex justify-between items-center gap-2',\n showMore: 'mb-4',\n message: {\n base: 'mt-4 mb-4 flex flex-col p-0 rounded-sm border-none bg-transparent',\n question:\n 'relative font-semibold mb-4 px-4 py-4 pb-2 rounded-3xl rounded-br-none text-typography border bg-(--background-neutral-raised-5) border-(--stroke-neutral-5)',\n response:\n 'relative data-[compact=false]:px-4 text-content-text-neutral-base',\n overlay:\n \"overflow-y-hidden max-h-[350px] after:content-[''] after:absolute after:inset-x-0 after:bottom-0 after:h-16 after:bg-linear-to-b after:from-transparent after:to-effects-shadows-base-2-xl\",\n cursor: 'inline-block w-1 h-4 bg-current',\n expand: 'absolute bottom-0 right-1 z-10',\n files: {\n base: 'mb-2 flex flex-wrap gap-3 ',\n file: {\n base: 'flex items-center gap-2 border border-stroke-neutral-4 px-3 py-2 rounded-lg cursor-pointer',\n name: 'text-sm text-content-text-neutral-4'\n }\n },\n sources: {\n base: 'my-4 flex flex-wrap gap-3',\n source: {\n base: 'flex gap-2 border border-stroke-neutral-4 px-4 py-2 rounded-lg cursor-pointer',\n companion: 'flex-1 px-3 py-1.5',\n image: 'max-w-10 max-h-10 rounded-md w-full h-fit self-center',\n title: 'text-md block',\n url: 'text-sm text-buttons-colors-link-primary-text-resting underline'\n }\n },\n markdown: {\n copy: 'sticky py-1 [&>svg]:w-4 [&>svg]:h-4 opacity-50',\n p: 'mb-2',\n a: 'text-buttons-colors-link-primary-text-resting underline',\n table: 'table-auto w-full m-2',\n th: 'px-4 py-2 text-left font-bold border-b border-stroke-neutral-4',\n td: 'px-4 py-2',\n code: 'm-2 rounded-b relative',\n toolbar:\n 'text-xs flex items-center justify-between px-2 py-1 rounded-t sticky top-0 backdrop-blur-md bg-gradient-neutral-500/50',\n li: 'mb-2 ml-6',\n ul: 'mb-4 list-disc',\n ol: 'mb-4 list-decimal'\n },\n csvPreview: {\n base: 'flex flex-col gap-2',\n header: {\n base: 'flex justify-between items-center gap-4',\n icon: 'csv-icon flex items-center',\n actions: 'csv-actions flex items-center gap-6'\n },\n tableContainer: 'flex justify-between',\n dialog: {\n base: 'fixed inset-0 bg-background-neutral-canvas-base/70 flex justify-center items-center z-50',\n container:\n 'bg-background-neutral-canvas-base rounded-md w-11/12 h-5/6 overflow-auto'\n }\n },\n footer: {\n base: 'mt-3 flex gap-1.5',\n copy: 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!',\n upvote:\n 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!',\n downvote:\n 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!',\n refresh:\n 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!'\n }\n }\n },\n input: {\n base: 'flex mt-4 relative',\n upload:\n 'px-5 py-2 size-10 text-content-text-neutral-2 hover:text-content-text-neutral-base',\n input:\n 'w-full border rounded-3xl px-3 py-2 pr-16 after:hidden after:mx-10! [&>textarea]:w-full [&>textarea]:flex-none [&>textarea]:outline-none [&>textarea]:resize-none',\n actions: {\n base: 'absolute flex gap-2 items-center right-2 inset-y-1/2 -translate-y-1/2 z-10',\n send: 'px-3 py-3 hover:bg-primary-hover rounded-full size-8',\n stop: 'px-2 py-2 bg-content-assets-semantic-error-base text-white rounded-full hover:bg-content-assets-semantic-error-1 size-8'\n }\n }\n}"
|
|
109
109
|
},
|
|
110
110
|
"description": "Custom theme for the chat.",
|
|
111
111
|
"name": "theme",
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
],
|
|
143
143
|
"required": false,
|
|
144
144
|
"type": {
|
|
145
|
-
"name": "Plugin
|
|
145
|
+
"name": "Plugin[]"
|
|
146
146
|
}
|
|
147
147
|
},
|
|
148
148
|
"isLoading": {
|
|
@@ -327,7 +327,7 @@
|
|
|
327
327
|
},
|
|
328
328
|
"theme": {
|
|
329
329
|
"defaultValue": {
|
|
330
|
-
"value": "{\n base: '
|
|
330
|
+
"value": "{\n base: 'text-content-text-neutral-base',\n console: 'flex w-full gap-4 h-full',\n companion: 'w-full h-full overflow-hidden',\n empty: 'text-center flex-1',\n appbar: 'flex p-5',\n sessions: {\n base: 'overflow-auto',\n console:\n 'min-w-[150px] w-[30%] max-w-[300px] bg-gradient-neutral-200 p-5 rounded-3xl',\n companion: 'w-full h-full',\n group: 'text-xs text-content-text-neutral-3 mt-4 hover:bg-transparent mb-1',\n create: 'relative mb-4 rounded-[10px] text-white',\n session: {\n base: 'group my-1 rounded-[10px] p-2 text-content-text-neutral-1 border border-transparent',\n active:\n 'border-select-menu-items-color-item-stroke-row-hover [&_button]:opacity-100!',\n delete: '[&>svg]:w-4 [&>svg]:h-4 opacity-0 group-hover:opacity-50!'\n }\n },\n messages: {\n base: '',\n console: 'flex flex-col mx-5 flex-1 overflow-hidden',\n companion: 'flex w-full h-full',\n back: 'self-start pl-0 my-2 ',\n inner: 'flex-1 h-full flex flex-col',\n title: 'text-base font-bold',\n date: 'text-xs whitespace-nowrap text-content-text-neutral-2',\n content: 'mt-2 flex-1 overflow-auto',\n header: 'flex justify-between items-center gap-2',\n showMore: 'mb-4',\n message: {\n base: 'mt-4 mb-4 flex flex-col p-0 rounded-sm border-none bg-transparent',\n question:\n 'relative font-semibold mb-4 px-4 py-4 pb-2 rounded-3xl rounded-br-none text-typography border bg-(--background-neutral-raised-5) border-(--stroke-neutral-5)',\n response:\n 'relative data-[compact=false]:px-4 text-content-text-neutral-base',\n overlay:\n \"overflow-y-hidden max-h-[350px] after:content-[''] after:absolute after:inset-x-0 after:bottom-0 after:h-16 after:bg-linear-to-b after:from-transparent after:to-effects-shadows-base-2-xl\",\n cursor: 'inline-block w-1 h-4 bg-current',\n expand: 'absolute bottom-0 right-1 z-10',\n files: {\n base: 'mb-2 flex flex-wrap gap-3 ',\n file: {\n base: 'flex items-center gap-2 border border-stroke-neutral-4 px-3 py-2 rounded-lg cursor-pointer',\n name: 'text-sm text-content-text-neutral-4'\n }\n },\n sources: {\n base: 'my-4 flex flex-wrap gap-3',\n source: {\n base: 'flex gap-2 border border-stroke-neutral-4 px-4 py-2 rounded-lg cursor-pointer',\n companion: 'flex-1 px-3 py-1.5',\n image: 'max-w-10 max-h-10 rounded-md w-full h-fit self-center',\n title: 'text-md block',\n url: 'text-sm text-buttons-colors-link-primary-text-resting underline'\n }\n },\n markdown: {\n copy: 'sticky py-1 [&>svg]:w-4 [&>svg]:h-4 opacity-50',\n p: 'mb-2',\n a: 'text-buttons-colors-link-primary-text-resting underline',\n table: 'table-auto w-full m-2',\n th: 'px-4 py-2 text-left font-bold border-b border-stroke-neutral-4',\n td: 'px-4 py-2',\n code: 'm-2 rounded-b relative',\n toolbar:\n 'text-xs flex items-center justify-between px-2 py-1 rounded-t sticky top-0 backdrop-blur-md bg-gradient-neutral-500/50',\n li: 'mb-2 ml-6',\n ul: 'mb-4 list-disc',\n ol: 'mb-4 list-decimal'\n },\n csvPreview: {\n base: 'flex flex-col gap-2',\n header: {\n base: 'flex justify-between items-center gap-4',\n icon: 'csv-icon flex items-center',\n actions: 'csv-actions flex items-center gap-6'\n },\n tableContainer: 'flex justify-between',\n dialog: {\n base: 'fixed inset-0 bg-background-neutral-canvas-base/70 flex justify-center items-center z-50',\n container:\n 'bg-background-neutral-canvas-base rounded-md w-11/12 h-5/6 overflow-auto'\n }\n },\n footer: {\n base: 'mt-3 flex gap-1.5',\n copy: 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!',\n upvote:\n 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!',\n downvote:\n 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!',\n refresh:\n 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!'\n }\n }\n },\n input: {\n base: 'flex mt-4 relative',\n upload:\n 'px-5 py-2 size-10 text-content-text-neutral-2 hover:text-content-text-neutral-base',\n input:\n 'w-full border rounded-3xl px-3 py-2 pr-16 after:hidden after:mx-10! [&>textarea]:w-full [&>textarea]:flex-none [&>textarea]:outline-none [&>textarea]:resize-none',\n actions: {\n base: 'absolute flex gap-2 items-center right-2 inset-y-1/2 -translate-y-1/2 z-10',\n send: 'px-3 py-3 hover:bg-primary-hover rounded-full size-8',\n stop: 'px-2 py-2 bg-content-assets-semantic-error-base text-white rounded-full hover:bg-content-assets-semantic-error-1 size-8'\n }\n }\n}"
|
|
331
331
|
},
|
|
332
332
|
"description": "Custom theme for the appbar",
|
|
333
333
|
"name": "theme",
|
|
@@ -833,7 +833,7 @@
|
|
|
833
833
|
},
|
|
834
834
|
"theme": {
|
|
835
835
|
"defaultValue": {
|
|
836
|
-
"value": "{\n 'code[class*=\"language-\"]': {\n 'background': '#11111f',\n 'color': '#e2e8f0',\n 'textShadow': '0 1px rgba(0, 0, 0, 0.3)',\n 'fontFamily': '\"Fira Code\", \"Fira Mono\", Menlo, Consolas, \"DejaVu Sans Mono\", monospace',\n 'direction': 'ltr',\n 'textAlign': 'left',\n 'whiteSpace': 'pre',\n 'wordSpacing': 'normal',\n 'wordBreak': 'normal',\n 'lineHeight': '1.5',\n 'MozTabSize': '2',\n 'OTabSize': '2',\n 'tabSize': '2',\n 'WebkitHyphens': 'none',\n 'MozHyphens': 'none',\n 'msHyphens': 'none',\n 'hyphens': 'none'\n },\n 'pre[class*=\"language-\"]': {\n 'background': '#11111f',\n 'color': '#e2e8f0',\n 'textShadow': '0 1px rgba(0, 0, 0, 0.3)',\n 'fontFamily': '\"Fira Code\", \"Fira Mono\", Menlo, Consolas, \"DejaVu Sans Mono\", monospace',\n 'direction': 'ltr',\n 'textAlign': 'left',\n 'whiteSpace': 'pre',\n 'wordSpacing': 'normal',\n 'wordBreak': 'normal',\n 'lineHeight': '1.5',\n 'MozTabSize': '2',\n 'OTabSize': '2',\n 'tabSize': '2',\n 'WebkitHyphens': 'none',\n 'MozHyphens': 'none',\n 'msHyphens': 'none',\n 'hyphens': 'none',\n 'padding': '1em',\n 'margin': '0',\n 'overflow': 'auto'\n },\n 'code[class*=\"language-\"]::-moz-selection': {\n 'background': '#1e293b',\n 'color': 'inherit',\n 'textShadow': 'none'\n },\n 'code[class*=\"language-\"] *::-moz-selection': {\n 'background': '#1e293b',\n 'color': 'inherit',\n 'textShadow': 'none'\n },\n 'pre[class*=\"language-\"] *::-moz-selection': {\n 'background': '#1e293b',\n 'color': 'inherit',\n 'textShadow': 'none'\n },\n 'code[class*=\"language-\"]::selection': {\n 'background': '#1e293b',\n 'color': 'inherit',\n 'textShadow': 'none'\n },\n 'code[class*=\"language-\"] *::selection': {\n 'background': '#1e293b',\n 'color': 'inherit',\n 'textShadow': 'none'\n },\n 'pre[class*=\"language-\"] *::selection': {\n 'background': '#1e293b',\n 'color': 'inherit',\n 'textShadow': 'none'\n },\n ':not(pre) > code[class*=\"language-\"]': {\n 'padding': '0.2em 0.3em',\n 'borderRadius': '0.3em',\n 'whiteSpace': 'normal'\n },\n 'comment': {\n 'color': '#64748b',\n 'fontStyle': 'italic'\n },\n 'prolog': {\n 'color': '#64748b'\n },\n 'cdata': {\n 'color': '#64748b'\n },\n 'doctype': {\n 'color': '#e2e8f0'\n },\n 'punctuation': {\n 'color': '#e2e8f0'\n },\n 'entity': {\n 'color': '#3b82f6',\n 'cursor': 'help'\n },\n 'attr-name': {\n 'color': '#f59e0b'\n },\n 'class-name': {\n 'color': '#f59e0b'\n },\n 'boolean': {\n 'color': '#3b82f6'\n },\n 'constant': {\n 'color': '#3b82f6'\n },\n 'number': {\n 'color': '#3b82f6'\n },\n 'atrule': {\n 'color': '#f59e0b'\n },\n 'keyword': {\n 'color': '#f472b6'\n },\n 'property': {\n 'color': '#3b82f6'\n },\n 'tag': {\n 'color': '#3b82f6'\n },\n 'symbol': {\n 'color': '#3b82f6'\n },\n 'deleted': {\n 'color': '#ef4444'\n },\n 'important': {\n 'color': '#f472b6'\n },\n 'selector': {\n 'color': '#10b981'\n },\n 'string': {\n 'color': '#10b981'\n },\n 'char': {\n 'color': '#10b981'\n },\n 'builtin': {\n 'color': '#10b981'\n },\n 'inserted': {\n 'color': '#10b981'\n },\n 'regex': {\n 'color': '#10b981'\n },\n 'attr-value': {\n 'color': '#10b981'\n },\n 'attr-value > .token.punctuation': {\n 'color': '#10b981'\n },\n 'variable': {\n 'color': '#60a5fa'\n },\n 'operator': {\n 'color': '#60a5fa'\n },\n 'function': {\n 'color': '#60a5fa'\n },\n 'url': {\n 'color': '#60a5fa'\n },\n 'attr-value > .token.punctuation.attr-equals': {\n 'color': '#e2e8f0'\n },\n 'special-attr > .token.attr-value > .token.value.css': {\n 'color': '#e2e8f0'\n },\n '.language-css .token.selector': {\n 'color': '#3b82f6'\n },\n '.language-css .token.property': {\n 'color': '#e2e8f0'\n },\n '.language-css .token.function': {\n 'color': '#60a5fa'\n },\n '.language-css .token.url > .token.function': {\n 'color': '#60a5fa'\n },\n '.language-css .token.url > .token.string.url': {\n 'color': '#10b981'\n },\n '.language-css .token.important': {\n 'color': '#f472b6'\n },\n '.language-css .token.atrule .token.rule': {\n 'color': '#f472b6'\n },\n '.language-javascript .token.operator': {\n 'color': '#f472b6'\n },\n '.language-javascript .token.template-string > .token.interpolation > .token.interpolation-punctuation.punctuation': {\n 'color': '#ef4444'\n },\n '.language-json .token.operator': {\n 'color': '#e2e8f0'\n },\n '.language-json .token.null.keyword': {\n 'color': '#3b82f6'\n },\n '.language-markdown .token.url': {\n 'color': '#e2e8f0'\n },\n '.language-markdown .token.url > .token.operator': {\n 'color': '#e2e8f0'\n },\n '.language-markdown .token.url-reference.url > .token.string': {\n 'color': '#e2e8f0'\n },\n '.language-markdown .token.url > .token.content': {\n 'color': '#60a5fa'\n },\n '.language-markdown .token.url > .token.url': {\n 'color': '#60a5fa'\n },\n '.language-markdown .token.url-reference.url': {\n 'color': '#60a5fa'\n },\n '.language-markdown .token.blockquote.punctuation': {\n 'color': '#64748b',\n 'fontStyle': 'italic'\n },\n '.language-markdown .token.hr.punctuation': {\n 'color': '#64748b',\n 'fontStyle': 'italic'\n },\n '.language-markdown .token.code-snippet': {\n 'color': '#10b981'\n },\n '.language-markdown .token.bold .token.content': {\n 'color': '#f59e0b'\n },\n '.language-markdown .token.italic .token.content': {\n 'color': '#f472b6'\n },\n '.language-markdown .token.strike .token.content': {\n 'color': '#3b82f6'\n },\n '.language-markdown .token.strike .token.punctuation': {\n 'color': '#3b82f6'\n },\n '.language-markdown .token.list.punctuation': {\n 'color': '#3b82f6'\n },\n '.language-markdown .token.title.important > .token.punctuation': {\n 'color': '#3b82f6'\n },\n 'bold': {\n 'fontWeight': 'bold'\n },\n 'italic': {\n 'fontStyle': 'italic'\n },\n 'namespace': {\n 'Opacity': '0.8'\n },\n 'token.tab:not(:empty):before': {\n 'color': '#64748b',\n 'textShadow': 'none'\n },\n 'token.cr:before': {\n 'color': '#64748b',\n 'textShadow': 'none'\n },\n 'token.lf:before': {\n 'color': '#64748b',\n 'textShadow': 'none'\n },\n 'token.space:before': {\n 'color': '#64748b',\n 'textShadow': 'none'\n },\n 'div.code-toolbar > .toolbar.toolbar > .toolbar-item': {\n 'marginRight': '0.4em'\n },\n 'div.code-toolbar > .toolbar.toolbar > .toolbar-item > button': {\n 'background': '#1e293b',\n 'color': '#94a3b8',\n 'padding': '0.1em 0.4em',\n 'borderRadius': '0.3em'\n },\n 'div.code-toolbar > .toolbar.toolbar > .toolbar-item > a': {\n 'background': '#1e293b',\n 'color': '#94a3b8',\n 'padding': '0.1em 0.4em',\n 'borderRadius': '0.3em'\n },\n 'div.code-toolbar > .toolbar.toolbar > .toolbar-item > span': {\n 'background': '#1e293b',\n 'color': '#94a3b8',\n 'padding': '0.1em 0.4em',\n 'borderRadius': '0.3em'\n },\n 'div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover': {\n 'background': '#3b82f6',\n 'color': '#ffffff'\n },\n 'div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus': {\n 'background': '#3b82f6',\n 'color': '#ffffff'\n },\n 'div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover': {\n 'background': '#3b82f6',\n 'color': '#ffffff'\n },\n 'div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus': {\n 'background': '#3b82f6',\n 'color': '#ffffff'\n },\n 'div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover': {\n 'background': '#3b82f6',\n 'color': '#ffffff'\n },\n 'div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus': {\n 'background': '#3b82f6',\n 'color': '#ffffff'\n },\n '.line-highlight.line-highlight': {\n 'background': 'rgba(59, 130, 246, 0.08)'\n },\n '.line-highlight.line-highlight:before': {\n 'background': '#1e293b',\n 'color': '#e2e8f0',\n 'padding': '0.1em 0.6em',\n 'borderRadius': '0.3em',\n 'boxShadow': '0 2px 0 0 rgba(0, 0, 0, 0.2)'\n },\n '.line-highlight.line-highlight[data-end]:after': {\n 'background': '#1e293b',\n 'color': '#e2e8f0',\n 'padding': '0.1em 0.6em',\n 'borderRadius': '0.3em',\n 'boxShadow': '0 2px 0 0 rgba(0, 0, 0, 0.2)'\n },\n 'pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before': {\n 'backgroundColor': 'rgba(59, 130, 246, 0.08)'\n },\n '.line-numbers.line-numbers .line-numbers-rows': {\n 'borderRightColor': '#1e293b'\n },\n '.command-line .command-line-prompt': {\n 'borderRightColor': '#1e293b'\n },\n '.line-numbers .line-numbers-rows > span:before': {\n 'color': '#64748b'\n },\n '.command-line .command-line-prompt > span:before': {\n 'color': '#64748b'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-1': {\n 'color': '#3b82f6'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-5': {\n 'color': '#3b82f6'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-9': {\n 'color': '#3b82f6'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-2': {\n 'color': '#10b981'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-6': {\n 'color': '#10b981'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-10': {\n 'color': '#10b981'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-3': {\n 'color': '#60a5fa'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-7': {\n 'color': '#60a5fa'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-11': {\n 'color': '#60a5fa'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-4': {\n 'color': '#f472b6'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-8': {\n 'color': '#f472b6'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-12': {\n 'color': '#f472b6'\n },\n 'pre.diff-highlight > code .token.token.deleted:not(.prefix)': {\n 'backgroundColor': 'rgba(239, 68, 68, 0.15)'\n },\n 'pre > code.diff-highlight .token.token.deleted:not(.prefix)': {\n 'backgroundColor': 'rgba(239, 68, 68, 0.15)'\n },\n 'pre.diff-highlight > code .token.token.deleted:not(.prefix)::-moz-selection': {\n 'backgroundColor': 'rgba(239, 68, 68, 0.25)'\n },\n 'pre.diff-highlight > code .token.token.deleted:not(.prefix) *::-moz-selection': {\n 'backgroundColor': 'rgba(239, 68, 68, 0.25)'\n },\n 'pre > code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection': {\n 'backgroundColor': 'rgba(239, 68, 68, 0.25)'\n },\n 'pre > code.diff-highlight .token.token.deleted:not(.prefix) *::-moz-selection': {\n 'backgroundColor': 'rgba(239, 68, 68, 0.25)'\n },\n 'pre.diff-highlight > code .token.token.deleted:not(.prefix)::selection': {\n 'backgroundColor': 'rgba(239, 68, 68, 0.25)'\n },\n 'pre.diff-highlight > code .token.token.deleted:not(.prefix) *::selection': {\n 'backgroundColor': 'rgba(239, 68, 68, 0.25)'\n },\n 'pre > code.diff-highlight .token.token.deleted:not(.prefix)::selection': {\n 'backgroundColor': 'rgba(239, 68, 68, 0.25)'\n },\n 'pre > code.diff-highlight .token.token.deleted:not(.prefix) *::selection': {\n 'backgroundColor': 'rgba(239, 68, 68, 0.25)'\n },\n 'pre.diff-highlight > code .token.token.inserted:not(.prefix)': {\n 'backgroundColor': 'rgba(16, 185, 129, 0.15)'\n },\n 'pre > code.diff-highlight .token.token.inserted:not(.prefix)': {\n 'backgroundColor': 'rgba(16, 185, 129, 0.15)'\n },\n 'pre.diff-highlight > code .token.token.inserted:not(.prefix)::-moz-selection': {\n 'backgroundColor': 'rgba(16, 185, 129, 0.25)'\n },\n 'pre.diff-highlight > code .token.token.inserted:not(.prefix) *::-moz-selection': {\n 'backgroundColor': 'rgba(16, 185, 129, 0.25)'\n },\n 'pre > code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection': {\n 'backgroundColor': 'rgba(16, 185, 129, 0.25)'\n },\n 'pre > code.diff-highlight .token.token.inserted:not(.prefix) *::-moz-selection': {\n 'backgroundColor': 'rgba(16, 185, 129, 0.25)'\n },\n 'pre.diff-highlight > code .token.token.inserted:not(.prefix)::selection': {\n 'backgroundColor': 'rgba(16, 185, 129, 0.25)'\n },\n 'pre.diff-highlight > code .token.token.inserted:not(.prefix) *::selection': {\n 'backgroundColor': 'rgba(16, 185, 129, 0.25)'\n },\n 'pre > code.diff-highlight .token.token.inserted:not(.prefix)::selection': {\n 'backgroundColor': 'rgba(16, 185, 129, 0.25)'\n },\n 'pre > code.diff-highlight .token.token.inserted:not(.prefix) *::selection': {\n 'backgroundColor': 'rgba(16, 185, 129, 0.25)'\n },\n '.prism-previewer.prism-previewer:before': {\n 'borderColor': '#11111f'\n },\n '.prism-previewer-gradient.prism-previewer-gradient div': {\n 'borderColor': '#11111f',\n 'borderRadius': '0.3em'\n },\n '.prism-previewer-color.prism-previewer-color:before': {\n 'borderRadius': '0.3em'\n },\n '.prism-previewer-easing.prism-previewer-easing:before': {\n 'borderRadius': '0.3em'\n },\n '.prism-previewer.prism-previewer:after': {\n 'borderTopColor': '#11111f'\n },\n '.prism-previewer-flipped.prism-previewer-flipped.after': {\n 'borderBottomColor': '#11111f'\n },\n '.prism-previewer-angle.prism-previewer-angle:before': {\n 'background': '#1e293b'\n },\n '.prism-previewer-time.prism-previewer-time:before': {\n 'background': '#1e293b'\n },\n '.prism-previewer-easing.prism-previewer-easing': {\n 'background': '#1e293b'\n },\n '.prism-previewer-angle.prism-previewer-angle circle': {\n 'stroke': '#e2e8f0',\n 'strokeOpacity': '1'\n },\n '.prism-previewer-time.prism-previewer-time circle': {\n 'stroke': '#e2e8f0',\n 'strokeOpacity': '1'\n },\n '.prism-previewer-easing.prism-previewer-easing circle': {\n 'stroke': '#e2e8f0',\n 'fill': 'transparent'\n },\n '.prism-previewer-easing.prism-previewer-easing path': {\n 'stroke': '#e2e8f0'\n },\n '.prism-previewer-easing.prism-previewer-easing line': {\n 'stroke': '#e2e8f0'\n }\n}"
|
|
836
|
+
"value": "{\n 'code[class*=\"language-\"]': {\n background: '#11111f',\n color: '#e2e8f0',\n textShadow: '0 1px rgba(0, 0, 0, 0.3)',\n fontFamily:\n '\"Fira Code\", \"Fira Mono\", Menlo, Consolas, \"DejaVu Sans Mono\", monospace',\n direction: 'ltr',\n textAlign: 'left',\n whiteSpace: 'pre',\n wordSpacing: 'normal',\n wordBreak: 'normal',\n lineHeight: '1.5',\n MozTabSize: '2',\n OTabSize: '2',\n tabSize: '2',\n WebkitHyphens: 'none',\n MozHyphens: 'none',\n msHyphens: 'none',\n hyphens: 'none'\n },\n 'pre[class*=\"language-\"]': {\n background: '#11111f',\n color: '#e2e8f0',\n textShadow: '0 1px rgba(0, 0, 0, 0.3)',\n fontFamily:\n '\"Fira Code\", \"Fira Mono\", Menlo, Consolas, \"DejaVu Sans Mono\", monospace',\n direction: 'ltr',\n textAlign: 'left',\n whiteSpace: 'pre',\n wordSpacing: 'normal',\n wordBreak: 'normal',\n lineHeight: '1.5',\n MozTabSize: '2',\n OTabSize: '2',\n tabSize: '2',\n WebkitHyphens: 'none',\n MozHyphens: 'none',\n msHyphens: 'none',\n hyphens: 'none',\n padding: '1em',\n margin: '0',\n overflow: 'auto'\n },\n 'code[class*=\"language-\"]::-moz-selection': {\n background: '#1e293b',\n color: 'inherit',\n textShadow: 'none'\n },\n 'code[class*=\"language-\"] *::-moz-selection': {\n background: '#1e293b',\n color: 'inherit',\n textShadow: 'none'\n },\n 'pre[class*=\"language-\"] *::-moz-selection': {\n background: '#1e293b',\n color: 'inherit',\n textShadow: 'none'\n },\n 'code[class*=\"language-\"]::selection': {\n background: '#1e293b',\n color: 'inherit',\n textShadow: 'none'\n },\n 'code[class*=\"language-\"] *::selection': {\n background: '#1e293b',\n color: 'inherit',\n textShadow: 'none'\n },\n 'pre[class*=\"language-\"] *::selection': {\n background: '#1e293b',\n color: 'inherit',\n textShadow: 'none'\n },\n ':not(pre) > code[class*=\"language-\"]': {\n padding: '0.2em 0.3em',\n borderRadius: '0.3em',\n whiteSpace: 'normal'\n },\n comment: {\n color: '#64748b',\n fontStyle: 'italic'\n },\n prolog: {\n color: '#64748b'\n },\n cdata: {\n color: '#64748b'\n },\n doctype: {\n color: '#e2e8f0'\n },\n punctuation: {\n color: '#e2e8f0'\n },\n entity: {\n color: '#3b82f6',\n cursor: 'help'\n },\n 'attr-name': {\n color: '#f59e0b'\n },\n 'class-name': {\n color: '#f59e0b'\n },\n boolean: {\n color: '#3b82f6'\n },\n constant: {\n color: '#3b82f6'\n },\n number: {\n color: '#3b82f6'\n },\n atrule: {\n color: '#f59e0b'\n },\n keyword: {\n color: '#f472b6'\n },\n property: {\n color: '#3b82f6'\n },\n tag: {\n color: '#3b82f6'\n },\n symbol: {\n color: '#3b82f6'\n },\n deleted: {\n color: '#ef4444'\n },\n important: {\n color: '#f472b6'\n },\n selector: {\n color: '#10b981'\n },\n string: {\n color: '#10b981'\n },\n char: {\n color: '#10b981'\n },\n builtin: {\n color: '#10b981'\n },\n inserted: {\n color: '#10b981'\n },\n regex: {\n color: '#10b981'\n },\n 'attr-value': {\n color: '#10b981'\n },\n 'attr-value > .token.punctuation': {\n color: '#10b981'\n },\n variable: {\n color: '#60a5fa'\n },\n operator: {\n color: '#60a5fa'\n },\n function: {\n color: '#60a5fa'\n },\n url: {\n color: '#60a5fa'\n },\n 'attr-value > .token.punctuation.attr-equals': {\n color: '#e2e8f0'\n },\n 'special-attr > .token.attr-value > .token.value.css': {\n color: '#e2e8f0'\n },\n '.language-css .token.selector': {\n color: '#3b82f6'\n },\n '.language-css .token.property': {\n color: '#e2e8f0'\n },\n '.language-css .token.function': {\n color: '#60a5fa'\n },\n '.language-css .token.url > .token.function': {\n color: '#60a5fa'\n },\n '.language-css .token.url > .token.string.url': {\n color: '#10b981'\n },\n '.language-css .token.important': {\n color: '#f472b6'\n },\n '.language-css .token.atrule .token.rule': {\n color: '#f472b6'\n },\n '.language-javascript .token.operator': {\n color: '#f472b6'\n },\n '.language-javascript .token.template-string > .token.interpolation > .token.interpolation-punctuation.punctuation':\n {\n color: '#ef4444'\n },\n '.language-json .token.operator': {\n color: '#e2e8f0'\n },\n '.language-json .token.null.keyword': {\n color: '#3b82f6'\n },\n '.language-markdown .token.url': {\n color: '#e2e8f0'\n },\n '.language-markdown .token.url > .token.operator': {\n color: '#e2e8f0'\n },\n '.language-markdown .token.url-reference.url > .token.string': {\n color: '#e2e8f0'\n },\n '.language-markdown .token.url > .token.content': {\n color: '#60a5fa'\n },\n '.language-markdown .token.url > .token.url': {\n color: '#60a5fa'\n },\n '.language-markdown .token.url-reference.url': {\n color: '#60a5fa'\n },\n '.language-markdown .token.blockquote.punctuation': {\n color: '#64748b',\n fontStyle: 'italic'\n },\n '.language-markdown .token.hr.punctuation': {\n color: '#64748b',\n fontStyle: 'italic'\n },\n '.language-markdown .token.code-snippet': {\n color: '#10b981'\n },\n '.language-markdown .token.bold .token.content': {\n color: '#f59e0b'\n },\n '.language-markdown .token.italic .token.content': {\n color: '#f472b6'\n },\n '.language-markdown .token.strike .token.content': {\n color: '#3b82f6'\n },\n '.language-markdown .token.strike .token.punctuation': {\n color: '#3b82f6'\n },\n '.language-markdown .token.list.punctuation': {\n color: '#3b82f6'\n },\n '.language-markdown .token.title.important > .token.punctuation': {\n color: '#3b82f6'\n },\n bold: {\n fontWeight: 'bold'\n },\n italic: {\n fontStyle: 'italic'\n },\n namespace: {\n Opacity: '0.8'\n },\n 'token.tab:not(:empty):before': {\n color: '#64748b',\n textShadow: 'none'\n },\n 'token.cr:before': {\n color: '#64748b',\n textShadow: 'none'\n },\n 'token.lf:before': {\n color: '#64748b',\n textShadow: 'none'\n },\n 'token.space:before': {\n color: '#64748b',\n textShadow: 'none'\n },\n 'div.code-toolbar > .toolbar.toolbar > .toolbar-item': {\n marginRight: '0.4em'\n },\n 'div.code-toolbar > .toolbar.toolbar > .toolbar-item > button': {\n background: '#1e293b',\n color: '#94a3b8',\n padding: '0.1em 0.4em',\n borderRadius: '0.3em'\n },\n 'div.code-toolbar > .toolbar.toolbar > .toolbar-item > a': {\n background: '#1e293b',\n color: '#94a3b8',\n padding: '0.1em 0.4em',\n borderRadius: '0.3em'\n },\n 'div.code-toolbar > .toolbar.toolbar > .toolbar-item > span': {\n background: '#1e293b',\n color: '#94a3b8',\n padding: '0.1em 0.4em',\n borderRadius: '0.3em'\n },\n 'div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover': {\n background: '#3b82f6',\n color: '#ffffff'\n },\n 'div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus': {\n background: '#3b82f6',\n color: '#ffffff'\n },\n 'div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover': {\n background: '#3b82f6',\n color: '#ffffff'\n },\n 'div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus': {\n background: '#3b82f6',\n color: '#ffffff'\n },\n 'div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover': {\n background: '#3b82f6',\n color: '#ffffff'\n },\n 'div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus': {\n background: '#3b82f6',\n color: '#ffffff'\n },\n '.line-highlight.line-highlight': {\n background: 'rgba(59, 130, 246, 0.08)'\n },\n '.line-highlight.line-highlight:before': {\n background: '#1e293b',\n color: '#e2e8f0',\n padding: '0.1em 0.6em',\n borderRadius: '0.3em',\n boxShadow: '0 2px 0 0 rgba(0, 0, 0, 0.2)'\n },\n '.line-highlight.line-highlight[data-end]:after': {\n background: '#1e293b',\n color: '#e2e8f0',\n padding: '0.1em 0.6em',\n borderRadius: '0.3em',\n boxShadow: '0 2px 0 0 rgba(0, 0, 0, 0.2)'\n },\n 'pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before':\n {\n backgroundColor: 'rgba(59, 130, 246, 0.08)'\n },\n '.line-numbers.line-numbers .line-numbers-rows': {\n borderRightColor: '#1e293b'\n },\n '.command-line .command-line-prompt': {\n borderRightColor: '#1e293b'\n },\n '.line-numbers .line-numbers-rows > span:before': {\n color: '#64748b'\n },\n '.command-line .command-line-prompt > span:before': {\n color: '#64748b'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-1': {\n color: '#3b82f6'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-5': {\n color: '#3b82f6'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-9': {\n color: '#3b82f6'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-2': {\n color: '#10b981'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-6': {\n color: '#10b981'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-10': {\n color: '#10b981'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-3': {\n color: '#60a5fa'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-7': {\n color: '#60a5fa'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-11': {\n color: '#60a5fa'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-4': {\n color: '#f472b6'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-8': {\n color: '#f472b6'\n },\n '.rainbow-braces .token.token.punctuation.brace-level-12': {\n color: '#f472b6'\n },\n 'pre.diff-highlight > code .token.token.deleted:not(.prefix)': {\n backgroundColor: 'rgba(239, 68, 68, 0.15)'\n },\n 'pre > code.diff-highlight .token.token.deleted:not(.prefix)': {\n backgroundColor: 'rgba(239, 68, 68, 0.15)'\n },\n 'pre.diff-highlight > code .token.token.deleted:not(.prefix)::-moz-selection':\n {\n backgroundColor: 'rgba(239, 68, 68, 0.25)'\n },\n 'pre.diff-highlight > code .token.token.deleted:not(.prefix) *::-moz-selection':\n {\n backgroundColor: 'rgba(239, 68, 68, 0.25)'\n },\n 'pre > code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection':\n {\n backgroundColor: 'rgba(239, 68, 68, 0.25)'\n },\n 'pre > code.diff-highlight .token.token.deleted:not(.prefix) *::-moz-selection':\n {\n backgroundColor: 'rgba(239, 68, 68, 0.25)'\n },\n 'pre.diff-highlight > code .token.token.deleted:not(.prefix)::selection': {\n backgroundColor: 'rgba(239, 68, 68, 0.25)'\n },\n 'pre.diff-highlight > code .token.token.deleted:not(.prefix) *::selection': {\n backgroundColor: 'rgba(239, 68, 68, 0.25)'\n },\n 'pre > code.diff-highlight .token.token.deleted:not(.prefix)::selection': {\n backgroundColor: 'rgba(239, 68, 68, 0.25)'\n },\n 'pre > code.diff-highlight .token.token.deleted:not(.prefix) *::selection': {\n backgroundColor: 'rgba(239, 68, 68, 0.25)'\n },\n 'pre.diff-highlight > code .token.token.inserted:not(.prefix)': {\n backgroundColor: 'rgba(16, 185, 129, 0.15)'\n },\n 'pre > code.diff-highlight .token.token.inserted:not(.prefix)': {\n backgroundColor: 'rgba(16, 185, 129, 0.15)'\n },\n 'pre.diff-highlight > code .token.token.inserted:not(.prefix)::-moz-selection':\n {\n backgroundColor: 'rgba(16, 185, 129, 0.25)'\n },\n 'pre.diff-highlight > code .token.token.inserted:not(.prefix) *::-moz-selection':\n {\n backgroundColor: 'rgba(16, 185, 129, 0.25)'\n },\n 'pre > code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection':\n {\n backgroundColor: 'rgba(16, 185, 129, 0.25)'\n },\n 'pre > code.diff-highlight .token.token.inserted:not(.prefix) *::-moz-selection':\n {\n backgroundColor: 'rgba(16, 185, 129, 0.25)'\n },\n 'pre.diff-highlight > code .token.token.inserted:not(.prefix)::selection': {\n backgroundColor: 'rgba(16, 185, 129, 0.25)'\n },\n 'pre.diff-highlight > code .token.token.inserted:not(.prefix) *::selection': {\n backgroundColor: 'rgba(16, 185, 129, 0.25)'\n },\n 'pre > code.diff-highlight .token.token.inserted:not(.prefix)::selection': {\n backgroundColor: 'rgba(16, 185, 129, 0.25)'\n },\n 'pre > code.diff-highlight .token.token.inserted:not(.prefix) *::selection': {\n backgroundColor: 'rgba(16, 185, 129, 0.25)'\n },\n '.prism-previewer.prism-previewer:before': {\n borderColor: '#11111f'\n },\n '.prism-previewer-gradient.prism-previewer-gradient div': {\n borderColor: '#11111f',\n borderRadius: '0.3em'\n },\n '.prism-previewer-color.prism-previewer-color:before': {\n borderRadius: '0.3em'\n },\n '.prism-previewer-easing.prism-previewer-easing:before': {\n borderRadius: '0.3em'\n },\n '.prism-previewer.prism-previewer:after': {\n borderTopColor: '#11111f'\n },\n '.prism-previewer-flipped.prism-previewer-flipped.after': {\n borderBottomColor: '#11111f'\n },\n '.prism-previewer-angle.prism-previewer-angle:before': {\n background: '#1e293b'\n },\n '.prism-previewer-time.prism-previewer-time:before': {\n background: '#1e293b'\n },\n '.prism-previewer-easing.prism-previewer-easing': {\n background: '#1e293b'\n },\n '.prism-previewer-angle.prism-previewer-angle circle': {\n stroke: '#e2e8f0',\n strokeOpacity: '1'\n },\n '.prism-previewer-time.prism-previewer-time circle': {\n stroke: '#e2e8f0',\n strokeOpacity: '1'\n },\n '.prism-previewer-easing.prism-previewer-easing circle': {\n stroke: '#e2e8f0',\n fill: 'transparent'\n },\n '.prism-previewer-easing.prism-previewer-easing path': {\n stroke: '#e2e8f0'\n },\n '.prism-previewer-easing.prism-previewer-easing line': {\n stroke: '#e2e8f0'\n }\n}"
|
|
837
837
|
},
|
|
838
838
|
"description": "The theme to use for the code block.",
|
|
839
839
|
"name": "theme",
|
|
@@ -877,7 +877,7 @@
|
|
|
877
877
|
],
|
|
878
878
|
"required": false,
|
|
879
879
|
"type": {
|
|
880
|
-
"name": "Plugin
|
|
880
|
+
"name": "Plugin[]"
|
|
881
881
|
}
|
|
882
882
|
},
|
|
883
883
|
"rehypePlugins": {
|
|
@@ -898,7 +898,7 @@
|
|
|
898
898
|
],
|
|
899
899
|
"required": false,
|
|
900
900
|
"type": {
|
|
901
|
-
"name": "Plugin
|
|
901
|
+
"name": "Plugin[]"
|
|
902
902
|
}
|
|
903
903
|
}
|
|
904
904
|
}
|
|
@@ -1663,12 +1663,12 @@
|
|
|
1663
1663
|
"description": "URL of the source, if applicable",
|
|
1664
1664
|
"name": "url",
|
|
1665
1665
|
"parent": {
|
|
1666
|
-
"fileName": "src/types.ts",
|
|
1666
|
+
"fileName": "reachat/src/types.ts",
|
|
1667
1667
|
"name": "ConversationSource"
|
|
1668
1668
|
},
|
|
1669
1669
|
"declarations": [
|
|
1670
1670
|
{
|
|
1671
|
-
"fileName": "src/types.ts",
|
|
1671
|
+
"fileName": "reachat/src/types.ts",
|
|
1672
1672
|
"name": "ConversationSource"
|
|
1673
1673
|
}
|
|
1674
1674
|
],
|
|
@@ -1682,12 +1682,12 @@
|
|
|
1682
1682
|
"description": "Title or description of the source",
|
|
1683
1683
|
"name": "title",
|
|
1684
1684
|
"parent": {
|
|
1685
|
-
"fileName": "src/types.ts",
|
|
1685
|
+
"fileName": "reachat/src/types.ts",
|
|
1686
1686
|
"name": "ConversationSource"
|
|
1687
1687
|
},
|
|
1688
1688
|
"declarations": [
|
|
1689
1689
|
{
|
|
1690
|
-
"fileName": "src/types.ts",
|
|
1690
|
+
"fileName": "reachat/src/types.ts",
|
|
1691
1691
|
"name": "ConversationSource"
|
|
1692
1692
|
}
|
|
1693
1693
|
],
|
|
@@ -1701,12 +1701,12 @@
|
|
|
1701
1701
|
"description": "Image URL of the source, if applicable.",
|
|
1702
1702
|
"name": "image",
|
|
1703
1703
|
"parent": {
|
|
1704
|
-
"fileName": "src/types.ts",
|
|
1704
|
+
"fileName": "reachat/src/types.ts",
|
|
1705
1705
|
"name": "ConversationSource"
|
|
1706
1706
|
},
|
|
1707
1707
|
"declarations": [
|
|
1708
1708
|
{
|
|
1709
|
-
"fileName": "src/types.ts",
|
|
1709
|
+
"fileName": "reachat/src/types.ts",
|
|
1710
1710
|
"name": "ConversationSource"
|
|
1711
1711
|
}
|
|
1712
1712
|
],
|
|
@@ -1846,12 +1846,12 @@
|
|
|
1846
1846
|
"description": "Name of the file",
|
|
1847
1847
|
"name": "name",
|
|
1848
1848
|
"parent": {
|
|
1849
|
-
"fileName": "src/types.ts",
|
|
1849
|
+
"fileName": "reachat/src/types.ts",
|
|
1850
1850
|
"name": "ConversationFile"
|
|
1851
1851
|
},
|
|
1852
1852
|
"declarations": [
|
|
1853
1853
|
{
|
|
1854
|
-
"fileName": "src/types.ts",
|
|
1854
|
+
"fileName": "reachat/src/types.ts",
|
|
1855
1855
|
"name": "ConversationFile"
|
|
1856
1856
|
}
|
|
1857
1857
|
],
|
|
@@ -1865,12 +1865,12 @@
|
|
|
1865
1865
|
"description": "Type of the file",
|
|
1866
1866
|
"name": "type",
|
|
1867
1867
|
"parent": {
|
|
1868
|
-
"fileName": "src/types.ts",
|
|
1868
|
+
"fileName": "reachat/src/types.ts",
|
|
1869
1869
|
"name": "ConversationFile"
|
|
1870
1870
|
},
|
|
1871
1871
|
"declarations": [
|
|
1872
1872
|
{
|
|
1873
|
-
"fileName": "src/types.ts",
|
|
1873
|
+
"fileName": "reachat/src/types.ts",
|
|
1874
1874
|
"name": "ConversationFile"
|
|
1875
1875
|
}
|
|
1876
1876
|
],
|
|
@@ -1884,12 +1884,12 @@
|
|
|
1884
1884
|
"description": "Size of the file",
|
|
1885
1885
|
"name": "size",
|
|
1886
1886
|
"parent": {
|
|
1887
|
-
"fileName": "src/types.ts",
|
|
1887
|
+
"fileName": "reachat/src/types.ts",
|
|
1888
1888
|
"name": "ConversationFile"
|
|
1889
1889
|
},
|
|
1890
1890
|
"declarations": [
|
|
1891
1891
|
{
|
|
1892
|
-
"fileName": "src/types.ts",
|
|
1892
|
+
"fileName": "reachat/src/types.ts",
|
|
1893
1893
|
"name": "ConversationFile"
|
|
1894
1894
|
}
|
|
1895
1895
|
],
|
|
@@ -1903,12 +1903,12 @@
|
|
|
1903
1903
|
"description": "URL of the file",
|
|
1904
1904
|
"name": "url",
|
|
1905
1905
|
"parent": {
|
|
1906
|
-
"fileName": "src/types.ts",
|
|
1906
|
+
"fileName": "reachat/src/types.ts",
|
|
1907
1907
|
"name": "ConversationFile"
|
|
1908
1908
|
},
|
|
1909
1909
|
"declarations": [
|
|
1910
1910
|
{
|
|
1911
|
-
"fileName": "src/types.ts",
|
|
1911
|
+
"fileName": "reachat/src/types.ts",
|
|
1912
1912
|
"name": "ConversationFile"
|
|
1913
1913
|
}
|
|
1914
1914
|
],
|