@pega/cosmos-react-core 3.0.0-dev.8.0 → 3.0.0-dev.9.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 (88) hide show
  1. package/lib/components/AppShell/AppShell.d.ts.map +1 -1
  2. package/lib/components/AppShell/AppShell.js +3 -3
  3. package/lib/components/AppShell/AppShell.js.map +1 -1
  4. package/lib/components/Badges/Keyboard.d.ts +9 -0
  5. package/lib/components/Badges/Keyboard.d.ts.map +1 -0
  6. package/lib/components/Badges/Keyboard.js +51 -0
  7. package/lib/components/Badges/Keyboard.js.map +1 -0
  8. package/lib/components/Badges/index.d.ts +2 -0
  9. package/lib/components/Badges/index.d.ts.map +1 -1
  10. package/lib/components/Badges/index.js +1 -0
  11. package/lib/components/Badges/index.js.map +1 -1
  12. package/lib/components/CreditCard/CreditCard.types.d.ts +43 -0
  13. package/lib/components/CreditCard/CreditCard.types.d.ts.map +1 -1
  14. package/lib/components/CreditCard/CreditCard.types.js.map +1 -1
  15. package/lib/components/CreditCard/CreditCardInput.d.ts +6 -0
  16. package/lib/components/CreditCard/CreditCardInput.d.ts.map +1 -0
  17. package/lib/components/CreditCard/CreditCardInput.js +39 -0
  18. package/lib/components/CreditCard/CreditCardInput.js.map +1 -0
  19. package/lib/components/CreditCard/index.d.ts +3 -1
  20. package/lib/components/CreditCard/index.d.ts.map +1 -1
  21. package/lib/components/CreditCard/index.js +2 -0
  22. package/lib/components/CreditCard/index.js.map +1 -1
  23. package/lib/components/CreditCard/utils.d.ts +11 -0
  24. package/lib/components/CreditCard/utils.d.ts.map +1 -1
  25. package/lib/components/CreditCard/utils.js +20 -2
  26. package/lib/components/CreditCard/utils.js.map +1 -1
  27. package/lib/components/Currency/CurrencyInput.d.ts.map +1 -1
  28. package/lib/components/Currency/CurrencyInput.js +13 -12
  29. package/lib/components/Currency/CurrencyInput.js.map +1 -1
  30. package/lib/components/DateTime/Input/DateTime.styles.js +1 -1
  31. package/lib/components/DateTime/Input/DateTime.styles.js.map +1 -1
  32. package/lib/components/HTML/HTML.d.ts.map +1 -1
  33. package/lib/components/HTML/HTML.js +5 -1
  34. package/lib/components/HTML/HTML.js.map +1 -1
  35. package/lib/components/Modal/DockedModals.d.ts.map +1 -1
  36. package/lib/components/Modal/DockedModals.js +1 -2
  37. package/lib/components/Modal/DockedModals.js.map +1 -1
  38. package/lib/components/Modal/MinimizedModal.d.ts.map +1 -1
  39. package/lib/components/Modal/MinimizedModal.js +1 -0
  40. package/lib/components/Modal/MinimizedModal.js.map +1 -1
  41. package/lib/components/Modal/Modal.styles.d.ts.map +1 -1
  42. package/lib/components/Modal/Modal.styles.js +1 -0
  43. package/lib/components/Modal/Modal.styles.js.map +1 -1
  44. package/lib/components/Number/NumberInput.d.ts.map +1 -1
  45. package/lib/components/Number/NumberInput.js +40 -35
  46. package/lib/components/Number/NumberInput.js.map +1 -1
  47. package/lib/components/Number/NumberInput.types.d.ts +3 -1
  48. package/lib/components/Number/NumberInput.types.d.ts.map +1 -1
  49. package/lib/components/Number/NumberInput.types.js.map +1 -1
  50. package/lib/components/Number/utils.d.ts +1 -1
  51. package/lib/components/Number/utils.d.ts.map +1 -1
  52. package/lib/components/Number/utils.js +18 -32
  53. package/lib/components/Number/utils.js.map +1 -1
  54. package/lib/components/Phone/PhoneInput.d.ts +1 -1
  55. package/lib/components/Phone/PhoneInput.d.ts.map +1 -1
  56. package/lib/components/Phone/PhoneInput.js +19 -36
  57. package/lib/components/Phone/PhoneInput.js.map +1 -1
  58. package/lib/components/Phone/utils.d.ts +1 -2
  59. package/lib/components/Phone/utils.d.ts.map +1 -1
  60. package/lib/components/Phone/utils.js +3 -26
  61. package/lib/components/Phone/utils.js.map +1 -1
  62. package/lib/components/Tabs/Tabs.d.ts.map +1 -1
  63. package/lib/components/Tabs/Tabs.js +1 -1
  64. package/lib/components/Tabs/Tabs.js.map +1 -1
  65. package/lib/hooks/index.d.ts +2 -0
  66. package/lib/hooks/index.d.ts.map +1 -1
  67. package/lib/hooks/index.js +2 -0
  68. package/lib/hooks/index.js.map +1 -1
  69. package/lib/hooks/useActiveDescendant.d.ts.map +1 -1
  70. package/lib/hooks/useActiveDescendant.js +6 -1
  71. package/lib/hooks/useActiveDescendant.js.map +1 -1
  72. package/lib/hooks/useInputFormatter.d.ts +12 -0
  73. package/lib/hooks/useInputFormatter.d.ts.map +1 -0
  74. package/lib/hooks/useInputFormatter.js +84 -0
  75. package/lib/hooks/useInputFormatter.js.map +1 -0
  76. package/lib/hooks/useOS.d.ts +7 -0
  77. package/lib/hooks/useOS.d.ts.map +1 -0
  78. package/lib/hooks/useOS.js +28 -0
  79. package/lib/hooks/useOS.js.map +1 -0
  80. package/lib/styles/gradients.d.ts +4 -1
  81. package/lib/styles/gradients.d.ts.map +1 -1
  82. package/lib/styles/gradients.js +46 -3
  83. package/lib/styles/gradients.js.map +1 -1
  84. package/lib/theme/theme.d.ts +18 -0
  85. package/lib/theme/theme.d.ts.map +1 -1
  86. package/lib/theme/themeDefinition.json +10 -0
  87. package/lib/theme/themes/darkTheme.json +6 -0
  88. package/package.json +2 -2
