@yuntijs/ui 1.1.0 → 1.2.0-beta.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.
Files changed (33) hide show
  1. package/es/ChatItem/index.js +3 -2
  2. package/es/ChatItem/style.js +5 -4
  3. package/es/ChatItem/type.d.ts +4 -0
  4. package/es/Form/collapse-list/index.js +16 -9
  5. package/es/Form/collapse-list/utils.d.ts +1 -0
  6. package/es/Form/collapse-list/utils.js +2 -1
  7. package/es/Mentions/index.d.ts +16 -3
  8. package/es/Mentions/index.js +26 -20
  9. package/es/Mentions/plugins/editor-ref.d.ts +5 -0
  10. package/es/Mentions/plugins/editor-ref.js +13 -0
  11. package/es/Mentions/plugins/mention-converter.d.ts +32 -0
  12. package/es/Mentions/plugins/mention-converter.js +151 -0
  13. package/es/Mentions/plugins/mention-picker/index.d.ts +2 -1
  14. package/es/Mentions/plugins/mention-picker/index.js +7 -1
  15. package/es/Mentions/plugins/shift-enter-key.d.ts +6 -0
  16. package/es/Mentions/plugins/shift-enter-key.js +59 -0
  17. package/es/Mentions/types.d.ts +1 -0
  18. package/es/Mentions/utils.d.ts +1 -1
  19. package/es/Mentions/utils.js +11 -30
  20. package/es/MonacoEditor/MonacoEditor2.d.ts +11 -0
  21. package/es/MonacoEditor/MonacoEditor2.js +103 -0
  22. package/es/MonacoEditor/base/helper.js +5 -1
  23. package/es/MonacoEditor/base/style.js +1 -1
  24. package/es/SelectCard/index.js +1 -1
  25. package/es/hooks/useHighlight.d.ts +1 -3
  26. package/es/hooks/useHighlight.js +65 -67
  27. package/es/index.d.ts +1 -0
  28. package/es/index.js +1 -0
  29. package/package.json +6 -5
  30. package/umd/index.min.js +1 -1
  31. package/umd/index.min.js.map +1 -1
  32. /package/es/Mentions/plugins/{OnBlurBlockPlugin.d.ts → on-blur-block.d.ts} +0 -0
  33. /package/es/Mentions/plugins/{OnBlurBlockPlugin.js → on-blur-block.js} +0 -0
@@ -1,5 +1,7 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
1
2
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
- import { $isTextNode, createCommand } from 'lexical';
3
+ import { $createParagraphNode, $getRoot, $isTextNode, createCommand } from 'lexical';
4
+ import { $convertToMentionNodes } from "./plugins/mention-converter";
3
5
  export var INSERT_MENTION_COMMAND = createCommand('INSERT_MENTION_COMMAND');
4
6
  export var DELETE_MENTION_COMMAND = createCommand('DELETE_MENTION_COMMAND');
5
7
  export var CLEAR_HIDE_MENU_TIMEOUT = createCommand('CLEAR_HIDE_MENU_TIMEOUT');
@@ -63,33 +65,12 @@ export var decoratorTransform = function decoratorTransform(node, getMatch, crea
63
65
  }
64
66
  }
65
67
  };
