@xyo-network/react-app-settings 2.81.10 → 2.83.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 (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'