rme 0.1.13 → 0.1.14
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/index.d.ts +2 -1
- package/dist/index.mjs +53 -35
- package/dist/index.mjs.map +3 -3
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -157,6 +157,7 @@ declare const createSourceCodeDelegate: (options?: CreateSourceCodeManagerOption
|
|
|
157
157
|
declare const _default$1: react__default.NamedExoticComponent<EditorProps>;
|
|
158
158
|
|
|
159
159
|
interface AIOptions {
|
|
160
|
+
defaultSelectProvider?: string;
|
|
160
161
|
supportProviderInfosMap: Record<string, {
|
|
161
162
|
models: string[];
|
|
162
163
|
}>;
|
|
@@ -165,7 +166,7 @@ interface AIOptions {
|
|
|
165
166
|
model: string;
|
|
166
167
|
prompt: string;
|
|
167
168
|
temperature?: number;
|
|
168
|
-
}) => Promise<string
|
|
169
|
+
}) => Promise<string | null>;
|
|
169
170
|
}
|
|
170
171
|
|
|
171
172
|
type MarkdownItToken = string;
|
package/dist/index.mjs
CHANGED
|
@@ -5395,16 +5395,17 @@ var getTransformerByView = (view) => {
|
|
|
5395
5395
|
// src/editor/extensions/Ai/ai-nodeview.tsx
|
|
5396
5396
|
import { jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
5397
5397
|
function AINodeView(props) {
|
|
5398
|
-
const { supportProviderInfosMap, generateText, getPosition } = props;
|
|
5398
|
+
const { supportProviderInfosMap, generateText, getPosition, defaultSelectProvider } = props;
|
|
5399
5399
|
const pos = getPosition();
|
|
5400
5400
|
const [status, setStatus] = useState(0 /* WAITASK */);
|
|
5401
5401
|
const providers = Object.keys(supportProviderInfosMap);
|
|
5402
|
-
const [selectedProvider, setSelectedProvider] = useState(providers[0]);
|
|
5402
|
+
const [selectedProvider, setSelectedProvider] = useState(defaultSelectProvider || providers[0]);
|
|
5403
5403
|
const providerInfo = supportProviderInfosMap[selectedProvider];
|
|
5404
5404
|
const [selectedModel, setSelectedModel] = useState(providerInfo.models[0]);
|
|
5405
5405
|
const [generatedText, setGeneratedText] = useState("");
|
|
5406
5406
|
const [prompt, setPrompt] = useState("");
|
|
5407
5407
|
const inputRef = useRef(null);
|
|
5408
|
+
const controllerRef = useRef(null);
|
|
5408
5409
|
useEffect(() => {
|
|
5409
5410
|
inputRef.current?.focus();
|
|
5410
5411
|
}, []);
|
|
@@ -5412,12 +5413,19 @@ function AINodeView(props) {
|
|
|
5412
5413
|
const generateTextHandler = async () => {
|
|
5413
5414
|
setStatus(1 /* LOADING */);
|
|
5414
5415
|
try {
|
|
5416
|
+
if (controllerRef.current) {
|
|
5417
|
+
controllerRef.current.abort();
|
|
5418
|
+
}
|
|
5419
|
+
controllerRef.current = new AbortController();
|
|
5415
5420
|
const text = await generateText({
|
|
5416
5421
|
provider: selectedProvider,
|
|
5417
5422
|
model: selectedModel,
|
|
5418
5423
|
prompt,
|
|
5419
5424
|
temperature: 0.7
|
|
5420
5425
|
});
|
|
5426
|
+
if (controllerRef.current?.signal.aborted) {
|
|
5427
|
+
return;
|
|
5428
|
+
}
|
|
5421
5429
|
if (text) {
|
|
5422
5430
|
setGeneratedText(text);
|
|
5423
5431
|
setStatus(2 /* SUCCESS */);
|
|
@@ -5431,14 +5439,31 @@ function AINodeView(props) {
|
|
|
5431
5439
|
const renderActionButton = () => {
|
|
5432
5440
|
switch (status) {
|
|
5433
5441
|
case 0 /* WAITASK */:
|
|
5434
|
-
return /* @__PURE__ */
|
|
5442
|
+
return /* @__PURE__ */ jsxs(Button, { size: "small", btnType: "primary", onClick: generateTextHandler, children: [
|
|
5443
|
+
/* @__PURE__ */ jsx2("i", { className: "ri-bard-line" }),
|
|
5444
|
+
t("ai.generate")
|
|
5445
|
+
] });
|
|
5435
5446
|
case 1 /* LOADING */:
|
|
5436
5447
|
return [
|
|
5437
5448
|
/* @__PURE__ */ jsxs(Button, { size: "small", disabled: true, children: [
|
|
5438
5449
|
t("common.loading"),
|
|
5439
5450
|
"..."
|
|
5440
|
-
] },
|
|
5441
|
-
/* @__PURE__ */
|
|
5451
|
+
] }, "loading"),
|
|
5452
|
+
/* @__PURE__ */ jsxs(
|
|
5453
|
+
Button,
|
|
5454
|
+
{
|
|
5455
|
+
size: "small",
|
|
5456
|
+
onClick: () => {
|
|
5457
|
+
controllerRef.current?.abort();
|
|
5458
|
+
setStatus(0 /* WAITASK */);
|
|
5459
|
+
},
|
|
5460
|
+
children: [
|
|
5461
|
+
/* @__PURE__ */ jsx2("i", { className: "ri-stop-line" }),
|
|
5462
|
+
t("ai.stop")
|
|
5463
|
+
]
|
|
5464
|
+
},
|
|
5465
|
+
"stop"
|
|
5466
|
+
)
|
|
5442
5467
|
];
|
|
5443
5468
|
case 2 /* SUCCESS */:
|
|
5444
5469
|
return [
|
|
@@ -5457,12 +5482,13 @@ function AINodeView(props) {
|
|
|
5457
5482
|
}
|
|
5458
5483
|
},
|
|
5459
5484
|
children: t("common.accept")
|
|
5460
|
-
}
|
|
5485
|
+
},
|
|
5486
|
+
"accept"
|
|
5461
5487
|
),
|
|
5462
|
-
/* @__PURE__ */ jsx2(Button, { size: "small", onClick: generateTextHandler, children: t("ai.regenerate") })
|
|
5488
|
+
/* @__PURE__ */ jsx2(Button, { size: "small", onClick: generateTextHandler, children: t("ai.regenerate") }, "regenerate")
|
|
5463
5489
|
];
|
|
5464
5490
|
case 3 /* ERROR */:
|
|
5465
|
-
return /* @__PURE__ */ jsx2(Button, { size: "small", btnType: "primary", children: t("ai.retry") });
|
|
5491
|
+
return /* @__PURE__ */ jsx2(Button, { size: "small", btnType: "primary", onClick: generateTextHandler, children: t("ai.retry") });
|
|
5466
5492
|
}
|
|
5467
5493
|
};
|
|
5468
5494
|
const renderPreview = () => {
|
|
@@ -5486,7 +5512,14 @@ function AINodeView(props) {
|
|
|
5486
5512
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
5487
5513
|
renderPreview(),
|
|
5488
5514
|
/* @__PURE__ */ jsx2(StatusTitle, { children: t("ai.prompt") }),
|
|
5489
|
-
/* @__PURE__ */ jsx2(
|
|
5515
|
+
/* @__PURE__ */ jsx2(
|
|
5516
|
+
InputAskTextarea,
|
|
5517
|
+
{
|
|
5518
|
+
ref: inputRef,
|
|
5519
|
+
value: prompt,
|
|
5520
|
+
onChange: (e) => setPrompt(e.target.value)
|
|
5521
|
+
}
|
|
5522
|
+
)
|
|
5490
5523
|
] }),
|
|
5491
5524
|
/* @__PURE__ */ jsx2("div", { className: "divider" }),
|
|
5492
5525
|
/* @__PURE__ */ jsxs(BottomBar, { children: [
|
|
@@ -5505,6 +5538,7 @@ function AINodeView(props) {
|
|
|
5505
5538
|
value: provider,
|
|
5506
5539
|
handler: () => {
|
|
5507
5540
|
setSelectedProvider(provider);
|
|
5541
|
+
setSelectedModel(supportProviderInfosMap[provider]?.models[0]);
|
|
5508
5542
|
}
|
|
5509
5543
|
})),
|
|
5510
5544
|
children: selectedProvider || "Select Provider"
|
|
@@ -5600,13 +5634,11 @@ var AIExtension = class extends NodeExtension {
|
|
|
5600
5634
|
constructor() {
|
|
5601
5635
|
super(...arguments);
|
|
5602
5636
|
this.ReactComponent = (props) => {
|
|
5603
|
-
const { supportProviderInfosMap, generateText } = this.options;
|
|
5604
5637
|
return /* @__PURE__ */ jsx3(
|
|
5605
5638
|
AINodeView,
|
|
5606
5639
|
{
|
|
5607
|
-
|
|
5608
|
-
|
|
5609
|
-
...props
|
|
5640
|
+
...props,
|
|
5641
|
+
...this.options
|
|
5610
5642
|
}
|
|
5611
5643
|
);
|
|
5612
5644
|
};
|
|
@@ -5651,8 +5683,7 @@ AIExtension = __decorateClass([
|
|
|
5651
5683
|
openai: {
|
|
5652
5684
|
models: ["gpt-3.5-turbo", "gpt-4"]
|
|
5653
5685
|
}
|
|
5654
|
-
}
|
|
5655
|
-
generateText: async () => ""
|
|
5686
|
+
}
|
|
5656
5687
|
},
|
|
5657
5688
|
staticKeys: [],
|
|
5658
5689
|
handlerKeys: [],
|
|
@@ -6375,7 +6406,7 @@ var styledDarkTheme = {
|
|
|
6375
6406
|
preBgColor: "#252525",
|
|
6376
6407
|
// components
|
|
6377
6408
|
contextMenuBgColor: "#1E1F20",
|
|
6378
|
-
contextMenuBgColorHover: "#
|
|
6409
|
+
contextMenuBgColorHover: "#2D3134",
|
|
6379
6410
|
slashMenuBorderColor: "rgb(38 38 38 / 1)"
|
|
6380
6411
|
};
|
|
6381
6412
|
|
|
@@ -6420,7 +6451,7 @@ var styledLightTheme = {
|
|
|
6420
6451
|
preBgColor: "#e7e7e7",
|
|
6421
6452
|
// components
|
|
6422
6453
|
contextMenuBgColor: "#f6f7f9",
|
|
6423
|
-
contextMenuBgColorHover: "#
|
|
6454
|
+
contextMenuBgColorHover: "#E8E8EC",
|
|
6424
6455
|
slashMenuBorderColor: "rgb(229 229 229 / 1)"
|
|
6425
6456
|
};
|
|
6426
6457
|
|
|
@@ -19714,20 +19745,14 @@ import { useExtension, useRemirrorContext as useRemirrorContext2 } from "@remirr
|
|
|
19714
19745
|
import { useCallback as useCallback3, useEffect as useEffect6, useMemo as useMemo2, useRef as useRef7, useState as useState8 } from "react";
|
|
19715
19746
|
import { usePopper } from "react-popper";
|
|
19716
19747
|
|
|
19717
|
-
// src/editor/theme/darken-colors.ts
|
|
19718
|
-
import Color from "color";
|
|
19719
|
-
var opposite = (color, amount) => {
|
|
19720
|
-
if (Color(color).isDark()) {
|
|
19721
|
-
return Color(color).lighten(amount).string();
|
|
19722
|
-
} else {
|
|
19723
|
-
return Color(color).darken(amount).string();
|
|
19724
|
-
}
|
|
19725
|
-
};
|
|
19726
|
-
|
|
19727
19748
|
// src/editor/toolbar/SlashMenu/SlashMenuRoot.tsx
|
|
19728
19749
|
import { memo as memo4, useCallback as useCallback2, useEffect as useEffect5, useMemo, useRef as useRef6, useState as useState7 } from "react";
|
|
19729
19750
|
import styled10, { css as css5 } from "styled-components";
|
|
19730
19751
|
|
|
19752
|
+
// src/editor/theme/darken-colors.ts
|
|
19753
|
+
import Color from "color";
|
|
19754
|
+
var darken = (color, amount) => Color(color).darken(amount).string();
|
|
19755
|
+
|
|
19731
19756
|
// src/editor/toolbar/SlashMenu/TablePanel.tsx
|
|
19732
19757
|
import { forwardRef, useState as useState6, useImperativeHandle, memo as memo3 } from "react";
|
|
19733
19758
|
import styled9 from "styled-components";
|
|
@@ -19998,11 +20023,6 @@ var SlashMenuRoot = memo4(
|
|
|
19998
20023
|
] });
|
|
19999
20024
|
}
|
|
20000
20025
|
);
|
|
20001
|
-
var DividingLine = styled10.div`
|
|
20002
|
-
flex: 1;
|
|
20003
|
-
width: 1px;
|
|
20004
|
-
background-color: ${(props) => props.theme.primaryFontColor};
|
|
20005
|
-
`;
|
|
20006
20026
|
var MenuPanel = styled10.div.attrs((p) => p)`
|
|
20007
20027
|
display: flex;
|
|
20008
20028
|
min-width: 130px;
|
|
@@ -20010,7 +20030,7 @@ var MenuPanel = styled10.div.attrs((p) => p)`
|
|
|
20010
20030
|
overscroll-behavior: contain;
|
|
20011
20031
|
border-radius: ${(props) => props.location === "left" ? `${props.theme.smallBorderRadius} 0 0
|
|
20012
20032
|
${props.theme.smallBorderRadius}` : `0 ${props.theme.smallBorderRadius} ${props.theme.smallBorderRadius} 0`};
|
|
20013
|
-
background-color: ${(props) => props.active ?
|
|
20033
|
+
background-color: ${(props) => props.active ? darken(props.theme.contextMenuBgColorHover, 0.2) : props.theme.contextMenuBgColorHover};
|
|
20014
20034
|
padding: ${(props) => props.theme.spaceXs};
|
|
20015
20035
|
color: ${(props) => props.theme.primaryFontColor};
|
|
20016
20036
|
font-size: ${(props) => props.theme.fontXs};
|
|
@@ -20029,14 +20049,12 @@ var MenuItem2 = styled10.li.attrs((props) => ({
|
|
|
20029
20049
|
|
|
20030
20050
|
&:hover {
|
|
20031
20051
|
background-color: ${(props) => props.theme.contextMenuBgColorHover};
|
|
20032
|
-
color: hsl(204 20% 100%);
|
|
20033
20052
|
}
|
|
20034
20053
|
|
|
20035
20054
|
${(p) => {
|
|
20036
20055
|
if (p.selected) {
|
|
20037
20056
|
return css5`
|
|
20038
20057
|
background-color: ${(props) => props.theme.contextMenuBgColorHover};
|
|
20039
|
-
color: hsl(204 20% 100%);
|
|
20040
20058
|
`;
|
|
20041
20059
|
}
|
|
20042
20060
|
}}
|