@xyo-network/react-app-settings 2.81.10 → 2.83.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (278) hide show
  1. package/dist/browser/index.d.ts +78 -4
  2. package/dist/browser/{index.js → index.mjs} +101 -92
  3. package/dist/browser/index.mjs.map +1 -0
  4. package/package.json +11 -27
  5. package/src/components/DarkModeIconButton.tsx +5 -4
  6. package/src/components/Developer.tsx +1 -1
  7. package/src/components/index.ts +2 -2
  8. package/src/contexts/AppSettings/Context.ts +2 -2
  9. package/src/contexts/AppSettings/Provider.tsx +21 -19
  10. package/src/contexts/AppSettings/Storage.ts +4 -4
  11. package/src/contexts/AppSettings/appSettingDefault.ts +1 -1
  12. package/src/contexts/AppSettings/index.ts +6 -6
  13. package/src/contexts/AppSettings/useAppSettings.ts +1 -1
  14. package/src/contexts/index.ts +1 -1
  15. package/src/index.ts +3 -3
  16. package/xy.config.ts +12 -0
  17. package/dist/browser/WebAppNavigationType.d.cts +0 -2
  18. package/dist/browser/WebAppNavigationType.d.cts.map +0 -1
  19. package/dist/browser/WebAppNavigationType.d.mts +0 -2
  20. package/dist/browser/WebAppNavigationType.d.mts.map +0 -1
  21. package/dist/browser/WebAppNavigationType.d.ts +0 -2
  22. package/dist/browser/WebAppNavigationType.d.ts.map +0 -1
  23. package/dist/browser/components/DarkModeIconButton.d.cts +0 -3
  24. package/dist/browser/components/DarkModeIconButton.d.cts.map +0 -1
  25. package/dist/browser/components/DarkModeIconButton.d.mts +0 -3
  26. package/dist/browser/components/DarkModeIconButton.d.mts.map +0 -1
  27. package/dist/browser/components/DarkModeIconButton.d.ts +0 -3
  28. package/dist/browser/components/DarkModeIconButton.d.ts.map +0 -1
  29. package/dist/browser/components/Developer.d.cts +0 -5
  30. package/dist/browser/components/Developer.d.cts.map +0 -1
  31. package/dist/browser/components/Developer.d.mts +0 -5
  32. package/dist/browser/components/Developer.d.mts.map +0 -1
  33. package/dist/browser/components/Developer.d.ts +0 -5
  34. package/dist/browser/components/Developer.d.ts.map +0 -1
  35. package/dist/browser/components/index.d.cts +0 -3
  36. package/dist/browser/components/index.d.cts.map +0 -1
  37. package/dist/browser/components/index.d.mts +0 -3
  38. package/dist/browser/components/index.d.mts.map +0 -1
  39. package/dist/browser/components/index.d.ts +0 -3
  40. package/dist/browser/components/index.d.ts.map +0 -1
  41. package/dist/browser/contexts/AppSettings/Context.d.cts +0 -17
  42. package/dist/browser/contexts/AppSettings/Context.d.cts.map +0 -1
  43. package/dist/browser/contexts/AppSettings/Context.d.mts +0 -17
  44. package/dist/browser/contexts/AppSettings/Context.d.mts.map +0 -1
  45. package/dist/browser/contexts/AppSettings/Context.d.ts +0 -17
  46. package/dist/browser/contexts/AppSettings/Context.d.ts.map +0 -1
  47. package/dist/browser/contexts/AppSettings/Provider.d.cts +0 -9
  48. package/dist/browser/contexts/AppSettings/Provider.d.cts.map +0 -1
  49. package/dist/browser/contexts/AppSettings/Provider.d.mts +0 -9
  50. package/dist/browser/contexts/AppSettings/Provider.d.mts.map +0 -1
  51. package/dist/browser/contexts/AppSettings/Provider.d.ts +0 -9
  52. package/dist/browser/contexts/AppSettings/Provider.d.ts.map +0 -1
  53. package/dist/browser/contexts/AppSettings/Slug.d.cts +0 -9
  54. package/dist/browser/contexts/AppSettings/Slug.d.cts.map +0 -1
  55. package/dist/browser/contexts/AppSettings/Slug.d.mts +0 -9
  56. package/dist/browser/contexts/AppSettings/Slug.d.mts.map +0 -1
  57. package/dist/browser/contexts/AppSettings/Slug.d.ts +0 -9
  58. package/dist/browser/contexts/AppSettings/Slug.d.ts.map +0 -1
  59. package/dist/browser/contexts/AppSettings/Storage.d.cts +0 -18
  60. package/dist/browser/contexts/AppSettings/Storage.d.cts.map +0 -1
  61. package/dist/browser/contexts/AppSettings/Storage.d.mts +0 -18
  62. package/dist/browser/contexts/AppSettings/Storage.d.mts.map +0 -1
  63. package/dist/browser/contexts/AppSettings/Storage.d.ts +0 -18
  64. package/dist/browser/contexts/AppSettings/Storage.d.ts.map +0 -1
  65. package/dist/browser/contexts/AppSettings/StorageBase.d.cts +0 -16
  66. package/dist/browser/contexts/AppSettings/StorageBase.d.cts.map +0 -1
  67. package/dist/browser/contexts/AppSettings/StorageBase.d.mts +0 -16
  68. package/dist/browser/contexts/AppSettings/StorageBase.d.mts.map +0 -1
  69. package/dist/browser/contexts/AppSettings/StorageBase.d.ts +0 -16
  70. package/dist/browser/contexts/AppSettings/StorageBase.d.ts.map +0 -1
  71. package/dist/browser/contexts/AppSettings/appSettingDefault.d.cts +0 -2
  72. package/dist/browser/contexts/AppSettings/appSettingDefault.d.cts.map +0 -1
  73. package/dist/browser/contexts/AppSettings/appSettingDefault.d.mts +0 -2
  74. package/dist/browser/contexts/AppSettings/appSettingDefault.d.mts.map +0 -1
  75. package/dist/browser/contexts/AppSettings/appSettingDefault.d.ts +0 -2
  76. package/dist/browser/contexts/AppSettings/appSettingDefault.d.ts.map +0 -1
  77. package/dist/browser/contexts/AppSettings/index.d.cts +0 -7
  78. package/dist/browser/contexts/AppSettings/index.d.cts.map +0 -1
  79. package/dist/browser/contexts/AppSettings/index.d.mts +0 -7
  80. package/dist/browser/contexts/AppSettings/index.d.mts.map +0 -1
  81. package/dist/browser/contexts/AppSettings/index.d.ts +0 -7
  82. package/dist/browser/contexts/AppSettings/index.d.ts.map +0 -1
  83. package/dist/browser/contexts/AppSettings/useAppSettings.d.cts +0 -2
  84. package/dist/browser/contexts/AppSettings/useAppSettings.d.cts.map +0 -1
  85. package/dist/browser/contexts/AppSettings/useAppSettings.d.mts +0 -2
  86. package/dist/browser/contexts/AppSettings/useAppSettings.d.mts.map +0 -1
  87. package/dist/browser/contexts/AppSettings/useAppSettings.d.ts +0 -2
  88. package/dist/browser/contexts/AppSettings/useAppSettings.d.ts.map +0 -1
  89. package/dist/browser/contexts/index.d.cts +0 -2
  90. package/dist/browser/contexts/index.d.cts.map +0 -1
  91. package/dist/browser/contexts/index.d.mts +0 -2
  92. package/dist/browser/contexts/index.d.mts.map +0 -1
  93. package/dist/browser/contexts/index.d.ts +0 -2
  94. package/dist/browser/contexts/index.d.ts.map +0 -1
  95. package/dist/browser/index.cjs +0 -272
  96. package/dist/browser/index.cjs.map +0 -1
  97. package/dist/browser/index.d.cts +0 -4
  98. package/dist/browser/index.d.cts.map +0 -1
  99. package/dist/browser/index.d.mts +0 -4
  100. package/dist/browser/index.d.mts.map +0 -1
  101. package/dist/browser/index.d.ts.map +0 -1
  102. package/dist/browser/index.js.map +0 -1
  103. package/dist/neutral/WebAppNavigationType.d.cts +0 -2
  104. package/dist/neutral/WebAppNavigationType.d.cts.map +0 -1
  105. package/dist/neutral/WebAppNavigationType.d.mts +0 -2
  106. package/dist/neutral/WebAppNavigationType.d.mts.map +0 -1
  107. package/dist/neutral/WebAppNavigationType.d.ts +0 -2
  108. package/dist/neutral/WebAppNavigationType.d.ts.map +0 -1
  109. package/dist/neutral/components/DarkModeIconButton.d.cts +0 -3
  110. package/dist/neutral/components/DarkModeIconButton.d.cts.map +0 -1
  111. package/dist/neutral/components/DarkModeIconButton.d.mts +0 -3
  112. package/dist/neutral/components/DarkModeIconButton.d.mts.map +0 -1
  113. package/dist/neutral/components/DarkModeIconButton.d.ts +0 -3
  114. package/dist/neutral/components/DarkModeIconButton.d.ts.map +0 -1
  115. package/dist/neutral/components/Developer.d.cts +0 -5
  116. package/dist/neutral/components/Developer.d.cts.map +0 -1
  117. package/dist/neutral/components/Developer.d.mts +0 -5
  118. package/dist/neutral/components/Developer.d.mts.map +0 -1
  119. package/dist/neutral/components/Developer.d.ts +0 -5
  120. package/dist/neutral/components/Developer.d.ts.map +0 -1
  121. package/dist/neutral/components/index.d.cts +0 -3
  122. package/dist/neutral/components/index.d.cts.map +0 -1
  123. package/dist/neutral/components/index.d.mts +0 -3
  124. package/dist/neutral/components/index.d.mts.map +0 -1
  125. package/dist/neutral/components/index.d.ts +0 -3
  126. package/dist/neutral/components/index.d.ts.map +0 -1
  127. package/dist/neutral/contexts/AppSettings/Context.d.cts +0 -17
  128. package/dist/neutral/contexts/AppSettings/Context.d.cts.map +0 -1
  129. package/dist/neutral/contexts/AppSettings/Context.d.mts +0 -17
  130. package/dist/neutral/contexts/AppSettings/Context.d.mts.map +0 -1
  131. package/dist/neutral/contexts/AppSettings/Context.d.ts +0 -17
  132. package/dist/neutral/contexts/AppSettings/Context.d.ts.map +0 -1
  133. package/dist/neutral/contexts/AppSettings/Provider.d.cts +0 -9
  134. package/dist/neutral/contexts/AppSettings/Provider.d.cts.map +0 -1
  135. package/dist/neutral/contexts/AppSettings/Provider.d.mts +0 -9
  136. package/dist/neutral/contexts/AppSettings/Provider.d.mts.map +0 -1
  137. package/dist/neutral/contexts/AppSettings/Provider.d.ts +0 -9
  138. package/dist/neutral/contexts/AppSettings/Provider.d.ts.map +0 -1
  139. package/dist/neutral/contexts/AppSettings/Slug.d.cts +0 -9
  140. package/dist/neutral/contexts/AppSettings/Slug.d.cts.map +0 -1
  141. package/dist/neutral/contexts/AppSettings/Slug.d.mts +0 -9
  142. package/dist/neutral/contexts/AppSettings/Slug.d.mts.map +0 -1
  143. package/dist/neutral/contexts/AppSettings/Slug.d.ts +0 -9
  144. package/dist/neutral/contexts/AppSettings/Slug.d.ts.map +0 -1
  145. package/dist/neutral/contexts/AppSettings/Storage.d.cts +0 -18
  146. package/dist/neutral/contexts/AppSettings/Storage.d.cts.map +0 -1
  147. package/dist/neutral/contexts/AppSettings/Storage.d.mts +0 -18
  148. package/dist/neutral/contexts/AppSettings/Storage.d.mts.map +0 -1
  149. package/dist/neutral/contexts/AppSettings/Storage.d.ts +0 -18
  150. package/dist/neutral/contexts/AppSettings/Storage.d.ts.map +0 -1
  151. package/dist/neutral/contexts/AppSettings/StorageBase.d.cts +0 -16
  152. package/dist/neutral/contexts/AppSettings/StorageBase.d.cts.map +0 -1
  153. package/dist/neutral/contexts/AppSettings/StorageBase.d.mts +0 -16
  154. package/dist/neutral/contexts/AppSettings/StorageBase.d.mts.map +0 -1
  155. package/dist/neutral/contexts/AppSettings/StorageBase.d.ts +0 -16
  156. package/dist/neutral/contexts/AppSettings/StorageBase.d.ts.map +0 -1
  157. package/dist/neutral/contexts/AppSettings/appSettingDefault.d.cts +0 -2
  158. package/dist/neutral/contexts/AppSettings/appSettingDefault.d.cts.map +0 -1
  159. package/dist/neutral/contexts/AppSettings/appSettingDefault.d.mts +0 -2
  160. package/dist/neutral/contexts/AppSettings/appSettingDefault.d.mts.map +0 -1
  161. package/dist/neutral/contexts/AppSettings/appSettingDefault.d.ts +0 -2
  162. package/dist/neutral/contexts/AppSettings/appSettingDefault.d.ts.map +0 -1
  163. package/dist/neutral/contexts/AppSettings/index.d.cts +0 -7
  164. package/dist/neutral/contexts/AppSettings/index.d.cts.map +0 -1
  165. package/dist/neutral/contexts/AppSettings/index.d.mts +0 -7
  166. package/dist/neutral/contexts/AppSettings/index.d.mts.map +0 -1
  167. package/dist/neutral/contexts/AppSettings/index.d.ts +0 -7
  168. package/dist/neutral/contexts/AppSettings/index.d.ts.map +0 -1
  169. package/dist/neutral/contexts/AppSettings/useAppSettings.d.cts +0 -2
  170. package/dist/neutral/contexts/AppSettings/useAppSettings.d.cts.map +0 -1
  171. package/dist/neutral/contexts/AppSettings/useAppSettings.d.mts +0 -2
  172. package/dist/neutral/contexts/AppSettings/useAppSettings.d.mts.map +0 -1
  173. package/dist/neutral/contexts/AppSettings/useAppSettings.d.ts +0 -2
  174. package/dist/neutral/contexts/AppSettings/useAppSettings.d.ts.map +0 -1
  175. package/dist/neutral/contexts/index.d.cts +0 -2
  176. package/dist/neutral/contexts/index.d.cts.map +0 -1
  177. package/dist/neutral/contexts/index.d.mts +0 -2
  178. package/dist/neutral/contexts/index.d.mts.map +0 -1
  179. package/dist/neutral/contexts/index.d.ts +0 -2
  180. package/dist/neutral/contexts/index.d.ts.map +0 -1
  181. package/dist/neutral/index.cjs +0 -272
  182. package/dist/neutral/index.cjs.map +0 -1
  183. package/dist/neutral/index.d.cts +0 -4
  184. package/dist/neutral/index.d.cts.map +0 -1
  185. package/dist/neutral/index.d.mts +0 -4
  186. package/dist/neutral/index.d.mts.map +0 -1
  187. package/dist/neutral/index.d.ts +0 -4
  188. package/dist/neutral/index.d.ts.map +0 -1
  189. package/dist/neutral/index.js +0 -249
  190. package/dist/neutral/index.js.map +0 -1
  191. package/dist/node/WebAppNavigationType.d.cts +0 -2
  192. package/dist/node/WebAppNavigationType.d.cts.map +0 -1
  193. package/dist/node/WebAppNavigationType.d.mts +0 -2
  194. package/dist/node/WebAppNavigationType.d.mts.map +0 -1
  195. package/dist/node/WebAppNavigationType.d.ts +0 -2
  196. package/dist/node/WebAppNavigationType.d.ts.map +0 -1
  197. package/dist/node/components/DarkModeIconButton.d.cts +0 -3
  198. package/dist/node/components/DarkModeIconButton.d.cts.map +0 -1
  199. package/dist/node/components/DarkModeIconButton.d.mts +0 -3
  200. package/dist/node/components/DarkModeIconButton.d.mts.map +0 -1
  201. package/dist/node/components/DarkModeIconButton.d.ts +0 -3
  202. package/dist/node/components/DarkModeIconButton.d.ts.map +0 -1
  203. package/dist/node/components/Developer.d.cts +0 -5
  204. package/dist/node/components/Developer.d.cts.map +0 -1
  205. package/dist/node/components/Developer.d.mts +0 -5
  206. package/dist/node/components/Developer.d.mts.map +0 -1
  207. package/dist/node/components/Developer.d.ts +0 -5
  208. package/dist/node/components/Developer.d.ts.map +0 -1
  209. package/dist/node/components/index.d.cts +0 -3
  210. package/dist/node/components/index.d.cts.map +0 -1
  211. package/dist/node/components/index.d.mts +0 -3
  212. package/dist/node/components/index.d.mts.map +0 -1
  213. package/dist/node/components/index.d.ts +0 -3
  214. package/dist/node/components/index.d.ts.map +0 -1
  215. package/dist/node/contexts/AppSettings/Context.d.cts +0 -17
  216. package/dist/node/contexts/AppSettings/Context.d.cts.map +0 -1
  217. package/dist/node/contexts/AppSettings/Context.d.mts +0 -17
  218. package/dist/node/contexts/AppSettings/Context.d.mts.map +0 -1
  219. package/dist/node/contexts/AppSettings/Context.d.ts +0 -17
  220. package/dist/node/contexts/AppSettings/Context.d.ts.map +0 -1
  221. package/dist/node/contexts/AppSettings/Provider.d.cts +0 -9
  222. package/dist/node/contexts/AppSettings/Provider.d.cts.map +0 -1
  223. package/dist/node/contexts/AppSettings/Provider.d.mts +0 -9
  224. package/dist/node/contexts/AppSettings/Provider.d.mts.map +0 -1
  225. package/dist/node/contexts/AppSettings/Provider.d.ts +0 -9
  226. package/dist/node/contexts/AppSettings/Provider.d.ts.map +0 -1
  227. package/dist/node/contexts/AppSettings/Slug.d.cts +0 -9
  228. package/dist/node/contexts/AppSettings/Slug.d.cts.map +0 -1
  229. package/dist/node/contexts/AppSettings/Slug.d.mts +0 -9
  230. package/dist/node/contexts/AppSettings/Slug.d.mts.map +0 -1
  231. package/dist/node/contexts/AppSettings/Slug.d.ts +0 -9
  232. package/dist/node/contexts/AppSettings/Slug.d.ts.map +0 -1
  233. package/dist/node/contexts/AppSettings/Storage.d.cts +0 -18
  234. package/dist/node/contexts/AppSettings/Storage.d.cts.map +0 -1
  235. package/dist/node/contexts/AppSettings/Storage.d.mts +0 -18
  236. package/dist/node/contexts/AppSettings/Storage.d.mts.map +0 -1
  237. package/dist/node/contexts/AppSettings/Storage.d.ts +0 -18
  238. package/dist/node/contexts/AppSettings/Storage.d.ts.map +0 -1
  239. package/dist/node/contexts/AppSettings/StorageBase.d.cts +0 -16
  240. package/dist/node/contexts/AppSettings/StorageBase.d.cts.map +0 -1
  241. package/dist/node/contexts/AppSettings/StorageBase.d.mts +0 -16
  242. package/dist/node/contexts/AppSettings/StorageBase.d.mts.map +0 -1
  243. package/dist/node/contexts/AppSettings/StorageBase.d.ts +0 -16
  244. package/dist/node/contexts/AppSettings/StorageBase.d.ts.map +0 -1
  245. package/dist/node/contexts/AppSettings/appSettingDefault.d.cts +0 -2
  246. package/dist/node/contexts/AppSettings/appSettingDefault.d.cts.map +0 -1
  247. package/dist/node/contexts/AppSettings/appSettingDefault.d.mts +0 -2
  248. package/dist/node/contexts/AppSettings/appSettingDefault.d.mts.map +0 -1
  249. package/dist/node/contexts/AppSettings/appSettingDefault.d.ts +0 -2
  250. package/dist/node/contexts/AppSettings/appSettingDefault.d.ts.map +0 -1
  251. package/dist/node/contexts/AppSettings/index.d.cts +0 -7
  252. package/dist/node/contexts/AppSettings/index.d.cts.map +0 -1
  253. package/dist/node/contexts/AppSettings/index.d.mts +0 -7
  254. package/dist/node/contexts/AppSettings/index.d.mts.map +0 -1
  255. package/dist/node/contexts/AppSettings/index.d.ts +0 -7
  256. package/dist/node/contexts/AppSettings/index.d.ts.map +0 -1
  257. package/dist/node/contexts/AppSettings/useAppSettings.d.cts +0 -2
  258. package/dist/node/contexts/AppSettings/useAppSettings.d.cts.map +0 -1
  259. package/dist/node/contexts/AppSettings/useAppSettings.d.mts +0 -2
  260. package/dist/node/contexts/AppSettings/useAppSettings.d.mts.map +0 -1
  261. package/dist/node/contexts/AppSettings/useAppSettings.d.ts +0 -2
  262. package/dist/node/contexts/AppSettings/useAppSettings.d.ts.map +0 -1
  263. package/dist/node/contexts/index.d.cts +0 -2
  264. package/dist/node/contexts/index.d.cts.map +0 -1
  265. package/dist/node/contexts/index.d.mts +0 -2
  266. package/dist/node/contexts/index.d.mts.map +0 -1
  267. package/dist/node/contexts/index.d.ts +0 -2
  268. package/dist/node/contexts/index.d.ts.map +0 -1
  269. package/dist/node/index.cjs +0 -284
  270. package/dist/node/index.cjs.map +0 -1
  271. package/dist/node/index.d.cts +0 -4
  272. package/dist/node/index.d.cts.map +0 -1
  273. package/dist/node/index.d.mts +0 -4
  274. package/dist/node/index.d.mts.map +0 -1
  275. package/dist/node/index.d.ts +0 -4
  276. package/dist/node/index.d.ts.map +0 -1
  277. package/dist/node/index.js +0 -250
  278. package/dist/node/index.js.map +0 -1
