@xyo-network/react-app-settings 2.64.0-rc.6 → 2.64.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 (167) hide show
  1. package/dist/browser/WebAppNavigationType.cjs +19 -0
  2. package/dist/browser/WebAppNavigationType.cjs.map +1 -0
  3. package/dist/browser/WebAppNavigationType.d.cts +2 -0
  4. package/dist/browser/WebAppNavigationType.d.cts.map +1 -0
  5. package/dist/browser/components/DarkModeIconButton.cjs +62 -0
  6. package/dist/browser/components/DarkModeIconButton.cjs.map +1 -0
  7. package/dist/browser/components/DarkModeIconButton.d.cts +4 -0
  8. package/dist/browser/components/DarkModeIconButton.d.cts.map +1 -0
  9. package/dist/browser/components/Developer.cjs +56 -0
  10. package/dist/browser/components/Developer.cjs.map +1 -0
  11. package/dist/browser/components/Developer.d.cts +5 -0
  12. package/dist/browser/components/Developer.d.cts.map +1 -0
  13. package/dist/browser/components/index.cjs +71 -0
  14. package/dist/browser/components/index.cjs.map +1 -0
  15. package/dist/browser/components/index.d.cts +3 -0
  16. package/dist/browser/components/index.d.cts.map +1 -0
  17. package/dist/browser/contexts/AppSettings/Context.cjs +42 -0
  18. package/dist/browser/contexts/AppSettings/Context.cjs.map +1 -0
  19. package/dist/browser/contexts/AppSettings/Context.d.cts +18 -0
  20. package/dist/browser/contexts/AppSettings/Context.d.cts.map +1 -0
  21. package/dist/browser/contexts/AppSettings/Provider.cjs +226 -0
  22. package/dist/browser/contexts/AppSettings/Provider.cjs.map +1 -0
  23. package/dist/browser/contexts/AppSettings/Provider.d.cts +9 -0
  24. package/dist/browser/contexts/AppSettings/Provider.d.cts.map +1 -0
  25. package/dist/browser/contexts/AppSettings/Slug.cjs +35 -0
  26. package/dist/{node/contexts/AppSettings/Slug.mjs.map → browser/contexts/AppSettings/Slug.cjs.map} +1 -1
  27. package/dist/browser/contexts/AppSettings/Slug.d.cts +9 -0
  28. package/dist/browser/contexts/AppSettings/Slug.d.cts.map +1 -0
  29. package/dist/browser/contexts/AppSettings/Storage.cjs +157 -0
  30. package/dist/browser/contexts/AppSettings/Storage.cjs.map +1 -0
  31. package/dist/browser/contexts/AppSettings/Storage.d.cts +18 -0
  32. package/dist/browser/contexts/AppSettings/Storage.d.cts.map +1 -0
  33. package/dist/browser/contexts/AppSettings/StorageBase.cjs +100 -0
  34. package/dist/{node/contexts/AppSettings/StorageBase.mjs.map → browser/contexts/AppSettings/StorageBase.cjs.map} +1 -1
  35. package/dist/browser/contexts/AppSettings/StorageBase.d.cts +16 -0
  36. package/dist/browser/contexts/AppSettings/StorageBase.d.cts.map +1 -0
  37. package/dist/browser/contexts/AppSettings/appSettingDefault.cjs +36 -0
  38. package/dist/{node/contexts/AppSettings/appSettingDefault.mjs.map → browser/contexts/AppSettings/appSettingDefault.cjs.map} +1 -1
  39. package/dist/browser/contexts/AppSettings/appSettingDefault.d.cts +2 -0
  40. package/dist/browser/contexts/AppSettings/appSettingDefault.d.cts.map +1 -0
  41. package/dist/browser/contexts/AppSettings/index.cjs +250 -0
  42. package/dist/browser/contexts/AppSettings/index.cjs.map +1 -0
  43. package/dist/browser/contexts/AppSettings/index.d.cts +7 -0
  44. package/dist/browser/contexts/AppSettings/index.d.cts.map +1 -0
  45. package/dist/browser/contexts/AppSettings/useAppSettings.cjs +50 -0
  46. package/dist/browser/contexts/AppSettings/useAppSettings.cjs.map +1 -0
  47. package/dist/browser/contexts/AppSettings/useAppSettings.d.cts +2 -0
  48. package/dist/browser/contexts/AppSettings/useAppSettings.d.cts.map +1 -0
  49. package/dist/browser/contexts/index.cjs +250 -0
  50. package/dist/browser/contexts/index.cjs.map +1 -0
  51. package/dist/browser/contexts/index.d.cts +2 -0
  52. package/dist/browser/contexts/index.d.cts.map +1 -0
  53. package/dist/browser/index.cjs +272 -0
  54. package/dist/browser/index.cjs.map +1 -0
  55. package/dist/browser/index.d.cts +4 -0
  56. package/dist/browser/index.d.cts.map +1 -0
  57. package/dist/docs.json +4102 -0
  58. package/dist/node/WebAppNavigationType.cjs +19 -0
  59. package/dist/node/WebAppNavigationType.cjs.map +1 -0
  60. package/dist/node/WebAppNavigationType.d.cts +2 -0
  61. package/dist/node/WebAppNavigationType.d.cts.map +1 -0
  62. package/dist/node/WebAppNavigationType.js +0 -16
  63. package/dist/node/WebAppNavigationType.js.map +1 -1
  64. package/dist/node/components/DarkModeIconButton.cjs +66 -0
  65. package/dist/node/components/DarkModeIconButton.cjs.map +1 -0
  66. package/dist/node/components/DarkModeIconButton.d.cts +4 -0
  67. package/dist/node/components/DarkModeIconButton.d.cts.map +1 -0
  68. package/dist/node/components/DarkModeIconButton.js +34 -32
  69. package/dist/node/components/DarkModeIconButton.js.map +1 -1
  70. package/dist/node/components/Developer.cjs +60 -0
  71. package/dist/node/components/Developer.cjs.map +1 -0
  72. package/dist/node/components/Developer.d.cts +5 -0
  73. package/dist/node/components/Developer.d.cts.map +1 -0
  74. package/dist/node/components/Developer.js +27 -27
  75. package/dist/node/components/Developer.js.map +1 -1
  76. package/dist/node/components/index.cjs +76 -0
  77. package/dist/node/components/index.cjs.map +1 -0
  78. package/dist/node/components/index.d.cts +3 -0
  79. package/dist/node/components/index.d.cts.map +1 -0
  80. package/dist/node/components/index.js +46 -23
  81. package/dist/node/components/index.js.map +1 -1
  82. package/dist/node/contexts/AppSettings/Context.cjs +46 -0
  83. package/dist/node/contexts/AppSettings/Context.cjs.map +1 -0
  84. package/dist/node/contexts/AppSettings/Context.d.cts +18 -0
  85. package/dist/node/contexts/AppSettings/Context.d.cts.map +1 -0
  86. package/dist/node/contexts/AppSettings/Context.js +18 -28
  87. package/dist/node/contexts/AppSettings/Context.js.map +1 -1
  88. package/dist/node/contexts/AppSettings/Provider.cjs +231 -0
  89. package/dist/node/contexts/AppSettings/Provider.cjs.map +1 -0
  90. package/dist/node/contexts/AppSettings/Provider.d.cts +9 -0
  91. package/dist/node/contexts/AppSettings/Provider.d.cts.map +1 -0
  92. package/dist/node/contexts/AppSettings/Provider.js +152 -37
  93. package/dist/node/contexts/AppSettings/Provider.js.map +1 -1
  94. package/dist/node/contexts/AppSettings/Slug.cjs +39 -0
  95. package/dist/node/contexts/AppSettings/Slug.cjs.map +1 -0
  96. package/dist/node/contexts/AppSettings/Slug.d.cts +9 -0
  97. package/dist/node/contexts/AppSettings/Slug.d.cts.map +1 -0
  98. package/dist/node/contexts/AppSettings/Slug.js +3 -26
  99. package/dist/node/contexts/AppSettings/Slug.js.map +1 -1
  100. package/dist/node/contexts/AppSettings/Storage.cjs +162 -0
  101. package/dist/node/contexts/AppSettings/Storage.cjs.map +1 -0
  102. package/dist/node/contexts/AppSettings/Storage.d.cts +18 -0
  103. package/dist/node/contexts/AppSettings/Storage.d.cts.map +1 -0
  104. package/dist/node/contexts/AppSettings/Storage.js +104 -41
  105. package/dist/node/contexts/AppSettings/Storage.js.map +1 -1
  106. package/dist/node/contexts/AppSettings/StorageBase.cjs +105 -0
  107. package/dist/node/contexts/AppSettings/StorageBase.cjs.map +1 -0
  108. package/dist/node/contexts/AppSettings/StorageBase.d.cts +16 -0
  109. package/dist/node/contexts/AppSettings/StorageBase.d.cts.map +1 -0
  110. package/dist/node/contexts/AppSettings/StorageBase.js +19 -41
  111. package/dist/node/contexts/AppSettings/StorageBase.js.map +1 -1
  112. package/dist/node/contexts/AppSettings/appSettingDefault.cjs +40 -0
  113. package/dist/node/contexts/AppSettings/appSettingDefault.cjs.map +1 -0
  114. package/dist/node/contexts/AppSettings/appSettingDefault.d.cts +2 -0
  115. package/dist/node/contexts/AppSettings/appSettingDefault.d.cts.map +1 -0
  116. package/dist/node/contexts/AppSettings/appSettingDefault.js +10 -34
  117. package/dist/node/contexts/AppSettings/appSettingDefault.js.map +1 -1
  118. package/dist/node/contexts/AppSettings/index.cjs +260 -0
  119. package/dist/node/contexts/AppSettings/index.cjs.map +1 -0
  120. package/dist/node/contexts/AppSettings/index.d.cts +7 -0
  121. package/dist/node/contexts/AppSettings/index.d.cts.map +1 -0
  122. package/dist/node/contexts/AppSettings/index.js +226 -31
  123. package/dist/node/contexts/AppSettings/index.js.map +1 -1
  124. package/dist/node/contexts/AppSettings/useAppSettings.cjs +54 -0
  125. package/dist/node/contexts/AppSettings/useAppSettings.cjs.map +1 -0
  126. package/dist/node/contexts/AppSettings/useAppSettings.d.cts +2 -0
  127. package/dist/node/contexts/AppSettings/useAppSettings.d.cts.map +1 -0
  128. package/dist/node/contexts/AppSettings/useAppSettings.js +25 -29
  129. package/dist/node/contexts/AppSettings/useAppSettings.js.map +1 -1
  130. package/dist/node/contexts/index.cjs +260 -0
  131. package/dist/node/contexts/index.cjs.map +1 -0
  132. package/dist/node/contexts/index.d.cts +2 -0
  133. package/dist/node/contexts/index.d.cts.map +1 -0
  134. package/dist/node/contexts/index.js +226 -21
  135. package/dist/node/contexts/index.js.map +1 -1
  136. package/dist/node/index.cjs +284 -0
  137. package/dist/node/index.cjs.map +1 -0
  138. package/dist/node/index.d.cts +4 -0
  139. package/dist/node/index.d.cts.map +1 -0
  140. package/dist/node/index.js +249 -26
  141. package/dist/node/index.js.map +1 -1
  142. package/package.json +14 -14
  143. package/dist/node/WebAppNavigationType.mjs +0 -1
  144. package/dist/node/WebAppNavigationType.mjs.map +0 -1
  145. package/dist/node/components/DarkModeIconButton.mjs +0 -15
  146. package/dist/node/components/DarkModeIconButton.mjs.map +0 -1
  147. package/dist/node/components/Developer.mjs +0 -9
  148. package/dist/node/components/Developer.mjs.map +0 -1
  149. package/dist/node/components/index.mjs +0 -3
  150. package/dist/node/components/index.mjs.map +0 -1
  151. package/dist/node/contexts/AppSettings/Context.mjs +0 -7
  152. package/dist/node/contexts/AppSettings/Context.mjs.map +0 -1
  153. package/dist/node/contexts/AppSettings/Provider.mjs +0 -67
  154. package/dist/node/contexts/AppSettings/Provider.mjs.map +0 -1
  155. package/dist/node/contexts/AppSettings/Slug.mjs +0 -13
  156. package/dist/node/contexts/AppSettings/Storage.mjs +0 -48
  157. package/dist/node/contexts/AppSettings/Storage.mjs.map +0 -1
  158. package/dist/node/contexts/AppSettings/StorageBase.mjs +0 -78
  159. package/dist/node/contexts/AppSettings/appSettingDefault.mjs +0 -15
  160. package/dist/node/contexts/AppSettings/index.mjs +0 -7
  161. package/dist/node/contexts/AppSettings/index.mjs.map +0 -1
  162. package/dist/node/contexts/AppSettings/useAppSettings.mjs +0 -9
  163. package/dist/node/contexts/AppSettings/useAppSettings.mjs.map +0 -1
  164. package/dist/node/contexts/index.mjs +0 -2
  165. package/dist/node/contexts/index.mjs.map +0 -1
  166. package/dist/node/index.mjs +0 -4
  167. package/dist/node/index.mjs.map +0 -1
