@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.
@@ -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":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,OAAA;AAKA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAD,sBAAA,CAAAF,OAAA;AAA0B,SAAAE,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAc1B,MAAMG,OAAO,GAAG;EACdC,MAAM,EAAE,IAAI;EACZC,MAAM,EAAE,IAAI;EACZC,MAAM,EAAE,IAAI;EACZC,MAAM,EAAE;AACV,CAAC;AAED,MAAMC,eAAe,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAEtD,MAAMC,eAAe,GAAG,CACtB,WAAW,EACX,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,EACV,gBAAgB,CACjB;AAED,MAAMC,kBAAkB,GAAGA,CACzBC,KAA0C,EAC1CC,IAAsB,GAAG,OAAO,KAC7B;EACH,OAAO,IAAAC,4CAAoB,EAAC,IAAAC,mCAAW,EAACH,KAAK,CAACI,CAAC,EAAEJ,KAAK,CAACK,CAAC,EAAEL,KAAK,CAACM,CAAC,CAAC,CAAC,CAACC,OAAO,CACzEN,IAAI,CACL,CAACO,MAAM,CAAC,CAAC;AACZ,CAAC;AAED,MAAMC,mBAAmB,GAAIC,KAAgB,IAAK;EAChD,OAAOC,MAAM,CAACC,WAAW;EACvB;EACAD,MAAM,CAACE,OAAO,CAACH,KAAK,CAAC,CAACI,GAAG,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK,CAC1CD,GAAG;EACH;EACA,IAAAE,cAAK,EAACD,KAAK,CAAC,CAACE,GAAG,CAAC,CAAC,CAACC,MAAM,CAAC,CAAC,CAC5B,CACH,CAAC;AACH,CAAC;AAED,MAAMC,oBAAoB,GAAIC,SAAoB,IAAK;EACrD,MAAM;IAAEC;EAAS,CAAC,GAAG,IAAApB,4CAAoB,EAACmB,SAAS,CAACE,OAAO,CAAC;EAE5D,MAAMC,eAAe,GAAG,IAAAP,cAAK,EAACI,SAAS,CAACI,SAAS,CAAC,CAC/CC,KAAK,CAAClC,OAAO,CAACE,MAAM,CAAC,CACrBwB,GAAG,CAAC,CAAC,CACLC,MAAM,CAAC,CAAC;EAEX,MAAMQ,iBAAiB,GAAG,IAAAV,cAAK,EAACI,SAAS,CAACI,SAAS,CAAC,CACjDC,KAAK,CAAClC,OAAO,CAACI,MAAM,CAAC,CACrBsB,GAAG,CAAC,CAAC,CACLC,MAAM,CAAC,CAAC;EAEX,MAAMS,QAAQ,GAAG,IAAAX,cAAK,EAACK,QAAQ,CAACO,cAAc,CAACC,IAAI,CAAC,EAAE,CAAC,CAAC,CACrDJ,KAAK,CAAC,GAAG,CAAC,CACVR,GAAG,CAAC,CAAC,CACLC,MAAM,CAAC,CAAC;EAEX,OAAO;IACLK,eAAe;IACfG,iBAAiB;IACjBC;EACF,CAAC;AACH,CAAC;AAED,MAAMG,iBAAiB,GAAIV,SAAoB,IAAK;EAClD,MAAMW,UAAkC,GAAG;IACzCC,MAAM,EAAE;EACV,CAAC;EAED,MAAM;IAAEV,OAAO;IAAEW;EAAQ,CAAC,GAAGb,SAAS;EAEtC,KAAK,IAAIc,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGtC,eAAe,CAACuC,MAAM,EAAED,CAAC,EAAE,EAAE;IAC/CH,UAAU,CAAE,QAAOG,CAAC,GAAG,CAAE,EAAC,CAAC,GAAG,IAAAlB,cAAK,EAACiB,OAAO,CAAC,CACzCG,GAAG,CAAC,IAAApB,cAAK,EAACM,OAAO,CAAC,EAAEe,MAAM,CAACzC,eAAe,CAACsC,CAAC,CAAC,CAAC,CAAC,CAC/CjB,GAAG,CAAC,CAAC,CACLC,MAAM,CAAC,CAAC;EACb;EAEA,OAAOa,UAAU;AACnB,CAAC;AAEM,MAAMO,gBAAgB,GAAI7B,KAA0B,IAAK;EAC9D,MAAM8B,OAAO,GAAG;IAAE,GAAG9B;EAAM,CAAC;EAE5B,KAAK,MAAMK,GAAG,IAAIjB,eAAe,EAAE;IACjC,OAAO0C,OAAO,CAACzB,GAAG,CAAC;EACrB;EAEA,OAAOyB,OAAO,CAACC,SAAS;EAExB,OAAO9B,MAAM,CAACE,OAAO,CAAC2B,OAAO,CAAC;AAChC,CAAC;AAACE,OAAA,CAAAH,gBAAA,GAAAA,gBAAA;AAEK,MAAMI,gBAAgB,GAAGA,CAC9BC,SAAiB,EACjBlC,KAA0B,KACvB;EACH,IAAIkC,SAAS,KAAK,SAAS,EAAE;IAC3B,OAAOlC,KAAK,CAACwB,OAAO;EACtB;EAEA,IAAIU,SAAS,CAACC,UAAU,CAAC,IAAI,CAAC,EAAE;IAC9B,MAAM9B,GAAG,GAAG,IAAA+B,kBAAS,EAACF,SAAS,CAACG,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,OAAOrC,KAAK,CAACK,GAAG,CAAC;EACnB;EAEA,MAAMA,GAAG,GAAI,KAAI,IAAA+B,kBAAS,EAACF,SAAS,EAAE;IAAEI,UAAU,EAAE;EAAK,CAAC,CAAE,EAAC;EAC7D,OAAOtC,KAAK,CAACK,GAAG,CAAC;AACnB,CAAC;AAAC2B,OAAA,CAAAC,gBAAA,GAAAA,gBAAA;AAEK,MAAMM,cAAc,GAAGA,CAAC;EAC7B1B,OAAO;EACP2B,SAAS;EACTC,QAAQ;EACRlD;AACW,CAAC,KAAK;EACjB,MAAMmD,SAAS,GAAGrD,kBAAkB,CAACwB,OAAO,EAAEtB,IAAI,CAAC;EAEnD,IAAIiD,SAAS,EAAE;IACb,MAAMG,cAAc,GAAGtD,kBAAkB,CAACmD,SAAS,EAAEjD,IAAI,CAAC;IAC1DmD,SAAS,CAACF,SAAS,GAAGG,cAAc,CAAC9B,OAAO;IAC5C6B,SAAS,CAACE,WAAW,GAAGD,cAAc,CAACE,SAAS;IAChDH,SAAS,CAACI,kBAAkB,GAAGH,cAAc,CAACI,gBAAgB;IAC9DL,SAAS,CAACM,oBAAoB,GAAGL,cAAc,CAACM,kBAAkB;EACpE;EAEA,IAAIR,QAAQ,EAAE;IACZ,MAAMS,aAAa,GAAG7D,kBAAkB,CAACoD,QAAQ,EAAElD,IAAI,CAAC;IACxDmD,SAAS,CAACD,QAAQ,GAAGS,aAAa,CAACrC,OAAO;IAC1C6B,SAAS,CAACS,UAAU,GAAGD,aAAa,CAACL,SAAS;IAC9CH,SAAS,CAACU,iBAAiB,GAAGF,aAAa,CAACH,gBAAgB;IAC5DL,SAAS,CAACW,mBAAmB,GAAGH,aAAa,CAACD,kBAAkB;EAClE;EAEA,MAAMjD,KAAK,GAAGD,mBAAmB,CAAC2C,SAAS,CAAC;EAC5C,MAAMX,SAAS,GAAGV,iBAAiB,CAACqB,SAAS,CAAC;EAC9C,MAAMY,aAAa,GAAG5C,oBAAoB,CAACgC,SAAS,CAAC;EAErD,OAAO;IACL,GAAG1C,KAAK;IACR+B,SAAS;IACT,GAAGuB;EACL,CAAC;AACH,CAAC;AAACtB,OAAA,CAAAO,cAAA,GAAAA,cAAA;AAEK,MAAMgB,kBAAkB,GAAIC,MAAoB,IAAK;EAC1D,MAAMC,KAAK,GAAGlB,cAAc,CAAC;IAC3B,GAAGiB,MAAM;IACTjE,IAAI,EAAE;EACR,CAAC,CAAC;EAEF,MAAMmE,IAAI,GAAGnB,cAAc,CAAC;IAC1B,GAAGiB,MAAM;IACTjE,IAAI,EAAE;EACR,CAAC,CAAC;EAEF,OAAO;IAAEkE,KAAK;IAAEC;EAAK,CAAC;AACxB,CAAC;AAAC1B,OAAA,CAAAuB,kBAAA,GAAAA,kBAAA"}
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,2BAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAC,sBAAA,CAAAH,OAAA;AAkBA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AACA,IAAAM,2BAAA,GAAAN,OAAA;AAIA,IAAAO,4BAAA,GAAAP,OAAA;AAGuC,SAAAG,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAzBhC,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"}
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.97",
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
+ };
@@ -19,6 +19,7 @@ export const getCurrentTimestamp = () => {
19
19
  };
20
20
 
21
21
  export { analytics, Analytics } from './analytics';
22
+ export { createColorPalette } from './colorPaletteGenerator';
22
23
  export { Currency } from './currency';
23
24
  export {
24
25
  type TMultiSnapBottomSheetRef,