@xyo-network/react-app-settings 2.81.9 → 2.82.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/browser/components/DarkModeIconButton.d.cts +1 -0
- package/dist/browser/components/DarkModeIconButton.d.cts.map +1 -1
- package/dist/browser/components/DarkModeIconButton.d.mts +1 -0
- package/dist/browser/components/DarkModeIconButton.d.mts.map +1 -1
- package/dist/browser/components/DarkModeIconButton.d.ts +1 -0
- package/dist/browser/components/DarkModeIconButton.d.ts.map +1 -1
- package/dist/browser/components/index.d.cts +2 -2
- package/dist/browser/components/index.d.cts.map +1 -1
- package/dist/browser/components/index.d.mts +2 -2
- package/dist/browser/components/index.d.mts.map +1 -1
- package/dist/browser/components/index.d.ts +2 -2
- package/dist/browser/components/index.d.ts.map +1 -1
- package/dist/browser/contexts/AppSettings/Context.d.cts +1 -1
- package/dist/browser/contexts/AppSettings/Context.d.mts +1 -1
- package/dist/browser/contexts/AppSettings/Context.d.ts +1 -1
- package/dist/browser/contexts/AppSettings/Provider.d.cts +3 -3
- package/dist/browser/contexts/AppSettings/Provider.d.cts.map +1 -1
- package/dist/browser/contexts/AppSettings/Provider.d.mts +3 -3
- package/dist/browser/contexts/AppSettings/Provider.d.mts.map +1 -1
- package/dist/browser/contexts/AppSettings/Provider.d.ts +3 -3
- package/dist/browser/contexts/AppSettings/Provider.d.ts.map +1 -1
- package/dist/browser/contexts/AppSettings/Storage.d.cts +2 -2
- package/dist/browser/contexts/AppSettings/Storage.d.mts +2 -2
- package/dist/browser/contexts/AppSettings/Storage.d.ts +2 -2
- package/dist/browser/contexts/AppSettings/index.d.cts +6 -6
- package/dist/browser/contexts/AppSettings/index.d.cts.map +1 -1
- package/dist/browser/contexts/AppSettings/index.d.mts +6 -6
- package/dist/browser/contexts/AppSettings/index.d.mts.map +1 -1
- package/dist/browser/contexts/AppSettings/index.d.ts +6 -6
- package/dist/browser/contexts/AppSettings/index.d.ts.map +1 -1
- package/dist/browser/contexts/AppSettings/useAppSettings.d.cts +1 -1
- package/dist/browser/contexts/AppSettings/useAppSettings.d.mts +1 -1
- package/dist/browser/contexts/AppSettings/useAppSettings.d.ts +1 -1
- package/dist/browser/contexts/index.d.cts +1 -1
- package/dist/browser/contexts/index.d.mts +1 -1
- package/dist/browser/contexts/index.d.ts +1 -1
- package/dist/browser/index.cjs +108 -91
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.d.cts +3 -3
- package/dist/browser/index.d.mts +3 -3
- package/dist/browser/index.d.ts +3 -3
- package/dist/browser/{index.js → index.mjs} +101 -92
- package/dist/browser/index.mjs.map +1 -0
- package/dist/neutral/components/DarkModeIconButton.d.cts +1 -0
- package/dist/neutral/components/DarkModeIconButton.d.cts.map +1 -1
- package/dist/neutral/components/DarkModeIconButton.d.mts +1 -0
- package/dist/neutral/components/DarkModeIconButton.d.mts.map +1 -1
- package/dist/neutral/components/DarkModeIconButton.d.ts +1 -0
- package/dist/neutral/components/DarkModeIconButton.d.ts.map +1 -1
- package/dist/neutral/components/index.d.cts +2 -2
- package/dist/neutral/components/index.d.cts.map +1 -1
- package/dist/neutral/components/index.d.mts +2 -2
- package/dist/neutral/components/index.d.mts.map +1 -1
- package/dist/neutral/components/index.d.ts +2 -2
- package/dist/neutral/components/index.d.ts.map +1 -1
- package/dist/neutral/contexts/AppSettings/Context.d.cts +1 -1
- package/dist/neutral/contexts/AppSettings/Context.d.mts +1 -1
- package/dist/neutral/contexts/AppSettings/Context.d.ts +1 -1
- package/dist/neutral/contexts/AppSettings/Provider.d.cts +3 -3
- package/dist/neutral/contexts/AppSettings/Provider.d.cts.map +1 -1
- package/dist/neutral/contexts/AppSettings/Provider.d.mts +3 -3
- package/dist/neutral/contexts/AppSettings/Provider.d.mts.map +1 -1
- package/dist/neutral/contexts/AppSettings/Provider.d.ts +3 -3
- package/dist/neutral/contexts/AppSettings/Provider.d.ts.map +1 -1
- package/dist/neutral/contexts/AppSettings/Storage.d.cts +2 -2
- package/dist/neutral/contexts/AppSettings/Storage.d.mts +2 -2
- package/dist/neutral/contexts/AppSettings/Storage.d.ts +2 -2
- package/dist/neutral/contexts/AppSettings/index.d.cts +6 -6
- package/dist/neutral/contexts/AppSettings/index.d.cts.map +1 -1
- package/dist/neutral/contexts/AppSettings/index.d.mts +6 -6
- package/dist/neutral/contexts/AppSettings/index.d.mts.map +1 -1
- package/dist/neutral/contexts/AppSettings/index.d.ts +6 -6
- package/dist/neutral/contexts/AppSettings/index.d.ts.map +1 -1
- package/dist/neutral/contexts/AppSettings/useAppSettings.d.cts +1 -1
- package/dist/neutral/contexts/AppSettings/useAppSettings.d.mts +1 -1
- package/dist/neutral/contexts/AppSettings/useAppSettings.d.ts +1 -1
- package/dist/neutral/contexts/index.d.cts +1 -1
- package/dist/neutral/contexts/index.d.mts +1 -1
- package/dist/neutral/contexts/index.d.ts +1 -1
- package/dist/neutral/index.cjs +108 -91
- package/dist/neutral/index.cjs.map +1 -1
- package/dist/neutral/index.d.cts +3 -3
- package/dist/neutral/index.d.mts +3 -3
- package/dist/neutral/index.d.ts +3 -3
- package/dist/neutral/{index.js → index.mjs} +101 -92
- package/dist/neutral/index.mjs.map +1 -0
- package/dist/node/components/DarkModeIconButton.d.cts +1 -0
- package/dist/node/components/DarkModeIconButton.d.cts.map +1 -1
- package/dist/node/components/DarkModeIconButton.d.mts +1 -0
- package/dist/node/components/DarkModeIconButton.d.mts.map +1 -1
- package/dist/node/components/DarkModeIconButton.d.ts +1 -0
- package/dist/node/components/DarkModeIconButton.d.ts.map +1 -1
- package/dist/node/components/index.d.cts +2 -2
- package/dist/node/components/index.d.cts.map +1 -1
- package/dist/node/components/index.d.mts +2 -2
- package/dist/node/components/index.d.mts.map +1 -1
- package/dist/node/components/index.d.ts +2 -2
- package/dist/node/components/index.d.ts.map +1 -1
- package/dist/node/contexts/AppSettings/Context.d.cts +1 -1
- package/dist/node/contexts/AppSettings/Context.d.mts +1 -1
- package/dist/node/contexts/AppSettings/Context.d.ts +1 -1
- package/dist/node/contexts/AppSettings/Provider.d.cts +3 -3
- package/dist/node/contexts/AppSettings/Provider.d.cts.map +1 -1
- package/dist/node/contexts/AppSettings/Provider.d.mts +3 -3
- package/dist/node/contexts/AppSettings/Provider.d.mts.map +1 -1
- package/dist/node/contexts/AppSettings/Provider.d.ts +3 -3
- package/dist/node/contexts/AppSettings/Provider.d.ts.map +1 -1
- package/dist/node/contexts/AppSettings/Storage.d.cts +2 -2
- package/dist/node/contexts/AppSettings/Storage.d.mts +2 -2
- package/dist/node/contexts/AppSettings/Storage.d.ts +2 -2
- package/dist/node/contexts/AppSettings/index.d.cts +6 -6
- package/dist/node/contexts/AppSettings/index.d.cts.map +1 -1
- package/dist/node/contexts/AppSettings/index.d.mts +6 -6
- package/dist/node/contexts/AppSettings/index.d.mts.map +1 -1
- package/dist/node/contexts/AppSettings/index.d.ts +6 -6
- package/dist/node/contexts/AppSettings/index.d.ts.map +1 -1
- package/dist/node/contexts/AppSettings/useAppSettings.d.cts +1 -1
- package/dist/node/contexts/AppSettings/useAppSettings.d.mts +1 -1
- package/dist/node/contexts/AppSettings/useAppSettings.d.ts +1 -1
- package/dist/node/contexts/index.d.cts +1 -1
- package/dist/node/contexts/index.d.mts +1 -1
- package/dist/node/contexts/index.d.ts +1 -1
- package/dist/node/index.cjs +108 -93
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +3 -3
- package/dist/node/index.d.mts +3 -3
- package/dist/node/index.d.ts +3 -3
- package/dist/node/{index.js → index.mjs} +101 -94
- package/dist/node/index.mjs.map +1 -0
- package/package.json +9 -9
- package/src/components/DarkModeIconButton.tsx +5 -4
- package/src/components/Developer.tsx +1 -1
- package/src/components/index.ts +2 -2
- package/src/contexts/AppSettings/Context.ts +2 -2
- package/src/contexts/AppSettings/Provider.tsx +21 -19
- package/src/contexts/AppSettings/Storage.ts +4 -4
- package/src/contexts/AppSettings/appSettingDefault.ts +1 -1
- package/src/contexts/AppSettings/index.ts +6 -6
- package/src/contexts/AppSettings/useAppSettings.ts +1 -1
- package/src/contexts/index.ts +1 -1
- package/src/index.ts +3 -3
- package/dist/browser/index.js.map +0 -1
- package/dist/neutral/index.js.map +0 -1
- package/dist/node/index.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../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":["export * from './components/index.js'\nexport * from './contexts/index.js'\nexport * from './WebAppNavigationType.js'\n","import { DarkModeRounded as DarkModeRoundedIcon, LightModeRounded as LightModeRoundedIcon } from '@mui/icons-material'\nimport { IconButton, IconButtonProps } from '@mui/material'\n\nimport { useAppSettings } from '../contexts/index.js'\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.js'\nimport { appSettingDefault } from './appSettingDefault.js'\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.js'\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 { ProviderProps, useState } from 'react'\n\nimport { WebAppNavigationType } from '../../WebAppNavigationType.js'\nimport { AppSettingsContext, AppSettingsContextProps } from './Context.js'\nimport { AppSettingsStorage } from './Storage.js'\n\nexport interface AppSettingsProviderProps<T extends AppSettingsContextProps = AppSettingsContextProps> extends ProviderProps<T> {\n storage?: AppSettingsStorage\n}\n\nexport const AppSettingsProvider: React.FC<WithChildren<AppSettingsProviderProps>> = ({\n storage = new AppSettingsStorage(),\n value,\n children,\n ...props\n}) => {\n const [developerMode, setDeveloperMode] = useState(storage.developerMode)\n const [darkMode, setDarkMode] = useState(storage.darkMode)\n const [navigationType, setNavigationType] = useState(storage.navigationType)\n const [navigationCollapsed, setNavigationCollapsed] = useState(storage.navigationCollapsed)\n const [seedPhrase, setSeedPhrase] = useState(storage.seedPhrase)\n const [maxAccounts, setMaxAccounts] = useState(storage.maxAccounts)\n\n const enableDeveloperMode = (value: boolean) => {\n storage.developerMode = value\n setDeveloperMode(storage.developerMode)\n }\n\n const enableDarkMode = (value: boolean) => {\n storage.darkMode = value\n setDarkMode(storage.darkMode)\n }\n\n const changeNavigationType = (value: WebAppNavigationType) => {\n storage.navigationType = value\n setNavigationType(value)\n }\n\n const changeNavigationCollapsed = (value: boolean) => {\n storage.navigationCollapsed = value\n setNavigationCollapsed(value)\n }\n\n const changeSeedPhrase = (value: string) => {\n storage.seedPhrase = value\n setSeedPhrase(value)\n }\n\n const changeMaxAccounts = (value: number) => {\n storage.maxAccounts = value\n setMaxAccounts(value)\n }\n\n return (\n <AppSettingsContext.Provider\n value={{\n changeMaxAccounts,\n changeNavigationCollapsed,\n changeNavigationType,\n changeSeedPhrase,\n darkMode,\n developerMode,\n enableDarkMode,\n enableDeveloperMode,\n maxAccounts,\n navigationCollapsed,\n navigationType,\n seedPhrase,\n\n ...value,\n }}\n {...props}\n >\n {children}\n </AppSettingsContext.Provider>\n )\n}\n","import { 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.js'\nimport { appSettingDefault } from './appSettingDefault.js'\nimport { AppSettingSlug } from './Slug.js'\nimport { AppSettingsStorageBase } from './StorageBase.js'\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.js'\n\nexport const useAppSettings = () => {\n return useContext(AppSettingsContext)\n}\n","import { ReactElement } from 'react'\n\nimport { useAppSettings } from '../contexts/index.js'\n\nexport const Developer: React.FC<{ children: ReactElement }> = ({ children = null }) => {\n const { developerMode } = useAppSettings()\n\n return developerMode ? children : null\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,4BAAiG;AACjG,sBAA4C;;;ACD5C,mBAA8B;;;ACAvB,IAAK,iBAAL,kBAAKA,oBAAL;AACL,EAAAA,gBAAA,cAAW;AACX,EAAAA,gBAAA,eAAY;AACZ,EAAAA,gBAAA,oBAAiB;AACjB,EAAAA,gBAAA,yBAAsB;AACtB,EAAAA,gBAAA,gBAAa;AACb,EAAAA,gBAAA,iBAAc;AANJ,SAAAA;AAAA,GAAA;;;ACEL,IAAM,oBAAoB,MAA+B;AAC9D,SAAO;AAAA,IACL,0BAAwB,GAAG;AAAA,IAC3B,4BAAyB,GAAG;AAAA,IAC5B,sCAA8B,GAAG;AAAA,IACjC,gDAAmC,GAAG;AAAA,IACtC,8BAA0B,GAAG;AAAA,IAC7B,gCAA2B,GAAG;AAAA,EAChC;AACF;;;AFSO,IAAM,yBAAqB,4BAAuC,kBAAkB,CAAC;;;AGnB5F,IAAAC,gBAAwC;;;ACDxC,oBAAyB;AACzB,0BAAgC;AAEzB,IAAM,yBAAN,MAA6B;AAAA,EAC1B;AAAA,EACA;AAAA,EACR,YAAY,SAAS,eAAe,UAAoC;AACtE,SAAK,SAAS;AACd,SAAK,WAAW,YAAY,CAAC;AAAA,EAC/B;AAAA,EAEA,WAAW,MAAuB;AAChC,UAAM,cAAc,aAAa,QAAQ,GAAG,KAAK,MAAM,IAAI,IAAI,EAAE;AACjE,QAAI,CAAC,aAAa;AAChB,kCAAS,OAAO,KAAK,SAAS,IAAI,MAAM,WAAW,MAAM,8BAA8B;AACvF,YAAM,eAAe,KAAK,SAAS,IAAI;AACvC,kCAAS,iBAAiB,QAAW,MAAM,uBAAuB,IAAI,EAAE;AACxE,aAAO;AAAA,IACT;AACA,WAAO,gBAAgB;AAAA,EACzB;AAAA,EAEA,UAAU,MAAsB;AAC9B,UAAM,cAAc,aAAa,QAAQ,GAAG,KAAK,MAAM,IAAI,IAAI,EAAE;AACjE,QAAI,CAAC,aAAa;AAChB,kCAAS,OAAO,KAAK,SAAS,IAAI,MAAM,UAAU,MAAM,+BAA+B;AACvF,YAAM,eAAe,KAAK,SAAS,IAAI;AACvC,kCAAS,iBAAiB,QAAW,MAAM,uBAAuB,IAAI,EAAE;AACxE,aAAO;AAAA,IACT;AACA,WAAO,OAAO,WAAW,WAAW;AAAA,EACtC;AAAA,EAEA,UAAa,MAAiB;AAC5B,UAAM,cAAc,aAAa,QAAQ,GAAG,KAAK,MAAM,IAAI,IAAI,EAAE;AACjE,UAAM,oBAAoB,cAAc,KAAK,MAAM,WAAW,IAAI;AAClE,QAAI,CAAC,mBAAmB;AACtB,kCAAS,OAAO,KAAK,SAAS,IAAI,MAAM,UAAU,MAAM,6BAA6B;AACrF,iBAAO,wBAAS,KAAK,SAAS,IAAI,GAAQ,MAAM,uBAAuB,IAAI,EAAE;AAAA,IAC/E;AACA,WAAO;AAAA,EACT;AAAA,EAEA,UAAU,MAAc;AACtB,UAAM,cAAc,aAAa,QAAQ,GAAG,KAAK,MAAM,IAAI,IAAI,EAAE;AACjE,QAAI,CAAC,aAAa;AAChB,+CAAgB,OAAO,KAAK,SAAS,IAAI,MAAM,UAAU,6BAA6B;AACtF,YAAM,eAAe,KAAK,SAAS,IAAI;AACvC,kCAAS,iBAAiB,QAAW,MAAM,uBAAuB,IAAI,EAAE;AACxE,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAAA,EAEA,eAAe,MAAc;AAC3B,UAAM,cAAc,aAAa,QAAQ,GAAG,KAAK,MAAM,IAAI,IAAI,EAAE,GAAG,MAAM,GAAG;AAC7E,QAAI,CAAC,aAAa;AAChB,+CAAgB,MAAM,QAAQ,KAAK,SAAS,IAAI,CAAC,GAAG,4BAA4B;AAChF,YAAM,eAAe,KAAK,SAAS,IAAI;AACvC,kCAAS,iBAAiB,QAAW,MAAM,uBAAuB,IAAI,EAAE;AACxE,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAAA,EAEA,WAAW,MAAc,OAAgB;AACvC,iBAAa,QAAQ,GAAG,KAAK,MAAM,IAAI,IAAI,IAAI,KAAK,UAAU,KAAK,CAAC;AAAA,EACtE;AAAA,EAEA,UAAU,MAAc,OAAe;AACrC,iBAAa,QAAQ,GAAG,KAAK,MAAM,IAAI,IAAI,IAAI,KAAK,UAAU,KAAK,CAAC;AAAA,EACtE;AAAA,EAEA,UAAa,MAAc,OAAU;AACnC,iBAAa,QAAQ,GAAG,KAAK,MAAM,IAAI,IAAI,IAAI,KAAK,UAAU,KAAK,CAAC;AAAA,EACtE;AAAA,EAEA,UAAU,MAAc,OAAe;AACrC,iBAAa,QAAQ,GAAG,KAAK,MAAM,IAAI,IAAI,IAAI,KAAK;AAAA,EACtD;AAAA,EAEA,eAAe,MAAc,OAAiB;AAC5C,iBAAa,QAAQ,GAAG,KAAK,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,GAAG,CAAC;AAAA,EAChE;AACF;;;AC/EO,IAAM,qBAAN,cAAiC,uBAAuB;AAAA,EAC7D,YAAY,SAAS,eAAe,UAAoC;AACtE,UAAM,QAAQ,EAAE,GAAG,kBAAkB,GAAG,GAAG,SAAS,CAAC;AAAA,EACvD;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,oCAAkC;AAAA,EAChD;AAAA,EAEA,IAAI,SAAS,OAAgB;AAC3B,SAAK,sCAAoC,KAAK;AAAA,EAChD;AAAA,EAEA,IAAI,gBAAgB;AAClB,WAAO,KAAK,sCAAmC;AAAA,EACjD;AAAA,EAEA,IAAI,cAAc,OAAgB;AAChC,SAAK,wCAAqC,KAAK;AAAA,EACjD;AAAA,EAEA,IAAI,cAAc;AAChB,WAAO,KAAK,yCAAoC;AAAA,EAClD;AAAA,EAEA,IAAI,YAAY,OAAe;AAC7B,SAAK,2CAAsC,KAAK;AAAA,EAClD;AAAA,EAEA,IAAI,sBAAsB;AACxB,WAAO,KAAK,0DAA6C;AAAA,EAC3D;AAAA,EAEA,IAAI,oBAAoB,OAAgB;AACtC,SAAK,4DAA+C,KAAK;AAAA,EAC3D;AAAA,EAEA,IAAI,iBAAiB;AACnB,WAAO,KAAK,+CAAuC;AAAA,EACrD;AAAA,EAEA,IAAI,eAAe,OAA6B;AAC9C,SAAK,iDAAyC,KAAK;AAAA,EACrD;AAAA,EAEA,IAAI,aAAa;AACf,WAAO,KAAK,uCAAmC;AAAA,EACjD;AAAA,EAEA,IAAI,WAAW,OAAe;AAC5B,SAAK,yCAAqC,KAAK;AAAA,EACjD;AACF;;;AFFI;AA5CG,IAAM,sBAAwE,CAAC;AAAA,EACpF,UAAU,IAAI,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,CAAC,eAAe,gBAAgB,QAAI,wBAAS,QAAQ,aAAa;AACxE,QAAM,CAAC,UAAU,WAAW,QAAI,wBAAS,QAAQ,QAAQ;AACzD,QAAM,CAAC,gBAAgB,iBAAiB,QAAI,wBAAS,QAAQ,cAAc;AAC3E,QAAM,CAAC,qBAAqB,sBAAsB,QAAI,wBAAS,QAAQ,mBAAmB;AAC1F,QAAM,CAAC,YAAY,aAAa,QAAI,wBAAS,QAAQ,UAAU;AAC/D,QAAM,CAAC,aAAa,cAAc,QAAI,wBAAS,QAAQ,WAAW;AAElE,QAAM,sBAAsB,CAACC,WAAmB;AAC9C,YAAQ,gBAAgBA;AACxB,qBAAiB,QAAQ,aAAa;AAAA,EACxC;AAEA,QAAM,iBAAiB,CAACA,WAAmB;AACzC,YAAQ,WAAWA;AACnB,gBAAY,QAAQ,QAAQ;AAAA,EAC9B;AAEA,QAAM,uBAAuB,CAACA,WAAgC;AAC5D,YAAQ,iBAAiBA;AACzB,sBAAkBA,MAAK;AAAA,EACzB;AAEA,QAAM,4BAA4B,CAACA,WAAmB;AACpD,YAAQ,sBAAsBA;AAC9B,2BAAuBA,MAAK;AAAA,EAC9B;AAEA,QAAM,mBAAmB,CAACA,WAAkB;AAC1C,YAAQ,aAAaA;AACrB,kBAAcA,MAAK;AAAA,EACrB;AAEA,QAAM,oBAAoB,CAACA,WAAkB;AAC3C,YAAQ,cAAcA;AACtB,mBAAeA,MAAK;AAAA,EACtB;AAEA,SACE;AAAA,IAAC,mBAAmB;AAAA,IAAnB;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QAEA,GAAG;AAAA,MACL;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;;;AG7EA,IAAAC,gBAA2B;AAIpB,IAAM,iBAAiB,MAAM;AAClC,aAAO,0BAAW,kBAAkB;AACtC;;;APSQ,IAAAC,sBAAA;AAVD,IAAM,qBAAgD,CAAC,UAAU;AACtE,QAAM,EAAE,UAAU,eAAe,IAAI,eAAe;AAEpD,QAAM,uBAAuB,MAAM;AACjC,qBAAiB,CAAC,QAAQ;AAAA,EAC5B;AAEA,SACE,6CAAC,8BAAW,SAAS,sBAAuB,GAAG,OAC5C,qBACC,6CAAC,sBAAAC,iBAAA,EAAoB,IACrB,6CAAC,sBAAAC,kBAAA,EAAqB,GAC1B;AAEJ;;;AQfO,IAAM,YAAkD,CAAC,EAAE,WAAW,KAAK,MAAM;AACtF,QAAM,EAAE,cAAc,IAAI,eAAe;AAEzC,SAAO,gBAAgB,WAAW;AACpC;","names":["AppSettingSlug","import_react","value","import_react","import_jsx_runtime","DarkModeRoundedIcon","LightModeRoundedIcon"]}
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../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":["export * from './components/index.ts'\nexport * from './contexts/index.ts'\nexport * from './WebAppNavigationType.ts'\n","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":["import_react","AppSettingSlug","appSettingDefault","AppSettingSlug","DarkMode","Developer","NavigationType","NavigationCollapsed","SeedPhrase","MaxAccounts","AppSettingsContext","createContext","appSettingDefault","import_react","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","React","AppSettingsContext","Provider","import_react","useAppSettings","useContext","AppSettingsContext","DarkModeIconButton","props","darkMode","enableDarkMode","useAppSettings","handleDarkModeChange","React","IconButton","onClick","DarkModeRoundedIcon","LightModeRoundedIcon","Developer","children","developerMode","useAppSettings"]}
|
package/dist/browser/index.d.cts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
export * from './components/index.
|
2
|
-
export * from './contexts/index.
|
3
|
-
export * from './WebAppNavigationType.
|
1
|
+
export * from './components/index.ts';
|
2
|
+
export * from './contexts/index.ts';
|
3
|
+
export * from './WebAppNavigationType.ts';
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/browser/index.d.mts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
export * from './components/index.
|
2
|
-
export * from './contexts/index.
|
3
|
-
export * from './WebAppNavigationType.
|
1
|
+
export * from './components/index.ts';
|
2
|
+
export * from './contexts/index.ts';
|
3
|
+
export * from './WebAppNavigationType.ts';
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/browser/index.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
export * from './components/index.
|
2
|
-
export * from './contexts/index.
|
3
|
-
export * from './WebAppNavigationType.
|
1
|
+
export * from './components/index.ts';
|
2
|
+
export * from './contexts/index.ts';
|
3
|
+
export * from './WebAppNavigationType.ts';
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
@@ -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
|
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
|
-
|
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
|
-
[
|
23
|
-
[
|
24
|
-
[
|
25
|
-
[
|
26
|
-
[
|
27
|
-
[
|
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, {
|
126
|
+
super(prefix, {
|
127
|
+
...appSettingDefault(),
|
128
|
+
...defaults
|
129
|
+
});
|
117
130
|
}
|
118
131
|
get darkMode() {
|
119
|
-
return this.getBoolean(
|
132
|
+
return this.getBoolean(AppSettingSlug.DarkMode);
|
120
133
|
}
|
121
134
|
set darkMode(value) {
|
122
|
-
this.setBoolean(
|
135
|
+
this.setBoolean(AppSettingSlug.DarkMode, value);
|
123
136
|
}
|
124
137
|
get developerMode() {
|
125
|
-
return this.getBoolean(
|
138
|
+
return this.getBoolean(AppSettingSlug.Developer);
|
126
139
|
}
|
127
140
|
set developerMode(value) {
|
128
|
-
this.setBoolean(
|
141
|
+
this.setBoolean(AppSettingSlug.Developer, value);
|
129
142
|
}
|
130
143
|
get maxAccounts() {
|
131
|
-
return this.getNumber(
|
144
|
+
return this.getNumber(AppSettingSlug.MaxAccounts);
|
132
145
|
}
|
133
146
|
set maxAccounts(value) {
|
134
|
-
this.setNumber(
|
147
|
+
this.setNumber(AppSettingSlug.MaxAccounts, value);
|
135
148
|
}
|
136
149
|
get navigationCollapsed() {
|
137
|
-
return this.getBoolean(
|
150
|
+
return this.getBoolean(AppSettingSlug.NavigationCollapsed);
|
138
151
|
}
|
139
152
|
set navigationCollapsed(value) {
|
140
|
-
this.setBoolean(
|
153
|
+
this.setBoolean(AppSettingSlug.NavigationCollapsed, value);
|
141
154
|
}
|
142
155
|
get navigationType() {
|
143
|
-
return this.getString(
|
156
|
+
return this.getString(AppSettingSlug.NavigationType);
|
144
157
|
}
|
145
158
|
set navigationType(value) {
|
146
|
-
this.setString(
|
159
|
+
this.setString(AppSettingSlug.NavigationType, value);
|
147
160
|
}
|
148
161
|
get seedPhrase() {
|
149
|
-
return this.getString(
|
162
|
+
return this.getString(AppSettingSlug.SeedPhrase);
|
150
163
|
}
|
151
164
|
set seedPhrase(value) {
|
152
|
-
this.setString(
|
165
|
+
this.setString(AppSettingSlug.SeedPhrase, value);
|
153
166
|
}
|
154
167
|
};
|
155
168
|
|
156
169
|
// src/contexts/AppSettings/Provider.tsx
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
const [
|
165
|
-
const [
|
166
|
-
const [
|
167
|
-
const
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
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
|
-
|
191
|
+
}, "changeNavigationType");
|
192
|
+
const changeNavigationCollapsed = /* @__PURE__ */ __name((value2) => {
|
193
|
+
storageMemo.navigationCollapsed = value2;
|
184
194
|
setNavigationCollapsed(value2);
|
185
|
-
};
|
186
|
-
const changeSeedPhrase = (value2) => {
|
187
|
-
|
195
|
+
}, "changeNavigationCollapsed");
|
196
|
+
const changeSeedPhrase = /* @__PURE__ */ __name((value2) => {
|
197
|
+
storageMemo.seedPhrase = value2;
|
188
198
|
setSeedPhrase(value2);
|
189
|
-
};
|
190
|
-
const changeMaxAccounts = (value2) => {
|
191
|
-
|
199
|
+
}, "changeSeedPhrase");
|
200
|
+
const changeMaxAccounts = /* @__PURE__ */ __name((value2) => {
|
201
|
+
storageMemo.maxAccounts = value2;
|
192
202
|
setMaxAccounts(value2);
|
193
|
-
};
|
194
|
-
return /* @__PURE__ */
|
195
|
-
|
196
|
-
{
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
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
|
-
|
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__ */
|
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.
|
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"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DarkModeIconButton.d.ts","sourceRoot":"","sources":["../../../src/components/DarkModeIconButton.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,eAAe,EAAE,MAAM,eAAe,CAAA;
|
1
|
+
{"version":3,"file":"DarkModeIconButton.d.ts","sourceRoot":"","sources":["../../../src/components/DarkModeIconButton.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,eAAe,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAcxD,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DarkModeIconButton.d.ts","sourceRoot":"","sources":["../../../src/components/DarkModeIconButton.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,eAAe,EAAE,MAAM,eAAe,CAAA;
|
1
|
+
{"version":3,"file":"DarkModeIconButton.d.ts","sourceRoot":"","sources":["../../../src/components/DarkModeIconButton.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,eAAe,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAcxD,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DarkModeIconButton.d.ts","sourceRoot":"","sources":["../../../src/components/DarkModeIconButton.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,eAAe,EAAE,MAAM,eAAe,CAAA;
|
1
|
+
{"version":3,"file":"DarkModeIconButton.d.ts","sourceRoot":"","sources":["../../../src/components/DarkModeIconButton.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,eAAe,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAcxD,CAAA"}
|
@@ -1,3 +1,3 @@
|
|
1
|
-
export * from './DarkModeIconButton.
|
2
|
-
export * from './Developer.
|
1
|
+
export * from './DarkModeIconButton.tsx';
|
2
|
+
export * from './Developer.tsx';
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,iBAAiB,CAAA"}
|
@@ -1,3 +1,3 @@
|
|
1
|
-
export * from './DarkModeIconButton.
|
2
|
-
export * from './Developer.
|
1
|
+
export * from './DarkModeIconButton.tsx';
|
2
|
+
export * from './Developer.tsx';
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,iBAAiB,CAAA"}
|
@@ -1,3 +1,3 @@
|
|
1
|
-
export * from './DarkModeIconButton.
|
2
|
-
export * from './Developer.
|
1
|
+
export * from './DarkModeIconButton.tsx';
|
2
|
+
export * from './Developer.tsx';
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,iBAAiB,CAAA"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { WebAppNavigationType } from '../../WebAppNavigationType.
|
1
|
+
import { WebAppNavigationType } from '../../WebAppNavigationType.ts';
|
2
2
|
export interface AppSettingsContextProps {
|
3
3
|
changeMaxAccounts?: (value: number) => void;
|
4
4
|
changeNavigationCollapsed?: (value: boolean) => void;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { WebAppNavigationType } from '../../WebAppNavigationType.
|
1
|
+
import { WebAppNavigationType } from '../../WebAppNavigationType.ts';
|
2
2
|
export interface AppSettingsContextProps {
|
3
3
|
changeMaxAccounts?: (value: number) => void;
|
4
4
|
changeNavigationCollapsed?: (value: boolean) => void;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { WebAppNavigationType } from '../../WebAppNavigationType.
|
1
|
+
import { WebAppNavigationType } from '../../WebAppNavigationType.ts';
|
2
2
|
export interface AppSettingsContextProps {
|
3
3
|
changeMaxAccounts?: (value: number) => void;
|
4
4
|
changeNavigationCollapsed?: (value: boolean) => void;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { WithChildren } from '@xylabs/react-shared';
|
2
|
-
import { ProviderProps } from 'react';
|
3
|
-
import { AppSettingsContextProps } from './Context.
|
4
|
-
import { AppSettingsStorage } from './Storage.
|
2
|
+
import React, { ProviderProps } from 'react';
|
3
|
+
import { AppSettingsContextProps } from './Context.ts';
|
4
|
+
import { AppSettingsStorage } from './Storage.ts';
|
5
5
|
export interface AppSettingsProviderProps<T extends AppSettingsContextProps = AppSettingsContextProps> extends ProviderProps<T> {
|
6
6
|
storage?: AppSettingsStorage;
|
7
7
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,aAAa,
|
1
|
+
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,EAAE,aAAa,EAAqB,MAAM,OAAO,CAAA;AAG/D,OAAO,EAAsB,uBAAuB,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEjD,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS,uBAAuB,GAAG,uBAAuB,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;IAC7H,OAAO,CAAC,EAAE,kBAAkB,CAAA;CAC7B;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAoEhF,CAAA"}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { WithChildren } from '@xylabs/react-shared';
|
2
|
-
import { ProviderProps } from 'react';
|
3
|
-
import { AppSettingsContextProps } from './Context.
|
4
|
-
import { AppSettingsStorage } from './Storage.
|
2
|
+
import React, { ProviderProps } from 'react';
|
3
|
+
import { AppSettingsContextProps } from './Context.ts';
|
4
|
+
import { AppSettingsStorage } from './Storage.ts';
|
5
5
|
export interface AppSettingsProviderProps<T extends AppSettingsContextProps = AppSettingsContextProps> extends ProviderProps<T> {
|
6
6
|
storage?: AppSettingsStorage;
|
7
7
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,aAAa,
|
1
|
+
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,EAAE,aAAa,EAAqB,MAAM,OAAO,CAAA;AAG/D,OAAO,EAAsB,uBAAuB,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEjD,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS,uBAAuB,GAAG,uBAAuB,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;IAC7H,OAAO,CAAC,EAAE,kBAAkB,CAAA;CAC7B;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAoEhF,CAAA"}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { WithChildren } from '@xylabs/react-shared';
|
2
|
-
import { ProviderProps } from 'react';
|
3
|
-
import { AppSettingsContextProps } from './Context.
|
4
|
-
import { AppSettingsStorage } from './Storage.
|
2
|
+
import React, { ProviderProps } from 'react';
|
3
|
+
import { AppSettingsContextProps } from './Context.ts';
|
4
|
+
import { AppSettingsStorage } from './Storage.ts';
|
5
5
|
export interface AppSettingsProviderProps<T extends AppSettingsContextProps = AppSettingsContextProps> extends ProviderProps<T> {
|
6
6
|
storage?: AppSettingsStorage;
|
7
7
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,aAAa,
|
1
|
+
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,EAAE,aAAa,EAAqB,MAAM,OAAO,CAAA;AAG/D,OAAO,EAAsB,uBAAuB,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEjD,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS,uBAAuB,GAAG,uBAAuB,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;IAC7H,OAAO,CAAC,EAAE,kBAAkB,CAAA;CAC7B;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAoEhF,CAAA"}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { WebAppNavigationType } from '../../WebAppNavigationType.
|
2
|
-
import { AppSettingsStorageBase } from './StorageBase.
|
1
|
+
import { WebAppNavigationType } from '../../WebAppNavigationType.ts';
|
2
|
+
import { AppSettingsStorageBase } from './StorageBase.ts';
|
3
3
|
export declare class AppSettingsStorage extends AppSettingsStorageBase {
|
4
4
|
constructor(prefix?: string, defaults?: Record<string, unknown>);
|
5
5
|
get darkMode(): boolean;
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { WebAppNavigationType } from '../../WebAppNavigationType.
|
2
|
-
import { AppSettingsStorageBase } from './StorageBase.
|
1
|
+
import { WebAppNavigationType } from '../../WebAppNavigationType.ts';
|
2
|
+
import { AppSettingsStorageBase } from './StorageBase.ts';
|
3
3
|
export declare class AppSettingsStorage extends AppSettingsStorageBase {
|
4
4
|
constructor(prefix?: string, defaults?: Record<string, unknown>);
|
5
5
|
get darkMode(): boolean;
|