66
- export function textToEditorState(text) {
67
- var paragraph = text.split('\n');
68
- return JSON.stringify({
69
- root: {
70
- children: paragraph.map(function (p) {
71
- return {
72
- children: [{
73
- detail: 0,
74
- format: 0,
75
- mode: 'normal',
76
- style: '',
77
- text: p,
78
- type: 'custom-text',
79
- version: 1
80
- }],
81
- direction: 'ltr',
82
- format: '',
83
- indent: 0,
84
- type: 'paragraph',
85
- version: 1
86
- };
87
- }),
88
- direction: 'ltr',
89
- format: '',
90
- indent: 0,
91
- type: 'root',
92
- version: 1
93
- }
94
- });
68
+ export function textToEditorState(initialValue, triggers) {
69
+ return function () {
70
+ var root = $getRoot();
71
+ root.clear();
72
+ var paragraph = $createParagraphNode();
73
+ paragraph.append.apply(paragraph, _toConsumableArray($convertToMentionNodes(initialValue, triggers)));
74
+ root.append(paragraph);
75
+ };
95
76
  }
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import type { EditorProps } from '@monaco-editor/react';
3
+ import type { Variant } from 'antd/es/config-provider';
4
+ export interface EditorProps2 extends EditorProps {
5
+ onBlur?: (input: string, event: any) => void;
6
+ placeholder?: string;
7
+ variant?: Variant;
8
+ enableOutline?: boolean;
9
+ version?: string;
10
+ }
11
+ export declare const MonacoEditor2: React.FC<EditorProps2>;
@@ -0,0 +1,103 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
+ var _excluded = ["language", "theme", "placeholder", "variant", "onBlur", "enableOutline", "className", "version", "options", "onMount"];
5
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
+ import Editor, { loader } from '@monaco-editor/react';
8
+ import { Spin } from 'antd';
9
+ import { useEffect, useRef, useState } from 'react';
10
+ import { useCdnFn } from "../ConfigProvider";
11
+ import { useStyles } from "./base/style";
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ export var MonacoEditor2 = function MonacoEditor2(_ref) {
14
+ var _options$minimap;
15
+ var language = _ref.language,
16
+ theme = _ref.theme,
17
+ placeholder = _ref.placeholder,
18
+ variant = _ref.variant,
19
+ onBlur = _ref.onBlur,
20
+ enableOutline = _ref.enableOutline,
21
+ className = _ref.className,
22
+ _ref$version = _ref.version,
23
+ version = _ref$version === void 0 ? '0.52.2' : _ref$version,
24
+ _ref$options = _ref.options,
25
+ options = _ref$options === void 0 ? {} : _ref$options,
26
+ onMount = _ref.onMount,
27
+ props = _objectWithoutProperties(_ref, _excluded);
28
+ var _useState = useState(false),
29
+ _useState2 = _slicedToArray(_useState, 2),
30
+ isFocus = _useState2[0],
31
+ setIsFocus = _useState2[1];
32
+ var editorRef = useRef(null);
33
+ var _useState3 = useState(false),
34
+ _useState4 = _slicedToArray(_useState3, 2),
35
+ isMounted = _useState4[0],
36
+ setIsMounted = _useState4[1];
37
+ var _useState5 = useState(false),
38
+ _useState6 = _slicedToArray(_useState5, 2),
39
+ configed = _useState6[0],
40
+ setConfiged = _useState6[1];
41
+ var _useStyles = useStyles({
42
+ minimapEnabled: options === null || options === void 0 || (_options$minimap = options.minimap) === null || _options$minimap === void 0 ? void 0 : _options$minimap.enabled,
43
+ variant: variant
44
+ }),
45
+ cx = _useStyles.cx,
46
+ styles = _useStyles.styles;
47
+ var classnames = cx(styles.base, className, {
48
+ 've-focused': isFocus,
49
+ 've-outline': enableOutline
50
+ });
51
+ var genCdnUrl = useCdnFn();
52
+ useEffect(function () {
53
+ loader.config({
54
+ paths: {
55
+ vs: genCdnUrl({
56
+ path: 'min/vs',
57
+ pkg: 'monaco-editor',
58
+ version: version
59
+ })
60
+ }
61
+ });
62
+ setConfiged(true);
63
+ }, [genCdnUrl, version]);
64
+ var handleEditorDidMount = function handleEditorDidMount(editor, monaco) {
65
+ editorRef.current = editor;
66
+ editor.onDidFocusEditorText(function () {
67
+ setIsFocus(true);
68
+ });
69
+ editor.onDidBlurEditorText(function (event) {
70
+ var _editorRef$current;
71
+ setIsFocus(false);
72
+ var value = (_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 || (_editorRef$current = _editorRef$current.getModel()) === null || _editorRef$current === void 0 ? void 0 : _editorRef$current.getValue();
73
+ onBlur === null || onBlur === void 0 || onBlur(value !== null && value !== void 0 ? value : '', event);
74
+ });
75
+ monaco.editor.setTheme('default-theme'); // Fix: sometimes not load the default theme
76
+ onMount === null || onMount === void 0 || onMount(editor, monaco);
77
+ setIsMounted(true);
78
+ };
79
+ return /*#__PURE__*/_jsx(Spin, {
80
+ spinning: !configed,
81
+ children: configed ? /*#__PURE__*/_jsx(Editor, _objectSpread({
82
+ className: classnames,
83
+ language: language || 'text',
84
+ onMount: handleEditorDidMount,
85
+ options: _objectSpread({
86
+ domReadOnly: true,
87
+ quickSuggestions: false,
88
+ minimap: {
89
+ enabled: false
90
+ },
91
+ lineNumbersMinChars: 1,
92
+ // would change line num width
93
+ wordWrap: 'on',
94
+ // auto line wrap
95
+ unicodeHighlight: {
96
+ ambiguousCharacters: false
97
+ },
98
+ placeholder: placeholder
99
+ }, options),
100
+ theme: isMounted ? theme : 'default-theme' // sometimes not load the default theme
101
+ }, props)) : null
102
+ });
103
+ };
@@ -159,6 +159,10 @@ export var useEditor = function useEditor(type, props) {
159
159
  if (!containerRef.current) {
160
160
  return;
161
161
  }
162
+ if (editorRef.current) {
163
+ editorRef.current.dispose();
164
+ decomposeRef.current = false;
165
+ }
162
166
  var editor;
163
167
  if (typeRef.current === 'single') {
164
168
  var _ref, _valueRef$current;
@@ -201,7 +205,7 @@ export var useEditor = function useEditor(type, props) {
201
205
  setLoading(false);
202
206
  }
203
207
  });
204
- }, []);
208
+ }, [placeholder]);
205
209
  useEffect(function () {
206
210
  var _monacoRef$current;
207
211
  if (!isEditorReady) {
@@ -34,7 +34,7 @@ export var useStyles = createStyles(function (_ref, _ref2) {
34
34
  }
35
35
  };
36
36
  return {
37
- base: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n position: relative;\n\n box-sizing: content-box;\n min-height: 100px;\n\n background-color: ", ";\n border: 1px solid ", ";\n border-radius: ", "px;\n &:hover {\n border-color: ", ";\n ", "\n }\n\n &.ve-focused {\n ", "\n ", "\n }\n\n &.ve-outline {\n border: 1px solid var(--color-field-border, rgba(31, 56, 88, 0.05)) !important;\n }\n\n & > .react-monaco-editor-container {\n width: 100%;\n height: 100%;\n min-height: 100px;\n background: transparent;\n\n ", "\n\n .monaco-editor,\n .monaco-editor-background,\n .monaco-editor .inputarea.ime-input,\n .monaco-editor .margin {\n ", "\n }\n\n & > .monaco-editor {\n border-radius: ", "px;\n outline: none;\n .overflow-guard,\n .margin {\n border-top-left-radius: ", "px;\n border-bottom-left-radius: ", "px;\n }\n .monaco-scrollable-element {\n border-top-right-radius: ", "px;\n border-bottom-right-radius: ", "px;\n }\n }\n .monaco-diff-editor {\n border-radius: ", "px;\n & > .original > .monaco-editor {\n border-top-left-radius: ", "px;\n border-bottom-left-radius: ", "px;\n .overflow-guard,\n .margin {\n border-top-left-radius: ", "px;\n border-bottom-left-radius: ", "px;\n }\n }\n .diffViewport {\n border-top-right-radius: ", "px;\n border-bottom-right-radius: ", "px;\n }\n }\n }\n\n .syntaxTips {\n position: absolute;\n bottom: 0;\n left: 0;\n\n box-sizing: border-box;\n width: 100%;\n max-height: 0;\n margin: 0;\n padding: 10px 30px;\n\n color: ", ";\n\n background: ", ";\n\n transition: 0.2s ease max-height;\n }\n\n .syntaxTips:hover {\n overflow: auto;\n max-height: 50%;\n }\n\n .syntaxTips .infoIcon {\n position: absolute;\n top: 2px;\n right: 5px;\n transform: rotateY(180deg);\n\n width: 20px;\n height: 16px;\n }\n "])), getBgColor(), variant === 'outlined' ? token.colorBorder : 'transparent', token.borderRadius, variant === 'outlined' ? token.colorPrimaryHover : 'transparent', variant === 'filled' && css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n background-color: ", ";\n "])), token.colorFillSecondary), variant === 'filled' && css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n background-color: ", ";\n "])), token.colorBgBase), variant !== 'borderless' && css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n border-color: ", ";\n "])), token.colorPrimaryActive), isFullScreen && css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n position: fixed;\n z-index: 9998;\n inset: 0;\n\n width: auto !important;\n height: auto !important;\n "]))), !isFullScreen && css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n background-color: transparent;\n "]))), token.borderRadius, token.borderRadius, token.borderRadius, token.borderRadius, token.borderRadius, token.borderRadius, token.borderRadius, token.borderRadius, token.borderRadius, token.borderRadius, token.borderRadius - 1, token.borderRadius - 1, token.colorErrorText, token.colorErrorBg),
37
+ base: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n position: relative;\n\n box-sizing: content-box;\n min-height: 100px;\n\n background-color: ", ";\n border: 1px solid ", ";\n border-radius: ", "px;\n &:hover {\n border-color: ", ";\n ", "\n }\n\n &.ve-focused {\n ", "\n ", "\n }\n\n &.ve-outline {\n border: 1px solid var(--color-field-border, rgba(31, 56, 88, 0.05)) !important;\n }\n\n & > .react-monaco-editor-container {\n width: 100%;\n height: 100%;\n min-height: 100px;\n background: transparent;\n\n ", "\n\n .monaco-editor,\n .monaco-editor-background,\n .monaco-editor .inputarea.ime-input,\n .monaco-editor .margin {\n ", "\n }\n\n & > .monaco-editor {\n border-radius: ", "px;\n outline: none;\n .overflow-guard,\n .margin {\n border-top-left-radius: ", "px;\n border-bottom-left-radius: ", "px;\n }\n .monaco-scrollable-element {\n border-top-right-radius: ", "px;\n border-bottom-right-radius: ", "px;\n }\n }\n .monaco-diff-editor {\n border-radius: ", "px;\n & > .gutter {\n outline: none;\n }\n & > .original > .monaco-editor {\n border-top-left-radius: ", "px;\n border-bottom-left-radius: ", "px;\n outline: none;\n .overflow-guard,\n .margin {\n border-top-left-radius: ", "px;\n border-bottom-left-radius: ", "px;\n }\n }\n & > .modified > .monaco-editor {\n outline: none;\n }\n .diffViewport {\n border-top-right-radius: ", "px;\n border-bottom-right-radius: ", "px;\n outline: none;\n }\n }\n }\n\n .syntaxTips {\n position: absolute;\n bottom: 0;\n left: 0;\n\n box-sizing: border-box;\n width: 100%;\n max-height: 0;\n margin: 0;\n padding: 10px 30px;\n\n color: ", ";\n\n background: ", ";\n\n transition: 0.2s ease max-height;\n }\n\n .syntaxTips:hover {\n overflow: auto;\n max-height: 50%;\n }\n\n .syntaxTips .infoIcon {\n position: absolute;\n top: 2px;\n right: 5px;\n transform: rotateY(180deg);\n\n width: 20px;\n height: 16px;\n }\n "])), getBgColor(), variant === 'outlined' ? token.colorBorder : 'transparent', token.borderRadius, variant === 'outlined' ? token.colorPrimaryHover : 'transparent', variant === 'filled' && css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n background-color: ", ";\n "])), token.colorFillSecondary), variant === 'filled' && css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n background-color: ", ";\n "])), token.colorBgBase), variant !== 'borderless' && css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n border-color: ", ";\n "])), token.colorPrimaryActive), isFullScreen && css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n position: fixed;\n z-index: 9998;\n inset: 0;\n\n width: auto !important;\n height: auto !important;\n "]))), !isFullScreen && css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n background-color: transparent;\n "]))), token.borderRadius, token.borderRadius, token.borderRadius, token.borderRadius, token.borderRadius, token.borderRadius, token.borderRadius, token.borderRadius, token.borderRadius, token.borderRadius, token.borderRadius - 1, token.borderRadius - 1, token.colorErrorText, token.colorErrorBg),
38
38
  fullScreenBtn: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n &.", "-btn {\n position: absolute;\n top: 20px;\n color: ", ";\n transition: none;\n ", "\n }\n "])), prefixCls, token.colorTextSecondary, isFullScreen ? css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n z-index: 9999;\n right: ", "px;\n "])), diff ? 64 : 138) : css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n right: ", "px;\n "])), minimapEnabled || diff ? 64 : 20)),