@@ -1,4 +1,78 @@
1
- export * from './components/index.js';
2
- export * from './contexts/index.js';
3
- export * from './WebAppNavigationType.js';
4
- //# sourceMappingURL=index.d.ts.map
1
+ import { IconButtonProps } from '@mui/material';
2
+ import * as React$1 from 'react';
3
+ import React__default, { ReactElement, ProviderProps } from 'react';
4
+ import { WithChildren } from '@xylabs/react-shared';
5
+
6
+ declare const DarkModeIconButton: React__default.FC<IconButtonProps>;
7
+
8
+ declare const Developer: React.FC<{
9
+ children: ReactElement;
10
+ }>;
11
+
12
+ type WebAppNavigationType = 'menu' | 'sidebar';
13
+
14
+ interface AppSettingsContextProps {
15
+ changeMaxAccounts?: (value: number) => void;
16
+ changeNavigationCollapsed?: (value: boolean) => void;
17
+ changeNavigationType?: (value: WebAppNavigationType) => void;
18
+ changeSeedPhrase?: (value: string) => void;
19
+ darkMode?: boolean;
20
+ developerMode?: boolean;
21
+ enableDarkMode?: (value: boolean) => void;
22
+ enableDeveloperMode?: (value: boolean) => void;
23
+ maxAccounts?: number;
24
+ navigationCollapsed?: boolean;
25
+ navigationType?: WebAppNavigationType;
26
+ seedPhrase?: string;
27
+ }
28
+ declare const AppSettingsContext: React$1.Context<AppSettingsContextProps>;
29
+
30
+ declare class AppSettingsStorageBase {
31
+ private defaults;
32
+ private prefix;
33
+ constructor(prefix?: string, defaults?: Record<string, unknown>);
34
+ getBoolean(name: string): boolean;
35
+ getNumber(name: string): number;
36
+ getObject<T>(name: string): T;
37
+ getString(name: string): string;
38
+ getStringArray(name: string): string[];
39
+ setBoolean(name: string, value: boolean): void;
40
+ setNumber(name: string, value: number): void;
41
+ setObject<T>(name: string, value: T): void;
42
+ setString(name: string, value: string): void;
43
+ setStringArray(name: string, value: string[]): void;
44
+ }
45
+
46
+ declare class AppSettingsStorage extends AppSettingsStorageBase {
47
+ constructor(prefix?: string, defaults?: Record<string, unknown>);
48
+ get darkMode(): boolean;
49
+ set darkMode(value: boolean);
50
+ get developerMode(): boolean;
51
+ set developerMode(value: boolean);
52
+ get maxAccounts(): number;
53
+ set maxAccounts(value: number);
54
+ get navigationCollapsed(): boolean;
55
+ set navigationCollapsed(value: boolean);
56
+ get navigationType(): WebAppNavigationType;
57
+ set navigationType(value: WebAppNavigationType);
58
+ get seedPhrase(): string;
59
+ set seedPhrase(value: string);
60
+ }
61
+
62
+ interface AppSettingsProviderProps<T extends AppSettingsContextProps = AppSettingsContextProps> extends ProviderProps<T> {
63
+ storage?: AppSettingsStorage;
64
+ }
65
+ declare const AppSettingsProvider: React__default.FC<WithChildren<AppSettingsProviderProps>>;
66
+
67
+ declare enum AppSettingSlug {
68
+ DarkMode = "darkmode",
69
+ Developer = "developer",
70
+ NavigationType = "navigationType",
71
+ NavigationCollapsed = "navigationCollapsed",
72
+ SeedPhrase = "seedPhrase",
73
+ MaxAccounts = "maxAccounts"
74
+ }
75
+
76
+ declare const useAppSettings: () => AppSettingsContextProps;
77
+
78
+ export { AppSettingSlug, AppSettingsContext, type AppSettingsContextProps, AppSettingsProvider, type AppSettingsProviderProps, AppSettingsStorage, AppSettingsStorageBase, DarkModeIconButton, Developer, type WebAppNavigationType, useAppSettings };
@@ -1,43 +1,50 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
1
4
  // src/components/DarkModeIconButton.tsx
