@cdc/core 4.24.9-1 → 4.24.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/assets/icon-combo-chart.svg +1 -0
  2. package/assets/icon-epi-chart.svg +27 -0
  3. package/components/BlurStrokeText.tsx +44 -0
  4. package/components/DataTable/DataTable.tsx +51 -35
  5. package/components/DataTable/DataTableStandAlone.tsx +37 -6
  6. package/components/DataTable/components/ChartHeader.tsx +31 -26
  7. package/components/DataTable/components/MapHeader.tsx +19 -10
  8. package/components/DataTable/components/SortIcon/index.tsx +25 -0
  9. package/components/DataTable/components/SortIcon/sort-icon.css +21 -0
  10. package/{styles/_data-table.scss → components/DataTable/data-table.css} +268 -298
  11. package/components/DataTable/helpers/customSort.ts +11 -15
  12. package/components/DataTable/helpers/getDataSeriesColumns.ts +5 -1
  13. package/components/DataTable/helpers/getNewSortBy.ts +35 -0
  14. package/components/DataTable/helpers/tests/customSort.test.ts +52 -0
  15. package/components/DataTable/helpers/tests/getNewSortBy.test.ts +26 -0
  16. package/components/EditorPanel/DataTableEditor.tsx +132 -26
  17. package/components/EditorPanel/Inputs.tsx +42 -4
  18. package/components/EditorPanel/VizFilterEditor/NestedDropdownEditor.tsx +25 -7
  19. package/components/EditorPanel/VizFilterEditor/VizFilterEditor.tsx +1 -1
  20. package/components/{Filters.tsx → Filters/Filters.tsx} +48 -39
  21. package/components/Filters/helpers/applyQueuedActive.ts +12 -0
  22. package/components/Filters/helpers/getNestedOptions.ts +29 -0
  23. package/components/Filters/helpers/handleSorting.ts +18 -0
  24. package/components/Filters/helpers/tests/applyQueuedActive.test.ts +49 -0
  25. package/components/Filters/helpers/tests/getNestedOptions.test.ts +93 -0
  26. package/components/Filters/helpers/tests/handleSorting.test.ts +68 -0
  27. package/components/Filters/index.ts +5 -0
  28. package/components/Layout/components/Sidebar/components/sidebar.styles.scss +1 -3
  29. package/components/Legend/Legend.Gradient.tsx +2 -9
  30. package/components/Loader/Loader.tsx +33 -0
  31. package/components/Loader/index.ts +1 -0
  32. package/components/Loader/loader.styles.css +13 -0
  33. package/components/NestedDropdown/NestedDropdown.tsx +90 -48
  34. package/components/NestedDropdown/nestedDropdownHelpers.ts +34 -0
  35. package/components/NestedDropdown/nesteddropdown.styles.css +7 -0
  36. package/components/NestedDropdown/tests/nestedDropdownHelpers.test.ts +58 -0
  37. package/components/Table/components/GroupRow.tsx +1 -1
  38. package/components/_stories/BlurStrokeTest.stories.tsx +27 -0
  39. package/components/_stories/NestedDropdown.stories.tsx +22 -46
  40. package/components/_stories/_mocks/nested-dropdown.json +30 -0
  41. package/components/_stories/styles.scss +0 -1
  42. package/components/ui/{Tooltip.jsx → Tooltip.tsx} +38 -14
  43. package/data/colorPalettes.js +107 -10
  44. package/dist/cove-main.css +6114 -0
  45. package/dist/cove-main.css.map +1 -0
  46. package/helpers/addValuesToFilters.ts +8 -3
  47. package/helpers/cove/number.js +46 -25
  48. package/helpers/coveUpdateWorker.ts +6 -7
  49. package/helpers/pivotData.ts +52 -11
  50. package/helpers/tests/gatherQueryParams.test.ts +13 -1
  51. package/helpers/tests/pivotData.test.ts +50 -0
  52. package/helpers/ver/4.24.10.ts +47 -0
  53. package/helpers/ver/4.24.9.ts +0 -3
  54. package/helpers/ver/tests/4.24.10.test.ts +45 -0
  55. package/helpers/viewports.ts +9 -0
  56. package/package.json +7 -3
  57. package/styles/_button-section.scss +4 -0
  58. package/styles/_global-variables.scss +19 -1
  59. package/styles/_global.scss +1 -8
  60. package/styles/_reset.scss +2 -15
  61. package/styles/base.scss +0 -1
  62. package/styles/cove-main.scss +6 -0
  63. package/styles/filters.scss +6 -4
  64. package/styles/v2/components/ui/tooltip.scss +42 -40
  65. package/styles/v2/layout/_component.scss +0 -6
  66. package/styles/v2/layout/index.scss +0 -1
  67. package/types/Axis.ts +2 -0
  68. package/types/General.ts +1 -0
  69. package/types/Table.ts +2 -1
  70. package/types/Visualization.ts +13 -1
  71. package/types/VizFilter.ts +2 -1
  72. package/components/DataTable/components/Icons.tsx +0 -10
  73. package/components/_stories/EditorPanel.stories.tsx +0 -54
  74. package/components/_stories/Layout.Debug.stories.tsx +0 -91