39
39
  loading: css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n position: absolute;\n inset: 0;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n font-size: ", "px;\n color: ", ";\n\n background-color: transparent;\n\n &::after {\n content: '';\n width: 16px;\n /* display: inline; */\n animation: ", " steps(3) 1s infinite;\n }\n "])), token.fontSizeSM, token.colorTextTertiary, dots)
40
40
  };
@@ -107,7 +107,7 @@ export var SelectCard = /*#__PURE__*/React.forwardRef(function (props, ref) {
107
107
  }), o.label && !selected && /*#__PURE__*/_jsx(Text, {
108
108
  ellipsis: true,
109
109
  children: o.label
110
- }), !isImg && o.description && /*#__PURE__*/_jsx(Paragraph, {
110
+ }), o.description && /*#__PURE__*/_jsx(Paragraph, {
111
111
  ellipsis: {
112
112
  rows: 2
113
113
  },
@@ -1,5 +1,3 @@
1
1
  export declare const FALLBACK_LANG = "txt";
2
- export declare const useHighlight: (text: string, lang: string, isDarkMode: boolean) => import("swr/dist/_internal").SWRResponse<string, any, {
3
- revalidateOnFocus: false;
4
- }>;
2
+ export declare const useHighlight: (text: string, lang: string, enableTransformer?: boolean) => import("swr/dist/_internal").SWRResponse<string, any, any>;
5
3
  export { languageMap } from './languageMap';
@@ -1,82 +1,80 @@
1
1
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
2
2
  import _regeneratorRuntime from "@babel/runtime/regenerator";
3
3
  import { transformerNotationDiff, transformerNotationErrorLevel, transformerNotationFocus, transformerNotationHighlight, transformerNotationWordHighlight } from '@shikijs/transformers';
4
- import { createHighlighter } from 'shiki';
4
+ import { useTheme, useThemeMode } from 'antd-style';
5
+ import { useMemo } from 'react';
6
+ import { codeToHtml } from 'shiki';
5
7
  import useSWR from 'swr';
6
- import { themeConfig } from "../Highlighter/theme";
8
+ import { Md5 } from 'ts-md5';
7
9
  import { languageMap } from "./languageMap";
8
10
  export var FALLBACK_LANG = 'txt';
9
- var FALLBACK_LANGS = [FALLBACK_LANG];
10
- var cacheHighlighter;
11
- var initHighlighter = /*#__PURE__*/function () {
12
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(lang) {
13
- var highlighter, language;
11
+
12
+ // @Todo: use worker to improve performance
13
+ export var useHighlight = function useHighlight(text, lang, enableTransformer) {
14
+ var _useThemeMode = useThemeMode(),
15
+ isDarkMode = _useThemeMode.isDarkMode;
16
+ var language = lang.toLowerCase();
17
+ var matchedLanguage = useMemo(function () {
18
+ return languageMap.includes(language) ? language : FALLBACK_LANG;
19
+ }, [language]);
20
+ var theme = useTheme();
21
+ var transformers = useMemo(function () {
22
+ if (!enableTransformer) return;
23
+ return [transformerNotationDiff(), transformerNotationHighlight(), transformerNotationWordHighlight(), transformerNotationFocus(), transformerNotationErrorLevel()];
24
+ }, [enableTransformer]);
25
+ var key = useMemo(function () {
26
+ return Md5.hashStr(text);
27
+ }, [text]);
28
+ var shikiTheme = useMemo(function () {
29
+ if (language === 'md') {
30
+ return isDarkMode ? 'catppuccin-mocha' : 'catppuccin-latte';
31
+ }
32
+ return isDarkMode ? 'slack-dark' : 'slack-ochin';
33
+ }, [isDarkMode, language]);
34
+ return useSWR([matchedLanguage, isDarkMode ? 'd' : 'l', key].join('-'), /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
14
35
  return _regeneratorRuntime.wrap(function _callee$(_context) {
15
36
  while (1) switch (_context.prev = _context.next) {
16
37
  case 0:
17
- highlighter = cacheHighlighter;
18
- language = lang.toLowerCase();
19
- if (!(highlighter && FALLBACK_LANGS.includes(language))) {
20
- _context.next = 4;
21
- break;
22
- }
23
- return _context.abrupt("return", highlighter);
38
+ _context.prev = 0;
39
+ return _context.abrupt("return", codeToHtml(text, {
40
+ colorReplacements: {
41
+ 'slack-dark': {
42
+ '#4ec9b0': theme.yellow,
43
+ '#569cd6': theme.colorError,
44
+ '#6a9955': theme.gray,
45
+ '#9cdcfe': theme.colorText,
46
+ '#b5cea8': theme.purple10,
47
+ '#c586c0': theme.colorInfo,
48
+ '#ce9178': theme.colorSuccess,
49
+ '#dcdcaa': theme.colorWarning,
50
+ '#e6e6e6': theme.colorText
51
+ },
52
+ 'slack-ochin': {
53
+ '#002339': theme.colorText,
54
+ '#0991b6': theme.colorError,
55
+ '#174781': theme.purple10,
56
+ '#2f86d2': theme.colorText,
57
+ '#357b42': theme.gray,
58
+ '#7b30d0': theme.colorInfo,
59
+ '#7eb233': theme.colorWarningTextActive,
60
+ '#a44185': theme.colorSuccess,
61
+ '#dc3eb7': theme.yellow11
62
+ }
63
+ },
64
+ lang: matchedLanguage,
65
+ theme: shikiTheme,
66
+ transformers: transformers
67
+ }));
24
68
  case 4:
25
- if (languageMap.includes(language) && !FALLBACK_LANGS.includes(language)) {
26
- FALLBACK_LANGS.push(language);
27
- }
28
- _context.next = 7;
29
- return createHighlighter({
30
- langs: FALLBACK_LANGS,
31
- themes: [themeConfig(true), themeConfig(false), 'catppuccin-latte', 'catppuccin-mocha']
32
- });
33
- case 7:
34
- highlighter = _context.sent;
35
- cacheHighlighter = highlighter;
36
- return _context.abrupt("return", highlighter);
37
- case 10:
69
+ _context.prev = 4;
70
+ _context.t0 = _context["catch"](0);
71
+ console.warn('shiki Highlight error:', _context.t0);
72
+ return _context.abrupt("return", text);
73
+ case 8:
38
74
  case "end":
39
75
  return _context.stop();
40
76
  }
41
- }, _callee);
42
- }));
43
- return function initHighlighter(_x) {
44
- return _ref.apply(this, arguments);
45
- };
46
- }();
47
- export var useHighlight = function useHighlight(text, lang, isDarkMode) {
48
- return useSWR([lang === null || lang === void 0 ? void 0 : lang.toLowerCase(), isDarkMode ? 'dark' : 'light', text].join('-'), /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
49
- var language, theme, highlighter, html;
50
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
51
- while (1) switch (_context2.prev = _context2.next) {
52
- case 0:
53
- _context2.prev = 0;
54
- language = lang.toLowerCase();
55
- theme = isDarkMode ? 'dark' : 'light';
56
- if (language === 'md') {
57
- theme = isDarkMode ? 'catppuccin-mocha' : 'catppuccin-latte';
58
- }
59
- _context2.next = 6;
60
- return initHighlighter(language);
61
- case 6:
62
- highlighter = _context2.sent;
63
- html = highlighter === null || highlighter === void 0 ? void 0 : highlighter.codeToHtml(text, {
64
- lang: languageMap.includes(language) ? language : FALLBACK_LANG,
65
- theme: theme,
66
- transformers: [transformerNotationDiff(), transformerNotationHighlight(), transformerNotationWordHighlight(), transformerNotationFocus(), transformerNotationErrorLevel()]
67
- });
68
- return _context2.abrupt("return", html);
69
- case 11:
70
- _context2.prev = 11;
71
- _context2.t0 = _context2["catch"](0);
72
- return _context2.abrupt("return", '');
73
- case 14:
74
- case "end":
75
- return _context2.stop();
76
- }
77
- }, _callee2, null, [[0, 11]]);
78
- })), {
79
- revalidateOnFocus: false
80
- });
77
+ }, _callee, null, [[0, 4]]);
78
+ })));
81
79
  };
