@seeqdev/qomponents 0.0.132 → 0.0.133

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 (140) hide show
  1. package/README.md +135 -135
  2. package/dist/Accordion/Accordion.js +8 -8
  3. package/dist/Accordion/Accordion.stories.js +114 -114
  4. package/dist/Accordion/Accordion.test.js +54 -54
  5. package/dist/Accordion/Accordion.types.js +1 -1
  6. package/dist/Accordion/index.js +1 -1
  7. package/dist/Alert/Alert.js +33 -33
  8. package/dist/Alert/Alert.stories.js +51 -51
  9. package/dist/Alert/Alert.test.js +50 -50
  10. package/dist/Alert/Alert.types.js +1 -1
  11. package/dist/Alert/index.js +1 -1
  12. package/dist/Button/Button.js +91 -91
  13. package/dist/Button/Button.stories.js +99 -99
  14. package/dist/Button/Button.test.js +48 -48
  15. package/dist/Button/Button.types.js +4 -4
  16. package/dist/Button/index.js +1 -1
  17. package/dist/ButtonGroup/ButtonGroup.js +32 -32
  18. package/dist/ButtonGroup/ButtonGroup.stories.js +384 -384
  19. package/dist/ButtonGroup/ButtonGroup.test.js +66 -66
  20. package/dist/ButtonGroup/ButtonGroup.types.js +1 -1
  21. package/dist/ButtonGroup/index.js +1 -1
  22. package/dist/ButtonWithDropdown/ButtonWithDropdown.js +59 -59
  23. package/dist/ButtonWithDropdown/ButtonWithDropdown.stories.js +142 -142
  24. package/dist/ButtonWithDropdown/ButtonWithDropdown.test.js +92 -92
  25. package/dist/ButtonWithDropdown/ButtonWithDropdown.types.js +1 -1
  26. package/dist/ButtonWithDropdown/index.js +1 -1
  27. package/dist/ButtonWithPopover/ButtonWithPopover.js +61 -61
  28. package/dist/ButtonWithPopover/ButtonWithPopover.stories.js +74 -74
  29. package/dist/ButtonWithPopover/ButtonWithPopover.test.js +81 -81
  30. package/dist/ButtonWithPopover/ButtonWithPopover.types.js +1 -1
  31. package/dist/ButtonWithPopover/index.js +1 -1
  32. package/dist/Carousel/Carousel.js +66 -66
  33. package/dist/Carousel/Carousel.stories.js +114 -114
  34. package/dist/Carousel/Carousel.test.js +47 -47
  35. package/dist/Carousel/Carousel.types.js +1 -1
  36. package/dist/Carousel/index.js +1 -1
  37. package/dist/Checkbox/Checkbox.js +25 -25
  38. package/dist/Checkbox/Checkbox.stories.js +33 -33
  39. package/dist/Checkbox/Checkbox.test.js +93 -93
  40. package/dist/Checkbox/Checkbox.types.js +1 -1
  41. package/dist/Checkbox/index.js +1 -1
  42. package/dist/Collapse/Collapse.js +17 -17
  43. package/dist/Collapse/Collapse.stories.js +36 -36
  44. package/dist/Collapse/Collapse.test.js +18 -18
  45. package/dist/Collapse/Collapse.types.js +1 -1
  46. package/dist/Collapse/index.js +1 -1
  47. package/dist/Icon/Icon.js +54 -54
  48. package/dist/Icon/Icon.stories.js +46 -46
  49. package/dist/Icon/Icon.test.js +54 -54
  50. package/dist/Icon/Icon.types.js +15 -15
  51. package/dist/Icon/index.js +1 -1
  52. package/dist/InputGroup/InputGroup.js +31 -31
  53. package/dist/InputGroup/InputGroup.stories.js +167 -167
  54. package/dist/InputGroup/InputGroup.test.js +42 -42
  55. package/dist/InputGroup/InputGroup.types.js +1 -1
  56. package/dist/InputGroup/index.js +1 -1
  57. package/dist/Modal/Modal.js +99 -99
  58. package/dist/Modal/Modal.js.map +1 -1
  59. package/dist/Modal/Modal.stories.js +126 -126
  60. package/dist/Modal/Modal.test.js +107 -107
  61. package/dist/Modal/Modal.types.js +1 -1
  62. package/dist/Modal/index.js +1 -1
  63. package/dist/ProgressBar/ProgressBar.js +49 -29
  64. package/dist/ProgressBar/ProgressBar.js.map +1 -1
  65. package/dist/ProgressBar/ProgressBar.stories.js +80 -72
  66. package/dist/ProgressBar/ProgressBar.stories.js.map +1 -1
  67. package/dist/ProgressBar/ProgressBar.test.js +43 -37
  68. package/dist/ProgressBar/ProgressBar.test.js.map +1 -1
  69. package/dist/ProgressBar/ProgressBar.types.d.ts +2 -0
  70. package/dist/ProgressBar/ProgressBar.types.js +1 -1
  71. package/dist/ProgressBar/index.js +1 -1
  72. package/dist/SeeqActionDropdown/SeeqActionDropdown.js +47 -47
  73. package/dist/SeeqActionDropdown/SeeqActionDropdown.stories.js +79 -79
  74. package/dist/SeeqActionDropdown/SeeqActionDropdown.test.js +72 -72
  75. package/dist/SeeqActionDropdown/SeeqActionDropdown.types.js +1 -1
  76. package/dist/SeeqActionDropdown/index.js +1 -1
  77. package/dist/SeeqActionDropdown/variants.js +22 -22
  78. package/dist/Select/Select.js +173 -173
  79. package/dist/Select/Select.stories.js +79 -79
  80. package/dist/Select/Select.test.js +181 -181
  81. package/dist/Select/Select.types.js +1 -1
  82. package/dist/Select/index.js +2 -2
  83. package/dist/Slider/Slider.js +12 -12
  84. package/dist/Slider/Slider.stories.js +57 -57
  85. package/dist/Slider/Slider.test.js +32 -32
  86. package/dist/Slider/Slider.types.js +1 -1
  87. package/dist/Slider/index.js +1 -1
  88. package/dist/Tabs/Tabs.js +21 -21
  89. package/dist/Tabs/Tabs.stories.js +90 -90
  90. package/dist/Tabs/Tabs.test.js +90 -90
  91. package/dist/Tabs/Tabs.types.js +1 -1
  92. package/dist/Tabs/index.js +1 -1
  93. package/dist/TextArea/TextArea.js +24 -24
  94. package/dist/TextArea/TextArea.stories.js +45 -45
  95. package/dist/TextArea/TextArea.test.js +67 -67
  96. package/dist/TextArea/TextArea.types.js +1 -1
  97. package/dist/TextArea/index.js +1 -1
  98. package/dist/TextField/TextField.js +78 -78
  99. package/dist/TextField/TextField.stories.js +69 -69
  100. package/dist/TextField/TextField.test.js +38 -38
  101. package/dist/TextField/TextField.types.js +1 -1
  102. package/dist/TextField/index.js +1 -1
  103. package/dist/ToolbarButton/ToolbarButton.js +74 -74
  104. package/dist/ToolbarButton/ToolbarButton.stories.js +93 -93
  105. package/dist/ToolbarButton/ToolbarButton.test.js +92 -92
  106. package/dist/ToolbarButton/ToolbarButton.types.js +1 -1
  107. package/dist/ToolbarButton/index.js +1 -1
  108. package/dist/Tooltip/QTip.stories.js +44 -44
  109. package/dist/Tooltip/QTip.types.js +1 -1
  110. package/dist/Tooltip/QTipPerformance.stories.js +29 -29
  111. package/dist/Tooltip/Qtip.js +167 -167
  112. package/dist/Tooltip/Tooltip.js +35 -35
  113. package/dist/Tooltip/Tooltip.stories.js +31 -31
  114. package/dist/Tooltip/Tooltip.types.js +2 -2
  115. package/dist/Tooltip/TooltipPerformance.stories.js +29 -29
  116. package/dist/Tooltip/index.js +2 -2
  117. package/dist/Tooltip/qTip.utilities.js +10 -10
  118. package/dist/example/.eslintrc.cjs +14 -14
  119. package/dist/example/README.md +33 -33
  120. package/dist/example/index.html +13 -13
  121. package/dist/example/package.json +30 -30
  122. package/dist/example/src/ComplexSelectExample.tsx +81 -81
  123. package/dist/example/src/Example.tsx +408 -408
  124. package/dist/example/src/index.css +102 -102
  125. package/dist/example/src/main.tsx +10 -10
  126. package/dist/example/src/vite-env.d.ts +1 -1
  127. package/dist/example/tsconfig.json +33 -33
  128. package/dist/example/tsconfig.node.json +12 -12
  129. package/dist/example/vite.config.ts +12 -12
  130. package/dist/index.esm.js +1229 -31
  131. package/dist/index.esm.js.map +1 -1
  132. package/dist/index.js +1229 -31
  133. package/dist/index.js.map +1 -1
  134. package/dist/styles.css +3714 -3709
  135. package/dist/types.js +1 -1
  136. package/dist/utils/browserId.js +28 -28
  137. package/dist/utils/svg.js +19 -19
  138. package/dist/utils/validateStyleDimension.js +13 -13
  139. package/dist/utils/validateStyleDimension.test.js +19 -19
  140. package/package.json +88 -86
