@uipath/apollo-wind 2.22.0 → 2.24.0
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/components/forms/metadata-form.cjs +2 -2
- package/dist/components/forms/metadata-form.js +2 -2
- package/dist/components/ui/index.cjs +92 -82
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/index.js +1 -0
- package/dist/components/ui/prompt-editor/components/EditorToolbar.cjs +156 -0
- package/dist/components/ui/prompt-editor/components/EditorToolbar.d.ts +9 -0
- package/dist/components/ui/prompt-editor/components/EditorToolbar.js +122 -0
- package/dist/components/ui/prompt-editor/components/MarkdownPreview.cjs +205 -0
- package/dist/components/ui/prompt-editor/components/MarkdownPreview.d.ts +14 -0
- package/dist/components/ui/prompt-editor/components/MarkdownPreview.js +161 -0
- package/dist/components/ui/prompt-editor/components/PromptEditorAutocompleteMenu.cjs +194 -0
- package/dist/components/ui/prompt-editor/components/PromptEditorAutocompleteMenu.d.ts +28 -0
- package/dist/components/ui/prompt-editor/components/PromptEditorAutocompleteMenu.js +160 -0
- package/dist/components/ui/prompt-editor/components/TokenPill.cjs +119 -0
- package/dist/components/ui/prompt-editor/components/TokenPill.d.ts +15 -0
- package/dist/components/ui/prompt-editor/components/TokenPill.js +85 -0
- package/dist/components/ui/prompt-editor/components/TokenPillWithTooltip.cjs +138 -0
- package/dist/components/ui/prompt-editor/components/TokenPillWithTooltip.d.ts +13 -0
- package/dist/components/ui/prompt-editor/components/TokenPillWithTooltip.js +104 -0
- package/dist/components/ui/prompt-editor/components/token-icon-markup.cjs +138 -0
- package/dist/components/ui/prompt-editor/components/token-icon-markup.d.ts +16 -0
- package/dist/components/ui/prompt-editor/components/token-icon-markup.js +104 -0
- package/dist/components/ui/prompt-editor/index.cjs +40 -0
- package/dist/components/ui/prompt-editor/index.d.ts +4 -0
- package/dist/components/ui/prompt-editor/index.js +3 -0
- package/dist/components/ui/prompt-editor/nodes/InputTokenNode.cjs +145 -0
- package/dist/components/ui/prompt-editor/nodes/InputTokenNode.d.ts +30 -0
- package/dist/components/ui/prompt-editor/nodes/InputTokenNode.js +105 -0
- package/dist/components/ui/prompt-editor/nodes/OutputTokenNode.cjs +145 -0
- package/dist/components/ui/prompt-editor/nodes/OutputTokenNode.d.ts +30 -0
- package/dist/components/ui/prompt-editor/nodes/OutputTokenNode.js +105 -0
- package/dist/components/ui/prompt-editor/nodes/ResourceTokenNode.cjs +145 -0
- package/dist/components/ui/prompt-editor/nodes/ResourceTokenNode.d.ts +30 -0
- package/dist/components/ui/prompt-editor/nodes/ResourceTokenNode.js +105 -0
- package/dist/components/ui/prompt-editor/nodes/StateTokenNode.cjs +145 -0
- package/dist/components/ui/prompt-editor/nodes/StateTokenNode.d.ts +30 -0
- package/dist/components/ui/prompt-editor/nodes/StateTokenNode.js +105 -0
- package/dist/components/ui/prompt-editor/nodes/index.cjs +72 -0
- package/dist/components/ui/prompt-editor/nodes/index.d.ts +8 -0
- package/dist/components/ui/prompt-editor/nodes/index.js +5 -0
- package/dist/components/ui/prompt-editor/plugins/AutocompletePlugin.cjs +242 -0
- package/dist/components/ui/prompt-editor/plugins/AutocompletePlugin.d.ts +15 -0
- package/dist/components/ui/prompt-editor/plugins/AutocompletePlugin.js +208 -0
- package/dist/components/ui/prompt-editor/plugins/CopyPastePlugin.cjs +164 -0
- package/dist/components/ui/prompt-editor/plugins/CopyPastePlugin.d.ts +1 -0
- package/dist/components/ui/prompt-editor/plugins/CopyPastePlugin.js +130 -0
- package/dist/components/ui/prompt-editor/plugins/EditorRefPlugin.cjs +50 -0
- package/dist/components/ui/prompt-editor/plugins/EditorRefPlugin.d.ts +4 -0
- package/dist/components/ui/prompt-editor/plugins/EditorRefPlugin.js +16 -0
- package/dist/components/ui/prompt-editor/plugins/MultilinePlugin.cjs +108 -0
- package/dist/components/ui/prompt-editor/plugins/MultilinePlugin.d.ts +3 -0
- package/dist/components/ui/prompt-editor/plugins/MultilinePlugin.js +74 -0
- package/dist/components/ui/prompt-editor/plugins/NodeSelectionFixPlugin.cjs +313 -0
- package/dist/components/ui/prompt-editor/plugins/NodeSelectionFixPlugin.d.ts +7 -0
- package/dist/components/ui/prompt-editor/plugins/NodeSelectionFixPlugin.js +276 -0
- package/dist/components/ui/prompt-editor/plugins/RenameTokensPlugin.cjs +186 -0
- package/dist/components/ui/prompt-editor/plugins/RenameTokensPlugin.d.ts +7 -0
- package/dist/components/ui/prompt-editor/plugins/RenameTokensPlugin.js +152 -0
- package/dist/components/ui/prompt-editor/plugins/ToolbarActionsPlugin.cjs +132 -0
- package/dist/components/ui/prompt-editor/plugins/ToolbarActionsPlugin.d.ts +7 -0
- package/dist/components/ui/prompt-editor/plugins/ToolbarActionsPlugin.js +98 -0
- package/dist/components/ui/prompt-editor/plugins/ValidateTokensPlugin.cjs +85 -0
- package/dist/components/ui/prompt-editor/plugins/ValidateTokensPlugin.d.ts +4 -0
- package/dist/components/ui/prompt-editor/plugins/ValidateTokensPlugin.js +51 -0
- package/dist/components/ui/prompt-editor/plugins/ValueSyncPlugin.cjs +98 -0
- package/dist/components/ui/prompt-editor/plugins/ValueSyncPlugin.d.ts +8 -0
- package/dist/components/ui/prompt-editor/plugins/ValueSyncPlugin.js +64 -0
- package/dist/components/ui/prompt-editor/plugins/VariableDropPlugin.cjs +137 -0
- package/dist/components/ui/prompt-editor/plugins/VariableDropPlugin.d.ts +19 -0
- package/dist/components/ui/prompt-editor/plugins/VariableDropPlugin.js +100 -0
- package/dist/components/ui/prompt-editor/plugins/shared/token-nodes.cjs +49 -0
- package/dist/components/ui/prompt-editor/plugins/shared/token-nodes.d.ts +8 -0
- package/dist/components/ui/prompt-editor/plugins/shared/token-nodes.js +12 -0
- package/dist/components/ui/prompt-editor/prompt-editor.cjs +402 -0
- package/dist/components/ui/prompt-editor/prompt-editor.d.ts +35 -0
- package/dist/components/ui/prompt-editor/prompt-editor.js +368 -0
- package/dist/components/ui/prompt-editor/types.cjs +74 -0
- package/dist/components/ui/prompt-editor/types.d.ts +58 -0
- package/dist/components/ui/prompt-editor/types.js +31 -0
- package/dist/components/ui/prompt-editor/utils/autocomplete-segments.cjs +60 -0
- package/dist/components/ui/prompt-editor/utils/autocomplete-segments.d.ts +29 -0
- package/dist/components/ui/prompt-editor/utils/autocomplete-segments.js +20 -0
- package/dist/components/ui/prompt-editor/utils/comparison.cjs +39 -0
- package/dist/components/ui/prompt-editor/utils/comparison.d.ts +3 -0
- package/dist/components/ui/prompt-editor/utils/comparison.js +5 -0
- package/dist/components/ui/prompt-editor/utils/index.cjs +68 -0
- package/dist/components/ui/prompt-editor/utils/index.d.ts +3 -0
- package/dist/components/ui/prompt-editor/utils/index.js +4 -0
- package/dist/components/ui/prompt-editor/utils/insert-token.cjs +103 -0
- package/dist/components/ui/prompt-editor/utils/insert-token.d.ts +12 -0
- package/dist/components/ui/prompt-editor/utils/insert-token.js +66 -0
- package/dist/components/ui/prompt-editor/utils/serialization.cjs +255 -0
- package/dist/components/ui/prompt-editor/utils/serialization.d.ts +16 -0
- package/dist/components/ui/prompt-editor/utils/serialization.js +200 -0
- package/dist/editor-themes/monaco.cjs +2 -2
- package/dist/editor-themes/monaco.js +2 -2
- package/dist/index.cjs +7 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -1
- package/dist/styles.css +44 -16
- package/dist/tailwind.utilities.css +1 -1
- package/package.json +7 -1
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { $createLineBreakNode, $createParagraphNode, $createTextNode, $getRoot, $isLineBreakNode, $isParagraphNode, $isRangeSelection, $isTextNode } from "lexical";
|
|
2
|
+
import { createInputTokenNode, createOutputTokenNode, createResourceTokenNode, createStateTokenNode, isInputTokenNode, isOutputTokenNode, isResourceTokenNode, isStateTokenNode } from "../nodes/index.js";
|
|
3
|
+
const WORD_JOINER = '\u2060';
|
|
4
|
+
const appendTextToken = (tokens, raw)=>{
|
|
5
|
+
const text = raw.split(WORD_JOINER).join('');
|
|
6
|
+
if (!text) return;
|
|
7
|
+
const lastToken = tokens[tokens.length - 1];
|
|
8
|
+
if (lastToken && 'text' === lastToken.type) lastToken.value += text;
|
|
9
|
+
else tokens.push({
|
|
10
|
+
type: 'text',
|
|
11
|
+
value: text
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
const $getEditorTokensInternal = ()=>{
|
|
15
|
+
const root = $getRoot();
|
|
16
|
+
const tokens = [];
|
|
17
|
+
const addText = (raw)=>appendTextToken(tokens, raw);
|
|
18
|
+
const traverseChildren = (children)=>{
|
|
19
|
+
for (const node of children)if ($isTextNode(node)) addText(node.getTextContent());
|
|
20
|
+
else if ($isLineBreakNode(node)) addText('\n');
|
|
21
|
+
else if (isInputTokenNode(node)) tokens.push({
|
|
22
|
+
type: 'input',
|
|
23
|
+
value: node.getValue()
|
|
24
|
+
});
|
|
25
|
+
else if (isOutputTokenNode(node)) tokens.push({
|
|
26
|
+
type: 'output',
|
|
27
|
+
value: node.getValue()
|
|
28
|
+
});
|
|
29
|
+
else if (isStateTokenNode(node)) tokens.push({
|
|
30
|
+
type: 'state',
|
|
31
|
+
value: node.getValue()
|
|
32
|
+
});
|
|
33
|
+
else if (isResourceTokenNode(node)) tokens.push({
|
|
34
|
+
type: 'resource',
|
|
35
|
+
value: node.getValue()
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
const paragraphs = root.getChildren();
|
|
39
|
+
for(let i = 0; i < paragraphs.length; i++){
|
|
40
|
+
const paragraph = paragraphs[i];
|
|
41
|
+
if ($isParagraphNode(paragraph)) {
|
|
42
|
+
traverseChildren(paragraph.getChildren());
|
|
43
|
+
if (i < paragraphs.length - 1) addText('\n');
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return tokens;
|
|
47
|
+
};
|
|
48
|
+
const $setEditorTokensInternal = (tokens)=>{
|
|
49
|
+
if (!Array.isArray(tokens)) throw new TypeError('setEditorTokensInternal: tokens must be an array');
|
|
50
|
+
const root = $getRoot();
|
|
51
|
+
root.clear();
|
|
52
|
+
const currentParagraph = $createParagraphNode();
|
|
53
|
+
for (const token of tokens)if ('text' === token.type) {
|
|
54
|
+
const lines = token.value.split('\n');
|
|
55
|
+
for(let i = 0; i < lines.length; i++){
|
|
56
|
+
if (lines[i]) currentParagraph.append($createTextNode(lines[i]));
|
|
57
|
+
if (i < lines.length - 1) currentParagraph.append($createLineBreakNode());
|
|
58
|
+
}
|
|
59
|
+
} else {
|
|
60
|
+
let node;
|
|
61
|
+
switch(token.type){
|
|
62
|
+
case 'input':
|
|
63
|
+
node = createInputTokenNode(token.value);
|
|
64
|
+
break;
|
|
65
|
+
case 'output':
|
|
66
|
+
node = createOutputTokenNode(token.value);
|
|
67
|
+
break;
|
|
68
|
+
case 'state':
|
|
69
|
+
node = createStateTokenNode(token.value);
|
|
70
|
+
break;
|
|
71
|
+
case 'resource':
|
|
72
|
+
node = createResourceTokenNode(token.value);
|
|
73
|
+
break;
|
|
74
|
+
default:
|
|
75
|
+
throw new Error(`Unknown token type: ${token.type}`);
|
|
76
|
+
}
|
|
77
|
+
currentParagraph.append(node);
|
|
78
|
+
}
|
|
79
|
+
root.append(currentParagraph);
|
|
80
|
+
};
|
|
81
|
+
const getEditorTokens = (editor)=>{
|
|
82
|
+
let tokens = [];
|
|
83
|
+
editor.getEditorState().read(()=>{
|
|
84
|
+
tokens = $getEditorTokensInternal();
|
|
85
|
+
});
|
|
86
|
+
return tokens;
|
|
87
|
+
};
|
|
88
|
+
const setEditorTokens = (editor, tokens)=>{
|
|
89
|
+
editor.update(()=>$setEditorTokensInternal(tokens), {
|
|
90
|
+
discrete: true
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
const tokensToClipboardString = (tokens)=>{
|
|
94
|
+
let result = '';
|
|
95
|
+
for (const token of tokens)if ('text' === token.type) result += token.value;
|
|
96
|
+
else result += `{{ ${token.value} }}`;
|
|
97
|
+
return result;
|
|
98
|
+
};
|
|
99
|
+
const clipboardStringToTokens = (str)=>{
|
|
100
|
+
const tokens = [];
|
|
101
|
+
let currentText = '';
|
|
102
|
+
let i = 0;
|
|
103
|
+
const flushText = ()=>{
|
|
104
|
+
if (currentText.length > 0) {
|
|
105
|
+
tokens.push({
|
|
106
|
+
type: 'text',
|
|
107
|
+
value: currentText
|
|
108
|
+
});
|
|
109
|
+
currentText = '';
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
while(i < str.length){
|
|
113
|
+
if ('{' === str[i] && i + 1 < str.length && '{' === str[i + 1]) {
|
|
114
|
+
flushText();
|
|
115
|
+
i += 2;
|
|
116
|
+
let inner = '';
|
|
117
|
+
let foundClosing = false;
|
|
118
|
+
while(i < str.length){
|
|
119
|
+
if ('}' === str[i] && i + 1 < str.length && '}' === str[i + 1]) {
|
|
120
|
+
i += 2;
|
|
121
|
+
foundClosing = true;
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
inner += str[i];
|
|
125
|
+
i++;
|
|
126
|
+
}
|
|
127
|
+
if (foundClosing && inner.trim()) tokens.push({
|
|
128
|
+
type: 'input',
|
|
129
|
+
value: inner.trim()
|
|
130
|
+
});
|
|
131
|
+
else if (foundClosing) currentText += '{{}}';
|
|
132
|
+
else currentText += `{{${inner}`;
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
currentText += str[i];
|
|
136
|
+
i++;
|
|
137
|
+
}
|
|
138
|
+
flushText();
|
|
139
|
+
return tokens;
|
|
140
|
+
};
|
|
141
|
+
const getEditorTokensFromSelection = (selection)=>{
|
|
142
|
+
if (!$isRangeSelection(selection)) return [];
|
|
143
|
+
if (selection.isCollapsed()) return [];
|
|
144
|
+
const tokens = [];
|
|
145
|
+
const addText = (raw)=>appendTextToken(tokens, raw);
|
|
146
|
+
const selectedNodes = selection.getNodes();
|
|
147
|
+
const anchorKey = selection.anchor.key;
|
|
148
|
+
const focusKey = selection.focus.key;
|
|
149
|
+
const anchorOffset = selection.anchor.offset;
|
|
150
|
+
const focusOffset = selection.focus.offset;
|
|
151
|
+
const anchorNode = selection.anchor.getNode();
|
|
152
|
+
const nodeKeys = new Set(selectedNodes.map((n)=>n.getKey()));
|
|
153
|
+
const nodesToProcess = [];
|
|
154
|
+
if ($isTextNode(anchorNode) && !nodeKeys.has(anchorKey)) nodesToProcess.push(anchorNode);
|
|
155
|
+
nodesToProcess.push(...selectedNodes);
|
|
156
|
+
if (0 === nodesToProcess.length) return [];
|
|
157
|
+
const firstSelectedNode = nodesToProcess[0];
|
|
158
|
+
const isForward = 1 === nodesToProcess.length ? anchorOffset <= focusOffset : firstSelectedNode.getKey() === anchorKey || firstSelectedNode.getParent()?.getKey() === anchorKey;
|
|
159
|
+
let prevNodeParagraph = null;
|
|
160
|
+
for (const node of nodesToProcess){
|
|
161
|
+
const nodeKey = node.getKey();
|
|
162
|
+
const nodeType = node.getType();
|
|
163
|
+
const nodeParagraph = $isParagraphNode(node) ? node : node.getParent();
|
|
164
|
+
if (prevNodeParagraph && nodeParagraph && prevNodeParagraph !== nodeParagraph) addText('\n');
|
|
165
|
+
prevNodeParagraph = nodeParagraph;
|
|
166
|
+
if (!$isParagraphNode(node)) {
|
|
167
|
+
if ('input-token' === nodeType) tokens.push({
|
|
168
|
+
type: 'input',
|
|
169
|
+
value: node.getValue()
|
|
170
|
+
});
|
|
171
|
+
else if ('output-token' === nodeType) tokens.push({
|
|
172
|
+
type: 'output',
|
|
173
|
+
value: node.getValue()
|
|
174
|
+
});
|
|
175
|
+
else if ('state-token' === nodeType) tokens.push({
|
|
176
|
+
type: 'state',
|
|
177
|
+
value: node.getValue()
|
|
178
|
+
});
|
|
179
|
+
else if ('resource-token' === nodeType) tokens.push({
|
|
180
|
+
type: 'resource',
|
|
181
|
+
value: node.getValue()
|
|
182
|
+
});
|
|
183
|
+
else if ($isTextNode(node)) {
|
|
184
|
+
const textContent = node.getTextContent();
|
|
185
|
+
let selectedText = textContent;
|
|
186
|
+
const isAnchorNode = nodeKey === anchorKey;
|
|
187
|
+
const isFocusNode = nodeKey === focusKey;
|
|
188
|
+
if (isAnchorNode && isFocusNode) {
|
|
189
|
+
const start = Math.min(anchorOffset, focusOffset);
|
|
190
|
+
const end = Math.max(anchorOffset, focusOffset);
|
|
191
|
+
selectedText = textContent.slice(start, end);
|
|
192
|
+
} else if (isAnchorNode) selectedText = isForward ? textContent.slice(anchorOffset) : textContent.slice(0, anchorOffset);
|
|
193
|
+
else if (isFocusNode) selectedText = isForward ? textContent.slice(0, focusOffset) : textContent.slice(focusOffset);
|
|
194
|
+
if (selectedText) addText(selectedText);
|
|
195
|
+
} else if ($isLineBreakNode(node)) addText('\n');
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return tokens;
|
|
199
|
+
};
|
|
200
|
+
export { $getEditorTokensInternal, $setEditorTokensInternal, WORD_JOINER, clipboardStringToTokens, getEditorTokens, getEditorTokensFromSelection, setEditorTokens, tokensToClipboardString };
|
|
@@ -296,7 +296,7 @@ const apolloFutureDarkMonaco = {
|
|
|
296
296
|
inherit: false,
|
|
297
297
|
rules: darkRules,
|
|
298
298
|
colors: {
|
|
299
|
-
'editor.background': '#
|
|
299
|
+
'editor.background': '#27272a',
|
|
300
300
|
'editor.foreground': '#a1a1aa',
|
|
301
301
|
'editorLineNumber.foreground': '#52525b',
|
|
302
302
|
'editorLineNumber.activeForeground': '#a1a1aa',
|
|
@@ -333,7 +333,7 @@ const apolloFutureLightMonaco = {
|
|
|
333
333
|
inherit: false,
|
|
334
334
|
rules: lightRules,
|
|
335
335
|
colors: {
|
|
336
|
-
'editor.background': '#
|
|
336
|
+
'editor.background': '#e4e4e7',
|
|
337
337
|
'editor.foreground': '#52525b',
|
|
338
338
|
'editorLineNumber.foreground': '#a1a1aa',
|
|
339
339
|
'editorLineNumber.activeForeground': '#71717a',
|
|
@@ -263,7 +263,7 @@ const apolloFutureDarkMonaco = {
|
|
|
263
263
|
inherit: false,
|
|
264
264
|
rules: darkRules,
|
|
265
265
|
colors: {
|
|
266
|
-
'editor.background': '#
|
|
266
|
+
'editor.background': '#27272a',
|
|
267
267
|
'editor.foreground': '#a1a1aa',
|
|
268
268
|
'editorLineNumber.foreground': '#52525b',
|
|
269
269
|
'editorLineNumber.activeForeground': '#a1a1aa',
|
|
@@ -300,7 +300,7 @@ const apolloFutureLightMonaco = {
|
|
|
300
300
|
inherit: false,
|
|
301
301
|
rules: lightRules,
|
|
302
302
|
colors: {
|
|
303
|
-
'editor.background': '#
|
|
303
|
+
'editor.background': '#e4e4e7',
|
|
304
304
|
'editor.foreground': '#52525b',
|
|
305
305
|
'editorLineNumber.foreground': '#a1a1aa',
|
|
306
306
|
'editorLineNumber.activeForeground': '#71717a',
|
package/dist/index.cjs
CHANGED
|
@@ -67,6 +67,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
67
67
|
CommandSeparator: ()=>command_cjs_namespaceObject.CommandSeparator,
|
|
68
68
|
FormFieldRenderer: ()=>field_renderer_cjs_namespaceObject.FormFieldRenderer,
|
|
69
69
|
EditableCell: ()=>editable_cell_cjs_namespaceObject.EditableCell,
|
|
70
|
+
PromptEditor: ()=>index_cjs_namespaceObject.PromptEditor,
|
|
70
71
|
Spinner: ()=>spinner_cjs_namespaceObject.Spinner,
|
|
71
72
|
buttonVariants: ()=>button_cjs_namespaceObject.buttonVariants,
|
|
72
73
|
SheetOverlay: ()=>sheet_cjs_namespaceObject.SheetOverlay,
|
|
@@ -129,6 +130,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
129
130
|
TooltipProvider: ()=>tooltip_cjs_namespaceObject.TooltipProvider,
|
|
130
131
|
DataFetcher: ()=>data_fetcher_cjs_namespaceObject.DataFetcher,
|
|
131
132
|
DialogPortal: ()=>dialog_cjs_namespaceObject.DialogPortal,
|
|
133
|
+
VARIABLE_DRAG_MIME: ()=>index_cjs_namespaceObject.VARIABLE_DRAG_MIME,
|
|
132
134
|
analyticsPlugin: ()=>form_plugins_cjs_namespaceObject.analyticsPlugin,
|
|
133
135
|
cn: ()=>utils_cjs_namespaceObject.cn,
|
|
134
136
|
DropdownMenuSub: ()=>dropdown_menu_cjs_namespaceObject.DropdownMenuSub,
|
|
@@ -276,6 +278,7 @@ const table_cjs_namespaceObject = require("./components/ui/table.cjs");
|
|
|
276
278
|
const data_table_cjs_namespaceObject = require("./components/ui/data-table.cjs");
|
|
277
279
|
const editable_cell_cjs_namespaceObject = require("./components/ui/editable-cell.cjs");
|
|
278
280
|
const progress_cjs_namespaceObject = require("./components/ui/progress.cjs");
|
|
281
|
+
const index_cjs_namespaceObject = require("./components/ui/prompt-editor/index.cjs");
|
|
279
282
|
const skeleton_cjs_namespaceObject = require("./components/ui/skeleton.cjs");
|
|
280
283
|
const spinner_cjs_namespaceObject = require("./components/ui/spinner.cjs");
|
|
281
284
|
const empty_state_cjs_namespaceObject = require("./components/ui/empty-state.cjs");
|
|
@@ -442,6 +445,7 @@ exports.PopoverAnchor = __webpack_exports__.PopoverAnchor;
|
|
|
442
445
|
exports.PopoverContent = __webpack_exports__.PopoverContent;
|
|
443
446
|
exports.PopoverTrigger = __webpack_exports__.PopoverTrigger;
|
|
444
447
|
exports.Progress = __webpack_exports__.Progress;
|
|
448
|
+
exports.PromptEditor = __webpack_exports__.PromptEditor;
|
|
445
449
|
exports.RadioGroup = __webpack_exports__.RadioGroup;
|
|
446
450
|
exports.RadioGroupItem = __webpack_exports__.RadioGroupItem;
|
|
447
451
|
exports.ResizableHandle = __webpack_exports__.ResizableHandle;
|
|
@@ -504,6 +508,7 @@ exports.TooltipPortal = __webpack_exports__.TooltipPortal;
|
|
|
504
508
|
exports.TooltipProvider = __webpack_exports__.TooltipProvider;
|
|
505
509
|
exports.TooltipTrigger = __webpack_exports__.TooltipTrigger;
|
|
506
510
|
exports.TreeView = __webpack_exports__.TreeView;
|
|
511
|
+
exports.VARIABLE_DRAG_MIME = __webpack_exports__.VARIABLE_DRAG_MIME;
|
|
507
512
|
exports.analyticsPlugin = __webpack_exports__.analyticsPlugin;
|
|
508
513
|
exports.auditPlugin = __webpack_exports__.auditPlugin;
|
|
509
514
|
exports.autoSavePlugin = __webpack_exports__.autoSavePlugin;
|
|
@@ -654,6 +659,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
|
654
659
|
"PopoverContent",
|
|
655
660
|
"PopoverTrigger",
|
|
656
661
|
"Progress",
|
|
662
|
+
"PromptEditor",
|
|
657
663
|
"RadioGroup",
|
|
658
664
|
"RadioGroupItem",
|
|
659
665
|
"ResizableHandle",
|
|
@@ -716,6 +722,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
|
716
722
|
"TooltipProvider",
|
|
717
723
|
"TooltipTrigger",
|
|
718
724
|
"TreeView",
|
|
725
|
+
"VARIABLE_DRAG_MIME",
|
|
719
726
|
"analyticsPlugin",
|
|
720
727
|
"auditPlugin",
|
|
721
728
|
"autoSavePlugin",
|
package/dist/index.d.ts
CHANGED
|
@@ -44,6 +44,8 @@ export type { DataTableProps } from './components/ui/data-table';
|
|
|
44
44
|
export { EditableCell, createEditableColumn, } from './components/ui/editable-cell';
|
|
45
45
|
export type { EditableCellMeta, EditableCellType, } from './components/ui/editable-cell';
|
|
46
46
|
export { Progress } from './components/ui/progress';
|
|
47
|
+
export { PromptEditor, VARIABLE_DRAG_MIME } from './components/ui/prompt-editor';
|
|
48
|
+
export type { PromptEditorAutoCompleteOption, PromptEditorMode, PromptEditorProps, PromptEditorRef, PromptEditorToken, PromptEditorTokenType, } from './components/ui/prompt-editor';
|
|
47
49
|
export { Skeleton } from './components/ui/skeleton';
|
|
48
50
|
export { Spinner, spinnerVariants } from './components/ui/spinner';
|
|
49
51
|
export type { SpinnerProps } from './components/ui/spinner';
|
package/dist/index.js
CHANGED
|
@@ -29,6 +29,7 @@ import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, Tabl
|
|
|
29
29
|
import { DataTable, DataTableColumnHeader, DataTableSelectColumn } from "./components/ui/data-table.js";
|
|
30
30
|
import { EditableCell, createEditableColumn } from "./components/ui/editable-cell.js";
|
|
31
31
|
import { Progress } from "./components/ui/progress.js";
|
|
32
|
+
import { PromptEditor, VARIABLE_DRAG_MIME } from "./components/ui/prompt-editor/index.js";
|
|
32
33
|
import { Skeleton } from "./components/ui/skeleton.js";
|
|
33
34
|
import { Spinner, spinnerVariants } from "./components/ui/spinner.js";
|
|
34
35
|
import { EmptyState } from "./components/ui/empty-state.js";
|
|
@@ -62,4 +63,4 @@ import { ExpressionBuilder, RuleBuilder, RulesEngine } from "./components/forms/
|
|
|
62
63
|
import { DataFetcher, DataSourceBuilder, DataTransformers, FetchAdapter } from "./components/forms/data-fetcher.js";
|
|
63
64
|
import { analyticsPlugin, auditPlugin, autoSavePlugin, formattingPlugin, validationPlugin, workflowPlugin } from "./components/forms/form-plugins.js";
|
|
64
65
|
import { hasMinMaxStep, hasOptions, isCustomField, isFileField } from "./components/forms/form-schema.js";
|
|
65
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Column, Combobox, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DataFetcher, DataSourceBuilder, DataTable, DataTableColumnHeader, DataTableSelectColumn, DataTransformers, DatePicker, DateTimePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditableCell, EmptyState, ExpressionBuilder, FetchAdapter, FileUpload, FormDesigner, FormFieldRenderer, FormStateViewer, Grid, HoverCard, HoverCardContent, HoverCardTrigger, Input, Label, MetadataForm, MultiSelect, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, Row, RuleBuilder, RulesEngine, ScrollArea, ScrollBar, Search, SearchWithSuggestions, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Slider, Spinner, StatsCard, Stepper, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, tree_view as TreeView, analyticsPlugin, auditPlugin, autoSavePlugin, badgeVariants, buttonVariants, cn, createEditableColumn, formattingPlugin, hasMinMaxStep, hasOptions, isCustomField, isFileField, spinnerVariants, toast, toggleVariants, validationPlugin, workflowPlugin };
|
|
66
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Column, Combobox, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DataFetcher, DataSourceBuilder, DataTable, DataTableColumnHeader, DataTableSelectColumn, DataTransformers, DatePicker, DateTimePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditableCell, EmptyState, ExpressionBuilder, FetchAdapter, FileUpload, FormDesigner, FormFieldRenderer, FormStateViewer, Grid, HoverCard, HoverCardContent, HoverCardTrigger, Input, Label, MetadataForm, MultiSelect, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, PromptEditor, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, Row, RuleBuilder, RulesEngine, ScrollArea, ScrollBar, Search, SearchWithSuggestions, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Slider, Spinner, StatsCard, Stepper, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, tree_view as TreeView, VARIABLE_DRAG_MIME, analyticsPlugin, auditPlugin, autoSavePlugin, badgeVariants, buttonVariants, cn, createEditableColumn, formattingPlugin, hasMinMaxStep, hasOptions, isCustomField, isFileField, spinnerVariants, toast, toggleVariants, validationPlugin, workflowPlugin };
|
package/dist/styles.css
CHANGED
|
@@ -291,6 +291,7 @@
|
|
|
291
291
|
--color-card: var(--card);
|
|
292
292
|
--color-primary: var(--primary);
|
|
293
293
|
--color-muted: var(--muted);
|
|
294
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
294
295
|
--color-border: var(--ap-wind-border);
|
|
295
296
|
--color-border-de-emp: var(--border-de-emp);
|
|
296
297
|
--color-ring: var(--ring);
|
|
@@ -298,6 +299,7 @@
|
|
|
298
299
|
--color-foreground-link: var(--foreground-link);
|
|
299
300
|
--color-border-disabled: var(--border-disabled);
|
|
300
301
|
--color-border-grid: var(--border-grid);
|
|
302
|
+
--color-error: var(--error);
|
|
301
303
|
--color-logo: var(--logo);
|
|
302
304
|
--color-background-secondary: var(--color-background-secondary);
|
|
303
305
|
--color-background-inverse: var(--color-background-inverse);
|
|
@@ -761,9 +763,6 @@
|
|
|
761
763
|
.-mx-6 {
|
|
762
764
|
margin-inline: calc(var(--spacing) * -6);
|
|
763
765
|
}
|
|
764
|
-
.\[margin-inline\:calc\(var\(--mf-content-inset\,0px\)\*-1\)\] {
|
|
765
|
-
margin-inline: calc(var(--mf-content-inset,0px) * -1);
|
|
766
|
-
}
|
|
767
766
|
.mx-0\.5 {
|
|
768
767
|
margin-inline: calc(var(--spacing) * 0.5);
|
|
769
768
|
}
|
|
@@ -845,9 +844,6 @@
|
|
|
845
844
|
.mr-auto {
|
|
846
845
|
margin-right: auto;
|
|
847
846
|
}
|
|
848
|
-
.-mb-px {
|
|
849
|
-
margin-bottom: -1px;
|
|
850
|
-
}
|
|
851
847
|
.mb-0\.5 {
|
|
852
848
|
margin-bottom: calc(var(--spacing) * 0.5);
|
|
853
849
|
}
|
|
@@ -1481,6 +1477,9 @@
|
|
|
1481
1477
|
.max-w-\[220px\] {
|
|
1482
1478
|
max-width: 220px;
|
|
1483
1479
|
}
|
|
1480
|
+
.max-w-\[320px\] {
|
|
1481
|
+
max-width: 320px;
|
|
1482
|
+
}
|
|
1484
1483
|
.max-w-\[360px\] {
|
|
1485
1484
|
max-width: 360px;
|
|
1486
1485
|
}
|
|
@@ -1547,6 +1546,9 @@
|
|
|
1547
1546
|
.flex-1 {
|
|
1548
1547
|
flex: 1;
|
|
1549
1548
|
}
|
|
1549
|
+
.flex-shrink {
|
|
1550
|
+
flex-shrink: 1;
|
|
1551
|
+
}
|
|
1550
1552
|
.shrink-0 {
|
|
1551
1553
|
flex-shrink: 0;
|
|
1552
1554
|
}
|
|
@@ -1786,6 +1788,9 @@
|
|
|
1786
1788
|
.gap-\[--spacing\(var\(--gap\)\)\] {
|
|
1787
1789
|
gap: calc(var(--spacing) * var(--gap));
|
|
1788
1790
|
}
|
|
1791
|
+
.gap-\[3px\] {
|
|
1792
|
+
gap: 3px;
|
|
1793
|
+
}
|
|
1789
1794
|
.gap-\[15px\] {
|
|
1790
1795
|
gap: 15px;
|
|
1791
1796
|
}
|
|
@@ -2096,6 +2101,10 @@
|
|
|
2096
2101
|
border-bottom-style: var(--tw-border-style);
|
|
2097
2102
|
border-bottom-width: 1px;
|
|
2098
2103
|
}
|
|
2104
|
+
.border-b-0 {
|
|
2105
|
+
border-bottom-style: var(--tw-border-style);
|
|
2106
|
+
border-bottom-width: 0px;
|
|
2107
|
+
}
|
|
2099
2108
|
.border-b-2 {
|
|
2100
2109
|
border-bottom-style: var(--tw-border-style);
|
|
2101
2110
|
border-bottom-width: 2px;
|
|
@@ -2442,6 +2451,18 @@
|
|
|
2442
2451
|
.bg-border-subtle {
|
|
2443
2452
|
background-color: var(--border-subtle);
|
|
2444
2453
|
}
|
|
2454
|
+
.bg-border\/40 {
|
|
2455
|
+
background-color: var(--ap-wind-border);
|
|
2456
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2457
|
+
background-color: color-mix(in oklab, var(--ap-wind-border) 40%, transparent);
|
|
2458
|
+
}
|
|
2459
|
+
}
|
|
2460
|
+
.bg-border\/60 {
|
|
2461
|
+
background-color: var(--ap-wind-border);
|
|
2462
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2463
|
+
background-color: color-mix(in oklab, var(--ap-wind-border) 60%, transparent);
|
|
2464
|
+
}
|
|
2465
|
+
}
|
|
2445
2466
|
.bg-brand {
|
|
2446
2467
|
background-color: var(--brand);
|
|
2447
2468
|
}
|
|
@@ -3380,9 +3401,6 @@
|
|
|
3380
3401
|
.p-px {
|
|
3381
3402
|
padding: 1px;
|
|
3382
3403
|
}
|
|
3383
|
-
.\[padding-inline\:var\(--mf-content-inset\,0px\)\] {
|
|
3384
|
-
padding-inline: var(--mf-content-inset,0px);
|
|
3385
|
-
}
|
|
3386
3404
|
.px-0 {
|
|
3387
3405
|
padding-inline: calc(var(--spacing) * 0);
|
|
3388
3406
|
}
|
|
@@ -3899,6 +3917,12 @@
|
|
|
3899
3917
|
.text-muted-foreground {
|
|
3900
3918
|
color: var(--muted-foreground);
|
|
3901
3919
|
}
|
|
3920
|
+
.text-muted-foreground\/60 {
|
|
3921
|
+
color: var(--muted-foreground);
|
|
3922
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
3923
|
+
color: color-mix(in oklab, var(--muted-foreground) 60%, transparent);
|
|
3924
|
+
}
|
|
3925
|
+
}
|
|
3902
3926
|
.text-muted-foreground\/70 {
|
|
3903
3927
|
color: var(--muted-foreground);
|
|
3904
3928
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -4041,6 +4065,12 @@
|
|
|
4041
4065
|
.opacity-70 {
|
|
4042
4066
|
opacity: 70%;
|
|
4043
4067
|
}
|
|
4068
|
+
.opacity-80 {
|
|
4069
|
+
opacity: 80%;
|
|
4070
|
+
}
|
|
4071
|
+
.opacity-95 {
|
|
4072
|
+
opacity: 95%;
|
|
4073
|
+
}
|
|
4044
4074
|
.opacity-100 {
|
|
4045
4075
|
opacity: 100%;
|
|
4046
4076
|
}
|
|
@@ -4137,6 +4167,9 @@
|
|
|
4137
4167
|
outline-style: var(--tw-outline-style);
|
|
4138
4168
|
outline-width: 1px;
|
|
4139
4169
|
}
|
|
4170
|
+
.outline-offset-1 {
|
|
4171
|
+
outline-offset: 1px;
|
|
4172
|
+
}
|
|
4140
4173
|
.blur {
|
|
4141
4174
|
--tw-blur: blur(8px);
|
|
4142
4175
|
filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
|
|
@@ -5532,11 +5565,6 @@
|
|
|
5532
5565
|
}
|
|
5533
5566
|
}
|
|
5534
5567
|
}
|
|
5535
|
-
.data-\[state\=active\]\:border-primary {
|
|
5536
|
-
&[data-state="active"] {
|
|
5537
|
-
border-color: var(--primary);
|
|
5538
|
-
}
|
|
5539
|
-
}
|
|
5540
5568
|
.data-\[state\=active\]\:border-b-primary {
|
|
5541
5569
|
&[data-state="active"] {
|
|
5542
5570
|
border-bottom-color: var(--primary);
|
|
@@ -5547,9 +5575,9 @@
|
|
|
5547
5575
|
background-color: var(--background);
|
|
5548
5576
|
}
|
|
5549
5577
|
}
|
|
5550
|
-
.data-\[state\=active\]\:bg-
|
|
5578
|
+
.data-\[state\=active\]\:bg-surface-overlay {
|
|
5551
5579
|
&[data-state="active"] {
|
|
5552
|
-
background-color:
|
|
5580
|
+
background-color: var(--surface-overlay);
|
|
5553
5581
|
}
|
|
5554
5582
|
}
|
|
5555
5583
|
.data-\[state\=active\]\:text-foreground {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uipath/apollo-wind",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.24.0",
|
|
4
4
|
"description": "UiPath wind design system - A Tailwind CSS based React component library",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -70,6 +70,9 @@
|
|
|
70
70
|
"@dnd-kit/sortable": "^10.0.0",
|
|
71
71
|
"@dnd-kit/utilities": "^3.2.2",
|
|
72
72
|
"@hookform/resolvers": "^5.2.2",
|
|
73
|
+
"@lexical/clipboard": "0.42.0",
|
|
74
|
+
"@lexical/react": "0.42.0",
|
|
75
|
+
"@lexical/utils": "0.42.0",
|
|
73
76
|
"@radix-ui/react-accordion": "^1.2.12",
|
|
74
77
|
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
75
78
|
"@radix-ui/react-aspect-ratio": "^1.1.8",
|
|
@@ -104,9 +107,12 @@
|
|
|
104
107
|
"clsx": "^2.1.1",
|
|
105
108
|
"cmdk": "^1.1.1",
|
|
106
109
|
"date-fns": "^4.1.0",
|
|
110
|
+
"dompurify": "^3.4.0",
|
|
107
111
|
"framer-motion": "^12.26.2",
|
|
108
112
|
"jsep": "^1.4.0",
|
|
113
|
+
"lexical": "0.42.0",
|
|
109
114
|
"lucide-react": "^0.577.0",
|
|
115
|
+
"marked": "^17.0.6",
|
|
110
116
|
"next-themes": "^0.4.6",
|
|
111
117
|
"react-day-picker": "^9.13.0",
|
|
112
118
|
"react-hook-form": "^7.66.1",
|