@@ -0,0 +1,18 @@
1
+ /// <reference types="react" />
2
+ import { WebAppNavigationType } from '../../WebAppNavigationType';
3
+ export interface AppSettingsContextProps {
4
+ changeMaxAccounts?: (value: number) => void;
5
+ changeNavigationCollapsed?: (value: boolean) => void;
6
+ changeNavigationType?: (value: WebAppNavigationType) => void;
7
+ changeSeedPhrase?: (value: string) => void;
8
+ darkMode?: boolean;
9
+ developerMode?: boolean;
10
+ enableDarkMode?: (value: boolean) => void;
11
+ enableDeveloperMode?: (value: boolean) => void;
12
+ maxAccounts?: number;
13
+ navigationCollapsed?: boolean;
14
+ navigationType?: WebAppNavigationType;
15
+ seedPhrase?: string;
16
+ }
17
+ export declare const AppSettingsContext: import("react").Context<AppSettingsContextProps>;
18
+ //# sourceMappingURL=Context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Context.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAGjE,MAAM,WAAW,uBAAuB;IACtC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACpD,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAA;IAC5D,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACzC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,cAAc,CAAC,EAAE,oBAAoB,CAAA;IACrC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,kBAAkB,kDAA8D,CAAA"}
@@ -1,31 +1,21 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
1
+ // src/contexts/AppSettings/Context.ts
2
+ import { createContext } from "react";
3
+
4
+ // src/contexts/AppSettings/appSettingDefault.ts
5
+ var appSettingDefault = () => {
6
+ return {
7
+ ["darkmode" /* DarkMode */]: false,
8
+ ["developer" /* Developer */]: false,
9
+ ["navigationType" /* NavigationType */]: "menu",
10
+ ["navigationCollapsed" /* NavigationCollapsed */]: false,
11
+ ["seedPhrase" /* SeedPhrase */]: "",
12
+ ["maxAccounts" /* MaxAccounts */]: 1
13
+ };
9
14
  };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var Context_exports = {};
