diff --git a/apps/ui/src/modals/AIChatModal/components/ChatMessageList/components/AiMessageMarkdown.tsx b/apps/ui/src/modals/AIChatModal/components/ChatMessageList/components/AiMessageMarkdown.tsx index 1892a3fd6..b9053165b 100644 --- a/apps/ui/src/modals/AIChatModal/components/ChatMessageList/components/AiMessageMarkdown.tsx +++ b/apps/ui/src/modals/AIChatModal/components/ChatMessageList/components/AiMessageMarkdown.tsx @@ -1,7 +1,7 @@ import styled, { css } from 'styled-components' import ReactMarkdown from 'react-markdown' import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter' -import { atomDark } from 'react-syntax-highlighter/dist/esm/styles/prism' +import { atomDark, prism } from 'react-syntax-highlighter/dist/esm/styles/prism' import remarkGfm from 'remark-gfm' import { useModal } from 'hooks' import { memo, useEffect, useState } from 'react' @@ -133,7 +133,7 @@ const AiMessageMarkdown = ({ isReply = false, children }: { isReply?: boolean; c return !inline && match ? ( { navigate('/api-key/create-api-key')} - leftIcon={Add} - size={Button.sizes?.SMALL} + size={Button.sizes?.MEDIUM} > {t('create-api-key')} diff --git a/apps/ui/src/pages/ApiKeys/CreateApiKey/CreateApikeysForm.tsx b/apps/ui/src/pages/ApiKeys/CreateApiKey/CreateApikeysForm.tsx index fa9a7433d..3fa0934cf 100644 --- a/apps/ui/src/pages/ApiKeys/CreateApiKey/CreateApikeysForm.tsx +++ b/apps/ui/src/pages/ApiKeys/CreateApiKey/CreateApikeysForm.tsx @@ -23,16 +23,15 @@ function CreateApiKeyForm() { -
+
Add API Key - Here is your API Key.
{isLoading ? : 'Save'} diff --git a/apps/ui/src/pages/Navigation/MainNavigation.tsx b/apps/ui/src/pages/Navigation/MainNavigation.tsx index cb5c2df9b..8e31f6cca 100644 --- a/apps/ui/src/pages/Navigation/MainNavigation.tsx +++ b/apps/ui/src/pages/Navigation/MainNavigation.tsx @@ -37,6 +37,7 @@ import Integrations from 'share-ui/components/Icon/Icons/components/integrations import FineTuning from 'share-ui/components/Icon/Icons/components/FineTuning' // eslint-disable-next-line import/no-named-as-default import Cloud from 'share-ui/components/Icon/Icons/components/Cloud' +import { API } from 'share-ui/components/Icon/Icons' const MainNavigation = ({ user }: { user: any }) => { const domainEnv = import.meta.env @@ -177,22 +178,10 @@ const MainNavigation = ({ user }: { user: any }) => { )} */} - {isModel && ( - - onHandleClick('/models')} - > - - {includes(active, 'models') && } - - - )} - onHandleClick('/pods')} + onClick={() => onHandleClick('/pods/create-pod')} > {includes(active, 'pods') && } @@ -214,6 +203,27 @@ const MainNavigation = ({ user }: { user: any }) => { )} + {isModel && ( + + onHandleClick('/models')} + > + + {includes(active, 'models') && } + + + )} + + + onHandleClick('/api-key')} + > + + + + {/* {isDiscover && ( ` border-radius: 100px; background: #000; - - span{ color: #FFF; } + path { stroke: #FFF; + } `} ` @@ -410,3 +420,8 @@ const StyledCorner = styled.div` top: 8px; /* Adjust this value based on your design */ right: -16px; /* Position the left corner */ ` +const StyledAPIIcon = styled(API)` + path { + fill: ${({ theme }) => theme.body.iconColor}; + } +` diff --git a/apps/ui/src/pages/Pods/FilterPods.tsx b/apps/ui/src/pages/Pods/FilterPods.tsx index 68b54549d..99628d5ff 100644 --- a/apps/ui/src/pages/Pods/FilterPods.tsx +++ b/apps/ui/src/pages/Pods/FilterPods.tsx @@ -1,130 +1,128 @@ -import Box from '@mui/material/Box'; -import Typography from '@mui/material/Typography'; +import Box from '@mui/material/Box' +import Typography from '@mui/material/Typography' import Slider from '@mui/material/Slider' // import ButtonGroup from '@mui/material/ButtonGroup'; -import Button from '@mui/material/Button'; -import ToggleButton from '@mui/material/ToggleButton'; -import ToggleButtonGroup from '@mui/material/ToggleButtonGroup'; +import Button from '@mui/material/Button' +import ToggleButton from '@mui/material/ToggleButton' +import ToggleButtonGroup from '@mui/material/ToggleButtonGroup' // import IconButton from '@mui/material/IconButton' // import Fingerprint from '@mui/icons-material/Fingerprint' import { black, white } from './styles' const sliderMarks = [ - { value: 1, label: '1' }, - { value: 2, label: '2' }, - { value: 3, label: '3' }, - { value: 4, label: '4' }, - { value: 5, label: '5' }, - { value: 8, label: '8' }, - { value: 10, label: '10' }, + { value: 1, label: '1' }, + { value: 2, label: '2' }, + { value: 3, label: '3' }, + { value: 4, label: '4' }, + { value: 5, label: '5' }, + { value: 8, label: '8' }, + { value: 10, label: '10' }, ] - const buttonStyles = { - color: black, - textTransform: 'capitalize', - fontSize: '0.8125rem', - fontWeight: 'bold', + color: black, + textTransform: 'capitalize', + fontSize: '0.8125rem', + fontWeight: 'bold', } const FilterPods = () => { - return ( - - - {}} - aria-label="Platform" - > - - GPU - - - - CPU - - - + return ( + + + {}} + aria-label='Platform' + > + + GPU + - - - - - + + CPU + + - - + + + + + - - - - - - Filter GPUs by VRAM - - `${value}`} - valueLabelDisplay="auto" - step={1} - max={10} - min={1} - marks={sliderMarks} - sx={{ color: black }} - size='small' - /> - + - ) + + + + + Filter GPUs by VRAM + + `${value}`} + valueLabelDisplay='auto' + step={1} + max={10} + min={1} + marks={sliderMarks} + sx={{ color: black }} + size='small' + /> + + + ) } -export default FilterPods \ No newline at end of file +export default FilterPods diff --git a/apps/ui/src/pages/Pods/Pods.tsx b/apps/ui/src/pages/Pods/Pods.tsx index e243779da..3fb674d69 100644 --- a/apps/ui/src/pages/Pods/Pods.tsx +++ b/apps/ui/src/pages/Pods/Pods.tsx @@ -10,14 +10,15 @@ import { import { useNavigate, useOutlet } from 'react-router-dom' import Box from '@mui/material/Box' import Typography from '@mui/material/Typography' +import ProgressBar from './ProsgressBar' const cpu = [ - { cpu: 'base:0.5.1-cpu', ram: '46 GB', running: true }, - { cpu: 'base:0.5.1-cpu', ram: '32 GB', running: false }, - { cpu: 'base:0.5.1-cpu', ram: '16 GB', running: true }, - { cpu: 'base:0.5.1-cpu', ram: '128 GB', running: false }, - { cpu: 'base:0.5.1-cpu', ram: '46 GB', running: false }, - { cpu: 'base:0.5.1-cpu', ram: '50 GB', running: true }, + { name: 'llm2 Fine-tune', cpu: 'base:0.5.1-cpu', ram: '46 GB', running: true, mem: 0 }, + { name: 'Tain OpenAI', cpu: 'base:0.5.1-cpu', ram: '32 GB', running: false, mem: 40 }, + { name: 'Meta Llama', cpu: 'base:0.5.1-cpu', ram: '16 GB', running: true, mem: 10 }, + { name: 'NV-Embed', cpu: 'base:0.5.1-cpu', ram: '128 GB', running: false, mem: 50 }, + { name: 'Tele-AI', cpu: 'base:0.5.1-cpu', ram: '46 GB', running: false, mem: 90 }, + { name: 'Nitral-AI', cpu: 'base:0.5.1-cpu', ram: '50 GB', running: true, mem: 5 }, ] const Pods = () => { @@ -28,7 +29,7 @@ const Pods = () => { - + navigate('/pods/create-pod')} /> @@ -55,7 +56,7 @@ const Pods = () => { > - Compute + {item.name} CPU: {item.cpu} RAM: {item.ram} diff --git a/apps/ui/src/pages/Pods/PodsContent.tsx b/apps/ui/src/pages/Pods/PodsContent.tsx index 1e0d11629..df3824b40 100644 --- a/apps/ui/src/pages/Pods/PodsContent.tsx +++ b/apps/ui/src/pages/Pods/PodsContent.tsx @@ -165,9 +165,7 @@ const PodsContent = () => { justifyContent: 'start', }} > - - Select an Instance - + @@ -210,7 +208,6 @@ const StyledContainer = styled.div` flex-direction: column; gap: 27px; max-width: 80rem; - margin-left: auto; margin-right: auto; @media (min-width: 960px) { padding-left: 36px; diff --git a/apps/ui/src/pages/Pods/PodsMainCard.tsx b/apps/ui/src/pages/Pods/PodsMainCard.tsx index d2cee1c9a..85d2541a7 100644 --- a/apps/ui/src/pages/Pods/PodsMainCard.tsx +++ b/apps/ui/src/pages/Pods/PodsMainCard.tsx @@ -24,6 +24,7 @@ import TypographyMUI from '@mui/material/Typography' import { textSlicer } from 'utils/textSlicer' import LinearProgress from '@mui/material/LinearProgress' import { ButtonPrimary } from 'components/Button/Button' +import ProgressBar from './ProsgressBar' type PodsMainCardProps = { name: string @@ -92,7 +93,7 @@ const PodsMainCard = ({ type={Typography.types.P} size={Typography.sizes.xss} /> - + - + @@ -111,7 +112,7 @@ const PodsMainCard = ({ type={Typography.types.P} size={Typography.sizes.xss} /> - + - +
diff --git a/apps/ui/src/pages/Pods/ProsgressBar.tsx b/apps/ui/src/pages/Pods/ProsgressBar.tsx new file mode 100644 index 000000000..19421b3da --- /dev/null +++ b/apps/ui/src/pages/Pods/ProsgressBar.tsx @@ -0,0 +1,7 @@ +import LinearProgress from '@mui/material/LinearProgress' + +const ProgressBar = ({ value }: { value: number }) => { + return +} + +export default ProgressBar diff --git a/apps/ui/src/pages/Pods/styles.ts b/apps/ui/src/pages/Pods/styles.ts index c8dbc8edb..43f8bb337 100644 --- a/apps/ui/src/pages/Pods/styles.ts +++ b/apps/ui/src/pages/Pods/styles.ts @@ -27,7 +27,6 @@ export const borderBoxStyles = { transition: 'box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms', borderRadius: '10px', overflow: 'hidden', - border: '1px solid rgba(34, 51, 84, 0.2)', boxShadow: 'none', background: '', padding: '18px', diff --git a/apps/ui/src/pages/Subnets/SDKs.tsx b/apps/ui/src/pages/Subnets/SDKs.tsx new file mode 100644 index 000000000..14bdf7050 --- /dev/null +++ b/apps/ui/src/pages/Subnets/SDKs.tsx @@ -0,0 +1,86 @@ +import { SDK_DATA } from './constants' +import { useState } from 'react' +import styled from 'styled-components' + +import TypographyPrimary from 'components/Typography/Primary' +import Typography from 'share-ui/components/typography/Typography' + +import { StyledForm, StyledInnerFormWrapper } from './Subnets' + +import AiMessageMarkdown from 'modals/AIChatModal/components/ChatMessageList/components/AiMessageMarkdown' + +const SDKs = () => { + const [pickedData, setPickedData] = useState(SDK_DATA[0]) + + return ( + <> + + + + + {SDK_DATA.map(data => { + return ( + setPickedData(data)} + > + + + + + ) + })} + + + + + + + + + ) +} + +export default SDKs + +const StyledCard = styled.div<{ picked: boolean }>` + width: 150px; + height: 100px; + + border-radius: 10px; + border: 1px solid #d4d4d479; + + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + + box-shadow: ${({ picked }) => (picked ? '0px 4px 4px 0px rgba(0, 0, 0, 0.2)' : 'none')}; + + &:hover { + box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.2); + } + + cursor: pointer; +` +const StyledCardsWrapper = styled.div` + display: flex; + flex-wrap: wrap; + gap: 16px; +` +const StyledImg = styled.img` + width: 40px; + height: 40px; + object-fit: contain; +` diff --git a/apps/ui/src/pages/Subnets/Subnets.tsx b/apps/ui/src/pages/Subnets/Subnets.tsx index 683fea15a..5c56096f7 100644 --- a/apps/ui/src/pages/Subnets/Subnets.tsx +++ b/apps/ui/src/pages/Subnets/Subnets.tsx @@ -25,6 +25,8 @@ import TextField from 'share-ui/components/TextField/TextField' import TypographySecondary from 'components/Typography/Secondary' import { fontSize, fontWeight } from '@mui/system' import { ButtonPrimary } from 'components/Button/Button' +import ProgressBar from 'pages/Pods/ProsgressBar' +import SDKs from './SDKs' const Subnets = () => { const [activeSubnet, setActiveSubnet] = useState(SUBNETS[0]) @@ -132,6 +134,51 @@ const Subnets = () => { + + + + + + + + + + + + + + + + + + + + @@ -162,11 +209,20 @@ const StyledWrapper = styled.div` height: 100%; padding-right: 20px; + + display: flex; + flex-direction: column; + gap: 20px; + + overflow: auto; + + padding-bottom: 100px; ` -const StyledForm = styled.div` +export const StyledForm = styled.div` width: 100%; /* max-width: 800px; */ + max-width: 80rem; margin-top: 20px; @@ -193,7 +249,7 @@ const StyledTextWrapper = styled.div` gap: 10px; ` -const StyledTextFieldWrapper = styled.div` +export const StyledTextFieldWrapper = styled.div` width: 100%; /* max-width: 800px; */ @@ -203,7 +259,7 @@ const StyledTextFieldWrapper = styled.div` font-weight: 500; ` -const StyledInnerFormWrapper = styled.div` +export const StyledInnerFormWrapper = styled.div` display: flex; flex-direction: column; gap: 10px; diff --git a/apps/ui/src/pages/Subnets/constants.ts b/apps/ui/src/pages/Subnets/constants.ts index fdd1bb815..0e7c2c760 100644 --- a/apps/ui/src/pages/Subnets/constants.ts +++ b/apps/ui/src/pages/Subnets/constants.ts @@ -253,3 +253,131 @@ export const SUBNETS = [ ], }, ] + +export const SDK_DATA = [ + { + name: 'Node.js', + logo: 'data:image/png;base64,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', + code: ` + const { Apideck } = require('@apideck/node') + + const apideck = new Apideck({ + apiKey: '', + appId: '', + consumerId: '' + }) + + // Declare the Unified API you want to use + const { crm } = apideck + + // Override consumerId serviceId as declared in initial configuration for this operation. + const response = await crm.contactsAll({ + // serviceId: 'salesforce', // optional + limit: 10 + }) + + `, + }, + { + name: 'PHP', + logo: 'data:image/png;base64,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', + code: ` + ', '', ''); + $apideck = new Apideck($config); + + $response = $apideck->getCrmApi()->contactsAll(false, null, null, null, null, 1); + + ?> + + `, + }, + { + name: '.NET', + logo: 'data:image/jpeg;base64,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', + code: ` + using Apideck.Api; + using Apideck.Client; + using Apideck.Model; + + namespace Example + { + public class CompaniesAllExample + { + public static void Main() + { + Configuration config = new Configuration(); + // Configure API key authorization: apiKey + config.AddApiKey("Authorization", "API_KEY"); + config.AddApiKeyPrefix("Authorization", "Bearer"); + + var apiInstance = new CrmApi(config); + var raw = false; // bool? | Include raw response. Mostly used for debugging purposes (optional) (default to false) + var consumerId = "CONSUMER_ID"; // string | ID of the consumer which you want to get or push data from (optional) + var appId = "APP_ID"; // string | The ID of your Unify application (optional) + var serviceId = "salesforce"; // string | Provide the service id you want to call (e.g., pipedrive). [See the full list in the connector section.](#section/Connectors) Only needed when a consumer has activated multiple integrations for a Unified API. (optional) + + try + { + Console.WriteLine("Calling Apideck"); + // List companies + GetCompaniesResponse result = apiInstance.CompaniesAll(raw, consumerId, appId, serviceId); + Console.WriteLine("Success", result); + } + catch (ApiException e) + { + Console.WriteLine("Exception when calling CrmApi.CompaniesAll: " + e.Message); + Console.WriteLine("Status Code: " + e.ErrorCode); + Console.WriteLine("Detail: " + e.ErrorContent); + } + } + } + } + + `, + }, + { + name: 'Python', + logo: 'data:image/jpeg;base64,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', + code: ` + import apideck + from apideck.api import crm_api + from apideck.model.contacts_sort import ContactsSort + from apideck.model.sort_direction import SortDirection + from pprint import pprint + + configuration = apideck.Configuration() + + configuration.api_key['apiKey'] = '' + configuration.api_key_prefix['apiKey'] = 'Bearer' + + with apideck.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = crm_api.CrmApi(api_client) + raw = False + consumer_id = '' + app_id = '' + service_id = '' + limit = 20 + + sort = ContactsSort( + by="name", + direction=SortDirection("asc"), + ) + + + try: + # List contacts + api_response = api_instance.contacts_all(raw=raw, consumer_id=consumer_id, app_id=app_id, service_id=service_id, limit=limit, sort=sort) + pprint(api_response) + except apideck.ApiException as e: + print("Exception when calling CrmApi->contacts_all: %s + " % e) + `, + }, +] diff --git a/apps/ui/src/routes/ChatRouteLayout.tsx b/apps/ui/src/routes/ChatRouteLayout.tsx index c4f906299..dec5b80bd 100644 --- a/apps/ui/src/routes/ChatRouteLayout.tsx +++ b/apps/ui/src/routes/ChatRouteLayout.tsx @@ -418,6 +418,7 @@ export const StyledContainer = styled.div` export const StyledLeftColumn = styled.div<{ isHidden?: boolean isSmallScreen?: boolean + customWidth?: number }>` overflow-y: auto; display: flex; @@ -427,8 +428,8 @@ export const StyledLeftColumn = styled.div<{ padding-top: 0px; height: 100%; - min-width: 270px; - max-width: 270px; + min-width: ${({ customWidth }) => (customWidth ? `${customWidth}px` : '270px')}; + max-width: ${({ customWidth }) => (customWidth ? `${customWidth}px` : '270px')}; transition: margin-left 0.3s ease-in-out;