82
80
  export { languageMap } from "./languageMap";
package/es/index.d.ts CHANGED
@@ -7,6 +7,7 @@ export * from './Logo';
7
7
  export * from './LogViewer';
8
8
  export * from './Mentions';
9
9
  export * from './MonacoEditor';
10
+ export * from './MonacoEditor/MonacoEditor2';
10
11
  export * from './Page';
11
12
  export * from './ProCard';
12
13
  export * from './SelectCard';
package/es/index.js CHANGED
@@ -7,6 +7,7 @@ export * from "./Logo";
7
7
  export * from "./LogViewer";
8
8
  export * from "./Mentions";
9
9
  export * from "./MonacoEditor";
10
+ export * from "./MonacoEditor/MonacoEditor2";
10
11
  export * from "./Page";
11
12
  export * from "./ProCard";
12
13
  export * from "./SelectCard";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yuntijs/ui",
3
- "version": "1.1.0",
3
+ "version": "1.2.0-beta.1",
4
4
  "description": "☁️ Yunti UI - an open-source UI component library for building Cloud Native web apps",
5
5
  "keywords": [
6
6
  "yuntijs",
@@ -80,7 +80,6 @@
80
80
  ]
81
81
  },
82
82
  "dependencies": {
83
- "@alilc/lowcode-plugin-base-monaco-editor": "^1.1.2",
84
83
  "@ant-design/icons": "^5",
85
84
  "@babel/runtime": "^7",
86
85
  "@lexical/react": "^0.23.1",
@@ -90,8 +89,9 @@
90
89
  "@lobehub/tts": "^1.25.1",
91
90
  "@lobehub/ui": "^1.164.2",
92
91
  "@melloware/react-logviewer": "^5.2.0",
93
- "@monaco-editor/loader": "^1.4.0",
94
- "@shikijs/transformers": "^1.10.3",
92
+ "@monaco-editor/loader": "^1.5.0",
93
+ "@monaco-editor/react": "^4.7.0",
94
+ "@shikijs/transformers": "^3.2.1",
95
95
  "leva": "^0",
96
96
  "lexical": "^0.23.1",
97
97
  "lodash-es": "^4",
@@ -102,8 +102,9 @@
102
102
  "react-error-boundary": "^4",
103
103
  "react-layout-kit": "^1",
104
104
  "react18-json-view": "^0.2.8",
105
- "shiki": "^1.10.3",
105
+ "shiki": "^3.2.1",
106
106
  "swr": "^2.2.5",
107
+ "ts-md5": "^1.3.1",
107
108
  "url-join": "^5.0.0",
108
109
  "use-merge-value": "^1.2.0"
109
110
  },