package/dist/types.js CHANGED
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=types.js.map
@@ -1,29 +1,29 @@
1
- /**
2
- * @exports the browser id (i.e., 'IE 11' 'Chrome 90')
3
- * @see http://stackoverflow.com/questions/2400935/browser-detection-in-javascript
4
- */
5
- export const browserId = (function () {
6
- let tem;
7
- const ua = navigator.userAgent;
8
- let M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
9
- if (/trident/i.test(M[1])) {
10
- tem = /\brv[ :]+(\d+)/g.exec(ua) || [];
11
- return `IE ${tem[1] || ''}`;
12
- }
13
- if (M[1] === 'Chrome') {
14
- tem = ua.match(/\b(OPR|Edge?)\/(\d+)/);
15
- if (tem !== null) {
16
- return tem.slice(1).join(' ').replace('OPR', 'Opera').replace('Edg ', 'Edge ');
17
- }
18
- }
19
- M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?'];
20
- if ((tem = ua.match(/version\/(\d+)/i)) !== null) {
21
- M.splice(1, 1, tem[1]);
22
- }
23
- return M.join(' ');
24
- })();
25
- export const browserName = browserId && browserId.split(' ', 2)[0];
26
- export const browserVersion = browserId && parseInt(browserId.split(' ', 2)[1], 10);
27
- export const browserIsFirefox = browserId && browserName === 'Firefox';
28
- export const browserIsEdgeBeforeChromium = browserName && browserVersion && browserName === 'Edge' && browserVersion < 70;
1
+ /**
2
+ * @exports the browser id (i.e., 'IE 11' 'Chrome 90')
3
+ * @see http://stackoverflow.com/questions/2400935/browser-detection-in-javascript
4
+ */
5
+ export const browserId = (function () {
6
+ let tem;
7
+ const ua = navigator.userAgent;
8
+ let M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
9
+ if (/trident/i.test(M[1])) {
10
+ tem = /\brv[ :]+(\d+)/g.exec(ua) || [];
11
+ return `IE ${tem[1] || ''}`;
12
+ }
13
+ if (M[1] === 'Chrome') {
14
+ tem = ua.match(/\b(OPR|Edge?)\/(\d+)/);
15
+ if (tem !== null) {
16
+ return tem.slice(1).join(' ').replace('OPR', 'Opera').replace('Edg ', 'Edge ');
17
+ }
18
+ }
19
+ M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?'];
20
+ if ((tem = ua.match(/version\/(\d+)/i)) !== null) {
21
+ M.splice(1, 1, tem[1]);
22
+ }
23
+ return M.join(' ');
24
+ })();
25
+ export const browserName = browserId && browserId.split(' ', 2)[0];
26
+ export const browserVersion = browserId && parseInt(browserId.split(' ', 2)[1], 10);
27
+ export const browserIsFirefox = browserId && browserName === 'Firefox';
28
+ export const browserIsEdgeBeforeChromium = browserName && browserVersion && browserName === 'Edge' && browserVersion < 70;
29
29
  //# sourceMappingURL=browserId.js.map
