From c22912505586a625699194ba709c3ffd9e9df049 Mon Sep 17 00:00:00 2001 From: Sudheer Salavadi Date: Tue, 7 Jan 2025 04:34:20 -0500 Subject: [PATCH] Streamlined icons and improved echarts trends (#2920) * Various improvements Cards, OmniSearch and Cards Listing * Improved cards listing page * Various improvements in product analytics * Charts UI improvements * ui crash * Chart improvements and layout toggling * Various improvements * Tooltips * Improved icons in cards listing page * Update WidgetFormNew.tsx * Sankey improvements * Icon and text updates Text alignment and color changes in x-ray Icon Mapping with appropriate names and shapes * Colors and Trend Chart Interaction updates * ui --------- Co-authored-by: nick-delirium --- frontend/app/components/Charts/utils.ts | 17 +- .../AddCardSection/AddCardSection.tsx | 4 +- .../MetricListItem/MetricListItem.tsx | 2 +- .../components/MetricsList/ListView.tsx | 48 +---- .../components/WidgetForm/WidgetFormNew.tsx | 166 +++++++++++------- .../Session_/OverviewPanel/OverviewPanel.tsx | 1 + .../PerformanceGraph/PerformanceGraph.tsx | 2 +- .../TimelinePointer/TimelinePointer.tsx | 2 +- .../Insights/SankeyChart/CustomNode.tsx | 12 +- frontend/app/components/ui/Icon/Icon.tsx | 9 +- .../app/components/ui/Icons/console_error.tsx | 2 +- .../ui/Icons/exclamation_circle.tsx | 2 +- .../ui/Icons/exclamation_triangle.tsx | 2 +- frontend/app/components/ui/Icons/filter.tsx | 2 +- .../app/components/ui/Icons/filters_error.tsx | 2 +- frontend/app/components/ui/Icons/funnel.tsx | 2 +- .../ui/Icons/funnel_exclamation_circle.tsx | 2 +- frontend/app/components/ui/Icons/graph_up.tsx | 2 +- .../app/components/ui/Icons/ic_errors.tsx | 2 +- frontend/app/components/ui/Icons/index.ts | 1 + frontend/app/components/ui/Icons/list_alt.tsx | 2 +- .../components/ui/Icons/signpost_split.tsx | 2 +- .../app/components/ui/Icons/user_journey.tsx | 19 ++ frontend/app/components/ui/SVG.tsx | 6 +- frontend/app/constants/card.ts | 6 +- frontend/app/svg/icons/console/error.svg | 5 +- frontend/app/svg/icons/exclamation-circle.svg | 5 +- .../app/svg/icons/exclamation-triangle.svg | 5 +- frontend/app/svg/icons/filter.svg | 4 +- frontend/app/svg/icons/filters/error.svg | 5 +- frontend/app/svg/icons/funnel.svg | 4 +- .../svg/icons/funnel/exclamation-circle.svg | 5 +- frontend/app/svg/icons/graph-up.svg | 4 +- frontend/app/svg/icons/ic-errors.svg | 5 +- frontend/app/svg/icons/list-alt.svg | 2 +- frontend/app/svg/icons/signpost-split.svg | 19 +- frontend/app/svg/icons/user-journey.svg | 18 ++ 37 files changed, 227 insertions(+), 171 deletions(-) create mode 100644 frontend/app/components/ui/Icons/user_journey.tsx create mode 100644 frontend/app/svg/icons/user-journey.svg diff --git a/frontend/app/components/Charts/utils.ts b/frontend/app/components/Charts/utils.ts index 99f3c1fd1..1d04c05d7 100644 --- a/frontend/app/components/Charts/utils.ts +++ b/frontend/app/components/Charts/utils.ts @@ -1,6 +1,7 @@ import { formatTimeOrDate } from "App/date"; -export const colors = ['#6774E2', '#929ACD', '#3EAAAF', '#565D97', '#8F9F9F', '#376F72']; +export const colors = ['#394EFF', '#3EAAAF', '#9276da', '#ceba64', "#bc6f9d", '#966fbc', '#64ce86', '#e06da3', '#6dabe0']; +//export const colors = ['#6774E2', '#929ACD', '#3EAAAF', '#565D97', '#8F9F9F', '#376F72']; // const colorsTeal = ['#1E889A', '#239DB2', '#28B2C9', '#36C0D7', '#65CFE1']; // const colorsx = ['#256669', '#38999e', '#3eaaaf', '#51b3b7', '#78c4c7', '#9fd5d7', '#c5e6e7'].reverse(); // const compareColors = ['#192EDB', '#6272FF', '#808DFF', '#B3BBFF', '#C9CFFF']; @@ -204,11 +205,19 @@ export function createSeries( datasetId, encode: { x: 'idx', y: fullName }, lineStyle: dashed ? { type: 'dashed' } : undefined, - showSymbol: true, - symbolSize: 9, - symbol: 'circle', + showSymbol: false, // custom flag to hide prev data from legend _hideInLegend: hideFromLegend, + itemStyle: { opacity: 1 }, + emphasis: { + focus: 'series', + itemStyle: { opacity: 1 }, + lineStyle: { opacity: 1 }, + }, + blur: { + itemStyle: { opacity: 0.2 }, + lineStyle: { opacity: 0.2 }, + }, }; }); } diff --git a/frontend/app/components/Dashboard/components/AddCardSection/AddCardSection.tsx b/frontend/app/components/Dashboard/components/AddCardSection/AddCardSection.tsx index 85bfc451e..4b3002499 100644 --- a/frontend/app/components/Dashboard/components/AddCardSection/AddCardSection.tsx +++ b/frontend/app/components/Dashboard/components/AddCardSection/AddCardSection.tsx @@ -3,7 +3,7 @@ import { FolderOutlined } from '@ant-design/icons'; import { Segmented, Button } from 'antd'; import { LineChart, - AlignStartVertical, + Filter, ArrowUpDown, WifiOff, Turtle, @@ -50,7 +50,7 @@ export const tabItems: Record = { description: 'Track session trends over time.', }, { - icon: , + icon: , title: 'Funnels', type: FUNNEL, description: 'Visualize user progression through critical steps.', diff --git a/frontend/app/components/Dashboard/components/MetricListItem/MetricListItem.tsx b/frontend/app/components/Dashboard/components/MetricListItem/MetricListItem.tsx index a2521b2d9..348e1b388 100644 --- a/frontend/app/components/Dashboard/components/MetricListItem/MetricListItem.tsx +++ b/frontend/app/components/Dashboard/components/MetricListItem/MetricListItem.tsx @@ -23,7 +23,7 @@ interface Props extends RouteComponentProps { function MetricTypeIcon({ type }: any) { return ( {TYPE_NAMES[type]}}> - } size="default" className="bg-tealx-lightest mr-2 cursor-default avatar-card-list-item" /> + } size="default" className="bg-tealx-lightest text-tealx mr-2 cursor-default avatar-card-list-item" /> ); } diff --git a/frontend/app/components/Dashboard/components/MetricsList/ListView.tsx b/frontend/app/components/Dashboard/components/MetricsList/ListView.tsx index bdc5dace2..e830ffedc 100644 --- a/frontend/app/components/Dashboard/components/MetricsList/ListView.tsx +++ b/frontend/app/components/Dashboard/components/MetricsList/ListView.tsx @@ -100,7 +100,7 @@ const ListView: React.FC = (props: Props) => { onClick={toggleAll} /> )} - Title + Title ), dataIndex: 'name', @@ -154,52 +154,8 @@ const ListView: React.FC = (props: Props) => { /> ) }, - // { - // title: 'Visibility', - // dataIndex: 'visibility', - // key: 'visibility', - // width: '10%', - // render: (text: string, metric: Metric) => ( - // - // ) - // }, { - title: ( -
-
Visibility
- - toggleOwn()} - checkedChildren={'Team'} - unCheckedChildren={'Private'} - className={classNames( '!bg-tealx')} - /> - -
- ), - width: '16.67%', - dataIndex: 'isPublic', - render: (isPublic: boolean) => ( - : } - bordered={false} - className="rounded-lg" - > - {isPublic ? 'Team' : 'Private'} - - ), - }, - { - title: 'Options', + title: '', key: 'options', className: 'text-right', width: '5%', diff --git a/frontend/app/components/Dashboard/components/WidgetForm/WidgetFormNew.tsx b/frontend/app/components/Dashboard/components/WidgetForm/WidgetFormNew.tsx index 07e081fc0..939b78e69 100644 --- a/frontend/app/components/Dashboard/components/WidgetForm/WidgetFormNew.tsx +++ b/frontend/app/components/Dashboard/components/WidgetForm/WidgetFormNew.tsx @@ -1,6 +1,5 @@ import React from 'react'; -import { Card, Space, Button, Alert, Form } from 'antd'; - +import { Card, Space, Button, Alert, Form, Select } from 'antd'; import { useStore } from 'App/mstore'; import { eventKeys } from 'Types/filter/newFilter'; import { @@ -10,7 +9,7 @@ import { INSIGHTS, RETENTION, TABLE, - USER_PATH + USER_PATH, } from 'App/constants/card'; import FilterSeries from 'Components/Dashboard/components/FilterSeries/FilterSeries'; import { issueCategories } from 'App/constants/filterOptions'; @@ -18,7 +17,6 @@ import { PlusIcon } from 'lucide-react'; import { observer } from 'mobx-react-lite'; import FilterItem from 'Shared/Filters/FilterItem'; import { FilterKey } from 'Types/filter/filterType'; -import Select from 'Shared/Select'; function WidgetFormNew() { const { metricStore } = useStore(); @@ -27,9 +25,11 @@ function WidgetFormNew() { const isHeatMap = metric.metricType === HEATMAP; const isPathAnalysis = metric.metricType === USER_PATH; const excludeFilterKeys = isHeatMap || isPathAnalysis ? eventKeys : []; - const isPredefined = metric.metricType === ERRORS + const isPredefined = metric.metricType === ERRORS; - return isPredefined ? : ( + return isPredefined ? ( + + ) : ( @@ -40,8 +40,8 @@ function WidgetFormNew() { export default observer(WidgetFormNew); const FilterSection = observer(({ metric, excludeFilterKeys }: any) => { - const defaultClosed = React.useRef(metric.exists()) - const defaultSeries = React.useRef(metric.series.map(s => s.name)) + const defaultClosed = React.useRef(metric.exists()); + const defaultSeries = React.useRef(metric.series.map((s) => s.name)); const isTable = metric.metricType === TABLE; const isHeatMap = metric.metricType === HEATMAP; const isFunnel = metric.metricType === FUNNEL; @@ -50,7 +50,13 @@ const FilterSection = observer(({ metric, excludeFilterKeys }: any) => { const isRetention = metric.metricType === RETENTION; const canAddSeries = metric.series.length < 3; - const isSingleSeries = isTable || isFunnel || isHeatMap || isInsights || isRetention || isPathAnalysis; + const isSingleSeries = + isTable || + isFunnel || + isHeatMap || + isInsights || + isRetention || + isPathAnalysis; return ( <> {metric.series.length > 0 && @@ -76,7 +82,11 @@ const FilterSection = observer(({ metric, excludeFilterKeys }: any) => { series={series} onRemoveSeries={() => metric.removeSeries(index)} canDelete={metric.series.length > 1} - defaultClosed={metric.hasChanged ? defaultSeries.current.includes(series.name) : defaultClosed.current} + defaultClosed={ + metric.hasChanged + ? defaultSeries.current.includes(series.name) + : defaultClosed.current + } emptyMessage={ isTable ? 'Filter data using any event or attribute. Use Add Step button below to do so.' @@ -88,66 +98,91 @@ const FilterSection = observer(({ metric, excludeFilterKeys }: any) => { ))} {!isSingleSeries && canAddSeries && ( - + )} ); }); - const PathAnalysisFilter = observer(({ metric, writeOption }: any) => { const metricValueOptions = [ { value: 'location', label: 'Pages' }, { value: 'click', label: 'Clicks' }, { value: 'input', label: 'Input' }, - { value: 'custom', label: 'Custom' } + { value: 'custom', label: 'Custom' }, ]; return ( - + - - - - - - metric.updateStartPoint(val)} - onRemoveFilter={() => { - }} - /> +
+ User journeys with: + +
+ writeOption({ name: 'metricValue', value })} + placeholder="Select Metrics" + size="small" + /> +
+
+
+ + + metric.updateStartPoint(val)} + onRemoveFilter={() => {}} + /> + + +
); }); @@ -164,6 +199,7 @@ const InsightsFilter = observer(({ metric, writeOption }: any) => { onChange={writeOption} isMulti placeholder="All Categories" + allowClear />
@@ -183,14 +219,22 @@ const AdditionalFilters = observer(() => { return ( <> - {metric.metricType === USER_PATH && } - {metric.metricType === INSIGHTS && } + {metric.metricType === USER_PATH && ( + + )} + {metric.metricType === INSIGHTS && ( + + )} ); }); - const PredefinedMessage = () => ( - + ); diff --git a/frontend/app/components/Session_/OverviewPanel/OverviewPanel.tsx b/frontend/app/components/Session_/OverviewPanel/OverviewPanel.tsx index 03ef25f0a..f551f7e2c 100644 --- a/frontend/app/components/Session_/OverviewPanel/OverviewPanel.tsx +++ b/frontend/app/components/Session_/OverviewPanel/OverviewPanel.tsx @@ -315,6 +315,7 @@ function PanelComponent({ /> {summaryChecked ? ( setZoomTab(val)} options={[ diff --git a/frontend/app/components/Session_/OverviewPanel/components/PerformanceGraph/PerformanceGraph.tsx b/frontend/app/components/Session_/OverviewPanel/components/PerformanceGraph/PerformanceGraph.tsx index 51a5a0898..b956bfb50 100644 --- a/frontend/app/components/Session_/OverviewPanel/components/PerformanceGraph/PerformanceGraph.tsx +++ b/frontend/app/components/Session_/OverviewPanel/components/PerformanceGraph/PerformanceGraph.tsx @@ -58,7 +58,7 @@ const PerformanceGraph = React.memo((props: Props) => { {disabled ? (
diff --git a/frontend/app/components/Session_/OverviewPanel/components/TimelinePointer/TimelinePointer.tsx b/frontend/app/components/Session_/OverviewPanel/components/TimelinePointer/TimelinePointer.tsx index 4518ddf1c..a445b416a 100644 --- a/frontend/app/components/Session_/OverviewPanel/components/TimelinePointer/TimelinePointer.tsx +++ b/frontend/app/components/Session_/OverviewPanel/components/TimelinePointer/TimelinePointer.tsx @@ -158,7 +158,7 @@ function GroupedIssue({ onClick={createEventClickHandler(pointer, type)} className={'flex items-center gap-2 mb-1 cursor-pointer border-b border-transparent hover:border-gray-lightest'} > -
@{shortDurationFromMs(pointer.time)}
+
@{shortDurationFromMs(pointer.time)}
))} diff --git a/frontend/app/components/shared/Insights/SankeyChart/CustomNode.tsx b/frontend/app/components/shared/Insights/SankeyChart/CustomNode.tsx index 2f87c2d4f..7e51e4055 100644 --- a/frontend/app/components/shared/Insights/SankeyChart/CustomNode.tsx +++ b/frontend/app/components/shared/Insights/SankeyChart/CustomNode.tsx @@ -17,10 +17,18 @@ const CustomNode: React.FC = (props) => { const {x, y, width, height, index, payload, containerWidth} = props; const isOut = x + width + 6 > containerWidth; const isDemo = payload.isDemo; + const isDropoff = payload.name === 'Dropoff'; return ( - + {!isDemo ? ( = (props) => { ); } -export default CustomNode; +export default CustomNode; \ No newline at end of file diff --git a/frontend/app/components/ui/Icon/Icon.tsx b/frontend/app/components/ui/Icon/Icon.tsx index 52c0b0f3d..19d0a0d0f 100644 --- a/frontend/app/components/ui/Icon/Icon.tsx +++ b/frontend/app/components/ui/Icon/Icon.tsx @@ -9,6 +9,7 @@ interface IProps { height?: number width?: number color?: string + strokeColor?: string className?: string style?: object marginRight?: number @@ -22,6 +23,7 @@ const Icon: React.FunctionComponent = ({ height = size, width = size, color = 'gray-medium', + strokeColor, className = '', style={}, marginRight = 0, @@ -38,7 +40,10 @@ const Icon: React.FunctionComponent = ({ _style.marginRight = `${ marginRight }px`; } - const additionalStyles = color === 'inherit' ? { fill: 'currentColor' } : {} + const additionalStyles = { + ...(color === 'inherit' ? { fill: 'currentColor' } : {}), + ...(strokeColor ? { stroke: strokeColor } : {}), + }; return ( = ({ className={ cn(className, styles.wrapper, `fill-${ color }`) } data-inline={ inline } > - + ); } diff --git a/frontend/app/components/ui/Icons/console_error.tsx b/frontend/app/components/ui/Icons/console_error.tsx index 636e8498f..356d83910 100644 --- a/frontend/app/components/ui/Icons/console_error.tsx +++ b/frontend/app/components/ui/Icons/console_error.tsx @@ -12,7 +12,7 @@ interface Props { function Console_error(props: Props) { const { size = 14, width = size, height = size, fill = '' } = props; return ( - + ); } diff --git a/frontend/app/components/ui/Icons/exclamation_circle.tsx b/frontend/app/components/ui/Icons/exclamation_circle.tsx index b0b806510..d9f64ae42 100644 --- a/frontend/app/components/ui/Icons/exclamation_circle.tsx +++ b/frontend/app/components/ui/Icons/exclamation_circle.tsx @@ -12,7 +12,7 @@ interface Props { function Exclamation_circle(props: Props) { const { size = 14, width = size, height = size, fill = '' } = props; return ( - + ); } diff --git a/frontend/app/components/ui/Icons/exclamation_triangle.tsx b/frontend/app/components/ui/Icons/exclamation_triangle.tsx index 8a4ac14f7..a16b75d4b 100644 --- a/frontend/app/components/ui/Icons/exclamation_triangle.tsx +++ b/frontend/app/components/ui/Icons/exclamation_triangle.tsx @@ -12,7 +12,7 @@ interface Props { function Exclamation_triangle(props: Props) { const { size = 14, width = size, height = size, fill = '' } = props; return ( - + ); } diff --git a/frontend/app/components/ui/Icons/filter.tsx b/frontend/app/components/ui/Icons/filter.tsx index 77b2b86ea..3b146389a 100644 --- a/frontend/app/components/ui/Icons/filter.tsx +++ b/frontend/app/components/ui/Icons/filter.tsx @@ -12,7 +12,7 @@ interface Props { function Filter(props: Props) { const { size = 14, width = size, height = size, fill = '' } = props; return ( - + ); } diff --git a/frontend/app/components/ui/Icons/filters_error.tsx b/frontend/app/components/ui/Icons/filters_error.tsx index 8b2a0e079..8a4c00d76 100644 --- a/frontend/app/components/ui/Icons/filters_error.tsx +++ b/frontend/app/components/ui/Icons/filters_error.tsx @@ -12,7 +12,7 @@ interface Props { function Filters_error(props: Props) { const { size = 14, width = size, height = size, fill = '' } = props; return ( - + ); } diff --git a/frontend/app/components/ui/Icons/funnel.tsx b/frontend/app/components/ui/Icons/funnel.tsx index 8e5d79b32..fc8e4384f 100644 --- a/frontend/app/components/ui/Icons/funnel.tsx +++ b/frontend/app/components/ui/Icons/funnel.tsx @@ -12,7 +12,7 @@ interface Props { function Funnel(props: Props) { const { size = 14, width = size, height = size, fill = '' } = props; return ( - + ); } diff --git a/frontend/app/components/ui/Icons/funnel_exclamation_circle.tsx b/frontend/app/components/ui/Icons/funnel_exclamation_circle.tsx index 8e878d955..0ba7fc6e3 100644 --- a/frontend/app/components/ui/Icons/funnel_exclamation_circle.tsx +++ b/frontend/app/components/ui/Icons/funnel_exclamation_circle.tsx @@ -12,7 +12,7 @@ interface Props { function Funnel_exclamation_circle(props: Props) { const { size = 14, width = size, height = size, fill = '' } = props; return ( - + ); } diff --git a/frontend/app/components/ui/Icons/graph_up.tsx b/frontend/app/components/ui/Icons/graph_up.tsx index e2f344fa4..45506a08a 100644 --- a/frontend/app/components/ui/Icons/graph_up.tsx +++ b/frontend/app/components/ui/Icons/graph_up.tsx @@ -12,7 +12,7 @@ interface Props { function Graph_up(props: Props) { const { size = 14, width = size, height = size, fill = '' } = props; return ( - + ); } diff --git a/frontend/app/components/ui/Icons/ic_errors.tsx b/frontend/app/components/ui/Icons/ic_errors.tsx index 0248d1e51..03507db4a 100644 --- a/frontend/app/components/ui/Icons/ic_errors.tsx +++ b/frontend/app/components/ui/Icons/ic_errors.tsx @@ -12,7 +12,7 @@ interface Props { function Ic_errors(props: Props) { const { size = 14, width = size, height = size, fill = '' } = props; return ( - + ); } diff --git a/frontend/app/components/ui/Icons/index.ts b/frontend/app/components/ui/Icons/index.ts index fade7bc32..570e74c12 100644 --- a/frontend/app/components/ui/Icons/index.ts +++ b/frontend/app/components/ui/Icons/index.ts @@ -467,6 +467,7 @@ export { default as Turtle } from './turtle'; export { default as User_alt } from './user_alt'; export { default as User_circle } from './user_circle'; export { default as User_friends } from './user_friends'; +export { default as User_journey } from './user_journey'; export { default as User_switch } from './user_switch'; export { default as Users } from './users'; export { default as Vendors_graphql } from './vendors_graphql'; diff --git a/frontend/app/components/ui/Icons/list_alt.tsx b/frontend/app/components/ui/Icons/list_alt.tsx index 8c2993dff..5b9959b35 100644 --- a/frontend/app/components/ui/Icons/list_alt.tsx +++ b/frontend/app/components/ui/Icons/list_alt.tsx @@ -12,7 +12,7 @@ interface Props { function List_alt(props: Props) { const { size = 14, width = size, height = size, fill = '' } = props; return ( - + ); } diff --git a/frontend/app/components/ui/Icons/signpost_split.tsx b/frontend/app/components/ui/Icons/signpost_split.tsx index 3cd780361..8ee289d08 100644 --- a/frontend/app/components/ui/Icons/signpost_split.tsx +++ b/frontend/app/components/ui/Icons/signpost_split.tsx @@ -12,7 +12,7 @@ interface Props { function Signpost_split(props: Props) { const { size = 14, width = size, height = size, fill = '' } = props; return ( - + ); } diff --git a/frontend/app/components/ui/Icons/user_journey.tsx b/frontend/app/components/ui/Icons/user_journey.tsx new file mode 100644 index 000000000..53a750f82 --- /dev/null +++ b/frontend/app/components/ui/Icons/user_journey.tsx @@ -0,0 +1,19 @@ + +/* Auto-generated, do not edit */ +import React from 'react'; + +interface Props { + size?: number | string; + width?: number | string; + height?: number | string; + fill?: string; +} + +function User_journey(props: Props) { + const { size = 14, width = size, height = size, fill = '' } = props; + return ( + + ); +} + +export default User_journey; diff --git a/frontend/app/components/ui/SVG.tsx b/frontend/app/components/ui/SVG.tsx index 31e6e900d..24e8b8b02 100644 --- a/frontend/app/components/ui/SVG.tsx +++ b/frontend/app/components/ui/SVG.tsx @@ -469,6 +469,7 @@ import { User_alt, User_circle, User_friends, + User_journey, User_switch, Users, Vendors_graphql, @@ -479,7 +480,7 @@ import { Zoom_in } from './Icons' -export type IconNames = 'activity' | 'analytics' | 'anchor' | 'arrow-bar-left' | 'arrow-clockwise' | 'arrow-counterclockwise' | 'arrow-down-short' | 'arrow-down-up' | 'arrow-down' | 'arrow-repeat' | 'arrow-right-short' | 'arrow-up-short' | 'arrow-up' | 'avatar/icn_avatar1' | 'avatar/icn_avatar10' | 'avatar/icn_avatar11' | 'avatar/icn_avatar12' | 'avatar/icn_avatar13' | 'avatar/icn_avatar14' | 'avatar/icn_avatar15' | 'avatar/icn_avatar16' | 'avatar/icn_avatar17' | 'avatar/icn_avatar18' | 'avatar/icn_avatar19' | 'avatar/icn_avatar2' | 'avatar/icn_avatar20' | 'avatar/icn_avatar21' | 'avatar/icn_avatar22' | 'avatar/icn_avatar23' | 'avatar/icn_avatar3' | 'avatar/icn_avatar4' | 'avatar/icn_avatar5' | 'avatar/icn_avatar6' | 'avatar/icn_avatar7' | 'avatar/icn_avatar8' | 'avatar/icn_avatar9' | 'ban' | 'bar-chart-line' | 'bar-pencil' | 'battery-charging' | 'battery' | 'bell-plus' | 'bell-slash' | 'bell' | 'binoculars' | 'book' | 'bookmark' | 'broadcast' | 'browser/browser' | 'browser/chrome' | 'browser/edge' | 'browser/electron' | 'browser/facebook' | 'browser/firefox' | 'browser/ie' | 'browser/opera' | 'browser/safari' | 'buildings' | 'bullhorn' | 'calendar' | 'call' | 'camera-video-off' | 'camera-video' | 'camera' | 'card-list' | 'card-text' | 'caret-down-fill' | 'caret-right-fill' | 'chat-dots' | 'chat-left-text' | 'chat-square-quote' | 'check-circle-fill' | 'check-circle' | 'check' | 'chevron-down' | 'chevron-left' | 'chevron-right' | 'chevron-up' | 'circle-fill' | 'circle' | 'click-hesitation' | 'click-rage' | 'clipboard-check' | 'clock-history' | 'clock' | 'close' | 'code' | 'cog' | 'cogs' | 'collection-play' | 'collection' | 'color/apple' | 'color/browser/chrome' | 'color/browser/edge' | 'color/browser/facebook' | 'color/browser/firefox' | 'color/browser/google' | 'color/browser/opera' | 'color/browser/safari' | 'color/browser/unknown' | 'color/browser/whale' | 'color/chrome' | 'color/country/de' | 'color/country/fr' | 'color/country/gb' | 'color/country/in' | 'color/country/us' | 'color/de' | 'color/device/desktop' | 'color/device/mobile' | 'color/device/tablet' | 'color/device/unkown' | 'color/edge' | 'color/fedora' | 'color/firefox' | 'color/fr' | 'color/gb' | 'color/in' | 'color/issues/bad_request' | 'color/issues/click_rage' | 'color/issues/cpu' | 'color/issues/crash' | 'color/issues/custom' | 'color/issues/dead_click' | 'color/issues/errors' | 'color/issues/excessive_scrolling' | 'color/issues/js_exception' | 'color/issues/memory' | 'color/issues/missing_resource' | 'color/issues/mouse_thrashing' | 'color/issues/slow_page_load' | 'color/microsoft' | 'color/opera' | 'color/os/android' | 'color/os/apple' | 'color/os/elementary' | 'color/os/fedora' | 'color/os/ios' | 'color/os/linux' | 'color/os/macos' | 'color/os/microsoft' | 'color/os/ubuntu' | 'color/os/unkown' | 'color/safari' | 'color/ubuntu' | 'color/us' | 'columns-gap' | 'console/error' | 'console/exception' | 'console/info' | 'console/warning' | 'console' | 'controller' | 'cookies' | 'copy' | 'credit-card-2-back' | 'cross' | 'cubes' | 'cursor-trash' | 'dash' | 'dashboard-icn' | 'dashboards/circle-alert' | 'dashboards/cohort-chart' | 'dashboards/heatmap-2' | 'dashboards/user-journey' | 'db-icons/icn-card-clickMap' | 'db-icons/icn-card-errors' | 'db-icons/icn-card-funnel' | 'db-icons/icn-card-funnels' | 'db-icons/icn-card-insights' | 'db-icons/icn-card-library' | 'db-icons/icn-card-mapchart' | 'db-icons/icn-card-pathAnalysis' | 'db-icons/icn-card-performance' | 'db-icons/icn-card-resources' | 'db-icons/icn-card-table' | 'db-icons/icn-card-timeseries' | 'db-icons/icn-card-webVitals' | 'desktop' | 'device' | 'diagram-3' | 'dizzy' | 'door-closed' | 'download' | 'drag' | 'edit' | 'ellipsis-v' | 'emoji-dizzy' | 'enter' | 'envelope-check' | 'envelope-paper' | 'envelope-x' | 'envelope' | 'errors-icon' | 'event/click' | 'event/click_hesitation' | 'event/clickrage' | 'event/code' | 'event/i-cursor' | 'event/input' | 'event/input_hesitation' | 'event/link' | 'event/location' | 'event/mouse_thrashing' | 'event/resize' | 'event/view' | 'exclamation-circle-fill' | 'exclamation-circle' | 'exclamation-triangle' | 'explosion' | 'external-link-alt' | 'eye-slash-fill' | 'eye-slash' | 'eye' | 'fetch-request' | 'fetch' | 'fflag-multi' | 'fflag-single' | 'file-bar-graph' | 'file-code' | 'file-medical-alt' | 'file-pdf' | 'file' | 'files' | 'filetype-js' | 'filetype-pdf' | 'filter' | 'filters/arrow-return-right' | 'filters/browser' | 'filters/chevrons-up-down' | 'filters/click' | 'filters/clickrage' | 'filters/code' | 'filters/console' | 'filters/country' | 'filters/cpu-load' | 'filters/custom' | 'filters/device' | 'filters/dom-complete' | 'filters/duration' | 'filters/error' | 'filters/fetch-failed' | 'filters/fetch' | 'filters/file-code' | 'filters/graphql' | 'filters/i-cursor' | 'filters/input' | 'filters/lcpt' | 'filters/link' | 'filters/location' | 'filters/memory-load' | 'filters/metadata' | 'filters/os' | 'filters/perfromance-network-request' | 'filters/platform' | 'filters/referrer' | 'filters/resize' | 'filters/rev-id' | 'filters/screen' | 'filters/state-action' | 'filters/tag-element' | 'filters/ttfb' | 'filters/user-alt' | 'filters/userid' | 'filters/view' | 'flag-na' | 'folder-plus' | 'folder2' | 'fullscreen' | 'funnel/cpu-fill' | 'funnel/cpu' | 'funnel/dizzy' | 'funnel/emoji-angry-fill' | 'funnel/emoji-angry' | 'funnel/emoji-dizzy-fill' | 'funnel/exclamation-circle-fill' | 'funnel/exclamation-circle' | 'funnel/file-earmark-break-fill' | 'funnel/file-earmark-break' | 'funnel/file-earmark-minus-fill' | 'funnel/file-earmark-minus' | 'funnel/file-medical-alt' | 'funnel/file-x' | 'funnel/hdd-fill' | 'funnel/hourglass-top' | 'funnel/image-fill' | 'funnel/image' | 'funnel/microchip' | 'funnel/mouse' | 'funnel/patch-exclamation-fill' | 'funnel/sd-card' | 'funnel-fill' | 'funnel' | 'gear' | 'github' | 'graph-up' | 'grid-3x3' | 'grid-check' | 'grid' | 'hash' | 'headset' | 'history' | 'ic-errors' | 'ic-network' | 'ic-rage' | 'ic-resources' | 'icn_fetch-request' | 'icn_referrer' | 'icn_url' | 'id-card' | 'image' | 'info-circle-fill' | 'info-circle' | 'info-square' | 'info' | 'input-hesitation' | 'inspect' | 'integrations/assist' | 'integrations/bugsnag-text' | 'integrations/bugsnag' | 'integrations/cloudwatch-text' | 'integrations/cloudwatch' | 'integrations/datadog' | 'integrations/dynatrace' | 'integrations/elasticsearch-text' | 'integrations/elasticsearch' | 'integrations/github' | 'integrations/graphql' | 'integrations/jira-text' | 'integrations/jira' | 'integrations/mobx' | 'integrations/newrelic-text' | 'integrations/newrelic' | 'integrations/ngrx' | 'integrations/openreplay-text' | 'integrations/openreplay' | 'integrations/redux' | 'integrations/rollbar-text' | 'integrations/rollbar' | 'integrations/segment' | 'integrations/sentry-text' | 'integrations/sentry' | 'integrations/slack-bw' | 'integrations/slack' | 'integrations/stackdriver' | 'integrations/sumologic-text' | 'integrations/sumologic' | 'integrations/teams-white' | 'integrations/teams' | 'integrations/vuejs' | 'integrations/zustand' | 'journal-code' | 'key' | 'keyboard' | 'layers-half' | 'lightbulb-on' | 'lightbulb' | 'link-45deg' | 'list-alt' | 'list-ul' | 'list' | 'low-disc-space' | 'magic' | 'map-marker-alt' | 'memory-ios' | 'memory' | 'mic-mute' | 'mic' | 'minus' | 'mobile' | 'mouse-alt' | 'mouse-pointer-click' | 'network' | 'next1' | 'no-dashboard' | 'no-metrics-chart' | 'no-metrics' | 'no-recordings' | 'orIcn' | 'orSpot' | 'orspotOutline' | 'os/android' | 'os/chrome_os' | 'os/fedora' | 'os/ios' | 'os/linux' | 'os/mac_os_x' | 'os/other' | 'os/ubuntu' | 'os/windows' | 'os' | 'pause-circle-fill' | 'pause-fill' | 'pause' | 'pdf-download' | 'pencil-stop' | 'pencil' | 'people' | 'percent' | 'performance-icon' | 'person-border' | 'person-fill' | 'person' | 'pie-chart-fill' | 'pin-fill' | 'play-circle-bold' | 'play-circle-light' | 'play-circle' | 'play-fill-new' | 'play-fill' | 'play-hover' | 'play' | 'plug' | 'plus-circle' | 'plus' | 'prev1' | 'pulse' | 'puzzle-piece' | 'puzzle' | 'question-circle' | 'question-lg' | 'quotes' | 'record-circle-fill' | 'record-circle' | 'record2' | 'redo' | 'redux' | 'referrer' | 'remote-control' | 'resources-icon' | 'safe' | 'sandglass' | 'search' | 'server' | 'share-alt' | 'shield-lock' | 'side_menu_closed' | 'side_menu_open' | 'signpost-split' | 'signup' | 'slack' | 'slash-circle' | 'sleep' | 'sliders' | 'social/slack' | 'social/trello' | 'sparkles' | 'speedometer2' | 'spinner' | 'star' | 'step-forward' | 'stickies' | 'stop-record-circle' | 'stopwatch' | 'store' | 'sync-alt' | 'table' | 'tags' | 'terminal' | 'thermometer-sun' | 'toggles' | 'tools' | 'trash' | 'turtle' | 'user-alt' | 'user-circle' | 'user-friends' | 'user-switch' | 'users' | 'vendors/graphql' | 'web-vitals' | 'wifi' | 'window-x' | 'window' | 'zoom-in'; +export type IconNames = 'activity' | 'analytics' | 'anchor' | 'arrow-bar-left' | 'arrow-clockwise' | 'arrow-counterclockwise' | 'arrow-down-short' | 'arrow-down-up' | 'arrow-down' | 'arrow-repeat' | 'arrow-right-short' | 'arrow-up-short' | 'arrow-up' | 'avatar/icn_avatar1' | 'avatar/icn_avatar10' | 'avatar/icn_avatar11' | 'avatar/icn_avatar12' | 'avatar/icn_avatar13' | 'avatar/icn_avatar14' | 'avatar/icn_avatar15' | 'avatar/icn_avatar16' | 'avatar/icn_avatar17' | 'avatar/icn_avatar18' | 'avatar/icn_avatar19' | 'avatar/icn_avatar2' | 'avatar/icn_avatar20' | 'avatar/icn_avatar21' | 'avatar/icn_avatar22' | 'avatar/icn_avatar23' | 'avatar/icn_avatar3' | 'avatar/icn_avatar4' | 'avatar/icn_avatar5' | 'avatar/icn_avatar6' | 'avatar/icn_avatar7' | 'avatar/icn_avatar8' | 'avatar/icn_avatar9' | 'ban' | 'bar-chart-line' | 'bar-pencil' | 'battery-charging' | 'battery' | 'bell-plus' | 'bell-slash' | 'bell' | 'binoculars' | 'book' | 'bookmark' | 'broadcast' | 'browser/browser' | 'browser/chrome' | 'browser/edge' | 'browser/electron' | 'browser/facebook' | 'browser/firefox' | 'browser/ie' | 'browser/opera' | 'browser/safari' | 'buildings' | 'bullhorn' | 'calendar' | 'call' | 'camera-video-off' | 'camera-video' | 'camera' | 'card-list' | 'card-text' | 'caret-down-fill' | 'caret-right-fill' | 'chat-dots' | 'chat-left-text' | 'chat-square-quote' | 'check-circle-fill' | 'check-circle' | 'check' | 'chevron-down' | 'chevron-left' | 'chevron-right' | 'chevron-up' | 'circle-fill' | 'circle' | 'click-hesitation' | 'click-rage' | 'clipboard-check' | 'clock-history' | 'clock' | 'close' | 'code' | 'cog' | 'cogs' | 'collection-play' | 'collection' | 'color/apple' | 'color/browser/chrome' | 'color/browser/edge' | 'color/browser/facebook' | 'color/browser/firefox' | 'color/browser/google' | 'color/browser/opera' | 'color/browser/safari' | 'color/browser/unknown' | 'color/browser/whale' | 'color/chrome' | 'color/country/de' | 'color/country/fr' | 'color/country/gb' | 'color/country/in' | 'color/country/us' | 'color/de' | 'color/device/desktop' | 'color/device/mobile' | 'color/device/tablet' | 'color/device/unkown' | 'color/edge' | 'color/fedora' | 'color/firefox' | 'color/fr' | 'color/gb' | 'color/in' | 'color/issues/bad_request' | 'color/issues/click_rage' | 'color/issues/cpu' | 'color/issues/crash' | 'color/issues/custom' | 'color/issues/dead_click' | 'color/issues/errors' | 'color/issues/excessive_scrolling' | 'color/issues/js_exception' | 'color/issues/memory' | 'color/issues/missing_resource' | 'color/issues/mouse_thrashing' | 'color/issues/slow_page_load' | 'color/microsoft' | 'color/opera' | 'color/os/android' | 'color/os/apple' | 'color/os/elementary' | 'color/os/fedora' | 'color/os/ios' | 'color/os/linux' | 'color/os/macos' | 'color/os/microsoft' | 'color/os/ubuntu' | 'color/os/unkown' | 'color/safari' | 'color/ubuntu' | 'color/us' | 'columns-gap' | 'console/error' | 'console/exception' | 'console/info' | 'console/warning' | 'console' | 'controller' | 'cookies' | 'copy' | 'credit-card-2-back' | 'cross' | 'cubes' | 'cursor-trash' | 'dash' | 'dashboard-icn' | 'dashboards/circle-alert' | 'dashboards/cohort-chart' | 'dashboards/heatmap-2' | 'dashboards/user-journey' | 'db-icons/icn-card-clickMap' | 'db-icons/icn-card-errors' | 'db-icons/icn-card-funnel' | 'db-icons/icn-card-funnels' | 'db-icons/icn-card-insights' | 'db-icons/icn-card-library' | 'db-icons/icn-card-mapchart' | 'db-icons/icn-card-pathAnalysis' | 'db-icons/icn-card-performance' | 'db-icons/icn-card-resources' | 'db-icons/icn-card-table' | 'db-icons/icn-card-timeseries' | 'db-icons/icn-card-webVitals' | 'desktop' | 'device' | 'diagram-3' | 'dizzy' | 'door-closed' | 'download' | 'drag' | 'edit' | 'ellipsis-v' | 'emoji-dizzy' | 'enter' | 'envelope-check' | 'envelope-paper' | 'envelope-x' | 'envelope' | 'errors-icon' | 'event/click' | 'event/click_hesitation' | 'event/clickrage' | 'event/code' | 'event/i-cursor' | 'event/input' | 'event/input_hesitation' | 'event/link' | 'event/location' | 'event/mouse_thrashing' | 'event/resize' | 'event/view' | 'exclamation-circle-fill' | 'exclamation-circle' | 'exclamation-triangle' | 'explosion' | 'external-link-alt' | 'eye-slash-fill' | 'eye-slash' | 'eye' | 'fetch-request' | 'fetch' | 'fflag-multi' | 'fflag-single' | 'file-bar-graph' | 'file-code' | 'file-medical-alt' | 'file-pdf' | 'file' | 'files' | 'filetype-js' | 'filetype-pdf' | 'filter' | 'filters/arrow-return-right' | 'filters/browser' | 'filters/chevrons-up-down' | 'filters/click' | 'filters/clickrage' | 'filters/code' | 'filters/console' | 'filters/country' | 'filters/cpu-load' | 'filters/custom' | 'filters/device' | 'filters/dom-complete' | 'filters/duration' | 'filters/error' | 'filters/fetch-failed' | 'filters/fetch' | 'filters/file-code' | 'filters/graphql' | 'filters/i-cursor' | 'filters/input' | 'filters/lcpt' | 'filters/link' | 'filters/location' | 'filters/memory-load' | 'filters/metadata' | 'filters/os' | 'filters/perfromance-network-request' | 'filters/platform' | 'filters/referrer' | 'filters/resize' | 'filters/rev-id' | 'filters/screen' | 'filters/state-action' | 'filters/tag-element' | 'filters/ttfb' | 'filters/user-alt' | 'filters/userid' | 'filters/view' | 'flag-na' | 'folder-plus' | 'folder2' | 'fullscreen' | 'funnel/cpu-fill' | 'funnel/cpu' | 'funnel/dizzy' | 'funnel/emoji-angry-fill' | 'funnel/emoji-angry' | 'funnel/emoji-dizzy-fill' | 'funnel/exclamation-circle-fill' | 'funnel/exclamation-circle' | 'funnel/file-earmark-break-fill' | 'funnel/file-earmark-break' | 'funnel/file-earmark-minus-fill' | 'funnel/file-earmark-minus' | 'funnel/file-medical-alt' | 'funnel/file-x' | 'funnel/hdd-fill' | 'funnel/hourglass-top' | 'funnel/image-fill' | 'funnel/image' | 'funnel/microchip' | 'funnel/mouse' | 'funnel/patch-exclamation-fill' | 'funnel/sd-card' | 'funnel-fill' | 'funnel' | 'gear' | 'github' | 'graph-up' | 'grid-3x3' | 'grid-check' | 'grid' | 'hash' | 'headset' | 'history' | 'ic-errors' | 'ic-network' | 'ic-rage' | 'ic-resources' | 'icn_fetch-request' | 'icn_referrer' | 'icn_url' | 'id-card' | 'image' | 'info-circle-fill' | 'info-circle' | 'info-square' | 'info' | 'input-hesitation' | 'inspect' | 'integrations/assist' | 'integrations/bugsnag-text' | 'integrations/bugsnag' | 'integrations/cloudwatch-text' | 'integrations/cloudwatch' | 'integrations/datadog' | 'integrations/dynatrace' | 'integrations/elasticsearch-text' | 'integrations/elasticsearch' | 'integrations/github' | 'integrations/graphql' | 'integrations/jira-text' | 'integrations/jira' | 'integrations/mobx' | 'integrations/newrelic-text' | 'integrations/newrelic' | 'integrations/ngrx' | 'integrations/openreplay-text' | 'integrations/openreplay' | 'integrations/redux' | 'integrations/rollbar-text' | 'integrations/rollbar' | 'integrations/segment' | 'integrations/sentry-text' | 'integrations/sentry' | 'integrations/slack-bw' | 'integrations/slack' | 'integrations/stackdriver' | 'integrations/sumologic-text' | 'integrations/sumologic' | 'integrations/teams-white' | 'integrations/teams' | 'integrations/vuejs' | 'integrations/zustand' | 'journal-code' | 'key' | 'keyboard' | 'layers-half' | 'lightbulb-on' | 'lightbulb' | 'link-45deg' | 'list-alt' | 'list-ul' | 'list' | 'low-disc-space' | 'magic' | 'map-marker-alt' | 'memory-ios' | 'memory' | 'mic-mute' | 'mic' | 'minus' | 'mobile' | 'mouse-alt' | 'mouse-pointer-click' | 'network' | 'next1' | 'no-dashboard' | 'no-metrics-chart' | 'no-metrics' | 'no-recordings' | 'orIcn' | 'orSpot' | 'orspotOutline' | 'os/android' | 'os/chrome_os' | 'os/fedora' | 'os/ios' | 'os/linux' | 'os/mac_os_x' | 'os/other' | 'os/ubuntu' | 'os/windows' | 'os' | 'pause-circle-fill' | 'pause-fill' | 'pause' | 'pdf-download' | 'pencil-stop' | 'pencil' | 'people' | 'percent' | 'performance-icon' | 'person-border' | 'person-fill' | 'person' | 'pie-chart-fill' | 'pin-fill' | 'play-circle-bold' | 'play-circle-light' | 'play-circle' | 'play-fill-new' | 'play-fill' | 'play-hover' | 'play' | 'plug' | 'plus-circle' | 'plus' | 'prev1' | 'pulse' | 'puzzle-piece' | 'puzzle' | 'question-circle' | 'question-lg' | 'quotes' | 'record-circle-fill' | 'record-circle' | 'record2' | 'redo' | 'redux' | 'referrer' | 'remote-control' | 'resources-icon' | 'safe' | 'sandglass' | 'search' | 'server' | 'share-alt' | 'shield-lock' | 'side_menu_closed' | 'side_menu_open' | 'signpost-split' | 'signup' | 'slack' | 'slash-circle' | 'sleep' | 'sliders' | 'social/slack' | 'social/trello' | 'sparkles' | 'speedometer2' | 'spinner' | 'star' | 'step-forward' | 'stickies' | 'stop-record-circle' | 'stopwatch' | 'store' | 'sync-alt' | 'table' | 'tags' | 'terminal' | 'thermometer-sun' | 'toggles' | 'tools' | 'trash' | 'turtle' | 'user-alt' | 'user-circle' | 'user-friends' | 'user-journey' | 'user-switch' | 'users' | 'vendors/graphql' | 'web-vitals' | 'wifi' | 'window-x' | 'window' | 'zoom-in'; interface Props { name: IconNames; @@ -1895,6 +1896,9 @@ const SVG = (props: Props) => { // case 'user-friends': case 'user-friends': return ; + // case 'user-journey': + case 'user-journey': return ; + // case 'user-switch': case 'user-switch': return ; diff --git a/frontend/app/constants/card.ts b/frontend/app/constants/card.ts index e08808e07..675aaf3cc 100644 --- a/frontend/app/constants/card.ts +++ b/frontend/app/constants/card.ts @@ -41,10 +41,10 @@ export const TYPE_ICONS = { [LIBRARY]: 'grid', [TIMESERIES]: 'graph-up', [TABLE]: 'list-alt', - [HEATMAP]: 'puzzle-piece', + [HEATMAP]: 'dashboards/heatmap-2', [FUNNEL]: 'funnel', - [ERRORS]: 'exclamation-triangle', - [USER_PATH]: 'signpost-split', + [ERRORS]: 'exclamation-circle', + [USER_PATH]: 'user-journey', [TABLE]: 'list-alt', } as const export const TYPE_NAMES = { diff --git a/frontend/app/svg/icons/console/error.svg b/frontend/app/svg/icons/console/error.svg index a170d1363..a1db73a3d 100644 --- a/frontend/app/svg/icons/console/error.svg +++ b/frontend/app/svg/icons/console/error.svg @@ -1,4 +1 @@ - - - - \ No newline at end of file + \ No newline at end of file diff --git a/frontend/app/svg/icons/exclamation-circle.svg b/frontend/app/svg/icons/exclamation-circle.svg index a170d1363..cbf65c624 100644 --- a/frontend/app/svg/icons/exclamation-circle.svg +++ b/frontend/app/svg/icons/exclamation-circle.svg @@ -1,4 +1 @@ - - - - \ No newline at end of file + \ No newline at end of file diff --git a/frontend/app/svg/icons/exclamation-triangle.svg b/frontend/app/svg/icons/exclamation-triangle.svg index 84b3ce962..4b1e0110b 100644 --- a/frontend/app/svg/icons/exclamation-triangle.svg +++ b/frontend/app/svg/icons/exclamation-triangle.svg @@ -1,4 +1 @@ - - - - \ No newline at end of file + \ No newline at end of file diff --git a/frontend/app/svg/icons/filter.svg b/frontend/app/svg/icons/filter.svg index 7cfb69d18..5c69db749 100644 --- a/frontend/app/svg/icons/filter.svg +++ b/frontend/app/svg/icons/filter.svg @@ -1,3 +1 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/frontend/app/svg/icons/filters/error.svg b/frontend/app/svg/icons/filters/error.svg index a170d1363..a1db73a3d 100644 --- a/frontend/app/svg/icons/filters/error.svg +++ b/frontend/app/svg/icons/filters/error.svg @@ -1,4 +1 @@ - - - - \ No newline at end of file + \ No newline at end of file diff --git a/frontend/app/svg/icons/funnel.svg b/frontend/app/svg/icons/funnel.svg index 5f29fe302..5c69db749 100644 --- a/frontend/app/svg/icons/funnel.svg +++ b/frontend/app/svg/icons/funnel.svg @@ -1,3 +1 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/frontend/app/svg/icons/funnel/exclamation-circle.svg b/frontend/app/svg/icons/funnel/exclamation-circle.svg index 3b32c2a0c..cbf65c624 100644 --- a/frontend/app/svg/icons/funnel/exclamation-circle.svg +++ b/frontend/app/svg/icons/funnel/exclamation-circle.svg @@ -1,4 +1 @@ - - - - \ No newline at end of file + \ No newline at end of file diff --git a/frontend/app/svg/icons/graph-up.svg b/frontend/app/svg/icons/graph-up.svg index 3a8d30c84..05493fd82 100644 --- a/frontend/app/svg/icons/graph-up.svg +++ b/frontend/app/svg/icons/graph-up.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/frontend/app/svg/icons/ic-errors.svg b/frontend/app/svg/icons/ic-errors.svg index 3b32c2a0c..a1db73a3d 100644 --- a/frontend/app/svg/icons/ic-errors.svg +++ b/frontend/app/svg/icons/ic-errors.svg @@ -1,4 +1 @@ - - - - \ No newline at end of file + \ No newline at end of file diff --git a/frontend/app/svg/icons/list-alt.svg b/frontend/app/svg/icons/list-alt.svg index 1ff78196c..8ecaa917f 100644 --- a/frontend/app/svg/icons/list-alt.svg +++ b/frontend/app/svg/icons/list-alt.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/frontend/app/svg/icons/signpost-split.svg b/frontend/app/svg/icons/signpost-split.svg index ca20fd1a4..0497a2298 100644 --- a/frontend/app/svg/icons/signpost-split.svg +++ b/frontend/app/svg/icons/signpost-split.svg @@ -1,3 +1,18 @@ - - + + + + \ No newline at end of file diff --git a/frontend/app/svg/icons/user-journey.svg b/frontend/app/svg/icons/user-journey.svg new file mode 100644 index 000000000..0497a2298 --- /dev/null +++ b/frontend/app/svg/icons/user-journey.svg @@ -0,0 +1,18 @@ + + + + + \ No newline at end of file