react-iro-gradient-picker 1.0.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 (91) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +198 -0
  3. package/dist/App.test.d.ts +1 -0
  4. package/dist/__tests__/App.test.d.ts +1 -0
  5. package/dist/__tests__/setupTests.d.ts +1 -0
  6. package/dist/components/Colorpicker/ColorPanel/Alpha.d.ts +4 -0
  7. package/dist/components/Colorpicker/ColorPanel/Board.d.ts +4 -0
  8. package/dist/components/Colorpicker/ColorPanel/Ribbon.d.ts +4 -0
  9. package/dist/components/Colorpicker/ColorPanel/index.d.ts +4 -0
  10. package/dist/components/Colorpicker/ColorPanel/types.d.ts +34 -0
  11. package/dist/components/Colorpicker/DefaultColorPanel/index.d.ts +11 -0
  12. package/dist/components/Colorpicker/Gradient/index.d.ts +4 -0
  13. package/dist/components/Colorpicker/GradientPanel/Markers.d.ts +4 -0
  14. package/dist/components/Colorpicker/GradientPanel/index.d.ts +4 -0
  15. package/dist/components/Colorpicker/GradientPanel/types.d.ts +29 -0
  16. package/dist/components/Colorpicker/Solid/index.d.ts +4 -0
  17. package/dist/components/Colorpicker/constants.d.ts +6 -0
  18. package/dist/components/Colorpicker/helper.d.ts +4 -0
  19. package/dist/components/Colorpicker/index.d.ts +6 -0
  20. package/dist/components/Colorpicker/types.d.ts +35 -0
  21. package/dist/components/InputRgba/helpers.d.ts +34 -0
  22. package/dist/components/InputRgba/index.d.ts +16 -0
  23. package/dist/components/PopupTab/index.d.ts +15 -0
  24. package/dist/components/ThemeToggle/index.d.ts +6 -0
  25. package/dist/components/core/Colorpicker/ColorPanel/Alpha.d.ts +4 -0
  26. package/dist/components/core/Colorpicker/ColorPanel/Board.d.ts +4 -0
  27. package/dist/components/core/Colorpicker/ColorPanel/Ribbon.d.ts +4 -0
  28. package/dist/components/core/Colorpicker/ColorPanel/index.d.ts +4 -0
  29. package/dist/components/core/Colorpicker/ColorPanel/types.d.ts +34 -0
  30. package/dist/components/core/Colorpicker/DefaultColorPanel/index.d.ts +11 -0
  31. package/dist/components/core/Colorpicker/Gradient/index.d.ts +4 -0
  32. package/dist/components/core/Colorpicker/GradientPanel/Markers.d.ts +4 -0
  33. package/dist/components/core/Colorpicker/GradientPanel/index.d.ts +4 -0
  34. package/dist/components/core/Colorpicker/GradientPanel/types.d.ts +29 -0
  35. package/dist/components/core/Colorpicker/IroGradient/index.d.ts +4 -0
  36. package/dist/components/core/Colorpicker/IroSolid/index.d.ts +4 -0
  37. package/dist/components/core/Colorpicker/Solid/index.d.ts +4 -0
  38. package/dist/components/core/Colorpicker/helper.d.ts +4 -0
  39. package/dist/components/core/Colorpicker/index.d.ts +6 -0
  40. package/dist/components/core/IroColorPicker/index.d.ts +37 -0
  41. package/dist/components/forms/InputRgba/InputRgba.d.ts +15 -0
  42. package/dist/components/forms/InputRgba/helpers.d.ts +24 -0
  43. package/dist/components/forms/InputRgba/index.d.ts +1 -0
  44. package/dist/components/forms/index.d.ts +1 -0
  45. package/dist/components/index.d.ts +5 -0
  46. package/dist/components/providers/ThemeContext.d.ts +14 -0
  47. package/dist/components/ui/PopupTab/index.d.ts +14 -0
  48. package/dist/components/ui/ThemeToggle/index.d.ts +6 -0
  49. package/dist/constants/constants.d.ts +6 -0
  50. package/dist/constants/index.d.ts +1 -0
  51. package/dist/context/ThemeContext.d.ts +14 -0
  52. package/dist/hooks/index.d.ts +1 -0
  53. package/dist/hooks/useDebounce.d.ts +2 -0
  54. package/dist/index.d.ts +2 -0
  55. package/dist/index.es.js +8284 -0
  56. package/dist/index.es.js.map +1 -0
  57. package/dist/index.js +8316 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/lib/index.d.ts +6 -0
  60. package/dist/lib/types/index.d.ts +1 -0
  61. package/dist/lib/types/types.d.ts +35 -0
  62. package/dist/setupTests.d.ts +1 -0
  63. package/dist/utils/checkFormat.d.ts +2 -0
  64. package/dist/utils/cn.d.ts +6 -0
  65. package/dist/utils/color/color.d.ts +71 -0
  66. package/dist/utils/color/getHexAlpha.d.ts +5 -0
  67. package/dist/utils/color/hexToRgba.d.ts +2 -0
  68. package/dist/utils/color/index.d.ts +6 -0
  69. package/dist/utils/color/rgbaToArray.d.ts +2 -0
  70. package/dist/utils/color/rgbaToHex.d.ts +2 -0
  71. package/dist/utils/color.d.ts +71 -0
  72. package/dist/utils/format/checkFormat.d.ts +2 -0
  73. package/dist/utils/format/getGradient.d.ts +2 -0
  74. package/dist/utils/format/index.d.ts +3 -0
  75. package/dist/utils/format/parseGradient.d.ts +7 -0
  76. package/dist/utils/getGradient.d.ts +2 -0
  77. package/dist/utils/getHexAlpha.d.ts +5 -0
  78. package/dist/utils/hexToRgba.d.ts +2 -0
  79. package/dist/utils/index.d.ts +4 -0
  80. package/dist/utils/isValidHex.d.ts +2 -0
  81. package/dist/utils/isValidRgba.d.ts +2 -0
  82. package/dist/utils/parseGradient.d.ts +7 -0
  83. package/dist/utils/rgbaToArray.d.ts +2 -0
  84. package/dist/utils/rgbaToHex.d.ts +2 -0
  85. package/dist/utils/useDebounce.d.ts +2 -0
  86. package/dist/utils/validGradient.d.ts +15 -0
  87. package/dist/utils/validation/index.d.ts +3 -0
  88. package/dist/utils/validation/isValidHex.d.ts +2 -0
  89. package/dist/utils/validation/isValidRgba.d.ts +2 -0
  90. package/dist/utils/validation/validGradient.d.ts +15 -0
  91. package/package.json +130 -0
