@vitality-ds/system-react-native 4.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/dist/Provider/index.js +23 -0
  2. package/dist/Provider/types.js +1 -0
  3. package/dist/ThemeProvider/constants.js +22 -0
  4. package/dist/ThemeProvider/hooks/useTheme.js +47 -0
  5. package/dist/ThemeProvider/index.js +29 -0
  6. package/dist/ThemeProvider/logic/getSavedTheme.js +49 -0
  7. package/dist/ThemeProvider/logic/index.js +13 -0
  8. package/dist/ThemeProvider/logic/setInitialState.js +46 -0
  9. package/dist/ThemeProvider/logic/setSavedTheme.js +20 -0
  10. package/dist/ThemeProvider/types.js +1 -0
  11. package/dist/esm/Provider/index.js +16 -0
  12. package/dist/esm/Provider/types.js +1 -0
  13. package/dist/esm/ThemeProvider/constants.js +16 -0
  14. package/dist/esm/ThemeProvider/hooks/useTheme.js +40 -0
  15. package/dist/esm/ThemeProvider/index.js +19 -0
  16. package/dist/esm/ThemeProvider/logic/getSavedTheme.js +42 -0
  17. package/dist/esm/ThemeProvider/logic/index.js +2 -0
  18. package/dist/esm/ThemeProvider/logic/setInitialState.js +39 -0
  19. package/dist/esm/ThemeProvider/logic/setSavedTheme.js +13 -0
  20. package/dist/esm/ThemeProvider/types.js +1 -0
  21. package/dist/esm/exclude-types.js +1 -0
  22. package/dist/esm/index.js +6 -0
  23. package/dist/esm/stitches.config.js +32 -0
  24. package/dist/esm/types.js +1 -0
  25. package/dist/exclude-types.js +1 -0
  26. package/dist/index.js +95 -0
  27. package/dist/stitches.config.js +38 -0
  28. package/dist/system-react-native/src/Provider/index.d.ts +7 -0
  29. package/dist/system-react-native/src/Provider/index.d.ts.map +1 -0
  30. package/dist/system-react-native/src/Provider/types.d.ts +8 -0
  31. package/dist/system-react-native/src/Provider/types.d.ts.map +1 -0
  32. package/dist/system-react-native/src/ThemeProvider/constants.d.ts +6 -0
  33. package/dist/system-react-native/src/ThemeProvider/constants.d.ts.map +1 -0
  34. package/dist/system-react-native/src/ThemeProvider/hooks/useTheme.d.ts +4 -0
  35. package/dist/system-react-native/src/ThemeProvider/hooks/useTheme.d.ts.map +1 -0
  36. package/dist/system-react-native/src/ThemeProvider/index.d.ts +6 -0
  37. package/dist/system-react-native/src/ThemeProvider/index.d.ts.map +1 -0
  38. package/dist/system-react-native/src/ThemeProvider/logic/getSavedTheme.d.ts +4 -0
  39. package/dist/system-react-native/src/ThemeProvider/logic/getSavedTheme.d.ts.map +1 -0
  40. package/dist/system-react-native/src/ThemeProvider/logic/index.d.ts +2 -0
  41. package/dist/system-react-native/src/ThemeProvider/logic/index.d.ts.map +1 -0
  42. package/dist/system-react-native/src/ThemeProvider/logic/setInitialState.d.ts +3 -0
  43. package/dist/system-react-native/src/ThemeProvider/logic/setInitialState.d.ts.map +1 -0
  44. package/dist/system-react-native/src/ThemeProvider/logic/setSavedTheme.d.ts +4 -0
  45. package/dist/system-react-native/src/ThemeProvider/logic/setSavedTheme.d.ts.map +1 -0
  46. package/dist/system-react-native/src/ThemeProvider/types.d.ts +15 -0
  47. package/dist/system-react-native/src/ThemeProvider/types.d.ts.map +1 -0
  48. package/dist/system-react-native/src/exclude-types.d.ts +27 -0
  49. package/dist/system-react-native/src/exclude-types.d.ts.map +1 -0
  50. package/dist/system-react-native/src/index.d.ts +9 -0
  51. package/dist/system-react-native/src/index.d.ts.map +1 -0
  52. package/dist/system-react-native/src/stitches.config.d.ts +2216 -0
  53. package/dist/system-react-native/src/stitches.config.d.ts.map +1 -0
  54. package/dist/system-react-native/src/types.d.ts +12 -0
  55. package/dist/system-react-native/src/types.d.ts.map +1 -0
  56. package/dist/tokens/src/Color/helpers/constants.d.ts +46 -0
  57. package/dist/tokens/src/Color/helpers/constants.d.ts.map +1 -0
  58. package/dist/tokens/src/Color/helpers/generateColorData.d.ts +5 -0
  59. package/dist/tokens/src/Color/helpers/generateColorData.d.ts.map +1 -0
  60. package/dist/tokens/src/Color/helpers/getColorScaleFromThemeObject.d.ts +4 -0
  61. package/dist/tokens/src/Color/helpers/getColorScaleFromThemeObject.d.ts.map +1 -0
  62. package/dist/tokens/src/Color/helpers/getColorScaleValueByUseCase.d.ts +4 -0
  63. package/dist/tokens/src/Color/helpers/getColorScaleValueByUseCase.d.ts.map +1 -0
  64. package/dist/tokens/src/Color/helpers/getUseCasesByStep.d.ts +4 -0
  65. package/dist/tokens/src/Color/helpers/getUseCasesByStep.d.ts.map +1 -0
  66. package/dist/tokens/src/Color/helpers/index.d.ts +5 -0
  67. package/dist/tokens/src/Color/helpers/index.d.ts.map +1 -0
  68. package/dist/tokens/src/Color/index.d.ts +6 -0
  69. package/dist/tokens/src/Color/index.d.ts.map +1 -0
  70. package/dist/tokens/src/Color/scales/dark/blue.d.ts +4 -0
  71. package/dist/tokens/src/Color/scales/dark/blue.d.ts.map +1 -0
  72. package/dist/tokens/src/Color/scales/dark/cyan.d.ts +4 -0
  73. package/dist/tokens/src/Color/scales/dark/cyan.d.ts.map +1 -0
  74. package/dist/tokens/src/Color/scales/dark/green.d.ts +4 -0
  75. package/dist/tokens/src/Color/scales/dark/green.d.ts.map +1 -0
  76. package/dist/tokens/src/Color/scales/dark/grey.d.ts +4 -0
  77. package/dist/tokens/src/Color/scales/dark/grey.d.ts.map +1 -0
  78. package/dist/tokens/src/Color/scales/dark/greyA.d.ts +4 -0
  79. package/dist/tokens/src/Color/scales/dark/greyA.d.ts.map +1 -0
  80. package/dist/tokens/src/Color/scales/dark/index.d.ts +10 -0
  81. package/dist/tokens/src/Color/scales/dark/index.d.ts.map +1 -0
  82. package/dist/tokens/src/Color/scales/dark/orange.d.ts +4 -0
  83. package/dist/tokens/src/Color/scales/dark/orange.d.ts.map +1 -0
  84. package/dist/tokens/src/Color/scales/dark/pink.d.ts +4 -0
  85. package/dist/tokens/src/Color/scales/dark/pink.d.ts.map +1 -0
  86. package/dist/tokens/src/Color/scales/dark/red.d.ts +4 -0
  87. package/dist/tokens/src/Color/scales/dark/red.d.ts.map +1 -0
  88. package/dist/tokens/src/Color/scales/dark/yellow.d.ts +4 -0
  89. package/dist/tokens/src/Color/scales/dark/yellow.d.ts.map +1 -0
  90. package/dist/tokens/src/Color/scales/index.d.ts +4 -0
  91. package/dist/tokens/src/Color/scales/index.d.ts.map +1 -0
  92. package/dist/tokens/src/Color/scales/light/blue.d.ts +4 -0
  93. package/dist/tokens/src/Color/scales/light/blue.d.ts.map +1 -0
  94. package/dist/tokens/src/Color/scales/light/cyan.d.ts +4 -0
  95. package/dist/tokens/src/Color/scales/light/cyan.d.ts.map +1 -0
  96. package/dist/tokens/src/Color/scales/light/green.d.ts +4 -0
  97. package/dist/tokens/src/Color/scales/light/green.d.ts.map +1 -0
  98. package/dist/tokens/src/Color/scales/light/grey.d.ts +4 -0
  99. package/dist/tokens/src/Color/scales/light/grey.d.ts.map +1 -0
  100. package/dist/tokens/src/Color/scales/light/greyA.d.ts +4 -0
  101. package/dist/tokens/src/Color/scales/light/greyA.d.ts.map +1 -0
  102. package/dist/tokens/src/Color/scales/light/index.d.ts +10 -0
  103. package/dist/tokens/src/Color/scales/light/index.d.ts.map +1 -0
  104. package/dist/tokens/src/Color/scales/light/orange.d.ts +4 -0
  105. package/dist/tokens/src/Color/scales/light/orange.d.ts.map +1 -0
  106. package/dist/tokens/src/Color/scales/light/pink.d.ts +4 -0
  107. package/dist/tokens/src/Color/scales/light/pink.d.ts.map +1 -0
  108. package/dist/tokens/src/Color/scales/light/red.d.ts +4 -0
  109. package/dist/tokens/src/Color/scales/light/red.d.ts.map +1 -0
  110. package/dist/tokens/src/Color/scales/light/yellow.d.ts +4 -0
  111. package/dist/tokens/src/Color/scales/light/yellow.d.ts.map +1 -0
  112. package/dist/tokens/src/Color/types.d.ts +65 -0
  113. package/dist/tokens/src/Color/types.d.ts.map +1 -0
  114. package/dist/tokens/src/Elevation/index.d.ts +3 -0
  115. package/dist/tokens/src/Elevation/index.d.ts.map +1 -0
  116. package/dist/tokens/src/Elevation/types.d.ts +33 -0
  117. package/dist/tokens/src/Elevation/types.d.ts.map +1 -0
  118. package/dist/tokens/src/Font/constants.d.ts +7 -0
  119. package/dist/tokens/src/Font/constants.d.ts.map +1 -0
  120. package/dist/tokens/src/Font/fontFamilies.d.ts +6 -0
  121. package/dist/tokens/src/Font/fontFamilies.d.ts.map +1 -0
  122. package/dist/tokens/src/Font/fontSizes.d.ts +6 -0
  123. package/dist/tokens/src/Font/fontSizes.d.ts.map +1 -0
  124. package/dist/tokens/src/Font/fontStyles.d.ts +8 -0
  125. package/dist/tokens/src/Font/fontStyles.d.ts.map +1 -0
  126. package/dist/tokens/src/Font/fontWeights.d.ts +6 -0
  127. package/dist/tokens/src/Font/fontWeights.d.ts.map +1 -0
  128. package/dist/tokens/src/Font/index.d.ts +5 -0
  129. package/dist/tokens/src/Font/index.d.ts.map +1 -0
  130. package/dist/tokens/src/Font/types.d.ts +69 -0
  131. package/dist/tokens/src/Font/types.d.ts.map +1 -0
  132. package/dist/tokens/src/Radii/index.d.ts +3 -0
  133. package/dist/tokens/src/Radii/index.d.ts.map +1 -0
  134. package/dist/tokens/src/Radii/types.d.ts +19 -0
  135. package/dist/tokens/src/Radii/types.d.ts.map +1 -0
  136. package/dist/tokens/src/Space/index.d.ts +3 -0
  137. package/dist/tokens/src/Space/index.d.ts.map +1 -0
  138. package/dist/tokens/src/Space/types.d.ts +18 -0
  139. package/dist/tokens/src/Space/types.d.ts.map +1 -0
  140. package/dist/tokens/src/Theme/getters/commonGetter.d.ts +4 -0
  141. package/dist/tokens/src/Theme/getters/commonGetter.d.ts.map +1 -0
  142. package/dist/tokens/src/Theme/getters/getColors.d.ts +216 -0
  143. package/dist/tokens/src/Theme/getters/getColors.d.ts.map +1 -0
  144. package/dist/tokens/src/Theme/getters/getFontSizes.d.ts +21 -0
  145. package/dist/tokens/src/Theme/getters/getFontSizes.d.ts.map +1 -0
  146. package/dist/tokens/src/Theme/getters/getFontWeights.d.ts +21 -0
  147. package/dist/tokens/src/Theme/getters/getFontWeights.d.ts.map +1 -0
  148. package/dist/tokens/src/Theme/getters/getFonts.d.ts +22 -0
  149. package/dist/tokens/src/Theme/getters/getFonts.d.ts.map +1 -0
  150. package/dist/tokens/src/Theme/getters/getLetterSpacings.d.ts +21 -0
  151. package/dist/tokens/src/Theme/getters/getLetterSpacings.d.ts.map +1 -0
  152. package/dist/tokens/src/Theme/getters/getLineHeights.d.ts +21 -0
  153. package/dist/tokens/src/Theme/getters/getLineHeights.d.ts.map +1 -0
  154. package/dist/tokens/src/Theme/getters/getRadii.d.ts +5 -0
  155. package/dist/tokens/src/Theme/getters/getRadii.d.ts.map +1 -0
  156. package/dist/tokens/src/Theme/getters/getShadows.d.ts +5 -0
  157. package/dist/tokens/src/Theme/getters/getShadows.d.ts.map +1 -0
  158. package/dist/tokens/src/Theme/getters/getSpace.d.ts +5 -0
  159. package/dist/tokens/src/Theme/getters/getSpace.d.ts.map +1 -0
  160. package/dist/tokens/src/Theme/getters/getTheme.d.ts +321 -0
  161. package/dist/tokens/src/Theme/getters/getTheme.d.ts.map +1 -0
  162. package/dist/tokens/src/Theme/getters/getZIndices.d.ts +11 -0
  163. package/dist/tokens/src/Theme/getters/getZIndices.d.ts.map +1 -0
  164. package/dist/tokens/src/Theme/getters/index.d.ts +12 -0
  165. package/dist/tokens/src/Theme/getters/index.d.ts.map +1 -0
  166. package/dist/tokens/src/Theme/index.d.ts +3 -0
  167. package/dist/tokens/src/Theme/index.d.ts.map +1 -0
  168. package/dist/tokens/src/Theme/types.d.ts +14 -0
  169. package/dist/tokens/src/Theme/types.d.ts.map +1 -0
  170. package/dist/tokens/src/Theme/utils/appendPx.d.ts +7 -0
  171. package/dist/tokens/src/Theme/utils/appendPx.d.ts.map +1 -0
  172. package/dist/tokens/src/Theme/utils/convertScalesToStitches.d.ts +10 -0
  173. package/dist/tokens/src/Theme/utils/convertScalesToStitches.d.ts.map +1 -0
  174. package/dist/tokens/src/Theme/utils/createBoxShadows.d.ts +8 -0
  175. package/dist/tokens/src/Theme/utils/createBoxShadows.d.ts.map +1 -0
  176. package/dist/tokens/src/Theme/utils/createScaleInStitchesFormat.d.ts +8 -0
  177. package/dist/tokens/src/Theme/utils/createScaleInStitchesFormat.d.ts.map +1 -0
  178. package/dist/tokens/src/Theme/utils/makeThemeForStitches.d.ts +4 -0
  179. package/dist/tokens/src/Theme/utils/makeThemeForStitches.d.ts.map +1 -0
  180. package/dist/tokens/src/Theme/utils/removeNonDigitCharacters.d.ts +3 -0
  181. package/dist/tokens/src/Theme/utils/removeNonDigitCharacters.d.ts.map +1 -0
  182. package/dist/tokens/src/index.d.ts +14 -0
  183. package/dist/tokens/src/index.d.ts.map +1 -0
  184. package/dist/tokens/src/types.d.ts +8 -0
  185. package/dist/tokens/src/types.d.ts.map +1 -0
  186. package/dist/tsconfig.tsbuildinfo +1 -0
  187. package/dist/types.js +1 -0
  188. package/package.json +56 -0
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _ThemeProvider = require("../ThemeProvider");
10
+ function Provider(_ref) {
11
+ var children = _ref.children,
12
+ _ref$config = _ref.config,
13
+ config = _ref$config === void 0 ? {
14
+ theme: {}
15
+ } : _ref$config;
16
+ var _ref2 = config || {},
17
+ theme = _ref2.theme;
18
+ return /*#__PURE__*/_react["default"].createElement(_ThemeProvider.ThemeProvider, {
19
+ config: theme
20
+ }, children);
21
+ }
22
+ Provider.displayName = "Provider";
23
+ var _default = exports["default"] = Provider;
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DEFAULT_THEME_STORAGE_KEY = exports.DEFAULT_THEME_CONTEXT_VALUE = exports.AVAILABLE_THEMES = void 0;
7
+ var _stitches = require("../stitches.config");
8
+ var DEFAULT_THEME_CONTEXT_VALUE = exports.DEFAULT_THEME_CONTEXT_VALUE = {
9
+ theme: "light",
10
+ setTheme: function setTheme() {
11
+ return null;
12
+ },
13
+ useSystemTheme: function useSystemTheme() {
14
+ return null;
15
+ }
16
+ };
17
+ var DEFAULT_THEME_STORAGE_KEY = exports.DEFAULT_THEME_STORAGE_KEY = "vitality-app-theme";
18
+ var AVAILABLE_THEMES = exports.AVAILABLE_THEMES = {
19
+ light: _stitches.theme,
20
+ // stitches' default theme.
21
+ dark: _stitches.darkTheme
22
+ };
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
10
+ var _react = require("react");
11
+ var _reactNative = require("react-native");
12
+ var _constants = require("../constants");
13
+ var _logic = require("../logic");
14
+ var useTheme = function useTheme(themeOverride) {
15
+ // Note, this always returns light in dev mode due to a bug (https://reactnative.dev/docs/0.72/usecolorscheme#supported-color-schemes)
16
+ var systemColorScheme = (0, _reactNative.useColorScheme)() || "light";
17
+ var _useState = (0, _react.useState)(systemColorScheme),
18
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
19
+ themeInternal = _useState2[0],
20
+ setThemeInternal = _useState2[1];
21
+
22
+ // Set the app theme preferences on load.
23
+ (0, _react.useEffect)(function () {
24
+ (0, _logic.setInitialState)(setThemeInternal, themeOverride, systemColorScheme);
25
+ }, [themeOverride, systemColorScheme]);
26
+
27
+ // Listen out for changes to the system settings
28
+ (0, _react.useEffect)(function () {
29
+ if (systemColorScheme) {
30
+ setThemeInternal(systemColorScheme);
31
+ }
32
+ }, [systemColorScheme]);
33
+ var setTheme = function setTheme(newTheme) {
34
+ setThemeInternal(newTheme);
35
+ _asyncStorage["default"].setItem(_constants.DEFAULT_THEME_STORAGE_KEY, newTheme); // Save selected theme to storage
36
+ };
37
+ var useSystemTheme = function useSystemTheme() {
38
+ setThemeInternal(systemColorScheme);
39
+ _asyncStorage["default"].setItem(_constants.DEFAULT_THEME_STORAGE_KEY, systemColorScheme);
40
+ };
41
+ return {
42
+ theme: themeInternal,
43
+ setTheme: setTheme,
44
+ useSystemTheme: useSystemTheme
45
+ };
46
+ };
47
+ var _default = exports["default"] = useTheme;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.ThemeContext = void 0;
9
+ exports.ThemeProvider = ThemeProvider;
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _stitches = require("../stitches.config");
12
+ var _constants = require("./constants");
13
+ var _useTheme = _interopRequireDefault(require("./hooks/useTheme"));
14
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
16
+ var ThemeContext = exports.ThemeContext = /*#__PURE__*/(0, _react.createContext)(_constants.DEFAULT_THEME_CONTEXT_VALUE);
17
+ function ThemeProvider(_ref) {
18
+ var config = _ref.config,
19
+ children = _ref.children;
20
+ var _ref2 = config || {},
21
+ themeOverride = _ref2.themeOverride;
22
+ var themeContextValue = (0, _useTheme["default"])(themeOverride);
23
+ var actualTheme = _constants.AVAILABLE_THEMES[themeContextValue.theme];
24
+ return /*#__PURE__*/_react["default"].createElement(ThemeContext.Provider, {
25
+ value: themeContextValue
26
+ }, /*#__PURE__*/_react["default"].createElement(_stitches.ThemeProvider, {
27
+ theme: actualTheme
28
+ }, children));
29
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
11
+ var _constants = require("../constants");
12
+ var getSavedTheme = /*#__PURE__*/function () {
13
+ var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
14
+ var savedMode;
15
+ return _regenerator["default"].wrap(function _callee$(_context) {
16
+ while (1) switch (_context.prev = _context.next) {
17
+ case 0:
18
+ _context.prev = 0;
19
+ _context.next = 3;
20
+ return _asyncStorage["default"].getItem(_constants.DEFAULT_THEME_STORAGE_KEY);
21
+ case 3:
22
+ savedMode = _context.sent;
23
+ if (!(typeof savedMode === "string")) {
24
+ _context.next = 6;
25
+ break;
26
+ }
27
+ return _context.abrupt("return", savedMode);
28
+ case 6:
29
+ _context.next = 12;
30
+ break;
31
+ case 8:
32
+ _context.prev = 8;
33
+ _context.t0 = _context["catch"](0);
34
+ // eslint-disable-next-line no-console
35
+ console.warn(_context.t0);
36
+ return _context.abrupt("return", null);
37
+ case 12:
38
+ return _context.abrupt("return", null);
39
+ case 13:
40
+ case "end":
41
+ return _context.stop();
42
+ }
43
+ }, _callee, null, [[0, 8]]);
44
+ }));
45
+ return function getSavedTheme() {
46
+ return _ref.apply(this, arguments);
47
+ };
48
+ }();
49
+ var _default = exports["default"] = getSavedTheme;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "setInitialState", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _setInitialState["default"];
11
+ }
12
+ });
13
+ var _setInitialState = _interopRequireDefault(require("./setInitialState"));
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _getSavedTheme = _interopRequireDefault(require("./getSavedTheme"));
11
+ var setInitialState = /*#__PURE__*/function () {
12
+ var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(setTheme, themeOverride, systemColorScheme) {
13
+ var alreadySavedMode;
14
+ return _regenerator["default"].wrap(function _callee$(_context) {
15
+ while (1) switch (_context.prev = _context.next) {
16
+ case 0:
17
+ _context.next = 2;
18
+ return (0, _getSavedTheme["default"])();
19
+ case 2:
20
+ alreadySavedMode = _context.sent;
21
+ // eslint-disable-next-line no-console
22
+ console.log("Saved Mode is ", alreadySavedMode);
23
+ if (!themeOverride) {
24
+ _context.next = 6;
25
+ break;
26
+ }
27
+ return _context.abrupt("return", setTheme(themeOverride));
28
+ case 6:
29
+ if (!alreadySavedMode) {
30
+ _context.next = 8;
31
+ break;
32
+ }
33
+ return _context.abrupt("return", setTheme(alreadySavedMode));
34
+ case 8:
35
+ return _context.abrupt("return", setTheme(systemColorScheme));
36
+ case 9:
37
+ case "end":
38
+ return _context.stop();
39
+ }
40
+ }, _callee);
41
+ }));
42
+ return function setInitialState(_x, _x2, _x3) {
43
+ return _ref.apply(this, arguments);
44
+ };
45
+ }();
46
+ var _default = exports["default"] = setInitialState;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
9
+ var _constants = require("../constants");
10
+ var setSavedTheme = function setSavedTheme(newMode) {
11
+ try {
12
+ if (typeof newMode === "string") {
13
+ _asyncStorage["default"].setItem(_constants.DEFAULT_THEME_STORAGE_KEY, newMode);
14
+ }
15
+ } catch (e) {
16
+ // eslint-disable-next-line no-console
17
+ console.warn(e);
18
+ }
19
+ };
20
+ var _default = exports["default"] = setSavedTheme;
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,16 @@
1
+ import React from "react";
2
+ import { ThemeProvider } from "../ThemeProvider";
3
+ function Provider(_ref) {
4
+ var children = _ref.children,
5
+ _ref$config = _ref.config,
6
+ config = _ref$config === void 0 ? {
7
+ theme: {}
8
+ } : _ref$config;
9
+ var _ref2 = config || {},
10
+ theme = _ref2.theme;
11
+ return /*#__PURE__*/React.createElement(ThemeProvider, {
12
+ config: theme
13
+ }, children);
14
+ }
15
+ Provider.displayName = "Provider";
16
+ export default Provider;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,16 @@
1
+ import { darkTheme, theme } from "../stitches.config";
2
+ export var DEFAULT_THEME_CONTEXT_VALUE = {
3
+ theme: "light",
4
+ setTheme: function setTheme() {
5
+ return null;
6
+ },
7
+ useSystemTheme: function useSystemTheme() {
8
+ return null;
9
+ }
10
+ };
11
+ export var DEFAULT_THEME_STORAGE_KEY = "vitality-app-theme";
12
+ export var AVAILABLE_THEMES = {
13
+ light: theme,
14
+ // stitches' default theme.
15
+ dark: darkTheme
16
+ };
@@ -0,0 +1,40 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import AsyncStorage from "@react-native-async-storage/async-storage";
3
+ import { useEffect, useState } from "react";
4
+ import { useColorScheme } from "react-native";
5
+ import { DEFAULT_THEME_STORAGE_KEY } from "../constants";
6
+ import { setInitialState } from "../logic";
7
+ var useTheme = function useTheme(themeOverride) {
8
+ // Note, this always returns light in dev mode due to a bug (https://reactnative.dev/docs/0.72/usecolorscheme#supported-color-schemes)
9
+ var systemColorScheme = useColorScheme() || "light";
10
+ var _useState = useState(systemColorScheme),
11
+ _useState2 = _slicedToArray(_useState, 2),
12
+ themeInternal = _useState2[0],
13
+ setThemeInternal = _useState2[1];
14
+
15
+ // Set the app theme preferences on load.
16
+ useEffect(function () {
17
+ setInitialState(setThemeInternal, themeOverride, systemColorScheme);
18
+ }, [themeOverride, systemColorScheme]);
19
+
20
+ // Listen out for changes to the system settings
21
+ useEffect(function () {
22
+ if (systemColorScheme) {
23
+ setThemeInternal(systemColorScheme);
24
+ }
25
+ }, [systemColorScheme]);
26
+ var setTheme = function setTheme(newTheme) {
27
+ setThemeInternal(newTheme);
28
+ AsyncStorage.setItem(DEFAULT_THEME_STORAGE_KEY, newTheme); // Save selected theme to storage
29
+ };
30
+ var useSystemTheme = function useSystemTheme() {
31
+ setThemeInternal(systemColorScheme);
32
+ AsyncStorage.setItem(DEFAULT_THEME_STORAGE_KEY, systemColorScheme);
33
+ };
34
+ return {
35
+ theme: themeInternal,
36
+ setTheme: setTheme,
37
+ useSystemTheme: useSystemTheme
38
+ };
39
+ };
40
+ export default useTheme;
@@ -0,0 +1,19 @@
1
+ import React, { createContext } from "react";
2
+ import { ThemeProvider as StitchesThemeProvider } from "../stitches.config";
3
+ import { AVAILABLE_THEMES, DEFAULT_THEME_CONTEXT_VALUE } from "./constants";
4
+ import useTheme from "./hooks/useTheme";
5
+ var ThemeContext = /*#__PURE__*/createContext(DEFAULT_THEME_CONTEXT_VALUE);
6
+ function ThemeProvider(_ref) {
7
+ var config = _ref.config,
8
+ children = _ref.children;
9
+ var _ref2 = config || {},
10
+ themeOverride = _ref2.themeOverride;
11
+ var themeContextValue = useTheme(themeOverride);
12
+ var actualTheme = AVAILABLE_THEMES[themeContextValue.theme];
13
+ return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
14
+ value: themeContextValue
15
+ }, /*#__PURE__*/React.createElement(StitchesThemeProvider, {
16
+ theme: actualTheme
17
+ }, children));
18
+ }
19
+ export { ThemeProvider, ThemeContext };
@@ -0,0 +1,42 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
3
+ import AsyncStorage from "@react-native-async-storage/async-storage";
4
+ import { DEFAULT_THEME_STORAGE_KEY } from "../constants";
5
+ var getSavedTheme = /*#__PURE__*/function () {
6
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
7
+ var savedMode;
8
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
9
+ while (1) switch (_context.prev = _context.next) {
10
+ case 0:
11
+ _context.prev = 0;
12
+ _context.next = 3;
13
+ return AsyncStorage.getItem(DEFAULT_THEME_STORAGE_KEY);
14
+ case 3:
15
+ savedMode = _context.sent;
16
+ if (!(typeof savedMode === "string")) {
17
+ _context.next = 6;
18
+ break;
19
+ }
20
+ return _context.abrupt("return", savedMode);
21
+ case 6:
22
+ _context.next = 12;
23
+ break;
24
+ case 8:
25
+ _context.prev = 8;
26
+ _context.t0 = _context["catch"](0);
27
+ // eslint-disable-next-line no-console
28
+ console.warn(_context.t0);
29
+ return _context.abrupt("return", null);
30
+ case 12:
31
+ return _context.abrupt("return", null);
32
+ case 13:
33
+ case "end":
34
+ return _context.stop();
35
+ }
36
+ }, _callee, null, [[0, 8]]);
37
+ }));
38
+ return function getSavedTheme() {
39
+ return _ref.apply(this, arguments);
40
+ };
41
+ }();
42
+ export default getSavedTheme;
@@ -0,0 +1,2 @@
1
+ // eslint-disable-next-line import/prefer-default-export
2
+ export { default as setInitialState } from "./setInitialState";
@@ -0,0 +1,39 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
3
+ import getSavedTheme from "./getSavedTheme";
4
+ var setInitialState = /*#__PURE__*/function () {
5
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(setTheme, themeOverride, systemColorScheme) {
6
+ var alreadySavedMode;
7
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
8
+ while (1) switch (_context.prev = _context.next) {
9
+ case 0:
10
+ _context.next = 2;
11
+ return getSavedTheme();
12
+ case 2:
13
+ alreadySavedMode = _context.sent;
14
+ // eslint-disable-next-line no-console
15
+ console.log("Saved Mode is ", alreadySavedMode);
16
+ if (!themeOverride) {
17
+ _context.next = 6;
18
+ break;
19
+ }
20
+ return _context.abrupt("return", setTheme(themeOverride));
21
+ case 6:
22
+ if (!alreadySavedMode) {
23
+ _context.next = 8;
24
+ break;
25
+ }
26
+ return _context.abrupt("return", setTheme(alreadySavedMode));
27
+ case 8:
28
+ return _context.abrupt("return", setTheme(systemColorScheme));
29
+ case 9:
30
+ case "end":
31
+ return _context.stop();
32
+ }
33
+ }, _callee);
34
+ }));
35
+ return function setInitialState(_x, _x2, _x3) {
36
+ return _ref.apply(this, arguments);
37
+ };
38
+ }();
39
+ export default setInitialState;
@@ -0,0 +1,13 @@
1
+ import AsyncStorage from "@react-native-async-storage/async-storage";
2
+ import { DEFAULT_THEME_STORAGE_KEY } from "../constants";
3
+ var setSavedTheme = function setSavedTheme(newMode) {
4
+ try {
5
+ if (typeof newMode === "string") {
6
+ AsyncStorage.setItem(DEFAULT_THEME_STORAGE_KEY, newMode);
7
+ }
8
+ } catch (e) {
9
+ // eslint-disable-next-line no-console
10
+ console.warn(e);
11
+ }
12
+ };
13
+ export default setSavedTheme;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import { colorUseCases, getColorScaleFromThemeObject, getColorScaleValueByUseCase, getUseCasesByStep } from "@vitality-ds/tokens";
2
+ export { styled, css, createTheme, config, theme, ThemeProvider, darkTheme } from "./stitches.config";
3
+ export { default as Provider } from "./Provider";
4
+ export { ThemeContext } from "./ThemeProvider";
5
+ export { AVAILABLE_THEMES_TYPE } from "./types";
6
+ export { getColorScaleFromThemeObject, getColorScaleValueByUseCase, colorUseCases, getUseCasesByStep };
@@ -0,0 +1,32 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ import { getTheme } from "@vitality-ds/tokens";
4
+ import { createStitches } from "stitches-rn-vitality";
5
+ var _getTheme = getTheme("react-native"),
6
+ colors = _getTheme.colors,
7
+ shadows = _getTheme.shadows,
8
+ baseTheme = _objectWithoutProperties(_getTheme, ["colors", "shadows"]);
9
+ export var stitches = createStitches({
10
+ theme: _extends({}, baseTheme, {
11
+ colors: colors.light
12
+ }),
13
+ media: {
14
+ bp1: "(width <= 320px)",
15
+ bp2: "(width >= 393px)"
16
+ },
17
+ utils: {
18
+ boxShadow: function boxShadow(level) {
19
+ return shadows[level];
20
+ }
21
+ }
22
+ });
23
+ var styled = stitches.styled,
24
+ css = stitches.css,
25
+ theme = stitches.theme,
26
+ config = stitches.config,
27
+ createTheme = stitches.createTheme,
28
+ ThemeProvider = stitches.ThemeProvider;
29
+ export { styled, css, theme, config, createTheme, ThemeProvider };
30
+ export var darkTheme = createTheme({
31
+ colors: colors.dark
32
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ "use strict";
package/dist/index.js ADDED
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "AVAILABLE_THEMES_TYPE", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _types.AVAILABLE_THEMES_TYPE;
11
+ }
12
+ });
13
+ Object.defineProperty(exports, "Provider", {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return _Provider["default"];
17
+ }
18
+ });
19
+ Object.defineProperty(exports, "ThemeContext", {
20
+ enumerable: true,
21
+ get: function get() {
22
+ return _ThemeProvider.ThemeContext;
23
+ }
24
+ });
25
+ Object.defineProperty(exports, "ThemeProvider", {
26
+ enumerable: true,
27
+ get: function get() {
28
+ return _stitches.ThemeProvider;
29
+ }
30
+ });
31
+ Object.defineProperty(exports, "colorUseCases", {
32
+ enumerable: true,
33
+ get: function get() {
34
+ return _tokens.colorUseCases;
35
+ }
36
+ });
37
+ Object.defineProperty(exports, "config", {
38
+ enumerable: true,
39
+ get: function get() {
40
+ return _stitches.config;
41
+ }
42
+ });
43
+ Object.defineProperty(exports, "createTheme", {
44
+ enumerable: true,
45
+ get: function get() {
46
+ return _stitches.createTheme;
47
+ }
48
+ });
49
+ Object.defineProperty(exports, "css", {
50
+ enumerable: true,
51
+ get: function get() {
52
+ return _stitches.css;
53
+ }
54
+ });
55
+ Object.defineProperty(exports, "darkTheme", {
56
+ enumerable: true,
57
+ get: function get() {
58
+ return _stitches.darkTheme;
59
+ }
60
+ });
61
+ Object.defineProperty(exports, "getColorScaleFromThemeObject", {
62
+ enumerable: true,
63
+ get: function get() {
64
+ return _tokens.getColorScaleFromThemeObject;
65
+ }
66
+ });
67
+ Object.defineProperty(exports, "getColorScaleValueByUseCase", {
68
+ enumerable: true,
69
+ get: function get() {
70
+ return _tokens.getColorScaleValueByUseCase;
71
+ }
72
+ });
73
+ Object.defineProperty(exports, "getUseCasesByStep", {
74
+ enumerable: true,
75
+ get: function get() {
76
+ return _tokens.getUseCasesByStep;
77
+ }
78
+ });
79
+ Object.defineProperty(exports, "styled", {
80
+ enumerable: true,
81
+ get: function get() {
82
+ return _stitches.styled;
83
+ }
84
+ });
85
+ Object.defineProperty(exports, "theme", {
86
+ enumerable: true,
87
+ get: function get() {
88
+ return _stitches.theme;
89
+ }
90
+ });
91
+ var _tokens = require("@vitality-ds/tokens");
92
+ var _stitches = require("./stitches.config");
93
+ var _Provider = _interopRequireDefault(require("./Provider"));
94
+ var _ThemeProvider = require("./ThemeProvider");
95
+ var _types = require("./types");
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.theme = exports.styled = exports.stitches = exports.darkTheme = exports.css = exports.createTheme = exports.config = exports.ThemeProvider = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _tokens = require("@vitality-ds/tokens");
11
+ var _stitchesRnVitality = require("stitches-rn-vitality");
12
+ var _getTheme = (0, _tokens.getTheme)("react-native"),
13
+ colors = _getTheme.colors,
14
+ shadows = _getTheme.shadows,
15
+ baseTheme = (0, _objectWithoutProperties2["default"])(_getTheme, ["colors", "shadows"]);
16
+ var stitches = exports.stitches = (0, _stitchesRnVitality.createStitches)({
17
+ theme: (0, _extends2["default"])({}, baseTheme, {
18
+ colors: colors.light
19
+ }),
20
+ media: {
21
+ bp1: "(width <= 320px)",
22
+ bp2: "(width >= 393px)"
23
+ },
24
+ utils: {
25
+ boxShadow: function boxShadow(level) {
26
+ return shadows[level];
27
+ }
28
+ }
29
+ });
30
+ var styled = exports.styled = stitches.styled,
31
+ css = exports.css = stitches.css,
32
+ theme = exports.theme = stitches.theme,
33
+ config = exports.config = stitches.config,
34
+ createTheme = exports.createTheme = stitches.createTheme,
35
+ ThemeProvider = exports.ThemeProvider = stitches.ThemeProvider;
36
+ var darkTheme = exports.darkTheme = createTheme({
37
+ colors: colors.dark
38
+ });
@@ -0,0 +1,7 @@
1
+ import { ProviderProps } from "./types";
2
+ declare function Provider({ children, config, }: ProviderProps): JSX.Element;
3
+ declare namespace Provider {
4
+ var displayName: string;
5
+ }
6
+ export default Provider;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Provider/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,iBAAS,QAAQ,CAAC,EAChB,QAAQ,EACR,MAAsB,GACvB,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,CAG7B;kBANQ,QAAQ;;;AAUjB,eAAe,QAAQ,CAAC"}