Skip to content

Commit

Permalink
Merge branch 'main' into preview-sli-chart
Browse files Browse the repository at this point in the history
  • Loading branch information
kdelemme authored Jun 15, 2023
2 parents 456070c + 323cd25 commit a9a2eec
Show file tree
Hide file tree
Showing 34 changed files with 1,718 additions and 48 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/

import React from 'react';

import { EuiFlexGroup, EuiFlexItem, EuiPanel, EuiText, EuiTitle } from '@elastic/eui';

import { FormattedMessage } from '@kbn/i18n-react';

export const EsreDocsSection: React.FC = () => (
<EuiFlexGroup alignItems="center">
<EuiFlexItem grow={4}>
<EuiFlexGroup direction="column" gutterSize="s">
<EuiFlexItem grow={false}>
<EuiTitle>
<h2>
<FormattedMessage
id="xpack.enterpriseSearch.esre.esreDocsSection.title"
defaultMessage="Dive deeper with the ESRE docs"
/>
</h2>
</EuiTitle>
</EuiFlexItem>
<EuiFlexItem grow={false}>
<EuiText>
<p>
<FormattedMessage
id="xpack.enterpriseSearch.esre.esreDocsSection.description"
defaultMessage="To learn more about how to get started with ESRE, and test these tools with concrete examples, visit the ESRE documentation."
/>
</p>
</EuiText>
</EuiFlexItem>
</EuiFlexGroup>
</EuiFlexItem>
<EuiFlexItem grow={6}>
<EuiFlexGroup direction="column">
<EuiFlexItem grow={false}>
<EuiPanel hasBorder>
<EuiFlexGroup direction="column" gutterSize="s">
<EuiFlexItem grow={false}>
<EuiTitle size="s">
<h3>
<FormattedMessage
id="xpack.enterpriseSearch.esre.esreDocsSection.learn.title"
defaultMessage="Learn"
/>
</h3>
</EuiTitle>
</EuiFlexItem>
<EuiFlexItem grow={false}>
<EuiText>
<p>
<FormattedMessage
id="xpack.enterpriseSearch.esre.esreDocsSection.learn.description"
defaultMessage="These are complex topics, so we've curated some learning topics to help you get started."
/>
</p>
</EuiText>
</EuiFlexItem>
</EuiFlexGroup>
</EuiPanel>
</EuiFlexItem>
<EuiFlexItem grow={false}>
<EuiPanel hasBorder>
<EuiFlexGroup direction="column" gutterSize="s">
<EuiFlexItem grow={false}>
<EuiTitle size="s">
<h3>
<FormattedMessage
id="xpack.enterpriseSearch.esre.esreDocsSection.faq.title"
defaultMessage="FAQ"
/>
</h3>
</EuiTitle>
</EuiFlexItem>
<EuiFlexItem grow={false}>
<EuiText>
<p>
<FormattedMessage
id="xpack.enterpriseSearch.esre.esreDocsSection.faq.description"
defaultMessage="Learn what ESRE is (and isn't) from these frequently asked questions."
/>
</p>
</EuiText>
</EuiFlexItem>
</EuiFlexGroup>
</EuiPanel>
</EuiFlexItem>
<EuiFlexItem grow={false}>
<EuiPanel hasBorder>
<EuiFlexGroup direction="column" gutterSize="s">
<EuiFlexItem grow={false}>
<EuiTitle size="s">
<h3>
<FormattedMessage
id="xpack.enterpriseSearch.esre.esreDocsSection.help.title"
defaultMessage="Help"
/>
</h3>
</EuiTitle>
</EuiFlexItem>
<EuiFlexItem grow={false}>
<EuiText>
<p>
<FormattedMessage
id="xpack.enterpriseSearch.esre.esreDocsSection.help.description"
defaultMessage="Need help? Check out the ESRE discuss forum!"
/>
</p>
</EuiText>
</EuiFlexItem>
</EuiFlexGroup>
</EuiPanel>
</EuiFlexItem>
</EuiFlexGroup>
</EuiFlexItem>
</EuiFlexGroup>
);
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,88 @@

import React from 'react';

import {
EuiImage,
EuiPanel,
EuiFlexGroup,
EuiFlexItem,
EuiText,
EuiHorizontalRule,
EuiFlexGrid,
useIsWithinBreakpoints,
} from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n-react';

import analyticsIllustration from '../../../../assets/images/analytics.svg';
import scalableIllustration from '../../../../assets/images/scalable.svg';
import simplifyIllustration from '../../../../assets/images/simplify.svg';
import { SetEsreChrome as SetPageChrome } from '../../../shared/kibana_chrome';
import { EnterpriseSearchEsrePageTemplate } from '../layout/page_template';

import { EsreDocsSection } from './esre_docs_section';
import { MeasurePerformanceSection } from './measure_performance_section';
import { RankAggregationSection } from './rank_aggregation_section';
import { SemanticSearchSection } from './semantic_search_section';

