@kiosinc/commons-rn 0.1.97 → 0.1.98
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/lib/commonjs/utils/colorPaletteGenerator.js +126 -0
- package/lib/commonjs/utils/colorPaletteGenerator.js.map +1 -0
- package/lib/commonjs/utils/index.js +7 -0
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/module/utils/colorPaletteGenerator.js +117 -0
- package/lib/module/utils/colorPaletteGenerator.js.map +1 -0
- package/lib/module/utils/index.js +1 -0
- package/lib/module/utils/index.js.map +1 -1
- package/lib/typescript/src/utils/colorPaletteGenerator.d.ts +132 -0
- package/lib/typescript/src/utils/colorPaletteGenerator.d.ts.map +1 -0
- package/lib/typescript/src/utils/index.d.ts +1 -0
- package/lib/typescript/src/utils/index.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/utils/colorPaletteGenerator.ts +181 -0
- package/src/utils/index.ts +1 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.prepareVariant = exports.getPreviewColors = exports.getMatchingColor = exports.createColorPalette = void 0;
|
|
7
|
+
var _materialColorUtilities = require("@material/material-color-utilities");
|
|
8
|
+
var _camelcase = _interopRequireDefault(require("camelcase"));
|
|
9
|
+
var _color = _interopRequireDefault(require("color"));
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
const opacity = {
|
|
12
|
+
level1: 0.08,
|
|
13
|
+
level2: 0.12,
|
|
14
|
+
level3: 0.16,
|
|
15
|
+
level4: 0.38
|
|
16
|
+
};
|
|
17
|
+
const elevationLevels = [0.05, 0.08, 0.11, 0.12, 0.14];
|
|
18
|
+
const nonMaterialCore = ['elevation', 'shadow', 'scrim', 'inverseSurface', 'inverseOnSurface', 'surfaceDisabled', 'onSurfaceDisabled', 'outlineVariant', 'backdrop', 'inversePrimary'];
|
|
19
|
+
const argbThemeFromColor = (color, type = 'light') => {
|
|
20
|
+
return (0, _materialColorUtilities.themeFromSourceColor)((0, _materialColorUtilities.argbFromRgb)(color.R, color.G, color.B)).schemes[type].toJSON();
|
|
21
|
+
};
|
|
22
|
+
const argbThemeToRgbTheme = theme => {
|
|
23
|
+
return Object.fromEntries(
|
|
24
|
+
//@ts-ignore
|
|
25
|
+
Object.entries(theme).map(([key, value]) => [key,
|
|
26
|
+
//@ts-ignore
|
|
27
|
+
(0, _color.default)(value).rgb().string()]));
|
|
28
|
+
};
|
|
29
|
+
const prepareSurfaceColors = argbTheme => {
|
|
30
|
+
const {
|
|
31
|
+
palettes
|
|
32
|
+
} = (0, _materialColorUtilities.themeFromSourceColor)(argbTheme.primary);
|
|
33
|
+
const surfaceDisabled = (0, _color.default)(argbTheme.onSurface).alpha(opacity.level2).rgb().string();
|
|
34
|
+
const onSurfaceDisabled = (0, _color.default)(argbTheme.onSurface).alpha(opacity.level4).rgb().string();
|
|
35
|
+
const backdrop = (0, _color.default)(palettes.neutralVariant.tone(20)).alpha(0.4).rgb().string();
|
|
36
|
+
return {
|
|
37
|
+
surfaceDisabled,
|
|
38
|
+
onSurfaceDisabled,
|
|
39
|
+
backdrop
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
const prepareElevations = argbTheme => {
|
|
43
|
+
const elevations = {
|
|
44
|
+
level0: 'transparent'
|
|
45
|
+
};
|
|
46
|
+
const {
|
|
47
|
+
primary,
|
|
48
|
+
surface
|
|
49
|
+
} = argbTheme;
|
|
50
|
+
for (let i = 0; i < elevationLevels.length; i++) {
|
|
51
|
+
elevations[`level${i + 1}`] = (0, _color.default)(surface).mix((0, _color.default)(primary), Number(elevationLevels[i])).rgb().string();
|
|
52
|
+
}
|
|
53
|
+
return elevations;
|
|
54
|
+
};
|
|
55
|
+
const getPreviewColors = theme => {
|
|
56
|
+
const preview = {
|
|
57
|
+
...theme
|
|
58
|
+
};
|
|
59
|
+
for (const key of nonMaterialCore) {
|
|
60
|
+
delete preview[key];
|
|
61
|
+
}
|
|
62
|
+
delete preview.elevation;
|
|
63
|
+
return Object.entries(preview);
|
|
64
|
+
};
|
|
65
|
+
exports.getPreviewColors = getPreviewColors;
|
|
66
|
+
const getMatchingColor = (colorName, theme) => {
|
|
67
|
+
if (colorName === 'outline') {
|
|
68
|
+
return theme.surface;
|
|
69
|
+
}
|
|
70
|
+
if (colorName.startsWith('on')) {
|
|
71
|
+
const key = (0, _camelcase.default)(colorName.slice(2));
|
|
72
|
+
return theme[key];
|
|
73
|
+
}
|
|
74
|
+
const key = `on${(0, _camelcase.default)(colorName, {
|
|
75
|
+
pascalCase: true
|
|
76
|
+
})}`;
|
|
77
|
+
return theme[key];
|
|
78
|
+
};
|
|
79
|
+
exports.getMatchingColor = getMatchingColor;
|
|
80
|
+
const prepareVariant = ({
|
|
81
|
+
primary,
|
|
82
|
+
secondary,
|
|
83
|
+
tertiary,
|
|
84
|
+
type
|
|
85
|
+
}) => {
|
|
86
|
+
const baseTheme = argbThemeFromColor(primary, type);
|
|
87
|
+
if (secondary) {
|
|
88
|
+
const secondaryTheme = argbThemeFromColor(secondary, type);
|
|
89
|
+
baseTheme.secondary = secondaryTheme.primary;
|
|
90
|
+
baseTheme.onSecondary = secondaryTheme.onPrimary;
|
|
91
|
+
baseTheme.secondaryContainer = secondaryTheme.primaryContainer;
|
|
92
|
+
baseTheme.onSecondaryContainer = secondaryTheme.onPrimaryContainer;
|
|
93
|
+
}
|
|
94
|
+
if (tertiary) {
|
|
95
|
+
const tertiaryTheme = argbThemeFromColor(tertiary, type);
|
|
96
|
+
baseTheme.tertiary = tertiaryTheme.primary;
|
|
97
|
+
baseTheme.onTertiary = tertiaryTheme.onPrimary;
|
|
98
|
+
baseTheme.tertiaryContainer = tertiaryTheme.primaryContainer;
|
|
99
|
+
baseTheme.onTertiaryContainer = tertiaryTheme.onPrimaryContainer;
|
|
100
|
+
}
|
|
101
|
+
const theme = argbThemeToRgbTheme(baseTheme);
|
|
102
|
+
const elevation = prepareElevations(baseTheme);
|
|
103
|
+
const surfaceColors = prepareSurfaceColors(baseTheme);
|
|
104
|
+
return {
|
|
105
|
+
...theme,
|
|
106
|
+
elevation,
|
|
107
|
+
...surfaceColors
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
exports.prepareVariant = prepareVariant;
|
|
111
|
+
const createColorPalette = colors => {
|
|
112
|
+
const light = prepareVariant({
|
|
113
|
+
...colors,
|
|
114
|
+
type: 'light'
|
|
115
|
+
});
|
|
116
|
+
const dark = prepareVariant({
|
|
117
|
+
...colors,
|
|
118
|
+
type: 'dark'
|
|
119
|
+
});
|
|
120
|
+
return {
|
|
121
|
+
light,
|
|
122
|
+
dark
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
exports.createColorPalette = createColorPalette;
|
|
126
|
+
//# sourceMappingURL=colorPaletteGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_materialColorUtilities","require","_camelcase","_interopRequireDefault","_color","obj","__esModule","default","opacity","level1","level2","level3","level4","elevationLevels","nonMaterialCore","argbThemeFromColor","color","type","themeFromSourceColor","argbFromRgb","R","G","B","schemes","toJSON","argbThemeToRgbTheme","theme","Object","fromEntries","entries","map","key","value","Color","rgb","string","prepareSurfaceColors","argbTheme","palettes","primary","surfaceDisabled","onSurface","alpha","onSurfaceDisabled","backdrop","neutralVariant","tone","prepareElevations","elevations","level0","surface","i","length","mix","Number","getPreviewColors","preview","elevation","exports","getMatchingColor","colorName","startsWith","camelCase","slice","pascalCase","prepareVariant","secondary","tertiary","baseTheme","secondaryTheme","onSecondary","onPrimary","secondaryContainer","primaryContainer","onSecondaryContainer","onPrimaryContainer","tertiaryTheme","onTertiary","tertiaryContainer","onTertiaryContainer","surfaceColors","createColorPalette","colors","light","dark"],"sourceRoot":"../../../src","sources":["utils/colorPaletteGenerator.ts"],"mappings":"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"}
|
|
@@ -21,6 +21,12 @@ Object.defineProperty(exports, "analytics", {
|
|
|
21
21
|
return _analytics.analytics;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
|
+
Object.defineProperty(exports, "createColorPalette", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _colorPaletteGenerator.createColorPalette;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
24
30
|
exports.getPercentageFromHeight = exports.getCurrentTimestamp = void 0;
|
|
25
31
|
Object.defineProperty(exports, "useMultiSnapBottomSheetRef", {
|
|
26
32
|
enumerable: true,
|
|
@@ -38,6 +44,7 @@ var _reactNative = require("react-native");
|
|
|
38
44
|
var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
|
|
39
45
|
var _firestore = _interopRequireDefault(require("@react-native-firebase/firestore"));
|
|
40
46
|
var _analytics = require("./analytics");
|
|
47
|
+
var _colorPaletteGenerator = require("./colorPaletteGenerator");
|
|
41
48
|
var _currency = require("./currency");
|
|
42
49
|
var _useMultiSnapBottomSheetRef = require("./useMultiSnapBottomSheetRef");
|
|
43
50
|
var _useSingleSnapBottomSheetRef = require("./useSingleSnapBottomSheetRef");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_reactNativeSafeAreaContext","_firestore","_interopRequireDefault","_analytics","_currency","_useMultiSnapBottomSheetRef","_useSingleSnapBottomSheetRef","obj","__esModule","default","getPercentageFromHeight","height","totalHeight","Dimensions","get","initialWindowMetrics","insets","top","bottom","Math","ceil","exports","getCurrentTimestamp","firestoreTimestamp","firestore","Timestamp","now","toDate","formattedTimestamp","toISOString"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_reactNativeSafeAreaContext","_firestore","_interopRequireDefault","_analytics","_colorPaletteGenerator","_currency","_useMultiSnapBottomSheetRef","_useSingleSnapBottomSheetRef","obj","__esModule","default","getPercentageFromHeight","height","totalHeight","Dimensions","get","initialWindowMetrics","insets","top","bottom","Math","ceil","exports","getCurrentTimestamp","firestoreTimestamp","firestore","Timestamp","now","toDate","formattedTimestamp","toISOString"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,2BAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAC,sBAAA,CAAAH,OAAA;AAkBA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,sBAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,2BAAA,GAAAP,OAAA;AAIA,IAAAQ,4BAAA,GAAAR,OAAA;AAGuC,SAAAG,uBAAAM,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AA1BhC,MAAMG,uBAAuB,GAAIC,MAAc,IAAa;EACjE,MAAMC,WAAW,GACfC,uBAAU,CAACC,GAAG,CAAC,QAAQ,CAAC,CAACH,MAAM,IAC9BI,gDAAoB,EAAEC,MAAM,EAAEC,GAAG,IAAI,CAAC,CAAC,IACvCF,gDAAoB,EAAEC,MAAM,EAAEE,MAAM,IAAI,CAAC,CAAC;EAE7C,OAAOC,IAAI,CAACC,IAAI,CAAET,MAAM,GAAGC,WAAW,GAAI,GAAG,CAAC,GAAG,GAAG;AACtD,CAAC;AAACS,OAAA,CAAAX,uBAAA,GAAAA,uBAAA;AAEK,MAAMY,mBAAmB,GAAGA,CAAA,KAAM;EACvC,MAAMC,kBAAkB,GAAGC,kBAAS,CAACC,SAAS,CAACC,GAAG,CAAC,CAAC,CAACC,MAAM,CAAC,CAAC;EAC7D,MAAMC,kBAAkB,GAAGL,kBAAkB,CAACM,WAAW,CAAC,CAAC;EAE3D,OAAOD,kBAAkB;AAC3B,CAAC;AAACP,OAAA,CAAAC,mBAAA,GAAAA,mBAAA"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { argbFromRgb, themeFromSourceColor
|
|
2
|
+
//@ts-ignore
|
|
3
|
+
} from '@material/material-color-utilities';
|
|
4
|
+
import camelCase from 'camelcase';
|
|
5
|
+
import Color from 'color';
|
|
6
|
+
const opacity = {
|
|
7
|
+
level1: 0.08,
|
|
8
|
+
level2: 0.12,
|
|
9
|
+
level3: 0.16,
|
|
10
|
+
level4: 0.38
|
|
11
|
+
};
|
|
12
|
+
const elevationLevels = [0.05, 0.08, 0.11, 0.12, 0.14];
|
|
13
|
+
const nonMaterialCore = ['elevation', 'shadow', 'scrim', 'inverseSurface', 'inverseOnSurface', 'surfaceDisabled', 'onSurfaceDisabled', 'outlineVariant', 'backdrop', 'inversePrimary'];
|
|
14
|
+
const argbThemeFromColor = (color, type = 'light') => {
|
|
15
|
+
return themeFromSourceColor(argbFromRgb(color.R, color.G, color.B)).schemes[type].toJSON();
|
|
16
|
+
};
|
|
17
|
+
const argbThemeToRgbTheme = theme => {
|
|
18
|
+
return Object.fromEntries(
|
|
19
|
+
//@ts-ignore
|
|
20
|
+
Object.entries(theme).map(([key, value]) => [key,
|
|
21
|
+
//@ts-ignore
|
|
22
|
+
Color(value).rgb().string()]));
|
|
23
|
+
};
|
|
24
|
+
const prepareSurfaceColors = argbTheme => {
|
|
25
|
+
const {
|
|
26
|
+
palettes
|
|
27
|
+
} = themeFromSourceColor(argbTheme.primary);
|
|
28
|
+
const surfaceDisabled = Color(argbTheme.onSurface).alpha(opacity.level2).rgb().string();
|
|
29
|
+
const onSurfaceDisabled = Color(argbTheme.onSurface).alpha(opacity.level4).rgb().string();
|
|
30
|
+
const backdrop = Color(palettes.neutralVariant.tone(20)).alpha(0.4).rgb().string();
|
|
31
|
+
return {
|
|
32
|
+
surfaceDisabled,
|
|
33
|
+
onSurfaceDisabled,
|
|
34
|
+
backdrop
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
const prepareElevations = argbTheme => {
|
|
38
|
+
const elevations = {
|
|
39
|
+
level0: 'transparent'
|
|
40
|
+
};
|
|
41
|
+
const {
|
|
42
|
+
primary,
|
|
43
|
+
surface
|
|
44
|
+
} = argbTheme;
|
|
45
|
+
for (let i = 0; i < elevationLevels.length; i++) {
|
|
46
|
+
elevations[`level${i + 1}`] = Color(surface).mix(Color(primary), Number(elevationLevels[i])).rgb().string();
|
|
47
|
+
}
|
|
48
|
+
return elevations;
|
|
49
|
+
};
|
|
50
|
+
export const getPreviewColors = theme => {
|
|
51
|
+
const preview = {
|
|
52
|
+
...theme
|
|
53
|
+
};
|
|
54
|
+
for (const key of nonMaterialCore) {
|
|
55
|
+
delete preview[key];
|
|
56
|
+
}
|
|
57
|
+
delete preview.elevation;
|
|
58
|
+
return Object.entries(preview);
|
|
59
|
+
};
|
|
60
|
+
export const getMatchingColor = (colorName, theme) => {
|
|
61
|
+
if (colorName === 'outline') {
|
|
62
|
+
return theme.surface;
|
|
63
|
+
}
|
|
64
|
+
if (colorName.startsWith('on')) {
|
|
65
|
+
const key = camelCase(colorName.slice(2));
|
|
66
|
+
return theme[key];
|
|
67
|
+
}
|
|
68
|
+
const key = `on${camelCase(colorName, {
|
|
69
|
+
pascalCase: true
|
|
70
|
+
})}`;
|
|
71
|
+
return theme[key];
|
|
72
|
+
};
|
|
73
|
+
export const prepareVariant = ({
|
|
74
|
+
primary,
|
|
75
|
+
secondary,
|
|
76
|
+
tertiary,
|
|
77
|
+
type
|
|
78
|
+
}) => {
|
|
79
|
+
const baseTheme = argbThemeFromColor(primary, type);
|
|
80
|
+
if (secondary) {
|
|
81
|
+
const secondaryTheme = argbThemeFromColor(secondary, type);
|
|
82
|
+
baseTheme.secondary = secondaryTheme.primary;
|
|
83
|
+
baseTheme.onSecondary = secondaryTheme.onPrimary;
|
|
84
|
+
baseTheme.secondaryContainer = secondaryTheme.primaryContainer;
|
|
85
|
+
baseTheme.onSecondaryContainer = secondaryTheme.onPrimaryContainer;
|
|
86
|
+
}
|
|
87
|
+
if (tertiary) {
|
|
88
|
+
const tertiaryTheme = argbThemeFromColor(tertiary, type);
|
|
89
|
+
baseTheme.tertiary = tertiaryTheme.primary;
|
|
90
|
+
baseTheme.onTertiary = tertiaryTheme.onPrimary;
|
|
91
|
+
baseTheme.tertiaryContainer = tertiaryTheme.primaryContainer;
|
|
92
|
+
baseTheme.onTertiaryContainer = tertiaryTheme.onPrimaryContainer;
|
|
93
|
+
}
|
|
94
|
+
const theme = argbThemeToRgbTheme(baseTheme);
|
|
95
|
+
const elevation = prepareElevations(baseTheme);
|
|
96
|
+
const surfaceColors = prepareSurfaceColors(baseTheme);
|
|
97
|
+
return {
|
|
98
|
+
...theme,
|
|
99
|
+
elevation,
|
|
100
|
+
...surfaceColors
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
export const createColorPalette = colors => {
|
|
104
|
+
const light = prepareVariant({
|
|
105
|
+
...colors,
|
|
106
|
+
type: 'light'
|
|
107
|
+
});
|
|
108
|
+
const dark = prepareVariant({
|
|
109
|
+
...colors,
|
|
110
|
+
type: 'dark'
|
|
111
|
+
});
|
|
112
|
+
return {
|
|
113
|
+
light,
|
|
114
|
+
dark
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
//# sourceMappingURL=colorPaletteGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["argbFromRgb","themeFromSourceColor","camelCase","Color","opacity","level1","level2","level3","level4","elevationLevels","nonMaterialCore","argbThemeFromColor","color","type","R","G","B","schemes","toJSON","argbThemeToRgbTheme","theme","Object","fromEntries","entries","map","key","value","rgb","string","prepareSurfaceColors","argbTheme","palettes","primary","surfaceDisabled","onSurface","alpha","onSurfaceDisabled","backdrop","neutralVariant","tone","prepareElevations","elevations","level0","surface","i","length","mix","Number","getPreviewColors","preview","elevation","getMatchingColor","colorName","startsWith","slice","pascalCase","prepareVariant","secondary","tertiary","baseTheme","secondaryTheme","onSecondary","onPrimary","secondaryContainer","primaryContainer","onSecondaryContainer","onPrimaryContainer","tertiaryTheme","onTertiary","tertiaryContainer","onTertiaryContainer","surfaceColors","createColorPalette","colors","light","dark"],"sourceRoot":"../../../src","sources":["utils/colorPaletteGenerator.ts"],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ export const getCurrentTimestamp = () => {
|
|
|
11
11
|
return formattedTimestamp;
|
|
12
12
|
};
|
|
13
13
|
export { analytics, Analytics } from './analytics';
|
|
14
|
+
export { createColorPalette } from './colorPaletteGenerator';
|
|
14
15
|
export { Currency } from './currency';
|
|
15
16
|
export { useMultiSnapBottomSheetRef } from './useMultiSnapBottomSheetRef';
|
|
16
17
|
export { useSingleSnapBottomSheetRef } from './useSingleSnapBottomSheetRef';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Dimensions","initialWindowMetrics","firestore","getPercentageFromHeight","height","totalHeight","get","insets","top","bottom","Math","ceil","getCurrentTimestamp","firestoreTimestamp","Timestamp","now","toDate","formattedTimestamp","toISOString","analytics","Analytics","Currency","useMultiSnapBottomSheetRef","useSingleSnapBottomSheetRef"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":"AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,oBAAoB,QAAQ,gCAAgC;AACrE,OAAOC,SAAS,MAAM,kCAAkC;AAExD,OAAO,MAAMC,uBAAuB,GAAIC,MAAc,IAAa;EACjE,MAAMC,WAAW,GACfL,UAAU,CAACM,GAAG,CAAC,QAAQ,CAAC,CAACF,MAAM,IAC9BH,oBAAoB,EAAEM,MAAM,EAAEC,GAAG,IAAI,CAAC,CAAC,IACvCP,oBAAoB,EAAEM,MAAM,EAAEE,MAAM,IAAI,CAAC,CAAC;EAE7C,OAAOC,IAAI,CAACC,IAAI,CAAEP,MAAM,GAAGC,WAAW,GAAI,GAAG,CAAC,GAAG,GAAG;AACtD,CAAC;AAED,OAAO,MAAMO,mBAAmB,GAAGA,CAAA,KAAM;EACvC,MAAMC,kBAAkB,GAAGX,SAAS,CAACY,SAAS,CAACC,GAAG,CAAC,CAAC,CAACC,MAAM,CAAC,CAAC;EAC7D,MAAMC,kBAAkB,GAAGJ,kBAAkB,CAACK,WAAW,CAAC,CAAC;EAE3D,OAAOD,kBAAkB;AAC3B,CAAC;AAED,SAASE,SAAS,EAAEC,SAAS,QAAQ,aAAa;AAClD,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAEEC,0BAA0B,QACrB,8BAA8B;AACrC,SAEEC,2BAA2B,QACtB,+BAA+B"}
|
|
1
|
+
{"version":3,"names":["Dimensions","initialWindowMetrics","firestore","getPercentageFromHeight","height","totalHeight","get","insets","top","bottom","Math","ceil","getCurrentTimestamp","firestoreTimestamp","Timestamp","now","toDate","formattedTimestamp","toISOString","analytics","Analytics","createColorPalette","Currency","useMultiSnapBottomSheetRef","useSingleSnapBottomSheetRef"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":"AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,oBAAoB,QAAQ,gCAAgC;AACrE,OAAOC,SAAS,MAAM,kCAAkC;AAExD,OAAO,MAAMC,uBAAuB,GAAIC,MAAc,IAAa;EACjE,MAAMC,WAAW,GACfL,UAAU,CAACM,GAAG,CAAC,QAAQ,CAAC,CAACF,MAAM,IAC9BH,oBAAoB,EAAEM,MAAM,EAAEC,GAAG,IAAI,CAAC,CAAC,IACvCP,oBAAoB,EAAEM,MAAM,EAAEE,MAAM,IAAI,CAAC,CAAC;EAE7C,OAAOC,IAAI,CAACC,IAAI,CAAEP,MAAM,GAAGC,WAAW,GAAI,GAAG,CAAC,GAAG,GAAG;AACtD,CAAC;AAED,OAAO,MAAMO,mBAAmB,GAAGA,CAAA,KAAM;EACvC,MAAMC,kBAAkB,GAAGX,SAAS,CAACY,SAAS,CAACC,GAAG,CAAC,CAAC,CAACC,MAAM,CAAC,CAAC;EAC7D,MAAMC,kBAAkB,GAAGJ,kBAAkB,CAACK,WAAW,CAAC,CAAC;EAE3D,OAAOD,kBAAkB;AAC3B,CAAC;AAED,SAASE,SAAS,EAAEC,SAAS,QAAQ,aAAa;AAClD,SAASC,kBAAkB,QAAQ,yBAAyB;AAC5D,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAEEC,0BAA0B,QACrB,8BAA8B;AACrC,SAEEC,2BAA2B,QACtB,+BAA+B"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
type RGBColorList = {
|
|
2
|
+
primary: {
|
|
3
|
+
R: number;
|
|
4
|
+
B: number;
|
|
5
|
+
G: number;
|
|
6
|
+
};
|
|
7
|
+
secondary?: {
|
|
8
|
+
R: number;
|
|
9
|
+
B: number;
|
|
10
|
+
G: number;
|
|
11
|
+
};
|
|
12
|
+
tertiary?: {
|
|
13
|
+
R: number;
|
|
14
|
+
B: number;
|
|
15
|
+
G: number;
|
|
16
|
+
};
|
|
17
|
+
custom?: [string, string][];
|
|
18
|
+
};
|
|
19
|
+
type CustomTheme = RGBColorList & {
|
|
20
|
+
type: 'light' | 'dark';
|
|
21
|
+
};
|
|
22
|
+
export declare const getPreviewColors: (theme: Record<string, any>) => [string, any][];
|
|
23
|
+
export declare const getMatchingColor: (colorName: string, theme: Record<string, any>) => any;
|
|
24
|
+
export declare const prepareVariant: ({ primary, secondary, tertiary, type, }: CustomTheme) => {
|
|
25
|
+
surfaceDisabled: string;
|
|
26
|
+
onSurfaceDisabled: string;
|
|
27
|
+
backdrop: string;
|
|
28
|
+
elevation: Record<string, string>;
|
|
29
|
+
primary: string;
|
|
30
|
+
primaryContainer: string;
|
|
31
|
+
secondary: string;
|
|
32
|
+
secondaryContainer: string;
|
|
33
|
+
tertiary: string;
|
|
34
|
+
tertiaryContainer: string;
|
|
35
|
+
surface: string;
|
|
36
|
+
surfaceVariant: string;
|
|
37
|
+
background: string;
|
|
38
|
+
error: string;
|
|
39
|
+
errorContainer: string;
|
|
40
|
+
onPrimary: string;
|
|
41
|
+
onPrimaryContainer: string;
|
|
42
|
+
onSecondary: string;
|
|
43
|
+
onSecondaryContainer: string;
|
|
44
|
+
onTertiary: string;
|
|
45
|
+
onTertiaryContainer: string;
|
|
46
|
+
onSurface: string;
|
|
47
|
+
onSurfaceVariant: string;
|
|
48
|
+
onError: string;
|
|
49
|
+
onErrorContainer: string;
|
|
50
|
+
onBackground: string;
|
|
51
|
+
outline: string;
|
|
52
|
+
outlineVariant: string;
|
|
53
|
+
inverseSurface: string;
|
|
54
|
+
inverseOnSurface: string;
|
|
55
|
+
inversePrimary: string;
|
|
56
|
+
shadow: string;
|
|
57
|
+
scrim: string;
|
|
58
|
+
};
|
|
59
|
+
export declare const createColorPalette: (colors: RGBColorList) => {
|
|
60
|
+
light: {
|
|
61
|
+
surfaceDisabled: string;
|
|
62
|
+
onSurfaceDisabled: string;
|
|
63
|
+
backdrop: string;
|
|
64
|
+
elevation: Record<string, string>;
|
|
65
|
+
primary: string;
|
|
66
|
+
primaryContainer: string;
|
|
67
|
+
secondary: string;
|
|
68
|
+
secondaryContainer: string;
|
|
69
|
+
tertiary: string;
|
|
70
|
+
tertiaryContainer: string;
|
|
71
|
+
surface: string;
|
|
72
|
+
surfaceVariant: string;
|
|
73
|
+
background: string;
|
|
74
|
+
error: string;
|
|
75
|
+
errorContainer: string;
|
|
76
|
+
onPrimary: string;
|
|
77
|
+
onPrimaryContainer: string;
|
|
78
|
+
onSecondary: string;
|
|
79
|
+
onSecondaryContainer: string;
|
|
80
|
+
onTertiary: string;
|
|
81
|
+
onTertiaryContainer: string;
|
|
82
|
+
onSurface: string;
|
|
83
|
+
onSurfaceVariant: string;
|
|
84
|
+
onError: string;
|
|
85
|
+
onErrorContainer: string;
|
|
86
|
+
onBackground: string;
|
|
87
|
+
outline: string;
|
|
88
|
+
outlineVariant: string;
|
|
89
|
+
inverseSurface: string;
|
|
90
|
+
inverseOnSurface: string;
|
|
91
|
+
inversePrimary: string;
|
|
92
|
+
shadow: string;
|
|
93
|
+
scrim: string;
|
|
94
|
+
};
|
|
95
|
+
dark: {
|
|
96
|
+
surfaceDisabled: string;
|
|
97
|
+
onSurfaceDisabled: string;
|
|
98
|
+
backdrop: string;
|
|
99
|
+
elevation: Record<string, string>;
|
|
100
|
+
primary: string;
|
|
101
|
+
primaryContainer: string;
|
|
102
|
+
secondary: string;
|
|
103
|
+
secondaryContainer: string;
|
|
104
|
+
tertiary: string;
|
|
105
|
+
tertiaryContainer: string;
|
|
106
|
+
surface: string;
|
|
107
|
+
surfaceVariant: string;
|
|
108
|
+
background: string;
|
|
109
|
+
error: string;
|
|
110
|
+
errorContainer: string;
|
|
111
|
+
onPrimary: string;
|
|
112
|
+
onPrimaryContainer: string;
|
|
113
|
+
onSecondary: string;
|
|
114
|
+
onSecondaryContainer: string;
|
|
115
|
+
onTertiary: string;
|
|
116
|
+
onTertiaryContainer: string;
|
|
117
|
+
onSurface: string;
|
|
118
|
+
onSurfaceVariant: string;
|
|
119
|
+
onError: string;
|
|
120
|
+
onErrorContainer: string;
|
|
121
|
+
onBackground: string;
|
|
122
|
+
outline: string;
|
|
123
|
+
outlineVariant: string;
|
|
124
|
+
inverseSurface: string;
|
|
125
|
+
inverseOnSurface: string;
|
|
126
|
+
inversePrimary: string;
|
|
127
|
+
shadow: string;
|
|
128
|
+
scrim: string;
|
|
129
|
+
};
|
|
130
|
+
};
|
|
131
|
+
export {};
|
|
132
|
+
//# sourceMappingURL=colorPaletteGenerator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colorPaletteGenerator.d.ts","sourceRoot":"","sources":["../../../../src/utils/colorPaletteGenerator.ts"],"names":[],"mappings":"AAWA,KAAK,YAAY,GAAG;IAClB,OAAO,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,SAAS,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;CAC7B,CAAC;AAEF,KAAK,WAAW,GAAG,YAAY,GAAG;IAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAAA;CAAE,CAAC;AAsF7D,eAAO,MAAM,gBAAgB,UAAW,OAAO,MAAM,EAAE,GAAG,CAAC,oBAU1D,CAAC;AAEF,eAAO,MAAM,gBAAgB,cAChB,MAAM,SACV,OAAO,MAAM,EAAE,GAAG,CAAC,QAa3B,CAAC;AAEF,eAAO,MAAM,cAAc,4CAKxB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Bb,CAAC;AAEF,eAAO,MAAM,kBAAkB,WAAY,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYtD,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare const getPercentageFromHeight: (height: number) => string;
|
|
2
2
|
export declare const getCurrentTimestamp: () => any;
|
|
3
3
|
export { analytics, Analytics } from './analytics';
|
|
4
|
+
export { createColorPalette } from './colorPaletteGenerator';
|
|
4
5
|
export { Currency } from './currency';
|
|
5
6
|
export { type TMultiSnapBottomSheetRef, useMultiSnapBottomSheetRef, } from './useMultiSnapBottomSheetRef';
|
|
6
7
|
export { type TSingleSnapBottomSheetRef, useSingleSnapBottomSheetRef, } from './useSingleSnapBottomSheetRef';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,uBAAuB,WAAY,MAAM,KAAG,MAOxD,CAAC;AAEF,eAAO,MAAM,mBAAmB,WAK/B,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EACL,KAAK,wBAAwB,EAC7B,0BAA0B,GAC3B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,KAAK,yBAAyB,EAC9B,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,uBAAuB,WAAY,MAAM,KAAG,MAOxD,CAAC;AAEF,eAAO,MAAM,mBAAmB,WAK/B,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EACL,KAAK,wBAAwB,EAC7B,0BAA0B,GAC3B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,KAAK,yBAAyB,EAC9B,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kiosinc/commons-rn",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.98",
|
|
4
4
|
"description": "Common Code",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -189,6 +189,7 @@
|
|
|
189
189
|
"@gorhom/bottom-sheet": "^4.6.1",
|
|
190
190
|
"@hookform/resolvers": "^3.3.2",
|
|
191
191
|
"@kiosinc/commons-types": "^0.0.17",
|
|
192
|
+
"@material/material-color-utilities": "^0.3.0",
|
|
192
193
|
"@react-native-firebase/firestore": "^20.3.0",
|
|
193
194
|
"@react-native-firebase/messaging": "^20.3.0",
|
|
194
195
|
"@react-native-firebase/storage": "^20.3.0",
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import {
|
|
2
|
+
argbFromRgb,
|
|
3
|
+
themeFromSourceColor,
|
|
4
|
+
//@ts-ignore
|
|
5
|
+
} from '@material/material-color-utilities';
|
|
6
|
+
import camelCase from 'camelcase';
|
|
7
|
+
import Color from 'color';
|
|
8
|
+
|
|
9
|
+
type ARGBTheme = ReturnType<typeof argbThemeFromColor>;
|
|
10
|
+
type CSSTheme = Record<keyof ARGBTheme, string>;
|
|
11
|
+
|
|
12
|
+
type RGBColorList = {
|
|
13
|
+
primary: { R: number; B: number; G: number };
|
|
14
|
+
secondary?: { R: number; B: number; G: number };
|
|
15
|
+
tertiary?: { R: number; B: number; G: number };
|
|
16
|
+
custom?: [string, string][];
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
type CustomTheme = RGBColorList & { type: 'light' | 'dark' };
|
|
20
|
+
|
|
21
|
+
const opacity = {
|
|
22
|
+
level1: 0.08,
|
|
23
|
+
level2: 0.12,
|
|
24
|
+
level3: 0.16,
|
|
25
|
+
level4: 0.38,
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const elevationLevels = [0.05, 0.08, 0.11, 0.12, 0.14];
|
|
29
|
+
|
|
30
|
+
const nonMaterialCore = [
|
|
31
|
+
'elevation',
|
|
32
|
+
'shadow',
|
|
33
|
+
'scrim',
|
|
34
|
+
'inverseSurface',
|
|
35
|
+
'inverseOnSurface',
|
|
36
|
+
'surfaceDisabled',
|
|
37
|
+
'onSurfaceDisabled',
|
|
38
|
+
'outlineVariant',
|
|
39
|
+
'backdrop',
|
|
40
|
+
'inversePrimary',
|
|
41
|
+
];
|
|
42
|
+
|
|
43
|
+
const argbThemeFromColor = (
|
|
44
|
+
color: { R: number; B: number; G: number },
|
|
45
|
+
type: 'light' | 'dark' = 'light'
|
|
46
|
+
) => {
|
|
47
|
+
return themeFromSourceColor(argbFromRgb(color.R, color.G, color.B)).schemes[
|
|
48
|
+
type
|
|
49
|
+
].toJSON();
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
const argbThemeToRgbTheme = (theme: ARGBTheme) => {
|
|
53
|
+
return Object.fromEntries(
|
|
54
|
+
//@ts-ignore
|
|
55
|
+
Object.entries(theme).map(([key, value]) => [
|
|
56
|
+
key,
|
|
57
|
+
//@ts-ignore
|
|
58
|
+
Color(value).rgb().string(),
|
|
59
|
+
])
|
|
60
|
+
) as CSSTheme;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const prepareSurfaceColors = (argbTheme: ARGBTheme) => {
|
|
64
|
+
const { palettes } = themeFromSourceColor(argbTheme.primary);
|
|
65
|
+
|
|
66
|
+
const surfaceDisabled = Color(argbTheme.onSurface)
|
|
67
|
+
.alpha(opacity.level2)
|
|
68
|
+
.rgb()
|
|
69
|
+
.string();
|
|
70
|
+
|
|
71
|
+
const onSurfaceDisabled = Color(argbTheme.onSurface)
|
|
72
|
+
.alpha(opacity.level4)
|
|
73
|
+
.rgb()
|
|
74
|
+
.string();
|
|
75
|
+
|
|
76
|
+
const backdrop = Color(palettes.neutralVariant.tone(20))
|
|
77
|
+
.alpha(0.4)
|
|
78
|
+
.rgb()
|
|
79
|
+
.string();
|
|
80
|
+
|
|
81
|
+
return {
|
|
82
|
+
surfaceDisabled,
|
|
83
|
+
onSurfaceDisabled,
|
|
84
|
+
backdrop,
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
const prepareElevations = (argbTheme: ARGBTheme) => {
|
|
89
|
+
const elevations: Record<string, string> = {
|
|
90
|
+
level0: 'transparent',
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
const { primary, surface } = argbTheme;
|
|
94
|
+
|
|
95
|
+
for (let i = 0; i < elevationLevels.length; i++) {
|
|
96
|
+
elevations[`level${i + 1}`] = Color(surface)
|
|
97
|
+
.mix(Color(primary), Number(elevationLevels[i]))
|
|
98
|
+
.rgb()
|
|
99
|
+
.string();
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return elevations;
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
export const getPreviewColors = (theme: Record<string, any>) => {
|
|
106
|
+
const preview = { ...theme };
|
|
107
|
+
|
|
108
|
+
for (const key of nonMaterialCore) {
|
|
109
|
+
delete preview[key];
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
delete preview.elevation;
|
|
113
|
+
|
|
114
|
+
return Object.entries(preview);
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
export const getMatchingColor = (
|
|
118
|
+
colorName: string,
|
|
119
|
+
theme: Record<string, any>
|
|
120
|
+
) => {
|
|
121
|
+
if (colorName === 'outline') {
|
|
122
|
+
return theme.surface;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
if (colorName.startsWith('on')) {
|
|
126
|
+
const key = camelCase(colorName.slice(2));
|
|
127
|
+
return theme[key];
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
const key = `on${camelCase(colorName, { pascalCase: true })}`;
|
|
131
|
+
return theme[key];
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
export const prepareVariant = ({
|
|
135
|
+
primary,
|
|
136
|
+
secondary,
|
|
137
|
+
tertiary,
|
|
138
|
+
type,
|
|
139
|
+
}: CustomTheme) => {
|
|
140
|
+
const baseTheme = argbThemeFromColor(primary, type);
|
|
141
|
+
|
|
142
|
+
if (secondary) {
|
|
143
|
+
const secondaryTheme = argbThemeFromColor(secondary, type);
|
|
144
|
+
baseTheme.secondary = secondaryTheme.primary;
|
|
145
|
+
baseTheme.onSecondary = secondaryTheme.onPrimary;
|
|
146
|
+
baseTheme.secondaryContainer = secondaryTheme.primaryContainer;
|
|
147
|
+
baseTheme.onSecondaryContainer = secondaryTheme.onPrimaryContainer;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
if (tertiary) {
|
|
151
|
+
const tertiaryTheme = argbThemeFromColor(tertiary, type);
|
|
152
|
+
baseTheme.tertiary = tertiaryTheme.primary;
|
|
153
|
+
baseTheme.onTertiary = tertiaryTheme.onPrimary;
|
|
154
|
+
baseTheme.tertiaryContainer = tertiaryTheme.primaryContainer;
|
|
155
|
+
baseTheme.onTertiaryContainer = tertiaryTheme.onPrimaryContainer;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
const theme = argbThemeToRgbTheme(baseTheme);
|
|
159
|
+
const elevation = prepareElevations(baseTheme);
|
|
160
|
+
const surfaceColors = prepareSurfaceColors(baseTheme);
|
|
161
|
+
|
|
162
|
+
return {
|
|
163
|
+
...theme,
|
|
164
|
+
elevation,
|
|
165
|
+
...surfaceColors,
|
|
166
|
+
};
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
export const createColorPalette = (colors: RGBColorList) => {
|
|
170
|
+
const light = prepareVariant({
|
|
171
|
+
...colors,
|
|
172
|
+
type: 'light',
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
const dark = prepareVariant({
|
|
176
|
+
...colors,
|
|
177
|
+
type: 'dark',
|
|
178
|
+
});
|
|
179
|
+
|
|
180
|
+
return { light, dark };
|
|
181
|
+
};
|
package/src/utils/index.ts
CHANGED