diff --git a/src/App.tsx b/src/App.tsx
index 18b40895c..74878cd9f 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -36,6 +36,10 @@ import BuildsCreateEditPage from 'pages/builds/create-edit/BuildsCreateEditPage'
import BuildsOverviewPage from 'pages/builds/overview/BuildsOverviewPage'
import CodeRepositoriesCreateEditPage from 'pages/code-repositories/create-edit/CodeRepositoriesCreateEditPage'
import CodeRepositoriesOverviewPage from 'pages/code-repositories/overview/CodeRepositoriesOverviewPage'
+import KnowledgeBasesCreateEditPage from 'pages/knowledge-bases/create-edit/KnowledgeBasesCreateEditPage'
+import KnowledgeBasesOverviewPage from 'pages/knowledge-bases/overview/KnowledgeBasesOverviewPage'
+import AgentsCreateEditPage from 'pages/agents/create-edit/AgentsCreateEditPage'
+import AgentsOverviewPage from 'pages/agents/overview/AgentsOverviewPage'
import NetworkPoliciesOverviewPage from 'pages/network-policies/overview/NetworkPoliciesOverviewPage'
import NetworkPoliciesIngressCreateEditPage from 'pages/network-policies/create-edit/NetworkPoliciesIngressCreateEditPage'
import NetworkPoliciesEgressCreateEditPage from 'pages/network-policies/create-edit/NetworkPoliciesEgressCreateEditPage'
@@ -106,6 +110,34 @@ function App() {
exact
/>
+
+
+
+
+
+
+
+
{
@@ -67,7 +68,7 @@ export default function Section(props: Props) {
if (collapsable) {
return (
-
+
@@ -89,7 +90,7 @@ export default function Section(props: Props) {
}
return (
-
+
{title && {title}}
{description && {description}}
{children}
diff --git a/src/components/Workloads.tsx b/src/components/Workloads.tsx
index dd55448a1..eb82d2d35 100644
--- a/src/components/Workloads.tsx
+++ b/src/components/Workloads.tsx
@@ -3,12 +3,11 @@ import React from 'react'
import { useTranslation } from 'react-i18next'
import { Link } from 'react-router-dom'
import { GetAllWorkloadsApiResponse } from 'redux/otomiApi'
-import { CircularProgress } from '@mui/material'
+import { Status, getStatus } from 'utils/status'
import { useSocket } from 'providers/Socket'
import { HeadCell } from './EnhancedTable'
import RLink from './Link'
import ListTable from './ListTable'
-import Iconify from './Iconify'
interface Row {
teamId: string
@@ -38,22 +37,6 @@ const getArgocdApplicationLink = (row: Row, domainSuffix: string) => {
)
}
-type Status = 'Unknown' | 'Pending' | 'Succeeded' | 'NotFound'
-
-export const getStatus = (status: Status) => {
- if (!status || status === 'NotFound') return
- switch (status) {
- case 'Unknown':
- return
- case 'Pending':
- return
- case 'Succeeded':
- return
- default:
- return
- }
-}
-
interface Props {
workloads: GetAllWorkloadsApiResponse
teamId?: string
@@ -89,7 +72,7 @@ export default function ({ workloads, teamId }: Props): React.ReactElement {
{
id: 'Status',
label: 'Status',
- renderer: (row: Row) => getStatus(statuses?.workloads?.[row.name]),
+ renderer: (row: Row) => getStatus((statuses?.workloads?.[row.name] as Status) || 'NotFound'),
},
]
diff --git a/src/components/forms/Autocomplete.tsx b/src/components/forms/Autocomplete.tsx
index 4bf97f4f4..454e5d828 100644
--- a/src/components/forms/Autocomplete.tsx
+++ b/src/components/forms/Autocomplete.tsx
@@ -36,7 +36,9 @@ export interface EnhancedAutocompleteProps<
/** Removes the "select all" option for multiselect */
disableSelectAll?: boolean
textFieldProps?: Partial
- width?: 'small' | 'medium' | 'large'
+ width?: 'small' | 'medium' | 'large' | 'fullwidth'
+ /** Hide placeholder and minimize input width when values are selected (for cleaner multi-select UX) */
+ compactMultiSelect?: boolean
}
export function Autocomplete<
@@ -58,6 +60,7 @@ export function Autocomplete<
loadingText,
multiple,
disableSelectAll = false,
+ noMarginTop = false,
noOptionsText,
onBlur,
options,
@@ -68,11 +71,15 @@ export function Autocomplete<
value,
onChange,
width = 'medium',
+ compactMultiSelect = false,
...rest
} = props
const [inPlaceholder, setInPlaceholder] = useState('')
+ // Check if there are selected values (for hiding placeholder when values exist)
+ const hasValues = multiple ? Array.isArray(value) && value.length > 0 : !!value
+
// --- select-all logic ---
const isSelectAllActive = multiple && Array.isArray(value) && value.length === options.length
@@ -121,8 +128,10 @@ export function Autocomplete<
label={label}
width={width}
loading={loading}
- placeholder={inPlaceholder || placeholder || 'Select an option'}
+ noMarginTop={noMarginTop}
+ placeholder={compactMultiSelect && hasValues ? '' : inPlaceholder || placeholder || 'Select an option'}
{...params}
+ {...textFieldProps}
error={!!errorText}
helperText={helperText}
InputProps={{
@@ -133,6 +142,10 @@ export function Autocomplete<
flexWrap: 'wrap',
gap: 1,
paddingRight: '44px',
+ '& input': {
+ minWidth: compactMultiSelect && hasValues && multiple ? '30px !important' : undefined,
+ width: compactMultiSelect && hasValues && multiple ? '30px !important' : undefined,
+ },
},
}}
InputLabelProps={{
diff --git a/src/components/forms/TextArea.tsx b/src/components/forms/TextArea.tsx
index 854cadbf3..3dc7073a0 100644
--- a/src/components/forms/TextArea.tsx
+++ b/src/components/forms/TextArea.tsx
@@ -175,23 +175,27 @@ export function AutoResizableTextarea({
return (
-
- {label}
-
+ {label && (
+
+ {label}
+
+ )}