@lobehub/ui 1.11.0 → 1.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/ActionIcon/index.js +77 -79
- package/lib/ActionIcon/style.js +17 -61
- package/lib/Avatar/index.js +62 -67
- package/lib/Chat/const.js +6 -27
- package/lib/Chat/index.js +24 -28
- package/lib/Chat/store/index.js +46 -40
- package/lib/Chat/store/initialState.js +6 -27
- package/lib/Chat/store/messageReducer.js +51 -58
- package/lib/Chat/store/selectors.js +44 -46
- package/lib/Chat/store/store.js +242 -115
- package/lib/Chat/types.js +4 -16
- package/lib/Chat/utils/fetch.js +104 -68
- package/lib/ContextMenu/MenuItem/icons.js +48 -66
- package/lib/ContextMenu/MenuItem/index.js +73 -66
- package/lib/ContextMenu/MenuItem/style.js +19 -89
- package/lib/ContextMenu/index.js +194 -178
- package/lib/ContextMenu/style.js +17 -85
- package/lib/ContextMenu/types/index.js +15 -18
- package/lib/ContextMenu/types/menuItem.js +4 -16
- package/lib/Conversation/App.js +47 -50
- package/lib/Conversation/ChatList/MessageItem/Content.js +98 -93
- package/lib/Conversation/ChatList/MessageItem/Toolbar.js +94 -104
- package/lib/Conversation/ChatList/MessageItem/index.js +125 -157
- package/lib/Conversation/ChatList/index.js +64 -58
- package/lib/Conversation/InputArea/ActionBar.js +74 -92
- package/lib/Conversation/InputArea/index.js +103 -142
- package/lib/Conversation/StoreUpdater.js +28 -48
- package/lib/Conversation/index.js +30 -42
- package/lib/CopyButton/index.js +37 -62
- package/lib/DraggablePanel/index.js +192 -207
- package/lib/DraggablePanel/style.js +30 -278
- package/lib/DraggablePanel/utils.js +14 -35
- package/lib/EditableMessage/index.js +66 -89
- package/lib/EditableMessageList/index.js +97 -112
- package/lib/EditableText/index.js +36 -49
- package/lib/Highlighter/SyntaxHighlighter/Prism.js +43 -38
- package/lib/Highlighter/SyntaxHighlighter/index.js +62 -53
- package/lib/Highlighter/SyntaxHighlighter/style.js +18 -56
- package/lib/Highlighter/index.js +52 -58
- package/lib/Highlighter/style.js +22 -101
- package/lib/Icon/index.js +29 -36
- package/lib/Input/index.js +45 -43
- package/lib/Input/style.js +17 -67
- package/lib/List/ListItem/index.js +108 -150
- package/lib/List/ListItem/time.js +15 -47
- package/lib/List/index.js +9 -37
- package/lib/Logo/Divider.js +21 -34
- package/lib/Logo/Logo3D.js +17 -33
- package/lib/Logo/LogoFlat.js +108 -118
- package/lib/Logo/LogoHighContrast.js +30 -33
- package/lib/Logo/LogoText.js +21 -34
- package/lib/Logo/index.js +97 -59
- package/lib/Logo/style.js +13 -36
- package/lib/Markdown/Code.js +16 -30
- package/lib/Markdown/CodeBlock.js +33 -65
- package/lib/Markdown/index.js +35 -54
- package/lib/Markdown/style.js +15 -129
- package/lib/MessageInput/index.js +60 -56
- package/lib/MessageModal/index.js +80 -91
- package/lib/SearchBar/index.js +86 -73
- package/lib/SearchBar/style.js +18 -46
- package/lib/SideNav/index.js +43 -31
- package/lib/SideNav/style.js +13 -43
- package/lib/Snippet/index.js +42 -45
- package/lib/Snippet/style.js +13 -71
- package/lib/StroyBook/index.js +60 -61
- package/lib/StroyBook/style.js +19 -87
- package/lib/Swatches/index.js +35 -53
- package/lib/TabsNav/index.js +23 -31
- package/lib/TabsNav/style.js +17 -60
- package/lib/ThemeProvider/GlobalStyle.js +29 -92
- package/lib/ThemeProvider/index.js +43 -57
- package/lib/ThemeSwitch/index.js +62 -46
- package/lib/Tooltip/index.js +26 -31
- package/lib/Tooltip/style.js +13 -49
- package/lib/components/ControlInput.js +86 -87
- package/lib/hooks/useCopied.js +27 -37
- package/lib/hooks/useHighlight.js +65 -70
- package/lib/index.js +211 -120
- package/lib/styles/algorithms/generateColorPalette.js +28 -60
- package/lib/styles/algorithms/generateCustomStylish.js +22 -117
- package/lib/styles/algorithms/generateCustomToken.js +51 -65
- package/lib/styles/algorithms/generateTheme.js +22 -53
- package/lib/styles/colors.js +121 -1766
- package/lib/styles/index.js +23 -32
- package/lib/styles/theme/base.js +11 -32
- package/lib/styles/theme/dark.js +38 -62
- package/lib/styles/theme/light.js +38 -62
- package/lib/types/index.js +4 -16
- package/lib/utils/colorUtils.js +14 -48
- package/package.json +1 -1
package/lib/Tooltip/style.js
CHANGED
|
@@ -1,54 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
18
2
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
useStyles: () => useStyles
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
23
6
|
});
|
|
24
|
-
|
|
25
|
-
var
|
|
26
|
-
var
|
|
7
|
+
exports.useStyles = void 0;
|
|
8
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
|
+
var _antdStyle = require("antd-style");
|
|
10
|
+
var _templateObject;
|
|
11
|
+
var useStyles = (0, _antdStyle.createStyles)(function (_ref) {
|
|
12
|
+
var css = _ref.css,
|
|
13
|
+
token = _ref.token;
|
|
27
14
|
return {
|
|
28
|
-
tooltip: css
|
|
29
|
-
.ant-tooltip-inner {
|
|
30
|
-
display: flex;
|
|
31
|
-
align-items: center;
|
|
32
|
-
justify-content: center;
|
|
33
|
-
|
|
34
|
-
min-height: unset;
|
|
35
|
-
padding: 4px 8px;
|
|
36
|
-
|
|
37
|
-
color: ${token.colorBgLayout};
|
|
38
|
-
|
|
39
|
-
background-color: ${token.colorText};
|
|
40
|
-
border-radius: ${token.borderRadiusSM}px;
|
|
41
|
-
}
|
|
42
|
-
.ant-tooltip-arrow {
|
|
43
|
-
&:before,
|
|
44
|
-
&:after {
|
|
45
|
-
background: ${token.colorText};
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
`
|
|
15
|
+
tooltip: css(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n .ant-tooltip-inner {\n display: flex;\n align-items: center;\n justify-content: center;\n\n min-height: unset;\n padding: 4px 8px;\n\n color: ", ";\n\n background-color: ", ";\n border-radius: ", "px;\n }\n .ant-tooltip-arrow {\n &:before,\n &:after {\n background: ", ";\n }\n }\n "])), token.colorBgLayout, token.colorText, token.borderRadiusSM, token.colorText)
|
|
49
16
|
};
|
|
50
17
|
});
|
|
51
|
-
|
|
52
|
-
0 && (module.exports = {
|
|
53
|
-
useStyles
|
|
54
|
-
});
|
|
18
|
+
exports.useStyles = useStyles;
|
|
@@ -1,91 +1,90 @@
|
|
|
1
|
-
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
18
2
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
ControlInput: () => ControlInput
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
23
6
|
});
|
|
24
|
-
|
|
25
|
-
var
|
|
26
|
-
var
|
|
27
|
-
var
|
|
28
|
-
var
|
|
29
|
-
var
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
setInput(value);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
), /* @__PURE__ */ React.createElement(import__.ActionIcon, { title: "✅ Save", icon: import_lucide_react.Save, size: "small", onClick: updateValue })))
|
|
7
|
+
exports.ControlInput = void 0;
|
|
8
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
+
var _ = require("./..");
|
|
12
|
+
var _antd = require("antd");
|
|
13
|
+
var _lucideReact = require("lucide-react");
|
|
14
|
+
var _react = require("react");
|
|
15
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
|
+
var _excluded = ["value", "onChange", "onValueChanging", "onChangeEnd"];
|
|
17
|
+
var ControlInput = /*#__PURE__*/(0, _react.memo)(function (_ref) {
|
|
18
|
+
var value = _ref.value,
|
|
19
|
+
onChange = _ref.onChange,
|
|
20
|
+
onValueChanging = _ref.onValueChanging,
|
|
21
|
+
onChangeEnd = _ref.onChangeEnd,
|
|
22
|
+
props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
23
|
+
var _useState = (0, _react.useState)(value || ''),
|
|
24
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
25
|
+
input = _useState2[0],
|
|
26
|
+
setInput = _useState2[1];
|
|
27
|
+
var inputRef = (0, _react.useRef)(null);
|
|
28
|
+
var isChineseInput = (0, _react.useRef)(false);
|
|
29
|
+
var isFocusing = (0, _react.useRef)(false);
|
|
30
|
+
var updateValue = (0, _react.useCallback)(function () {
|
|
31
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(input);
|
|
32
|
+
}, [input]);
|
|
33
|
+
(0, _react.useEffect)(function () {
|
|
34
|
+
if (typeof value !== 'undefined') setInput(value);
|
|
35
|
+
}, [value]);
|
|
36
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Input, (0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
37
|
+
ref: inputRef
|
|
38
|
+
}, props), {}, {
|
|
39
|
+
value: input,
|
|
40
|
+
onCompositionStart: function onCompositionStart() {
|
|
41
|
+
isChineseInput.current = true;
|
|
42
|
+
},
|
|
43
|
+
onCompositionEnd: function onCompositionEnd() {
|
|
44
|
+
isChineseInput.current = false;
|
|
45
|
+
},
|
|
46
|
+
onFocus: function onFocus() {
|
|
47
|
+
isFocusing.current = true;
|
|
48
|
+
},
|
|
49
|
+
onBlur: function onBlur() {
|
|
50
|
+
isFocusing.current = false;
|
|
51
|
+
onChangeEnd === null || onChangeEnd === void 0 ? void 0 : onChangeEnd(input);
|
|
52
|
+
},
|
|
53
|
+
onChange: function onChange(e) {
|
|
54
|
+
setInput(e.target.value);
|
|
55
|
+
onValueChanging === null || onValueChanging === void 0 ? void 0 : onValueChanging(e.target.value);
|
|
56
|
+
},
|
|
57
|
+
onPressEnter: function onPressEnter(e) {
|
|
58
|
+
if (!e.shiftKey && !isChineseInput.current) {
|
|
59
|
+
e.preventDefault();
|
|
60
|
+
updateValue();
|
|
61
|
+
isFocusing.current = false;
|
|
62
|
+
onChangeEnd === null || onChangeEnd === void 0 ? void 0 : onChangeEnd(input);
|
|
84
63
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
64
|
+
},
|
|
65
|
+
suffix: value === input ? /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.ConfigProvider, {
|
|
66
|
+
theme: {
|
|
67
|
+
token: {
|
|
68
|
+
fontSize: 14
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_antd.Space, {
|
|
72
|
+
size: 2,
|
|
73
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.ActionIcon, {
|
|
74
|
+
title: "Reset",
|
|
75
|
+
icon: _lucideReact.RotateCcw,
|
|
76
|
+
size: "small",
|
|
77
|
+
onClick: function onClick() {
|
|
78
|
+
setInput(value);
|
|
79
|
+
}
|
|
80
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.ActionIcon, {
|
|
81
|
+
title: "\u2705 Save",
|
|
82
|
+
icon: _lucideReact.Save,
|
|
83
|
+
size: "small",
|
|
84
|
+
onClick: updateValue
|
|
85
|
+
})]
|
|
86
|
+
})
|
|
87
|
+
})
|
|
88
|
+
}));
|
|
91
89
|
});
|
|
90
|
+
exports.ControlInput = ControlInput;
|
package/lib/hooks/useCopied.js
CHANGED
|
@@ -1,44 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
18
2
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
useCopied: () => useCopied
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
23
6
|
});
|
|
24
|
-
|
|
25
|
-
var
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
(0,
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
7
|
+
exports.useCopied = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
var useCopied = function useCopied() {
|
|
11
|
+
var _useState = (0, _react.useState)(false),
|
|
12
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
13
|
+
copied = _useState2[0],
|
|
14
|
+
setCopy = _useState2[1];
|
|
15
|
+
(0, _react.useEffect)(function () {
|
|
16
|
+
if (!copied) return;
|
|
17
|
+
var timer = setTimeout(function () {
|
|
32
18
|
setCopy(false);
|
|
33
|
-
},
|
|
34
|
-
return ()
|
|
19
|
+
}, 2000);
|
|
20
|
+
return function () {
|
|
35
21
|
clearTimeout(timer);
|
|
36
22
|
};
|
|
37
23
|
}, [copied]);
|
|
38
|
-
|
|
39
|
-
|
|
24
|
+
var setCopied = (0, _react.useCallback)(function () {
|
|
25
|
+
return setCopy(true);
|
|
26
|
+
}, []);
|
|
27
|
+
return (0, _react.useMemo)(function () {
|
|
28
|
+
return {
|
|
29
|
+
copied: copied,
|
|
30
|
+
setCopied: setCopied
|
|
31
|
+
};
|
|
32
|
+
}, [copied]);
|
|
40
33
|
};
|
|
41
|
-
|
|
42
|
-
0 && (module.exports = {
|
|
43
|
-
useCopied
|
|
44
|
-
});
|
|
34
|
+
exports.useCopied = useCopied;
|
|
@@ -1,76 +1,71 @@
|
|
|
1
|
-
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
18
2
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
languageMap: () => languageMap,
|
|
23
|
-
useHighlight: () => useHighlight
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
24
6
|
});
|
|
25
|
-
|
|
26
|
-
var
|
|
27
|
-
var
|
|
7
|
+
exports.useHighlight = exports.languageMap = void 0;
|
|
8
|
+
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
var _shikiEs = require("shiki-es");
|
|
11
|
+
var _zustand = require("zustand");
|
|
28
12
|
var THEME = {
|
|
29
|
-
dark:
|
|
30
|
-
light:
|
|
13
|
+
dark: 'material-darker',
|
|
14
|
+
light: 'material-lighter'
|
|
31
15
|
};
|
|
32
|
-
var languageMap = [
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
|
|
16
|
+
var languageMap = ['javascript', 'js', 'jsx', 'json', 'markdown', 'md', 'less', 'css', 'typescript', 'ts', 'tsx', 'diff', 'bash'];
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @title 代码高亮的存储对象
|
|
20
|
+
*/
|
|
21
|
+
exports.languageMap = languageMap;
|
|
22
|
+
var useHighlight = (0, _zustand.create)(function (set, get) {
|
|
23
|
+
return {
|
|
24
|
+
highlighter: undefined,
|
|
25
|
+
initHighlighter: function () {
|
|
26
|
+
var _initHighlighter = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
|
|
27
|
+
var highlighter;
|
|
28
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
|
29
|
+
while (1) switch (_context.prev = _context.next) {
|
|
30
|
+
case 0:
|
|
31
|
+
if (get().highlighter) {
|
|
32
|
+
_context.next = 5;
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
_context.next = 3;
|
|
36
|
+
return (0, _shikiEs.getHighlighter)({
|
|
37
|
+
langs: languageMap,
|
|
38
|
+
themes: Object.values(THEME)
|
|
39
|
+
});
|
|
40
|
+
case 3:
|
|
41
|
+
highlighter = _context.sent;
|
|
42
|
+
set({
|
|
43
|
+
highlighter: highlighter
|
|
44
|
+
});
|
|
45
|
+
case 5:
|
|
46
|
+
case "end":
|
|
47
|
+
return _context.stop();
|
|
48
|
+
}
|
|
49
|
+
}, _callee);
|
|
50
|
+
}));
|
|
51
|
+
function initHighlighter() {
|
|
52
|
+
return _initHighlighter.apply(this, arguments);
|
|
53
|
+
}
|
|
54
|
+
return initHighlighter;
|
|
55
|
+
}(),
|
|
56
|
+
codeToHtml: function codeToHtml(text, language, isDarkMode) {
|
|
57
|
+
var _get = get(),
|
|
58
|
+
highlighter = _get.highlighter;
|
|
59
|
+
if (!highlighter) return '';
|
|
60
|
+
try {
|
|
61
|
+
return highlighter === null || highlighter === void 0 ? void 0 : highlighter.codeToHtml(text, {
|
|
62
|
+
lang: language,
|
|
63
|
+
theme: isDarkMode ? THEME.dark : THEME.light
|
|
64
|
+
});
|
|
65
|
+
} catch (e) {
|
|
66
|
+
return text;
|
|
67
|
+
}
|
|
69
68
|
}
|
|
70
|
-
}
|
|
71
|
-
}));
|
|
72
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
73
|
-
0 && (module.exports = {
|
|
74
|
-
languageMap,
|
|
75
|
-
useHighlight
|
|
69
|
+
};
|
|
76
70
|
});
|
|
71
|
+
exports.useHighlight = useHighlight;
|