@lobehub/ui 2.13.0 → 2.13.2
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/es/Drawer/Drawer.js +2 -1
- package/es/Image/Image.js +12 -11
- package/es/Image/style.d.ts +3 -6
- package/es/Image/style.js +8 -16
- package/es/Markdown/Markdown.js +2 -2
- package/es/hooks/useMarkdown/latex.js +18 -3
- package/es/hooks/useMarkdown/useMarkdownContent.js +2 -2
- package/es/hooks/useMarkdown/useMarkdownRemarkPlugins.js +4 -3
- package/es/hooks/useMarkdown/utils.d.ts +1 -1
- package/es/hooks/useMarkdown/utils.js +1 -1
- package/es/index.d.ts +9 -0
- package/es/index.js +9 -0
- package/package.json +16 -16
package/es/Drawer/Drawer.js
CHANGED
|
@@ -96,7 +96,7 @@ var Drawer = /*#__PURE__*/memo(function (_ref) {
|
|
|
96
96
|
style: _objectSpread({
|
|
97
97
|
background: theme.colorBgLayout,
|
|
98
98
|
borderRight: "1px solid ".concat(theme.colorBorderSecondary),
|
|
99
|
-
height: '
|
|
99
|
+
height: '100vh',
|
|
100
100
|
overflowX: 'hidden',
|
|
101
101
|
overflowY: 'auto',
|
|
102
102
|
position: 'sticky',
|
|
@@ -167,6 +167,7 @@ var Drawer = /*#__PURE__*/memo(function (_ref) {
|
|
|
167
167
|
justifySelf: 'center',
|
|
168
168
|
maxWidth: containerMaxWidth,
|
|
169
169
|
minHeight: '100%',
|
|
170
|
+
overflow: sidebar ? 'visible' : undefined,
|
|
170
171
|
width: '100%'
|
|
171
172
|
}, styles === null || styles === void 0 ? void 0 : styles.bodyContent),
|
|
172
173
|
children: [noHeader && extraNode, sidebar ? sidebarContent : children]
|
package/es/Image/Image.js
CHANGED
|
@@ -14,7 +14,7 @@ import { cva } from 'class-variance-authority';
|
|
|
14
14
|
import { memo, useMemo } from 'react';
|
|
15
15
|
import { Flexbox } from 'react-layout-kit';
|
|
16
16
|
import usePreview from "./components/usePreview";
|
|
17
|
-
import {
|
|
17
|
+
import { FALLBACK_DARK, FALLBACK_LIGHT, useStyles } from "./style";
|
|
18
18
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
19
19
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
20
20
|
var Image = /*#__PURE__*/memo(function (_ref) {
|
|
@@ -42,12 +42,7 @@ var Image = /*#__PURE__*/memo(function (_ref) {
|
|
|
42
42
|
height = _ref.height,
|
|
43
43
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
44
44
|
var _useStyles = useStyles({
|
|
45
|
-
alwaysShowActions: alwaysShowActions
|
|
46
|
-
maxHeight: maxHeight,
|
|
47
|
-
maxWidth: maxWidth,
|
|
48
|
-
minHeight: minHeight,
|
|
49
|
-
minWidth: minWidth,
|
|
50
|
-
objectFit: objectFit
|
|
45
|
+
alwaysShowActions: alwaysShowActions
|
|
51
46
|
}),
|
|
52
47
|
styles = _useStyles.styles,
|
|
53
48
|
cx = _useStyles.cx,
|
|
@@ -94,17 +89,23 @@ var Image = /*#__PURE__*/memo(function (_ref) {
|
|
|
94
89
|
className: styles.actions,
|
|
95
90
|
children: actions
|
|
96
91
|
}), /*#__PURE__*/_jsx(AntImage, _objectSpread({
|
|
97
|
-
className: classNames === null || classNames === void 0 ? void 0 : classNames.image,
|
|
98
|
-
fallback:
|
|
92
|
+
className: cx(styles.image, classNames === null || classNames === void 0 ? void 0 : classNames.image),
|
|
93
|
+
fallback: theme.isDarkMode ? FALLBACK_DARK : FALLBACK_LIGHT,
|
|
99
94
|
height: height,
|
|
100
95
|
loading: 'lazy',
|
|
101
96
|
onClick: onClick,
|
|
102
97
|
preview: preview === false ? false : _objectSpread({
|
|
103
98
|
mask: false
|
|
104
99
|
}, mergePreivew),
|
|
105
|
-
style: _objectSpread({
|
|
100
|
+
style: _objectSpread({
|
|
101
|
+
maxHeight: maxHeight,
|
|
102
|
+
maxWidth: maxWidth,
|
|
103
|
+
minHeight: minHeight,
|
|
104
|
+
minWidth: minWidth,
|
|
105
|
+
objectFit: objectFit || 'cover'
|
|
106
|
+
}, customStyles === null || customStyles === void 0 ? void 0 : customStyles.image),
|
|
106
107
|
width: width,
|
|
107
|
-
wrapperClassName: cx(styles.
|
|
108
|
+
wrapperClassName: cx(styles.wrapper, classNames === null || classNames === void 0 ? void 0 : classNames.wrapper),
|
|
108
109
|
wrapperStyle: _objectSpread({}, customStyles === null || customStyles === void 0 ? void 0 : customStyles.wrapper)
|
|
109
110
|
}, rest))]
|
|
110
111
|
});
|
package/es/Image/style.d.ts
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
export declare const useStyles: (props?: {
|
|
2
2
|
alwaysShowActions?: boolean | undefined;
|
|
3
|
-
maxHeight?: string | number | undefined;
|
|
4
|
-
maxWidth?: string | number | undefined;
|
|
5
|
-
minHeight?: string | number | undefined;
|
|
6
|
-
minWidth?: string | number | undefined;
|
|
7
|
-
objectFit?: string | undefined;
|
|
8
3
|
} | undefined) => import("antd-style").ReturnStyles<{
|
|
9
4
|
actions: string;
|
|
10
5
|
borderless: string;
|
|
@@ -15,5 +10,7 @@ export declare const useStyles: (props?: {
|
|
|
15
10
|
preview: import("antd-style").SerializedStyles;
|
|
16
11
|
root: import("antd-style").SerializedStyles;
|
|
17
12
|
toolbar: string;
|
|
13
|
+
wrapper: import("antd-style").SerializedStyles;
|
|
18
14
|
}>;
|
|
19
|
-
export declare const
|
|
15
|
+
export declare const FALLBACK_DARK = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgdmlld0JveD0iMCAwIDI1NiAyNTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2IiBmaWxsPSIjM0IzQjNCIi8+CjxwYXRoIGQ9Ik0xNTYuODg4IDkxLjAwMkgxMDAuMTEyQzk1LjYzMjkgOTEuMDAyIDkyLjAwMTUgOTQuNjMzNCA5Mi4wMDE1IDk5LjExMjdWMTU1Ljg4OEM5Mi4wMDE1IDE2MC4zNjcgOTUuNjMyOSAxNjMuOTk5IDEwMC4xMTIgMTYzLjk5OUgxNTYuODg4QzE2MS4zNjcgMTYzLjk5OSAxNjQuOTk4IDE2MC4zNjcgMTY0Ljk5OCAxNTUuODg4Vjk5LjExMjdDMTY0Ljk5OCA5NC42MzM0IDE2MS4zNjcgOTEuMDAyIDE1Ni44ODggOTEuMDAyWiIgc3Ryb2tlPSIjNjI2MjYyIiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTY0Ljk5OCAxMzkuNjY4TDE1Mi40ODQgMTI3LjE1M0MxNTAuOTYyIDEyNS42MzIgMTQ4LjkgMTI0Ljc3OCAxNDYuNzQ5IDEyNC43NzhDMTQ0LjU5OSAxMjQuNzc4IDE0Mi41MzYgMTI1LjYzMiAxNDEuMDE1IDEyNy4xNTNMMTA0LjE2OCAxNjRNMTE2LjMzNCAxMjMuNDQ1QzEyMC44MTMgMTIzLjQ0NSAxMjQuNDQ1IDExOS44MTQgMTI0LjQ0NSAxMTUuMzM0QzEyNC40NDUgMTEwLjg1NSAxMjAuODEzIDEwNy4yMjQgMTE2LjMzNCAxMDcuMjI0QzExMS44NTUgMTA3LjIyNCAxMDguMjIzIDExMC44NTUgMTA4LjIyMyAxMTUuMzM0QzEwOC4yMjMgMTE5LjgxNCAxMTEuODU1IDEyMy40NDUgMTE2LjMzNCAxMjMuNDQ1WiIgc3Ryb2tlPSIjNjI2MjYyIiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K";
|
|
16
|
+
export declare const FALLBACK_LIGHT = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgdmlld0JveD0iMCAwIDI1NiAyNTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2IiBmaWxsPSIjRUNFQ0VDIi8+CjxwYXRoIGQ9Ik0xNTYuODg4IDkxLjAwMkgxMDAuMTEyQzk1LjYzMjkgOTEuMDAyIDkyLjAwMTUgOTQuNjMzNCA5Mi4wMDE1IDk5LjExMjdWMTU1Ljg4OEM5Mi4wMDE1IDE2MC4zNjcgOTUuNjMyOSAxNjMuOTk5IDEwMC4xMTIgMTYzLjk5OUgxNTYuODg4QzE2MS4zNjcgMTYzLjk5OSAxNjQuOTk4IDE2MC4zNjcgMTY0Ljk5OCAxNTUuODg4Vjk5LjExMjdDMTY0Ljk5OCA5NC42MzM0IDE2MS4zNjcgOTEuMDAyIDE1Ni44ODggOTEuMDAyWiIgc3Ryb2tlPSIjRDdEN0Q3IiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTY0Ljk5OCAxMzkuNjY4TDE1Mi40ODQgMTI3LjE1M0MxNTAuOTYyIDEyNS42MzIgMTQ4LjkgMTI0Ljc3OCAxNDYuNzQ5IDEyNC43NzhDMTQ0LjU5OSAxMjQuNzc4IDE0Mi41MzYgMTI1LjYzMiAxNDEuMDE1IDEyNy4xNTNMMTA0LjE2OCAxNjRNMTE2LjMzNCAxMjMuNDQ1QzEyMC44MTMgMTIzLjQ0NSAxMjQuNDQ1IDExOS44MTQgMTI0LjQ0NSAxMTUuMzM0QzEyNC40NDUgMTEwLjg1NSAxMjAuODEzIDEwNy4yMjQgMTE2LjMzNCAxMDcuMjI0QzExMS44NTUgMTA3LjIyNCAxMDguMjIzIDExMC44NTUgMTA4LjIyMyAxMTUuMzM0QzEwOC4yMjMgMTE5LjgxNCAxMTEuODU1IDEyMy40NDUgMTE2LjMzNCAxMjMuNDQ1WiIgc3Ryb2tlPSIjRDdEN0Q3IiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K";
|
package/es/Image/style.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
1
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
2
2
|
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
3
3
|
import { createStyles } from 'antd-style';
|
|
4
4
|
import { rgba } from 'polished';
|
|
@@ -6,30 +6,22 @@ export var useStyles = createStyles(function (_ref) {
|
|
|
6
6
|
var cx = _ref.cx,
|
|
7
7
|
css = _ref.css,
|
|
8
8
|
token = _ref.token,
|
|
9
|
-
stylish = _ref.stylish
|
|
10
|
-
prefixCls = _ref.prefixCls;
|
|
9
|
+
stylish = _ref.stylish;
|
|
11
10
|
var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
12
|
-
|
|
13
|
-
maxWidth = _ref2.maxWidth,
|
|
14
|
-
minWidth = _ref2.minWidth,
|
|
15
|
-
minHeight = _ref2.minHeight,
|
|
16
|
-
alwaysShowActions = _ref2.alwaysShowActions,
|
|
17
|
-
objectFit = _ref2.objectFit;
|
|
18
|
-
var MAX_HEIGHT = typeof maxHeight === 'number' ? "".concat(maxHeight, "px") : maxHeight;
|
|
19
|
-
var MAX_WIDTH = typeof maxWidth === 'number' ? "".concat(maxWidth, "px") : maxWidth;
|
|
20
|
-
var MIN_HEIGHT = typeof minHeight === 'number' ? "".concat(minHeight, "px") : minHeight;
|
|
21
|
-
var MIN_WIDTH = typeof minWidth === 'number' ? "".concat(minWidth, "px") : minWidth;
|
|
11
|
+
alwaysShowActions = _ref2.alwaysShowActions;
|
|
22
12
|
var actions = cx(css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n cursor: pointer;\n\n position: absolute;\n z-index: 1;\n inset-block-start: 0;\n inset-inline-end: 0;\n\n opacity: ", ";\n "])), alwaysShowActions ? 1 : 0));
|
|
23
13
|
return {
|
|
24
14
|
actions: actions,
|
|
25
15
|
borderless: stylish.variantBorderlessWithoutHover,
|
|
26
16
|
filled: cx(stylish.variantOutlinedWithoutHover, stylish.variantFilledWithoutHover),
|
|
27
|
-
image: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n
|
|
17
|
+
image: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: auto;\n height: auto;\n "]))),
|
|
28
18
|
mask: cx(stylish.blur, css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n backdrop-filter: blur(8px);\n "])))),
|
|
29
19
|
outlined: stylish.variantOutlinedWithoutHover,
|
|
30
20
|
preview: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n img {\n width: 100%;\n }\n "]))),
|
|
31
21
|
root: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n cursor: pointer;\n user-select: none;\n\n position: relative;\n\n overflow: hidden;\n\n width: fit-content;\n border-radius: ", "px;\n\n line-height: 1;\n\n &:hover {\n .", " {\n opacity: 1;\n }\n }\n "])), token.borderRadius, actions),
|
|
32
|
-
toolbar: cx(stylish.blur, stylish.variantOutlinedWithoutHover, css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n padding: 4px;\n border-color: ", ";\n border-radius: ", "px;\n background: ", ";\n "])), token.colorFillTertiary, token.borderRadiusLG, rgba(token.colorBgMask, 0.5)))
|
|
22
|
+
toolbar: cx(stylish.blur, stylish.variantOutlinedWithoutHover, css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n padding: 4px;\n border-color: ", ";\n border-radius: ", "px;\n background: ", ";\n "])), token.colorFillTertiary, token.borderRadiusLG, rgba(token.colorBgMask, 0.5))),
|
|
23
|
+
wrapper: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n position: relative;\n overflow: hidden;\n max-width: 100%;\n height: auto;\n "])))
|
|
33
24
|
};
|
|
34
25
|
});
|
|
35
|
-
export var
|
|
26
|
+
export var FALLBACK_DARK = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgdmlld0JveD0iMCAwIDI1NiAyNTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2IiBmaWxsPSIjM0IzQjNCIi8+CjxwYXRoIGQ9Ik0xNTYuODg4IDkxLjAwMkgxMDAuMTEyQzk1LjYzMjkgOTEuMDAyIDkyLjAwMTUgOTQuNjMzNCA5Mi4wMDE1IDk5LjExMjdWMTU1Ljg4OEM5Mi4wMDE1IDE2MC4zNjcgOTUuNjMyOSAxNjMuOTk5IDEwMC4xMTIgMTYzLjk5OUgxNTYuODg4QzE2MS4zNjcgMTYzLjk5OSAxNjQuOTk4IDE2MC4zNjcgMTY0Ljk5OCAxNTUuODg4Vjk5LjExMjdDMTY0Ljk5OCA5NC42MzM0IDE2MS4zNjcgOTEuMDAyIDE1Ni44ODggOTEuMDAyWiIgc3Ryb2tlPSIjNjI2MjYyIiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTY0Ljk5OCAxMzkuNjY4TDE1Mi40ODQgMTI3LjE1M0MxNTAuOTYyIDEyNS42MzIgMTQ4LjkgMTI0Ljc3OCAxNDYuNzQ5IDEyNC43NzhDMTQ0LjU5OSAxMjQuNzc4IDE0Mi41MzYgMTI1LjYzMiAxNDEuMDE1IDEyNy4xNTNMMTA0LjE2OCAxNjRNMTE2LjMzNCAxMjMuNDQ1QzEyMC44MTMgMTIzLjQ0NSAxMjQuNDQ1IDExOS44MTQgMTI0LjQ0NSAxMTUuMzM0QzEyNC40NDUgMTEwLjg1NSAxMjAuODEzIDEwNy4yMjQgMTE2LjMzNCAxMDcuMjI0QzExMS44NTUgMTA3LjIyNCAxMDguMjIzIDExMC44NTUgMTA4LjIyMyAxMTUuMzM0QzEwOC4yMjMgMTE5LjgxNCAxMTEuODU1IDEyMy40NDUgMTE2LjMzNCAxMjMuNDQ1WiIgc3Ryb2tlPSIjNjI2MjYyIiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K';
|
|
27
|
+
export var FALLBACK_LIGHT = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgdmlld0JveD0iMCAwIDI1NiAyNTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2IiBmaWxsPSIjRUNFQ0VDIi8+CjxwYXRoIGQ9Ik0xNTYuODg4IDkxLjAwMkgxMDAuMTEyQzk1LjYzMjkgOTEuMDAyIDkyLjAwMTUgOTQuNjMzNCA5Mi4wMDE1IDk5LjExMjdWMTU1Ljg4OEM5Mi4wMDE1IDE2MC4zNjcgOTUuNjMyOSAxNjMuOTk5IDEwMC4xMTIgMTYzLjk5OUgxNTYuODg4QzE2MS4zNjcgMTYzLjk5OSAxNjQuOTk4IDE2MC4zNjcgMTY0Ljk5OCAxNTUuODg4Vjk5LjExMjdDMTY0Ljk5OCA5NC42MzM0IDE2MS4zNjcgOTEuMDAyIDE1Ni44ODggOTEuMDAyWiIgc3Ryb2tlPSIjRDdEN0Q3IiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTY0Ljk5OCAxMzkuNjY4TDE1Mi40ODQgMTI3LjE1M0MxNTAuOTYyIDEyNS42MzIgMTQ4LjkgMTI0Ljc3OCAxNDYuNzQ5IDEyNC43NzhDMTQ0LjU5OSAxMjQuNzc4IDE0Mi41MzYgMTI1LjYzMiAxNDEuMDE1IDEyNy4xNTNMMTA0LjE2OCAxNjRNMTE2LjMzNCAxMjMuNDQ1QzEyMC44MTMgMTIzLjQ0NSAxMjQuNDQ1IDExOS44MTQgMTI0LjQ0NSAxMTUuMzM0QzEyNC40NDUgMTEwLjg1NSAxMjAuODEzIDEwNy4yMjQgMTE2LjMzNCAxMDcuMjI0QzExMS44NTUgMTA3LjIyNCAxMDguMjIzIDExMC44NTUgMTA4LjIyMyAxMTUuMzM0QzEwOC4yMjMgMTE5LjgxNCAxMTEuODU1IDEyMy40NDUgMTE2LjMzNCAxMjMuNDQ1WiIgc3Ryb2tlPSIjRDdEN0Q3IiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K';
|
package/es/Markdown/Markdown.js
CHANGED
|
@@ -97,7 +97,7 @@ var Markdown = /*#__PURE__*/memo(function (props) {
|
|
|
97
97
|
var enableStream = _ref.enableStream,
|
|
98
98
|
children = _ref.children,
|
|
99
99
|
reactMarkdownProps = _ref.reactMarkdownProps;
|
|
100
|
-
var DefaultRender = enableStream
|
|
100
|
+
var DefaultRender = enableStream ? StreamdownRender : MarkdownRender;
|
|
101
101
|
var defaultDOM = /*#__PURE__*/_jsx(DefaultRender, _objectSpread(_objectSpread({}, reactMarkdownProps), {}, {
|
|
102
102
|
children: children
|
|
103
103
|
}));
|
|
@@ -140,7 +140,7 @@ var Markdown = /*#__PURE__*/memo(function (props) {
|
|
|
140
140
|
showFootnotes: showFootnotes,
|
|
141
141
|
variant: variant,
|
|
142
142
|
children: /*#__PURE__*/_jsx(Render, {
|
|
143
|
-
enableStream: enableStream,
|
|
143
|
+
enableStream: enableStream && delayedAnimated,
|
|
144
144
|
reactMarkdownProps: reactMarkdownProps,
|
|
145
145
|
children: children
|
|
146
146
|
})
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { renderToString } from 'katex';
|
|
2
2
|
|
|
3
|
+
// Helper: replace unescaped pipes with \vert within a LaTeX math fragment
|
|
4
|
+
var replaceUnescapedPipes = function replaceUnescapedPipes(formula) {
|
|
5
|
+
return (
|
|
6
|
+
// Use \vert{} so the control sequence terminates before the next token
|
|
7
|
+
formula.replaceAll(/(?<!\\)\|/g, '\\vert{}')
|
|
8
|
+
);
|
|
9
|
+
};
|
|
10
|
+
|
|
3
11
|
/**
|
|
4
12
|
* Converts LaTeX bracket delimiters to dollar sign delimiters.
|
|
5
13
|
* Converts \[...\] to $$...$$ and \(...\) to $...$
|
|
@@ -40,9 +48,16 @@ export function escapeMhchemCommands(text) {
|
|
|
40
48
|
* @returns The string with pipe characters escaped in LaTeX expressions
|
|
41
49
|
*/
|
|
42
50
|
export function escapeLatexPipes(text) {
|
|
43
|
-
//
|
|
44
|
-
//
|
|
45
|
-
|
|
51
|
+
// Replace unescaped '|' inside LaTeX math spans with '\vert' so that
|
|
52
|
+
// remark-gfm table parsing won't treat them as column separators.
|
|
53
|
+
// Leave code blocks/inline code untouched.
|
|
54
|
+
var pattern = /(```[\S\s]*?```|`[^\n`]*`)|\$\$([\S\s]*?)\$\$|(?<!\$)\$(?!\$)([\S\s]*?)(?<!\$)\$(?!\$)/g;
|
|
55
|
+
return text.replaceAll(pattern, function (match, code, display, inline) {
|
|
56
|
+
if (code !== undefined) return code; // preserve code fences/inline code
|
|
57
|
+
if (display !== undefined) return "$$".concat(replaceUnescapedPipes(display), "$$");
|
|
58
|
+
if (inline !== undefined) return "$".concat(replaceUnescapedPipes(inline), "$");
|
|
59
|
+
return match;
|
|
60
|
+
});
|
|
46
61
|
}
|
|
47
62
|
|
|
48
63
|
/**
|
|
@@ -9,7 +9,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
9
9
|
import { useMemo, useRef, useState } from 'react';
|
|
10
10
|
import { useMarkdownContext } from "../../Markdown/components/MarkdownProvider";
|
|
11
11
|
import { isLastFormulaRenderable } from "./latex";
|
|
12
|
-
import { addToCache, contentCache,
|
|
12
|
+
import { addToCache, contentCache, preprocessMarkdownContent } from "./utils";
|
|
13
13
|
export var useMarkdownContent = function useMarkdownContent(children) {
|
|
14
14
|
var _useMarkdownContext = useMarkdownContext(),
|
|
15
15
|
animated = _useMarkdownContext.animated,
|
|
@@ -37,7 +37,7 @@ export var useMarkdownContent = function useMarkdownContent(children) {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
// Process new content only if needed
|
|
40
|
-
var processedContent =
|
|
40
|
+
var processedContent = preprocessMarkdownContent(children, {
|
|
41
41
|
citationsLength: citationsLength,
|
|
42
42
|
enableCustomFootnotes: enableCustomFootnotes,
|
|
43
43
|
enableLatex: enableLatex
|
|
@@ -13,7 +13,6 @@ import remarkGfm from 'remark-gfm';
|
|
|
13
13
|
import remarkMath from 'remark-math';
|
|
14
14
|
import { useMarkdownContext } from "../../Markdown/components/MarkdownProvider";
|
|
15
15
|
import { remarkBr } from "../../Markdown/plugins/remarkBr";
|
|
16
|
-
import { remarkColor } from "../../Markdown/plugins/remarkColor";
|
|
17
16
|
import { remarkCustomFootnotes } from "../../Markdown/plugins/remarkCustomFootnotes";
|
|
18
17
|
import { remarkGfmPlus } from "../../Markdown/plugins/remarkGfmPlus";
|
|
19
18
|
import { remarkVideo } from "../../Markdown/plugins/remarkVideo";
|
|
@@ -29,9 +28,11 @@ export var useMarkdownRemarkPlugins = function useMarkdownRemarkPlugins() {
|
|
|
29
28
|
allowHtml = _useMarkdownContext.allowHtml;
|
|
30
29
|
var isChatMode = variant === 'chat';
|
|
31
30
|
var memoPlugins = useMemo(function () {
|
|
32
|
-
return [remarkCjkFriendly,
|
|
31
|
+
return [remarkCjkFriendly,
|
|
32
|
+
// Parse math before GFM so that '|' inside $...$ isn't treated as a table separator
|
|
33
|
+
enableLatex && remarkMath, [remarkGfm, {
|
|
33
34
|
singleTilde: false
|
|
34
|
-
}], !allowHtml && remarkBr, !allowHtml && remarkGfmPlus, !allowHtml && remarkVideo,
|
|
35
|
+
}], !allowHtml && remarkBr, !allowHtml && remarkGfmPlus, !allowHtml && remarkVideo, enableCustomFootnotes && remarkCustomFootnotes, isChatMode && remarkBreaks].filter(Boolean);
|
|
35
36
|
}, [allowHtml, isChatMode, enableLatex, enableCustomFootnotes]);
|
|
36
37
|
return useMemo(function () {
|
|
37
38
|
return [].concat(_toConsumableArray(remarkPluginsAhead), _toConsumableArray(memoPlugins), _toConsumableArray(remarkPlugins));
|
|
@@ -26,5 +26,5 @@ interface PreprocessOptions {
|
|
|
26
26
|
enableCustomFootnotes?: boolean;
|
|
27
27
|
enableLatex?: boolean;
|
|
28
28
|
}
|
|
29
|
-
export declare const
|
|
29
|
+
export declare const preprocessMarkdownContent: (str: string, { enableCustomFootnotes, enableLatex, citationsLength }?: PreprocessOptions) => string;
|
|
30
30
|
export {};
|
|
@@ -117,7 +117,7 @@ export var transformCitations = function transformCitations(rawContent) {
|
|
|
117
117
|
* Preprocessing options for markdown content
|
|
118
118
|
*/
|
|
119
119
|
|
|
120
|
-
export var
|
|
120
|
+
export var preprocessMarkdownContent = function preprocessMarkdownContent(str) {
|
|
121
121
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
122
122
|
enableCustomFootnotes = _ref.enableCustomFootnotes,
|
|
123
123
|
enableLatex = _ref.enableLatex,
|
package/es/index.d.ts
CHANGED
|
@@ -29,6 +29,7 @@ export { default as GroupAvatar, type GroupAvatarProps } from './GroupAvatar';
|
|
|
29
29
|
export { default as GuideCard, type GuideCardProps } from './GuideCard';
|
|
30
30
|
export { default as Header, type HeaderProps } from './Header';
|
|
31
31
|
export { default as Highlighter, type HighlighterProps, highlighterThemes, SyntaxHighlighter, type SyntaxHighlighterProps, } from './Highlighter';
|
|
32
|
+
export { preprocessMarkdownContent } from './hooks/useMarkdown/utils';
|
|
32
33
|
export { combineKeys, default as Hotkey, type HotkeyProps, KeyMapEnum } from './Hotkey';
|
|
33
34
|
export { default as HotkeyInput, type HotkeyInputProps } from './HotkeyInput';
|
|
34
35
|
export { default as Icon, type IconProps, IconProvider, type IconSize } from './Icon';
|
|
@@ -39,6 +40,14 @@ export { default as Layout, LayoutFooter, type LayoutFooterProps, LayoutHeader,
|
|
|
39
40
|
export { default as List, ListItem, type ListItemProps, type ListProps } from './List';
|
|
40
41
|
export { default as Markdown, type MarkdownProps, Typography, type TypographyProps, } from './Markdown';
|
|
41
42
|
export { default as SearchResultCards, type SearchResultCardsProps, } from './Markdown/components/SearchResultCards';
|
|
43
|
+
export { rehypeCustomFootnotes } from './Markdown/plugins/rehypeCustomFootnotes';
|
|
44
|
+
export { rehypeKatexDir } from './Markdown/plugins/rehypeKatexDir';
|
|
45
|
+
export { rehypeStreamAnimated } from './Markdown/plugins/rehypeStreamAnimated';
|
|
46
|
+
export { remarkBr } from './Markdown/plugins/remarkBr';
|
|
47
|
+
export { remarkColor } from './Markdown/plugins/remarkColor';
|
|
48
|
+
export { remarkCustomFootnotes } from './Markdown/plugins/remarkCustomFootnotes';
|
|
49
|
+
export { remarkGfmPlus } from './Markdown/plugins/remarkGfmPlus';
|
|
50
|
+
export { remarkVideo } from './Markdown/plugins/remarkVideo';
|
|
42
51
|
export { default as MaskShadow, type MaskShadowProps } from './MaskShadow';
|
|
43
52
|
export { default as MaterialFileTypeIcon, type MaterialFileTypeIconProps, } from './MaterialFileTypeIcon';
|
|
44
53
|
export { type ItemType, default as Menu, type MenuInfo, type MenuItemType, type MenuProps, } from './Menu';
|
package/es/index.js
CHANGED
|
@@ -29,6 +29,7 @@ export { default as GroupAvatar } from "./GroupAvatar";
|
|
|
29
29
|
export { default as GuideCard } from "./GuideCard";
|
|
30
30
|
export { default as Header } from "./Header";
|
|
31
31
|
export { default as Highlighter, highlighterThemes, SyntaxHighlighter } from "./Highlighter";
|
|
32
|
+
export { preprocessMarkdownContent } from "./hooks/useMarkdown/utils";
|
|
32
33
|
export { combineKeys, default as Hotkey, KeyMapEnum } from "./Hotkey";
|
|
33
34
|
export { default as HotkeyInput } from "./HotkeyInput";
|
|
34
35
|
export { default as Icon, IconProvider } from "./Icon";
|
|
@@ -39,6 +40,14 @@ export { default as Layout, LayoutFooter, LayoutHeader, LayoutMain, LayoutSideba
|
|
|
39
40
|
export { default as List, ListItem } from "./List";
|
|
40
41
|
export { default as Markdown, Typography } from "./Markdown";
|
|
41
42
|
export { default as SearchResultCards } from "./Markdown/components/SearchResultCards";
|
|
43
|
+
export { rehypeCustomFootnotes } from "./Markdown/plugins/rehypeCustomFootnotes";
|
|
44
|
+
export { rehypeKatexDir } from "./Markdown/plugins/rehypeKatexDir";
|
|
45
|
+
export { rehypeStreamAnimated } from "./Markdown/plugins/rehypeStreamAnimated";
|
|
46
|
+
export { remarkBr } from "./Markdown/plugins/remarkBr";
|
|
47
|
+
export { remarkColor } from "./Markdown/plugins/remarkColor";
|
|
48
|
+
export { remarkCustomFootnotes } from "./Markdown/plugins/remarkCustomFootnotes";
|
|
49
|
+
export { remarkGfmPlus } from "./Markdown/plugins/remarkGfmPlus";
|
|
50
|
+
export { remarkVideo } from "./Markdown/plugins/remarkVideo";
|
|
42
51
|
export { default as MaskShadow } from "./MaskShadow";
|
|
43
52
|
export { default as MaterialFileTypeIcon } from "./MaterialFileTypeIcon";
|
|
44
53
|
export { default as Menu } from "./Menu";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lobehub/ui",
|
|
3
|
-
"version": "2.13.
|
|
3
|
+
"version": "2.13.2",
|
|
4
4
|
"description": "Lobe UI is an open-source UI component library for building AIGC web apps",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"lobehub",
|
|
@@ -52,33 +52,33 @@
|
|
|
52
52
|
"@dnd-kit/utilities": "^3.2.2",
|
|
53
53
|
"@emoji-mart/data": "^1.2.1",
|
|
54
54
|
"@emoji-mart/react": "^1.1.1",
|
|
55
|
-
"@floating-ui/react": "^0.27.
|
|
55
|
+
"@floating-ui/react": "^0.27.16",
|
|
56
56
|
"@giscus/react": "^3.1.0",
|
|
57
57
|
"@lobehub/fluent-emoji": "^2.0.0",
|
|
58
|
-
"@lobehub/icons": "^2.
|
|
59
|
-
"@mdx-js/mdx": "^3.1.
|
|
60
|
-
"@mdx-js/react": "^3.1.
|
|
58
|
+
"@lobehub/icons": "^2.33.0",
|
|
59
|
+
"@mdx-js/mdx": "^3.1.1",
|
|
60
|
+
"@mdx-js/react": "^3.1.1",
|
|
61
61
|
"@radix-ui/react-slot": "^1.2.3",
|
|
62
|
-
"@shikijs/transformers": "^3.
|
|
62
|
+
"@shikijs/transformers": "^3.12.2",
|
|
63
63
|
"@splinetool/runtime": "0.9.526",
|
|
64
|
-
"ahooks": "^3.9.
|
|
64
|
+
"ahooks": "^3.9.5",
|
|
65
65
|
"antd-style": "^3.7.1",
|
|
66
66
|
"chroma-js": "^3.1.2",
|
|
67
67
|
"class-variance-authority": "^0.7.1",
|
|
68
|
-
"dayjs": "^1.11.
|
|
68
|
+
"dayjs": "^1.11.18",
|
|
69
69
|
"emoji-mart": "^5.6.0",
|
|
70
70
|
"fast-deep-equal": "^3.1.3",
|
|
71
|
-
"framer-motion": "^12.23.
|
|
72
|
-
"immer": "^10.1.
|
|
71
|
+
"framer-motion": "^12.23.13",
|
|
72
|
+
"immer": "^10.1.3",
|
|
73
73
|
"katex": "^0.16.22",
|
|
74
74
|
"leva": "^0.10.0",
|
|
75
75
|
"lodash-es": "^4.17.21",
|
|
76
76
|
"lucide-react": "^0.543.0",
|
|
77
|
-
"marked": "^16.
|
|
78
|
-
"mermaid": "^11.
|
|
77
|
+
"marked": "^16.3.0",
|
|
78
|
+
"mermaid": "^11.11.0",
|
|
79
79
|
"numeral": "^2.0.6",
|
|
80
80
|
"polished": "^4.3.1",
|
|
81
|
-
"query-string": "^9.
|
|
81
|
+
"query-string": "^9.3.0",
|
|
82
82
|
"rc-collapse": "^4.0.0",
|
|
83
83
|
"rc-footer": "^0.6.8",
|
|
84
84
|
"rc-image": "^7.12.0",
|
|
@@ -100,9 +100,9 @@
|
|
|
100
100
|
"remark-gfm": "^4.0.1",
|
|
101
101
|
"remark-github": "^12.0.0",
|
|
102
102
|
"remark-math": "^6.0.0",
|
|
103
|
-
"shiki": "^3.
|
|
104
|
-
"swr": "^2.3.
|
|
105
|
-
"ts-md5": "^2.0.
|
|
103
|
+
"shiki": "^3.12.2",
|
|
104
|
+
"swr": "^2.3.6",
|
|
105
|
+
"ts-md5": "^2.0.1",
|
|
106
106
|
"unified": "^11.0.5",
|
|
107
107
|
"url-join": "^5.0.0",
|
|
108
108
|
"use-merge-value": "^1.2.0",
|