export const EsreGuide: React.FC = () => {
const isMobile = useIsWithinBreakpoints(['xs']);

return (
<EnterpriseSearchEsrePageTemplate
restrictWidth
bottomBorder={false}
pageHeader={{
pageTitle: i18n.translate('xpack.enterpriseSearch.esre.guide.pageTitle', {
defaultMessage: 'Enhance your search with ESRE',
}),
}}
>
<SetPageChrome />
<p>ESRE placeholder</p>
<EuiPanel color="transparent" paddingSize="none">
<EuiFlexGroup justifyContent="spaceBetween" direction="column" responsive>
<EuiFlexItem grow>
<EuiPanel color="subdued" hasShadow={false}>
<EuiFlexGrid alignItems="center" responsive={false} columns={isMobile ? 1 : 3}>
<EuiFlexItem grow={false}>
<EuiImage size="m" src={simplifyIllustration} alt="" />
</EuiFlexItem>
<EuiFlexItem grow={false}>
<EuiImage size="m" src={analyticsIllustration} alt="" />
</EuiFlexItem>
<EuiFlexItem grow={false}>
<EuiImage size="m" src={scalableIllustration} alt="" />
</EuiFlexItem>
</EuiFlexGrid>
</EuiPanel>
</EuiFlexItem>
<EuiFlexItem grow>
<EuiText>
<p>
<FormattedMessage
id="xpack.enterpriseSearch.esre.guide.description"
defaultMessage="The Elasticsearch Relevance Engine™ (ESRE) enables developers to build AI search-powered applications using the Elastic platform. ESRE is a set of tools and features that include our proprietary trained ML model ELSER, our vector search and embeddings capabilities, and RRF ranking for combining vector and text search."
/>
</p>
</EuiText>
</EuiFlexItem>
<EuiFlexItem grow>
<SemanticSearchSection />
</EuiFlexItem>
<EuiHorizontalRule />
<EuiFlexItem grow>
<RankAggregationSection />
</EuiFlexItem>
<EuiHorizontalRule />
<EuiFlexItem grow>
<MeasurePerformanceSection />
</EuiFlexItem>
<EuiHorizontalRule />
<EuiFlexItem grow>
<EsreDocsSection />
</EuiFlexItem>
</EuiFlexGroup>
</EuiPanel>
</EnterpriseSearchEsrePageTemplate>
);
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/

import React from 'react';

import {
EuiAccordion,
EuiFlexGroup,
EuiFlexItem,
EuiIcon,
EuiTitle,
EuiText,
IconType,
EuiPanel,
} from '@elastic/eui';

export interface EsreGuideAccordionProps {
id: string;
icon: IconType;
title: string;
description: string;
initialIsOpen?: boolean;
}

export const EsreGuideAccordion: React.FC<EsreGuideAccordionProps> = ({
id,
icon,
title,
description,
initialIsOpen = false,
children,
}) => {
return (
<EuiPanel hasBorder paddingSize="l">
<EuiAccordion
id={id}
initialIsOpen={initialIsOpen}
buttonContent={
<EuiFlexGroup responsive={false} gutterSize="s" alignItems="center">
<EuiFlexItem grow={false}>
<EuiIcon type={icon} size="xxl" />
</EuiFlexItem>
<EuiFlexItem>
<EuiFlexGroup direction="column" responsive={false} gutterSize="xs">
<EuiFlexItem grow={false}>
<EuiTitle size="s">
<h3>{title}</h3>
</EuiTitle>
</EuiFlexItem>
<EuiFlexItem grow={false}>
<EuiText>
<p>{description}</p>
</EuiText>
</EuiFlexItem>
</EuiFlexGroup>
</EuiFlexItem>
</EuiFlexGroup>
}
>
{children}
</EuiAccordion>
</EuiPanel>
);
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import React from 'react';

import { EuiFlexGroup, EuiFlexItem, EuiPanel, EuiSteps, EuiText, EuiTitle } from '@elastic/eui';
import { EuiContainedStepProps } from '@elastic/eui/src/components/steps/steps';
import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n-react';

const steps: EuiContainedStepProps[] = [
{
title: i18n.translate('xpack.enterpriseSearch.esre.measurePerformanceSection.step1.title', {
defaultMessage: 'Create a collection',
}),
children: (
<FormattedMessage
id="xpack.enterpriseSearch.esre.measurePerformanceSection.step1.description"
defaultMessage="Visit Behavioral Analytics and create your first collection"
/>
),
status: 'incomplete',
},
{
title: i18n.translate('xpack.enterpriseSearch.esre.measurePerformanceSection.step2.title', {
defaultMessage: 'Integrate the analytics tracker',
}),
children: (
<FormattedMessage
id="xpack.enterpriseSearch.esre.measurePerformanceSection.step2.description"
defaultMessage="After creating a collection, follow the directions on how to integrate our tracker into your application or website."
/>
),
status: 'incomplete',
},
{
title: i18n.translate('xpack.enterpriseSearch.esre.measurePerformanceSection.step3.title', {
defaultMessage: 'Review your dashboard',
}),
children: (
<FormattedMessage
id="xpack.enterpriseSearch.esre.measurePerformanceSection.step3.description"
defaultMessage="Our dashboards and tools help you visualize your end-user behavior and measure the performance of your search applications."
/>
),
status: 'incomplete',
},
];

export const MeasurePerformanceSection: React.FC = () => (
<EuiFlexGroup alignItems="center">
<EuiFlexItem grow={4}>
<EuiFlexGroup direction="column" gutterSize="s" justifyContent="flexStart">
<EuiFlexItem grow={false}>
<EuiTitle>
<h2>
<FormattedMessage
id="xpack.enterpriseSearch.esre.measurePerformanceSection.title"
defaultMessage="Measure your performance"
/>
</h2>
</EuiTitle>
</EuiFlexItem>
<EuiFlexItem grow={false}>
<EuiText>
<p>
<FormattedMessage
id="xpack.enterpriseSearch.esre.measurePerformanceSection.description"
defaultMessage="Use Behavioral Analytics dashboards and tools to visualize user behavior and measure the impact of your changes."
/>
</p>
</EuiText>
</EuiFlexItem>
</EuiFlexGroup>
</EuiFlexItem>
<EuiFlexItem grow={6}>
<EuiPanel hasBorder>
<EuiSteps steps={steps} titleSize="xs" />
</EuiPanel>
</EuiFlexItem>
</EuiFlexGroup>
);
Loading

0 comments on commit a9a2eec

Please sign in to comment.