[Markdown] migrate scss to emotion (#216351)

## Summary

Part of https://github.com/elastic/kibana/issues/207852
Migrates markdown to emotion.
This commit is contained in:
Marta Bondyra 2025-03-31 22:35:13 +02:00 committed by GitHub
parent b2c8762dce
commit dc1d36b50b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 57 additions and 31 deletions

View file

@ -187,7 +187,7 @@ pageLoadAssetSize:
visDefaultEditor: 50178 visDefaultEditor: 50178
visTypeGauge: 24113 visTypeGauge: 24113
visTypeHeatmap: 25340 visTypeHeatmap: 25340
visTypeMarkdown: 30896 visTypeMarkdown: 9000
visTypeMetric: 23332 visTypeMetric: 23332
visTypePie: 35583 visTypePie: 35583
visTypeTable: 94934 visTypeTable: 94934

View file

@ -2,6 +2,27 @@
exports[`MarkdownOptions should match snapshot 1`] = ` exports[`MarkdownOptions should match snapshot 1`] = `
<EuiPanel <EuiPanel
css={
Object {
"map": undefined,
"name": "18sw4aj",
"next": undefined,
"styles": "
flex-grow: 1 !important;
.visEditor--markdown__textarea {
flex-grow: 1;
}
.mkdEditor,
.euiFormControlLayout__childrenWrapper,
.euiFormControlLayout--euiTextArea,
.visEditor--markdown__textarea {
height: 100%;
}
",
"toString": [Function],
}
}
paddingSize="s" paddingSize="s"
> >
<EuiFlexGroup <EuiFlexGroup

View file

@ -20,6 +20,7 @@ import {
import { FormattedMessage } from '@kbn/i18n-react'; import { FormattedMessage } from '@kbn/i18n-react';
import { VisEditorOptionsProps } from '@kbn/visualizations-plugin/public'; import { VisEditorOptionsProps } from '@kbn/visualizations-plugin/public';
import { css } from '@emotion/react';
import { MarkdownVisParams } from './types'; import { MarkdownVisParams } from './types';
function MarkdownOptions({ stateParams, setValue }: VisEditorOptionsProps<MarkdownVisParams>) { function MarkdownOptions({ stateParams, setValue }: VisEditorOptionsProps<MarkdownVisParams>) {
@ -29,7 +30,22 @@ function MarkdownOptions({ stateParams, setValue }: VisEditorOptionsProps<Markdo
); );
return ( return (
<EuiPanel paddingSize="s"> <EuiPanel
paddingSize="s"
css={css`
flex-grow: 1 !important;
.visEditor--markdown__textarea {
flex-grow: 1;
}
.mkdEditor,
.euiFormControlLayout__childrenWrapper,
.euiFormControlLayout--euiTextArea,
.visEditor--markdown__textarea {
height: 100%;
}
`}
>
<EuiFlexGroup direction="column" gutterSize="m" className="mkdEditor"> <EuiFlexGroup direction="column" gutterSize="m" className="mkdEditor">
<EuiFlexItem grow={false}> <EuiFlexItem grow={false}>
<EuiFlexGroup gutterSize="none" justifyContent="spaceBetween" alignItems="baseline"> <EuiFlexGroup gutterSize="none" justifyContent="spaceBetween" alignItems="baseline">

View file

@ -1,25 +0,0 @@
// Prefix all styles with "mkd" to avoid conflicts.
// Examples
// mkdChart
// mkdChart__legend
// mkdChart__legend--small
// mkdChart__legend-isLoading
.mkdVis {
padding: $euiSizeS;
width: 100%;
}
.visEditor--markdown {
.visEditorSidebar__config > *,
.visEditor--markdown__textarea {
flex-grow: 1;
}
.mkdEditor,
.euiFormControlLayout__childrenWrapper,
.euiFormControlLayout--euiTextArea,
.visEditor--markdown__textarea {
height: 100%
}
}

View file

@ -9,9 +9,10 @@
import React, { useEffect } from 'react'; import React, { useEffect } from 'react';
import { Markdown } from '@kbn/kibana-react-plugin/public'; import { Markdown } from '@kbn/kibana-react-plugin/public';
import { MarkdownVisParams } from './types';
import './markdown_vis.scss'; import { useEuiTheme } from '@elastic/eui';
import { css } from '@emotion/react';
import { MarkdownVisParams } from './types';
interface MarkdownVisComponentProps extends MarkdownVisParams { interface MarkdownVisComponentProps extends MarkdownVisParams {
renderComplete: () => void; renderComplete: () => void;
@ -23,10 +24,17 @@ const MarkdownVisComponent = ({
openLinksInNewTab, openLinksInNewTab,
renderComplete, renderComplete,
}: MarkdownVisComponentProps) => { }: MarkdownVisComponentProps) => {
const { euiTheme } = useEuiTheme();
useEffect(renderComplete); // renderComplete will be called after each render to signal, that we are done with rendering. useEffect(renderComplete); // renderComplete will be called after each render to signal, that we are done with rendering.
return ( return (
<div className="mkdVis" style={{ fontSize: `${fontSize}pt` }}> <div
css={css({
fontSize: `${fontSize}pt`,
padding: euiTheme.size.s,
width: '100%',
})}
>
<Markdown <Markdown
data-test-subj="markdownBody" data-test-subj="markdownBody"
openLinksInNewTab={openLinksInNewTab} openLinksInNewTab={openLinksInNewTab}

View file

@ -13,11 +13,17 @@ import { i18n } from '@kbn/i18n';
import { VisEditorOptionsProps } from '@kbn/visualizations-plugin/public'; import { VisEditorOptionsProps } from '@kbn/visualizations-plugin/public';
import { SwitchOption, RangeOption } from '@kbn/vis-default-editor-plugin/public'; import { SwitchOption, RangeOption } from '@kbn/vis-default-editor-plugin/public';
import { css } from '@emotion/react';
import { MarkdownVisParams } from './types'; import { MarkdownVisParams } from './types';
function SettingsOptions({ stateParams, setValue }: VisEditorOptionsProps<MarkdownVisParams>) { function SettingsOptions({ stateParams, setValue }: VisEditorOptionsProps<MarkdownVisParams>) {
return ( return (
<EuiPanel paddingSize="s"> <EuiPanel
paddingSize="s"
css={css`
flex-grow: 1 !important;
`}
>
<RangeOption <RangeOption
label={i18n.translate('visTypeMarkdown.params.fontSizeLabel', { label={i18n.translate('visTypeMarkdown.params.fontSizeLabel', {
defaultMessage: 'Base font size in points', defaultMessage: 'Base font size in points',