2
5
  import { DarkModeRounded as DarkModeRoundedIcon, LightModeRounded as LightModeRoundedIcon } from "@mui/icons-material";
3
6
  import { IconButton } from "@mui/material";
7
+ import React2 from "react";
4
8
 
5
9
  // src/contexts/AppSettings/Context.ts
6
10
  import { createContext } from "react";
7
11
 
8
12
  // src/contexts/AppSettings/Slug.ts
9
- var AppSettingSlug = /* @__PURE__ */ ((AppSettingSlug2) => {
13
+ var AppSettingSlug;
14
+ (function(AppSettingSlug2) {
10
15
  AppSettingSlug2["DarkMode"] = "darkmode";
11
16
  AppSettingSlug2["Developer"] = "developer";
12
17
  AppSettingSlug2["NavigationType"] = "navigationType";
13
18
  AppSettingSlug2["NavigationCollapsed"] = "navigationCollapsed";
14
19
  AppSettingSlug2["SeedPhrase"] = "seedPhrase";
15
20
  AppSettingSlug2["MaxAccounts"] = "maxAccounts";
16
- return AppSettingSlug2;
17
- })(AppSettingSlug || {});
21
+ })(AppSettingSlug || (AppSettingSlug = {}));
18
22
 
19
23
  // src/contexts/AppSettings/appSettingDefault.ts
