diff --git a/components/src/preact/components/color-scale-selector-dropdown.tsx b/components/src/preact/components/color-scale-selector-dropdown.tsx index 0d1461aa..63eae4d6 100644 --- a/components/src/preact/components/color-scale-selector-dropdown.tsx +++ b/components/src/preact/components/color-scale-selector-dropdown.tsx @@ -10,8 +10,10 @@ export const ColorScaleSelectorDropdown: FunctionComponent { return ( - - - +
+ + + +
); }; diff --git a/components/src/preact/components/dropdown.tsx b/components/src/preact/components/dropdown.tsx index 61facee3..4ce5f7cc 100644 --- a/components/src/preact/components/dropdown.tsx +++ b/components/src/preact/components/dropdown.tsx @@ -28,13 +28,13 @@ export const Dropdown: FunctionComponent = ({ children, buttonTit }; return ( -
-
{children}
-
+ ); }; diff --git a/components/src/preact/components/mutation-type-selector.stories.tsx b/components/src/preact/components/mutation-type-selector.stories.tsx new file mode 100644 index 00000000..4c9cf447 --- /dev/null +++ b/components/src/preact/components/mutation-type-selector.stories.tsx @@ -0,0 +1,115 @@ +import { type Meta, type StoryObj } from '@storybook/preact'; +import { expect, within } from '@storybook/test'; +import { type FunctionComponent } from 'preact'; +import { useState } from 'preact/hooks'; + +import { + type DisplayedMutationType, + MutationTypeSelector, + type MutationTypeSelectorProps, +} from './mutation-type-selector'; + +const meta: Meta = { + title: 'Component/Mutation type selector', + component: MutationTypeSelector, + parameters: { fetchMock: {} }, +}; + +export default meta; + +const WrapperWithState: FunctionComponent<{ + displayedMutationTypes: DisplayedMutationType[]; +}> = ({ displayedMutationTypes: initialMutationTypes }) => { + const [displayedMutationTypes, setDisplayedMutationTypes] = useState(initialMutationTypes); + + return ( + { + setDisplayedMutationTypes(mutationTypes); + }} + /> + ); +}; + +const MutationTypeSelectorStory: StoryObj = { + render: (args) => { + return ; + }, +}; + +export const AllMutationTypesSelected: StoryObj = { + ...MutationTypeSelectorStory, + args: { + displayedMutationTypes: [ + { + label: 'Substitution', + type: 'substitution', + checked: true, + }, + { + label: 'Deletion', + type: 'deletion', + checked: true, + }, + ], + }, + play: async ({ canvasElement, step }) => { + const canvas = within(canvasElement); + + await step('Show short form of types as label', async () => { + await expect(canvas.getByText('Subst., Del.')).toBeInTheDocument(); + }); + }, +}; + +export const NoMutationTypesSelected: StoryObj = { + ...MutationTypeSelectorStory, + args: { + displayedMutationTypes: [ + { + label: 'Substitution', + type: 'substitution', + checked: false, + }, + { + label: 'Deletion', + type: 'deletion', + checked: false, + }, + ], + }, + play: async ({ canvasElement, step }) => { + const canvas = within(canvasElement); + + await step("Show 'No types' as label", async () => { + await expect(canvas.getByText('No types')).toBeInTheDocument(); + }); + }, +}; + +export const OneTypesSelected: StoryObj = { + ...MutationTypeSelectorStory, + args: { + displayedMutationTypes: [ + { + label: 'Substitution', + type: 'substitution', + checked: true, + }, + { + label: 'Deletion', + type: 'deletion', + checked: false, + }, + ], + }, + play: async ({ canvasElement, step }) => { + const canvas = within(canvasElement); + + await step('Show the selected type as label', async () => { + const substitutionElements = await canvas.getAllByText('Substitution'); + await expect(substitutionElements.length).toBe(2); + }); + }, +}; diff --git a/components/src/preact/components/mutation-type-selector.tsx b/components/src/preact/components/mutation-type-selector.tsx index 784391ae..1c9b1423 100644 --- a/components/src/preact/components/mutation-type-selector.tsx +++ b/components/src/preact/components/mutation-type-selector.tsx @@ -16,14 +16,39 @@ export const MutationTypeSelector: FunctionComponent displayedMutationTypes, setDisplayedMutationTypes, }) => { - const checkedLabels = displayedMutationTypes.filter((type) => type.checked).map((type) => type.label); - const mutationTypesSelectorLabel = `Types: ${checkedLabels.length > 0 ? checkedLabels.join(', ') : 'None'}`; - return ( - setDisplayedMutationTypes(items)} - /> +
+ setDisplayedMutationTypes(items)} + /> +
); }; + +const getMutationTypesSelectorLabel = (displayedMutationTypes: DisplayedMutationType[]) => { + const checkedLabels = displayedMutationTypes.filter((displayedMutationType) => displayedMutationType.checked); + + if (checkedLabels.length === 0) { + return `No types`; + } + if (displayedMutationTypes.length === checkedLabels.length) { + return displayedMutationTypes + .map((type) => { + switch (type.type) { + case 'substitution': + return 'Subst.'; + case 'deletion': + return 'Del.'; + } + }) + .join(', '); + } + + return checkedLabels + .map((type) => { + return type.label; + }) + .join(', '); +}; diff --git a/components/src/preact/components/proportion-selector-dropdown.tsx b/components/src/preact/components/proportion-selector-dropdown.tsx index 07fb335b..47888d36 100644 --- a/components/src/preact/components/proportion-selector-dropdown.tsx +++ b/components/src/preact/components/proportion-selector-dropdown.tsx @@ -13,12 +13,14 @@ export const ProportionSelectorDropdown: FunctionComponent - - +
+ + + +
); }; diff --git a/components/src/preact/components/segment-selector.stories.tsx b/components/src/preact/components/segment-selector.stories.tsx new file mode 100644 index 00000000..449ed07b --- /dev/null +++ b/components/src/preact/components/segment-selector.stories.tsx @@ -0,0 +1,151 @@ +import { type Meta, type StoryObj } from '@storybook/preact'; +import { expect, within } from '@storybook/test'; +import { type FunctionComponent } from 'preact'; +import { useState } from 'preact/hooks'; + +import { type DisplayedSegment, SegmentSelector, type SegmentSelectorProps } from './segment-selector'; + +const meta: Meta = { + title: 'Component/Segment selector', + component: SegmentSelector, + parameters: { fetchMock: {} }, +}; + +export default meta; + +const WrapperWithState: FunctionComponent<{ + displayedSegments: DisplayedSegment[]; +}> = ({ displayedSegments: initialDisplayedSegments }) => { + const [displayedSegments, setDisplayedSegments] = useState(initialDisplayedSegments); + + return ( + { + setDisplayedSegments(items); + }} + /> + ); +}; + +export const AllSegmentsSelected: StoryObj = { + render: (args) => { + return ; + }, + args: { + displayedSegments: [ + { + segment: 'ORF1a', + label: 'ORF1a', + checked: true, + }, + { + segment: 'S', + label: 'S', + checked: true, + }, + { + segment: 'VeryLongSegmentName', + label: 'VeryLongSegmentName', + checked: true, + }, + ], + }, + play: async ({ canvasElement, step }) => { + const canvas = within(canvasElement); + + await step("Show 'All segments' as label", async () => { + await expect(canvas.getByText('All segments')).toBeInTheDocument(); + }); + }, +}; + +export const NoSegmentsSelected: StoryObj = { + ...AllSegmentsSelected, + args: { + displayedSegments: [ + { + segment: 'ORF1a', + label: 'ORF1a', + checked: false, + }, + { + segment: 'S', + label: 'S', + checked: false, + }, + { + segment: 'VeryLongSegmentName', + label: 'VeryLongSegmentName', + checked: false, + }, + ], + }, + play: async ({ canvasElement, step }) => { + const canvas = within(canvasElement); + + await step("Show 'No segments' as label", async () => { + await expect(canvas.getByText('No segments')).toBeInTheDocument(); + }); + }, +}; + +export const LongSegmentsSelected: StoryObj = { + ...AllSegmentsSelected, + args: { + displayedSegments: [ + { + segment: 'ORF1a', + label: 'ORF1a', + checked: true, + }, + { + segment: 'S', + label: 'S', + checked: false, + }, + { + segment: 'VeryLongSegmentName', + label: 'VeryLongSegmentName', + checked: true, + }, + ], + }, + play: async ({ canvasElement, step }) => { + const canvas = within(canvasElement); + + await step('Show number of active segments as label', async () => { + await expect(canvas.getByText('2 segments')).toBeInTheDocument(); + }); + }, +}; + +export const ShortSegmentsSelected: StoryObj = { + ...AllSegmentsSelected, + args: { + displayedSegments: [ + { + segment: 'ORF1a', + label: 'ORF1a', + checked: true, + }, + { + segment: 'S', + label: 'S', + checked: true, + }, + { + segment: 'VeryLongSegmentName', + label: 'VeryLongSegmentName', + checked: false, + }, + ], + }, + play: async ({ canvasElement, step }) => { + const canvas = within(canvasElement); + + await step('Show active segments as label', async () => { + await expect(canvas.getByText('ORF1a, S')).toBeInTheDocument(); + }); + }, +}; diff --git a/components/src/preact/components/SegmentSelector.tsx b/components/src/preact/components/segment-selector.tsx similarity index 68% rename from components/src/preact/components/SegmentSelector.tsx rename to components/src/preact/components/segment-selector.tsx index aebca2a9..9c91b73e 100644 --- a/components/src/preact/components/SegmentSelector.tsx +++ b/components/src/preact/components/segment-selector.tsx @@ -13,39 +13,48 @@ export type DisplayedSegment = CheckboxItem & { export type SegmentSelectorProps = { displayedSegments: DisplayedSegment[]; setDisplayedSegments: (items: DisplayedSegment[]) => void; - prefix?: string; }; -const getSegmentSelectorLabel = (displayedSegments: DisplayedSegment[], prefix: string) => { +export const SegmentSelector: FunctionComponent = ({ + displayedSegments, + setDisplayedSegments, +}) => { + if (displayedSegments.length <= 1) { + return null; + } + + return ( +
+ setDisplayedSegments(items)} + /> +
+ ); +}; + +const getSegmentSelectorLabel = (displayedSegments: DisplayedSegment[]) => { const allSelectedSelected = displayedSegments .filter((segment) => segment.checked) .map((segment) => segment.segment); if (allSelectedSelected.length === 0) { - return `${prefix}none`; + return `No segments`; } if (displayedSegments.length === allSelectedSelected.length) { - return `${prefix}all`; + return `All segments`; } - return prefix + allSelectedSelected.join(', '); -}; -export const SegmentSelector: FunctionComponent = ({ - displayedSegments, - setDisplayedSegments, - prefix, -}) => { - if (displayedSegments.length <= 1) { - return null; + const longestDisplayString = `All segments`; + + const allSelectedSelectedString = allSelectedSelected.join(', '); + + if (longestDisplayString.length >= allSelectedSelectedString.length) { + return allSelectedSelectedString; } - return ( - setDisplayedSegments(items)} - /> - ); + return `${allSelectedSelected.length} ${allSelectedSelected.length === 1 ? 'segment' : 'segments'}`; }; export function useDisplayedSegments(sequenceType: SequenceType) { diff --git a/components/src/preact/mutationComparison/mutation-comparison.stories.tsx b/components/src/preact/mutationComparison/mutation-comparison.stories.tsx index 3c8807a7..1795595d 100644 --- a/components/src/preact/mutationComparison/mutation-comparison.stories.tsx +++ b/components/src/preact/mutationComparison/mutation-comparison.stories.tsx @@ -128,7 +128,7 @@ export const FilterForOnlyDeletions: StoryObj = { await waitFor(() => expect(someSubstitution()).toBeVisible()); await waitFor(() => expect(someDeletion()).toBeVisible()); - canvas.getByRole('button', { name: /Types:/ }).click(); + canvas.getByRole('button', { name: 'Subst., Del.' }).click(); canvas.getByLabelText('Substitutions').click(); await waitFor(() => expect(someSubstitution()).not.toBeInTheDocument()); diff --git a/components/src/preact/mutationComparison/mutation-comparison.tsx b/components/src/preact/mutationComparison/mutation-comparison.tsx index 4240daf7..892cb58b 100644 --- a/components/src/preact/mutationComparison/mutation-comparison.tsx +++ b/components/src/preact/mutationComparison/mutation-comparison.tsx @@ -7,7 +7,6 @@ import { MutationComparisonVenn } from './mutation-comparison-venn'; import { filterMutationData, type MutationData, queryMutationData } from './queryMutationData'; import { type NamedLapisFilter, type SequenceType } from '../../types'; import { LapisUrlContext } from '../LapisUrlContext'; -import { type DisplayedSegment, SegmentSelector, useDisplayedSegments } from '../components/SegmentSelector'; import { CsvDownloadButton } from '../components/csv-download-button'; import { ErrorBoundary } from '../components/error-boundary'; import { ErrorDisplay } from '../components/error-display'; @@ -19,6 +18,7 @@ import { NoDataDisplay } from '../components/no-data-display'; import { type ProportionInterval } from '../components/proportion-selector'; import { ProportionSelectorDropdown } from '../components/proportion-selector-dropdown'; import { ResizeContainer } from '../components/resize-container'; +import { type DisplayedSegment, SegmentSelector, useDisplayedSegments } from '../components/segment-selector'; import Tabs from '../components/tabs'; import { useQuery } from '../useQuery'; diff --git a/components/src/preact/mutationComparison/queryMutationData.ts b/components/src/preact/mutationComparison/queryMutationData.ts index e02155cc..72a97ff5 100644 --- a/components/src/preact/mutationComparison/queryMutationData.ts +++ b/components/src/preact/mutationComparison/queryMutationData.ts @@ -1,7 +1,7 @@ import { querySubstitutionsOrDeletions } from '../../query/querySubstitutionsOrDeletions'; import { type NamedLapisFilter, type SubstitutionOrDeletionEntry } from '../../types'; -import { type DisplayedSegment } from '../components/SegmentSelector'; import { type DisplayedMutationType } from '../components/mutation-type-selector'; +import { type DisplayedSegment } from '../components/segment-selector'; export type MutationData = { displayName: string; diff --git a/components/src/preact/mutations/mutations.tsx b/components/src/preact/mutations/mutations.tsx index 4748e893..bc134c77 100644 --- a/components/src/preact/mutations/mutations.tsx +++ b/components/src/preact/mutations/mutations.tsx @@ -14,7 +14,6 @@ import { type SubstitutionOrDeletionEntry, } from '../../types'; import { LapisUrlContext } from '../LapisUrlContext'; -import { type DisplayedSegment, SegmentSelector, useDisplayedSegments } from '../components/SegmentSelector'; import { CsvDownloadButton } from '../components/csv-download-button'; import { ErrorBoundary } from '../components/error-boundary'; import { ErrorDisplay } from '../components/error-display'; @@ -26,6 +25,7 @@ import { NoDataDisplay } from '../components/no-data-display'; import type { ProportionInterval } from '../components/proportion-selector'; import { ProportionSelectorDropdown } from '../components/proportion-selector-dropdown'; import { ResizeContainer } from '../components/resize-container'; +import { type DisplayedSegment, SegmentSelector, useDisplayedSegments } from '../components/segment-selector'; import Tabs from '../components/tabs'; import { useQuery } from '../useQuery'; diff --git a/components/src/preact/mutations/queryMutations.ts b/components/src/preact/mutations/queryMutations.ts index 955bb4b7..032948e8 100644 --- a/components/src/preact/mutations/queryMutations.ts +++ b/components/src/preact/mutations/queryMutations.ts @@ -6,8 +6,8 @@ import { type MutationEntry, type SubstitutionOrDeletionEntry, } from '../../types'; -import { type DisplayedSegment } from '../components/SegmentSelector'; import { type DisplayedMutationType } from '../components/mutation-type-selector'; +import { type DisplayedSegment } from '../components/segment-selector'; export async function queryMutationsData( lapisFilter: LapisFilter, diff --git a/components/src/preact/mutationsOverTime/getFilteredMutationsOverTimeData.ts b/components/src/preact/mutationsOverTime/getFilteredMutationsOverTimeData.ts index 42fdea27..45336a00 100644 --- a/components/src/preact/mutationsOverTime/getFilteredMutationsOverTimeData.ts +++ b/components/src/preact/mutationsOverTime/getFilteredMutationsOverTimeData.ts @@ -1,8 +1,8 @@ import { type Dataset } from '../../operator/Dataset'; import { type MutationOverTimeDataGroupedByMutation } from '../../query/queryMutationsOverTime'; import { type DeletionEntry, type SubstitutionEntry } from '../../types'; -import type { DisplayedSegment } from '../components/SegmentSelector'; import type { DisplayedMutationType } from '../components/mutation-type-selector'; +import type { DisplayedSegment } from '../components/segment-selector'; export function getFilteredMutationOverTimeData( data: MutationOverTimeDataGroupedByMutation, diff --git a/components/src/preact/mutationsOverTime/mutations-over-time.tsx b/components/src/preact/mutationsOverTime/mutations-over-time.tsx index 3e321d77..fecdf4b3 100644 --- a/components/src/preact/mutationsOverTime/mutations-over-time.tsx +++ b/components/src/preact/mutationsOverTime/mutations-over-time.tsx @@ -18,7 +18,6 @@ import { } from '../../types'; import { compareTemporal } from '../../utils/temporal'; import { LapisUrlContext } from '../LapisUrlContext'; -import { type DisplayedSegment, SegmentSelector, useDisplayedSegments } from '../components/SegmentSelector'; import { type ColorScale } from '../components/color-scale-selector'; import { ColorScaleSelectorDropdown } from '../components/color-scale-selector-dropdown'; import { CsvDownloadButton } from '../components/csv-download-button'; @@ -32,6 +31,7 @@ import { NoDataDisplay } from '../components/no-data-display'; import type { ProportionInterval } from '../components/proportion-selector'; import { ProportionSelectorDropdown } from '../components/proportion-selector-dropdown'; import { ResizeContainer } from '../components/resize-container'; +import { type DisplayedSegment, SegmentSelector, useDisplayedSegments } from '../components/segment-selector'; import Tabs from '../components/tabs'; import { sortSubstitutionsAndDeletions } from '../shared/sort/sortSubstitutionsAndDeletions'; import { useQuery } from '../useQuery'; diff --git a/components/tests/snapshots.spec.ts-snapshots/Mutation-comparison-Story-visualization-mutation-comparison--default-should-match-screenshot-1-chromium-linux.png b/components/tests/snapshots.spec.ts-snapshots/Mutation-comparison-Story-visualization-mutation-comparison--default-should-match-screenshot-1-chromium-linux.png index 91d75bc4..c77fc19d 100644 Binary files a/components/tests/snapshots.spec.ts-snapshots/Mutation-comparison-Story-visualization-mutation-comparison--default-should-match-screenshot-1-chromium-linux.png and b/components/tests/snapshots.spec.ts-snapshots/Mutation-comparison-Story-visualization-mutation-comparison--default-should-match-screenshot-1-chromium-linux.png differ diff --git a/components/tests/snapshots.spec.ts-snapshots/Mutation-comparison-Story-visualization-mutation-comparison--default-should-match-screenshot-1-firefox-linux.png b/components/tests/snapshots.spec.ts-snapshots/Mutation-comparison-Story-visualization-mutation-comparison--default-should-match-screenshot-1-firefox-linux.png index 4e17f240..673cebfb 100644 Binary files a/components/tests/snapshots.spec.ts-snapshots/Mutation-comparison-Story-visualization-mutation-comparison--default-should-match-screenshot-1-firefox-linux.png and b/components/tests/snapshots.spec.ts-snapshots/Mutation-comparison-Story-visualization-mutation-comparison--default-should-match-screenshot-1-firefox-linux.png differ diff --git a/components/tests/snapshots.spec.ts-snapshots/Mutation-comparison-Story-visualization-mutation-comparison--venn-diagram-should-match-screenshot-1-chromium-linux.png b/components/tests/snapshots.spec.ts-snapshots/Mutation-comparison-Story-visualization-mutation-comparison--venn-diagram-should-match-screenshot-1-chromium-linux.png index f25cb353..1a48b197 100644 Binary files a/components/tests/snapshots.spec.ts-snapshots/Mutation-comparison-Story-visualization-mutation-comparison--venn-diagram-should-match-screenshot-1-chromium-linux.png and b/components/tests/snapshots.spec.ts-snapshots/Mutation-comparison-Story-visualization-mutation-comparison--venn-diagram-should-match-screenshot-1-chromium-linux.png differ diff --git a/components/tests/snapshots.spec.ts-snapshots/Mutation-comparison-Story-visualization-mutation-comparison--venn-diagram-should-match-screenshot-1-firefox-linux.png b/components/tests/snapshots.spec.ts-snapshots/Mutation-comparison-Story-visualization-mutation-comparison--venn-diagram-should-match-screenshot-1-firefox-linux.png index 6abeec8d..90321f9e 100644 Binary files a/components/tests/snapshots.spec.ts-snapshots/Mutation-comparison-Story-visualization-mutation-comparison--venn-diagram-should-match-screenshot-1-firefox-linux.png and b/components/tests/snapshots.spec.ts-snapshots/Mutation-comparison-Story-visualization-mutation-comparison--venn-diagram-should-match-screenshot-1-firefox-linux.png differ diff --git a/components/tests/snapshots.spec.ts-snapshots/Mutations-Story-visualization-mutations--default-should-match-screenshot-1-chromium-linux.png b/components/tests/snapshots.spec.ts-snapshots/Mutations-Story-visualization-mutations--default-should-match-screenshot-1-chromium-linux.png index ed5fd113..6bfcc27f 100644 Binary files a/components/tests/snapshots.spec.ts-snapshots/Mutations-Story-visualization-mutations--default-should-match-screenshot-1-chromium-linux.png and b/components/tests/snapshots.spec.ts-snapshots/Mutations-Story-visualization-mutations--default-should-match-screenshot-1-chromium-linux.png differ diff --git a/components/tests/snapshots.spec.ts-snapshots/Mutations-Story-visualization-mutations--default-should-match-screenshot-1-firefox-linux.png b/components/tests/snapshots.spec.ts-snapshots/Mutations-Story-visualization-mutations--default-should-match-screenshot-1-firefox-linux.png index a1334bb7..1cc90de0 100644 Binary files a/components/tests/snapshots.spec.ts-snapshots/Mutations-Story-visualization-mutations--default-should-match-screenshot-1-firefox-linux.png and b/components/tests/snapshots.spec.ts-snapshots/Mutations-Story-visualization-mutations--default-should-match-screenshot-1-firefox-linux.png differ diff --git a/components/tests/snapshots.spec.ts-snapshots/Mutations-Story-visualization-mutations--on-table-tab-should-match-screenshot-1-chromium-linux.png b/components/tests/snapshots.spec.ts-snapshots/Mutations-Story-visualization-mutations--on-table-tab-should-match-screenshot-1-chromium-linux.png index 7ae455cf..a928ba9e 100644 Binary files a/components/tests/snapshots.spec.ts-snapshots/Mutations-Story-visualization-mutations--on-table-tab-should-match-screenshot-1-chromium-linux.png and b/components/tests/snapshots.spec.ts-snapshots/Mutations-Story-visualization-mutations--on-table-tab-should-match-screenshot-1-chromium-linux.png differ diff --git a/components/tests/snapshots.spec.ts-snapshots/Mutations-Story-visualization-mutations--on-table-tab-should-match-screenshot-1-firefox-linux.png b/components/tests/snapshots.spec.ts-snapshots/Mutations-Story-visualization-mutations--on-table-tab-should-match-screenshot-1-firefox-linux.png index 8ce86cfc..1f56e879 100644 Binary files a/components/tests/snapshots.spec.ts-snapshots/Mutations-Story-visualization-mutations--on-table-tab-should-match-screenshot-1-firefox-linux.png and b/components/tests/snapshots.spec.ts-snapshots/Mutations-Story-visualization-mutations--on-table-tab-should-match-screenshot-1-firefox-linux.png differ diff --git a/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutati-90d43-acid-mutations-by-day-should-match-screenshot-1-chromium-linux.png b/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutati-90d43-acid-mutations-by-day-should-match-screenshot-1-chromium-linux.png index 5a29ae01..0c02fd28 100644 Binary files a/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutati-90d43-acid-mutations-by-day-should-match-screenshot-1-chromium-linux.png and b/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutati-90d43-acid-mutations-by-day-should-match-screenshot-1-chromium-linux.png differ diff --git a/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutati-90d43-acid-mutations-by-day-should-match-screenshot-1-firefox-linux.png b/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutati-90d43-acid-mutations-by-day-should-match-screenshot-1-firefox-linux.png index 0ed7cef9..5e5e246b 100644 Binary files a/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutati-90d43-acid-mutations-by-day-should-match-screenshot-1-firefox-linux.png and b/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutati-90d43-acid-mutations-by-day-should-match-screenshot-1-firefox-linux.png differ diff --git a/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutati-ddeb1-rtion-on-small-screen-should-match-screenshot-1-chromium-linux.png b/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutati-ddeb1-rtion-on-small-screen-should-match-screenshot-1-chromium-linux.png index 283e36cb..6043b5eb 100644 Binary files a/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutati-ddeb1-rtion-on-small-screen-should-match-screenshot-1-chromium-linux.png and b/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutati-ddeb1-rtion-on-small-screen-should-match-screenshot-1-chromium-linux.png differ diff --git a/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutati-ddeb1-rtion-on-small-screen-should-match-screenshot-1-firefox-linux.png b/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutati-ddeb1-rtion-on-small-screen-should-match-screenshot-1-firefox-linux.png index 2c6d3f56..e267f189 100644 Binary files a/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutati-ddeb1-rtion-on-small-screen-should-match-screenshot-1-firefox-linux.png and b/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutati-ddeb1-rtion-on-small-screen-should-match-screenshot-1-firefox-linux.png differ diff --git a/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutations-over-time--by-month-should-match-screenshot-1-chromium-linux.png b/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutations-over-time--by-month-should-match-screenshot-1-chromium-linux.png index b59fdfad..f2435e8f 100644 Binary files a/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutations-over-time--by-month-should-match-screenshot-1-chromium-linux.png and b/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutations-over-time--by-month-should-match-screenshot-1-chromium-linux.png differ diff --git a/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutations-over-time--by-month-should-match-screenshot-1-firefox-linux.png b/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutations-over-time--by-month-should-match-screenshot-1-firefox-linux.png index 37ce75ec..fa82a2a0 100644 Binary files a/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutations-over-time--by-month-should-match-screenshot-1-firefox-linux.png and b/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutations-over-time--by-month-should-match-screenshot-1-firefox-linux.png differ diff --git a/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutations-over-time--by-week-should-match-screenshot-1-chromium-linux.png b/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutations-over-time--by-week-should-match-screenshot-1-chromium-linux.png index c1b9643f..82f8b08f 100644 Binary files a/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutations-over-time--by-week-should-match-screenshot-1-chromium-linux.png and b/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutations-over-time--by-week-should-match-screenshot-1-chromium-linux.png differ diff --git a/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutations-over-time--by-week-should-match-screenshot-1-firefox-linux.png b/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutations-over-time--by-week-should-match-screenshot-1-firefox-linux.png index 7e6d90f2..be5f5d2b 100644 Binary files a/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutations-over-time--by-week-should-match-screenshot-1-firefox-linux.png and b/components/tests/snapshots.spec.ts-snapshots/Mutations-over-time-Story-visualization-mutations-over-time--by-week-should-match-screenshot-1-firefox-linux.png differ