@@ -0,0 +1,58 @@
1
+ import { describe, it, expect, vi } from 'vitest'
2
+ import { filterSearchTerm, NestedOptions } from '../nestedDropdownHelpers'
3
+
4
+ describe('filterSearchTerm()', () => {
5
+ const optsMemo: NestedOptions = [
6
+ [['Fruits'], [['Apple'], ['Cantaloupe'], ['Orange'], ['Tomato']]],
7
+ [['Vegetables'], [['Spinach'], ['Broccoli'], ['Carrot'], ['Tomato']]],
8
+ [
9
+ ['Fungi', 'Mushrooms'],
10
+ [['Portobello', 'Mushroom 1'], ['Morel, Mushroom 2'], ['Chanterelle', 'Mushroom 3']]
11
+ ]
12
+ ]
13
+ it('Return the original OptsMemo when there is no search term', () => {
14
+ const result = filterSearchTerm('', optsMemo)
15
+ expect(result).toEqual(optsMemo)
16
+ const result2 = filterSearchTerm(undefined, optsMemo)
17
+ expect(result2).toEqual(optsMemo)
18
+ })
19
+ it('Return the empty array if there is no match to search term', () => {
20
+ const result = filterSearchTerm('Pizza', optsMemo)
21
+ expect(result).toEqual([])
22
+ })
23
+ it('Filter out the top level groupings', () => {
24
+ const result = filterSearchTerm('', optsMemo)
25
+ expect(result).toEqual(optsMemo)
26
+ const result2 = filterSearchTerm('fruit', optsMemo)
27
+ const expectedResult2: NestedOptions = [[['Fruits'], [['Apple'], ['Cantaloupe'], ['Orange'], ['Tomato']]]]
28
+ expect(result2).toEqual(expectedResult2)
29
+ const result3 = filterSearchTerm('VEG', optsMemo)
30
+ const expectedResult3: NestedOptions = [[['Vegetables'], [['Spinach'], ['Broccoli'], ['Carrot'], ['Tomato']]]]
31
+ expect(result3).toEqual(expectedResult3)
32
+ const result4 = filterSearchTerm('mush', optsMemo)
33
+ const expectedResult4: NestedOptions = [
34
+ [
35
+ ['Fungi', 'Mushrooms'],
36
+ [['Portobello', 'Mushroom 1'], ['Morel, Mushroom 2'], ['Chanterelle', 'Mushroom 3']]
37
+ ]
38
+ ]
39
+ expect(result4).toEqual(expectedResult4)
40
+ })
41
+ it('Filter out the subvalues', () => {
42
+ const result = filterSearchTerm('ap', optsMemo)
43
+ const expectedResult: NestedOptions = [[['Fruits'], [['Apple']]]]
44
+ expect(result).toEqual(expectedResult)
45
+ const result2 = filterSearchTerm('ca', optsMemo)
46
+ const expectedResult2: NestedOptions = [
47
+ [['Fruits'], [['Cantaloupe']]],
48
+ [['Vegetables'], [['Carrot']]]
49
+ ]
50
+ expect(result2).toEqual(expectedResult2)
51
+ const result3 = filterSearchTerm('tomato', optsMemo)
52
+ const expectedResult3: NestedOptions = [
53
+ [['Fruits'], [['Tomato']]],
54
+ [['Vegetables'], [['Tomato']]]
55
+ ]
56
+ expect(result3).toEqual(expectedResult3)
57
+ })
58
+ })
@@ -8,7 +8,7 @@ type GroupRowProps = {
8
8
 
9
9
  const GroupRow = ({ label, colSpan, data }: GroupRowProps) => {
10
10
  return (
11
- <tr>
11
+ <tr className='row-group'>
12
12
  <th scope='colgroup' colSpan={colSpan}>
13
13
  {label}
14
14
  </th>
@@ -0,0 +1,27 @@
1
+ import { a } from 'vitest/dist/suite-IbNSsUWN'
2
+ import { BlurStrokeText } from '../BlurStrokeText'
3
+ import { Meta, StoryObj } from '@storybook/react'
4
+
5
+ const meta: Meta<typeof BlurStrokeText> = {
6
+ title: 'Components/Atoms/BlurStrokeText',
7
+ component: BlurStrokeText
8
+ }
9
+
10
+ export default meta
11
+
12
+ type Story = StoryObj<typeof BlurStrokeText>
13
+
14
+ export const Default: Story = {
15
+ render: args => (
16
+ <svg width='300' height='100' style={{ backgroundColor: '#464646' }}>
17
+ <BlurStrokeText {...args}>A feathered stroke option</BlurStrokeText>
18
+ </svg>
19
+ ),
20
+ args: {
21
+ fontSize: 15,
22
+ y: 50,
23
+ x: 50,
24
+ blurRadius: 1,
25
+ disableStroke: false
26
+ }
27
+ }
@@ -1,58 +1,34 @@
1
1
  import { Meta, StoryObj } from '@storybook/react'
2
-
3
2
  import NestedDropdown from '../NestedDropdown'
3
+ import nestedDropdownStory from './_mocks/nested-dropdown.json'
4
+ import { useState } from 'react'
4
5
 
5
6
  const meta: Meta<typeof NestedDropdown> = {
6
7
  title: 'Components/Molecules/NestedDropdown',
7
8
  component: NestedDropdown
8
9
  }
9
10
 
11
+ const Template = args => {
12
+ const [currentStoryFilter, setCurrentStoryFilter] = useState({
13
+ ...nestedDropdownStory
14
+ })
15
+ return (
16
+ <NestedDropdown
17
+ listLabel='Age'
18
+ handleSelectedItems={([group, subGroup]) => {
19
+ setCurrentStoryFilter({
20
+ ...currentStoryFilter,
21
+ active: group,
22
+ subGrouping: { ...currentStoryFilter.subGrouping, active: subGroup }
23
+ })
24
+ }}
25
+ currentFilter={currentStoryFilter}
26
+ />
27
+ )
28
+ }
29
+
10
30
  type Story = StoryObj<typeof NestedDropdown>
11
31
 
12
- export const Primary: Story = {
13
- args: {
14
- data: [
15
- {
16
- country: 'USA',
17
- region: 'Region1'
18
- },
19
- {
20
- country: 'USA',
21
- region: 'Florida'
22
- },
23
- {
24
- country: 'USA',
25
- region: 'Iowa'
26
- },
27
- {
28
- country: 'Country2',
29
- region: 'Region1'
30
- },
31
- {
32
- country: 'Country2',
33
- region: 'Region2'
34
- },
35
- {
36
- country: 'Country2',
37
- region: 'Region3'
38
- },
39
- {
40
- country: 'Italy',
41
- region: 'Region1'
42
- },
43
- {
44
- country: 'Italy',
45
- region: 'Naples'
46
- },
47
- {
48
- country: 'Italy',
49
- region: 'Region3'
50
- }
51
- ],
52
- tiers: ['country', 'region'],
53
- listLabel: 'Countries of the World',
54
- handleSelectedItems: console.log
55
- }
56
- }
32
+ export const Primary: Story = Template.bind({})
57
33
 
58
34
  export default meta
@@ -0,0 +1,30 @@
1
+ {
2
+ "key": "New Dashboard Filter 1",
3
+ "showDropdown": true,
4
+ "values": ["Age Group", "Age Group 2", "Age Group 3"],
5
+ "orderedValues": ["Age Group", "Age Group 2", "Age Group 3"],
6
+ "type": "datafilter",
7
+ "filterStyle": "nested-dropdown",
8
+ "columnName": "StratficationCategory1",
9
+ "active": "",
10
+ "subGrouping": {
11
+ "columnName": "Stratification1",
12
+ "active": "",
13
+ "valuesLookup": {
14
+ "Age Group": {
15
+ "orderedValues": ["50-64 years", "65 years or older", "Overall"],
16
+ "values": ["50-64 years", "65 years or older", "Overall"]
17
+ },
18
+ "Age Group 2": {
19
+ "orderedValues": ["65 years or older", "Overall"],
20
+ "values": ["65 years or older", "Overall"]
21
+ },
22
+ "Age Group 3": {
23
+ "orderedValues": ["50-64 years", "Overall"],
24
+ "values": ["50-64 years", "Overall"]
25
+ }
26
+ }
27
+ },
28
+ "usedBy": ["chart1724946676832"],
29
+ "tier": 1
30
+ }
@@ -1,7 +1,6 @@
1
1
  @import '../../styles/base.scss';
2
2
  @import '../../styles/_variables';
3
3
  @import '../../styles/_mixins';
4
- @import '../../styles/_data-table';
5
4
  @import '../../styles/_global.scss';
6
5
 
7
6
  .visually-hidden {
@@ -2,6 +2,7 @@ import { useId } from 'react'
2
2
 
3
3
  // Third Party
4
4
  import { Tooltip as ReactTooltip } from 'react-tooltip'
5
+ import type { PlacesType } from 'react-tooltip'
5
6
 
6
7
  // Styles
7
8
  import '../../styles/v2/components/ui/tooltip.scss'
@@ -9,33 +10,56 @@ import '../../styles/v2/components/ui/tooltip.scss'
9
10
  const TooltipTarget = children => children
10
11
  const TooltipContent = children => children
11
12
 
12
- const Tooltip = ({ place = 'top', trigger = 'hover', float = false, shadow = true, border = false, children, style, ...attributes }) => {
13
+ type ToolTipProps = {
14
+ place?: PlacesType
15
+ trigger?: 'hover' | 'focus' | 'click'
16
+ float?: boolean
17
+ shadow?: boolean
18
+ border?: boolean
19
+ children: React.ReactElement[]
20
+ style?: React.CSSProperties
21
+ }
22
+
23
+ const Tooltip: React.FC<ToolTipProps> & { Target; Content } = ({
24
+ place = 'top',
25
+ trigger = 'hover',
26
+ float = false,
27
+ shadow = true,
28
+ border = false,
29
+ children,
30
+ style,
31
+ ...attributes
32
+ }) => {
13
33
  const tooltipTargetChildren = children.find(el => el.type === TooltipTarget)
14
34
  const tooltipContentChildren = children.find(el => el.type === TooltipContent)
15
35
 
16
36
  const uid = 'tooltip-' + useId()
17
37
 
18
- const generateTriggerEvent = trigger => {
19
- const eventList = {
20
- hover: null,
21
- focus: 'focus',
22
- click: 'click focus'
23
- }
24
- return eventList[trigger]
25
- }
26
-
27
38
  return (
28
39
  <span className='cove-tooltip' style={style} {...attributes}>
29
- <a id={uid} role='dialog' tabIndex={0} className='cove-tooltip--target' data-tooltip-float={float} data-tooltip-place={place} data-tooltip-events={generateTriggerEvent()}>
40
+ <a
41
+ id={uid}
42
+ role='dialog'
43
+ tabIndex={0}
44
+ className='cove-tooltip--target'
45
+ data-tooltip-float={float}
46
+ data-tooltip-place={place}
47
+ data-tooltip-isOpen={true}
48
+ >
30
49
  {tooltipTargetChildren ? tooltipTargetChildren.props.children : null}
31
50
  </a>
32
- {/* prettier-ignore */}
33
51
  <ReactTooltip
34
52
  id={uid}
35
53
  // ! do not remove the deprecated property, it will break tooltips in the editor.
36
54
  anchorId={uid}
37
- className={'cove-tooltip__content' + (' place-' + place) + (!float ? ' cove-tooltip__content--animated' : '') + (trigger === 'click' ? ' interactive' : '') + (border ? (' cove-tooltip--border') : '') + (shadow ? ' has-shadow' : '')}
38
- globalEventOff="click"
55
+ className={
56
+ 'cove-tooltip__content' +
57
+ (' place-' + place) +
58
+ (!float ? ' cove-tooltip__content--animated' : '') +
59
+ (trigger === 'click' ? ' interactive' : '') +
60
+ (border ? ' cove-tooltip--border' : '') +
61
+ (shadow ? ' has-shadow' : '')
62
+ }
39
63
  >
40
64
  {tooltipContentChildren ? tooltipContentChildren.props.children : null}
41
65
  </ReactTooltip>
@@ -3,30 +3,105 @@ import { updatePaletteNames } from '../helpers/updatePaletteNames'
3
3
 
4
4
  const colorPalettesMap = {
5
5
  yelloworangered: ['#ffffcc', '#ffeda0', '#fed976', '#feb24c', '#fd8d3c', '#fc4e2a', '#e31a1c', '#bd0026', '#800026'],
6
- yelloworangebrown: ['#ffffe5', '#fff7bc', '#fee391', '#fec44f', '#fe9929', '#ec7014', '#cc4c02', '#993404', '#662506'],
6
+ yelloworangebrown: [
7
+ '#ffffe5',
8
+ '#fff7bc',
9
+ '#fee391',
10
+ '#fec44f',
11
+ '#fe9929',
12
+ '#ec7014',
13
+ '#cc4c02',
14
+ '#993404',
15
+ '#662506'
16
+ ],
7
17
  pinkpurple: ['#fff7f3', '#fde0dd', '#fcc5c0', '#fa9fb5', '#f768a1', '#dd3497', '#ae017e', '#7a0177', '#49006a'],
8
18
  bluegreen: ['#fff7fb', '#ece2f0', '#d0d1e6', '#a6bddb', '#67a9cf', '#3690c0', '#02818a', '#016c59', '#014636'],
9
19
  orangered: ['#fff7ec', '#fee8c8', '#fdd49e', '#fdbb84', '#fc8d59', '#ef6548', '#d7301f', '#b30000', '#7f0000'],
10
20
  red: ['#fff5f0', '#fee0d2', '#fcbba1', '#fc9272', '#fb6a4a', '#ef3b2c', '#cb181d', '#a50f15', '#67000d'],
11
21
  greenblue: ['#f7fcf0', '#e0f3db', '#ccebc5', '#a8ddb5', '#7bccc4', '#4eb3d3', '#267BA6', '#0868ac', '#084081'],
12
22
  yellowpurple: ['#FFF0B0', '#F5CC76', '#EDAE4B', '#E3683C', '#BF2A48', '#6D2059', '#8F0C4B', '#310958', '#0E0943'],
13
- qualitative1: ['#a6cee3', '#1f78b4', '#b2df8a', '#33a02c', '#fb9a99', '#e31a1c', '#6a3d9a', '#cab2d6', '#E31A90', '#15017A', '#C2C0FC'],
23
+ qualitative1: [
24
+ '#a6cee3',
25
+ '#1f78b4',
26
+ '#b2df8a',
27
+ '#33a02c',
28
+ '#fb9a99',
29
+ '#e31a1c',
30
+ '#6a3d9a',
31
+ '#cab2d6',
32
+ '#E31A90',
33
+ '#15017A',
34
+ '#C2C0FC'
35
+ ],
14
36
  qualitative2: ['#7fc97f', '#beaed4', '#ff9', '#386cb0', '#f0027f', '#bf5b17', '#666', '#fedab8'],
15
37
  qualitative3: ['#1b9e77', '#d95f02', '#7570b3', '#e7298a', '#66a61e', '#e6ab02', '#a6761d', '#666'],
16
38
  qualitative4: ['#e41a1c', '#377eb8', '#4daf4a', '#984ea3', '#ff7f00', '#ff3', '#a65628', '#f781bf'],
17
39
  // qualitative9 doesn't appear to be used anywhere...
18
40
  qualitative9: ['#497d0c', '#84BC49', '#88c3ea', '#fcad90', '#f26b4f', '#c31b1f', '#c31b1f'],
19
- 'sequential-blue-2(MPX)': ['#F5FEFF', '#E1FBFF', '#C0F2FD', '#94E2ED', '#5EBAD4', '#3695BE', '#2273A0', '#0E5181', '#093460'],
20
- 'sequential-orange(MPX)': ['#FFFDF0', '#FFF7DC', '#FFE9C2', '#FFD097', '#F7A866', '#EB7723', '#B95117', '#853209', '#661F00']
41
+ 'sequential-blue-2(MPX)': [
42
+ '#F5FEFF',
43
+ '#E1FBFF',
44
+ '#C0F2FD',
45
+ '#94E2ED',
46
+ '#5EBAD4',
47
+ '#3695BE',
48
+ '#2273A0',
49
+ '#0E5181',
50
+ '#093460'
51
+ ],
52
+ 'sequential-orange(MPX)': [
53
+ '#FFFDF0',
54
+ '#FFF7DC',
55
+ '#FFE9C2',
56
+ '#FFD097',
57
+ '#F7A866',
58
+ '#EB7723',
59
+ '#B95117',
60
+ '#853209',
61
+ '#661F00'
62
+ ],
63
+ colorblindsafe: ['#e69f00', '#56b4e9', '#009e73', '#f0e442', '#0072b2', '#d55e00', '#cc79a7', '#000000', '#7e5803']
21
64
  }
22
65
 
23
66
  // * ============= Palettes for Chart project ========== * //
24
67
 
25
68
  const colorPalettes2 = {
26
- 'qualitative-bold': ['#377eb8', '#ff7f00', '#4daf4a', '#984ea3', '#e41a1c', '#ffff33', '#a65628', '#f781bf', '#3399CC'],
69
+ 'qualitative-bold': [
70
+ '#377eb8',
71
+ '#ff7f00',
72
+ '#4daf4a',
73
+ '#984ea3',
74
+ '#e41a1c',
75
+ '#ffff33',
76
+ '#a65628',
77
+ '#f781bf',
78
+ '#3399CC'
79
+ ],
27
80
 
28
- 'qualitative-soft': ['#A6CEE3', '#1F78B4', '#B2DF8A', '#33A02C', '#FB9A99', '#E31A1C', '#FDBF6F', '#FF7F00', '#ACA9EB'],
29
- qualitative1: ['#a6cee3', '#1f78b4', '#b2df8a', '#33a02c', '#fb9a99', '#e31a1c', '#6a3d9a', '#cab2d6', '#E31A90', '#15017A', '#C2C0FC'],
81
+ 'qualitative-soft': [
82
+ '#A6CEE3',
83
+ '#1F78B4',
84
+ '#B2DF8A',
85
+ '#33A02C',
86
+ '#FB9A99',
87
+ '#E31A1C',
88
+ '#FDBF6F',
89
+ '#FF7F00',
90
+ '#ACA9EB'
91
+ ],
92
+ qualitative1: [
93
+ '#a6cee3',
94
+ '#1f78b4',
95
+ '#b2df8a',
96
+ '#33a02c',
97
+ '#fb9a99',
98
+ '#e31a1c',
99
+ '#6a3d9a',
100
+ '#cab2d6',
101
+ '#E31A90',
102
+ '#15017A',
103
+ '#C2C0FC'
104
+ ],
30
105
 
31
106
  qualitative2: ['#7fc97f', '#beaed4', '#ff9', '#386cb0', '#f0027f', '#bf5b17', '#666', '#fedab8'],
32
107
 
@@ -37,7 +112,9 @@ const colorPalettes2 = {
37
112
  'sequential-blue': ['#C6DBEF', '#9ECAE1', '#6BAED6', '#4292C6', '#2171B5', '#084594'],
38
113
  'sequential-blue-2-(MPX)': ['#D5F6F9', '#99E2ED', '#5FB6D1', '#3189B0', '#116091', '#0A3E72'],
39
114
  'sequential-orange-(MPX)': ['#FFEFCF', '#FFD49C', '#F7A866', '#EB7723', '#B95117', '#862B0B'],
40
- 'sequential-green': ['#C7E9C0', '#A1D99B', '#74C476', '#41AB5D', '#238B45', '#005A32']
115
+ 'sequential-green': ['#C7E9C0', '#A1D99B', '#74C476', '#41AB5D', '#238B45', '#005A32'],
116
+
117
+ colorblindsafe: ['#e69f00', '#56b4e9', '#009e73', '#f0e442', '#0072b2', '#d55e00', '#cc79a7', '#000000', '#7e5803']
41
118
  }
42
119
  // * ============= Palettes for Paired bar Chart ========== * //
43
120
  export const colorPalettes3 = {
@@ -62,9 +139,29 @@ export const colorPalettes3 = {
62
139
  const sequentialColors = {
63
140
  'Sequential Blue': ['#C6DBEF', '#9ECAE1', '#6BAED6', '#4292C6', '#2171B5', '#084594'],
64
141
  'Sequential Blue Two': ['#D5F6F9', '#99E2ED', '#5FB6D1', '#3189B0', '#116091', '#0A3E72'],
65
- 'Sequential Blue Three': ['#F5FEFF', '#E1FBFF', '#C0F2FD', '#94E2ED', '#5EBAD4', '#3695BE', '#2273A0', '#0E5181', '#093460'],
142
+ 'Sequential Blue Three': [
143
+ '#F5FEFF',
144
+ '#E1FBFF',
145
+ '#C0F2FD',
146
+ '#94E2ED',
147
+ '#5EBAD4',
148
+ '#3695BE',
149
+ '#2273A0',
150
+ '#0E5181',
151
+ '#093460'
152
+ ],
66
153
  'Sequential Orange': ['#FFEFCF', '#FFD49C', '#F7A866', '#EB7723', '#B95117', '#862B0B'],
67
- 'Sequential Orange Two': ['#FFFDF0', '#FFF7DC', '#FFE9C2', '#FFD097', '#F7A866', '#EB7723', '#B95117', '#853209', '#661F00'],
154
+ 'Sequential Orange Two': [
155
+ '#FFFDF0',
156
+ '#FFF7DC',
157
+ '#FFE9C2',
158
+ '#FFD097',
159
+ '#F7A866',
160
+ '#EB7723',
161
+ '#B95117',
162
+ '#853209',
163
+ '#661F00'
164
+ ],
68
165
  'Sequential Green': ['#C7E9C0', '#A1D99B', '#74C476', '#41AB5D', '#238B45', '#005A32']
69
166
  }
70
167