20
- var appSettingDefault = () => {
24
+ var appSettingDefault = /* @__PURE__ */ __name(() => {
21
25
  return {
22
- ["darkmode" /* DarkMode */]: false,
23
- ["developer" /* Developer */]: false,
24
- ["navigationType" /* NavigationType */]: "menu",
25
- ["navigationCollapsed" /* NavigationCollapsed */]: false,
26
- ["seedPhrase" /* SeedPhrase */]: "",
27
- ["maxAccounts" /* MaxAccounts */]: 1
26
+ [AppSettingSlug.DarkMode]: false,
27
+ [AppSettingSlug.Developer]: false,
28
+ [AppSettingSlug.NavigationType]: "menu",
29
+ [AppSettingSlug.NavigationCollapsed]: false,
30
+ [AppSettingSlug.SeedPhrase]: "",
31
+ [AppSettingSlug.MaxAccounts]: 1
28
32
  };
29
- };
33
+ }, "appSettingDefault");
30
34
 
31
35
  // src/contexts/AppSettings/Context.ts
32
36
  var AppSettingsContext = createContext(appSettingDefault());
33
37
 
34
38
  // src/contexts/AppSettings/Provider.tsx
35
- import { useState } from "react";
39
+ import React, { useMemo, useState } from "react";
36
40
 
