@gitlab/ui 48.1.2 → 48.3.0

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 (24) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/components/base/datepicker/datepicker.js +16 -17
  3. package/dist/components/base/filtered_search/filtered_search.js +25 -1
  4. package/dist/components/base/filtered_search/filtered_search_token.js +2 -0
  5. package/dist/components/base/filtered_search/filtered_search_token_segment.js +44 -1
  6. package/dist/utility_classes.css +1 -1
  7. package/dist/utility_classes.css.map +1 -1
  8. package/dist/utils/charts/theme.js +27 -27
  9. package/package.json +2 -2
  10. package/scss_to_js/scss_variables.js +43 -43
  11. package/scss_to_js/scss_variables.json +86 -86
  12. package/src/components/base/avatar/avatar.stories.js +3 -3
  13. package/src/components/base/avatars_inline/avatars_inline.stories.js +5 -5
  14. package/src/components/base/datepicker/datepicker.spec.js +8 -0
  15. package/src/components/base/datepicker/datepicker.vue +16 -18
  16. package/src/components/base/filtered_search/filtered_search.spec.js +14 -5
  17. package/src/components/base/filtered_search/filtered_search.vue +31 -13
  18. package/src/components/base/filtered_search/filtered_search_token.vue +3 -0
  19. package/src/components/base/filtered_search/filtered_search_token_segment.spec.js +7 -7
  20. package/src/components/base/filtered_search/filtered_search_token_segment.vue +39 -1
  21. package/src/components/charts/bar/__snapshots__/bar.spec.js.snap +3 -3
  22. package/src/components/charts/column/__snapshots__/column_chart.spec.js.snap +11 -11
  23. package/src/components/charts/stacked_column/__snapshots__/stacked_column.spec.js.snap +23 -23
  24. package/src/scss/variables.scss +44 -44
@@ -179,7 +179,7 @@ export default {
179
179
  },