20
- __export(Context_exports, {
21
- AppSettingsContext: () => AppSettingsContext
22
- });
23
- module.exports = __toCommonJS(Context_exports);
24
- var import_react = require("react");
25
- var import_appSettingDefault = require("./appSettingDefault");
26
- const AppSettingsContext = (0, import_react.createContext)((0, import_appSettingDefault.appSettingDefault)());
27
- // Annotate the CommonJS export names for ESM import in node:
28
- 0 && (module.exports = {
15
+
16
+ // src/contexts/AppSettings/Context.ts
17
+ var AppSettingsContext = createContext(appSettingDefault());
18
+ export {
29
19
  AppSettingsContext
30
- });
20
+ };
31
21
  //# sourceMappingURL=Context.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/contexts/AppSettings/Context.ts"],"sourcesContent":["import { createContext } from 'react'\n\nimport { WebAppNavigationType } from '../../WebAppNavigationType'\nimport { appSettingDefault } from './appSettingDefault'\n\nexport interface AppSettingsContextProps {\n changeMaxAccounts?: (value: number) => void\n changeNavigationCollapsed?: (value: boolean) => void\n changeNavigationType?: (value: WebAppNavigationType) => void\n changeSeedPhrase?: (value: string) => void\n darkMode?: boolean\n developerMode?: boolean\n enableDarkMode?: (value: boolean) => void\n enableDeveloperMode?: (value: boolean) => void\n maxAccounts?: number\n navigationCollapsed?: boolean\n navigationType?: WebAppNavigationType\n seedPhrase?: string\n}\n\nexport const AppSettingsContext = createContext<AppSettingsContextProps>(appSettingDefault())\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA8B;AAG9B,+BAAkC;AAiB3B,MAAM,yBAAqB,gCAAuC,4CAAkB,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../../src/contexts/AppSettings/Context.ts","../../../../src/contexts/AppSettings/appSettingDefault.ts"],"sourcesContent":["import { createContext } from 'react'\n\nimport { WebAppNavigationType } from '../../WebAppNavigationType'\nimport { appSettingDefault } from './appSettingDefault'\n\nexport interface AppSettingsContextProps {\n changeMaxAccounts?: (value: number) => void\n changeNavigationCollapsed?: (value: boolean) => void\n changeNavigationType?: (value: WebAppNavigationType) => void\n changeSeedPhrase?: (value: string) => void\n darkMode?: boolean\n developerMode?: boolean\n enableDarkMode?: (value: boolean) => void\n enableDeveloperMode?: (value: boolean) => void\n maxAccounts?: number\n navigationCollapsed?: boolean\n navigationType?: WebAppNavigationType\n seedPhrase?: string\n}\n\nexport const AppSettingsContext = createContext<AppSettingsContextProps>(appSettingDefault())\n","import { AppSettingSlug } from './Slug'\n\nexport const appSettingDefault = (): Record<string, unknown> => {\n return {\n [AppSettingSlug.DarkMode]: false,\n [AppSettingSlug.Developer]: false,\n [AppSettingSlug.NavigationType]: 'menu',\n [AppSettingSlug.NavigationCollapsed]: false,\n [AppSettingSlug.SeedPhrase]: '',\n [AppSettingSlug.MaxAccounts]: 1,\n }\n}\n"],"mappings":";AAAA,SAAS,qBAAqB;;;ACEvB,IAAM,oBAAoB,MAA+B;AAC9D,SAAO;AAAA,IACL,0BAAwB,GAAG;AAAA,IAC3B,4BAAyB,GAAG;AAAA,IAC5B,sCAA8B,GAAG;AAAA,IACjC,gDAAmC,GAAG;AAAA,IACtC,8BAA0B,GAAG;AAAA,IAC7B,gCAA2B,GAAG;AAAA,EAChC;AACF;;;ADSO,IAAM,qBAAqB,cAAuC,kBAAkB,CAAC;","names":[]}
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/contexts/AppSettings/Provider.tsx
21
+ var Provider_exports = {};
22
+ __export(Provider_exports, {
23
+ AppSettingsProvider: () => AppSettingsProvider
24
+ });
25
+ module.exports = __toCommonJS(Provider_exports);
26
+ var import_react2 = require("react");
27
+
28
+ // src/contexts/AppSettings/Context.ts
29
+ var import_react = require("react");
30
+
31
+ // src/contexts/AppSettings/appSettingDefault.ts
32
+ var appSettingDefault = () => {
33
+ return {
34
+ ["darkmode" /* DarkMode */]: false,
35
+ ["developer" /* Developer */]: false,
36
+ ["navigationType" /* NavigationType */]: "menu",
37
+ ["navigationCollapsed" /* NavigationCollapsed */]: false,
38
+ ["seedPhrase" /* SeedPhrase */]: "",
39
+ ["maxAccounts" /* MaxAccounts */]: 1
40
+ };
41
+ };
42
+
43
+ // src/contexts/AppSettings/Context.ts
44
+ var AppSettingsContext = (0, import_react.createContext)(appSettingDefault());
45
+
46
+ // src/contexts/AppSettings/StorageBase.ts
47
+ var import_assert = require("@xylabs/assert");
48
+ var import_react_shared = require("@xyo-network/react-shared");
49
+ var AppSettingsStorageBase = class {
50
+ defaults;
51
+ prefix;
52
+ constructor(prefix = "AppSettings", defaults) {
53
+ this.prefix = prefix;
54
+ this.defaults = defaults ?? {};
55
+ }
56
+ getBoolean(name) {
57
+ const storedValue = localStorage.getItem(`${this.prefix}|${name}`);
58
+ if (!storedValue) {
59
+ (0, import_assert.assertEx)(typeof this.defaults[name] === "boolean", "Default value is not boolean");
60
+ const defaultValue = this.defaults[name];
61
+ (0, import_assert.assertEx)(defaultValue !== void 0, `Missing Default for ${name}`);
62
+ return defaultValue;
63
+ }
64
+ return storedValue !== "false";
65
+ }
66
+ getNumber(name) {
67
+ const storedValue = localStorage.getItem(`${this.prefix}|${name}`);
68
+ if (!storedValue) {
69
+ (0, import_assert.assertEx)(typeof this.defaults[name] === "number", "Default value is not a number");
70
+ const defaultValue = this.defaults[name];
71
+ (0, import_assert.assertEx)(defaultValue !== void 0, `Missing Default for ${name}`);
72
+ return defaultValue;
73
+ }
74
+ return parseFloat(storedValue);
75
+ }
76
+ getObject(name) {
77
+ const storedValue = localStorage.getItem(`${this.prefix}|${name}`);
78
+ const parsedStoredValue = storedValue ? JSON.parse(storedValue) : null;
79
+ if (!parsedStoredValue) {
80
+ (0, import_assert.assertEx)(typeof this.defaults[name] === "object", "Default value is not object");
81
+ return (0, import_assert.assertEx)(this.defaults[name], `Missing Default for ${name}`);
82
+ }
83
+ return parsedStoredValue;
84
+ }
85
+ getString(name) {
86
+ const storedValue = localStorage.getItem(`${this.prefix}|${name}`);
87
+ if (!storedValue) {
88
+ (0, import_react_shared.assertDefinedEx)(typeof this.defaults[name] === "string", "Default value is not string");
89
+ const defaultValue = this.defaults[name];
90
+ (0, import_assert.assertEx)(defaultValue !== void 0, `Missing Default for ${name}`);
91
+ return defaultValue;
92
+ }
93
+ return storedValue;
94
+ }
95
+ getStringArray(name) {
96
+ var _a;
97
+ const storedValue = (_a = localStorage.getItem(`${this.prefix}|${name}`)) == null ? void 0 : _a.split(",");
98
+ if (!storedValue) {
99
+ (0, import_react_shared.assertDefinedEx)(Array.isArray(this.defaults[name]), "Default value is not array");
100
+ const defaultValue = this.defaults[name];
101
+ (0, import_assert.assertEx)(defaultValue !== void 0, `Missing Default for ${name}`);
102
+ return defaultValue;
103
+ }
104
+ return storedValue;
105
+ }
106
+ setBoolean(name, value) {
107
+ localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value));
108
+ }
109
+ setNumber(name, value) {
110
+ localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value));
111
+ }
112
+ setObject(name, value) {
113
+ localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value));
114
+ }
115
+ setString(name, value) {
116
+ localStorage.setItem(`${this.prefix}|${name}`, value);
117
+ }
118
+ setStringArray(name, value) {
119
+ localStorage.setItem(`${this.prefix}|${name}`, value.join(","));
120
+ }
121
+ };
122
+
123
+ // src/contexts/AppSettings/Storage.ts
124
+ var AppSettingsStorage = class extends AppSettingsStorageBase {
125
+ constructor(prefix = "AppSettings", defaults) {
126
+ super(prefix, { ...appSettingDefault(), ...defaults });
127
+ }
128
+ get darkMode() {
129
+ return this.getBoolean("darkmode" /* DarkMode */);
130
+ }
131
+ set darkMode(value) {
132
+ this.setBoolean("darkmode" /* DarkMode */, value);
133
+ }
134
+ get developerMode() {
135
+ return this.getBoolean("developer" /* Developer */);
136
+ }
137
+ set developerMode(value) {
138
+ this.setBoolean("developer" /* Developer */, value);
139
+ }
140
+ get maxAccounts() {
141
+ return this.getNumber("maxAccounts" /* MaxAccounts */);
142
+ }
143
+ set maxAccounts(value) {
144
+ this.setNumber("maxAccounts" /* MaxAccounts */, value);
145
+ }
146
+ get navigationCollapsed() {
147
+ return this.getBoolean("navigationCollapsed" /* NavigationCollapsed */);
148
+ }
149
+ set navigationCollapsed(value) {
150
+ this.setBoolean("navigationCollapsed" /* NavigationCollapsed */, value);
151
+ }
152
+ get navigationType() {
153
+ return this.getString("navigationType" /* NavigationType */);
154
+ }
155
+ set navigationType(value) {
156
+ this.setString("navigationType" /* NavigationType */, value);
157
+ }
158
+ get seedPhrase() {
159
+ return this.getString("seedPhrase" /* SeedPhrase */);
160
+ }
161
+ set seedPhrase(value) {
162
+ this.setString("seedPhrase" /* SeedPhrase */, value);
163
+ }
164
+ };
165
+
166
+ // src/contexts/AppSettings/Provider.tsx
167
+ var import_jsx_runtime = require("react/jsx-runtime");
168
+ var AppSettingsProvider = ({
169
+ storage = new AppSettingsStorage(),
170
+ value,
171
+ children,
172
+ ...props
173
+ }) => {
174
+ const [developerMode, setDeveloperMode] = (0, import_react2.useState)(storage.developerMode);
175
+ const [darkMode, setDarkMode] = (0, import_react2.useState)(storage.darkMode);
176
+ const [navigationType, setNavigationType] = (0, import_react2.useState)(storage.navigationType);
177
+ const [navigationCollapsed, setNavigationCollapsed] = (0, import_react2.useState)(storage.navigationCollapsed);
178
+ const [seedPhrase, setSeedPhrase] = (0, import_react2.useState)(storage.seedPhrase);
179
+ const [maxAccounts, setMaxAccounts] = (0, import_react2.useState)(storage.maxAccounts);
180
+ const enableDeveloperMode = (value2) => {
181
+ storage.developerMode = value2;
182
+ setDeveloperMode(storage.developerMode);
183
+ };
184
+ const enableDarkMode = (value2) => {
185
+ storage.darkMode = value2;
186
+ setDarkMode(storage.darkMode);
187
+ };
188
+ const changeNavigationType = (value2) => {
189
+ storage.navigationType = value2;
190
+ setNavigationType(value2);
191
+ };
192
+ const changeNavigationCollapsed = (value2) => {
193
+ storage.navigationCollapsed = value2;
194
+ setNavigationCollapsed(value2);
195
+ };
196
+ const changeSeedPhrase = (value2) => {
197
+ storage.seedPhrase = value2;
198
+ setSeedPhrase(value2);
199
+ };
200
+ const changeMaxAccounts = (value2) => {
201
+ storage.maxAccounts = value2;
202
+ setMaxAccounts(value2);
203
+ };
204
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
205
+ AppSettingsContext.Provider,
206
+ {
207
+ value: {
208
+ changeMaxAccounts,
209
+ changeNavigationCollapsed,
210
+ changeNavigationType,
211
+ changeSeedPhrase,
212
+ darkMode,
213
+ developerMode,
214
+ enableDarkMode,
215
+ enableDeveloperMode,
216
+ maxAccounts,
217
+ navigationCollapsed,
218
+ navigationType,
219
+ seedPhrase,
220
+ ...value
221
+ },
222
+ ...props,
223
+ children
224
+ }
225
+ );
226
+ };
227
+ // Annotate the CommonJS export names for ESM import in node:
228
+ 0 && (module.exports = {
229
+ AppSettingsProvider
230
+ });
231
+ //# sourceMappingURL=Provider.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/contexts/AppSettings/Provider.tsx","../../../../src/contexts/AppSettings/Context.ts","../../../../src/contexts/AppSettings/appSettingDefault.ts","../../../../src/contexts/AppSettings/StorageBase.ts","../../../../src/contexts/AppSettings/Storage.ts"],"sourcesContent":["import { WithChildren } from '@xylabs/react-shared'\nimport { ProviderProps, useState } from 'react'\n\nimport { WebAppNavigationType } from '../../WebAppNavigationType'\nimport { AppSettingsContext, AppSettingsContextProps } from './Context'\nimport { AppSettingsStorage } from './Storage'\n\nexport interface AppSettingsProviderProps<T extends AppSettingsContextProps = AppSettingsContextProps> extends ProviderProps<T> {\n storage?: AppSettingsStorage\n}\n\nexport const AppSettingsProvider: React.FC<WithChildren<AppSettingsProviderProps>> = ({\n storage = new AppSettingsStorage(),\n value,\n children,\n ...props\n}) => {\n const [developerMode, setDeveloperMode] = useState(storage.developerMode)\n const [darkMode, setDarkMode] = useState(storage.darkMode)\n const [navigationType, setNavigationType] = useState(storage.navigationType)\n const [navigationCollapsed, setNavigationCollapsed] = useState(storage.navigationCollapsed)\n const [seedPhrase, setSeedPhrase] = useState(storage.seedPhrase)\n const [maxAccounts, setMaxAccounts] = useState(storage.maxAccounts)\n\n const enableDeveloperMode = (value: boolean) => {\n storage.developerMode = value\n setDeveloperMode(storage.developerMode)\n }\n\n const enableDarkMode = (value: boolean) => {\n storage.darkMode = value\n setDarkMode(storage.darkMode)\n }\n\n const changeNavigationType = (value: WebAppNavigationType) => {\n storage.navigationType = value\n setNavigationType(value)\n }\n\n const changeNavigationCollapsed = (value: boolean) => {\n storage.navigationCollapsed = value\n setNavigationCollapsed(value)\n }\n\n const changeSeedPhrase = (value: string) => {\n storage.seedPhrase = value\n setSeedPhrase(value)\n }\n\n const changeMaxAccounts = (value: number) => {\n storage.maxAccounts = value\n setMaxAccounts(value)\n }\n\n return (\n <AppSettingsContext.Provider\n value={{\n changeMaxAccounts,\n changeNavigationCollapsed,\n changeNavigationType,\n changeSeedPhrase,\n darkMode,\n developerMode,\n enableDarkMode,\n enableDeveloperMode,\n maxAccounts,\n navigationCollapsed,\n navigationType,\n seedPhrase,\n\n ...value,\n }}\n {...props}\n >\n {children}\n </AppSettingsContext.Provider>\n )\n}\n","import { createContext } from 'react'\n\nimport { WebAppNavigationType } from '../../WebAppNavigationType'\nimport { appSettingDefault } from './appSettingDefault'\n\nexport interface AppSettingsContextProps {\n changeMaxAccounts?: (value: number) => void\n changeNavigationCollapsed?: (value: boolean) => void\n changeNavigationType?: (value: WebAppNavigationType) => void\n changeSeedPhrase?: (value: string) => void\n darkMode?: boolean\n developerMode?: boolean\n enableDarkMode?: (value: boolean) => void\n enableDeveloperMode?: (value: boolean) => void\n maxAccounts?: number\n navigationCollapsed?: boolean\n navigationType?: WebAppNavigationType\n seedPhrase?: string\n}\n\nexport const AppSettingsContext = createContext<AppSettingsContextProps>(appSettingDefault())\n","import { AppSettingSlug } from './Slug'\n\nexport const appSettingDefault = (): Record<string, unknown> => {\n return {\n [AppSettingSlug.DarkMode]: false,\n [AppSettingSlug.Developer]: false,\n [AppSettingSlug.NavigationType]: 'menu',\n [AppSettingSlug.NavigationCollapsed]: false,\n [AppSettingSlug.SeedPhrase]: '',\n [AppSettingSlug.MaxAccounts]: 1,\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\n\nexport class AppSettingsStorageBase {\n private defaults: Record<string, unknown>\n private prefix: string\n constructor(prefix = 'AppSettings', defaults?: Record<string, unknown>) {\n this.prefix = prefix\n this.defaults = defaults ?? {}\n }\n\n public getBoolean(name: string): boolean {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n if (!storedValue) {\n assertEx(typeof this.defaults[name] === 'boolean', 'Default value is not boolean')\n const defaultValue = this.defaults[name] as boolean\n assertEx(defaultValue !== undefined, `Missing Default for ${name}`)\n return defaultValue\n }\n return storedValue !== 'false'\n }\n\n public getNumber(name: string): number {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n if (!storedValue) {\n assertEx(typeof this.defaults[name] === 'number', 'Default value is not a number')\n const defaultValue = this.defaults[name] as number\n assertEx(defaultValue !== undefined, `Missing Default for ${name}`)\n return defaultValue\n }\n return parseFloat(storedValue)\n }\n\n public getObject<T>(name: string): T {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n const parsedStoredValue = storedValue ? JSON.parse(storedValue) : null\n if (!parsedStoredValue) {\n assertEx(typeof this.defaults[name] === 'object', 'Default value is not object')\n return assertEx(this.defaults[name] as T, `Missing Default for ${name}`)\n }\n return parsedStoredValue as T\n }\n\n public getString(name: string) {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n if (!storedValue) {\n assertDefinedEx(typeof this.defaults[name] === 'string', 'Default value is not string')\n const defaultValue = this.defaults[name] as string\n assertEx(defaultValue !== undefined, `Missing Default for ${name}`)\n return defaultValue\n }\n return storedValue\n }\n\n public getStringArray(name: string) {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)?.split(',')\n if (!storedValue) {\n assertDefinedEx(Array.isArray(this.defaults[name]), 'Default value is not array')\n const defaultValue = this.defaults[name] as string[]\n assertEx(defaultValue !== undefined, `Missing Default for ${name}`)\n return defaultValue\n }\n return storedValue\n }\n\n public setBoolean(name: string, value: boolean) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n public setNumber(name: string, value: number) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n public setObject<T>(name: string, value: T) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n public setString(name: string, value: string) {\n localStorage.setItem(`${this.prefix}|${name}`, value)\n }\n\n public setStringArray(name: string, value: string[]) {\n localStorage.setItem(`${this.prefix}|${name}`, value.join(','))\n }\n}\n","import { WebAppNavigationType } from '../../WebAppNavigationType'\nimport { appSettingDefault } from './appSettingDefault'\nimport { AppSettingSlug } from './Slug'\nimport { AppSettingsStorageBase } from './StorageBase'\n\nexport class AppSettingsStorage extends AppSettingsStorageBase {\n constructor(prefix = 'AppSettings', defaults?: Record<string, unknown>) {\n super(prefix, { ...appSettingDefault(), ...defaults })\n }\n\n get darkMode() {\n return this.getBoolean(AppSettingSlug.DarkMode)\n }\n\n set darkMode(value: boolean) {\n this.setBoolean(AppSettingSlug.DarkMode, value)\n }\n\n get developerMode() {\n return this.getBoolean(AppSettingSlug.Developer)\n }\n\n set developerMode(value: boolean) {\n this.setBoolean(AppSettingSlug.Developer, value)\n }\n\n get maxAccounts() {\n return this.getNumber(AppSettingSlug.MaxAccounts)\n }\n\n set maxAccounts(value: number) {\n this.setNumber(AppSettingSlug.MaxAccounts, value)\n }\n\n get navigationCollapsed() {\n return this.getBoolean(AppSettingSlug.NavigationCollapsed)\n }\n\n set navigationCollapsed(value: boolean) {\n this.setBoolean(AppSettingSlug.NavigationCollapsed, value)\n }\n\n get navigationType() {\n return this.getString(AppSettingSlug.NavigationType) as WebAppNavigationType\n }\n\n set navigationType(value: WebAppNavigationType) {\n this.setString(AppSettingSlug.NavigationType, value)\n }\n\n get seedPhrase() {\n return this.getString(AppSettingSlug.SeedPhrase)\n }\n\n set seedPhrase(value: string) {\n this.setString(AppSettingSlug.SeedPhrase, value)\n }\n}\n"],"mappings":"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","names":["import_react","value"]}
@@ -0,0 +1,9 @@
1
+ import { WithChildren } from '@xylabs/react-shared';
2
+ import { ProviderProps } from 'react';
3
+ import { AppSettingsContextProps } from './Context';
4
+ import { AppSettingsStorage } from './Storage';
5
+ export interface AppSettingsProviderProps<T extends AppSettingsContextProps = AppSettingsContextProps> extends ProviderProps<T> {
6
+ storage?: AppSettingsStorage;
7
+ }
8
+ export declare const AppSettingsProvider: React.FC<WithChildren<AppSettingsProviderProps>>;
9
+ //# sourceMappingURL=Provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAY,MAAM,OAAO,CAAA;AAG/C,OAAO,EAAsB,uBAAuB,EAAE,MAAM,WAAW,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAE9C,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS,uBAAuB,GAAG,uBAAuB,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;IAC7H,OAAO,CAAC,EAAE,kBAAkB,CAAA;CAC7B;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAkEhF,CAAA"}
@@ -1,42 +1,158 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
1
+ // src/contexts/AppSettings/Provider.tsx
2
+ import { useState } from "react";
3
+
4
+ // src/contexts/AppSettings/Context.ts
5
+ import { createContext } from "react";
6
+
7
+ // src/contexts/AppSettings/appSettingDefault.ts
8
+ var appSettingDefault = () => {
9
+ return {
10
+ ["darkmode" /* DarkMode */]: false,
11
+ ["developer" /* Developer */]: false,
12
+ ["navigationType" /* NavigationType */]: "menu",
13
+ ["navigationCollapsed" /* NavigationCollapsed */]: false,
14
+ ["seedPhrase" /* SeedPhrase */]: "",
15
+ ["maxAccounts" /* MaxAccounts */]: 1
16
+ };
9
17
  };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+