37
41
  // src/contexts/AppSettings/StorageBase.ts
38
42
  import { assertEx } from "@xylabs/assert";
39
43
  import { assertDefinedEx } from "@xyo-network/react-shared";
40
44
  var AppSettingsStorageBase = class {
45
+ static {
46
+ __name(this, "AppSettingsStorageBase");
47
+ }
41
48
  defaults;
42
49
  prefix;
43
50
  constructor(prefix = "AppSettings", defaults) {
@@ -112,130 +119,132 @@ var AppSettingsStorageBase = class {
112
119
 
113
120
  // src/contexts/AppSettings/Storage.ts
114
121
  var AppSettingsStorage = class extends AppSettingsStorageBase {
122
+ static {
123
+ __name(this, "AppSettingsStorage");
124
+ }
115
125
  constructor(prefix = "AppSettings", defaults) {
116
- super(prefix, { ...appSettingDefault(), ...defaults });
126
+ super(prefix, {
127
+ ...appSettingDefault(),
128
+ ...defaults
129
+ });
117
130
  }
118
131
  get darkMode() {
119
- return this.getBoolean("darkmode" /* DarkMode */);
132
+ return this.getBoolean(AppSettingSlug.DarkMode);
120
133
  }
121
134
  set darkMode(value) {
122
- this.setBoolean("darkmode" /* DarkMode */, value);
135
+ this.setBoolean(AppSettingSlug.DarkMode, value);
123
136
  }
124
137
  get developerMode() {
125
- return this.getBoolean("developer" /* Developer */);
138
+ return this.getBoolean(AppSettingSlug.Developer);
126
139
  }
127
140
  set developerMode(value) {
128
- this.setBoolean("developer" /* Developer */, value);
141
+ this.setBoolean(AppSettingSlug.Developer, value);
129
142
  }
130
143
  get maxAccounts() {
131
- return this.getNumber("maxAccounts" /* MaxAccounts */);
144
+ return this.getNumber(AppSettingSlug.MaxAccounts);
132
145
  }
133
146
  set maxAccounts(value) {
134
- this.setNumber("maxAccounts" /* MaxAccounts */, value);
147
+ this.setNumber(AppSettingSlug.MaxAccounts, value);
135
148
  }
136
149
  get navigationCollapsed() {
137
- return this.getBoolean("navigationCollapsed" /* NavigationCollapsed */);
150
+ return this.getBoolean(AppSettingSlug.NavigationCollapsed);
138
151
  }
139
152
  set navigationCollapsed(value) {
140
- this.setBoolean("navigationCollapsed" /* NavigationCollapsed */, value);
153
+ this.setBoolean(AppSettingSlug.NavigationCollapsed, value);
141
154
  }
142
155
  get navigationType() {
143
- return this.getString("navigationType" /* NavigationType */);
156
+ return this.getString(AppSettingSlug.NavigationType);
144
157
  }
145
158
  set navigationType(value) {
146
- this.setString("navigationType" /* NavigationType */, value);
159
+ this.setString(AppSettingSlug.NavigationType, value);
147
160
  }
148
161
  get seedPhrase() {
149
- return this.getString("seedPhrase" /* SeedPhrase */);
162
+ return this.getString(AppSettingSlug.SeedPhrase);
150
163
  }
151
164
  set seedPhrase(value) {
152
- this.setString("seedPhrase" /* SeedPhrase */, value);
165
+ this.setString(AppSettingSlug.SeedPhrase, value);
153
166
  }
154
167
  };
155
168
 
156
169
  // src/contexts/AppSettings/Provider.tsx
157
- import { jsx } from "react/jsx-runtime";
158
- var AppSettingsProvider = ({
159
- storage = new AppSettingsStorage(),
160
- value,
161
- children,
162
- ...props
163
- }) => {
164
- const [developerMode, setDeveloperMode] = useState(storage.developerMode);
165
- const [darkMode, setDarkMode] = useState(storage.darkMode);
166
- const [navigationType, setNavigationType] = useState(storage.navigationType);
167
- const [navigationCollapsed, setNavigationCollapsed] = useState(storage.navigationCollapsed);
168
- const [seedPhrase, setSeedPhrase] = useState(storage.seedPhrase);
169
- const [maxAccounts, setMaxAccounts] = useState(storage.maxAccounts);
170
- const enableDeveloperMode = (value2) => {
171
- storage.developerMode = value2;
172
- setDeveloperMode(storage.developerMode);
173
- };
174
- const enableDarkMode = (value2) => {
175
- storage.darkMode = value2;
176
- setDarkMode(storage.darkMode);
177
- };
178
- const changeNavigationType = (value2) => {
179
- storage.navigationType = value2;
170
+ var AppSettingsProvider = /* @__PURE__ */ __name(({ storage, value, children, ...props }) => {
171
+ const storageMemo = useMemo(() => storage ?? new AppSettingsStorage(), [
172
+ storage
173
+ ]);
174
+ const [developerMode, setDeveloperMode] = useState(storageMemo.developerMode);
175
+ const [darkMode, setDarkMode] = useState(storageMemo.darkMode);
176
+ const [navigationType, setNavigationType] = useState(storageMemo.navigationType);
177
+ const [navigationCollapsed, setNavigationCollapsed] = useState(storageMemo.navigationCollapsed);
178
+ const [seedPhrase, setSeedPhrase] = useState(storageMemo.seedPhrase);
179
+ const [maxAccounts, setMaxAccounts] = useState(storageMemo.maxAccounts);
180
+ const enableDeveloperMode = /* @__PURE__ */ __name((value2) => {
181
+ storageMemo.developerMode = value2;
182
+ setDeveloperMode(storageMemo.developerMode);
183
+ }, "enableDeveloperMode");
184
+ const enableDarkMode = /* @__PURE__ */ __name((value2) => {
185
+ storageMemo.darkMode = value2;
186
+ setDarkMode(storageMemo.darkMode);
187
+ }, "enableDarkMode");
188
+ const changeNavigationType = /* @__PURE__ */ __name((value2) => {
189
+ storageMemo.navigationType = value2;
180
190
  setNavigationType(value2);
181
- };
182
- const changeNavigationCollapsed = (value2) => {
183
- storage.navigationCollapsed = value2;
191
+ }, "changeNavigationType");
192
+ const changeNavigationCollapsed = /* @__PURE__ */ __name((value2) => {
193
+ storageMemo.navigationCollapsed = value2;
184
194
  setNavigationCollapsed(value2);
185
- };
186
- const changeSeedPhrase = (value2) => {
187
- storage.seedPhrase = value2;
195
+ }, "changeNavigationCollapsed");
196
+ const changeSeedPhrase = /* @__PURE__ */ __name((value2) => {
197
+ storageMemo.seedPhrase = value2;
188
198
  setSeedPhrase(value2);
189
- };
190
- const changeMaxAccounts = (value2) => {
191
- storage.maxAccounts = value2;
199
+ }, "changeSeedPhrase");
200
+ const changeMaxAccounts = /* @__PURE__ */ __name((value2) => {
201
+ storageMemo.maxAccounts = value2;
192
202
  setMaxAccounts(value2);
193
- };
194
- return /* @__PURE__ */ jsx(
195
- AppSettingsContext.Provider,
196
- {
197
- value: {
198
- changeMaxAccounts,
199
- changeNavigationCollapsed,
200
- changeNavigationType,
201
- changeSeedPhrase,
202
- darkMode,
203
- developerMode,
204
- enableDarkMode,
205
- enableDeveloperMode,
206
- maxAccounts,
207
- navigationCollapsed,
208
- navigationType,
209
- seedPhrase,
210
- ...value
211
- },
212
- ...props,
213
- children
214
- }
215
- );
216
- };
203
+ }, "changeMaxAccounts");
204
+ return /* @__PURE__ */ React.createElement(AppSettingsContext.Provider, {
205
+ // eslint-disable-next-line @eslint-react/no-unstable-context-value
206
+ value: {
207
+ changeMaxAccounts,
208
+ changeNavigationCollapsed,
209
+ changeNavigationType,
210
+ changeSeedPhrase,
211
+ darkMode,
212
+ developerMode,
213
+ enableDarkMode,
214
+ enableDeveloperMode,
215
+ maxAccounts,
216
+ navigationCollapsed,
217
+ navigationType,
218
+ seedPhrase,
219
+ ...value
220
+ },
221
+ ...props
222
+ }, children);
223
+ }, "AppSettingsProvider");
217
224
 
218
225
  // src/contexts/AppSettings/useAppSettings.ts
219
226
  import { useContext } from "react";
220
- var useAppSettings = () => {
227
+ var useAppSettings = /* @__PURE__ */ __name(() => {
221
228
  return useContext(AppSettingsContext);
222
- };
229
+ }, "useAppSettings");
223
230
 
224
231
  // src/components/DarkModeIconButton.tsx
225
- import { jsx as jsx2 } from "react/jsx-runtime";
226
- var DarkModeIconButton = (props) => {
232
+ var DarkModeIconButton = /* @__PURE__ */ __name((props) => {
227
233
  const { darkMode, enableDarkMode } = useAppSettings();
228
- const handleDarkModeChange = () => {
234
+ const handleDarkModeChange = /* @__PURE__ */ __name(() => {
229
235
  enableDarkMode?.(!darkMode);
230
- };
231
- return /* @__PURE__ */ jsx2(IconButton, { onClick: handleDarkModeChange, ...props, children: darkMode ? /* @__PURE__ */ jsx2(DarkModeRoundedIcon, {}) : /* @__PURE__ */ jsx2(LightModeRoundedIcon, {}) });
232
- };
236
+ }, "handleDarkModeChange");
237
+ return /* @__PURE__ */ React2.createElement(IconButton, {
238
+ onClick: handleDarkModeChange,
239
+ ...props
240
+ }, darkMode ? /* @__PURE__ */ React2.createElement(DarkModeRoundedIcon, null) : /* @__PURE__ */ React2.createElement(LightModeRoundedIcon, null));
241
+ }, "DarkModeIconButton");
233
242
 
234
243
  // src/components/Developer.tsx
235
- var Developer = ({ children = null }) => {
244
+ var Developer = /* @__PURE__ */ __name(({ children = null }) => {
236
245
  const { developerMode } = useAppSettings();
237
246
  return developerMode ? children : null;
238
- };
247
+ }, "Developer");
239
248
  export {
240
249
  AppSettingSlug,
241
250
  AppSettingsContext,
@@ -246,4 +255,4 @@ export {
246
255
  Developer,
247
256
  useAppSettings
248
257
  };
249
- //# sourceMappingURL=index.js.map
258
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/DarkModeIconButton.tsx","../../src/contexts/AppSettings/Context.ts","../../src/contexts/AppSettings/Slug.ts","../../src/contexts/AppSettings/appSettingDefault.ts","../../src/contexts/AppSettings/Provider.tsx","../../src/contexts/AppSettings/StorageBase.ts","../../src/contexts/AppSettings/Storage.ts","../../src/contexts/AppSettings/useAppSettings.ts","../../src/components/Developer.tsx"],"sourcesContent":["import { DarkModeRounded as DarkModeRoundedIcon, LightModeRounded as LightModeRoundedIcon } from '@mui/icons-material'\nimport { IconButton, IconButtonProps } from '@mui/material'\nimport React from 'react'\n\nimport { useAppSettings } from '../contexts/index.ts'\n\nexport const DarkModeIconButton: React.FC<IconButtonProps> = (props) => {\n const { darkMode, enableDarkMode } = useAppSettings()\n\n const handleDarkModeChange = () => {\n enableDarkMode?.(!darkMode)\n }\n\n return (\n <IconButton onClick={handleDarkModeChange} {...props}>\n {darkMode\n ? <DarkModeRoundedIcon />\n : <LightModeRoundedIcon />}\n </IconButton>\n )\n}\n","import { createContext } from 'react'\n\nimport { WebAppNavigationType } from '../../WebAppNavigationType.ts'\nimport { appSettingDefault } from './appSettingDefault.ts'\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","export enum AppSettingSlug {\n DarkMode = 'darkmode',\n Developer = 'developer',\n NavigationType = 'navigationType',\n NavigationCollapsed = 'navigationCollapsed',\n SeedPhrase = 'seedPhrase',\n MaxAccounts = 'maxAccounts',\n}\n","import { AppSettingSlug } from './Slug.ts'\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 { WithChildren } from '@xylabs/react-shared'\nimport React, { ProviderProps, useMemo, useState } from 'react'\n\nimport { WebAppNavigationType } from '../../WebAppNavigationType.ts'\nimport { AppSettingsContext, AppSettingsContextProps } from './Context.ts'\nimport { AppSettingsStorage } from './Storage.ts'\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,\n value,\n children,\n ...props\n}) => {\n const storageMemo = useMemo(() => storage ?? new AppSettingsStorage(), [storage])\n const [developerMode, setDeveloperMode] = useState(storageMemo.developerMode)\n const [darkMode, setDarkMode] = useState(storageMemo.darkMode)\n const [navigationType, setNavigationType] = useState(storageMemo.navigationType)\n const [navigationCollapsed, setNavigationCollapsed] = useState(storageMemo.navigationCollapsed)\n const [seedPhrase, setSeedPhrase] = useState(storageMemo.seedPhrase)\n const [maxAccounts, setMaxAccounts] = useState(storageMemo.maxAccounts)\n\n const enableDeveloperMode = (value: boolean) => {\n storageMemo.developerMode = value\n setDeveloperMode(storageMemo.developerMode)\n }\n\n const enableDarkMode = (value: boolean) => {\n storageMemo.darkMode = value\n setDarkMode(storageMemo.darkMode)\n }\n\n const changeNavigationType = (value: WebAppNavigationType) => {\n storageMemo.navigationType = value\n setNavigationType(value)\n }\n\n const changeNavigationCollapsed = (value: boolean) => {\n storageMemo.navigationCollapsed = value\n setNavigationCollapsed(value)\n }\n\n const changeSeedPhrase = (value: string) => {\n storageMemo.seedPhrase = value\n setSeedPhrase(value)\n }\n\n const changeMaxAccounts = (value: number) => {\n storageMemo.maxAccounts = value\n setMaxAccounts(value)\n }\n\n return (\n <AppSettingsContext.Provider\n // eslint-disable-next-line @eslint-react/no-unstable-context-value\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 { 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 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 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 Number.parseFloat(storedValue)\n }\n\n 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 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 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 setBoolean(name: string, value: boolean) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n setNumber(name: string, value: number) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n setObject<T>(name: string, value: T) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n setString(name: string, value: string) {\n localStorage.setItem(`${this.prefix}|${name}`, value)\n }\n\n setStringArray(name: string, value: string[]) {\n localStorage.setItem(`${this.prefix}|${name}`, value.join(','))\n }\n}\n","import { WebAppNavigationType } from '../../WebAppNavigationType.ts'\nimport { appSettingDefault } from './appSettingDefault.ts'\nimport { AppSettingSlug } from './Slug.ts'\nimport { AppSettingsStorageBase } from './StorageBase.ts'\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","import { useContext } from 'react'\n\nimport { AppSettingsContext } from './Context.ts'\n\nexport const useAppSettings = () => {\n return useContext(AppSettingsContext)\n}\n","import { ReactElement } from 'react'\n\nimport { useAppSettings } from '../contexts/index.ts'\n\nexport const Developer: React.FC<{ children: ReactElement }> = ({ children = null }) => {\n const { developerMode } = useAppSettings()\n\n return developerMode ? children : null\n}\n"],"mappings":"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","names":["DarkModeRounded","DarkModeRoundedIcon","LightModeRounded","LightModeRoundedIcon","IconButton","React","createContext","AppSettingSlug","appSettingDefault","AppSettingSlug","DarkMode","Developer","NavigationType","NavigationCollapsed","SeedPhrase","MaxAccounts","AppSettingsContext","createContext","appSettingDefault","React","useMemo","useState","assertEx","assertDefinedEx","AppSettingsStorageBase","defaults","prefix","constructor","getBoolean","name","storedValue","localStorage","getItem","assertEx","defaultValue","undefined","getNumber","Number","parseFloat","getObject","parsedStoredValue","JSON","parse","getString","assertDefinedEx","getStringArray","split","Array","isArray","setBoolean","value","setItem","stringify","setNumber","setObject","setString","setStringArray","join","AppSettingsStorage","AppSettingsStorageBase","constructor","prefix","defaults","appSettingDefault","darkMode","getBoolean","AppSettingSlug","DarkMode","value","setBoolean","developerMode","Developer","maxAccounts","getNumber","MaxAccounts","setNumber","navigationCollapsed","NavigationCollapsed","navigationType","getString","NavigationType","setString","seedPhrase","SeedPhrase","AppSettingsProvider","storage","value","children","props","storageMemo","useMemo","AppSettingsStorage","developerMode","setDeveloperMode","useState","darkMode","setDarkMode","navigationType","setNavigationType","navigationCollapsed","setNavigationCollapsed","seedPhrase","setSeedPhrase","maxAccounts","setMaxAccounts","enableDeveloperMode","enableDarkMode","changeNavigationType","changeNavigationCollapsed","changeSeedPhrase","changeMaxAccounts","AppSettingsContext","Provider","useContext","useAppSettings","useContext","AppSettingsContext","DarkModeIconButton","props","darkMode","enableDarkMode","useAppSettings","handleDarkModeChange","React","IconButton","onClick","DarkModeRoundedIcon","LightModeRoundedIcon","Developer","children","developerMode","useAppSettings"]}
package/package.json CHANGED
@@ -10,9 +10,9 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xylabs/assert": "^3.6.4",
14
- "@xylabs/react-shared": "^3.4.1",
15
- "@xyo-network/react-shared": "^2.81.10"
13
+ "@xylabs/assert": "^3.6.12",
14
+ "@xylabs/react-shared": "^3.4.2",
15
+ "@xyo-network/react-shared": "^2.83.0"
16
16
  },
17
17
  "peerDependencies": {
18
18
  "@mui/icons-material": "^5",
@@ -22,39 +22,23 @@
22
22
  "react-dom": "^18.2.0"
23
23
  },
24
24
  "devDependencies": {
25
- "@xylabs/ts-scripts-yarn3": "^3.12.4",
25
+ "@xylabs/ts-scripts-yarn3": "^4.0.0-rc.7",
26
26
  "typescript": "^5.5.4"
27
27
  },
28
28
  "description": "Common React library for all XYO projects that use React",
29
29
  "docs": "dist/docs.json",
30
30
  "exports": {
31
31
  ".": {
32
- "node": {
33
- "import": {
34
- "types": "./dist/node/index.d.mts",
35
- "default": "./dist/node/index.js"
36
- },
37
- "require": {
38
- "types": "./dist/node/index.d.cts",
39
- "default": "./dist/node/index.cjs"
40
- }
32
+ "import": {
33
+ "types": "./dist/browser/index.d.ts",
34
+ "default": "./dist/browser/index.mjs"
41
35
  },
42
- "browser": {
43
- "import": {
44
- "types": "./dist/browser/index.d.mts",
45
- "default": "./dist/browser/index.js"
46
- },
47
- "require": {
48
- "types": "./dist/browser/index.d.cts",
49
- "default": "./dist/browser/index.cjs"
50
- }
51
- },
52
- "default": "./dist/browser/index.js"
36
+ "types": "./dist/browser/index.d.ts",
37
+ "default": "./dist/browser/index.mjs"
53
38
  },
54
39
  "./package.json": "./package.json"
55
40
  },
56
- "main": "dist/browser/index.cjs",
57
- "module": "dist/browser/index.js",
41
+ "module": "dist/browser/index.mjs",
58
42
  "homepage": "https://xyo.network",
59
43
  "keywords": [
60
44
  "xyo",
@@ -76,6 +60,6 @@
76
60
  },
77
61
  "sideEffects": false,
78
62
  "types": "dist/browser/index.d.ts",
79
- "version": "2.81.10",
63
+ "version": "2.83.0",
80
64
  "type": "module"
81
65
  }
@@ -1,7 +1,8 @@
1
1
  import { DarkModeRounded as DarkModeRoundedIcon, LightModeRounded as LightModeRoundedIcon } from '@mui/icons-material'
2
2
  import { IconButton, IconButtonProps } from '@mui/material'
3
+ import React from 'react'
3
4
 
4
- import { useAppSettings } from '../contexts/index.js'
5
+ import { useAppSettings } from '../contexts/index.ts'
5
6
 
6
7
  export const DarkModeIconButton: React.FC<IconButtonProps> = (props) => {
7
8
  const { darkMode, enableDarkMode } = useAppSettings()
@@ -12,9 +13,9 @@ export const DarkModeIconButton: React.FC<IconButtonProps> = (props) => {
12
13
 
13
14
  return (
14
15
  <IconButton onClick={handleDarkModeChange} {...props}>
15
- {darkMode ?
16
- <DarkModeRoundedIcon />
17
- : <LightModeRoundedIcon />}
16
+ {darkMode
17
+ ? <DarkModeRoundedIcon />
18
+ : <LightModeRoundedIcon />}
18
19
  </IconButton>
19
20
  )
20
21
  }
@@ -1,6 +1,6 @@
1
1
  import { ReactElement } from 'react'
2
2
 
3
- import { useAppSettings } from '../contexts/index.js'
3
+ import { useAppSettings } from '../contexts/index.ts'
4
4
 
5
5
  export const Developer: React.FC<{ children: ReactElement }> = ({ children = null }) => {
6
6
  const { developerMode } = useAppSettings()
@@ -1,2 +1,2 @@
1
- export * from './DarkModeIconButton.js'
2
- export * from './Developer.js'
1
+ export * from './DarkModeIconButton.tsx'
2
+ export * from './Developer.tsx'
@@ -1,7 +1,7 @@
1
1
  import { createContext } from 'react'
2
2
 
3
- import { WebAppNavigationType } from '../../WebAppNavigationType.js'
4
- import { appSettingDefault } from './appSettingDefault.js'
3
+ import { WebAppNavigationType } from '../../WebAppNavigationType.ts'
4
+ import { appSettingDefault } from './appSettingDefault.ts'
5
5
 
6
6
  export interface AppSettingsContextProps {
7
7
  changeMaxAccounts?: (value: number) => void
@@ -1,59 +1,61 @@
1
1
  import { WithChildren } from '@xylabs/react-shared'
2
- import { ProviderProps, useState } from 'react'
2
+ import React, { ProviderProps, useMemo, useState } from 'react'
3
3
 
4
- import { WebAppNavigationType } from '../../WebAppNavigationType.js'
5
- import { AppSettingsContext, AppSettingsContextProps } from './Context.js'
6
- import { AppSettingsStorage } from './Storage.js'
4
+ import { WebAppNavigationType } from '../../WebAppNavigationType.ts'
5
+ import { AppSettingsContext, AppSettingsContextProps } from './Context.ts'
6
+ import { AppSettingsStorage } from './Storage.ts'
7
7
 
8
8
  export interface AppSettingsProviderProps<T extends AppSettingsContextProps = AppSettingsContextProps> extends ProviderProps<T> {
9
9
  storage?: AppSettingsStorage
10
10
  }
11
11
 
12
12
  export const AppSettingsProvider: React.FC<WithChildren<AppSettingsProviderProps>> = ({
13
- storage = new AppSettingsStorage(),
13
+ storage,
14
14
  value,
15
15
  children,
16
16
  ...props
17
17
  }) => {
18
- const [developerMode, setDeveloperMode] = useState(storage.developerMode)
19
- const [darkMode, setDarkMode] = useState(storage.darkMode)
20
- const [navigationType, setNavigationType] = useState(storage.navigationType)
21
- const [navigationCollapsed, setNavigationCollapsed] = useState(storage.navigationCollapsed)
22
- const [seedPhrase, setSeedPhrase] = useState(storage.seedPhrase)
23
- const [maxAccounts, setMaxAccounts] = useState(storage.maxAccounts)
18
+ const storageMemo = useMemo(() => storage ?? new AppSettingsStorage(), [storage])
19
+ const [developerMode, setDeveloperMode] = useState(storageMemo.developerMode)
20
+ const [darkMode, setDarkMode] = useState(storageMemo.darkMode)
21
+ const [navigationType, setNavigationType] = useState(storageMemo.navigationType)
22
+ const [navigationCollapsed, setNavigationCollapsed] = useState(storageMemo.navigationCollapsed)
23
+ const [seedPhrase, setSeedPhrase] = useState(storageMemo.seedPhrase)
24
+ const [maxAccounts, setMaxAccounts] = useState(storageMemo.maxAccounts)
24
25
 
25
26
  const enableDeveloperMode = (value: boolean) => {
26
- storage.developerMode = value
27
- setDeveloperMode(storage.developerMode)
27
+ storageMemo.developerMode = value
28
+ setDeveloperMode(storageMemo.developerMode)
28
29
  }
29
30
 
30
31
  const enableDarkMode = (value: boolean) => {
31
- storage.darkMode = value
32
- setDarkMode(storage.darkMode)
32
+ storageMemo.darkMode = value
33
+ setDarkMode(storageMemo.darkMode)
33
34
  }
34
35
 
35
36
  const changeNavigationType = (value: WebAppNavigationType) => {
36
- storage.navigationType = value
37
+ storageMemo.navigationType = value
37
38
  setNavigationType(value)
38
39
  }
39
40
 
40
41
  const changeNavigationCollapsed = (value: boolean) => {
41
- storage.navigationCollapsed = value
42
+ storageMemo.navigationCollapsed = value
42
43
  setNavigationCollapsed(value)
43
44
  }
44
45
 
45
46
  const changeSeedPhrase = (value: string) => {
46
- storage.seedPhrase = value
47
+ storageMemo.seedPhrase = value
47
48
  setSeedPhrase(value)
48
49
  }
49
50
 
50
51
  const changeMaxAccounts = (value: number) => {
51
- storage.maxAccounts = value
52
+ storageMemo.maxAccounts = value
52
53
  setMaxAccounts(value)
53
54
  }
54
55
 
55
56
  return (
56
57
  <AppSettingsContext.Provider
58
+ // eslint-disable-next-line @eslint-react/no-unstable-context-value
57
59
  value={{
58
60
  changeMaxAccounts,
59
61
  changeNavigationCollapsed,
@@ -1,7 +1,7 @@
1
- import { WebAppNavigationType } from '../../WebAppNavigationType.js'
2
- import { appSettingDefault } from './appSettingDefault.js'
3
- import { AppSettingSlug } from './Slug.js'
4
- import { AppSettingsStorageBase } from './StorageBase.js'
1
+ import { WebAppNavigationType } from '../../WebAppNavigationType.ts'
2
+ import { appSettingDefault } from './appSettingDefault.ts'
3
+ import { AppSettingSlug } from './Slug.ts'
4
+ import { AppSettingsStorageBase } from './StorageBase.ts'
5
5
 
6
6
  export class AppSettingsStorage extends AppSettingsStorageBase {
7
7
  constructor(prefix = 'AppSettings', defaults?: Record<string, unknown>) {
@@ -1,4 +1,4 @@
1
- import { AppSettingSlug } from './Slug.js'
1
+ import { AppSettingSlug } from './Slug.ts'
2
2
 
3
3
  export const appSettingDefault = (): Record<string, unknown> => {
4
4
  return {
@@ -1,6 +1,6 @@
1
- export * from './Context.js'
2
- export * from './Provider.js'
3
- export * from './Slug.js'
4
- export * from './Storage.js'
5
- export * from './StorageBase.js'
6
- export * from './useAppSettings.js'
1
+ export * from './Context.ts'
2
+ export * from './Provider.tsx'
3
+ export * from './Slug.ts'
4
+ export * from './Storage.ts'
5
+ export * from './StorageBase.ts'
6
+ export * from './useAppSettings.ts'