180
180
  computed: {
181
181
  formattedDate() {
182
- return this.$options.pikaday.calendar && this.$options.pikaday.calendar.toString();
182
+ return 'calendar' in this && this.calendar.toString();
183
183
  },
184
184
  customTrigger() {
185
185
  return isString(this.target) && this.target !== '';
@@ -207,21 +207,21 @@ export default {
207
207
  },
208
208
  watch: {
209
209
  value(val) {
210
- if (!areDatesEqual(val, this.$options.pikaday.calendar.getDate())) {
211
- this.$options.pikaday.calendar.setDate(val, true);
210
+ if (!areDatesEqual(val, this.calendar.getDate())) {
211
+ this.calendar.setDate(val, true);
212
212
  }
213
213
  },
214
214
  minDate(minDate) {
215
- this.$options.pikaday.calendar.setMinDate(minDate);
215
+ this.calendar.setMinDate(minDate);
216
216
  },
217
217
  maxDate(maxDate) {
218
- this.$options.pikaday.calendar.setMaxDate(maxDate);
218
+ this.calendar.setMaxDate(maxDate);
219
219
  },
220
220
  startRange(startRange) {
221
- this.$options.pikaday.calendar.setStartRange(startRange);
221
+ this.calendar.setStartRange(startRange);
222
222
  },
223
223
  endRange(endRange) {
224
- this.$options.pikaday.calendar.setEndRange(endRange);
224
+ this.calendar.setEndRange(endRange);
225
225
  },
226
226
  },
227
227
  mounted() {
@@ -279,16 +279,21 @@ export default {
279
279
  pikadayConfig.i18n = this.i18n;
280
280
  }
281
281
 
282
- this.$options.pikaday.calendar = new Pikaday(pikadayConfig);
282
+ this.calendar = new Pikaday(pikadayConfig);
283
283
 
284
284
  if (this.startOpened) {
285
- this.$options.pikaday.calendar.show();
285
+ this.calendar.show();
286
286
  }
287
287
  },
288
288
  beforeDestroy() {
289
- this.$options.pikaday.calendar.destroy();
289
+ this.calendar.destroy();
290
290
  },
291
291
  methods: {
292
+ // is used to open datepicker programmatically
293
+ show() {
294
+ this.calendar.show();
295
+ },
296
+
292
297
  selected(date) {
293
298
  /**
294
299
  * Emitted when a new date has been selected.
@@ -324,18 +329,11 @@ export default {
324
329
  onKeydown() {
325
330
  if (this.textInput === '') {
326
331
  const resetDate = this.minDate || null;
327
- this.$options.pikaday.calendar.setDate(resetDate);
332
+ this.calendar.setDate(resetDate);
328
333
  this.selected(resetDate);
329
334
  }
330
335
  },
331
336
  },
332
-
333
- // Vue3 will make this.$options shallow-readonly
334
- // that means that in order to store anything in $options
335
- // we need an object as a container
336
- pikaday: {
337
- calendar: null,
338
- },
339
337
  };
340
338
  </script>
341
339
 
@@ -10,11 +10,20 @@ import { TERM_TOKEN_TYPE, INTENT_ACTIVATE_PREVIOUS } from './filtered_search_uti
10
10
 
11
11
  jest.mock('~/directives/tooltip');
12
12
 
13
- const FakeToken = {
13
+ // Vue3 is very agressive around making components reactive
14
+ // While keeping Vue2 compatibility we avoid using `markRaw`
15
+ function avoidReactivity(Component) {
16
+ // mutation of component is intentional
17
+ // eslint-disable-next-line no-underscore-dangle, no-param-reassign
18
+ Component.__v_skip = true;
19
+ return Component;
20
+ }
21
+
22
+ const FakeToken = avoidReactivity({
14
23
  props: ['active'],
15
24
  inheritAttrs: false,
16
25
  render: (h) => h('div'),
17
- };
26
+ });
18
27
 
19
28
  Vue.directive('GlTooltip', () => {});
20
29
 
@@ -541,7 +550,7 @@ describe('Filtered search integration tests', () => {
541
550
  {
542
551
  type: 'static',
543
552
  icon: 'label',
544
- token: GlFilteredSearchToken,
553
+ token: avoidReactivity(GlFilteredSearchToken),
545
554
  title: 'Static-token',
546
555
  options: [
547
556
  { title: 'first', value: 'one' },
@@ -554,7 +563,7 @@ describe('Filtered search integration tests', () => {
554
563
  type: 'unique',
555
564
  unique: true,
556
565
  icon: 'document',
557
- token: GlFilteredSearchToken,
566
+ token: avoidReactivity(GlFilteredSearchToken),
558
567
  title: 'Unique-token',
559
568
  options: [
560
569
  { title: 'first', value: 'one' },
@@ -692,7 +701,7 @@ describe('Filtered search integration tests', () => {
692
701
 
693
702
  await nextTick();
694
703
 
695
- input.trigger('keydown', { key: 'Enter' });
704
+ await input.trigger('keydown', { key: 'Enter' });
696
705
 
697
706
  await nextTick();
698
707
 
@@ -61,6 +61,24 @@ export default {
61
61
  type: Array,
62
62
  required: false,
63
63
  default: () => [],
64
+ validator(value) {
65
+ // eslint-disable-next-line no-underscore-dangle
66
+ if (!value.__v_raw) {
67
+ // This is Vue 2
68
+ return true;
69
+ }
70
+
71
+ // eslint-disable-next-line no-underscore-dangle
72
+ const isOk = Array.isArray(value) && value.every(({ token }) => token.__v_skip);
73
+ if (!isOk) {
74
+ // eslint-disable-next-line no-console
75
+ console.warn(
76
+ 'You are using Vue3. In Vue3 each token component passed to filtered search must be wrapped into markRaw'
77
+ );
78
+ }
79
+
80
+ return isOk;
81
+ },
64
82
  },
65
83
  /**
66
84
  * If provided, used as history items for this component
@@ -332,19 +350,6 @@ export default {
332
350
  </script>
333
351
 
334
352
  <template>
335
- <!--
336
- Emitted when search is cleared
337
- @event clear
338
- -->
339
- <!--
340
- Emitted when item from history is selected
341
- @event history-item-selected
342
- @property {object} value History item
343
- -->
344
- <!--
345
- Emitted when clear history button is clicked
346
- @event clear-history
347
- -->
348
353
  <gl-search-box-by-click
349
354
  v-bind="$attrs"
350
355
  :value="tokens"
@@ -406,5 +411,18 @@ export default {
406
411
  :style="suggestionsStyle"
407
412
  />
408
413
  </template>
414
+ <!--
415
+ Emitted when search is cleared
416
+ @event clear
417
+ -->
418
+ <!--
419
+ Emitted when item from history is selected
420
+ @event history-item-selected
421
+ @property {object} value History item
422
+ -->
423
+ <!--
424
+ Emitted when clear history button is clicked
425
+ @event clear-history
426
+ -->
409
427
  </gl-search-box-by-click>
410
428
  </template>
@@ -17,6 +17,9 @@ const DEFAULT_OPERATORS = [
17
17
 
18
18
  export default {
19
19
  name: 'GlFilteredSearchToken',
20
+ // FIXME: temporary workaround to ensure compatibility with @vue/compat
21
+ __v_skip: true,
22
+
20
23
  components: {
21
24
  GlToken,
22
25
  GlFilteredSearchTokenSegment,
@@ -321,14 +321,14 @@ describe('Filtered search token segment', () => {
321
321
  );
322
322
  });
323
323
 
324
- describe.each([true, false])('and viewOnly is %s', (viewOnly) => {
325
- const readonly = viewOnly ? 'readonly' : undefined;
326
-
327
- it(`sets the input \`readonly\` atttribute to ${readonly}`, () => {
328
- createWrappedComponent({ value: 'test', active: true, viewOnly });
324
+ it('sets the input `readonly` atttribute when viewOnly is true', () => {
325
+ createWrappedComponent({ value: 'test', active: true, viewOnly: true });
326
+ expect(wrapper.find('input').attributes('readonly')).toBeDefined();
327
+ });
329
328
 
330
- expect(wrapper.find('input').attributes('readonly')).toBe(readonly);
331
- });
329
+ it('does not set the input `readonly` atttribute when viewOnly is false', () => {
330
+ createWrappedComponent({ value: 'test', active: true, viewOnly: false });
331
+ expect(wrapper.find('input').attributes('readonly')).toBeUndefined();
332
332
  });
333
333
  });
334
334
  });
@@ -6,6 +6,44 @@ import GlFilteredSearchSuggestion from './filtered_search_suggestion.vue';
6
6
  import GlFilteredSearchSuggestionList from './filtered_search_suggestion_list.vue';
7
7
  import { splitOnQuotes, wrapTokenInQuotes } from './filtered_search_utils';
8
8
 
9
+ // We need some helpers to ensure @vue/compat compatibility
10
+ // @vue/compat will render comment nodes for v-if and comments in HTML
11
+ // Also it makes use of fragments - both comments and nodes are Symbols.
12
+ // In Vue3 all of them (Comment, Fragment) are exposed as named exports on vue module
13
+ // However we want to maintain compatibility with Vue2, so taking this hacky approach
14
+ // relying on Symbol.toString()
15
+
16
+ // I'm keeping this directly here instead of helper to increase probability of
17
+ // fixing ASAP and because I don't want this helper to be reused
18
+ // FIXME: replace with Symbols when we will switch to Vue3
19
+
20
+ const isVue3Comment = (vnode) => vnode?.type?.toString?.() === 'Symbol(Comment)';
21
+ const isVue3Fragment = (vnode) => vnode?.type?.toString?.() === 'Symbol(Fragment)';
22
+
23
+ const isVNodeEmpty = (vnode) => {
24
+ if (isVue3Fragment(vnode)) {
25
+ // vnode.children might be an array or single node in edge cases
26
+ return Array.isArray(vnode.children)
27
+ ? vnode.children.every(isVNodeEmpty)
28
+ : isVNodeEmpty(vnode.children);
29
+ }
30
+
31
+ if (isVue3Comment(vnode)) {
32
+ return true;
33
+ }
34
+
35
+ return false;
36
+ };
37
+
38
+ const isSlotNotEmpty = (slot) => {
39
+ if (!slot) {
40
+ return false;
41
+ }
42
+
43
+ const vnodes = typeof slot === 'function' ? slot() : slot;
44
+ return !(Array.isArray(vnodes) ? vnodes.every(isVNodeEmpty) : isVNodeEmpty(vnodes));
45
+ };
46
+
9
47
  export default {
10
48
  name: 'GlFilteredSearchTokenSegment',
11
49
  components: {
@@ -124,7 +162,7 @@ export default {
124
162
 
125
163
  hasOptionsOrSuggestions() {
126
164
  // eslint-disable-next-line @gitlab/vue-prefer-dollar-scopedslots
127
- return this.options?.length || this.$slots.suggestions;
165
+ return this.options?.length || isSlotNotEmpty(this.$slots.suggestions);
128
166
  },
129
167
 
130
168
  defaultSuggestedValue() {
@@ -30,13 +30,13 @@ Object {
30
30
  ],
31
31
  "emphasis": Object {
32
32
  "itemStyle": Object {
33
- "color": "rgba(87, 114, 255, 0.4)",
33
+ "color": "rgba(97, 122, 226, 0.4)",
34
34
  },
35
35
  },
36
36
  "itemStyle": Object {
37
- "borderColor": "#5772ff",
37
+ "borderColor": "#617ae2",
38
38
  "borderWidth": 1,
39
- "color": "rgba(87, 114, 255, 0.2)",
39
+ "color": "rgba(97, 122, 226, 0.2)",
40
40
  },
41
41
  "name": "Office",
42
42
  "stack": "chart",
@@ -46,13 +46,13 @@ Object {
46
46
  ],
47
47
  "emphasis": Object {
48
48
  "itemStyle": Object {
49
- "color": "rgba(87, 114, 255, 0.4)",
49
+ "color": "rgba(97, 122, 226, 0.4)",
50
50
  },
51
51
  },
52
52
  "itemStyle": Object {
53
- "borderColor": "#5772ff",
53
+ "borderColor": "#617ae2",
54
54
  "borderWidth": 1,
55
- "color": "rgba(87, 114, 255, 0.2)",
55
+ "color": "rgba(97, 122, 226, 0.2)",
56
56
  },
57
57
  "name": "Full",
58
58
  "stack": "stacked",
@@ -142,10 +142,10 @@ Object {
142
142
  ],
143
143
  ],
144
144
  "itemStyle": Object {
145
- "color": "#5772ff",
145
+ "color": "#617ae2",
146
146
  },
147
147
  "lineStyle": Object {
148
- "color": "#5772ff",
148
+ "color": "#617ae2",
149
149
  },
150
150
  "name": "Median line",
151
151
  "type": "line",
@@ -236,13 +236,13 @@ Object {
236
236
  ],
237
237
  "emphasis": Object {
238
238
  "itemStyle": Object {
239
- "color": "rgba(87, 114, 255, 0.4)",
239
+ "color": "rgba(97, 122, 226, 0.4)",
240
240
  },
241
241
  },
242
242
  "itemStyle": Object {
243
- "borderColor": "#5772ff",
243
+ "borderColor": "#617ae2",
244
244
  "borderWidth": 1,
245
- "color": "rgba(87, 114, 255, 0.2)",
245
+ "color": "rgba(97, 122, 226, 0.2)",
246
246
  },
247
247
  "name": "Full",
248
248
  "stack": "stacked",
@@ -267,13 +267,13 @@ Object {
267
267
  ],
268
268
  "emphasis": Object {
269
269
  "itemStyle": Object {
270
- "color": "rgba(178, 72, 0, 0.4)",
270
+ "color": "rgba(177, 79, 24, 0.4)",
271
271
  },
272
272
  },
273
273
  "itemStyle": Object {
274
- "borderColor": "#b24800",
274
+ "borderColor": "#b14f18",
275
275
  "borderWidth": 1,
276
- "color": "rgba(178, 72, 0, 0.2)",
276
+ "color": "rgba(177, 79, 24, 0.2)",
277
277
  },
278
278
  "name": "Secondary 1",
279
279
  "stack": "tiled",
@@ -286,13 +286,13 @@ Object {
286
286
  ],
287
287
  "emphasis": Object {
288
288
  "itemStyle": Object {
289
- "color": "rgba(87, 114, 255, 0.4)",
289
+ "color": "rgba(97, 122, 226, 0.4)",
290
290
  },
291
291
  },
292
292
  "itemStyle": Object {
293
- "borderColor": "#5772ff",
293
+ "borderColor": "#617ae2",
294
294
  "borderWidth": 1,
295
- "color": "rgba(87, 114, 255, 0.2)",
295
+ "color": "rgba(97, 122, 226, 0.2)",
296
296
  },
297
297
  "name": "Fun 1",
298
298
  "stack": Array [
@@ -330,13 +330,13 @@ Object {
330
330
  ],
331
331
  "emphasis": Object {
332
332
  "itemStyle": Object {
333
- "color": "rgba(178, 72, 0, 0.4)",
333
+ "color": "rgba(177, 79, 24, 0.4)",
334
334
  },
335
335
  },
336
336
  "itemStyle": Object {
337
- "borderColor": "#b24800",
337
+ "borderColor": "#b14f18",
338
338
  "borderWidth": 1,
339
- "color": "rgba(178, 72, 0, 0.2)",
339
+ "color": "rgba(177, 79, 24, 0.2)",
340
340
  },
341
341
  "name": "Fun 2",
342
342
  "stack": Array [
@@ -374,13 +374,13 @@ Object {
374
374
  ],
375
375
  "emphasis": Object {
376
376
  "itemStyle": Object {
377
- "color": "rgba(0, 148, 182, 0.4)",
377
+ "color": "rgba(0, 144, 177, 0.4)",
378
378
  },
379
379
  },
380
380
  "itemStyle": Object {
381
- "borderColor": "#0094b6",
381
+ "borderColor": "#0090b1",
382
382
  "borderWidth": 1,
383
- "color": "rgba(0, 148, 182, 0.2)",
383
+ "color": "rgba(0, 144, 177, 0.2)",
384
384
  },
385
385
  "name": "Fun 3",
386
386
  "stack": Array [
@@ -540,10 +540,10 @@ Object {
540
540
  28,
541
541
  ],
542
542
  "itemStyle": Object {
543
- "color": "#5772ff",
543
+ "color": "#617ae2",
544
544
  },
545
545
  "lineStyle": Object {
546
- "color": "#5772ff",
546
+ "color": "#617ae2",
547
547
  },
548
548
  "name": "Stacked median line",
549
549
  "type": "line",
@@ -647,13 +647,13 @@ Object {
647
647
  ],
648
648
  "emphasis": Object {
649
649
  "itemStyle": Object {
650
- "color": "rgba(87, 114, 255, 0.4)",
650
+ "color": "rgba(97, 122, 226, 0.4)",
651
651
  },
652
652
  },
653
653
  "itemStyle": Object {
654
- "borderColor": "#5772ff",
654
+ "borderColor": "#617ae2",
655
655
  "borderWidth": 1,
656
- "color": "rgba(87, 114, 255, 0.2)",
656
+ "color": "rgba(97, 122, 226, 0.2)",
657
657
  },
658
658
  "name": "Fun 1",
659
659
  "stack": Array [
@@ -691,13 +691,13 @@ Object {
691
691
  ],
692
692
  "emphasis": Object {
693
693
  "itemStyle": Object {
694
- "color": "rgba(178, 72, 0, 0.4)",
694
+ "color": "rgba(177, 79, 24, 0.4)",
695
695
  },
696
696
  },
697
697
  "itemStyle": Object {
698
- "borderColor": "#b24800",
698
+ "borderColor": "#b14f18",
699
699
  "borderWidth": 1,
700
- "color": "rgba(178, 72, 0, 0.2)",
700
+ "color": "rgba(177, 79, 24, 0.2)",
701
701
  },
702
702
  "name": "Fun 2",
703
703
  "stack": Array [
@@ -735,13 +735,13 @@ Object {
735
735
  ],
736
736
  "emphasis": Object {
737
737
  "itemStyle": Object {
738
- "color": "rgba(0, 148, 182, 0.4)",
738
+ "color": "rgba(0, 144, 177, 0.4)",
739
739
  },
740
740
  },
741
741
  "itemStyle": Object {
742
- "borderColor": "#0094b6",
742
+ "borderColor": "#0090b1",
743
743
  "borderWidth": 1,
744
- "color": "rgba(0, 148, 182, 0.2)",
744
+ "color": "rgba(0, 144, 177, 0.2)",
745
745
  },
746
746
  "name": "Fun 3",
747
747
  "stack": Array [
@@ -823,13 +823,13 @@ Object {
823
823
  ],
824
824
  "emphasis": Object {
825
825
  "itemStyle": Object {
826
- "color": "rgba(149, 9, 67, 0.4)",
826
+ "color": "rgba(124, 33, 79, 0.4)",
827
827
  },
828
828
  },
829
829
  "itemStyle": Object {
830
- "borderColor": "#950943",
830
+ "borderColor": "#7c214f",
831
831
  "borderWidth": 1,
832
- "color": "rgba(149, 9, 67, 0.2)",
832
+ "color": "rgba(124, 33, 79, 0.2)",
833
833
  },
834
834
  "name": "Secondary 1",
835
835
  "stack": "tiled",
@@ -227,64 +227,64 @@ $theme-light-red-950: #5c1105 !default;
227
227
  // Data visualization color palette
228
228
 
229
229
  $data-viz-green-50: #ddfab7;
230
- $data-viz-green-100: #c9f097;
231
- $data-viz-green-200: #b0de73;
230
+ $data-viz-green-100: #c6ed94;
231
+ $data-viz-green-200: #b0d97b;
232
232
  $data-viz-green-300: #94c25e;
233
- $data-viz-green-400: #83ab4a;
234
- $data-viz-green-500: #608b2f;
235
- $data-viz-green-600: #487900;
233
+ $data-viz-green-400: #81ac41;
234
+ $data-viz-green-500: #619025;
235
+ $data-viz-green-600: #4e7f0e;
236
236
  $data-viz-green-700: #366800;
237
237
  $data-viz-green-800: #275600;
238
238
  $data-viz-green-900: #1a4500;
239
- $data-viz-green-950: #0f3300;
240
-
241
- $data-viz-aqua-50: #b8fff2;
242
- $data-viz-aqua-100: #93fae7;
243
- $data-viz-aqua-200: #5eebdf;
244
- $data-viz-aqua-300: #25d2d2;
245
- $data-viz-aqua-400: #0bb6c6;
246
- $data-viz-aqua-500: #0094b6;
247
- $data-viz-aqua-600: #0080a1;
248
- $data-viz-aqua-700: #006887;
249
- $data-viz-aqua-800: #004d67;
250
- $data-viz-aqua-900: #003f57;
251
- $data-viz-aqua-950: #00293d;
239
+ $data-viz-green-950: #133a03;
240
+
241
+ $data-viz-aqua-50: #b5fefd;
242
+ $data-viz-aqua-100: #93f2ef;
243
+ $data-viz-aqua-200: #5edee3;
244
+ $data-viz-aqua-300: #32c5d2;
245
+ $data-viz-aqua-400: #00acc4;
246
+ $data-viz-aqua-500: #0090b1;
247
+ $data-viz-aqua-600: #007b9b;
248
+ $data-viz-aqua-700: #006381;
249
+ $data-viz-aqua-800: #00516c;
250
+ $data-viz-aqua-900: #004059;
251
+ $data-viz-aqua-950: #00344b;
252
252
 
253
253
  $data-viz-blue-50: #e9ebff;
254
- $data-viz-blue-100: #d4dcfa;
254
+ $data-viz-blue-100: #d2dcff;
255
255
  $data-viz-blue-200: #b7c6ff;
256
256
  $data-viz-blue-300: #97acff;
257
- $data-viz-blue-400: #748eff;
258
- $data-viz-blue-500: #5772ff;
259
- $data-viz-blue-600: #445cf2;
260
- $data-viz-blue-700: #3547de;
261
- $data-viz-blue-800: #232fcf;
262
- $data-viz-blue-900: #1e23a8;
263
- $data-viz-blue-950: #11118a;
257
+ $data-viz-blue-400: #7992f5;
258
+ $data-viz-blue-500: #617ae2;
259
+ $data-viz-blue-600: #4e65cd;
260
+ $data-viz-blue-700: #3f51ae;
261
+ $data-viz-blue-800: #374291;
262
+ $data-viz-blue-900: #303470;
263
+ $data-viz-blue-950: #2a2b59;
264
264
 
265
265
  $data-viz-magenta-50: #ffe3eb;
266
- $data-viz-magenta-100: #ffc9d9;
266
+ $data-viz-magenta-100: #ffccdb;
267
267
  $data-viz-magenta-200: #fcacc5;
268
- $data-viz-magenta-300: #ff85af;
269
- $data-viz-magenta-400: #f2639a;
270
- $data-viz-magenta-500: #d84280;
271
- $data-viz-magenta-600: #c52c6b;
272
- $data-viz-magenta-700: #b31756;
273
- $data-viz-magenta-800: #950943;
274
- $data-viz-magenta-900: #7a0033;
275
- $data-viz-magenta-950: #570028;
268
+ $data-viz-magenta-300: #f88aaf;
269
+ $data-viz-magenta-400: #e86e9a;
270
+ $data-viz-magenta-500: #cf4d81;
271
+ $data-viz-magenta-600: #b93d71;
272
+ $data-viz-magenta-700: #9a2e5d;
273
+ $data-viz-magenta-800: #7c214f;
274
+ $data-viz-magenta-900: #661e3a;
275
+ $data-viz-magenta-950: #541d31;
276
276
 
277
277
  $data-viz-orange-50: #fae8d1;
278
- $data-viz-orange-100: #f7d8b5;
279
- $data-viz-orange-200: #f3c291;
280
- $data-viz-orange-300: #eb9a5c;
281
- $data-viz-orange-400: #e17223;
282
- $data-viz-orange-500: #d14e00;
283
- $data-viz-orange-600: #b24800;
284
- $data-viz-orange-700: #944100;
278
+ $data-viz-orange-100: #f5d6b3;
279
+ $data-viz-orange-200: #eebd8c;
280
+ $data-viz-orange-300: #e99b60;
281
+ $data-viz-orange-400: #e07e41;
282
+ $data-viz-orange-500: #c95d2e;
283
+ $data-viz-orange-600: #b14f18;
284
+ $data-viz-orange-700: #92430a;
285
285
  $data-viz-orange-800: #6f3500;
286
- $data-viz-orange-900: #5c2b00;
287
- $data-viz-orange-950: #421e00;
286
+ $data-viz-orange-900: #5e2f05;
287
+ $data-viz-orange-950: #4b2707;
288
288
 
289
289
  $darken-normal-factor: 7%;
290
290
  $darken-dark-factor: 10%;