19
+ // src/contexts/AppSettings/Context.ts
20
+ var AppSettingsContext = createContext(appSettingDefault());
21
+
22
+ // src/contexts/AppSettings/StorageBase.ts
23
+ import { assertEx } from "@xylabs/assert";
24
+ import { assertDefinedEx } from "@xyo-network/react-shared";
25
+ var AppSettingsStorageBase = class {
26
+ defaults;
27
+ prefix;
28
+ constructor(prefix = "AppSettings", defaults) {
29
+ this.prefix = prefix;
30
+ this.defaults = defaults ?? {};
31
+ }
32
+ getBoolean(name) {
33
+ const storedValue = localStorage.getItem(`${this.prefix}|${name}`);
34
+ if (!storedValue) {
35
+ assertEx(typeof this.defaults[name] === "boolean", "Default value is not boolean");
36
+ const defaultValue = this.defaults[name];
37
+ assertEx(defaultValue !== void 0, `Missing Default for ${name}`);
38
+ return defaultValue;
39
+ }
40
+ return storedValue !== "false";
41
+ }
42
+ getNumber(name) {
43
+ const storedValue = localStorage.getItem(`${this.prefix}|${name}`);
44
+ if (!storedValue) {
45
+ assertEx(typeof this.defaults[name] === "number", "Default value is not a number");
46
+ const defaultValue = this.defaults[name];
47
+ assertEx(defaultValue !== void 0, `Missing Default for ${name}`);
48
+ return defaultValue;
49
+ }
50
+ return parseFloat(storedValue);
51
+ }
52
+ getObject(name) {
53
+ const storedValue = localStorage.getItem(`${this.prefix}|${name}`);
54
+ const parsedStoredValue = storedValue ? JSON.parse(storedValue) : null;
55
+ if (!parsedStoredValue) {
56
+ assertEx(typeof this.defaults[name] === "object", "Default value is not object");
57
+ return assertEx(this.defaults[name], `Missing Default for ${name}`);
58
+ }
59
+ return parsedStoredValue;
60
+ }
61
+ getString(name) {
62
+ const storedValue = localStorage.getItem(`${this.prefix}|${name}`);
63
+ if (!storedValue) {
64
+ assertDefinedEx(typeof this.defaults[name] === "string", "Default value is not string");
65
+ const defaultValue = this.defaults[name];
66
+ assertEx(defaultValue !== void 0, `Missing Default for ${name}`);
67
+ return defaultValue;
68
+ }
69
+ return storedValue;
70
+ }
71
+ getStringArray(name) {
72
+ var _a;
73
+ const storedValue = (_a = localStorage.getItem(`${this.prefix}|${name}`)) == null ? void 0 : _a.split(",");
74
+ if (!storedValue) {
75
+ assertDefinedEx(Array.isArray(this.defaults[name]), "Default value is not array");
76
+ const defaultValue = this.defaults[name];
77
+ assertEx(defaultValue !== void 0, `Missing Default for ${name}`);
78
+ return defaultValue;
79
+ }
80
+ return storedValue;
81
+ }
82
+ setBoolean(name, value) {
83
+ localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value));
84
+ }
85
+ setNumber(name, value) {
86
+ localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value));
87
+ }
88
+ setObject(name, value) {
89
+ localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value));
90
+ }
91
+ setString(name, value) {
92
+ localStorage.setItem(`${this.prefix}|${name}`, value);
93
+ }
94
+ setStringArray(name, value) {
95
+ localStorage.setItem(`${this.prefix}|${name}`, value.join(","));
15
96
  }
