From 5272bcf49b81ef0a30e72a7da86c36820880a06c Mon Sep 17 00:00:00 2001 From: Boris Ilyushonak Date: Fri, 23 Jan 2026 18:32:25 +0100 Subject: [PATCH 1/4] [Security Solutions] Trial Companion - enable in serverless --- config/serverless.security.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/serverless.security.yml b/config/serverless.security.yml index ea373c97187a3..61558a904ee1f 100644 --- a/config/serverless.security.yml +++ b/config/serverless.security.yml @@ -256,7 +256,7 @@ xpack.alerting.rules.run.ruleTypeOverrides: # Experimental Security Solution features # These features are disabled in Serverless until fully tested -xpack.securitySolution.enableExperimental: [riskScoreAssistantToolDisabled, disable:enableRiskScorePrivmonModifier, disable:kubernetesEnabled] +xpack.securitySolution.enableExperimental: [riskScoreAssistantToolDisabled, disable:enableRiskScorePrivmonModifier, disable:kubernetesEnabled, trialCompanionEnabled] # AI Assistant config aiAssistantManagementSelection.preferredAIAssistantType: 'security' From de0106e3d8c28fcd201e74a48e092a9ff9908d6a Mon Sep 17 00:00:00 2001 From: Boris Ilyushonak Date: Thu, 29 Jan 2026 15:28:33 +0100 Subject: [PATCH 2/4] [Security Solutions] Trial Companion - addjust UI design --- config/serverless.security.yml | 2 +- .../nba_get_setup_panel.stories.tsx | 2 +- .../trial_companion/nba_get_setup_panel.tsx | 188 +++++++++++------- .../trial_companion/trial_companion.tsx | 2 +- 4 files changed, 122 insertions(+), 72 deletions(-) diff --git a/config/serverless.security.yml b/config/serverless.security.yml index 61558a904ee1f..ea373c97187a3 100644 --- a/config/serverless.security.yml +++ b/config/serverless.security.yml @@ -256,7 +256,7 @@ xpack.alerting.rules.run.ruleTypeOverrides: # Experimental Security Solution features # These features are disabled in Serverless until fully tested -xpack.securitySolution.enableExperimental: [riskScoreAssistantToolDisabled, disable:enableRiskScorePrivmonModifier, disable:kubernetesEnabled, trialCompanionEnabled] +xpack.securitySolution.enableExperimental: [riskScoreAssistantToolDisabled, disable:enableRiskScorePrivmonModifier, disable:kubernetesEnabled] # AI Assistant config aiAssistantManagementSelection.preferredAIAssistantType: 'security' diff --git a/x-pack/solutions/security/plugins/security_solution/public/trial_companion/nba_get_setup_panel.stories.tsx b/x-pack/solutions/security/plugins/security_solution/public/trial_companion/nba_get_setup_panel.stories.tsx index 0eb161c85f3e8..abba7b9149344 100644 --- a/x-pack/solutions/security/plugins/security_solution/public/trial_companion/nba_get_setup_panel.stories.tsx +++ b/x-pack/solutions/security/plugins/security_solution/public/trial_companion/nba_get_setup_panel.stories.tsx @@ -10,7 +10,7 @@ import type { Meta, StoryFn, StoryObj } from '@storybook/react'; import { NBA_TODO_LIST } from './nba_translations'; import { Milestone } from '../../common/trial_companion/types'; import type { YourTrialCompanionProps } from './nba_get_setup_panel'; -import { YourTrialCompanion } from './nba_get_setup_panel'; +import YourTrialCompanion from './nba_get_setup_panel'; const meta: Meta = { component: YourTrialCompanion, diff --git a/x-pack/solutions/security/plugins/security_solution/public/trial_companion/nba_get_setup_panel.tsx b/x-pack/solutions/security/plugins/security_solution/public/trial_companion/nba_get_setup_panel.tsx index 01112bbd3eab5..03e95b12d2682 100644 --- a/x-pack/solutions/security/plugins/security_solution/public/trial_companion/nba_get_setup_panel.tsx +++ b/x-pack/solutions/security/plugins/security_solution/public/trial_companion/nba_get_setup_panel.tsx @@ -19,12 +19,13 @@ import { EuiIcon, EuiSpacer, EuiButton, - EuiButtonEmpty, EuiHorizontalRule, EuiFlexGroup, EuiFlexItem, + EuiText, } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; +import type { EuiThemeComputed } from '@elastic/eui-theme-common'; import { postNBADismiss } from './api'; import { TrialCompanionEventTypes } from '../common/lib/telemetry/events/trial_companion/types'; import { useKibana } from '../common/lib/kibana'; @@ -47,12 +48,14 @@ export interface YourTrialCompanionTODOItemProps { setExpandedItemId: (id: Milestone | null) => void; trigger: 'open' | 'closed'; key: Key; + showTopBorder: boolean; + showBottomBorder: boolean; } -function buttonContent(completed: number, total: number) { +function buttonContent(completed: number, total: number, euiTheme: EuiThemeComputed) { return ( <> - +