package/dist/utils/svg.js CHANGED
@@ -1,20 +1,20 @@
1
- export const SVG_PATH = 'svgpath:';
2
- /**
3
- * Determines if an icon is SVG
4
- *
5
- * @param icon - an icon string that will either be an icon class or an SVG path definition (e.g. "fa fa-wrench" or
6
- * "svgpath:M 17.0181 0 ...")
7
- */
8
- export function isSvgIcon(icon) {
9
- return icon.startsWith(SVG_PATH);
10
- }
11
- /**
12
- * Retrieves the SVG path from an SVG icon
13
- *
14
- * @param icon - an SVG icon string including path definition (e.g. "svgpath:M 17.0181 0 ...")
15
- * @returns the SVG icon path or an empty string if the supplied icon is not SVG
16
- */
17
- export function getSvgIconPath(icon) {
18
- return isSvgIcon(icon) ? icon.substring(SVG_PATH.length) : '';
19
- }
1
+ export const SVG_PATH = 'svgpath:';
2
+ /**
3
+ * Determines if an icon is SVG
4
+ *
5
+ * @param icon - an icon string that will either be an icon class or an SVG path definition (e.g. "fa fa-wrench" or
6
+ * "svgpath:M 17.0181 0 ...")
7
+ */
8
+ export function isSvgIcon(icon) {
9
+ return icon.startsWith(SVG_PATH);
10
+ }
11
+ /**
12
+ * Retrieves the SVG path from an SVG icon
13
+ *
14
+ * @param icon - an SVG icon string including path definition (e.g. "svgpath:M 17.0181 0 ...")
15
+ * @returns the SVG icon path or an empty string if the supplied icon is not SVG
16
+ */
17
+ export function getSvgIconPath(icon) {
18
+ return isSvgIcon(icon) ? icon.substring(SVG_PATH.length) : '';
19
+ }
20
20
  //# sourceMappingURL=svg.js.map
