@thednp/color-picker 2.0.0-alpha8 → 2.0.0-alpha9
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.
- package/README.md +2 -2
- package/compile.js +6 -3
- package/cypress/e2e/color-picker.cy.ts +58 -69
- package/cypress/fixtures/getMarkup.js +8 -1
- package/dist/css/color-picker.css +7 -15
- package/dist/css/color-picker.min.css +2 -2
- package/dist/css/color-picker.rtl.css +7 -15
- package/dist/css/color-picker.rtl.min.css +2 -2
- package/dist/js/color-picker.cjs +2 -2
- package/dist/js/color-picker.cjs.map +1 -1
- package/dist/js/color-picker.d.ts +23 -7
- package/dist/js/color-picker.js +2 -2
- package/dist/js/color-picker.js.map +1 -1
- package/dist/js/color-picker.mjs +202 -203
- package/dist/js/color-picker.mjs.map +1 -1
- package/package.json +115 -114
- package/src/scss/color-picker.scss +6 -10
- package/src/ts/index.ts +11 -11
- package/src/ts/interface/ColorNames.ts +20 -0
- package/cypress/fixtures/getCEMarkup.js +0 -29
package/package.json
CHANGED
@@ -1,114 +1,115 @@
|
|
1
|
-
{
|
2
|
-
"name": "@thednp/color-picker",
|
3
|
-
"version": "2.0.0-
|
4
|
-
"author": "thednp",
|
5
|
-
"license": "MIT",
|
6
|
-
"description": "🎨 Modern Color Picker Component",
|
7
|
-
"homepage": "http://thednp.github.io/color-picker",
|
8
|
-
"source": "./src/ts/index.ts",
|
9
|
-
"main": "./dist/js/color-picker.js",
|
10
|
-
"module": "./dist/js/color-picker.mjs",
|
11
|
-
"style": "./dist/css/color-picker.css",
|
12
|
-
"sass": "./src/scss/color-picker.scss",
|
13
|
-
"exports": {
|
14
|
-
".": {
|
15
|
-
"require": "./dist/js/color-picker.cjs",
|
16
|
-
"import": "./dist/js/color-picker.mjs",
|
17
|
-
"types": "./dist/js/color-picker.d.ts"
|
18
|
-
},
|
19
|
-
"./dist/css/color-picker.css": {
|
20
|
-
"import": "./dist/css/color-picker.css",
|
21
|
-
"require": "./dist/css/color-picker.css"
|
22
|
-
},
|
23
|
-
"./dist/css/color-picker.rtl.css": {
|
24
|
-
"import": "./dist/css/color-picker.rtl.css",
|
25
|
-
"require": "./dist/css/color-picker.rtl.css"
|
26
|
-
},
|
27
|
-
"./src/scss/color-picker.scss": {
|
28
|
-
"import": "./src/scss/color-picker.scss",
|
29
|
-
"require": "./src/scss/color-picker.scss"
|
30
|
-
},
|
31
|
-
"./src/scss/color-picker.rtl.scss": {
|
32
|
-
"import": "./src/scss/color-picker.rtl.scss",
|
33
|
-
"require": "./src/scss/color-picker.rtl.scss"
|
34
|
-
}
|
35
|
-
},
|
36
|
-
"scripts": {
|
37
|
-
"pre-test": "npm run clean-coverage",
|
38
|
-
"test": "npm run pre-test && cypress run",
|
39
|
-
"cypress": "npm run pre-test && npx cypress open",
|
40
|
-
"clean-coverage": "rimraf coverage .nyc_output",
|
41
|
-
"coverage:report": "nyc report --reporter=lcov --reporter=json --reporter=text --reporter=json-summary",
|
42
|
-
"format": "prettier --write \"src/**/*.ts\"",
|
43
|
-
"fix:ts": "eslint src --config .eslintrc.cjs --fix",
|
44
|
-
"lint:ts": "eslint src --config .eslintrc.cjs",
|
45
|
-
"fix:css": "stylelint --config .stylelintrc.json --fix scss \"src/scss/*.scss\"",
|
46
|
-
"lint:css": "stylelint --config .stylelintrc.json scss \"src/scss/*.scss\"",
|
47
|
-
"build": "npm run lint:ts && npm run build-vite && npm run dts",
|
48
|
-
"build-vite": "vite build && npm run docs",
|
49
|
-
"dev": "vite --open ./docs/
|
50
|
-
"dts": "dts-bundle-generator --config ./dts.config.ts",
|
51
|
-
"docs": "ncp dist/js/color-picker.js docs/js/color-picker.js && ncp dist/js/color-picker.js.map docs/js/color-picker.js.map",
|
52
|
-
"copy": "npm-run-all --parallel copy-*",
|
53
|
-
"copy-css-cp": "ncp dist/css/color-picker.css docs/css/color-picker.css",
|
54
|
-
"copy-css-rtl": "ncp dist/css/color-picker.rtl.css docs/css/color-picker.rtl.css",
|
55
|
-
"compile": "npm run lint:css && npm-run-all --parallel compile-* && npm run copy",
|
56
|
-
"compile-scss": "node compile.js",
|
57
|
-
"compile-scss-min": "node compile.js MIN:true",
|
58
|
-
"compile-scss-rtl": "node compile.js MIN:false,DIR:rtl",
|
59
|
-
"compile-scss-rtl-min": "node compile.js MIN:true,DIR:rtl"
|
60
|
-
},
|
61
|
-
"bugs": {
|
62
|
-
"url": "https://github.com/thednp/color-picker/issues"
|
63
|
-
},
|
64
|
-
"publishConfig": {
|
65
|
-
"access": "public",
|
66
|
-
"registry": "https://registry.npmjs.org/"
|
67
|
-
},
|
68
|
-
"repository": {
|
69
|
-
"type": "git",
|
70
|
-
"url": "git+https://github.com/thednp/color-picker.git"
|
71
|
-
},
|
72
|
-
"keywords": [
|
73
|
-
"color",
|
74
|
-
"picker",
|
75
|
-
"color-picker",
|
76
|
-
"colorpicker",
|
77
|
-
"palette",
|
78
|
-
"color-palette",
|
79
|
-
"typescript"
|
80
|
-
],
|
81
|
-
"dependencies": {
|
82
|
-
"@thednp/color": "^1.0.8",
|
83
|
-
"@thednp/event-listener": "^2.0.2",
|
84
|
-
"@thednp/shorty": "
|
85
|
-
},
|
86
|
-
"devDependencies": {
|
87
|
-
"@bahmutov/cypress-esbuild-preprocessor": "^2.2.0",
|
88
|
-
"@cypress/code-coverage": "^3.11.0",
|
89
|
-
"@types/istanbul-lib-instrument": "^1.7.4",
|
90
|
-
"@typescript-eslint/eslint-plugin": "^6.
|
91
|
-
"@typescript-eslint/parser": "^6.
|
92
|
-
"cypress": "^12.17.
|
93
|
-
"dts-bundle-generator": "^8.0.1",
|
94
|
-
"eslint": "^8.47.0",
|
95
|
-
"eslint-plugin-jsdoc": "^46.4.6",
|
96
|
-
"eslint-plugin-prefer-arrow": "^1.2.3",
|
97
|
-
"eslint-plugin-prettier": "^5.0.0",
|
98
|
-
"istanbul-lib-coverage": "^3.2.0",
|
99
|
-
"istanbul-lib-instrument": "^6.0.0",
|
100
|
-
"ncp": "^2.0.0",
|
101
|
-
"npm-run-all": "^4.1.5",
|
102
|
-
"nyc": "^15.1.0",
|
103
|
-
"prettier": "^3.0.
|
104
|
-
"rimraf": "^5.0.1",
|
105
|
-
"sass": "^1.
|
106
|
-
"stylelint": "^15.10.
|
107
|
-
"stylelint-config-standard": "^34.0.0",
|
108
|
-
"stylelint-config-standard-scss": "^10.0.0",
|
109
|
-
"stylelint-order": "^6.0.3",
|
110
|
-
"stylelint-scss": "^5.1.0",
|
111
|
-
"typescript": "^5.1.6",
|
112
|
-
"vite": "^4.4.9"
|
113
|
-
}
|
114
|
-
|
1
|
+
{
|
2
|
+
"name": "@thednp/color-picker",
|
3
|
+
"version": "2.0.0-alpha9",
|
4
|
+
"author": "thednp",
|
5
|
+
"license": "MIT",
|
6
|
+
"description": "🎨 Modern Color Picker Component",
|
7
|
+
"homepage": "http://thednp.github.io/color-picker",
|
8
|
+
"source": "./src/ts/index.ts",
|
9
|
+
"main": "./dist/js/color-picker.js",
|
10
|
+
"module": "./dist/js/color-picker.mjs",
|
11
|
+
"style": "./dist/css/color-picker.css",
|
12
|
+
"sass": "./src/scss/color-picker.scss",
|
13
|
+
"exports": {
|
14
|
+
".": {
|
15
|
+
"require": "./dist/js/color-picker.cjs",
|
16
|
+
"import": "./dist/js/color-picker.mjs",
|
17
|
+
"types": "./dist/js/color-picker.d.ts"
|
18
|
+
},
|
19
|
+
"./dist/css/color-picker.css": {
|
20
|
+
"import": "./dist/css/color-picker.css",
|
21
|
+
"require": "./dist/css/color-picker.css"
|
22
|
+
},
|
23
|
+
"./dist/css/color-picker.rtl.css": {
|
24
|
+
"import": "./dist/css/color-picker.rtl.css",
|
25
|
+
"require": "./dist/css/color-picker.rtl.css"
|
26
|
+
},
|
27
|
+
"./src/scss/color-picker.scss": {
|
28
|
+
"import": "./src/scss/color-picker.scss",
|
29
|
+
"require": "./src/scss/color-picker.scss"
|
30
|
+
},
|
31
|
+
"./src/scss/color-picker.rtl.scss": {
|
32
|
+
"import": "./src/scss/color-picker.rtl.scss",
|
33
|
+
"require": "./src/scss/color-picker.rtl.scss"
|
34
|
+
}
|
35
|
+
},
|
36
|
+
"scripts": {
|
37
|
+
"pre-test": "npm run clean-coverage",
|
38
|
+
"test": "npm run pre-test && cypress run",
|
39
|
+
"cypress": "npm run pre-test && npx cypress open",
|
40
|
+
"clean-coverage": "rimraf coverage .nyc_output",
|
41
|
+
"coverage:report": "nyc report --reporter=lcov --reporter=json --reporter=text --reporter=json-summary",
|
42
|
+
"format": "prettier --write \"src/**/*.ts\"",
|
43
|
+
"fix:ts": "eslint src --config .eslintrc.cjs --fix",
|
44
|
+
"lint:ts": "eslint src --config .eslintrc.cjs",
|
45
|
+
"fix:css": "stylelint --config .stylelintrc.json --fix scss \"src/scss/*.scss\"",
|
46
|
+
"lint:css": "stylelint --config .stylelintrc.json scss \"src/scss/*.scss\"",
|
47
|
+
"build": "npm run lint:ts && npm run build-vite && npm run dts",
|
48
|
+
"build-vite": "vite build && npm run docs",
|
49
|
+
"dev": "vite --open ./docs/dev.html --port 8577",
|
50
|
+
"dts": "dts-bundle-generator --config ./dts.config.ts",
|
51
|
+
"docs": "ncp dist/js/color-picker.js docs/js/color-picker.js && ncp dist/js/color-picker.js.map docs/js/color-picker.js.map",
|
52
|
+
"copy": "npm-run-all --parallel copy-*",
|
53
|
+
"copy-css-cp": "ncp dist/css/color-picker.css docs/css/color-picker.css",
|
54
|
+
"copy-css-rtl": "ncp dist/css/color-picker.rtl.css docs/css/color-picker.rtl.css",
|
55
|
+
"compile": "npm run lint:css && npm-run-all --parallel compile-* && npm run copy",
|
56
|
+
"compile-scss": "node compile.js",
|
57
|
+
"compile-scss-min": "node compile.js MIN:true",
|
58
|
+
"compile-scss-rtl": "node compile.js MIN:false,DIR:rtl",
|
59
|
+
"compile-scss-rtl-min": "node compile.js MIN:true,DIR:rtl"
|
60
|
+
},
|
61
|
+
"bugs": {
|
62
|
+
"url": "https://github.com/thednp/color-picker/issues"
|
63
|
+
},
|
64
|
+
"publishConfig": {
|
65
|
+
"access": "public",
|
66
|
+
"registry": "https://registry.npmjs.org/"
|
67
|
+
},
|
68
|
+
"repository": {
|
69
|
+
"type": "git",
|
70
|
+
"url": "git+https://github.com/thednp/color-picker.git"
|
71
|
+
},
|
72
|
+
"keywords": [
|
73
|
+
"color",
|
74
|
+
"picker",
|
75
|
+
"color-picker",
|
76
|
+
"colorpicker",
|
77
|
+
"palette",
|
78
|
+
"color-palette",
|
79
|
+
"typescript"
|
80
|
+
],
|
81
|
+
"dependencies": {
|
82
|
+
"@thednp/color": "^1.0.8",
|
83
|
+
"@thednp/event-listener": "^2.0.2",
|
84
|
+
"@thednp/shorty": "2.0.0-alpha17"
|
85
|
+
},
|
86
|
+
"devDependencies": {
|
87
|
+
"@bahmutov/cypress-esbuild-preprocessor": "^2.2.0",
|
88
|
+
"@cypress/code-coverage": "^3.11.0",
|
89
|
+
"@types/istanbul-lib-instrument": "^1.7.4",
|
90
|
+
"@typescript-eslint/eslint-plugin": "^6.4.0",
|
91
|
+
"@typescript-eslint/parser": "^6.4.0",
|
92
|
+
"cypress": "^12.17.4",
|
93
|
+
"dts-bundle-generator": "^8.0.1",
|
94
|
+
"eslint": "^8.47.0",
|
95
|
+
"eslint-plugin-jsdoc": "^46.4.6",
|
96
|
+
"eslint-plugin-prefer-arrow": "^1.2.3",
|
97
|
+
"eslint-plugin-prettier": "^5.0.0",
|
98
|
+
"istanbul-lib-coverage": "^3.2.0",
|
99
|
+
"istanbul-lib-instrument": "^6.0.0",
|
100
|
+
"ncp": "^2.0.0",
|
101
|
+
"npm-run-all": "^4.1.5",
|
102
|
+
"nyc": "^15.1.0",
|
103
|
+
"prettier": "^3.0.2",
|
104
|
+
"rimraf": "^5.0.1",
|
105
|
+
"sass": "^1.66.1",
|
106
|
+
"stylelint": "^15.10.3",
|
107
|
+
"stylelint-config-standard": "^34.0.0",
|
108
|
+
"stylelint-config-standard-scss": "^10.0.0",
|
109
|
+
"stylelint-order": "^6.0.3",
|
110
|
+
"stylelint-scss": "^5.1.0",
|
111
|
+
"typescript": "^5.1.6",
|
112
|
+
"vite": "^4.4.9"
|
113
|
+
},
|
114
|
+
"packageManager": "pnpm@8.6.12"
|
115
|
+
}
|
@@ -299,7 +299,8 @@
|
|
299
299
|
transition: var(--options-transition);
|
300
300
|
}
|
301
301
|
|
302
|
-
.color-options.scrollable:hover {
|
302
|
+
// .color-options.scrollable:hover {
|
303
|
+
.color-dropdown.menu:hover .scrollable {
|
303
304
|
height: var(--grid-hover-height);
|
304
305
|
}
|
305
306
|
|
@@ -321,7 +322,7 @@
|
|
321
322
|
width: var(--grid-item-size);
|
322
323
|
height: var(--grid-item-size);
|
323
324
|
overflow: hidden;
|
324
|
-
|
325
|
+
color: rgba(0,0,0,0%);
|
325
326
|
|
326
327
|
&:active, &:focus {
|
327
328
|
outline: none;
|
@@ -419,7 +420,7 @@
|
|
419
420
|
|
420
421
|
/* visual control */
|
421
422
|
.visual-control {
|
422
|
-
height:
|
423
|
+
height: 230px;
|
423
424
|
|
424
425
|
/* important for mobile devices */
|
425
426
|
touch-action: none;
|
@@ -427,7 +428,7 @@
|
|
427
428
|
}
|
428
429
|
|
429
430
|
.visual-control1 {
|
430
|
-
width:
|
431
|
+
width: 230px;
|
431
432
|
}
|
432
433
|
|
433
434
|
.visual-control2,
|
@@ -436,12 +437,7 @@
|
|
436
437
|
cursor: ns-resize;
|
437
438
|
}
|
438
439
|
|
439
|
-
@media (width >=
|
440
|
-
.visual-control { height: 230px; }
|
441
|
-
.visual-control1 { width: 230px; }
|
442
|
-
}
|
443
|
-
|
444
|
-
@media (width >= 1200px) {
|
440
|
+
@media (width >= 980px) {
|
445
441
|
.visual-control { height: 300px; }
|
446
442
|
.visual-control1 { width: 300px; }
|
447
443
|
}
|
package/src/ts/index.ts
CHANGED
@@ -37,6 +37,7 @@ import {
|
|
37
37
|
getDocumentElement,
|
38
38
|
getDocument,
|
39
39
|
ObjectAssign,
|
40
|
+
ObjectFromEntries,
|
40
41
|
Data,
|
41
42
|
getInstance,
|
42
43
|
setElementStyle,
|
@@ -67,6 +68,7 @@ import setMarkup from './util/setMarkup';
|
|
67
68
|
|
68
69
|
import ColorPickerOptions from './interface/colorPickerOptions';
|
69
70
|
import ColorPickerLabels from './interface/colorPickerLabels';
|
71
|
+
import type ColorNames from './interface/ColorNames';
|
70
72
|
import { version } from '../../package.json';
|
71
73
|
|
72
74
|
// ColorPicker GC
|
@@ -224,7 +226,7 @@ export default class ColorPicker {
|
|
224
226
|
c2y: number;
|
225
227
|
c3y: number;
|
226
228
|
};
|
227
|
-
colorLabels:
|
229
|
+
colorLabels: ColorNames = ObjectFromEntries(colorNames.map(c => [c, c])) as ColorNames;
|
228
230
|
colorKeywords: string[] | false;
|
229
231
|
colorPresets: ColorPalette | string[] | false;
|
230
232
|
componentLabels: ColorPickerLabels;
|
@@ -265,7 +267,7 @@ export default class ColorPicker {
|
|
265
267
|
c2y: 0,
|
266
268
|
c3y: 0,
|
267
269
|
};
|
268
|
-
this.colorLabels = {};
|
270
|
+
// this.colorLabels = {};
|
269
271
|
this.colorKeywords = false;
|
270
272
|
this.colorPresets = false;
|
271
273
|
|
@@ -285,9 +287,7 @@ export default class ColorPicker {
|
|
285
287
|
}
|
286
288
|
|
287
289
|
// expose colour labels to all methods
|
288
|
-
|
289
|
-
this.colorLabels[c] = translatedColorLabels[i].trim();
|
290
|
-
});
|
290
|
+
ObjectAssign(this.colorLabels, ObjectFromEntries(translatedColorLabels.map((c, i) => [colorNames[i], c])));
|
291
291
|
|
292
292
|
// update and expose component labels
|
293
293
|
const tempComponentLabels =
|
@@ -521,9 +521,8 @@ export default class ColorPicker {
|
|
521
521
|
* The `ColorPicker` *scroll* event listener when open.
|
522
522
|
*
|
523
523
|
* @param e
|
524
|
-
* @this {ColorPicker}
|
525
524
|
*/
|
526
|
-
handleScroll = (e: Event)
|
525
|
+
handleScroll = (e: Event) => {
|
527
526
|
const { activeElement } = getDocument(this.input);
|
528
527
|
|
529
528
|
this.updateDropdownPosition();
|
@@ -543,7 +542,7 @@ export default class ColorPicker {
|
|
543
542
|
*
|
544
543
|
* @param e
|
545
544
|
*/
|
546
|
-
menuKeyHandler = (e:
|
545
|
+
menuKeyHandler = (e: KeyboardEvent & { target: HTMLElement }) => {
|
547
546
|
const { target, code } = e;
|
548
547
|
const { previousElementSibling, nextElementSibling, parentElement } = target;
|
549
548
|
const isColorOptionsMenu = parentElement && hasClass(parentElement, 'color-options');
|
@@ -585,7 +584,7 @@ export default class ColorPicker {
|
|
585
584
|
* @param e
|
586
585
|
* @this {ColorPicker}
|
587
586
|
*/
|
588
|
-
menuClickHandler = (e: Event)
|
587
|
+
menuClickHandler = (e: Event) => {
|
589
588
|
const { target } = e;
|
590
589
|
const { colorMenu } = this;
|
591
590
|
const newOption = (getAttribute(target as HTMLElement, 'data-value') || '').trim();
|
@@ -630,7 +629,8 @@ export default class ColorPicker {
|
|
630
629
|
*
|
631
630
|
* @param e
|
632
631
|
*/
|
633
|
-
pointerDown = (e:
|
632
|
+
pointerDown = (e: PointerEvent & { target: HTMLElement }) => {
|
633
|
+
if (e.button !== 0) return;
|
634
634
|
const { target, pageX, pageY } = e;
|
635
635
|
const { colorMenu, visuals, controlKnobs } = this;
|
636
636
|
const [v1, v2, v3] = visuals;
|
@@ -687,7 +687,7 @@ export default class ColorPicker {
|
|
687
687
|
*
|
688
688
|
* @param {PointerEvent} e
|
689
689
|
*/
|
690
|
-
pointerMove = (e: PointerEvent)
|
690
|
+
pointerMove = (e: PointerEvent) => {
|
691
691
|
const { dragElement, visuals } = this;
|
692
692
|
const [v1, v2, v3] = visuals;
|
693
693
|
const { pageX, pageY } = e;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
export default interface ColorNames {
|
2
|
+
white: string;
|
3
|
+
black: string;
|
4
|
+
grey: string;
|
5
|
+
red: string;
|
6
|
+
orange: string;
|
7
|
+
brown: string;
|
8
|
+
gold: string;
|
9
|
+
olive: string;
|
10
|
+
yellow: string;
|
11
|
+
lime: string;
|
12
|
+
green: string;
|
13
|
+
teal: string;
|
14
|
+
cyan: string;
|
15
|
+
blue: string;
|
16
|
+
violet: string;
|
17
|
+
magenta: string;
|
18
|
+
pink: string;
|
19
|
+
[key: string]: string;
|
20
|
+
}
|
@@ -1,29 +0,0 @@
|
|
1
|
-
import ColorPickerElement from '../../src/js/color-picker-element';
|
2
|
-
|
3
|
-
import getRandomInt from './getRandomInt';
|
4
|
-
import testSample from './testSample';
|
5
|
-
import FORMAT from './format';
|
6
|
-
import colorNamesFrench from './colorNamesFrench';
|
7
|
-
import componentLabelsFrench from './componentLabelsFrench';
|
8
|
-
|
9
|
-
export default function getCEMarkup(body) {
|
10
|
-
const id = getRandomInt(0,9999);
|
11
|
-
const format = FORMAT[getRandomInt(0,3)];
|
12
|
-
const sample = testSample[getRandomInt(0,2)];
|
13
|
-
const value = sample[format];
|
14
|
-
|
15
|
-
// const cpe = document.createElement('color-picker');
|
16
|
-
const cpe = new ColorPickerElement();
|
17
|
-
cpe.setAttribute('data-id', `cpe-${format}-${id}`);
|
18
|
-
cpe.setAttribute('data-format', format);
|
19
|
-
cpe.setAttribute('data-value', value);
|
20
|
-
cpe.setAttribute('data-component-labels', JSON.stringify(componentLabelsFrench));
|
21
|
-
cpe.setAttribute('data-color-labels', colorNamesFrench);
|
22
|
-
cpe.setAttribute('data-color-keywords', 'red,gree,blue');
|
23
|
-
cpe.setAttribute('data-color-presets', '#330000,#990000,#ff0000,#ff6666,#ffcccc,#003333,#009999,#00ffff,#66ffff,#ccffff');
|
24
|
-
|
25
|
-
if (body) {
|
26
|
-
body.append(cpe);
|
27
|
-
}
|
28
|
-
return {value, id, format};
|
29
|
-
}
|