@@ -0,0 +1,12 @@
1
+ import { RefObject } from 'react';
2
+ /**
3
+ * Formats the raw value using given formatter and handles the caret position.
4
+ * @param ref reference to input element.
5
+ * @param rawValue value to be formatted.
6
+ * @param formatter formatter function accepting partial input and returning partially formatted value.
7
+ * @param acceptableCharacters string containing all the characters that may appear in the value to format. RegExp shorthands are also accepted. Only numbers are accepted by default.
8
+ * @returns formatted value that should be passed to the input component.
9
+ */
10
+ declare const useInputFormatter: (ref: RefObject<HTMLInputElement>, rawValue: string, formatter: (value: string) => string, acceptableCharacters?: string) => string;
11
+ export default useInputFormatter;
12
+ //# sourceMappingURL=useInputFormatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInputFormatter.d.ts","sourceRoot":"","sources":["../../src/hooks/useInputFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAC;AAIrD;;;;;;;GAOG;AACH,QAAA,MAAM,iBAAiB,QAChB,UAAU,gBAAgB,CAAC,YACtB,MAAM,qBACG,MAAM,KAAK,MAAM,yBACd,MAAM,WAgG7B,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,84 @@
1
+ import { useRef, useEffect } from 'react';
2
+ import useEvent from './useEvent';
3
+ /**
4
+ * Formats the raw value using given formatter and handles the caret position.
5
+ * @param ref reference to input element.
6
+ * @param rawValue value to be formatted.
7
+ * @param formatter formatter function accepting partial input and returning partially formatted value.
8
+ * @param acceptableCharacters string containing all the characters that may appear in the value to format. RegExp shorthands are also accepted. Only numbers are accepted by default.
9
+ * @returns formatted value that should be passed to the input component.
10
+ */
11
+ const useInputFormatter = (ref, rawValue, formatter, acceptableCharacters = '\\p{N}') => {
12
+ // synthetic caret position in unformatted value
13
+ const rawValueCaretPositionRef = useRef();
14
+ useEvent('keydown', e => {
15
+ const inputEl = ref.current;
16
+ if (inputEl) {
17
+ const caretPositionStart = inputEl.selectionStart ?? 0;
18
+ const caretPositionEnd = inputEl.selectionEnd ?? 0;
19
+ const currentValue = inputEl.value;
20
+ if (caretPositionStart !== caretPositionEnd && ['Backspace', 'Delete'].includes(e.key)) {
21
+ // if selection contains only formatting characters, move the caret to the beginning of the selection
22
+ const selectedText = currentValue.slice(caretPositionStart, caretPositionEnd);
23
+ if (!new RegExp(`[${acceptableCharacters}]`, 'gu').test(selectedText)) {
24
+ inputEl.setSelectionRange(caretPositionStart, caretPositionStart);
25
+ e.preventDefault();
26
+ }
27
+ return;
28
+ }
29
+ if (e.key === 'Backspace' &&
30
+ new RegExp(`[^${acceptableCharacters}]`, 'gu').test(currentValue.charAt(caretPositionStart - 1))) {
31
+ const lastNonFormatChar = new RegExp(`[${acceptableCharacters}](?=[^${acceptableCharacters}]*$)`, 'gu');
32
+ // match last non-formatting character if it can be found in the preceding slice
33
+ if (lastNonFormatChar.test(currentValue.slice(0, caretPositionStart))) {
34
+ // move the caret after matched character to get it removed
35
+ inputEl.setSelectionRange(lastNonFormatChar.lastIndex, lastNonFormatChar.lastIndex);
36
+ }
37
+ else {
38
+ e.preventDefault();
39
+ }
40
+ }
41
+ if (e.key === 'Delete' &&
42
+ new RegExp(`[^${acceptableCharacters}]`, 'gu').test(currentValue.charAt(caretPositionEnd))) {
43
+ const firstNonFormatChar = new RegExp(`[${acceptableCharacters}]`, 'gu');
44
+ firstNonFormatChar.lastIndex = caretPositionEnd;
45
+ // find first non-formatting character in the value starting from the caret position
46
+ if (firstNonFormatChar.test(currentValue)) {
47
+ // move the caret before matched character to get it removed
48
+ inputEl.setSelectionRange(firstNonFormatChar.lastIndex - 1, firstNonFormatChar.lastIndex - 1);
49
+ }
50
+ else {
51
+ e.preventDefault();
52
+ }
53
+ }
54
+ }
55
+ }, { target: ref, dependencies: [acceptableCharacters] });
56
+ useEvent('input', () => {
57
+ const inputEl = ref.current;
58
+ if (inputEl) {
59
+ // calculate new synthetic caret position in the unformatted value
60
+ const currentCaretPosition = inputEl.selectionStart ?? 0;
61
+ rawValueCaretPositionRef.current = inputEl.value
62
+ .slice(0, currentCaretPosition)
63
+ .replace(new RegExp(`[^${acceptableCharacters}]`, 'gu'), '').length;
64
+ }
65
+ }, { target: ref, dependencies: [acceptableCharacters] });
66
+ useEffect(() => {
67
+ const inputEl = ref.current;
68
+ if (inputEl && rawValueCaretPositionRef.current !== undefined) {
69
+ // create regexp with every raw value character wrapped in possible formatting characters
70
+ const rawValueRegExpSource = `[^${acceptableCharacters}]*${rawValue
71
+ .slice(0, rawValueCaretPositionRef.current)
72
+ .split('')
73
+ .join(`[^${acceptableCharacters}]*`)}`;
74
+ const match = inputEl.value.match(new RegExp(rawValueRegExpSource, 'gu'));
75
+ if (match) {
76
+ // if it matches move the real caret to the corresponding index in the raw value
77
+ inputEl.setSelectionRange(match[0].length, match[0].length);
78
+ }
79
+ }
80
+ }, [rawValue, acceptableCharacters]);
81
+ return formatter(rawValue);
82
+ };
83
+ export default useInputFormatter;
84
+ //# sourceMappingURL=useInputFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInputFormatter.js","sourceRoot":"","sources":["../../src/hooks/useInputFormatter.ts"],"names":[],"mappings":"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","sourcesContent":["import { RefObject, useRef, useEffect } from 'react';\n\nimport useEvent from './useEvent';\n\n/**\n * Formats the raw value using given formatter and handles the caret position.\n * @param ref reference to input element.\n * @param rawValue value to be formatted.\n * @param formatter formatter function accepting partial input and returning partially formatted value.\n * @param acceptableCharacters string containing all the characters that may appear in the value to format. RegExp shorthands are also accepted. Only numbers are accepted by default.\n * @returns formatted value that should be passed to the input component.\n */\nconst useInputFormatter = (\n ref: RefObject<HTMLInputElement>,\n rawValue: string,\n formatter: (value: string) => string,\n acceptableCharacters: string = '\\\\p{N}'\n) => {\n // synthetic caret position in unformatted value\n const rawValueCaretPositionRef = useRef<number>();\n\n useEvent(\n 'keydown',\n e => {\n const inputEl = ref.current;\n if (inputEl) {\n const caretPositionStart = inputEl.selectionStart ?? 0;\n const caretPositionEnd = inputEl.selectionEnd ?? 0;\n const currentValue = inputEl.value;\n if (caretPositionStart !== caretPositionEnd && ['Backspace', 'Delete'].includes(e.key)) {\n // if selection contains only formatting characters, move the caret to the beginning of the selection\n const selectedText = currentValue.slice(caretPositionStart, caretPositionEnd);\n if (!new RegExp(`[${acceptableCharacters}]`, 'gu').test(selectedText)) {\n inputEl.setSelectionRange(caretPositionStart, caretPositionStart);\n e.preventDefault();\n }\n return;\n }\n\n if (\n e.key === 'Backspace' &&\n new RegExp(`[^${acceptableCharacters}]`, 'gu').test(\n currentValue.charAt(caretPositionStart - 1)\n )\n ) {\n const lastNonFormatChar = new RegExp(\n `[${acceptableCharacters}](?=[^${acceptableCharacters}]*$)`,\n 'gu'\n );\n // match last non-formatting character if it can be found in the preceding slice\n if (lastNonFormatChar.test(currentValue.slice(0, caretPositionStart))) {\n // move the caret after matched character to get it removed\n inputEl.setSelectionRange(lastNonFormatChar.lastIndex, lastNonFormatChar.lastIndex);\n } else {\n e.preventDefault();\n }\n }\n\n if (\n e.key === 'Delete' &&\n new RegExp(`[^${acceptableCharacters}]`, 'gu').test(currentValue.charAt(caretPositionEnd))\n ) {\n const firstNonFormatChar = new RegExp(`[${acceptableCharacters}]`, 'gu');\n firstNonFormatChar.lastIndex = caretPositionEnd;\n // find first non-formatting character in the value starting from the caret position\n if (firstNonFormatChar.test(currentValue)) {\n // move the caret before matched character to get it removed\n inputEl.setSelectionRange(\n firstNonFormatChar.lastIndex - 1,\n firstNonFormatChar.lastIndex - 1\n );\n } else {\n e.preventDefault();\n }\n }\n }\n },\n { target: ref, dependencies: [acceptableCharacters] }\n );\n\n useEvent(\n 'input',\n () => {\n const inputEl = ref.current;\n if (inputEl) {\n // calculate new synthetic caret position in the unformatted value\n const currentCaretPosition = inputEl.selectionStart ?? 0;\n rawValueCaretPositionRef.current = inputEl.value\n .slice(0, currentCaretPosition)\n .replace(new RegExp(`[^${acceptableCharacters}]`, 'gu'), '').length;\n }\n },\n { target: ref, dependencies: [acceptableCharacters] }\n );\n\n useEffect(() => {\n const inputEl = ref.current;\n if (inputEl && rawValueCaretPositionRef.current !== undefined) {\n // create regexp with every raw value character wrapped in possible formatting characters\n const rawValueRegExpSource = `[^${acceptableCharacters}]*${rawValue\n .slice(0, rawValueCaretPositionRef.current)\n .split('')\n .join(`[^${acceptableCharacters}]*`)}`;\n const match = inputEl.value.match(new RegExp(rawValueRegExpSource, 'gu'));\n if (match) {\n // if it matches move the real caret to the corresponding index in the raw value\n inputEl.setSelectionRange(match[0].length, match[0].length);\n }\n }\n }, [rawValue, acceptableCharacters]);\n\n return formatter(rawValue);\n};\n\nexport default useInputFormatter;\n"]}
@@ -0,0 +1,7 @@
1
+ declare const useOS: () => {
2
+ windows: boolean;
3
+ macintosh: boolean;
4
+ name: "" | "Windows" | "Macintosh" | "Other";
5
+ };
6
+ export default useOS;
7
+ //# sourceMappingURL=useOS.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOS.d.ts","sourceRoot":"","sources":["../../src/hooks/useOS.ts"],"names":[],"mappings":"AAgBA,QAAA,MAAM,KAAK;;;;CAeV,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { useEffect, useState } from 'react';
2
+ import { navigatorIsAvailable } from '../utils';
3
+ let os;
4
+ const getOperatingSystem = () => {
5
+ if (os)
6
+ return os;
7
+ os = navigatorIsAvailable
8
+ ? navigator.userAgent.match(/(Windows)|(Macintosh)/g)?.[0] ||
9
+ 'Other'
10
+ : '';
11
+ return os;
12
+ };
13
+ const useOS = () => {
14
+ const [operatingSystem, setOperatingSystem] = useState(getOperatingSystem);
15
+ // For SSR
16
+ useEffect(() => {
17
+ if (!operatingSystem) {
18
+ setOperatingSystem(getOperatingSystem());
19
+ }
20
+ }, []);
21
+ return {
22
+ windows: operatingSystem === 'Windows',
23
+ macintosh: operatingSystem === 'Macintosh',
24
+ name: operatingSystem
25
+ };
26
+ };
27
+ export default useOS;
28
+ //# sourceMappingURL=useOS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOS.js","sourceRoot":"","sources":["../../src/hooks/useOS.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD,IAAI,EAA0C,CAAC;AAE/C,MAAM,kBAAkB,GAAG,GAAc,EAAE;IACzC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAElB,EAAE,GAAG,oBAAoB;QACvB,CAAC,CAAE,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAA6B;YACrF,OAAO;QACT,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,KAAK,GAAG,GAAG,EAAE;IACjB,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAE3E,UAAU;IACV,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,EAAE;YACpB,kBAAkB,CAAC,kBAAkB,EAAE,CAAC,CAAC;SAC1C;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,OAAO,EAAE,eAAe,KAAK,SAAS;QACtC,SAAS,EAAE,eAAe,KAAK,WAAW;QAC1C,IAAI,EAAE,eAAe;KACtB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC","sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { navigatorIsAvailable } from '../utils';\n\nlet os: 'Windows' | 'Macintosh' | 'Other' | '';\n\nconst getOperatingSystem = (): typeof os => {\n if (os) return os;\n\n os = navigatorIsAvailable\n ? (navigator.userAgent.match(/(Windows)|(Macintosh)/g)?.[0] as 'Windows' | 'Macintosh') ||\n 'Other'\n : '';\n return os;\n};\n\nconst useOS = () => {\n const [operatingSystem, setOperatingSystem] = useState(getOperatingSystem);\n\n // For SSR\n useEffect(() => {\n if (!operatingSystem) {\n setOperatingSystem(getOperatingSystem());\n }\n }, []);\n\n return {\n windows: operatingSystem === 'Windows',\n macintosh: operatingSystem === 'Macintosh',\n name: operatingSystem\n };\n};\n\nexport default useOS;\n"]}
@@ -97,6 +97,9 @@ export declare const colorsForCategories: (count: number, { gradients, steps }?:
97
97
  gradients?: LinearGradient[] | undefined;
98
98
  steps?: number[] | undefined;
99
99
  }) => string[];