16
- return to;
17
97
  };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var Provider_exports = {};
20
- __export(Provider_exports, {
21
- AppSettingsProvider: () => AppSettingsProvider
22
- });
23
- module.exports = __toCommonJS(Provider_exports);
24
- var import_jsx_runtime = require("react/jsx-runtime");
25
- var import_react = require("react");
26
- var import_Context = require("./Context");
27
- var import_Storage = require("./Storage");
28
- const AppSettingsProvider = ({
29
- storage = new import_Storage.AppSettingsStorage(),
98
+
99
+ // src/contexts/AppSettings/Storage.ts
100
+ var AppSettingsStorage = class extends AppSettingsStorageBase {
101
+ constructor(prefix = "AppSettings", defaults) {
102
+ super(prefix, { ...appSettingDefault(), ...defaults });
103
+ }
104
+ get darkMode() {
105
+ return this.getBoolean("darkmode" /* DarkMode */);
106
+ }
107
+ set darkMode(value) {
108
+ this.setBoolean("darkmode" /* DarkMode */, value);
109
+ }
110
+ get developerMode() {
111
+ return this.getBoolean("developer" /* Developer */);
112
+ }
113
+ set developerMode(value) {
114
+ this.setBoolean("developer" /* Developer */, value);
115
+ }
116
+ get maxAccounts() {
117
+ return this.getNumber("maxAccounts" /* MaxAccounts */);
118
+ }
119
+ set maxAccounts(value) {
120
+ this.setNumber("maxAccounts" /* MaxAccounts */, value);
121
+ }
122
+ get navigationCollapsed() {
123
+ return this.getBoolean("navigationCollapsed" /* NavigationCollapsed */);
124
+ }
125
+ set navigationCollapsed(value) {
126
+ this.setBoolean("navigationCollapsed" /* NavigationCollapsed */, value);
127
+ }
128
+ get navigationType() {
129
+ return this.getString("navigationType" /* NavigationType */);
130
+ }
131
+ set navigationType(value) {
132
+ this.setString("navigationType" /* NavigationType */, value);
133
+ }
134
+ get seedPhrase() {
135
+ return this.getString("seedPhrase" /* SeedPhrase */);
136
+ }
137
+ set seedPhrase(value) {
138
+ this.setString("seedPhrase" /* SeedPhrase */, value);
139
+ }
140
+ };
141
+
142
+ // src/contexts/AppSettings/Provider.tsx
143
+ import { jsx } from "react/jsx-runtime";
144
+ var AppSettingsProvider = ({
145
+ storage = new AppSettingsStorage(),
30
146
  value,
31
147
  children,
32
148
  ...props
33
149
  }) => {
34
- const [developerMode, setDeveloperMode] = (0, import_react.useState)(storage.developerMode);
35
- const [darkMode, setDarkMode] = (0, import_react.useState)(storage.darkMode);
36
- const [navigationType, setNavigationType] = (0, import_react.useState)(storage.navigationType);
37
- const [navigationCollapsed, setNavigationCollapsed] = (0, import_react.useState)(storage.navigationCollapsed);
38
- const [seedPhrase, setSeedPhrase] = (0, import_react.useState)(storage.seedPhrase);
39
- const [maxAccounts, setMaxAccounts] = (0, import_react.useState)(storage.maxAccounts);
150
+ const [developerMode, setDeveloperMode] = useState(storage.developerMode);
151
+ const [darkMode, setDarkMode] = useState(storage.darkMode);
152
+ const [navigationType, setNavigationType] = useState(storage.navigationType);
153
+ const [navigationCollapsed, setNavigationCollapsed] = useState(storage.navigationCollapsed);
154
+ const [seedPhrase, setSeedPhrase] = useState(storage.seedPhrase);
155
+ const [maxAccounts, setMaxAccounts] = useState(storage.maxAccounts);
40
156
  const enableDeveloperMode = (value2) => {
41
157
  storage.developerMode = value2;
42
158
  setDeveloperMode(storage.developerMode);
@@ -61,8 +177,8 @@ const AppSettingsProvider = ({
61
177
  storage.maxAccounts = value2;
62
178
  setMaxAccounts(value2);
63
179
  };
64
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
65
- import_Context.AppSettingsContext.Provider,
180
+ return /* @__PURE__ */ jsx(
181
+ AppSettingsContext.Provider,
66
182
  {
67
183
  value: {
68
184
  changeMaxAccounts,
@@ -84,8 +200,7 @@ const AppSettingsProvider = ({
84
200
  }
85
201
  );
86
202
  };
87
- // Annotate the CommonJS export names for ESM import in node:
88
- 0 && (module.exports = {
203
+ export {
89
204
  AppSettingsProvider
90
- });
205
+ };
91
206
  //# sourceMappingURL=Provider.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/contexts/AppSettings/Provider.tsx"],"sourcesContent":["import { WithChildren } from '@xylabs/react-shared'\nimport { ProviderProps, useState } from 'react'\n\nimport { WebAppNavigationType } from '../../WebAppNavigationType'\nimport { AppSettingsContext, AppSettingsContextProps } from './Context'\nimport { AppSettingsStorage } from './Storage'\n\nexport interface AppSettingsProviderProps<T extends AppSettingsContextProps = AppSettingsContextProps> extends ProviderProps<T> {\n storage?: AppSettingsStorage\n}\n\nexport const AppSettingsProvider: React.FC<WithChildren<AppSettingsProviderProps>> = ({\n storage = new AppSettingsStorage(),\n value,\n children,\n ...props\n}) => {\n const [developerMode, setDeveloperMode] = useState(storage.developerMode)\n const [darkMode, setDarkMode] = useState(storage.darkMode)\n const [navigationType, setNavigationType] = useState(storage.navigationType)\n const [navigationCollapsed, setNavigationCollapsed] = useState(storage.navigationCollapsed)\n const [seedPhrase, setSeedPhrase] = useState(storage.seedPhrase)\n const [maxAccounts, setMaxAccounts] = useState(storage.maxAccounts)\n\n const enableDeveloperMode = (value: boolean) => {\n storage.developerMode = value\n setDeveloperMode(storage.developerMode)\n }\n\n const enableDarkMode = (value: boolean) => {\n storage.darkMode = value\n setDarkMode(storage.darkMode)\n }\n\n const changeNavigationType = (value: WebAppNavigationType) => {\n storage.navigationType = value\n setNavigationType(value)\n }\n\n const changeNavigationCollapsed = (value: boolean) => {\n storage.navigationCollapsed = value\n setNavigationCollapsed(value)\n }\n\n const changeSeedPhrase = (value: string) => {\n storage.seedPhrase = value\n setSeedPhrase(value)\n }\n\n const changeMaxAccounts = (value: number) => {\n storage.maxAccounts = value\n setMaxAccounts(value)\n }\n\n return (\n <AppSettingsContext.Provider\n value={{\n changeMaxAccounts,\n changeNavigationCollapsed,\n changeNavigationType,\n changeSeedPhrase,\n darkMode,\n developerMode,\n enableDarkMode,\n enableDeveloperMode,\n maxAccounts,\n navigationCollapsed,\n navigationType,\n seedPhrase,\n\n ...value,\n }}\n {...props}\n >\n {children}\n </AppSettingsContext.Provider>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAuDI;AAtDJ,mBAAwC;AAGxC,qBAA4D;AAC5D,qBAAmC;AAM5B,MAAM,sBAAwE,CAAC;AAAA,EACpF,UAAU,IAAI,kCAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,CAAC,eAAe,gBAAgB,QAAI,uBAAS,QAAQ,aAAa;AACxE,QAAM,CAAC,UAAU,WAAW,QAAI,uBAAS,QAAQ,QAAQ;AACzD,QAAM,CAAC,gBAAgB,iBAAiB,QAAI,uBAAS,QAAQ,cAAc;AAC3E,QAAM,CAAC,qBAAqB,sBAAsB,QAAI,uBAAS,QAAQ,mBAAmB;AAC1F,QAAM,CAAC,YAAY,aAAa,QAAI,uBAAS,QAAQ,UAAU;AAC/D,QAAM,CAAC,aAAa,cAAc,QAAI,uBAAS,QAAQ,WAAW;AAElE,QAAM,sBAAsB,CAACA,WAAmB;AAC9C,YAAQ,gBAAgBA;AACxB,qBAAiB,QAAQ,aAAa;AAAA,EACxC;AAEA,QAAM,iBAAiB,CAACA,WAAmB;AACzC,YAAQ,WAAWA;AACnB,gBAAY,QAAQ,QAAQ;AAAA,EAC9B;AAEA,QAAM,uBAAuB,CAACA,WAAgC;AAC5D,YAAQ,iBAAiBA;AACzB,sBAAkBA,MAAK;AAAA,EACzB;AAEA,QAAM,4BAA4B,CAACA,WAAmB;AACpD,YAAQ,sBAAsBA;AAC9B,2BAAuBA,MAAK;AAAA,EAC9B;AAEA,QAAM,mBAAmB,CAACA,WAAkB;AAC1C,YAAQ,aAAaA;AACrB,kBAAcA,MAAK;AAAA,EACrB;AAEA,QAAM,oBAAoB,CAACA,WAAkB;AAC3C,YAAQ,cAAcA;AACtB,mBAAeA,MAAK;AAAA,EACtB;AAEA,SACE;AAAA,IAAC,kCAAmB;AAAA,IAAnB;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QAEA,GAAG;AAAA,MACL;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;","names":["value"]}
1
+ {"version":3,"sources":["../../../../src/contexts/AppSettings/Provider.tsx","../../../../src/contexts/AppSettings/Context.ts","../../../../src/contexts/AppSettings/appSettingDefault.ts","../../../../src/contexts/AppSettings/StorageBase.ts","../../../../src/contexts/AppSettings/Storage.ts"],"sourcesContent":["import { WithChildren } from '@xylabs/react-shared'\nimport { ProviderProps, useState } from 'react'\n\nimport { WebAppNavigationType } from '../../WebAppNavigationType'\nimport { AppSettingsContext, AppSettingsContextProps } from './Context'\nimport { AppSettingsStorage } from './Storage'\n\nexport interface AppSettingsProviderProps<T extends AppSettingsContextProps = AppSettingsContextProps> extends ProviderProps<T> {\n storage?: AppSettingsStorage\n}\n\nexport const AppSettingsProvider: React.FC<WithChildren<AppSettingsProviderProps>> = ({\n storage = new AppSettingsStorage(),\n value,\n children,\n ...props\n}) => {\n const [developerMode, setDeveloperMode] = useState(storage.developerMode)\n const [darkMode, setDarkMode] = useState(storage.darkMode)\n const [navigationType, setNavigationType] = useState(storage.navigationType)\n const [navigationCollapsed, setNavigationCollapsed] = useState(storage.navigationCollapsed)\n const [seedPhrase, setSeedPhrase] = useState(storage.seedPhrase)\n const [maxAccounts, setMaxAccounts] = useState(storage.maxAccounts)\n\n const enableDeveloperMode = (value: boolean) => {\n storage.developerMode = value\n setDeveloperMode(storage.developerMode)\n }\n\n const enableDarkMode = (value: boolean) => {\n storage.darkMode = value\n setDarkMode(storage.darkMode)\n }\n\n const changeNavigationType = (value: WebAppNavigationType) => {\n storage.navigationType = value\n setNavigationType(value)\n }\n\n const changeNavigationCollapsed = (value: boolean) => {\n storage.navigationCollapsed = value\n setNavigationCollapsed(value)\n }\n\n const changeSeedPhrase = (value: string) => {\n storage.seedPhrase = value\n setSeedPhrase(value)\n }\n\n const changeMaxAccounts = (value: number) => {\n storage.maxAccounts = value\n setMaxAccounts(value)\n }\n\n return (\n <AppSettingsContext.Provider\n value={{\n changeMaxAccounts,\n changeNavigationCollapsed,\n changeNavigationType,\n changeSeedPhrase,\n darkMode,\n developerMode,\n enableDarkMode,\n enableDeveloperMode,\n maxAccounts,\n navigationCollapsed,\n navigationType,\n seedPhrase,\n\n ...value,\n }}\n {...props}\n >\n {children}\n </AppSettingsContext.Provider>\n )\n}\n","import { createContext } from 'react'\n\nimport { WebAppNavigationType } from '../../WebAppNavigationType'\nimport { appSettingDefault } from './appSettingDefault'\n\nexport interface AppSettingsContextProps {\n changeMaxAccounts?: (value: number) => void\n changeNavigationCollapsed?: (value: boolean) => void\n changeNavigationType?: (value: WebAppNavigationType) => void\n changeSeedPhrase?: (value: string) => void\n darkMode?: boolean\n developerMode?: boolean\n enableDarkMode?: (value: boolean) => void\n enableDeveloperMode?: (value: boolean) => void\n maxAccounts?: number\n navigationCollapsed?: boolean\n navigationType?: WebAppNavigationType\n seedPhrase?: string\n}\n\nexport const AppSettingsContext = createContext<AppSettingsContextProps>(appSettingDefault())\n","import { AppSettingSlug } from './Slug'\n\nexport const appSettingDefault = (): Record<string, unknown> => {\n return {\n [AppSettingSlug.DarkMode]: false,\n [AppSettingSlug.Developer]: false,\n [AppSettingSlug.NavigationType]: 'menu',\n [AppSettingSlug.NavigationCollapsed]: false,\n [AppSettingSlug.SeedPhrase]: '',\n [AppSettingSlug.MaxAccounts]: 1,\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\n\nexport class AppSettingsStorageBase {\n private defaults: Record<string, unknown>\n private prefix: string\n constructor(prefix = 'AppSettings', defaults?: Record<string, unknown>) {\n this.prefix = prefix\n this.defaults = defaults ?? {}\n }\n\n public getBoolean(name: string): boolean {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n if (!storedValue) {\n assertEx(typeof this.defaults[name] === 'boolean', 'Default value is not boolean')\n const defaultValue = this.defaults[name] as boolean\n assertEx(defaultValue !== undefined, `Missing Default for ${name}`)\n return defaultValue\n }\n return storedValue !== 'false'\n }\n\n public getNumber(name: string): number {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n if (!storedValue) {\n assertEx(typeof this.defaults[name] === 'number', 'Default value is not a number')\n const defaultValue = this.defaults[name] as number\n assertEx(defaultValue !== undefined, `Missing Default for ${name}`)\n return defaultValue\n }\n return parseFloat(storedValue)\n }\n\n public getObject<T>(name: string): T {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n const parsedStoredValue = storedValue ? JSON.parse(storedValue) : null\n if (!parsedStoredValue) {\n assertEx(typeof this.defaults[name] === 'object', 'Default value is not object')\n return assertEx(this.defaults[name] as T, `Missing Default for ${name}`)\n }\n return parsedStoredValue as T\n }\n\n public getString(name: string) {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n if (!storedValue) {\n assertDefinedEx(typeof this.defaults[name] === 'string', 'Default value is not string')\n const defaultValue = this.defaults[name] as string\n assertEx(defaultValue !== undefined, `Missing Default for ${name}`)\n return defaultValue\n }\n return storedValue\n }\n\n public getStringArray(name: string) {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)?.split(',')\n if (!storedValue) {\n assertDefinedEx(Array.isArray(this.defaults[name]), 'Default value is not array')\n const defaultValue = this.defaults[name] as string[]\n assertEx(defaultValue !== undefined, `Missing Default for ${name}`)\n return defaultValue\n }\n return storedValue\n }\n\n public setBoolean(name: string, value: boolean) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n public setNumber(name: string, value: number) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n public setObject<T>(name: string, value: T) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n public setString(name: string, value: string) {\n localStorage.setItem(`${this.prefix}|${name}`, value)\n }\n\n public setStringArray(name: string, value: string[]) {\n localStorage.setItem(`${this.prefix}|${name}`, value.join(','))\n }\n}\n","import { WebAppNavigationType } from '../../WebAppNavigationType'\nimport { appSettingDefault } from './appSettingDefault'\nimport { AppSettingSlug } from './Slug'\nimport { AppSettingsStorageBase } from './StorageBase'\n\nexport class AppSettingsStorage extends AppSettingsStorageBase {\n constructor(prefix = 'AppSettings', defaults?: Record<string, unknown>) {\n super(prefix, { ...appSettingDefault(), ...defaults })\n }\n\n get darkMode() {\n return this.getBoolean(AppSettingSlug.DarkMode)\n }\n\n set darkMode(value: boolean) {\n this.setBoolean(AppSettingSlug.DarkMode, value)\n }\n\n get developerMode() {\n return this.getBoolean(AppSettingSlug.Developer)\n }\n\n set developerMode(value: boolean) {\n this.setBoolean(AppSettingSlug.Developer, value)\n }\n\n get maxAccounts() {\n return this.getNumber(AppSettingSlug.MaxAccounts)\n }\n\n set maxAccounts(value: number) {\n this.setNumber(AppSettingSlug.MaxAccounts, value)\n }\n\n get navigationCollapsed() {\n return this.getBoolean(AppSettingSlug.NavigationCollapsed)\n }\n\n set navigationCollapsed(value: boolean) {\n this.setBoolean(AppSettingSlug.NavigationCollapsed, value)\n }\n\n get navigationType() {\n return this.getString(AppSettingSlug.NavigationType) as WebAppNavigationType\n }\n\n set navigationType(value: WebAppNavigationType) {\n this.setString(AppSettingSlug.NavigationType, value)\n }\n\n get seedPhrase() {\n return this.getString(AppSettingSlug.SeedPhrase)\n }\n\n set seedPhrase(value: string) {\n this.setString(AppSettingSlug.SeedPhrase, value)\n }\n}\n"],"mappings":"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","names":["value"]}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/contexts/AppSettings/Slug.ts
21
+ var Slug_exports = {};
22
+ __export(Slug_exports, {
23
+ AppSettingSlug: () => AppSettingSlug
24
+ });
25
+ module.exports = __toCommonJS(Slug_exports);
26
+ var AppSettingSlug = /* @__PURE__ */ ((AppSettingSlug2) => {
27
+ AppSettingSlug2["DarkMode"] = "darkmode";
28
+ AppSettingSlug2["Developer"] = "developer";
29
+ AppSettingSlug2["NavigationType"] = "navigationType";
30
+ AppSettingSlug2["NavigationCollapsed"] = "navigationCollapsed";
31
+ AppSettingSlug2["SeedPhrase"] = "seedPhrase";
32
+ AppSettingSlug2["MaxAccounts"] = "maxAccounts";
33
+ return AppSettingSlug2;
34
+ })(AppSettingSlug || {});
35
+ // Annotate the CommonJS export names for ESM import in node:
36
+ 0 && (module.exports = {
37
+ AppSettingSlug
38
+ });
39
+ //# sourceMappingURL=Slug.cjs.map