@darthrapid/react-native-color-picker 0.1.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.
- package/LICENSE +20 -0
- package/README.md +160 -0
- package/lib/module/components/color-picker.js +214 -0
- package/lib/module/components/color-picker.js.map +1 -0
- package/lib/module/components/hue-strip.js +113 -0
- package/lib/module/components/hue-strip.js.map +1 -0
- package/lib/module/components/picker-panel.js +121 -0
- package/lib/module/components/picker-panel.js.map +1 -0
- package/lib/module/components/picker-tab.js +38 -0
- package/lib/module/components/picker-tab.js.map +1 -0
- package/lib/module/components/recent-tab.js +89 -0
- package/lib/module/components/recent-tab.js.map +1 -0
- package/lib/module/components/sat-bright-pad.js +171 -0
- package/lib/module/components/sat-bright-pad.js.map +1 -0
- package/lib/module/components/tab-bar.js +41 -0
- package/lib/module/components/tab-bar.js.map +1 -0
- package/lib/module/components/values-tab.js +161 -0
- package/lib/module/components/values-tab.js.map +1 -0
- package/lib/module/index.js +4 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/shared/const.js +43 -0
- package/lib/module/shared/const.js.map +1 -0
- package/lib/module/types/misc.js +4 -0
- package/lib/module/types/misc.js.map +1 -0
- package/lib/module/utils/colors.js +52 -0
- package/lib/module/utils/colors.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/components/color-picker.d.ts +37 -0
- package/lib/typescript/src/components/color-picker.d.ts.map +1 -0
- package/lib/typescript/src/components/hue-strip.d.ts +10 -0
- package/lib/typescript/src/components/hue-strip.d.ts.map +1 -0
- package/lib/typescript/src/components/picker-panel.d.ts +32 -0
- package/lib/typescript/src/components/picker-panel.d.ts.map +1 -0
- package/lib/typescript/src/components/picker-tab.d.ts +17 -0
- package/lib/typescript/src/components/picker-tab.d.ts.map +1 -0
- package/lib/typescript/src/components/recent-tab.d.ts +12 -0
- package/lib/typescript/src/components/recent-tab.d.ts.map +1 -0
- package/lib/typescript/src/components/sat-bright-pad.d.ts +14 -0
- package/lib/typescript/src/components/sat-bright-pad.d.ts.map +1 -0
- package/lib/typescript/src/components/tab-bar.d.ts +11 -0
- package/lib/typescript/src/components/tab-bar.d.ts.map +1 -0
- package/lib/typescript/src/components/values-tab.d.ts +17 -0
- package/lib/typescript/src/components/values-tab.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +3 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/shared/const.d.ts +33 -0
- package/lib/typescript/src/shared/const.d.ts.map +1 -0
- package/lib/typescript/src/types/misc.d.ts +21 -0
- package/lib/typescript/src/types/misc.d.ts.map +1 -0
- package/lib/typescript/src/utils/colors.d.ts +14 -0
- package/lib/typescript/src/utils/colors.d.ts.map +1 -0
- package/package.json +123 -0
- package/src/components/color-picker.tsx +290 -0
- package/src/components/hue-strip.tsx +134 -0
- package/src/components/picker-panel.tsx +176 -0
- package/src/components/picker-tab.tsx +48 -0
- package/src/components/recent-tab.tsx +90 -0
- package/src/components/sat-bright-pad.tsx +158 -0
- package/src/components/tab-bar.tsx +59 -0
- package/src/components/values-tab.tsx +166 -0
- package/src/index.tsx +2 -0
- package/src/shared/const.ts +43 -0
- package/src/types/misc.ts +24 -0
- package/src/utils/colors.ts +57 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { View } from "react-native";
|
|
4
|
+
import { HueStrip } from "./hue-strip.js";
|
|
5
|
+
import { SatBrightPad } from "./sat-bright-pad.js";
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
export function PickerTab({
|
|
8
|
+
hue,
|
|
9
|
+
sat,
|
|
10
|
+
bright,
|
|
11
|
+
hueStripHeight,
|
|
12
|
+
disabled,
|
|
13
|
+
t,
|
|
14
|
+
onHueChange,
|
|
15
|
+
onSatBrightChange
|
|
16
|
+
}) {
|
|
17
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
18
|
+
style: {
|
|
19
|
+
gap: 16,
|
|
20
|
+
padding: 20
|
|
21
|
+
},
|
|
22
|
+
children: [/*#__PURE__*/_jsx(SatBrightPad, {
|
|
23
|
+
hue: hue,
|
|
24
|
+
sat: sat,
|
|
25
|
+
bright: bright,
|
|
26
|
+
disabled: disabled,
|
|
27
|
+
thumbBorder: t.thumbBorder,
|
|
28
|
+
onChange: onSatBrightChange
|
|
29
|
+
}), /*#__PURE__*/_jsx(HueStrip, {
|
|
30
|
+
hue: hue,
|
|
31
|
+
height: hueStripHeight,
|
|
32
|
+
disabled: disabled,
|
|
33
|
+
thumbBorder: t.thumbBorder,
|
|
34
|
+
onChange: onHueChange
|
|
35
|
+
})]
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=picker-tab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["View","HueStrip","SatBrightPad","jsx","_jsx","jsxs","_jsxs","PickerTab","hue","sat","bright","hueStripHeight","disabled","t","onHueChange","onSatBrightChange","style","gap","padding","children","thumbBorder","onChange","height"],"sourceRoot":"../../../src","sources":["components/picker-tab.tsx"],"mappings":";;AAAA,SACEA,IAAI,QACC,cAAc;AAErB,SAASC,QAAQ,QAAQ,gBAAa;AACtC,SAASC,YAAY,QAAQ,qBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAahD,OAAO,SAASC,SAASA,CAAC;EACxBC,GAAG;EACHC,GAAG;EACHC,MAAM;EACNC,cAAc;EACdC,QAAQ;EACRC,CAAC;EACDC,WAAW;EACXC;AACc,CAAC,EAAE;EACjB,oBACET,KAAA,CAACN,IAAI;IAACgB,KAAK,EAAE;MAAEC,GAAG,EAAE,EAAE;MAAEC,OAAO,EAAE;IAAG,CAAE;IAAAC,QAAA,gBACpCf,IAAA,CAACF,YAAY;MACXM,GAAG,EAAEA,GAAI;MACTC,GAAG,EAAEA,GAAI;MACTC,MAAM,EAAEA,MAAO;MACfE,QAAQ,EAAEA,QAAS;MACnBQ,WAAW,EAAEP,CAAC,CAACO,WAAY;MAC3BC,QAAQ,EAAEN;IAAkB,CAC7B,CAAC,eACFX,IAAA,CAACH,QAAQ;MACPO,GAAG,EAAEA,GAAI;MACTc,MAAM,EAAEX,cAAe;MACvBC,QAAQ,EAAEA,QAAS;MACnBQ,WAAW,EAAEP,CAAC,CAACO,WAAY;MAC3BC,QAAQ,EAAEP;IAAY,CACvB,CAAC;EAAA,CACE,CAAC;AAEX","ignoreList":[]}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Pressable, Text, View } from "react-native";
|
|
4
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
+
export function RecentTab({
|
|
6
|
+
recentColors,
|
|
7
|
+
disabled,
|
|
8
|
+
t,
|
|
9
|
+
labels,
|
|
10
|
+
onSelect,
|
|
11
|
+
onClear
|
|
12
|
+
}) {
|
|
13
|
+
if (recentColors.length === 0) {
|
|
14
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
15
|
+
style: {
|
|
16
|
+
padding: 20,
|
|
17
|
+
alignItems: "center",
|
|
18
|
+
justifyContent: "center",
|
|
19
|
+
minHeight: 120
|
|
20
|
+
},
|
|
21
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
22
|
+
style: {
|
|
23
|
+
color: t.textDim,
|
|
24
|
+
fontSize: 14
|
|
25
|
+
},
|
|
26
|
+
children: labels.noSavedColors
|
|
27
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
28
|
+
style: {
|
|
29
|
+
color: t.textDim,
|
|
30
|
+
fontSize: 12,
|
|
31
|
+
marginTop: 4
|
|
32
|
+
},
|
|
33
|
+
children: labels.noSavedColorsHint
|
|
34
|
+
})]
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
38
|
+
style: {
|
|
39
|
+
padding: 20,
|
|
40
|
+
gap: 16
|
|
41
|
+
},
|
|
42
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
43
|
+
style: {
|
|
44
|
+
flexDirection: "row",
|
|
45
|
+
justifyContent: "space-between",
|
|
46
|
+
alignItems: "center"
|
|
47
|
+
},
|
|
48
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
49
|
+
style: {
|
|
50
|
+
color: t.textMuted,
|
|
51
|
+
fontSize: 11,
|
|
52
|
+
fontWeight: "700",
|
|
53
|
+
letterSpacing: 1,
|
|
54
|
+
textTransform: "uppercase"
|
|
55
|
+
},
|
|
56
|
+
children: labels.savedColors
|
|
57
|
+
}), /*#__PURE__*/_jsx(Pressable, {
|
|
58
|
+
onPress: onClear,
|
|
59
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
60
|
+
style: {
|
|
61
|
+
color: t.textDim,
|
|
62
|
+
fontSize: 12,
|
|
63
|
+
fontWeight: "600"
|
|
64
|
+
},
|
|
65
|
+
children: labels.clearAll
|
|
66
|
+
})
|
|
67
|
+
})]
|
|
68
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
69
|
+
style: {
|
|
70
|
+
flexDirection: "row",
|
|
71
|
+
flexWrap: "wrap",
|
|
72
|
+
gap: 10
|
|
73
|
+
},
|
|
74
|
+
children: recentColors.map((c, i) => /*#__PURE__*/_jsx(Pressable, {
|
|
75
|
+
onPress: () => onSelect(c),
|
|
76
|
+
disabled: disabled,
|
|
77
|
+
style: {
|
|
78
|
+
width: 44,
|
|
79
|
+
height: 44,
|
|
80
|
+
borderRadius: 10,
|
|
81
|
+
backgroundColor: c,
|
|
82
|
+
borderWidth: 1,
|
|
83
|
+
borderColor: t.border
|
|
84
|
+
}
|
|
85
|
+
}, `${c}-${i}`))
|
|
86
|
+
})]
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=recent-tab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Pressable","Text","View","jsx","_jsx","jsxs","_jsxs","RecentTab","recentColors","disabled","t","labels","onSelect","onClear","length","style","padding","alignItems","justifyContent","minHeight","children","color","textDim","fontSize","noSavedColors","marginTop","noSavedColorsHint","gap","flexDirection","textMuted","fontWeight","letterSpacing","textTransform","savedColors","onPress","clearAll","flexWrap","map","c","i","width","height","borderRadius","backgroundColor","borderWidth","borderColor","border"],"sourceRoot":"../../../src","sources":["components/recent-tab.tsx"],"mappings":";;AAAA,SACEA,SAAS,EACTC,IAAI,EACJC,IAAI,QACC,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAYtB,OAAO,SAASC,SAASA,CAAC;EACxBC,YAAY;EACZC,QAAQ;EACRC,CAAC;EACDC,MAAM;EACNC,QAAQ;EACRC;AACc,CAAC,EAAE;EACjB,IAAIL,YAAY,CAACM,MAAM,KAAK,CAAC,EAAE;IAC7B,oBACER,KAAA,CAACJ,IAAI;MACHa,KAAK,EAAE;QACLC,OAAO,EAAE,EAAE;QACXC,UAAU,EAAE,QAAQ;QACpBC,cAAc,EAAE,QAAQ;QACxBC,SAAS,EAAE;MACb,CAAE;MAAAC,QAAA,gBAEFhB,IAAA,CAACH,IAAI;QAACc,KAAK,EAAE;UAAEM,KAAK,EAAEX,CAAC,CAACY,OAAO;UAAEC,QAAQ,EAAE;QAAG,CAAE;QAAAH,QAAA,EAC7CT,MAAM,CAACa;MAAa,CACjB,CAAC,eACPpB,IAAA,CAACH,IAAI;QAACc,KAAK,EAAE;UAAEM,KAAK,EAAEX,CAAC,CAACY,OAAO;UAAEC,QAAQ,EAAE,EAAE;UAAEE,SAAS,EAAE;QAAE,CAAE;QAAAL,QAAA,EAC3DT,MAAM,CAACe;MAAiB,CACrB,CAAC;IAAA,CACH,CAAC;EAEX;EAEA,oBACEpB,KAAA,CAACJ,IAAI;IAACa,KAAK,EAAE;MAAEC,OAAO,EAAE,EAAE;MAAEW,GAAG,EAAE;IAAG,CAAE;IAAAP,QAAA,gBACpCd,KAAA,CAACJ,IAAI;MACHa,KAAK,EAAE;QACLa,aAAa,EAAE,KAAK;QACpBV,cAAc,EAAE,eAAe;QAC/BD,UAAU,EAAE;MACd,CAAE;MAAAG,QAAA,gBAEFhB,IAAA,CAACH,IAAI;QACHc,KAAK,EAAE;UACLM,KAAK,EAAEX,CAAC,CAACmB,SAAS;UAClBN,QAAQ,EAAE,EAAE;UACZO,UAAU,EAAE,KAAK;UACjBC,aAAa,EAAE,CAAC;UAChBC,aAAa,EAAE;QACjB,CAAE;QAAAZ,QAAA,EAEDT,MAAM,CAACsB;MAAW,CACf,CAAC,eACP7B,IAAA,CAACJ,SAAS;QAACkC,OAAO,EAAErB,OAAQ;QAAAO,QAAA,eAC1BhB,IAAA,CAACH,IAAI;UAACc,KAAK,EAAE;YAAEM,KAAK,EAAEX,CAAC,CAACY,OAAO;YAAEC,QAAQ,EAAE,EAAE;YAAEO,UAAU,EAAE;UAAM,CAAE;UAAAV,QAAA,EAChET,MAAM,CAACwB;QAAQ,CACZ;MAAC,CACE,CAAC;IAAA,CACR,CAAC,eACP/B,IAAA,CAACF,IAAI;MAACa,KAAK,EAAE;QAAEa,aAAa,EAAE,KAAK;QAAEQ,QAAQ,EAAE,MAAM;QAAET,GAAG,EAAE;MAAG,CAAE;MAAAP,QAAA,EAC9DZ,YAAY,CAAC6B,GAAG,CAAC,CAACC,CAAC,EAAEC,CAAC,kBACrBnC,IAAA,CAACJ,SAAS;QAERkC,OAAO,EAAEA,CAAA,KAAMtB,QAAQ,CAAC0B,CAAC,CAAE;QAC3B7B,QAAQ,EAAEA,QAAS;QACnBM,KAAK,EAAE;UACLyB,KAAK,EAAE,EAAE;UACTC,MAAM,EAAE,EAAE;UACVC,YAAY,EAAE,EAAE;UAChBC,eAAe,EAAEL,CAAC;UAClBM,WAAW,EAAE,CAAC;UACdC,WAAW,EAAEnC,CAAC,CAACoC;QACjB;MAAE,GAVG,GAAGR,CAAC,IAAIC,CAAC,EAWf,CACF;IAAC,CACE,CAAC;EAAA,CACH,CAAC;AAEX","ignoreList":[]}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useCallback, useRef, useState } from "react";
|
|
4
|
+
import { PanResponder, View } from "react-native";
|
|
5
|
+
import Svg, { Defs, LinearGradient, Rect, Stop } from "react-native-svg";
|
|
6
|
+
import { hsbToHex } from "../utils/colors.js";
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
8
|
+
export function SatBrightPad({
|
|
9
|
+
hue,
|
|
10
|
+
sat,
|
|
11
|
+
bright,
|
|
12
|
+
disabled,
|
|
13
|
+
thumbBorder,
|
|
14
|
+
onChange
|
|
15
|
+
}) {
|
|
16
|
+
const containerRef = useRef(null);
|
|
17
|
+
const originRef = useRef(null);
|
|
18
|
+
const sizeRef = useRef(0);
|
|
19
|
+
const disabledRef = useRef(disabled);
|
|
20
|
+
const onChangeRef = useRef(onChange);
|
|
21
|
+
disabledRef.current = disabled;
|
|
22
|
+
onChangeRef.current = onChange;
|
|
23
|
+
const [layoutSize, setLayoutSize] = useState(0);
|
|
24
|
+
const calcValues = useCallback((pageX, pageY) => {
|
|
25
|
+
const s = sizeRef.current;
|
|
26
|
+
if (!originRef.current || s === 0) return null;
|
|
27
|
+
const x = Math.max(0, Math.min(pageX - originRef.current.x, s));
|
|
28
|
+
const y = Math.max(0, Math.min(pageY - originRef.current.y, s));
|
|
29
|
+
return {
|
|
30
|
+
s: Math.round(x / s * 100),
|
|
31
|
+
b: Math.round(100 - y / s * 100)
|
|
32
|
+
};
|
|
33
|
+
}, []);
|
|
34
|
+
const panResponder = useRef(PanResponder.create({
|
|
35
|
+
onStartShouldSetPanResponder: () => !disabledRef.current,
|
|
36
|
+
onStartShouldSetPanResponderCapture: () => !disabledRef.current,
|
|
37
|
+
onMoveShouldSetPanResponder: () => !disabledRef.current,
|
|
38
|
+
onMoveShouldSetPanResponderCapture: () => !disabledRef.current,
|
|
39
|
+
onPanResponderTerminationRequest: () => false,
|
|
40
|
+
onPanResponderGrant: evt => {
|
|
41
|
+
const {
|
|
42
|
+
pageX,
|
|
43
|
+
pageY
|
|
44
|
+
} = evt.nativeEvent;
|
|
45
|
+
containerRef.current?.measure((_x, _y, w, _h, ox, oy) => {
|
|
46
|
+
originRef.current = {
|
|
47
|
+
x: ox,
|
|
48
|
+
y: oy
|
|
49
|
+
};
|
|
50
|
+
sizeRef.current = w;
|
|
51
|
+
const vals = calcValues(pageX, pageY);
|
|
52
|
+
if (vals) onChangeRef.current(vals);
|
|
53
|
+
});
|
|
54
|
+
},
|
|
55
|
+
onPanResponderMove: evt => {
|
|
56
|
+
const {
|
|
57
|
+
pageX,
|
|
58
|
+
pageY
|
|
59
|
+
} = evt.nativeEvent;
|
|
60
|
+
const vals = calcValues(pageX, pageY);
|
|
61
|
+
if (vals) onChangeRef.current(vals);
|
|
62
|
+
}
|
|
63
|
+
})).current;
|
|
64
|
+
const thumbX = sat / 100 * layoutSize;
|
|
65
|
+
const thumbY = (100 - bright) / 100 * layoutSize;
|
|
66
|
+
const currentColor = hsbToHex(hue, sat, bright);
|
|
67
|
+
const hueColor = hsbToHex(hue, 100, 100);
|
|
68
|
+
return /*#__PURE__*/_jsx(View, {
|
|
69
|
+
ref: containerRef,
|
|
70
|
+
onLayout: e => {
|
|
71
|
+
const w = e.nativeEvent.layout.width;
|
|
72
|
+
setLayoutSize(w);
|
|
73
|
+
sizeRef.current = w;
|
|
74
|
+
},
|
|
75
|
+
style: {
|
|
76
|
+
width: "100%",
|
|
77
|
+
aspectRatio: 1,
|
|
78
|
+
borderRadius: 12,
|
|
79
|
+
overflow: "hidden"
|
|
80
|
+
},
|
|
81
|
+
...panResponder.panHandlers,
|
|
82
|
+
children: layoutSize > 0 && /*#__PURE__*/_jsxs(_Fragment, {
|
|
83
|
+
children: [/*#__PURE__*/_jsxs(Svg, {
|
|
84
|
+
width: layoutSize,
|
|
85
|
+
height: layoutSize,
|
|
86
|
+
style: {
|
|
87
|
+
position: "absolute",
|
|
88
|
+
top: 0,
|
|
89
|
+
left: 0
|
|
90
|
+
},
|
|
91
|
+
children: [/*#__PURE__*/_jsx(Defs, {
|
|
92
|
+
children: /*#__PURE__*/_jsxs(LinearGradient, {
|
|
93
|
+
id: "grad_sat",
|
|
94
|
+
x1: "0",
|
|
95
|
+
y1: "0",
|
|
96
|
+
x2: "1",
|
|
97
|
+
y2: "0",
|
|
98
|
+
children: [/*#__PURE__*/_jsx(Stop, {
|
|
99
|
+
offset: "0",
|
|
100
|
+
stopColor: "#FFFFFF",
|
|
101
|
+
stopOpacity: 1
|
|
102
|
+
}), /*#__PURE__*/_jsx(Stop, {
|
|
103
|
+
offset: "1",
|
|
104
|
+
stopColor: hueColor,
|
|
105
|
+
stopOpacity: 1
|
|
106
|
+
})]
|
|
107
|
+
})
|
|
108
|
+
}), /*#__PURE__*/_jsx(Rect, {
|
|
109
|
+
x: "0",
|
|
110
|
+
y: "0",
|
|
111
|
+
width: layoutSize,
|
|
112
|
+
height: layoutSize,
|
|
113
|
+
fill: "url(#grad_sat)"
|
|
114
|
+
})]
|
|
115
|
+
}), /*#__PURE__*/_jsxs(Svg, {
|
|
116
|
+
width: layoutSize,
|
|
117
|
+
height: layoutSize,
|
|
118
|
+
style: {
|
|
119
|
+
position: "absolute",
|
|
120
|
+
top: 0,
|
|
121
|
+
left: 0
|
|
122
|
+
},
|
|
123
|
+
children: [/*#__PURE__*/_jsx(Defs, {
|
|
124
|
+
children: /*#__PURE__*/_jsxs(LinearGradient, {
|
|
125
|
+
id: "grad_bright",
|
|
126
|
+
x1: "0",
|
|
127
|
+
y1: "0",
|
|
128
|
+
x2: "0",
|
|
129
|
+
y2: "1",
|
|
130
|
+
children: [/*#__PURE__*/_jsx(Stop, {
|
|
131
|
+
offset: "0",
|
|
132
|
+
stopColor: "#000000",
|
|
133
|
+
stopOpacity: 0
|
|
134
|
+
}), /*#__PURE__*/_jsx(Stop, {
|
|
135
|
+
offset: "1",
|
|
136
|
+
stopColor: "#000000",
|
|
137
|
+
stopOpacity: 1
|
|
138
|
+
})]
|
|
139
|
+
})
|
|
140
|
+
}), /*#__PURE__*/_jsx(Rect, {
|
|
141
|
+
x: "0",
|
|
142
|
+
y: "0",
|
|
143
|
+
width: layoutSize,
|
|
144
|
+
height: layoutSize,
|
|
145
|
+
fill: "url(#grad_bright)"
|
|
146
|
+
})]
|
|
147
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
148
|
+
style: {
|
|
149
|
+
position: "absolute",
|
|
150
|
+
left: thumbX - 12,
|
|
151
|
+
top: thumbY - 12,
|
|
152
|
+
width: 24,
|
|
153
|
+
height: 24,
|
|
154
|
+
borderRadius: 12,
|
|
155
|
+
borderWidth: 3,
|
|
156
|
+
borderColor: thumbBorder,
|
|
157
|
+
backgroundColor: currentColor,
|
|
158
|
+
shadowColor: "#000",
|
|
159
|
+
shadowOffset: {
|
|
160
|
+
width: 0,
|
|
161
|
+
height: 2
|
|
162
|
+
},
|
|
163
|
+
shadowOpacity: 0.4,
|
|
164
|
+
shadowRadius: 4,
|
|
165
|
+
elevation: 5
|
|
166
|
+
}
|
|
167
|
+
})]
|
|
168
|
+
})
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=sat-bright-pad.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useCallback","useRef","useState","PanResponder","View","Svg","Defs","LinearGradient","Rect","Stop","hsbToHex","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SatBrightPad","hue","sat","bright","disabled","thumbBorder","onChange","containerRef","originRef","sizeRef","disabledRef","onChangeRef","current","layoutSize","setLayoutSize","calcValues","pageX","pageY","s","x","Math","max","min","y","round","b","panResponder","create","onStartShouldSetPanResponder","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponder","onMoveShouldSetPanResponderCapture","onPanResponderTerminationRequest","onPanResponderGrant","evt","nativeEvent","measure","_x","_y","w","_h","ox","oy","vals","onPanResponderMove","thumbX","thumbY","currentColor","hueColor","ref","onLayout","e","layout","width","style","aspectRatio","borderRadius","overflow","panHandlers","children","height","position","top","left","id","x1","y1","x2","y2","offset","stopColor","stopOpacity","fill","borderWidth","borderColor","backgroundColor","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation"],"sourceRoot":"../../../src","sources":["components/sat-bright-pad.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Pressable, Text, View } from "react-native";
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
export function TabBar({
|
|
6
|
+
tabs,
|
|
7
|
+
active,
|
|
8
|
+
onSelect,
|
|
9
|
+
t,
|
|
10
|
+
labels
|
|
11
|
+
}) {
|
|
12
|
+
return /*#__PURE__*/_jsx(View, {
|
|
13
|
+
style: {
|
|
14
|
+
flexDirection: "row",
|
|
15
|
+
borderBottomWidth: 1,
|
|
16
|
+
borderBottomColor: t.border
|
|
17
|
+
},
|
|
18
|
+
children: tabs.map(tab => {
|
|
19
|
+
const isActive = tab === active;
|
|
20
|
+
return /*#__PURE__*/_jsx(Pressable, {
|
|
21
|
+
onPress: () => onSelect(tab),
|
|
22
|
+
style: {
|
|
23
|
+
flex: 1,
|
|
24
|
+
paddingVertical: 12,
|
|
25
|
+
alignItems: "center",
|
|
26
|
+
borderBottomWidth: 2,
|
|
27
|
+
borderBottomColor: isActive ? t.tabIndicator : "transparent"
|
|
28
|
+
},
|
|
29
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
30
|
+
style: {
|
|
31
|
+
fontSize: 13,
|
|
32
|
+
fontWeight: "600",
|
|
33
|
+
color: isActive ? t.tabActive : t.tabInactive
|
|
34
|
+
},
|
|
35
|
+
children: labels[tab]
|
|
36
|
+
})
|
|
37
|
+
}, tab);
|
|
38
|
+
})
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=tab-bar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Pressable","Text","View","jsx","_jsx","TabBar","tabs","active","onSelect","t","labels","style","flexDirection","borderBottomWidth","borderBottomColor","border","children","map","tab","isActive","onPress","flex","paddingVertical","alignItems","tabIndicator","fontSize","fontWeight","color","tabActive","tabInactive"],"sourceRoot":"../../../src","sources":["components/tab-bar.tsx"],"mappings":";;AAAA,SACEA,SAAS,EACTC,IAAI,EACJC,IAAI,QACC,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAWtB,OAAO,SAASC,MAAMA,CAAC;EACrBC,IAAI;EACJC,MAAM;EACNC,QAAQ;EACRC,CAAC;EACDC;AACW,CAAC,EAAE;EACd,oBACEN,IAAA,CAACF,IAAI;IACHS,KAAK,EAAE;MACLC,aAAa,EAAE,KAAK;MACpBC,iBAAiB,EAAE,CAAC;MACpBC,iBAAiB,EAAEL,CAAC,CAACM;IACvB,CAAE;IAAAC,QAAA,EAEDV,IAAI,CAACW,GAAG,CAAEC,GAAG,IAAK;MACjB,MAAMC,QAAQ,GAAGD,GAAG,KAAKX,MAAM;MAC/B,oBACEH,IAAA,CAACJ,SAAS;QAERoB,OAAO,EAAEA,CAAA,KAAMZ,QAAQ,CAACU,GAAG,CAAE;QAC7BP,KAAK,EAAE;UACLU,IAAI,EAAE,CAAC;UACPC,eAAe,EAAE,EAAE;UACnBC,UAAU,EAAE,QAAQ;UACpBV,iBAAiB,EAAE,CAAC;UACpBC,iBAAiB,EAAEK,QAAQ,GAAGV,CAAC,CAACe,YAAY,GAAG;QACjD,CAAE;QAAAR,QAAA,eAEFZ,IAAA,CAACH,IAAI;UACHU,KAAK,EAAE;YACLc,QAAQ,EAAE,EAAE;YACZC,UAAU,EAAE,KAAK;YACjBC,KAAK,EAAER,QAAQ,GAAGV,CAAC,CAACmB,SAAS,GAAGnB,CAAC,CAACoB;UACpC,CAAE;UAAAb,QAAA,EAEDN,MAAM,CAACQ,GAAG;QAAC,CACR;MAAC,GAlBFA,GAmBI,CAAC;IAEhB,CAAC;EAAC,CACE,CAAC;AAEX","ignoreList":[]}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Text, TextInput, View } from "react-native";
|
|
4
|
+
import { hexToRgb } from "../utils/colors.js";
|
|
5
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
|
+
export function ValuesTab({
|
|
7
|
+
hue,
|
|
8
|
+
sat,
|
|
9
|
+
bright,
|
|
10
|
+
currentHex,
|
|
11
|
+
hexInput,
|
|
12
|
+
disabled,
|
|
13
|
+
t,
|
|
14
|
+
onHexInputChange,
|
|
15
|
+
onHexSubmit,
|
|
16
|
+
onHexInputFocus,
|
|
17
|
+
onHexInputBlur
|
|
18
|
+
}) {
|
|
19
|
+
const rgb = hexToRgb(currentHex);
|
|
20
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
21
|
+
style: {
|
|
22
|
+
padding: 20,
|
|
23
|
+
gap: 16
|
|
24
|
+
},
|
|
25
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
26
|
+
style: {
|
|
27
|
+
flexDirection: "row",
|
|
28
|
+
gap: 8
|
|
29
|
+
},
|
|
30
|
+
children: [/*#__PURE__*/_jsx(TextInput, {
|
|
31
|
+
value: hexInput,
|
|
32
|
+
onChangeText: onHexInputChange,
|
|
33
|
+
onBlur: () => {
|
|
34
|
+
onHexInputBlur();
|
|
35
|
+
onHexSubmit();
|
|
36
|
+
},
|
|
37
|
+
onFocus: onHexInputFocus,
|
|
38
|
+
onSubmitEditing: onHexSubmit,
|
|
39
|
+
maxLength: 7,
|
|
40
|
+
autoCapitalize: "characters",
|
|
41
|
+
autoCorrect: false,
|
|
42
|
+
editable: !disabled,
|
|
43
|
+
style: {
|
|
44
|
+
flex: 1,
|
|
45
|
+
backgroundColor: t.inputBg,
|
|
46
|
+
borderWidth: 1,
|
|
47
|
+
borderColor: t.border,
|
|
48
|
+
borderRadius: 10,
|
|
49
|
+
paddingHorizontal: 14,
|
|
50
|
+
paddingVertical: 12,
|
|
51
|
+
color: t.text,
|
|
52
|
+
fontSize: 16,
|
|
53
|
+
fontWeight: "500",
|
|
54
|
+
fontVariant: ["tabular-nums"]
|
|
55
|
+
}
|
|
56
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
57
|
+
style: {
|
|
58
|
+
width: 48,
|
|
59
|
+
height: 48,
|
|
60
|
+
borderRadius: 10,
|
|
61
|
+
backgroundColor: currentHex,
|
|
62
|
+
borderWidth: 1,
|
|
63
|
+
borderColor: t.border
|
|
64
|
+
}
|
|
65
|
+
})]
|
|
66
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
67
|
+
style: {
|
|
68
|
+
flexDirection: "row",
|
|
69
|
+
gap: 8
|
|
70
|
+
},
|
|
71
|
+
children: [{
|
|
72
|
+
label: "R",
|
|
73
|
+
value: rgb.r,
|
|
74
|
+
color: "#FF6B6B"
|
|
75
|
+
}, {
|
|
76
|
+
label: "G",
|
|
77
|
+
value: rgb.g,
|
|
78
|
+
color: "#51CF66"
|
|
79
|
+
}, {
|
|
80
|
+
label: "B",
|
|
81
|
+
value: rgb.b,
|
|
82
|
+
color: "#339AF0"
|
|
83
|
+
}].map(({
|
|
84
|
+
label,
|
|
85
|
+
value: val,
|
|
86
|
+
color
|
|
87
|
+
}) => /*#__PURE__*/_jsxs(View, {
|
|
88
|
+
style: {
|
|
89
|
+
flex: 1,
|
|
90
|
+
backgroundColor: t.surface,
|
|
91
|
+
borderRadius: 10,
|
|
92
|
+
paddingVertical: 10,
|
|
93
|
+
alignItems: "center"
|
|
94
|
+
},
|
|
95
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
96
|
+
style: {
|
|
97
|
+
color,
|
|
98
|
+
fontSize: 10,
|
|
99
|
+
fontWeight: "700",
|
|
100
|
+
letterSpacing: 1
|
|
101
|
+
},
|
|
102
|
+
children: label
|
|
103
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
104
|
+
style: {
|
|
105
|
+
color: t.text,
|
|
106
|
+
fontSize: 20,
|
|
107
|
+
fontWeight: "600",
|
|
108
|
+
fontVariant: ["tabular-nums"],
|
|
109
|
+
marginTop: 2
|
|
110
|
+
},
|
|
111
|
+
children: val
|
|
112
|
+
})]
|
|
113
|
+
}, label))
|
|
114
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
115
|
+
style: {
|
|
116
|
+
flexDirection: "row",
|
|
117
|
+
gap: 8
|
|
118
|
+
},
|
|
119
|
+
children: [{
|
|
120
|
+
label: "H",
|
|
121
|
+
value: `${hue}°`
|
|
122
|
+
}, {
|
|
123
|
+
label: "S",
|
|
124
|
+
value: `${sat}%`
|
|
125
|
+
}, {
|
|
126
|
+
label: "B",
|
|
127
|
+
value: `${bright}%`
|
|
128
|
+
}].map(({
|
|
129
|
+
label,
|
|
130
|
+
value: val
|
|
131
|
+
}) => /*#__PURE__*/_jsxs(View, {
|
|
132
|
+
style: {
|
|
133
|
+
flex: 1,
|
|
134
|
+
backgroundColor: t.surface,
|
|
135
|
+
borderRadius: 10,
|
|
136
|
+
paddingVertical: 10,
|
|
137
|
+
alignItems: "center"
|
|
138
|
+
},
|
|
139
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
140
|
+
style: {
|
|
141
|
+
color: t.textMuted,
|
|
142
|
+
fontSize: 10,
|
|
143
|
+
fontWeight: "700",
|
|
144
|
+
letterSpacing: 1
|
|
145
|
+
},
|
|
146
|
+
children: label
|
|
147
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
148
|
+
style: {
|
|
149
|
+
color: t.text,
|
|
150
|
+
fontSize: 20,
|
|
151
|
+
fontWeight: "600",
|
|
152
|
+
fontVariant: ["tabular-nums"],
|
|
153
|
+
marginTop: 2
|
|
154
|
+
},
|
|
155
|
+
children: val
|
|
156
|
+
})]
|
|
157
|
+
}, label))
|
|
158
|
+
})]
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=values-tab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Text","TextInput","View","hexToRgb","jsx","_jsx","jsxs","_jsxs","ValuesTab","hue","sat","bright","currentHex","hexInput","disabled","t","onHexInputChange","onHexSubmit","onHexInputFocus","onHexInputBlur","rgb","style","padding","gap","children","flexDirection","value","onChangeText","onBlur","onFocus","onSubmitEditing","maxLength","autoCapitalize","autoCorrect","editable","flex","backgroundColor","inputBg","borderWidth","borderColor","border","borderRadius","paddingHorizontal","paddingVertical","color","text","fontSize","fontWeight","fontVariant","width","height","label","r","g","b","map","val","surface","alignItems","letterSpacing","marginTop","textMuted"],"sourceRoot":"../../../src","sources":["components/values-tab.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ColorPicker"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,WAAW,QAA+B,8BAA2B","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export const DEFAULT_LABELS = {
|
|
4
|
+
picker: "Picker",
|
|
5
|
+
values: "Values",
|
|
6
|
+
recent: "Recent",
|
|
7
|
+
save: "Save",
|
|
8
|
+
savedColors: "Saved Colors",
|
|
9
|
+
clearAll: "Clear All",
|
|
10
|
+
noSavedColors: "No saved colors yet",
|
|
11
|
+
noSavedColorsHint: 'Tap "Save" to add colors here'
|
|
12
|
+
};
|
|
13
|
+
export const themes = {
|
|
14
|
+
dark: {
|
|
15
|
+
background: "#1A1A2E",
|
|
16
|
+
surface: "rgba(255,255,255,0.06)",
|
|
17
|
+
border: "rgba(255,255,255,0.08)",
|
|
18
|
+
text: "#FFFFFF",
|
|
19
|
+
textMuted: "rgba(255,255,255,0.4)",
|
|
20
|
+
textDim: "rgba(255,255,255,0.2)",
|
|
21
|
+
inputBg: "rgba(255,255,255,0.08)",
|
|
22
|
+
thumbBorder: "#FFFFFF",
|
|
23
|
+
overlay: "rgba(0,0,0,0.6)",
|
|
24
|
+
tabActive: "#FFFFFF",
|
|
25
|
+
tabInactive: "rgba(255,255,255,0.3)",
|
|
26
|
+
tabIndicator: "#FFFFFF"
|
|
27
|
+
},
|
|
28
|
+
light: {
|
|
29
|
+
background: "#FFFFFF",
|
|
30
|
+
surface: "rgba(0,0,0,0.04)",
|
|
31
|
+
border: "rgba(0,0,0,0.08)",
|
|
32
|
+
text: "#000000",
|
|
33
|
+
textMuted: "rgba(0,0,0,0.5)",
|
|
34
|
+
textDim: "rgba(0,0,0,0.2)",
|
|
35
|
+
inputBg: "rgba(0,0,0,0.05)",
|
|
36
|
+
thumbBorder: "#FFFFFF",
|
|
37
|
+
overlay: "rgba(0,0,0,0.4)",
|
|
38
|
+
tabActive: "#000000",
|
|
39
|
+
tabInactive: "rgba(0,0,0,0.3)",
|
|
40
|
+
tabIndicator: "#000000"
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=const.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DEFAULT_LABELS","picker","values","recent","save","savedColors","clearAll","noSavedColors","noSavedColorsHint","themes","dark","background","surface","border","text","textMuted","textDim","inputBg","thumbBorder","overlay","tabActive","tabInactive","tabIndicator","light"],"sourceRoot":"../../../src","sources":["shared/const.ts"],"mappings":";;AAEA,OAAO,MAAMA,cAA2C,GAAG;EACzDC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE,QAAQ;EAChBC,IAAI,EAAE,MAAM;EACZC,WAAW,EAAE,cAAc;EAC3BC,QAAQ,EAAE,WAAW;EACrBC,aAAa,EAAE,qBAAqB;EACpCC,iBAAiB,EAAE;AACrB,CAAC;AAED,OAAO,MAAMC,MAAM,GAAG;EACpBC,IAAI,EAAE;IACJC,UAAU,EAAE,SAAS;IACrBC,OAAO,EAAE,wBAAwB;IACjCC,MAAM,EAAE,wBAAwB;IAChCC,IAAI,EAAE,SAAS;IACfC,SAAS,EAAE,uBAAuB;IAClCC,OAAO,EAAE,uBAAuB;IAChCC,OAAO,EAAE,wBAAwB;IACjCC,WAAW,EAAE,SAAS;IACtBC,OAAO,EAAE,iBAAiB;IAC1BC,SAAS,EAAE,SAAS;IACpBC,WAAW,EAAE,uBAAuB;IACpCC,YAAY,EAAE;EAChB,CAAC;EACDC,KAAK,EAAE;IACLZ,UAAU,EAAE,SAAS;IACrBC,OAAO,EAAE,kBAAkB;IAC3BC,MAAM,EAAE,kBAAkB;IAC1BC,IAAI,EAAE,SAAS;IACfC,SAAS,EAAE,iBAAiB;IAC5BC,OAAO,EAAE,iBAAiB;IAC1BC,OAAO,EAAE,kBAAkB;IAC3BC,WAAW,EAAE,SAAS;IACtBC,OAAO,EAAE,iBAAiB;IAC1BC,SAAS,EAAE,SAAS;IACpBC,WAAW,EAAE,iBAAiB;IAC9BC,YAAY,EAAE;EAChB;AACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/misc.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export function hsbToHex(h, s, b) {
|
|
4
|
+
const s1 = s / 100;
|
|
5
|
+
const b1 = b / 100;
|
|
6
|
+
const k = n => (n + h / 60) % 6;
|
|
7
|
+
const f = n => b1 * (1 - s1 * Math.max(0, Math.min(k(n), 4 - k(n), 1)));
|
|
8
|
+
const toHex = v => Math.round(v * 255).toString(16).padStart(2, "0");
|
|
9
|
+
return `#${toHex(f(5))}${toHex(f(3))}${toHex(f(1))}`;
|
|
10
|
+
}
|
|
11
|
+
export function hexToHsb(hex) {
|
|
12
|
+
const clean = hex.replace("#", "");
|
|
13
|
+
const full = clean.length === 3 ? clean.split("").map(c => c + c).join("") : clean;
|
|
14
|
+
const r = parseInt(full.slice(0, 2), 16) / 255;
|
|
15
|
+
const g = parseInt(full.slice(2, 4), 16) / 255;
|
|
16
|
+
const b = parseInt(full.slice(4, 6), 16) / 255;
|
|
17
|
+
const max = Math.max(r, g, b);
|
|
18
|
+
const min = Math.min(r, g, b);
|
|
19
|
+
const d = max - min;
|
|
20
|
+
let h = 0;
|
|
21
|
+
if (d !== 0) {
|
|
22
|
+
if (max === r) h = ((g - b) / d + 6) % 6;else if (max === g) h = (b - r) / d + 2;else h = (r - g) / d + 4;
|
|
23
|
+
h *= 60;
|
|
24
|
+
}
|
|
25
|
+
const s = max === 0 ? 0 : d / max * 100;
|
|
26
|
+
return {
|
|
27
|
+
h: Math.round(h),
|
|
28
|
+
s: Math.round(s),
|
|
29
|
+
b: Math.round(max * 100)
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export function hexToRgb(hex) {
|
|
33
|
+
const clean = hex.replace("#", "");
|
|
34
|
+
return {
|
|
35
|
+
r: parseInt(clean.slice(0, 2), 16),
|
|
36
|
+
g: parseInt(clean.slice(2, 4), 16),
|
|
37
|
+
b: parseInt(clean.slice(4, 6), 16)
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export function isValidHex(hex) {
|
|
41
|
+
return /^#?[0-9A-Fa-f]{6}$/.test(hex);
|
|
42
|
+
}
|
|
43
|
+
export function getContrastColor(hex) {
|
|
44
|
+
const {
|
|
45
|
+
r,
|
|
46
|
+
g,
|
|
47
|
+
b
|
|
48
|
+
} = hexToRgb(hex);
|
|
49
|
+
const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;
|
|
50
|
+
return luminance > 0.5 ? "#000000" : "#FFFFFF";
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=colors.js.map
|