@@ -1,14 +1,14 @@
1
- export const setValidInputDimension = (width, height) => {
2
- let inputStyle;
3
- if (typeof width === 'number' && width > 0) {
4
- inputStyle = {
5
- width: `${width}px`,
6
- };
7
- }
8
- if (typeof height === 'number' && height > 0) {
9
- inputStyle = inputStyle || {};
10
- inputStyle['height'] = `${height}px`;
11
- }
12
- return inputStyle;
13
- };
1
+ export const setValidInputDimension = (width, height) => {
2
+ let inputStyle;
3
+ if (typeof width === 'number' && width > 0) {
4
+ inputStyle = {
5
+ width: `${width}px`,
6
+ };
7
+ }
8
+ if (typeof height === 'number' && height > 0) {
9
+ inputStyle = inputStyle || {};
10
+ inputStyle['height'] = `${height}px`;
11
+ }
12
+ return inputStyle;
13
+ };
14
14
  //# sourceMappingURL=validateStyleDimension.js.map
@@ -1,20 +1,20 @@
1
- import { setValidInputDimension } from './validateStyleDimension';
2
- describe('setValidInputDimension', () => {
3
- it('returns undefined if both width and height are undefined', () => {
4
- const result = setValidInputDimension();
5
- expect(result).toBeUndefined();
6
- });
7
- it('returns a DimensionStyle object with width if width is a valid number', () => {
8
- const result = setValidInputDimension(300);
9
- expect(result).toEqual({ width: '300px' });
10
- });
11
- it('returns a DimensionStyle object with height if height is a valid number', () => {
12
- const result = setValidInputDimension(undefined, 400);
13
- expect(result).toEqual({ height: '400px' });
14
- });
15
- it('returns a DimensionStyle object with both width and height if both are valid numbers', () => {
16
- const result = setValidInputDimension(500, 600);
17
- expect(result).toEqual({ width: '500px', height: '600px' });
18
- });
19
- });
1
+ import { setValidInputDimension } from './validateStyleDimension';
2
+ describe('setValidInputDimension', () => {
3
+ it('returns undefined if both width and height are undefined', () => {
4
+ const result = setValidInputDimension();
5
+ expect(result).toBeUndefined();
6
+ });
7
+ it('returns a DimensionStyle object with width if width is a valid number', () => {
8
+ const result = setValidInputDimension(300);
9
+ expect(result).toEqual({ width: '300px' });
10
+ });
11
+ it('returns a DimensionStyle object with height if height is a valid number', () => {
12
+ const result = setValidInputDimension(undefined, 400);
13
+ expect(result).toEqual({ height: '400px' });
14
+ });
15
+ it('returns a DimensionStyle object with both width and height if both are valid numbers', () => {
16
+ const result = setValidInputDimension(500, 600);
17
+ expect(result).toEqual({ width: '500px', height: '600px' });
18
+ });
19
+ });
20
20
  //# sourceMappingURL=validateStyleDimension.test.js.map
