@thednp/color-picker 2.0.0-alpha7 → 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/package.json CHANGED
@@ -1,114 +1,115 @@
1
- {
2
- "name": "@thednp/color-picker",
3
- "version": "2.0.0-alpha7",
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/color-picker.css": {
20
- "import": "./dist/color-picker.css",
21
- "require": "./dist/color-picker.css"
22
- },
23
- "./dist/color-picker.rtl.css": {
24
- "import": "./dist/color-picker.rtl.css",
25
- "require": "./dist/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/index.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-alpha16"
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.3.0",
91
- "@typescript-eslint/parser": "^6.3.0",
92
- "cypress": "^12.17.3",
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.1",
104
- "rimraf": "^5.0.1",
105
- "sass": "^1.65.1",
106
- "stylelint": "^15.10.2",
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
- text-indent: 2.1rem;
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: 150px;
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: 150px;
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 >= 578px) {
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: Record<string, string> = {};
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
- colorNames.forEach((c, i) => {
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): void => {
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: Event & { target: HTMLElement; code: string }) => {
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): void => {
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: Event & { target: HTMLElement; pageX: number; pageY: number }) => {
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): void => {
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
- }