@@ -0,0 +1,6 @@
1
+ export * from '../components';
2
+ export { default } from '../components/core/Colorpicker';
3
+ export * from '../constants';
4
+ export * from '../hooks';
5
+ export * from '../utils';
6
+ export * from './types';
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1,35 @@
1
+ import { ReactText } from 'react';
2
+ export interface IPropsComp {
3
+ value: string;
4
+ format?: 'rgb' | 'hsl' | 'hex';
5
+ debounceMS?: number;
6
+ debounce?: boolean;
7
+ showAlpha?: boolean;
8
+ showInputs?: boolean;
9
+ showGradientResult?: boolean;
10
+ showGradientStops?: boolean;
11
+ showGradientMode?: boolean;
12
+ showGradientAngle?: boolean;
13
+ showGradientPosition?: boolean;
14
+ allowAddGradientStops?: boolean;
15
+ colorBoardHeight?: number;
16
+ defaultColors?: string[];
17
+ defaultActiveTab?: string | undefined;
18
+ onChangeTabs?: (tab: string) => void;
19
+ onChange?: (value: string) => void;
20
+ }
21
+ export interface IPropsMain extends IPropsComp {
22
+ gradient?: boolean;
23
+ solid?: boolean;
24
+ popupWidth?: number;
25
+ }
26
+ export type TPropsChange = {
27
+ alpha: number;
28
+ hex: string;
29
+ };
30
+ export interface IActiveColor {
31
+ hex: string;
32
+ alpha: number;
33
+ loc: ReactText;
34
+ index: ReactText;
35
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ declare const _default: (color: string, format: string, showAlpha: boolean, stateColorAlpha?: number) => string;
2
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { type ClassValue } from 'clsx';
2
+ /**
3
+ * Utility function to merge Tailwind CSS classes
4
+ * Combines clsx for conditional classes with tailwind-merge for proper class overrides
5
+ */
6
+ export declare function cn(...inputs: ClassValue[]): string;
@@ -0,0 +1,71 @@
1
+ import { ColorFormats, Instance } from 'tinycolor2';
2
+ interface IInput {
3
+ h: number;
4
+ s: number;
5
+ v: number;
6
+ }
7
+ export interface ITinyColor {
8
+ color: Instance;
9
+ alphaValue: number;
10
+ blueValue: number;
11
+ brightnessValue: number;
12
+ greenValue: number;
13
+ hueValue: number;
14
+ lightnessValue: number;
15
+ saturationValue: number;
16
+ redValue: number;
17
+ initRgb(): void;
18
+ initHsb(): void;
19
+ toHexString(): string;
20
+ toRgbString(): string;
21
+ toHsv(): ColorFormats.HSVA;
22
+ hex: string;
23
+ hue: number;
24
+ saturation: number;
25
+ lightness: number;
26
+ brightness: number;
27
+ red: number;
28
+ green: number;
29
+ blue: number;
30
+ alpha: number;
31
+ RGB: number[];
32
+ HSB: number[];
33
+ }
34
+ export default class TinyColor {
35
+ color: Instance;
36
+ alphaValue: number;
37
+ hueValue: number;
38
+ saturationValue: number;
39
+ brightnessValue: number;
40
+ redValue: number;
41
+ greenValue: number;
42
+ blueValue: number;
43
+ lightnessValue: number;
44
+ constructor(input: IInput | string);
45
+ static isValidHex(hex: string): boolean;
46
+ initRgb: () => void;
47
+ initHsb: () => void;
48
+ toHexString: () => string;
49
+ toRgbString: () => string;
50
+ toHsv: () => ColorFormats.HSVA;
51
+ get hex(): string;
52
+ set hue(value: number);
53
+ get hue(): number;
54
+ set saturation(value: number);
55
+ get saturation(): number;
56
+ set lightness(value: number);
57
+ get lightness(): number;
58
+ set brightness(value: number);
59
+ get brightness(): number;
60
+ set red(value: number);
61
+ get red(): number;
62
+ set green(value: number);
63
+ get green(): number;
64
+ set blue(value: number);
65
+ get blue(): number;
66
+ set alpha(value: number);
67
+ get alpha(): number;
68
+ get RGB(): number[];
69
+ get HSB(): number[];
70
+ }
71
+ export {};
@@ -0,0 +1,5 @@
1
+ declare const _default: (value: string) => {
2
+ hex: string;
3
+ alpha: number;
4
+ };
5
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: (hexVal: string, opacityVal: number) => string;
2
+ export default _default;
@@ -0,0 +1,6 @@
1
+ export { default as TinyColor } from './color';
2
+ export type { ITinyColor } from './color';
3
+ export { default as getHexAlpha } from './getHexAlpha';
4
+ export { default as hexToRgba } from './hexToRgba';
5
+ export { default as rgbaToArray } from './rgbaToArray';
6
+ export { default as rgbaToHex } from './rgbaToHex';
@@ -0,0 +1,2 @@
1
+ declare const _default: (color: any) => any;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: (params: Array<string | number>) => string;
2
+ export default _default;
@@ -0,0 +1,71 @@
1
+ import { Instance, ColorFormats } from 'tinycolor2';
2
+ interface IInput {
3
+ h: number;
4
+ s: number;
5
+ v: number;
6
+ }
7
+ export interface ITinyColor {
8
+ color: Instance;
9
+ alphaValue: number;
10
+ blueValue: number;
11
+ brightnessValue: number;
12
+ greenValue: number;
13
+ hueValue: number;
14
+ lightnessValue: number;
15
+ saturationValue: number;
16
+ redValue: number;
17
+ initRgb(): void;
18
+ initHsb(): void;
19
+ toHexString(): string;
20
+ toRgbString(): string;
21
+ toHsv(): ColorFormats.HSVA;
22
+ hex: string;
23
+ hue: number;
24
+ saturation: number;
25
+ lightness: number;
26
+ brightness: number;
27
+ red: number;
28
+ green: number;
29
+ blue: number;
30
+ alpha: number;
31
+ RGB: number[];
32
+ HSB: number[];
33
+ }
34
+ export default class Color {
35
+ color: Instance;
36
+ alphaValue: number;
37
+ hueValue: number;
38
+ saturationValue: number;
39
+ brightnessValue: number;
40
+ redValue: number;
41
+ greenValue: number;
42
+ blueValue: number;
43
+ lightnessValue: number;
44
+ constructor(input: IInput | string);
45
+ static isValidHex(hex: string): boolean;
46
+ initRgb: () => void;
47
+ initHsb: () => void;
48
+ toHexString: () => string;
49
+ toRgbString: () => string;
50
+ toHsv: () => ColorFormats.HSVA;
51
+ get hex(): string;
52
+ set hue(value: number);
53
+ get hue(): number;
54
+ set saturation(value: number);
55
+ get saturation(): number;
56
+ set lightness(value: number);
57
+ get lightness(): number;
58
+ set brightness(value: number);
59
+ get brightness(): number;
60
+ set red(value: number);
61
+ get red(): number;
62
+ set green(value: number);
63
+ get green(): number;
64
+ set blue(value: number);
65
+ get blue(): number;
66
+ set alpha(value: number);
67
+ get alpha(): number;
68
+ get RGB(): number[];
69
+ get HSB(): number[];
70
+ }
71
+ export {};
@@ -0,0 +1,2 @@
1
+ declare const _default: (color: string, format: string, showAlpha: boolean, stateColorAlpha?: number) => string;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: (type: string, stops: Array<any>, modifier: string | number | undefined, format: "rgb" | "hsl" | "hex" | undefined, showAlpha: boolean) => string;
2
+ export default _default;
@@ -0,0 +1,3 @@
1
+ export { default as checkFormat } from './checkFormat';
2
+ export { default as getGradient } from './getGradient';
3
+ export { default as parseGradient } from './parseGradient';
@@ -0,0 +1,7 @@
1
+ declare const _default: (str: string) => {
2
+ gradient: string;
3
+ type: string;
4
+ modifier: string | number;
5
+ stops: (string | number)[][];
6
+ };
7
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: (type: string, stops: Array<any>, modifier: string | number | undefined, format: "rgb" | "hsl" | "hex" | undefined, showAlpha: boolean) => string;
2
+ export default _default;
@@ -0,0 +1,5 @@
1
+ declare const _default: (value: string) => {
2
+ hex: string;
3
+ alpha: number;
4
+ };
5
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: (hexVal: string, opacityVal: number) => string;
2
+ export default _default;
@@ -0,0 +1,4 @@
1
+ export * from './cn';
2
+ export * from './color';
3
+ export * from './format';
4
+ export * from './validation';
@@ -0,0 +1,2 @@
1
+ declare const _default: (hex: string) => boolean;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: (rgba: Array<string | number>) => boolean;
2
+ export default _default;
@@ -0,0 +1,7 @@
1
+ declare const _default: (str: string) => {
2
+ gradient: string;
3
+ type: string;
4
+ modifier: string | number;
5
+ stops: (string | number)[][];
6
+ };
7
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: (color: any) => any;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: (params: Array<string | number>) => string;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: <T>(value: T, delay?: number) => T;
2
+ export default _default;
@@ -0,0 +1,15 @@
1
+ interface IGradientStop {
2
+ color: string;
3
+ position?: number;
4
+ }
5
+ interface IParsedGraient {
6
+ stops: IGradientStop[];
7
+ angle: string;
8
+ original: string;
9
+ line: string;
10
+ side?: string;
11
+ sideCorner?: string;
12
+ parseWarning?: boolean;
13
+ }
14
+ declare const _default: (input: string) => string | IParsedGraient;
15
+ export default _default;
@@ -0,0 +1,3 @@
1
+ export { default as isValidHex } from './isValidHex';
2
+ export { default as isValidRgba } from './isValidRgba';
3
+ export { default as validGradient } from './validGradient';
@@ -0,0 +1,2 @@
1
+ declare const _default: (hex: string) => boolean;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: (rgba: Array<string | number>) => boolean;
2
+ export default _default;
@@ -0,0 +1,15 @@
1
+ interface IGradientStop {
2
+ color: string;
3
+ position?: number;
4
+ }
5
+ interface IParsedGraient {
6
+ stops: IGradientStop[];
7
+ angle: string;
8
+ original: string;
9
+ line: string;
10
+ side?: string;
11
+ sideCorner?: string;
12
+ parseWarning?: boolean;
13
+ }
14
+ declare const _default: (input: string) => string | IParsedGraient;
15
+ export default _default;
package/package.json ADDED
@@ -0,0 +1,130 @@
1
+ {
2
+ "name": "react-iro-gradient-picker",
3
+ "version": "1.0.0",
4
+ "description": "Modern React gradient and solid color picker with complete dark theme support, built with TypeScript and Tailwind CSS",
5
+ "keywords": [
6
+ "react",
7
+ "react-component",
8
+ "typescript",
9
+ "color-picker",
10
+ "gradient-picker",
11
+ "dark-theme",
12
+ "tailwind",
13
+ "iro",
14
+ "color",
15
+ "gradient",
16
+ "picker",
17
+ "ui-component"
18
+ ],
19
+ "homepage": "https://romfatal.github.io/react-iro-gradient-picker/",
20
+ "bugs": {
21
+ "url": "https://github.com/romfatal/react-iro-gradient-picker/issues"
22
+ },
23
+ "author": {
24
+ "name": "romfatal",
25
+ "url": "https://github.com/romfatal"
26
+ },
27
+ "license": "MIT",
28
+ "repository": {
29
+ "type": "git",
30
+ "url": "https://github.com/romfatal/react-iro-gradient-picker.git"
31
+ },
32
+ "main": "dist/index.js",
33
+ "module": "dist/index.es.js",
34
+ "types": "dist/index.d.ts",
35
+ "source": "src/index.tsx",
36
+ "sideEffects": false,
37
+ "engines": {
38
+ "node": ">=14.0.0",
39
+ "npm": ">=6.0.0"
40
+ },
41
+ "files": [
42
+ "dist",
43
+ "README.md",
44
+ "LICENSE"
45
+ ],
46
+ "scripts": {
47
+ "storybook": "storybook dev -p 6006",
48
+ "build": "rollup -c",
49
+ "start": "rollup -c -w",
50
+ "test": "run-s test:lint test:build",
51
+ "test:build": "run-s build",
52
+ "test:lint": "eslint .",
53
+ "test:fix": "eslint . --fix",
54
+ "predeploy": "storybook build",
55
+ "deploy": "gh-pages -d storybook-static/",
56
+ "release": "npm run test && release-it",
57
+ "build-storybook": "storybook build"
58
+ },
59
+ "peerDependencies": {
60
+ "react": ">=16.8.0",
61
+ "react-dom": ">=16.8.0"
62
+ },
63
+ "devDependencies": {
64
+ "@babel/core": "^7.12.10",
65
+ "@rollup/plugin-commonjs": "^17.0.0",
66
+ "@rollup/plugin-node-resolve": "^11.1.0",
67
+ "@storybook/addon-docs": "9.1.7",
68
+ "@storybook/addon-links": "^9.1.7",
69
+ "@storybook/preset-scss": "^1.0.3",
70
+ "@storybook/react": "^9.1.7",
71
+ "@storybook/react-vite": "^9.1.7",
72
+ "@tailwindcss/cli": "^4.1.13",
73
+ "@tailwindcss/postcss": "^4.1.13",
74
+ "@types/classnames": "^2.2.11",
75
+ "@types/node": "^20.19.0",
76
+ "@types/react": "^16.9.53",
77
+ "@types/react-dom": "^16.9.8",
78
+ "@typescript-eslint/eslint-plugin": "^4.11.1",
79
+ "@typescript-eslint/parser": "^4.11.1",
80
+ "auto-changelog": "^2.2.1",
81
+ "autoprefixer": "^10.4.21",
82
+ "babel-eslint": "^10.1.0",
83
+ "babel-loader": "8.1.0",
84
+ "core-js": "^3.8.2",
85
+ "css-loader": "^5.0.1",
86
+ "eslint": "^7.17.0",
87
+ "eslint-config-prettier": "^7.1.0",
88
+ "eslint-config-standard": "^16.0.2",
89
+ "eslint-config-standard-react": "^11.0.1",
90
+ "eslint-plugin-import": "^2.22.1",
91
+ "eslint-plugin-node": "^11.1.0",
92
+ "eslint-plugin-prettier": "^3.3.0",
93
+ "eslint-plugin-promise": "^4.2.1",
94
+ "eslint-plugin-react-hooks": "^4.2.0",
95
+ "eslint-plugin-standard": "^4.0.1",
96
+ "fork-ts-checker-webpack-plugin": "^6.0.8",
97
+ "gh-pages": "^3.1.0",
98
+ "npm-run-all": "^4.1.5",
99
+ "postcss": "^8.5.6",
100
+ "prettier": "^2.2.1",
101
+ "prop-types": "^15.8.1",
102
+ "react": "^16.14.0",
103
+ "react-dom": "^16.14.0",
104
+ "release-it": "^14.2.2",
105
+ "rollup": "^2.35.1",
106
+ "rollup-plugin-babel": "^4.4.0",
107
+ "rollup-plugin-peer-deps-external": "^2.2.4",
108
+ "rollup-plugin-postcss": "^4.0.2",
109
+ "rollup-plugin-typescript2": "^0.29.0",
110
+ "sass": "^1.92.1",
111
+ "storybook": "^9.1.7",
112
+ "style-loader": "^2.0.0",
113
+ "typescript": "^5.9.2",
114
+ "web-vitals": "^0.2.4"
115
+ },
116
+ "dependencies": {
117
+ "@jaames/iro": "^5.5.2",
118
+ "@types/tinycolor2": "^1.4.2",
119
+ "class-variance-authority": "^0.7.1",
120
+ "clsx": "^2.1.1",
121
+ "lucide-react": "^0.544.0",
122
+ "tailwind-merge": "^3.3.1",
123
+ "tinycolor2": "^1.4.2"
124
+ },
125
+ "eslintConfig": {
126
+ "extends": [
127
+ "plugin:storybook/recommended"
128
+ ]
129
+ }
130
+ }