100
- export declare const toLinearGradient: (gradient: LinearGradient) => string;
100
+ export declare const nlpColors: string[];
101
+ export declare const toLinearGradient: (gradient: LinearGradient, { direction }?: {
102
+ direction?: string | undefined;
103
+ }) => string;
101
104
  export {};
102
105
  //# sourceMappingURL=gradients.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gradients.d.ts","sourceRoot":"","sources":["../../src/styles/gradients.ts"],"names":[],"mappings":"AAEA,UAAU,SAAS;IACjB,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,aAAK,cAAc,GAAG,SAAS,EAAE,CAAC;AAElC,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4JvB,CAAC;AAEF,eAAO,MAAM,eAAe,kDAAmD,MAAM,KAAG,MA0CvF,CAAC;AAEF,eAAO,MAAM,qBAAqB,SAC1B,MAAM,kBAAkB,kBACd,MAAM,KACrB,MAEF,CAAC;AAEF,eAAO,MAAM,mBAAmB,UACvB,MAAM;;;MAkBZ,MAAM,EAgBR,CAAC;AAEF,eAAO,MAAM,gBAAgB,gCAA+B,MAO3D,CAAC"}
1
+ {"version":3,"file":"gradients.d.ts","sourceRoot":"","sources":["../../src/styles/gradients.ts"],"names":[],"mappings":"AAIA,UAAU,SAAS;IACjB,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,aAAK,cAAc,GAAG,SAAS,EAAE,CAAC;AAElC,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2JvB,CAAC;AAEF,eAAO,MAAM,eAAe,kDAAmD,MAAM,KAAG,MA0CvF,CAAC;AAEF,eAAO,MAAM,qBAAqB,SAC1B,MAAM,kBAAkB,kBACd,MAAM,KACrB,MAEF,CAAC;AAEF,eAAO,MAAM,mBAAmB,UACvB,MAAM;;;MAkBZ,MAAM,EAgBR,CAAC;AAEF,eAAO,MAAM,SAAS,UA4C2D,CAAC;AAElF,eAAO,MAAM,gBAAgB;;MAG1B,MAOF,CAAC"}
@@ -1,3 +1,4 @@
1
+ // cspell:words deutan
1
2
  import { mix } from 'polished';