package/package.json CHANGED
@@ -1,86 +1,88 @@
1
- {
2
- "name": "@seeqdev/qomponents",
3
- "version": "0.0.132",
4
- "main": "dist/index.js",
5
- "module": "dist/index.esm.js",
6
- "types": "dist/index.js",
7
- "skip-lib-check": true,
8
- "files": [
9
- "dist"
10
- ],
11
- "repository": {
12
- "type": "git",
13
- "url": "TOOD"
14
- },
15
- "publishConfig": {
16
- "access": "public"
17
- },
18
- "description": "A library that allows you to build native UIs ... TODO",
19
- "scripts": {
20
- "build": "rollup -c --bundleConfigAsCjs",
21
- "watchRollup": "rollup -c --bundleConfigAsCjs --watch",
22
- "test": "jest",
23
- "test:watch": "jest --watch",
24
- "dev": "ladle serve"
25
- },
26
- "author": "Seeq",
27
- "license": "MIT",
28
- "bugs": {
29
- "url": "TODO"
30
- },
31
- "homepage": "https://seeq12.github.io/qomponents-documentation/",
32
- "peerDependencies": {
33
- "react": ">=17.0.0",
34
- "react-dom": ">=17.0.0"
35
- },
36
- "devDependencies": {
37
- "@ladle/react": "2.9.0",
38
- "@react-types/shared": "3.19.0",
39
- "@rollup/plugin-commonjs": "24.0.1",
40
- "@rollup/plugin-node-resolve": "15.0.1",
41
- "@tailwindcss/forms": "0.5.3",
42
- "@testing-library/jest-dom": "5.16.5",
43
- "@testing-library/react": "14.0.0",
44
- "@testing-library/user-event": "14.4.3",
45
- "@types/dompurify": "^3.0.2",
46
- "@types/jest": "29.4.0",
47
- "@types/react": "18.0.27",
48
- "@types/react-dom": "18.0.11",
49
- "autoprefixer": "10.4.13",
50
- "color": "4.2.3",
51
- "identity-obj-proxy": "3.0.0",
52
- "jest": "29.4.3",
53
- "jest-cli": "29.1.1",
54
- "jest-environment-jsdom": "29.4.3",
55
- "jest-junit": "15.0.0",
56
- "jest-silent-reporter": "0.5.0",
57
- "postcss-import": "15.1.0",
58
- "react": "18.2.0",
59
- "react-dom": "18.2.0",
60
- "rollup": "3.17.2",
61
- "rollup-plugin-copy": "3.4.0",
62
- "rollup-plugin-peer-deps-external": "2.2.4",
63
- "rollup-plugin-postcss": "4.0.2",
64
- "rollup-plugin-typescript2": "0.34.1",
65
- "tailwindcss": "3.2.7",
66
- "ts-jest": "29.0.5",
67
- "ts-node": "10.9.1",
68
- "typescript": "4.9.5",
69
- "typescript-strict-plugin": "2.1.0"
70
- },
71
- "dependencies": {
72
- "@floating-ui/dom": "1.5.1",
73
- "@radix-ui/react-accordion": "1.1.2",
74
- "@radix-ui/react-dialog": "1.0.5",
75
- "@radix-ui/react-dropdown-menu": "2.0.6",
76
- "@radix-ui/react-popover": "1.0.7",
77
- "@radix-ui/react-progress": "1.1.1",
78
- "@radix-ui/react-slider": "1.2.2",
79
- "@radix-ui/react-tabs": "1.0.4",
80
- "@react-spring/web": "9.7.5",
81
- "dompurify": "3.2.3",
82
- "postcss": "8.4.21",
83
- "react-select": "5.7.3",
84
- "rooks": "7.14.1"
85
- }
86
- }
1
+ {
2
+ "name": "@seeqdev/qomponents",
3
+ "version": "0.0.133",
4
+ "main": "dist/index.js",
5
+ "module": "dist/index.esm.js",
6
+ "types": "dist/index.js",
7
+ "skip-lib-check": true,
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "TOOD"
14
+ },
15
+ "publishConfig": {
16
+ "access": "public"
17
+ },
18
+ "description": "A library that allows you to build native UIs ... TODO",
19
+ "scripts": {
20
+ "build": "rollup -c --bundleConfigAsCjs",
21
+ "watchRollup": "rollup -c --bundleConfigAsCjs --watch",
22
+ "test": "jest",
23
+ "test:watch": "jest --watch",
24
+ "dev": "ladle serve"
25
+ },
26
+ "author": "Seeq",
27
+ "license": "MIT",
28
+ "bugs": {
29
+ "url": "TODO"
30
+ },
31
+ "homepage": "https://seeq12.github.io/qomponents-documentation/",
32
+ "peerDependencies": {
33
+ "react": ">=17.0.0",
34
+ "react-dom": ">=17.0.0"
35
+ },
36
+ "devDependencies": {
37
+ "@ladle/react": "2.9.0",
38
+ "@react-types/shared": "3.19.0",
39
+ "@rollup/plugin-commonjs": "24.0.1",
40
+ "@rollup/plugin-node-resolve": "15.0.1",
41
+ "@tailwindcss/forms": "0.5.3",
42
+ "@testing-library/jest-dom": "5.16.5",
43
+ "@testing-library/react": "14.0.0",
44
+ "@testing-library/user-event": "14.4.3",
45
+ "@types/dompurify": "^3.0.2",
46
+ "@types/jest": "29.4.0",
47
+ "@types/react": "18.0.27",
48
+ "@types/react-dom": "18.0.11",
49
+ "@types/tinycolor2": "1.4.2",
50
+ "autoprefixer": "10.4.13",
51
+ "color": "4.2.3",
52
+ "identity-obj-proxy": "3.0.0",
53
+ "jest": "29.4.3",
54
+ "jest-cli": "29.1.1",
55
+ "jest-environment-jsdom": "29.4.3",
56
+ "jest-junit": "15.0.0",
57
+ "jest-silent-reporter": "0.5.0",
58
+ "postcss-import": "15.1.0",
59
+ "react": "18.2.0",
60
+ "react-dom": "18.2.0",
61
+ "rollup": "3.17.2",
62
+ "rollup-plugin-copy": "3.4.0",
63
+ "rollup-plugin-peer-deps-external": "2.2.4",
64
+ "rollup-plugin-postcss": "4.0.2",
65
+ "rollup-plugin-typescript2": "0.34.1",
66
+ "tailwindcss": "3.2.7",
67
+ "ts-jest": "29.0.5",
68
+ "ts-node": "10.9.1",
69
+ "typescript": "4.9.5",
70
+ "typescript-strict-plugin": "2.1.0"
71
+ },
72
+ "dependencies": {
73
+ "@floating-ui/dom": "1.5.1",
74
+ "@radix-ui/react-accordion": "1.1.2",
75
+ "@radix-ui/react-dialog": "1.0.5",
76
+ "@radix-ui/react-dropdown-menu": "2.0.6",
77
+ "@radix-ui/react-popover": "1.0.7",
78
+ "@radix-ui/react-progress": "1.1.1",
79
+ "@radix-ui/react-slider": "1.2.2",
80
+ "@radix-ui/react-tabs": "1.0.4",
81
+ "@react-spring/web": "9.7.5",
82
+ "dompurify": "3.2.3",
83
+ "postcss": "8.4.21",
84
+ "react-select": "5.7.3",
85
+ "rooks": "7.14.1",
86
+ "tinycolor2": "1.6.0"
87
+ }
88
+ }