From f22e126e8afaf242ade45428b15b86337020d01c Mon Sep 17 00:00:00 2001 From: Lene Gadewoll Date: Thu, 21 May 2026 17:01:39 +0200 Subject: [PATCH 1/2] feat: add EuiMeter component PoC --- packages/eui/src/components/meter/index.ts | 10 + .../src/components/meter/meter.stories.tsx | 253 +++++++++++++++ .../eui/src/components/meter/meter.styles.ts | 244 ++++++++++++++ packages/eui/src/components/meter/meter.tsx | 307 ++++++++++++++++++ 4 files changed, 814 insertions(+) create mode 100644 packages/eui/src/components/meter/index.ts create mode 100644 packages/eui/src/components/meter/meter.stories.tsx create mode 100644 packages/eui/src/components/meter/meter.styles.ts create mode 100644 packages/eui/src/components/meter/meter.tsx diff --git a/packages/eui/src/components/meter/index.ts b/packages/eui/src/components/meter/index.ts new file mode 100644 index 000000000000..4bc09054683d --- /dev/null +++ b/packages/eui/src/components/meter/index.ts @@ -0,0 +1,10 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export type { EuiMeterProps } from './meter'; +export { EuiMeter } from './meter'; diff --git a/packages/eui/src/components/meter/meter.stories.tsx b/packages/eui/src/components/meter/meter.stories.tsx new file mode 100644 index 000000000000..570061697c95 --- /dev/null +++ b/packages/eui/src/components/meter/meter.stories.tsx @@ -0,0 +1,253 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import type { Meta, StoryObj } from '@storybook/react'; + +import { euiPaletteColorBlind, useEuiTheme } from '../../services'; +import { EuiMeter, COLORS, EuiMeterProps } from './meter'; +import { EuiFlexGroup } from '../flex'; +import { PaletteColorStop } from '../color_picker/color_palette_picker'; +import { EuiText } from '../text'; + +const meta: Meta = { + title: 'Display/EuiMeter', + component: EuiMeter, + argTypes: { + color: { control: 'select', options: [...COLORS] }, + // for quicker/easier QA + label: { control: 'text' }, + value: { control: 'number' }, + valueText: { + control: 'radio', + options: ['custom', 'true', 'false'], + mapping: { + custom: 'steps', + true: true, + false: false, + }, + }, + }, + args: { + color: 'success', + size: 'm', + position: 'static', + valueText: false, + }, +}; + +export default meta; +type Story = StoryObj; + +export const Playground: Story = { + args: { + label: '', + value: 70, + min: -50, + max: 100, + }, +}; + +export const Gradient: Story = { + args: { + label: '', + value: 70, + min: -50, + max: 100, + palette: euiPaletteColorBlind(), + }, +}; + +export const KitchenSink: Story = { + args: { + size: 'l', + }, + render: function Render(args) { + const { euiTheme } = useEuiTheme(); + + const severityPalette = [ + euiTheme.colors.severity.unknown, + euiTheme.colors.severity.neutral, + euiTheme.colors.severity.success, + euiTheme.colors.severity.warning, + euiTheme.colors.severity.risk, + euiTheme.colors.severity.danger, + ]; + + const severityPaletteWithStops = [ + { stop: -100, color: severityPalette[5] }, + { stop: -50, color: severityPalette[4] }, + { stop: -15, color: severityPalette[3] }, + { stop: 0, color: severityPalette[0] }, + { stop: 5, color: severityPalette[1] }, + { stop: 25, color: severityPalette[2] }, + { stop: 50, color: severityPalette[2] }, + ] as PaletteColorStop[]; + + const paletteWithHardStops = [ + { stop: -100, color: severityPalette[5] }, + { stop: 0, color: severityPalette[5] }, + { stop: 0, color: severityPalette[2] }, + { stop: 50, color: severityPalette[2] }, + ] as PaletteColorStop[]; + + return ( + + + + + + + + + + + With palette (equal spacing) + + + + + + + + + + + With palette stops + + + + + + + + + + + With hard palette stops + + + + + + + + + + + ); + }, +}; diff --git a/packages/eui/src/components/meter/meter.styles.ts b/packages/eui/src/components/meter/meter.styles.ts new file mode 100644 index 000000000000..63178c0c0bc4 --- /dev/null +++ b/packages/eui/src/components/meter/meter.styles.ts @@ -0,0 +1,244 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { css } from '@emotion/react'; +import { + euiFontSize, + euiTextTruncate, + highContrastModeStyles, + logicalCSS, + logicalTextAlignCSS, + preventForcedColors, +} from '../../global_styling'; +import { makeHighContrastColor, UseEuiTheme } from '../../services'; +import { euiText } from '../text/text.styles'; + +/** + * Sets the fill bar color directly on ::before. + * EuiMeter always renders its bar via ::before (never a native element), + * so color application is simpler than EuiProgress which supports native . + */ +const euiMeterBarColor = (color: string) => css` + &::before { + background-color: ${color}; + } +`; + +/** + * Emotion styles + */ +export const euiMeterStyles = (euiThemeContext: UseEuiTheme) => { + const { euiTheme, highContrastMode } = euiThemeContext; + const backgroundColor = highContrastMode + ? euiTheme.colors.emptyShade + : euiTheme.colors.lightShade; + + return { + euiMeter: css` + --euiMeterBackgroundColor: ${backgroundColor}; + + background-color: var(--euiMeterBackgroundColor); + overflow: hidden; + + &::before { + position: absolute; + content: ''; + } + + ${highContrastModeStyles(euiThemeContext, { + preferred: ` + border: ${euiTheme.border.thin}; + `, + })} + `, + // Sizes + _sharedSizeCSS: (size: string) => ` + ${logicalCSS('height', size)} + border-radius: ${euiTheme.size.s}; + `, + get xs() { + return css( + // Increased visibility/size for high contrast modes + this._sharedSizeCSS( + highContrastMode ? euiTheme.size.xs : euiTheme.size.xxs + ) + ); + }, + get s() { + return css(this._sharedSizeCSS(euiTheme.size.xs)); + }, + get m() { + return css(this._sharedSizeCSS(euiTheme.size.s)); + }, + get l() { + return css(this._sharedSizeCSS(euiTheme.size.m)); + }, + // Positioning + fixed: css` + position: fixed; + z-index: ${Number(euiTheme.levels.header) + 1}; + ${logicalCSS('top', 0)} + ${logicalCSS('left', 0)} + ${logicalCSS('right', 0)} + background-color: transparent; + `, + absolute: css` + position: absolute; + ${logicalCSS('top', 0)} + ${logicalCSS('left', 0)} + ${logicalCSS('right', 0)} + background-color: transparent; + ${logicalCSS('border-top-left-radius', 'inherit')} + ${logicalCSS('border-top-right-radius', 'inherit')} + `, + static: css` + position: relative; + `, + fill: css` + &::before { + ${logicalCSS('top', 0)} + ${logicalCSS('bottom', 0)} + ${logicalCSS('left', 'var(--euiMeterBarStart, 0%)')} + ${logicalCSS('width', 'var(--euiMeterBarWidth, 0%)')} + background-color: currentColor; + border-start-start-radius: var(--euiMeterBarStartRadius); + border-end-start-radius: var(--euiMeterBarStartRadius); + border-start-end-radius: var(--euiMeterBarEndRadius); + border-end-end-radius: var(--euiMeterBarEndRadius); + outline: ${euiTheme.border.width.thin} solid + ${highContrastMode + ? euiTheme.border.color + : euiTheme.colors.backgroundBasePlain}; + + ${preventForcedColors(euiThemeContext)} + } + `, + // Custom colors are set via the element's inline `color` style and + // picked up by `currentColor` in the fill::before background-color. + primary: euiMeterBarColor(euiTheme.colors.primary), + success: euiMeterBarColor(euiTheme.colors.success), + warning: euiMeterBarColor(euiTheme.colors.warning), + danger: euiMeterBarColor(euiTheme.colors.danger), + subdued: euiMeterBarColor(euiTheme.colors.textSubdued), + accent: euiMeterBarColor(euiTheme.colors.accent), + accentSecondary: euiMeterBarColor(euiTheme.colors.accentSecondary), + vis0: euiMeterBarColor(euiTheme.colors.vis.euiColorVis0), + vis1: euiMeterBarColor(euiTheme.colors.vis.euiColorVis1), + vis2: euiMeterBarColor(euiTheme.colors.vis.euiColorVis2), + vis3: euiMeterBarColor(euiTheme.colors.vis.euiColorVis3), + vis4: euiMeterBarColor(euiTheme.colors.vis.euiColorVis4), + vis5: euiMeterBarColor(euiTheme.colors.vis.euiColorVis5), + vis6: euiMeterBarColor(euiTheme.colors.vis.euiColorVis6), + vis7: euiMeterBarColor(euiTheme.colors.vis.euiColorVis7), + vis8: euiMeterBarColor(euiTheme.colors.vis.euiColorVis8), + vis9: euiMeterBarColor(euiTheme.colors.vis.euiColorVis9), + gradient: css` + /* container-type lets 100cqi inside ::before always resolve to the + track's full inline size, anchoring the gradient to the track width + so the fill bar reveals a portion of it rather than stretching it. */ + container-type: inline-size; + + &::before { + background: var(--euiMeterGradient); + background-size: 100cqi 100%; + background-repeat: no-repeat; + background-position-x: left var(--euiMeterGradientOffset, 0); + background-position-y: center; + } + `, + }; +}; + +/** + * Data styles + */ +export const euiMeterDataStyles = (euiThemeContext: UseEuiTheme) => ({ + euiMeter__data: css` + display: flex; + justify-content: space-between; + gap: ${euiThemeContext.euiTheme.size.xs}; + ${euiText(euiThemeContext.euiTheme)} + ${euiFontSize(euiThemeContext, 'xs')} + `, + // Sizes + l: css` + ${euiFontSize(euiThemeContext, 's')} + `, +}); + +export const euiMeterLabelStyles = { + euiMeter__label: css` + flex-grow: 1; + ${euiTextTruncate()} + `, +}; + +export const euiMeterValueTextStyles = ({ euiTheme }: UseEuiTheme) => ({ + euiMeter__valueText: css` + flex-grow: 1; + flex-shrink: 0; + font-feature-settings: 'tnum' 1; /* Tabular numbers ensure the line up nicely when right-aligned */ + ${logicalTextAlignCSS('right')} + ${euiTextTruncate()} + `, + // Colors + primary: css` + color: ${euiTheme.colors.textPrimary}; + `, + success: css` + color: ${euiTheme.colors.textSuccess}; + `, + warning: css` + color: ${euiTheme.colors.textWarning}; + `, + danger: css` + color: ${euiTheme.colors.textDanger}; + `, + subdued: css` + color: ${euiTheme.colors.textSubdued}; + `, + accent: css` + color: ${euiTheme.colors.textAccent}; + `, + accentSecondary: css` + color: ${euiTheme.colors.textAccentSecondary}; + `, + vis0: css` + color: ${makeHighContrastColor(euiTheme.colors.vis.euiColorVis0)(euiTheme)}; + `, + vis1: css` + color: ${makeHighContrastColor(euiTheme.colors.vis.euiColorVis1)(euiTheme)}; + `, + vis2: css` + color: ${makeHighContrastColor(euiTheme.colors.vis.euiColorVis2)(euiTheme)}; + `, + vis3: css` + color: ${makeHighContrastColor(euiTheme.colors.vis.euiColorVis3)(euiTheme)}; + `, + vis4: css` + color: ${makeHighContrastColor(euiTheme.colors.vis.euiColorVis4)(euiTheme)}; + `, + vis5: css` + color: ${makeHighContrastColor(euiTheme.colors.vis.euiColorVis5)(euiTheme)}; + `, + vis6: css` + color: ${makeHighContrastColor(euiTheme.colors.vis.euiColorVis6)(euiTheme)}; + `, + vis7: css` + color: ${makeHighContrastColor(euiTheme.colors.vis.euiColorVis7)(euiTheme)}; + `, + vis8: css` + color: ${makeHighContrastColor(euiTheme.colors.vis.euiColorVis8)(euiTheme)}; + `, + vis9: css` + color: ${makeHighContrastColor(euiTheme.colors.vis.euiColorVis9)(euiTheme)}; + `, + customColor: css` + color: currentColor; + `, +}); diff --git a/packages/eui/src/components/meter/meter.tsx b/packages/eui/src/components/meter/meter.tsx new file mode 100644 index 000000000000..76662375dc26 --- /dev/null +++ b/packages/eui/src/components/meter/meter.tsx @@ -0,0 +1,307 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { + FunctionComponent, + HTMLAttributes, + ReactNode, + CSSProperties, + useState, + useRef, + useEffect, + MutableRefObject, + useMemo, +} from 'react'; +import classNames from 'classnames'; +import { EuiI18n } from '../i18n'; +import { CommonProps } from '../common'; + +import { useEuiTheme, makeHighContrastColor } from '../../services'; +import { EuiScreenReaderOnly } from '../accessibility'; +import { getLinearGradient } from '../color_picker/utils'; +import type { PaletteColorStop } from '../color_picker/color_palette_picker'; +import { + euiMeterDataStyles, + euiMeterLabelStyles, + euiMeterStyles, + euiMeterValueTextStyles, +} from './meter.styles'; + +export const SIZES = ['xs', 's', 'm', 'l'] as const; +export type EuiMeterSize = (typeof SIZES)[number]; + +export const COLORS = [ + 'primary', + 'success', + 'warning', + 'danger', + 'subdued', + 'accent', + 'accentSecondary', + 'vis0', + 'vis1', + 'vis2', + 'vis3', + 'vis4', + 'vis5', + 'vis6', + 'vis7', + 'vis8', + 'vis9', +] as const; +export type EuiMeterColor = (typeof COLORS)[number]; + +export const POSITIONS = ['fixed', 'absolute', 'static'] as const; +export type EuiMeterPosition = (typeof POSITIONS)[number]; + +export type EuiMeterProps = CommonProps & + Omit, 'color'> & { + size?: EuiMeterSize; + /** + * One of EUI's color palette, vis colors or a valid CSS color value https://developer.mozilla.org/en-US/docs/Web/CSS/color_value + */ + color?: EuiMeterColor | CSSProperties['color']; + position?: EuiMeterPosition; + /** + * A color palette — either an array of CSS color strings or an array of + * `PaletteColorStop` objects (same format accepted by `getLinearGradient`) — + * used to paint a gradient fill on the progress bar. The gradient is anchored + * to the full width of the track so that advancing the bar reveals more of a + * fixed gradient rather than stretching it. + * When set, the `color` prop is ignored. + */ + palette?: string[] | PaletteColorStop[]; + value: number; + /** + * When set, creates determinate progress with a value/max ratio + */ + max: number; + /** + * The minimum value of the progress bar. Can be negative. + * @default 0 + */ + min?: number; + /** + * Displays custom text or percentage + * Pass `true` to display the percentage value + * Pass a ReactNode for custom text + * @default false + */ + valueText?: boolean | ReactNode; + label?: ReactNode; + /** + * Object of props passed to the wrapping the determinate progress's label + */ + labelProps?: CommonProps & HTMLAttributes; + }; + +export const EuiMeter: FunctionComponent = ({ + className, + color = 'success', + size = 'm', + position = 'static', + value, + min = 0, + max, + valueText = false, + label, + labelProps, + palette, + ...rest +}) => { + const valueTextRef: MutableRefObject = useRef(null); + const labelRef: MutableRefObject = useRef(null); + const [innerValueText, setInnerValueText] = useState(); + const [labelText, setLabelText] = useState(); + + const isNamedColor = !palette && COLORS.includes(color as EuiMeterColor); + + const euiTheme = useEuiTheme(); + const customColorStyles = palette || isNamedColor ? {} : { color }; + const customTextColorStyles = + palette || isNamedColor + ? {} + : { color: makeHighContrastColor(color)(euiTheme.euiTheme) }; + + // Resolves the palette into a CSS gradient string with stops in track-percentage + // space (0 % = min, 100 % = max). For PaletteColorStop[], stops are treated as + // values in the [min, max] domain and mapped to their visual track position. + // Out-of-range stops (below min or above max) anchor the edge color so the + // gradient fills the full track without distortion. + const resolvedGradient = useMemo(() => { + if (!palette) return null; + + if (typeof palette[0] === 'string') { + return getLinearGradient(palette as string[]); + } + + const range = (max as number) - min; + const rawStops = (palette as PaletteColorStop[]).map(({ stop, color }) => ({ + pct: ((stop - min) / range) * 100, + color, + })); + + // First stop always anchors at 0%; last always anchors at 100%. + // Intermediate stops are only included when inside the (0, 100) range. + const parts: string[] = [ + `${rawStops[0].color} 0%`, + ...rawStops + .slice(1, -1) + .filter(({ pct }) => pct > 0 && pct < 100) + .map(({ pct, color }) => `${color} ${pct.toFixed(2)}%`), + `${rawStops[rawStops.length - 1].color} 100%`, + ]; + + return `linear-gradient(to right, ${parts.join(', ')})`; + }, [palette, min, max]); + + const gradientStyles: CSSProperties = palette + ? ({ + '--euiMeterGradient': resolvedGradient, + } as CSSProperties) + : {}; + + const isBiDirectional = min < 0; + + // Bar geometry is always computed when max is defined so that ::before can + // render the fill in both standard (min >= 0) and bi-directional (min < 0) + // modes. In standard mode the zero baseline is at the left edge (0 %); + // in bi-directional mode it sits at abs(min)/(max-min)*100 % from the left. + + const meterCssStyles: CSSProperties = useMemo(() => { + const range = (max as number) - min; + const zeroPercent = isBiDirectional ? (Math.abs(min) / range) * 100 : 0; + const clampedValue = Math.min(Math.max(value, min), max as number); + const valuePercent = ((clampedValue - min) / range) * 100; + const barStart = Math.min(zeroPercent, valuePercent); + const barWidth = Math.abs(zeroPercent - valuePercent); + const borderRadius = euiTheme.euiTheme.size.s; + // In bi-directional mode only the outer cap is rounded; the inner edge + // stays flat so it sits cleanly against the zero-line divider. + // In standard mode both caps are always rounded. + const startRadius = !isBiDirectional || value < 0 ? borderRadius : '0px'; + const endRadius = !isBiDirectional || value >= 0 ? borderRadius : '0px'; + return { + '--euiMeterBarStart': `${barStart}%`, + '--euiMeterBarWidth': `${barWidth}%`, + '--euiMeterBarStartRadius': startRadius, + '--euiMeterBarEndRadius': endRadius, + '--euiMeterGradientOffset': `-${barStart}cqi`, + ...(isBiDirectional && { '--euiMeterZeroLine': `${zeroPercent}%` }), + } as CSSProperties; + }, [min, max, value, isBiDirectional, euiTheme]); + + const styles = euiMeterStyles(euiTheme); + const cssStyles = [ + styles.euiMeter, + styles[size], + styles[position], + styles.fill, + palette + ? styles.gradient + : isNamedColor + ? styles[color as EuiMeterColor] + : null, + ]; + + const dataStyles = euiMeterDataStyles(euiTheme); + const dataCssStyles = [ + dataStyles.euiMeter__data, + size === 'l' && dataStyles[size], + ]; + const labelCssStyles = [euiMeterLabelStyles.euiMeter__label, labelProps?.css]; + const valueTextStyles = euiMeterValueTextStyles(euiTheme); + const valueTextCssStyles = [ + valueTextStyles.euiMeter__valueText, + isNamedColor ? valueTextStyles[color as EuiMeterColor] : null, + ]; + + const classes = classNames('euiMeter', className); + const labelClasses = classNames('euiMeter__label', labelProps?.className); + + let valueRender: ReactNode; + if (valueText === true) { + // valueText is true + valueRender = ( + + ); + } else if (valueText) { + // valueText exists + valueRender = valueText; + } + + useEffect(() => { + setInnerValueText(valueTextRef.current?.textContent ?? ''); + setLabelText(labelRef.current?.textContent ?? ''); + }, [label, valueRender, value]); + + return ( + <> + {label || valueText ? ( +
+ {label && ( +
{ + labelRef.current = node; + }} + {...labelProps} + className={labelClasses} + css={labelCssStyles} + aria-hidden="true" + > + {label} +
+ )} + {valueRender && ( +
{ + valueTextRef.current = node; + }} + style={customTextColorStyles} + css={valueTextCssStyles} + className="euiMeter__valueText" + aria-hidden="true" + > + {valueRender} +
+ )} +
+ ) : undefined} + +
+ + {label && <>{labelText} } + {valueRender || value} + +
+
+
+ + ); +}; From 1b4f89dfbac7bb93f719d62b28fe2659d6845037 Mon Sep 17 00:00:00 2001 From: Lene Gadewoll Date: Thu, 21 May 2026 17:01:45 +0200 Subject: [PATCH 2/2] chore: update i18n tokens --- packages/eui/i18ntokens.json | 1262 +++++++++++++++++----------------- 1 file changed, 640 insertions(+), 622 deletions(-) diff --git a/packages/eui/i18ntokens.json b/packages/eui/i18ntokens.json index 719389b27f21..92e9a5b15be1 100644 --- a/packages/eui/i18ntokens.json +++ b/packages/eui/i18ntokens.json @@ -17,24 +17,6 @@ }, "filepath": "src/components/tree_view/tree_view.tsx" }, - { - "token": "euiIconTip.defaultAriaLabel", - "defString": "Info", - "highlighting": "string", - "loc": { - "start": { - "line": 58, - "column": 27, - "index": 1773 - }, - "end": { - "line": 58, - "column": 76, - "index": 1822 - } - }, - "filepath": "src/components/tool_tip/icon_tip.tsx" - }, { "token": "euiTourStepIndicator.isActive", "defString": "active", @@ -161,6 +143,24 @@ }, "filepath": "src/components/tour/_tour_footer.tsx" }, + { + "token": "euiIconTip.defaultAriaLabel", + "defString": "Info", + "highlighting": "string", + "loc": { + "start": { + "line": 58, + "column": 27, + "index": 1773 + }, + "end": { + "line": 58, + "column": 76, + "index": 1822 + } + }, + "filepath": "src/components/tool_tip/icon_tip.tsx" + }, { "token": "euiToast.newNotification", "defString": "A new notification appears", @@ -611,6 +611,24 @@ }, "filepath": "src/components/skeleton/skeleton_loading.tsx" }, + { + "token": "euiSideNav.mobileToggleAriaLabel", + "defString": "Toggle navigation", + "highlighting": "string", + "loc": { + "start": { + "line": 208, + "column": 16, + "index": 6318 + }, + "end": { + "line": 211, + "column": 17, + "index": 6449 + } + }, + "filepath": "src/components/side_nav/side_nav.tsx" + }, { "token": "euiSearchBox.placeholder", "defString": "Search...", @@ -791,42 +809,6 @@ }, "filepath": "src/components/selectable/selectable.tsx" }, - { - "token": "euiSideNav.mobileToggleAriaLabel", - "defString": "Toggle navigation", - "highlighting": "string", - "loc": { - "start": { - "line": 208, - "column": 16, - "index": 6318 - }, - "end": { - "line": 211, - "column": 17, - "index": 6449 - } - }, - "filepath": "src/components/side_nav/side_nav.tsx" - }, - { - "token": "euiProgress.valueText", - "defString": "{value}%", - "highlighting": "string", - "loc": { - "start": { - "line": 154, - "column": 6, - "index": 4411 - }, - "end": { - "line": 160, - "column": 8, - "index": 4539 - } - }, - "filepath": "src/components/progress/progress.tsx" - }, { "token": "euiResizablePanel.toggleButtonAriaLabel", "defString": "Press to toggle this panel", @@ -882,58 +864,22 @@ "filepath": "src/components/resizable_container/resizable_button.tsx" }, { - "token": "euiPopover.screenReaderAnnouncement", - "defString": "You are in a dialog. Press Escape, or tap/click outside the dialog to close.", - "highlighting": "string", - "loc": { - "start": { - "line": 762, - "column": 16, - "index": 22865 - }, - "end": { - "line": 765, - "column": 18, - "index": 23059 - } - }, - "filepath": "src/components/popover/popover.tsx" - }, - { - "token": "euiPaginationButton.longPageString", - "defString": "Page {page} of {totalPages}", + "token": "euiProgress.valueText", + "defString": "{value}%", "highlighting": "string", "loc": { "start": { - "line": 66, - "column": 4, - "index": 1920 + "line": 180, + "column": 6, + "index": 5396 }, "end": { - "line": 70, - "column": 5, - "index": 2087 - } - }, - "filepath": "src/components/pagination/pagination_button.tsx" - }, - { - "token": "euiPaginationButton.shortPageString", - "defString": "Page {page}", - "highlighting": "string", - "loc": { - "start": { - "line": 72, + "line": 186, "column": 8, - "index": 2133 - }, - "end": { - "line": 76, - "column": 9, - "index": 2277 + "index": 5524 } }, - "filepath": "src/components/pagination/pagination_button.tsx" + "filepath": "src/components/progress/progress.tsx" }, { "token": "euiPaginationButtonArrow.firstPage", @@ -1007,6 +953,42 @@ }, "filepath": "src/components/pagination/pagination_button_arrow.tsx" }, + { + "token": "euiPaginationButton.longPageString", + "defString": "Page {page} of {totalPages}", + "highlighting": "string", + "loc": { + "start": { + "line": 66, + "column": 4, + "index": 1920 + }, + "end": { + "line": 70, + "column": 5, + "index": 2087 + } + }, + "filepath": "src/components/pagination/pagination_button.tsx" + }, + { + "token": "euiPaginationButton.shortPageString", + "defString": "Page {page}", + "highlighting": "string", + "loc": { + "start": { + "line": 72, + "column": 8, + "index": 2133 + }, + "end": { + "line": 76, + "column": 9, + "index": 2277 + } + }, + "filepath": "src/components/pagination/pagination_button.tsx" + }, { "token": "euiPagination.pageOfTotalCompressed", "defString": "{page} of {total}", @@ -1151,6 +1133,42 @@ }, "filepath": "src/components/pagination/pagination.tsx" }, + { + "token": "euiPopover.screenReaderAnnouncement", + "defString": "You are in a dialog. Press Escape, or tap/click outside the dialog to close.", + "highlighting": "string", + "loc": { + "start": { + "line": 762, + "column": 16, + "index": 22865 + }, + "end": { + "line": 765, + "column": 18, + "index": 23059 + } + }, + "filepath": "src/components/popover/popover.tsx" + }, + { + "token": "euiMeter.valueText", + "defString": "{value}%", + "highlighting": "string", + "loc": { + "start": { + "line": 189, + "column": 6, + "index": 6521 + }, + "end": { + "line": 195, + "column": 8, + "index": 6646 + } + }, + "filepath": "src/components/meter/meter.tsx" + }, { "token": "euiMarkdownEditorToolbar.editor", "defString": "Editor", @@ -1421,6 +1439,42 @@ }, "filepath": "src/components/markdown_editor/markdown_editor_footer.tsx" }, + { + "token": "euiMark.highlightStart", + "defString": "highlight start", + "highlighting": "string", + "loc": { + "start": { + "line": 44, + "column": 25, + "index": 1289 + }, + "end": { + "line": 47, + "column": 3, + "index": 1356 + } + }, + "filepath": "src/components/mark/mark.tsx" + }, + { + "token": "euiMark.highlightEnd", + "defString": "highlight end", + "highlighting": "string", + "loc": { + "start": { + "line": 48, + "column": 23, + "index": 1381 + }, + "end": { + "line": 48, + "column": 74, + "index": 1432 + } + }, + "filepath": "src/components/mark/mark.tsx" + }, { "token": "euiModal.screenReaderModalDialog", "defString": "You are in a modal dialog. Press Escape or tap/click outside the dialog on the shadowed overlay to close.", @@ -1458,68 +1512,14 @@ "filepath": "src/components/modal/modal.tsx" }, { - "token": "euiLoadingStrings.ariaLabel", - "defString": "Loading", + "token": "euiExternalLinkIcon.newTarget.screenReaderOnlyText", + "defString": "(external, opens in a new tab or window)", "highlighting": "string", "loc": { "start": { - "line": 12, - "column": 9, - "index": 454 - }, - "end": { - "line": 12, - "column": 61, - "index": 506 - } - }, - "filepath": "src/components/loading/_loading_strings.tsx" - }, - { - "token": "euiMark.highlightStart", - "defString": "highlight start", - "highlighting": "string", - "loc": { - "start": { - "line": 44, - "column": 25, - "index": 1289 - }, - "end": { - "line": 47, - "column": 3, - "index": 1356 - } - }, - "filepath": "src/components/mark/mark.tsx" - }, - { - "token": "euiMark.highlightEnd", - "defString": "highlight end", - "highlighting": "string", - "loc": { - "start": { - "line": 48, - "column": 23, - "index": 1381 - }, - "end": { - "line": 48, - "column": 74, - "index": 1432 - } - }, - "filepath": "src/components/mark/mark.tsx" - }, - { - "token": "euiExternalLinkIcon.newTarget.screenReaderOnlyText", - "defString": "(external, opens in a new tab or window)", - "highlighting": "string", - "loc": { - "start": { - "line": 58, - "column": 12, - "index": 1806 + "line": 58, + "column": 12, + "index": 1806 }, "end": { "line": 61, @@ -1547,6 +1547,24 @@ }, "filepath": "src/components/link/external_link_icon.tsx" }, + { + "token": "euiLoadingStrings.ariaLabel", + "defString": "Loading", + "highlighting": "string", + "loc": { + "start": { + "line": 12, + "column": 9, + "index": 454 + }, + "end": { + "line": 12, + "column": 61, + "index": 506 + } + }, + "filepath": "src/components/loading/_loading_strings.tsx" + }, { "token": "euiInlineEditForm.saveButtonAriaLabel", "defString": "Save edit", @@ -1835,6 +1853,24 @@ }, "filepath": "src/components/error_boundary/error_boundary.tsx" }, + { + "token": "euiContextMenuPanelTitle.ariaLabel", + "defString": "Close current panel:", + "highlighting": "string", + "loc": { + "start": { + "line": 44, + "column": 26, + "index": 1484 + }, + "end": { + "line": 47, + "column": 3, + "index": 1568 + } + }, + "filepath": "src/components/context_menu/context_menu_panel_title.tsx" + }, { "token": "euiDataGrid.ariaLabel", "defString": "{label}; Page {page} of {pageCount}.", @@ -1890,22 +1926,22 @@ "filepath": "src/components/datagrid/data_grid.tsx" }, { - "token": "euiContextMenuPanelTitle.ariaLabel", - "defString": "Close current panel:", + "token": "euiComboBox.listboxAriaLabel", + "defString": "Choose from the following options", "highlighting": "string", "loc": { "start": { - "line": 44, - "column": 26, - "index": 1484 + "line": 842, + "column": 8, + "index": 24681 }, "end": { - "line": 47, - "column": 3, - "index": 1568 + "line": 845, + "column": 9, + "index": 24800 } }, - "filepath": "src/components/context_menu/context_menu_panel_title.tsx" + "filepath": "src/components/combo_box/combo_box.tsx" }, { "token": "euiSaturation.ariaLabel", @@ -2015,24 +2051,6 @@ }, "filepath": "src/components/color_picker/hue.tsx" }, - { - "token": "euiColorPickerSwatch.ariaLabel", - "defString": "Select {color} as the color", - "highlighting": "string", - "loc": { - "start": { - "line": 53, - "column": 22, - "index": 1821 - }, - "end": { - "line": 57, - "column": 5, - "index": 1931 - } - }, - "filepath": "src/components/color_picker/color_picker_swatch.tsx" - }, { "token": "euiColorPicker.popoverLabel", "defString": "Color selection dialog", @@ -2196,22 +2214,22 @@ "filepath": "src/components/color_picker/color_picker.tsx" }, { - "token": "euiComboBox.listboxAriaLabel", - "defString": "Choose from the following options", + "token": "euiColorPickerSwatch.ariaLabel", + "defString": "Select {color} as the color", "highlighting": "string", "loc": { "start": { - "line": 842, - "column": 8, - "index": 24681 + "line": 53, + "column": 22, + "index": 1821 }, "end": { - "line": 845, - "column": 9, - "index": 24800 + "line": 57, + "column": 5, + "index": 1931 } }, - "filepath": "src/components/combo_box/combo_box.tsx" + "filepath": "src/components/color_picker/color_picker_swatch.tsx" }, { "token": "euiCollapsibleNavBeta.ariaLabel", @@ -2645,6 +2663,24 @@ }, "filepath": "src/components/breadcrumbs/breadcrumbs.tsx" }, + { + "token": "euiBreadcrumb.popoverAriaLabel", + "defString": "Clicking this button will toggle a popover dialog.", + "highlighting": "string", + "loc": { + "start": { + "line": 175, + "column": 29, + "index": 4936 + }, + "end": { + "line": 181, + "column": 5, + "index": 5269 + } + }, + "filepath": "src/components/breadcrumbs/_breadcrumb_content.tsx" + }, { "token": "euiBreadcrumb.collapsedBadge.ariaLabel", "defString": "See collapsed breadcrumbs", @@ -2664,22 +2700,22 @@ "filepath": "src/components/breadcrumbs/breadcrumb.tsx" }, { - "token": "euiBreadcrumb.popoverAriaLabel", - "defString": "Clicking this button will toggle a popover dialog.", + "token": "euiTableSortMobile.sorting", + "defString": "Sorting", "highlighting": "string", "loc": { "start": { - "line": 175, - "column": 29, - "index": 4936 + "line": 76, + "column": 8, + "index": 1971 }, "end": { - "line": 181, - "column": 5, - "index": 5269 + "line": 76, + "column": 72, + "index": 2035 } }, - "filepath": "src/components/breadcrumbs/_breadcrumb_content.tsx" + "filepath": "src/components/table/mobile/table_sort_mobile.tsx" }, { "token": "euiTablePagination.allRows", @@ -2753,24 +2789,6 @@ }, "filepath": "src/components/table/table_pagination/table_pagination.tsx" }, - { - "token": "euiTableSortMobile.sorting", - "defString": "Sorting", - "highlighting": "string", - "loc": { - "start": { - "line": 76, - "column": 8, - "index": 1971 - }, - "end": { - "line": 76, - "column": 72, - "index": 2035 - } - }, - "filepath": "src/components/table/mobile/table_sort_mobile.tsx" - }, { "token": "euiFieldValueSelectionFilter.buttonLabelHint", "defString": "Selection", @@ -3293,24 +3311,6 @@ }, "filepath": "src/components/form/field_password/field_password.tsx" }, - { - "token": "euiFlyoutManaged.defaultTitle", - "defString": "Unknown Flyout", - "highlighting": "string", - "loc": { - "start": { - "line": 169, - "column": 25, - "index": 5638 - }, - "end": { - "line": 172, - "column": 5, - "index": 5717 - } - }, - "filepath": "src/components/flyout/manager/flyout_managed.tsx" - }, { "token": "euiHeaderLinks.appNavigation", "defString": "App menu", @@ -3348,52 +3348,106 @@ "filepath": "src/components/header/header_links/header_links.tsx" }, { - "token": "euiDataGridSchema.booleanSortTextAsc", - "defString": "False-True", + "token": "euiFlyoutManaged.defaultTitle", + "defString": "Unknown Flyout", "highlighting": "string", "loc": { "start": { - "line": 56, - "column": 6, - "index": 1386 + "line": 169, + "column": 25, + "index": 5638 }, "end": { - "line": 59, - "column": 8, - "index": 1485 + "line": 172, + "column": 5, + "index": 5717 } }, - "filepath": "src/components/datagrid/utils/data_grid_schema.tsx" + "filepath": "src/components/flyout/manager/flyout_managed.tsx" }, { - "token": "euiDataGridSchema.booleanSortTextDesc", - "defString": "True-False", + "token": "euiDataGridPagination.detailedPaginationLabel", + "defString": "Pagination for preceding grid: {label}", "highlighting": "string", "loc": { "start": { - "line": 62, - "column": 6, - "index": 1519 + "line": 51, + "column": 34, + "index": 1785 }, "end": { - "line": 65, - "column": 8, - "index": 1619 + "line": 55, + "column": 3, + "index": 1930 } }, - "filepath": "src/components/datagrid/utils/data_grid_schema.tsx" + "filepath": "src/components/datagrid/pagination/data_grid_pagination.tsx" }, { - "token": "euiDataGridSchema.currencySortTextAsc", - "defString": "Low-High", + "token": "euiDataGridPagination.paginationLabel", + "defString": "Pagination for preceding grid", "highlighting": "string", "loc": { "start": { - "line": 97, - "column": 6, - "index": 2701 - }, - "end": { + "line": 56, + "column": 26, + "index": 1958 + }, + "end": { + "line": 59, + "column": 3, + "index": 2054 + } + }, + "filepath": "src/components/datagrid/pagination/data_grid_pagination.tsx" + }, + { + "token": "euiDataGridSchema.booleanSortTextAsc", + "defString": "False-True", + "highlighting": "string", + "loc": { + "start": { + "line": 56, + "column": 6, + "index": 1386 + }, + "end": { + "line": 59, + "column": 8, + "index": 1485 + } + }, + "filepath": "src/components/datagrid/utils/data_grid_schema.tsx" + }, + { + "token": "euiDataGridSchema.booleanSortTextDesc", + "defString": "True-False", + "highlighting": "string", + "loc": { + "start": { + "line": 62, + "column": 6, + "index": 1519 + }, + "end": { + "line": 65, + "column": 8, + "index": 1619 + } + }, + "filepath": "src/components/datagrid/utils/data_grid_schema.tsx" + }, + { + "token": "euiDataGridSchema.currencySortTextAsc", + "defString": "Low-High", + "highlighting": "string", + "loc": { + "start": { + "line": 97, + "column": 6, + "index": 2701 + }, + "end": { "line": 100, "column": 8, "index": 2799 @@ -4229,24 +4283,6 @@ }, "filepath": "src/components/datagrid/controls/display_selector.tsx" }, - { - "token": "euiDataGridToolbarControl.badgeAriaLabel", - "defString": "Active: {count}", - "highlighting": "string", - "loc": { - "start": { - "line": 31, - "column": 25, - "index": 1211 - }, - "end": { - "line": 40, - "column": 3, - "index": 1441 - } - }, - "filepath": "src/components/datagrid/controls/data_grid_toolbar_control.tsx" - }, { "token": "euiColumnSortingDraggable.defaultSortAsc", "defString": "A-Z", @@ -4554,40 +4590,22 @@ "filepath": "src/components/datagrid/controls/column_selector.tsx" }, { - "token": "euiDataGridPagination.detailedPaginationLabel", - "defString": "Pagination for preceding grid: {label}", - "highlighting": "string", - "loc": { - "start": { - "line": 51, - "column": 34, - "index": 1785 - }, - "end": { - "line": 55, - "column": 3, - "index": 1930 - } - }, - "filepath": "src/components/datagrid/pagination/data_grid_pagination.tsx" - }, - { - "token": "euiDataGridPagination.paginationLabel", - "defString": "Pagination for preceding grid", + "token": "euiDataGridToolbarControl.badgeAriaLabel", + "defString": "Active: {count}", "highlighting": "string", "loc": { "start": { - "line": 56, - "column": 26, - "index": 1958 + "line": 31, + "column": 25, + "index": 1211 }, "end": { - "line": 59, + "line": 40, "column": 3, - "index": 2054 + "index": 1441 } }, - "filepath": "src/components/datagrid/pagination/data_grid_pagination.tsx" + "filepath": "src/components/datagrid/controls/data_grid_toolbar_control.tsx" }, { "token": "euiRefreshInterval.fullDescriptionOff", @@ -5706,158 +5724,320 @@ "filepath": "src/components/date_picker/super_date_picker/super_update_button.tsx" }, { - "token": "euiPrettyDuration.lastDurationSeconds", - "defString": "({\n duration\n}) => `Last ${duration} second${duration === 1 ? '' : 's'}`;", + "token": "euiPrettyInterval.seconds", + "defString": "({\n interval\n}) => `${interval} second${interval > 1 ? 's' : ''}`;", "highlighting": "code", "loc": { "start": { - "line": 30, + "line": 33, "column": 5, - "index": 1079 + "index": 854 }, "end": { - "line": 34, + "line": 37, "column": 3, - "index": 1233 + "index": 989 } }, - "filepath": "src/components/date_picker/super_date_picker/pretty_duration.tsx" + "filepath": "src/components/date_picker/super_date_picker/pretty_interval.ts" }, { - "token": "euiPrettyDuration.nextDurationSeconds", - "defString": "({\n duration\n}) => `Next ${duration} second${duration === 1 ? '' : 's'}`;", + "token": "euiPrettyInterval.minutes", + "defString": "({\n interval\n}) => `${interval} minute${interval > 1 ? 's' : ''}`;", "highlighting": "code", "loc": { "start": { - "line": 35, - "column": 8, - "index": 1243 + "line": 38, + "column": 5, + "index": 996 }, "end": { - "line": 39, + "line": 42, "column": 3, - "index": 1397 + "index": 1131 } }, - "filepath": "src/components/date_picker/super_date_picker/pretty_duration.tsx" + "filepath": "src/components/date_picker/super_date_picker/pretty_interval.ts" }, { - "token": "euiPrettyDuration.lastDurationMinutes", - "defString": "({\n duration\n}) => `Last ${duration} minute${duration === 1 ? '' : 's'}`;", + "token": "euiPrettyInterval.hours", + "defString": "({\n interval\n}) => `${interval} hour${interval > 1 ? 's' : ''}`;", "highlighting": "code", "loc": { "start": { - "line": 40, + "line": 43, "column": 5, - "index": 1404 + "index": 1138 }, "end": { - "line": 44, + "line": 47, "column": 3, - "index": 1558 + "index": 1269 } }, - "filepath": "src/components/date_picker/super_date_picker/pretty_duration.tsx" + "filepath": "src/components/date_picker/super_date_picker/pretty_interval.ts" }, { - "token": "euiPrettyDuration.nextDurationMinutes", - "defString": "({\n duration\n}) => `Next ${duration} minute${duration === 1 ? '' : 's'}`;", + "token": "euiPrettyInterval.days", + "defString": "({\n interval\n}) => `${interval} day${interval > 1 ? 's' : ''}`;", "highlighting": "code", "loc": { "start": { - "line": 45, - "column": 8, - "index": 1568 + "line": 48, + "column": 5, + "index": 1276 }, "end": { - "line": 49, + "line": 52, "column": 3, - "index": 1722 + "index": 1405 } }, - "filepath": "src/components/date_picker/super_date_picker/pretty_duration.tsx" + "filepath": "src/components/date_picker/super_date_picker/pretty_interval.ts" }, { - "token": "euiPrettyDuration.lastDurationHours", - "defString": "({\n duration\n}) => `Last ${duration} hour${duration === 1 ? '' : 's'}`;", - "highlighting": "code", + "token": "euiPrettyInterval.secondsShorthand", + "defString": "{interval} s", + "highlighting": "string", "loc": { "start": { - "line": 50, - "column": 5, - "index": 1729 + "line": 54, + "column": 7, + "index": 1429 }, "end": { - "line": 54, - "column": 3, - "index": 1879 + "line": 56, + "column": 6, + "index": 1518 } }, - "filepath": "src/components/date_picker/super_date_picker/pretty_duration.tsx" + "filepath": "src/components/date_picker/super_date_picker/pretty_interval.ts" }, { - "token": "euiPrettyDuration.nextDurationHours", - "defString": "({\n duration\n}) => `Next ${duration} hour${duration === 1 ? '' : 's'}`;", - "highlighting": "code", + "token": "euiPrettyInterval.minutesShorthand", + "defString": "{interval} m", + "highlighting": "string", "loc": { "start": { - "line": 55, - "column": 8, - "index": 1889 + "line": 57, + "column": 7, + "index": 1527 }, "end": { "line": 59, - "column": 3, - "index": 2039 + "column": 6, + "index": 1616 } }, - "filepath": "src/components/date_picker/super_date_picker/pretty_duration.tsx" + "filepath": "src/components/date_picker/super_date_picker/pretty_interval.ts" }, { - "token": "euiPrettyDuration.lastDurationDays", - "defString": "({\n duration\n}) => `Last ${duration} day${duration === 1 ? '' : 's'}`;", - "highlighting": "code", + "token": "euiPrettyInterval.hoursShorthand", + "defString": "{interval} h", + "highlighting": "string", "loc": { "start": { "line": 60, - "column": 5, - "index": 2046 + "column": 7, + "index": 1625 }, "end": { - "line": 64, - "column": 3, - "index": 2194 + "line": 62, + "column": 6, + "index": 1712 } }, - "filepath": "src/components/date_picker/super_date_picker/pretty_duration.tsx" + "filepath": "src/components/date_picker/super_date_picker/pretty_interval.ts" }, { - "token": "euiPrettyDuration.nexttDurationDays", - "defString": "({\n duration\n}) => `Next ${duration} day${duration === 1 ? '' : 's'}`;", - "highlighting": "code", + "token": "euiPrettyInterval.daysShorthand", + "defString": "{interval} d", + "highlighting": "string", "loc": { "start": { - "line": 65, - "column": 8, - "index": 2204 + "line": 63, + "column": 7, + "index": 1721 }, "end": { - "line": 69, - "column": 3, - "index": 2353 + "line": 65, + "column": 6, + "index": 1807 } }, - "filepath": "src/components/date_picker/super_date_picker/pretty_duration.tsx" + "filepath": "src/components/date_picker/super_date_picker/pretty_interval.ts" }, { - "token": "euiPrettyDuration.lastDurationWeeks", - "defString": "({\n duration\n}) => `Last ${duration} week${duration === 1 ? '' : 's'}`;", - "highlighting": "code", + "token": "euiPrettyInterval.off", + "defString": "Off", + "highlighting": "string", "loc": { "start": { - "line": 70, - "column": 5, - "index": 2360 + "line": 103, + "column": 14, + "index": 2870 + }, + "end": { + "line": 103, + "column": 56, + "index": 2912 + } + }, + "filepath": "src/components/date_picker/super_date_picker/pretty_interval.ts" + }, + { + "token": "euiPrettyDuration.lastDurationSeconds", + "defString": "({\n duration\n}) => `Last ${duration} second${duration === 1 ? '' : 's'}`;", + "highlighting": "code", + "loc": { + "start": { + "line": 30, + "column": 5, + "index": 1079 + }, + "end": { + "line": 34, + "column": 3, + "index": 1233 + } + }, + "filepath": "src/components/date_picker/super_date_picker/pretty_duration.tsx" + }, + { + "token": "euiPrettyDuration.nextDurationSeconds", + "defString": "({\n duration\n}) => `Next ${duration} second${duration === 1 ? '' : 's'}`;", + "highlighting": "code", + "loc": { + "start": { + "line": 35, + "column": 8, + "index": 1243 + }, + "end": { + "line": 39, + "column": 3, + "index": 1397 + } + }, + "filepath": "src/components/date_picker/super_date_picker/pretty_duration.tsx" + }, + { + "token": "euiPrettyDuration.lastDurationMinutes", + "defString": "({\n duration\n}) => `Last ${duration} minute${duration === 1 ? '' : 's'}`;", + "highlighting": "code", + "loc": { + "start": { + "line": 40, + "column": 5, + "index": 1404 + }, + "end": { + "line": 44, + "column": 3, + "index": 1558 + } + }, + "filepath": "src/components/date_picker/super_date_picker/pretty_duration.tsx" + }, + { + "token": "euiPrettyDuration.nextDurationMinutes", + "defString": "({\n duration\n}) => `Next ${duration} minute${duration === 1 ? '' : 's'}`;", + "highlighting": "code", + "loc": { + "start": { + "line": 45, + "column": 8, + "index": 1568 + }, + "end": { + "line": 49, + "column": 3, + "index": 1722 + } + }, + "filepath": "src/components/date_picker/super_date_picker/pretty_duration.tsx" + }, + { + "token": "euiPrettyDuration.lastDurationHours", + "defString": "({\n duration\n}) => `Last ${duration} hour${duration === 1 ? '' : 's'}`;", + "highlighting": "code", + "loc": { + "start": { + "line": 50, + "column": 5, + "index": 1729 + }, + "end": { + "line": 54, + "column": 3, + "index": 1879 + } + }, + "filepath": "src/components/date_picker/super_date_picker/pretty_duration.tsx" + }, + { + "token": "euiPrettyDuration.nextDurationHours", + "defString": "({\n duration\n}) => `Next ${duration} hour${duration === 1 ? '' : 's'}`;", + "highlighting": "code", + "loc": { + "start": { + "line": 55, + "column": 8, + "index": 1889 + }, + "end": { + "line": 59, + "column": 3, + "index": 2039 + } + }, + "filepath": "src/components/date_picker/super_date_picker/pretty_duration.tsx" + }, + { + "token": "euiPrettyDuration.lastDurationDays", + "defString": "({\n duration\n}) => `Last ${duration} day${duration === 1 ? '' : 's'}`;", + "highlighting": "code", + "loc": { + "start": { + "line": 60, + "column": 5, + "index": 2046 + }, + "end": { + "line": 64, + "column": 3, + "index": 2194 + } + }, + "filepath": "src/components/date_picker/super_date_picker/pretty_duration.tsx" + }, + { + "token": "euiPrettyDuration.nexttDurationDays", + "defString": "({\n duration\n}) => `Next ${duration} day${duration === 1 ? '' : 's'}`;", + "highlighting": "code", + "loc": { + "start": { + "line": 65, + "column": 8, + "index": 2204 + }, + "end": { + "line": 69, + "column": 3, + "index": 2353 + } + }, + "filepath": "src/components/date_picker/super_date_picker/pretty_duration.tsx" + }, + { + "token": "euiPrettyDuration.lastDurationWeeks", + "defString": "({\n duration\n}) => `Last ${duration} week${duration === 1 ? '' : 's'}`;", + "highlighting": "code", + "loc": { + "start": { + "line": 70, + "column": 5, + "index": 2360 }, "end": { "line": 74, @@ -6138,166 +6318,22 @@ "filepath": "src/components/date_picker/super_date_picker/pretty_duration.tsx" }, { - "token": "euiPrettyInterval.seconds", - "defString": "({\n interval\n}) => `${interval} second${interval > 1 ? 's' : ''}`;", - "highlighting": "code", - "loc": { - "start": { - "line": 33, - "column": 5, - "index": 854 - }, - "end": { - "line": 37, - "column": 3, - "index": 989 - } - }, - "filepath": "src/components/date_picker/super_date_picker/pretty_interval.ts" - }, - { - "token": "euiPrettyInterval.minutes", - "defString": "({\n interval\n}) => `${interval} minute${interval > 1 ? 's' : ''}`;", - "highlighting": "code", - "loc": { - "start": { - "line": 38, - "column": 5, - "index": 996 - }, - "end": { - "line": 42, - "column": 3, - "index": 1131 - } - }, - "filepath": "src/components/date_picker/super_date_picker/pretty_interval.ts" - }, - { - "token": "euiPrettyInterval.hours", - "defString": "({\n interval\n}) => `${interval} hour${interval > 1 ? 's' : ''}`;", - "highlighting": "code", - "loc": { - "start": { - "line": 43, - "column": 5, - "index": 1138 - }, - "end": { - "line": 47, - "column": 3, - "index": 1269 - } - }, - "filepath": "src/components/date_picker/super_date_picker/pretty_interval.ts" - }, - { - "token": "euiPrettyInterval.days", - "defString": "({\n interval\n}) => `${interval} day${interval > 1 ? 's' : ''}`;", - "highlighting": "code", - "loc": { - "start": { - "line": 48, - "column": 5, - "index": 1276 - }, - "end": { - "line": 52, - "column": 3, - "index": 1405 - } - }, - "filepath": "src/components/date_picker/super_date_picker/pretty_interval.ts" - }, - { - "token": "euiPrettyInterval.secondsShorthand", - "defString": "{interval} s", - "highlighting": "string", - "loc": { - "start": { - "line": 54, - "column": 7, - "index": 1429 - }, - "end": { - "line": 56, - "column": 6, - "index": 1518 - } - }, - "filepath": "src/components/date_picker/super_date_picker/pretty_interval.ts" - }, - { - "token": "euiPrettyInterval.minutesShorthand", - "defString": "{interval} m", + "token": "euiComboBoxPill.removeSelection", + "defString": "Remove {children} from selection in this group", "highlighting": "string", "loc": { "start": { - "line": 57, - "column": 7, - "index": 1527 - }, - "end": { - "line": 59, + "line": 67, "column": 6, - "index": 1616 - } - }, - "filepath": "src/components/date_picker/super_date_picker/pretty_interval.ts" - }, - { - "token": "euiPrettyInterval.hoursShorthand", - "defString": "{interval} h", - "highlighting": "string", - "loc": { - "start": { - "line": 60, - "column": 7, - "index": 1625 + "index": 2037 }, "end": { - "line": 62, - "column": 6, - "index": 1712 - } - }, - "filepath": "src/components/date_picker/super_date_picker/pretty_interval.ts" - }, - { - "token": "euiPrettyInterval.daysShorthand", - "defString": "{interval} d", - "highlighting": "string", - "loc": { - "start": { - "line": 63, + "line": 71, "column": 7, - "index": 1721 - }, - "end": { - "line": 65, - "column": 6, - "index": 1807 - } - }, - "filepath": "src/components/date_picker/super_date_picker/pretty_interval.ts" - }, - { - "token": "euiPrettyInterval.off", - "defString": "Off", - "highlighting": "string", - "loc": { - "start": { - "line": 103, - "column": 14, - "index": 2870 - }, - "end": { - "line": 103, - "column": 56, - "index": 2912 + "index": 2196 } }, - "filepath": "src/components/date_picker/super_date_picker/pretty_interval.ts" + "filepath": "src/components/combo_box/combo_box_input/combo_box_pill.tsx" }, { "token": "euiComboBoxOptionsList.loadingOptions", @@ -6425,78 +6461,6 @@ }, "filepath": "src/components/combo_box/combo_box_options_list/combo_box_options_list.tsx" }, - { - "token": "euiComboBoxPill.removeSelection", - "defString": "Remove {children} from selection in this group", - "highlighting": "string", - "loc": { - "start": { - "line": 67, - "column": 6, - "index": 2037 - }, - "end": { - "line": 71, - "column": 7, - "index": 2196 - } - }, - "filepath": "src/components/combo_box/combo_box_input/combo_box_pill.tsx" - }, - { - "token": "euiCollapsibleNavKibanaSolution.switcherTitle", - "defString": "Solution view", - "highlighting": "string", - "loc": { - "start": { - "line": 73, - "column": 40, - "index": 2535 - }, - "end": { - "line": 76, - "column": 3, - "index": 2623 - } - }, - "filepath": "src/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.tsx" - }, - { - "token": "euiCollapsibleNavKibanaSolution.switcherAriaLabel", - "defString": " - click to switch to another solution", - "highlighting": "string", - "loc": { - "start": { - "line": 77, - "column": 44, - "index": 2669 - }, - "end": { - "line": 80, - "column": 3, - "index": 2786 - } - }, - "filepath": "src/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.tsx" - }, - { - "token": "euiCollapsibleNavKibanaSolution.groupLabel", - "defString": "Navigate to solution", - "highlighting": "string", - "loc": { - "start": { - "line": 81, - "column": 37, - "index": 2825 - }, - "end": { - "line": 84, - "column": 3, - "index": 2917 - } - }, - "filepath": "src/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.tsx" - }, { "token": "euiCollapsibleNavButton.ariaLabelExpand", "defString": "Expand navigation", @@ -6569,6 +6533,60 @@ }, "filepath": "src/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.tsx" }, + { + "token": "euiCollapsibleNavKibanaSolution.switcherTitle", + "defString": "Solution view", + "highlighting": "string", + "loc": { + "start": { + "line": 73, + "column": 40, + "index": 2535 + }, + "end": { + "line": 76, + "column": 3, + "index": 2623 + } + }, + "filepath": "src/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.tsx" + }, + { + "token": "euiCollapsibleNavKibanaSolution.switcherAriaLabel", + "defString": " - click to switch to another solution", + "highlighting": "string", + "loc": { + "start": { + "line": 77, + "column": 44, + "index": 2669 + }, + "end": { + "line": 80, + "column": 3, + "index": 2786 + } + }, + "filepath": "src/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.tsx" + }, + { + "token": "euiCollapsibleNavKibanaSolution.groupLabel", + "defString": "Navigate to solution", + "highlighting": "string", + "loc": { + "start": { + "line": 81, + "column": 37, + "index": 2825 + }, + "end": { + "line": 84, + "column": 3, + "index": 2917 + } + }, + "filepath": "src/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.tsx" + }, { "token": "euiCardSelect.selected", "defString": "Selected", @@ -6695,6 +6713,24 @@ }, "filepath": "src/components/datagrid/body/cell/focus_utils.tsx" }, + { + "token": "euiDataGridCellActions.expandButtonTitle", + "defString": "Click or hit enter to interact with cell content", + "highlighting": "string", + "loc": { + "start": { + "line": 49, + "column": 6, + "index": 1668 + }, + "end": { + "line": 53, + "column": 7, + "index": 1831 + } + }, + "filepath": "src/components/datagrid/body/cell/data_grid_cell_actions.tsx" + }, { "token": "euiDataGridCell.position", "defString": "{columnName}, column {columnIndex}, row {rowIndex}", @@ -6731,24 +6767,6 @@ }, "filepath": "src/components/datagrid/body/cell/data_grid_cell.tsx" }, - { - "token": "euiDataGridCellActions.expandButtonTitle", - "defString": "Click or hit enter to interact with cell content", - "highlighting": "string", - "loc": { - "start": { - "line": 49, - "column": 6, - "index": 1668 - }, - "end": { - "line": 53, - "column": 7, - "index": 1831 - } - }, - "filepath": "src/components/datagrid/body/cell/data_grid_cell_actions.tsx" - }, { "token": "euiDataGridHeaderCell.sortedByAscendingSingle", "defString": "Sorted ascending",