diff --git a/python/src/aiconfig/editor/client/src/Editor.tsx b/python/src/aiconfig/editor/client/src/Editor.tsx index dbfb1a105..714516e5c 100644 --- a/python/src/aiconfig/editor/client/src/Editor.tsx +++ b/python/src/aiconfig/editor/client/src/Editor.tsx @@ -1,6 +1,6 @@ import EditorContainer from "./components/EditorContainer"; import { ClientAIConfig } from "./shared/types"; -import { Flex, Loader } from "@mantine/core"; +import { Flex, Loader, MantineProvider } from "@mantine/core"; import { AIConfig, Prompt } from "aiconfig"; import { useCallback, useEffect, useState } from "react"; import { ufetch } from "ufetch"; @@ -51,18 +51,20 @@ export default function Editor() { return (
- {!aiconfig ? ( - - - - ) : ( - - )} + + {!aiconfig ? ( + + + + ) : ( + + )} +
); } diff --git a/python/src/aiconfig/editor/client/src/components/ParametersRenderer.tsx b/python/src/aiconfig/editor/client/src/components/ParametersRenderer.tsx index 396ba11fc..57d98090c 100644 --- a/python/src/aiconfig/editor/client/src/components/ParametersRenderer.tsx +++ b/python/src/aiconfig/editor/client/src/components/ParametersRenderer.tsx @@ -193,9 +193,6 @@ export default memo(function ParametersRenderer(props: { }); }, [onUpdateParameters]); - // TODO: saqadri - add MantineProvider wrapper inside EditorContainer in order for this to pick up context - const theme = useMantineTheme(); - return (
+ {isExpanded ? ( - - setIsExpanded(false)}> - - - - - Settings - {checkParametersSupported(prompt) && ( - - Local Variables (Parameters) - - )} - + <> + + setIsExpanded(false)} + mt="0.5em" + > + + + + + Settings + {checkParametersSupported(prompt) && ( + + Local Variables (Parameters) + + )} + - - - - - - {checkParametersSupported(prompt) && ( - - + + - )} - {" "} - + + {checkParametersSupported(prompt) && ( + + + + )} + + + + ) : ( - setIsExpanded(true)}> - - + + + setIsExpanded(true)}> + + + + + )} ); diff --git a/python/src/aiconfig/editor/client/src/components/prompt/PromptContainer.tsx b/python/src/aiconfig/editor/client/src/components/prompt/PromptContainer.tsx index 48f53d16a..6925c67f4 100644 --- a/python/src/aiconfig/editor/client/src/components/prompt/PromptContainer.tsx +++ b/python/src/aiconfig/editor/client/src/components/prompt/PromptContainer.tsx @@ -7,6 +7,7 @@ import { Flex, Card, Text, createStyles } from "@mantine/core"; import { PromptInput as AIConfigPromptInput } from "aiconfig"; import { memo, useCallback } from "react"; import { ParametersArray } from "../ParametersRenderer"; +import PromptOutputBar from "./PromptOutputBar"; type Props = { index: number; @@ -24,7 +25,9 @@ const useStyles = createStyles((theme) => ({ borderBottomRightRadius: 0, borderTopRightRadius: 0, }, - actionBarCard: { + actionBar: { + border: `1px solid ${theme.colors.gray[3]}`, + borderRadius: "0.25em", borderBottomLeftRadius: 0, borderTopLeftRadius: 0, }, @@ -88,17 +91,18 @@ export default memo(function PromptContainer({ schema={inputSchema} onChangeInput={onChangeInput} /> + {prompt.outputs && } - +
- +
); }); diff --git a/python/src/aiconfig/editor/client/src/components/prompt/PromptOutputBar.tsx b/python/src/aiconfig/editor/client/src/components/prompt/PromptOutputBar.tsx new file mode 100644 index 000000000..cc9815114 --- /dev/null +++ b/python/src/aiconfig/editor/client/src/components/prompt/PromptOutputBar.tsx @@ -0,0 +1,14 @@ +import { Divider, Flex, Text } from "@mantine/core"; +import { memo } from "react"; + +type Props = {}; + +export default memo(function PromptOutputBar(_props: Props) { + return ( + + + Output + {/* TODO: Add output metrics */} + + ); +}); diff --git a/python/src/aiconfig/editor/client/src/components/prompt/RunPromptButton.tsx b/python/src/aiconfig/editor/client/src/components/prompt/RunPromptButton.tsx new file mode 100644 index 000000000..35b5a2c88 --- /dev/null +++ b/python/src/aiconfig/editor/client/src/components/prompt/RunPromptButton.tsx @@ -0,0 +1,33 @@ +import { ClientPrompt } from "../../shared/types"; +import { Button, createStyles, Flex, Text } from "@mantine/core"; +import { IconPlayerPlayFilled } from "@tabler/icons-react"; +import { memo } from "react"; + +type Props = { + prompt: ClientPrompt; + size: "compact" | "full"; +}; + +const useStyles = createStyles(() => ({ + executeButton: { + borderBottomLeftRadius: 0, + borderTopLeftRadius: 0, + borderTopRightRadius: 0, + }, +})); + +export default memo(function RunPromptButton({ prompt, size }: Props) { + const { classes } = useStyles(); + return ( + + ); +}); diff --git a/python/src/aiconfig/editor/client/src/components/prompt/model_settings/ModelSettingsRenderer.tsx b/python/src/aiconfig/editor/client/src/components/prompt/model_settings/ModelSettingsRenderer.tsx index 2d1d04806..a29703533 100644 --- a/python/src/aiconfig/editor/client/src/components/prompt/model_settings/ModelSettingsRenderer.tsx +++ b/python/src/aiconfig/editor/client/src/components/prompt/model_settings/ModelSettingsRenderer.tsx @@ -1,7 +1,7 @@ import ModelSettingsConfigRenderer from "./ModelSettingsConfigRenderer"; import ModelSettingsSchemaRenderer from "./ModelSettingsSchemaRenderer"; import { GenericPropertiesSchema } from "../../../utils/promptUtils"; -import { Flex, Text } from "@mantine/core"; +import { Flex, createStyles } from "@mantine/core"; import { JSONObject } from "aiconfig"; import { memo } from "react"; @@ -11,11 +11,21 @@ type Props = { onUpdateModelSettings: (settings: Record) => void; }; +const useStyles = createStyles(() => ({ + settingsContainer: { + maxHeight: "400px", + overflow: "auto", + paddingTop: "0.5em", + width: "100%", + }, +})); + export default memo(function ModelSettingsRenderer({ settings, schema, onUpdateModelSettings, }: Props) { + const { classes } = useStyles(); let settingsComponent; if (schema) { @@ -31,8 +41,7 @@ export default memo(function ModelSettingsRenderer({ } return ( - - Model Settings + {settingsComponent} );