2
3
  export const gradientMap = {
3
4
  grayscale: [
@@ -127,7 +128,6 @@ export const gradientMap = {
127
128
  { color: 'hsl(120, 49%, 60%)', position: 8 / 10 },
128
129
  { color: 'hsl(135, 53%, 33%)', position: 1 }
129
130
  ],
130
- // cspell:disable-next-line
131
131
  'negative-attention-positive-deutan': [
132
132
  { color: 'hsl(315, 64%, 45%)', position: 0 },
133
133
  { color: 'hsl(313, 83%, 62%)', position: 2 / 10 },
@@ -220,12 +220,55 @@ export const colorsForCategories = (count, { gradients = [
220
220
  }
221
221
  return colors;
222
222
  };
223
- export const toLinearGradient = (gradient) => {
223
+ export const nlpColors = [
224
+ ['persian-blue', 1],
225
+ ['persian-green', 1],
226
+ ['pastel-orange', 1],
227
+ ['japanese-laurel', 1],
228
+ ['mango-tango', 1],
229
+ ['valencia', 1],
230
+ ['fuchsia-blue', 1],
231
+ ['faded-red', 1],
232
+ ['rope', 1],
233
+ ['silver', 1],
234
+ ['blue-yellow', 1],
235
+ ['blue-yellow', 5 / 10],
236
+ ['green-yellow', 1],
237
+ ['blue-yellow', 3 / 10],
238
+ ['green-yellow', 7 / 10],
239
+ ['ruby-yellow', 1],
240
+ ['ruby-yellow', 6 / 10],
241
+ ['purple-blue', 1],
242
+ ['two-extremes', 9 / 10],
243
+ ['persian-blue', 1 / 2],
244
+ ['hot-cold', 1],
245
+ ['persian-green', 1 / 2],
246
+ ['pastel-orange', 1 / 2],
247
+ ['japanese-laurel', 1 / 2],
248
+ ['mango-tango', 1 / 2],
249
+ ['valencia', 1 / 2],
250
+ ['fuchsia-blue', 1 / 2],
251
+ ['faded-red', 1 / 2],
252
+ ['rope', 1 / 2],
253
+ ['silver', 1 / 2],
254
+ ['blue-yellow', 7 / 10],
255
+ ['blue-yellow', 4 / 10],
256
+ ['green-yellow', 5 / 10],
257
+ ['ruby-yellow', 5 / 10],
258
+ ['purple-blue', 7 / 10],
259
+ ['purple-blue', 5 / 10],
260
+ ['violet-rose', 5 / 10],
261
+ ['two-extremes', 8 / 10],
262
+ ['ruby-yellow', 4 / 10],
263
+ ['violet-rose', 7 / 10],
264
+ ['negative-attention-positive-deutan', 8 / 10]
265
+ ].map(([gradient, position]) => colorInGradient(gradientMap[gradient], position));
266
+ export const toLinearGradient = (gradient, { direction = '180deg' } = {}) => {
224
267
  if (gradient.length === 0)
225
268
  return 'transparent';
226
269
  if (gradient.length === 1)
227
270
  return gradient[0].color;
228
- return `linear-gradient(${gradient
271
+ return `linear-gradient(${direction}, ${gradient
229
272
  .map(({ color, position }) => `${color} ${position * 100}%`)
230
273
  .join(', ')})`;
231
274
  };
@@ -1 +1 @@
1
- {"version":3,"file":"gradients.js","sourceRoot":"","sources":["../../src/styles/gradients.ts"],"names":[],"mappings":"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","sourcesContent":["import { mix } from 'polished';\n\ninterface ColorStop {\n /** CSS color string. */\n color: string;\n /** Position along the gradient expressed as a number from 0 to 1. */\n position: number;\n}\n\ntype LinearGradient = ColorStop[];\n\nexport const gradientMap = {\n grayscale: [\n { color: 'hsl(0, 100%, 100%)', position: 0 },\n { color: 'hsl(0, 100%, 0%)', position: 1 }\n ],\n 'persian-blue': [\n { color: 'hsl(210, 50%, 94%)', position: 0 },\n { color: 'hsl(210, 46%, 63%)', position: 1 / 3 },\n { color: 'hsl(206, 100%, 33%)', position: 2 / 3 },\n { color: 'hsl(210, 100%, 27%)', position: 1 }\n ],\n 'persian-green': [\n { color: 'hsl(175, 35%, 94%)', position: 0 },\n { color: 'hsl(175, 42%, 65%)', position: 1 / 3 },\n { color: 'hsl(175, 100%, 33%)', position: 2 / 3 },\n { color: 'hsl(175, 100%, 27%)', position: 1 }\n ],\n 'pastel-orange': [\n { color: 'hsl(36, 100%, 97%)', position: 0 },\n { color: 'hsl(36, 100%, 79%)', position: 1 / 3 },\n { color: 'hsl(36, 100%, 64%)', position: 2 / 3 },\n { color: 'hsl(36, 99%, 61%)', position: 1 }\n ],\n 'japanese-laurel': [\n { color: 'hsl(135, 21%, 94%)', position: 0 },\n { color: 'hsl(135, 24%, 61%)', position: 1 / 3 },\n { color: 'hsl(135, 54%, 33%)', position: 2 / 3 },\n { color: 'hsl(135, 60%, 26%)', position: 1 }\n ],\n 'mango-tango': [\n { color: 'hsl(23, 100%, 96%)', position: 0 },\n { color: 'hsl(23, 100%, 78%)', position: 1 / 3 },\n { color: 'hsl(23, 100%, 62%)', position: 2 / 3 },\n { color: 'hsl(23, 100%, 53%)', position: 1 }\n ],\n valencia: [\n { color: 'hsl(1, 87%, 96%)', position: 0 },\n { color: 'hsl(1, 72%, 75%)', position: 1 / 3 },\n { color: 'hsl(1, 67%, 56%)', position: 2 / 3 },\n { color: 'hsl(1, 82%, 41%)', position: 1 }\n ],\n 'fuchsia-blue': [\n { color: 'hsl(259, 45%, 96%)', position: 0 },\n { color: 'hsl(259, 45%, 78%)', position: 1 / 3 },\n { color: 'hsl(259, 43%, 56%)', position: 2 / 3 },\n { color: 'hsl(259, 40%, 49%)', position: 1 }\n ],\n 'faded-red': [\n { color: 'hsl(360, 100%, 95%)', position: 0 },\n { color: 'hsl(360, 100%, 85%)', position: 1 / 3 },\n { color: 'hsl(360, 100%, 75%)', position: 2 / 3 },\n { color: 'hsl(360, 100%, 70%)', position: 1 }\n ],\n rope: [\n { color: 'hsl(25, 31%, 93%)', position: 0 },\n { color: 'hsl(25, 32%, 62%)', position: 1 / 3 },\n { color: 'hsl(25, 59%, 35%)', position: 2 / 3 },\n { color: 'hsl(25, 64%, 30%)', position: 1 }\n ],\n silver: [\n { color: 'hsl(15, 18%, 97%)', position: 0 },\n { color: 'hsl(15, 9%, 79%)', position: 1 / 3 },\n { color: 'hsl(15, 11%, 65%)', position: 2 / 3 },\n { color: 'hsl(15, 9%, 58%)', position: 1 }\n ],\n 'blue-yellow': [\n { color: 'hsl(56, 100%, 93%)', position: 0 },\n { color: 'hsl(144, 46%, 79%)', position: 2 / 10 },\n { color: 'hsl(185, 53%, 58%)', position: 4 / 10 },\n { color: 'hsl(191, 56%, 52%)', position: 5 / 10 },\n { color: 'hsl(195, 62%, 48%)', position: 6 / 10 },\n { color: 'hsl(206, 67%, 37%)', position: 8 / 10 },\n { color: 'hsl(215, 62%, 30%)', position: 1 }\n ],\n 'green-yellow': [\n { color: 'hsl(56, 100%, 93%)', position: 0 },\n { color: 'hsl(88, 61%, 85%)', position: 2 / 10 },\n { color: 'hsl(125, 47%, 78%)', position: 4 / 10 },\n { color: 'hsl(148, 45%, 65%)', position: 5 / 10 },\n { color: 'hsl(159, 47%, 50%)', position: 6 / 10 },\n { color: 'hsl(173, 80%, 30%)', position: 8 / 10 },\n { color: 'hsl(178, 73%, 22%)', position: 1 }\n ],\n 'ruby-yellow': [\n { color: 'hsl(56, 100%, 93%)', position: 0 },\n { color: 'hsl(40, 100%, 83%)', position: 2 / 10 },\n { color: 'hsl(19, 100%, 75%)', position: 4 / 10 },\n { color: 'hsl(3, 100%, 73%)', position: 5 / 10 },\n { color: 'hsl(350, 81%, 62%)', position: 6 / 10 },\n { color: 'hsl(343, 54%, 55%)', position: 8 / 10 },\n { color: 'hsl(330, 40%, 36%)', position: 1 }\n ],\n 'purple-blue': [\n { color: 'hsl(190, 42%, 97%)', position: 0 },\n { color: 'hsl(205, 51%, 84%)', position: 2 / 10 },\n { color: 'hsl(212, 47%, 73%)', position: 4 / 10 },\n { color: 'hsl(219, 41%, 70%)', position: 5 / 10 },\n { color: 'hsl(253, 32%, 66%)', position: 6 / 10 },\n { color: 'hsl(272, 27%, 49%)', position: 8 / 10 },\n { color: 'hsl(272, 37%, 32%)', position: 1 }\n ],\n 'violet-rose': [\n { color: 'hsl(18, 100%, 98%)', position: 0 },\n { color: 'hsl(359, 100%, 91%)', position: 2 / 10 },\n { color: 'hsl(336, 96%, 77%)', position: 4 / 10 },\n { color: 'hsl(325, 73%, 65%)', position: 5 / 10 },\n { color: 'hsl(319, 58%, 58%)', position: 6 / 10 },\n { color: 'hsl(287, 38%, 45%)', position: 8 / 10 },\n { color: 'hsl(259, 43%, 35%)', position: 1 }\n ],\n 'negative-attention-positive': [\n { color: 'hsl(2, 67%, 56%)', position: 0 },\n { color: 'hsl(21, 87%, 60%)', position: 2 / 10 },\n { color: 'hsl(36, 100%, 64%)', position: 4 / 10 },\n { color: 'hsl(50, 95%, 75%)', position: 5 / 10 },\n { color: 'hsl(85, 72%, 67%)', position: 6 / 10 },\n { color: 'hsl(120, 49%, 60%)', position: 8 / 10 },\n { color: 'hsl(135, 53%, 33%)', position: 1 }\n ],\n 'negative-attention-positive-protan': [\n { color: 'hsl(344, 67%, 44%)', position: 0 },\n { color: 'hsl(351, 66%, 59%)', position: 2 / 10 },\n { color: 'hsl(360, 100%, 84%)', position: 4 / 10 },\n { color: 'hsl(0, 0%, 89%)', position: 5 / 10 },\n { color: 'hsl(110, 46%, 80%)', position: 6 / 10 },\n { color: 'hsl(120, 49%, 60%)', position: 8 / 10 },\n { color: 'hsl(135, 53%, 33%)', position: 1 }\n ],\n // cspell:disable-next-line\n 'negative-attention-positive-deutan': [\n { color: 'hsl(315, 64%, 45%)', position: 0 },\n { color: 'hsl(313, 83%, 62%)', position: 2 / 10 },\n { color: 'hsl(313, 100%, 80%)', position: 4 / 10 },\n { color: 'hsl(0, 0%, 89%)', position: 5 / 10 },\n { color: 'hsl(110, 46%, 80%)', position: 6 / 10 },\n { color: 'hsl(120, 49%, 60%)', position: 8 / 10 },\n { color: 'hsl(135, 53%, 33%)', position: 1 }\n ],\n 'hot-cold': [\n { color: 'hsl(212, 100%, 27%)', position: 0 },\n { color: 'hsl(213, 40%, 49%)', position: 2 / 10 },\n { color: 'hsl(210, 45%, 69%)', position: 4 / 10 },\n { color: 'hsl(0, 0%, 89%)', position: 5 / 10 },\n { color: 'hsl(360, 100%, 84%)', position: 6 / 10 },\n { color: 'hsl(351, 66%, 59%)', position: 8 / 10 },\n { color: 'hsl(344, 67%, 44%)', position: 1 }\n ],\n 'two-extremes': [\n { color: 'hsl(240, 30%, 39%)', position: 0 },\n { color: 'hsl(271, 27%, 63%)', position: 2 / 10 },\n { color: 'hsl(293, 25%, 87%)', position: 4 / 10 },\n { color: 'hsl(0, 0%, 89%)', position: 5 / 10 },\n { color: 'hsl(171, 37%, 86%)', position: 6 / 10 },\n { color: 'hsl(167, 41%, 51%)', position: 8 / 10 },\n { color: 'hsl(163, 44%, 16%)', position: 1 }\n ]\n};\n\nexport const colorInGradient = ([...gradient]: LinearGradient, targetPosition: number): string => {\n // Return transparent for an empty gradient.\n if (gradient.length === 0) return 'transparent';\n\n // Return the color for single element gradient.\n if (gradient.length === 1) return gradient[0].color;\n\n // Clamp position to interval from 0 to 1.\n targetPosition = Math.min(Math.max(targetPosition, 0), 1);\n\n // Extend the the start of the gradient to 0 if necessary.\n if (gradient[0].position !== 0) gradient.unshift({ color: gradient[0].color, position: 0 });\n\n // Extend the the end of the gradient to 1 if necessary.\n if (gradient[gradient.length - 1].position !== 1)\n gradient.push({ color: gradient[gradient.length - 1].color, position: 1 });\n\n for (let i = 0; i < gradient.length; i += 1) {\n const current = gradient[i];\n\n // If target position is the same as the current position, return the color at the current position.\n if (targetPosition === current.position) return current.color;\n\n // If target position is less than the current position, it must be between the previous position and current position.\n if (targetPosition < current.position) {\n const previous = gradient[i - 1];\n\n // Calculate how far the targetPosition is between the previousPosition and the currentPosition.\n const percentage =\n (targetPosition - previous.position) / (current.position - previous.position);\n\n try {\n return mix(percentage, current.color, previous.color);\n } catch {\n // Polished mix throws on invalid color.\n return 'transparent';\n }\n }\n }\n\n // Failsafe return.\n return 'transparent';\n};\n\nexport const colorInGradientByName = (\n name: keyof typeof gradientMap,\n targetPosition: number\n): string => {\n return colorInGradient(gradientMap[name] ?? [], targetPosition);\n};\n\nexport const colorsForCategories = (\n count: number,\n {\n gradients = (\n [\n 'persian-blue',\n 'persian-green',\n 'pastel-orange',\n 'japanese-laurel',\n 'mango-tango',\n 'valencia',\n 'fuchsia-blue',\n 'faded-red',\n 'rope',\n 'silver'\n ] as const\n ).map(name => gradientMap[name]),\n steps = [2 / 3, 1 / 3, 1, 0, 1 / 2]\n }: { gradients?: LinearGradient[]; steps?: number[] } = {}\n): string[] => {\n // Colors per gradient\n const perGradient = Math.floor(count / gradients.length);\n\n // Number of gradients with 1 extra color\n const extra = count % gradients.length;\n\n const colors: string[] = [];\n\n for (let i = 0; i < gradients.length; i += 1) {\n for (let j = 0; j < (i < extra ? perGradient + 1 : perGradient); j += 1) {\n colors.push(colorInGradient(gradients[i], steps[j % steps.length]));\n }\n }\n\n return colors;\n};\n\nexport const toLinearGradient = (gradient: LinearGradient): string => {\n if (gradient.length === 0) return 'transparent';\n if (gradient.length === 1) return gradient[0].color;\n\n return `linear-gradient(${gradient\n .map(({ color, position }) => `${color} ${position * 100}%`)\n .join(', ')})`;\n};\n"]}
1
+ {"version":3,"file":"gradients.js","sourceRoot":"","sources":["../../src/styles/gradients.ts"],"names":[],"mappings":"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","sourcesContent":["// cspell:words deutan\n\nimport { mix } from 'polished';\n\ninterface ColorStop {\n /** CSS color string. */\n color: string;\n /** Position along the gradient expressed as a number from 0 to 1. */\n position: number;\n}\n\ntype LinearGradient = ColorStop[];\n\nexport const gradientMap = {\n grayscale: [\n { color: 'hsl(0, 100%, 100%)', position: 0 },\n { color: 'hsl(0, 100%, 0%)', position: 1 }\n ],\n 'persian-blue': [\n { color: 'hsl(210, 50%, 94%)', position: 0 },\n { color: 'hsl(210, 46%, 63%)', position: 1 / 3 },\n { color: 'hsl(206, 100%, 33%)', position: 2 / 3 },\n { color: 'hsl(210, 100%, 27%)', position: 1 }\n ],\n 'persian-green': [\n { color: 'hsl(175, 35%, 94%)', position: 0 },\n { color: 'hsl(175, 42%, 65%)', position: 1 / 3 },\n { color: 'hsl(175, 100%, 33%)', position: 2 / 3 },\n { color: 'hsl(175, 100%, 27%)', position: 1 }\n ],\n 'pastel-orange': [\n { color: 'hsl(36, 100%, 97%)', position: 0 },\n { color: 'hsl(36, 100%, 79%)', position: 1 / 3 },\n { color: 'hsl(36, 100%, 64%)', position: 2 / 3 },\n { color: 'hsl(36, 99%, 61%)', position: 1 }\n ],\n 'japanese-laurel': [\n { color: 'hsl(135, 21%, 94%)', position: 0 },\n { color: 'hsl(135, 24%, 61%)', position: 1 / 3 },\n { color: 'hsl(135, 54%, 33%)', position: 2 / 3 },\n { color: 'hsl(135, 60%, 26%)', position: 1 }\n ],\n 'mango-tango': [\n { color: 'hsl(23, 100%, 96%)', position: 0 },\n { color: 'hsl(23, 100%, 78%)', position: 1 / 3 },\n { color: 'hsl(23, 100%, 62%)', position: 2 / 3 },\n { color: 'hsl(23, 100%, 53%)', position: 1 }\n ],\n valencia: [\n { color: 'hsl(1, 87%, 96%)', position: 0 },\n { color: 'hsl(1, 72%, 75%)', position: 1 / 3 },\n { color: 'hsl(1, 67%, 56%)', position: 2 / 3 },\n { color: 'hsl(1, 82%, 41%)', position: 1 }\n ],\n 'fuchsia-blue': [\n { color: 'hsl(259, 45%, 96%)', position: 0 },\n { color: 'hsl(259, 45%, 78%)', position: 1 / 3 },\n { color: 'hsl(259, 43%, 56%)', position: 2 / 3 },\n { color: 'hsl(259, 40%, 49%)', position: 1 }\n ],\n 'faded-red': [\n { color: 'hsl(360, 100%, 95%)', position: 0 },\n { color: 'hsl(360, 100%, 85%)', position: 1 / 3 },\n { color: 'hsl(360, 100%, 75%)', position: 2 / 3 },\n { color: 'hsl(360, 100%, 70%)', position: 1 }\n ],\n rope: [\n { color: 'hsl(25, 31%, 93%)', position: 0 },\n { color: 'hsl(25, 32%, 62%)', position: 1 / 3 },\n { color: 'hsl(25, 59%, 35%)', position: 2 / 3 },\n { color: 'hsl(25, 64%, 30%)', position: 1 }\n ],\n silver: [\n { color: 'hsl(15, 18%, 97%)', position: 0 },\n { color: 'hsl(15, 9%, 79%)', position: 1 / 3 },\n { color: 'hsl(15, 11%, 65%)', position: 2 / 3 },\n { color: 'hsl(15, 9%, 58%)', position: 1 }\n ],\n 'blue-yellow': [\n { color: 'hsl(56, 100%, 93%)', position: 0 },\n { color: 'hsl(144, 46%, 79%)', position: 2 / 10 },\n { color: 'hsl(185, 53%, 58%)', position: 4 / 10 },\n { color: 'hsl(191, 56%, 52%)', position: 5 / 10 },\n { color: 'hsl(195, 62%, 48%)', position: 6 / 10 },\n { color: 'hsl(206, 67%, 37%)', position: 8 / 10 },\n { color: 'hsl(215, 62%, 30%)', position: 1 }\n ],\n 'green-yellow': [\n { color: 'hsl(56, 100%, 93%)', position: 0 },\n { color: 'hsl(88, 61%, 85%)', position: 2 / 10 },\n { color: 'hsl(125, 47%, 78%)', position: 4 / 10 },\n { color: 'hsl(148, 45%, 65%)', position: 5 / 10 },\n { color: 'hsl(159, 47%, 50%)', position: 6 / 10 },\n { color: 'hsl(173, 80%, 30%)', position: 8 / 10 },\n { color: 'hsl(178, 73%, 22%)', position: 1 }\n ],\n 'ruby-yellow': [\n { color: 'hsl(56, 100%, 93%)', position: 0 },\n { color: 'hsl(40, 100%, 83%)', position: 2 / 10 },\n { color: 'hsl(19, 100%, 75%)', position: 4 / 10 },\n { color: 'hsl(3, 100%, 73%)', position: 5 / 10 },\n { color: 'hsl(350, 81%, 62%)', position: 6 / 10 },\n { color: 'hsl(343, 54%, 55%)', position: 8 / 10 },\n { color: 'hsl(330, 40%, 36%)', position: 1 }\n ],\n 'purple-blue': [\n { color: 'hsl(190, 42%, 97%)', position: 0 },\n { color: 'hsl(205, 51%, 84%)', position: 2 / 10 },\n { color: 'hsl(212, 47%, 73%)', position: 4 / 10 },\n { color: 'hsl(219, 41%, 70%)', position: 5 / 10 },\n { color: 'hsl(253, 32%, 66%)', position: 6 / 10 },\n { color: 'hsl(272, 27%, 49%)', position: 8 / 10 },\n { color: 'hsl(272, 37%, 32%)', position: 1 }\n ],\n 'violet-rose': [\n { color: 'hsl(18, 100%, 98%)', position: 0 },\n { color: 'hsl(359, 100%, 91%)', position: 2 / 10 },\n { color: 'hsl(336, 96%, 77%)', position: 4 / 10 },\n { color: 'hsl(325, 73%, 65%)', position: 5 / 10 },\n { color: 'hsl(319, 58%, 58%)', position: 6 / 10 },\n { color: 'hsl(287, 38%, 45%)', position: 8 / 10 },\n { color: 'hsl(259, 43%, 35%)', position: 1 }\n ],\n 'negative-attention-positive': [\n { color: 'hsl(2, 67%, 56%)', position: 0 },\n { color: 'hsl(21, 87%, 60%)', position: 2 / 10 },\n { color: 'hsl(36, 100%, 64%)', position: 4 / 10 },\n { color: 'hsl(50, 95%, 75%)', position: 5 / 10 },\n { color: 'hsl(85, 72%, 67%)', position: 6 / 10 },\n { color: 'hsl(120, 49%, 60%)', position: 8 / 10 },\n { color: 'hsl(135, 53%, 33%)', position: 1 }\n ],\n 'negative-attention-positive-protan': [\n { color: 'hsl(344, 67%, 44%)', position: 0 },\n { color: 'hsl(351, 66%, 59%)', position: 2 / 10 },\n { color: 'hsl(360, 100%, 84%)', position: 4 / 10 },\n { color: 'hsl(0, 0%, 89%)', position: 5 / 10 },\n { color: 'hsl(110, 46%, 80%)', position: 6 / 10 },\n { color: 'hsl(120, 49%, 60%)', position: 8 / 10 },\n { color: 'hsl(135, 53%, 33%)', position: 1 }\n ],\n 'negative-attention-positive-deutan': [\n { color: 'hsl(315, 64%, 45%)', position: 0 },\n { color: 'hsl(313, 83%, 62%)', position: 2 / 10 },\n { color: 'hsl(313, 100%, 80%)', position: 4 / 10 },\n { color: 'hsl(0, 0%, 89%)', position: 5 / 10 },\n { color: 'hsl(110, 46%, 80%)', position: 6 / 10 },\n { color: 'hsl(120, 49%, 60%)', position: 8 / 10 },\n { color: 'hsl(135, 53%, 33%)', position: 1 }\n ],\n 'hot-cold': [\n { color: 'hsl(212, 100%, 27%)', position: 0 },\n { color: 'hsl(213, 40%, 49%)', position: 2 / 10 },\n { color: 'hsl(210, 45%, 69%)', position: 4 / 10 },\n { color: 'hsl(0, 0%, 89%)', position: 5 / 10 },\n { color: 'hsl(360, 100%, 84%)', position: 6 / 10 },\n { color: 'hsl(351, 66%, 59%)', position: 8 / 10 },\n { color: 'hsl(344, 67%, 44%)', position: 1 }\n ],\n 'two-extremes': [\n { color: 'hsl(240, 30%, 39%)', position: 0 },\n { color: 'hsl(271, 27%, 63%)', position: 2 / 10 },\n { color: 'hsl(293, 25%, 87%)', position: 4 / 10 },\n { color: 'hsl(0, 0%, 89%)', position: 5 / 10 },\n { color: 'hsl(171, 37%, 86%)', position: 6 / 10 },\n { color: 'hsl(167, 41%, 51%)', position: 8 / 10 },\n { color: 'hsl(163, 44%, 16%)', position: 1 }\n ]\n};\n\nexport const colorInGradient = ([...gradient]: LinearGradient, targetPosition: number): string => {\n // Return transparent for an empty gradient.\n if (gradient.length === 0) return 'transparent';\n\n // Return the color for single element gradient.\n if (gradient.length === 1) return gradient[0].color;\n\n // Clamp position to interval from 0 to 1.\n targetPosition = Math.min(Math.max(targetPosition, 0), 1);\n\n // Extend the the start of the gradient to 0 if necessary.\n if (gradient[0].position !== 0) gradient.unshift({ color: gradient[0].color, position: 0 });\n\n // Extend the the end of the gradient to 1 if necessary.\n if (gradient[gradient.length - 1].position !== 1)\n gradient.push({ color: gradient[gradient.length - 1].color, position: 1 });\n\n for (let i = 0; i < gradient.length; i += 1) {\n const current = gradient[i];\n\n // If target position is the same as the current position, return the color at the current position.\n if (targetPosition === current.position) return current.color;\n\n // If target position is less than the current position, it must be between the previous position and current position.\n if (targetPosition < current.position) {\n const previous = gradient[i - 1];\n\n // Calculate how far the targetPosition is between the previousPosition and the currentPosition.\n const percentage =\n (targetPosition - previous.position) / (current.position - previous.position);\n\n try {\n return mix(percentage, current.color, previous.color);\n } catch {\n // Polished mix throws on invalid color.\n return 'transparent';\n }\n }\n }\n\n // Failsafe return.\n return 'transparent';\n};\n\nexport const colorInGradientByName = (\n name: keyof typeof gradientMap,\n targetPosition: number\n): string => {\n return colorInGradient(gradientMap[name] ?? [], targetPosition);\n};\n\nexport const colorsForCategories = (\n count: number,\n {\n gradients = (\n [\n 'persian-blue',\n 'persian-green',\n 'pastel-orange',\n 'japanese-laurel',\n 'mango-tango',\n 'valencia',\n 'fuchsia-blue',\n 'faded-red',\n 'rope',\n 'silver'\n ] as const\n ).map(name => gradientMap[name]),\n steps = [2 / 3, 1 / 3, 1, 0, 1 / 2]\n }: { gradients?: LinearGradient[]; steps?: number[] } = {}\n): string[] => {\n // Colors per gradient\n const perGradient = Math.floor(count / gradients.length);\n\n // Number of gradients with 1 extra color\n const extra = count % gradients.length;\n\n const colors: string[] = [];\n\n for (let i = 0; i < gradients.length; i += 1) {\n for (let j = 0; j < (i < extra ? perGradient + 1 : perGradient); j += 1) {\n colors.push(colorInGradient(gradients[i], steps[j % steps.length]));\n }\n }\n\n return colors;\n};\n\nexport const nlpColors = (\n [\n ['persian-blue', 1],\n ['persian-green', 1],\n ['pastel-orange', 1],\n ['japanese-laurel', 1],\n ['mango-tango', 1],\n ['valencia', 1],\n ['fuchsia-blue', 1],\n ['faded-red', 1],\n ['rope', 1],\n ['silver', 1],\n ['blue-yellow', 1],\n ['blue-yellow', 5 / 10],\n ['green-yellow', 1],\n ['blue-yellow', 3 / 10],\n ['green-yellow', 7 / 10],\n ['ruby-yellow', 1],\n ['ruby-yellow', 6 / 10],\n ['purple-blue', 1],\n ['two-extremes', 9 / 10],\n ['persian-blue', 1 / 2],\n ['hot-cold', 1],\n ['persian-green', 1 / 2],\n ['pastel-orange', 1 / 2],\n ['japanese-laurel', 1 / 2],\n ['mango-tango', 1 / 2],\n ['valencia', 1 / 2],\n ['fuchsia-blue', 1 / 2],\n ['faded-red', 1 / 2],\n ['rope', 1 / 2],\n ['silver', 1 / 2],\n ['blue-yellow', 7 / 10],\n ['blue-yellow', 4 / 10],\n ['green-yellow', 5 / 10],\n ['ruby-yellow', 5 / 10],\n ['purple-blue', 7 / 10],\n ['purple-blue', 5 / 10],\n ['violet-rose', 5 / 10],\n ['two-extremes', 8 / 10],\n ['ruby-yellow', 4 / 10],\n ['violet-rose', 7 / 10],\n ['negative-attention-positive-deutan', 8 / 10]\n ] as const\n).map(([gradient, position]) => colorInGradient(gradientMap[gradient], position));\n\nexport const toLinearGradient = (\n gradient: LinearGradient,\n { direction = '180deg' }: { direction?: string } = {}\n): string => {\n if (gradient.length === 0) return 'transparent';\n if (gradient.length === 1) return gradient[0].color;\n\n return `linear-gradient(${direction}, ${gradient\n .map(({ color, position }) => `${color} ${position * 100}%`)\n .join(', ')})`;\n};\n"]}
@@ -639,6 +639,16 @@ export declare const BaseThemeMachine: ThemeMachine<{
639
639
  };
640
640
  };
641
641
  };
642
+ keyboard: {
643
+ "background-color": {
644
+ $type: string;
645
+ $value: string;
646
+ };
647
+ "border-color": {
648
+ $type: string;
649
+ $value: string;
650
+ };
651
+ };
642
652
  };
643
653
  banner: {
644
654
  "icon-color": {
@@ -1808,6 +1818,10 @@ export declare const WorkTheme: {
1808
1818
  readonly foreground: string;
1809
1819
  };
1810
1820
  };
1821
+ readonly keyboard: {
1822
+ readonly "background-color": string;
1823
+ readonly "border-color": string;
1824
+ };
1811
1825
  };
1812
1826
  readonly card: {
1813
1827
  readonly padding: string;
@@ -2368,6 +2382,10 @@ export declare const defaultThemeProp: Readonly<{
2368
2382
  readonly foreground: string;
2369
2383
  };
2370
2384
  };
2385
+ readonly keyboard: {
2386
+ readonly "background-color": string;
2387
+ readonly "border-color": string;
2388
+ };
2371
2389
  };
2372
2390
  readonly card: {
2373
2391
  readonly padding: string;
@@ -1 +1 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/theme/theme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/theme/theme.ts"],"names":[],"mappings":"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"}
@@ -508,6 +508,16 @@
508
508
  "$value": "base.palette.light"
509
509
  }
510
510
  }
511
+ },
512
+ "keyboard": {
513
+ "background-color": {
514
+ "$type": "inherited",
515
+ "$value": "base.colors.slate.extra-light"
516
+ },
517
+ "border-color": {
518
+ "$type": "inherited",
519
+ "$value": "base.colors.slate.light"
520
+ }
511
521
  }
512
522
  },
513
523
  "banner": {
@@ -36,6 +36,12 @@
36
36
  "tooltip": {
37
37
  "foreground-color": "#3f3f3f",
38
38
  "background-color": "#fafafa"
39
+ },
40
+ "badges": {
41
+ "keyboard": {
42
+ "background-color": "#676767",
43
+ "border-color": "#939393"
44
+ }
39
45
  }
40
46
  }
41
47
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pega/cosmos-react-core",
3
- "version": "3.0.0-dev.8.0",
3
+ "version": "3.0.0-dev.9.0",
4
4
  "description": "Cosmos is a visual design system and UI component collection. Its goal is to empower application developers in their pursuit to create engaging and rewarding user experiences.",
5
5
  "author": "Pegasystems",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -49,7 +49,7 @@
49
49
  "@storybook/addon-toolbars": "^6.4.19",
50
50
  "@storybook/addons": "^6.4.19",
51
51
  "@storybook/react": "^6.4.19",
52
- "@storybook/testing-react": "0.0.18",
52
+ "@storybook/testing-react": "^1.2.4",
53
53
  "@storybook/theming": "^6.4.19",
54
54
  "@testing-library/jest-dom": "^5.16.2",
55
55
  "@testing-library/react": "^12.1.3",