+ + ); @@ -72,24 +77,25 @@ function buttonContent(completed: number, total: number) { function itemButtonContent(iconType: string, color: string, title: string, milestoneId: Milestone) { return ( -
- -
- -   + + + + + + -
-
-
+ + + ); } @@ -98,8 +104,11 @@ export const YourTrialCompanionTODOItem: React.FC { const { analytics, application } = useKibana().services; + const { euiTheme } = useEuiTheme(); const iconType = completed.includes(item.milestoneId) ? 'checkInCircleFilled' : RadioCircleIconSVG; @@ -128,38 +137,69 @@ export const YourTrialCompanionTODOItem: React.FC - + {showTopBorder && trigger === 'open' && } - - {action && viewButtonText && ( - <> - - - - - - )} + + + + + + + + + + + {action && viewButtonText && ( + + + + )} + + + + + + + + + {showBottomBorder && trigger === 'open' && } ); }; @@ -189,7 +229,12 @@ export const YourTrialCompanion: React.FC = ({ '.euiAccordion__buttonContent': { width: '100%;', }, + paddingTop: euiTheme.size.base, + paddingBottom: euiTheme.size.l, }); + const firstLineSelected = expandedItemId === todoItems[0].milestoneId; + const lastLineSelected = expandedItemId === todoItems[todoItems.length - 1].milestoneId; + const [isVisible, setIsVisible] = useState(true); const onDismissButton = () => { setIsVisible(false); @@ -202,44 +247,49 @@ export const YourTrialCompanion: React.FC = ({ - {todoItems.map((item) => { - return ( - - ); - })} + + + + + {todoItems.map((item) => { + return ( + + + + ); + })} + {!showDismiss && ( - - - - { - setIsVisible(false); - }} - > + <> + {!lastLineSelected && } + + + + - - - - )} - {showDismiss && ( - <> - - + Date: Thu, 29 Jan 2026 16:12:10 +0100 Subject: [PATCH 3/4] check types --- .../public/trial_companion/nba_get_setup_panel.stories.tsx | 2 +- .../public/trial_companion/trial_companion.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/solutions/security/plugins/security_solution/public/trial_companion/nba_get_setup_panel.stories.tsx b/x-pack/solutions/security/plugins/security_solution/public/trial_companion/nba_get_setup_panel.stories.tsx index abba7b9149344..0eb161c85f3e8 100644 --- a/x-pack/solutions/security/plugins/security_solution/public/trial_companion/nba_get_setup_panel.stories.tsx +++ b/x-pack/solutions/security/plugins/security_solution/public/trial_companion/nba_get_setup_panel.stories.tsx @@ -10,7 +10,7 @@ import type { Meta, StoryFn, StoryObj } from '@storybook/react'; import { NBA_TODO_LIST } from './nba_translations'; import { Milestone } from '../../common/trial_companion/types'; import type { YourTrialCompanionProps } from './nba_get_setup_panel'; -import YourTrialCompanion from './nba_get_setup_panel'; +import { YourTrialCompanion } from './nba_get_setup_panel'; const meta: Meta = { component: YourTrialCompanion, diff --git a/x-pack/solutions/security/plugins/security_solution/public/trial_companion/trial_companion.tsx b/x-pack/solutions/security/plugins/security_solution/public/trial_companion/trial_companion.tsx index c6e01233341a0..52a5560c99820 100644 --- a/x-pack/solutions/security/plugins/security_solution/public/trial_companion/trial_companion.tsx +++ b/x-pack/solutions/security/plugins/security_solution/public/trial_companion/trial_companion.tsx @@ -9,7 +9,7 @@ import useInterval from 'react-use/lib/useInterval'; import React, { useState } from 'react'; import { difference } from 'lodash'; -import YourTrialCompanion from './nba_get_setup_panel'; +import { YourTrialCompanion } from './nba_get_setup_panel'; import { useKibana } from '../common/lib/kibana'; import { useGetNBA } from './hooks/use_get_nba'; import { NBA_TODO_LIST } from './nba_translations'; From c137811424aac073d68fe378b319af9b3f94afc2 Mon Sep 17 00:00:00 2001 From: Boris Ilyushonak Date: Thu, 29 Jan 2026 16:43:26 +0100 Subject: [PATCH 4/4] good that we have tests --- .../public/trial_companion/nba_get_setup_panel.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/x-pack/solutions/security/plugins/security_solution/public/trial_companion/nba_get_setup_panel.tsx b/x-pack/solutions/security/plugins/security_solution/public/trial_companion/nba_get_setup_panel.tsx index 03e95b12d2682..dfb75d310b1c6 100644 --- a/x-pack/solutions/security/plugins/security_solution/public/trial_companion/nba_get_setup_panel.tsx +++ b/x-pack/solutions/security/plugins/security_solution/public/trial_companion/nba_get_setup_panel.tsx @@ -141,7 +141,7 @@ export const YourTrialCompanionTODOItem: React.FC = ({ = ({ {todoItems.map((item) => { return ( - + = ({ ); })} - {!showDismiss && ( + {showDismiss && ( <> {!lastLineSelected && }