@particle-network/connectkit
Version:
8 lines (7 loc) • 11.8 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../../src/utils/theme.ts", "../../../../src/utils/deepEqual.ts", "../../../../src/context/index.tsx", "../../../../src/hooks/useAppearance.ts", "../../../../src/hooks/useIconColor.ts", "../../../../src/assets/social/github.tsx"],
"sourcesContent": ["export function getSystemMode() {\n if (typeof window !== 'undefined' && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {\n return 'dark';\n } else {\n return 'light';\n }\n}\n", "/** Forked from https://github.com/epoberezkin/fast-deep-equal */\n\nexport function deepEqual(a: any, b: any) {\n if (a === b) return true;\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n if (a.constructor !== b.constructor) return false;\n\n let length: number;\n let i: number;\n\n if (Array.isArray(a) && Array.isArray(b)) {\n length = a.length;\n if (length !== b.length) return false;\n for (i = length; i-- !== 0; ) if (!deepEqual(a[i], b[i])) return false;\n return true;\n }\n\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n const keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(b, keys[i]!)) return false;\n\n for (i = length; i-- !== 0; ) {\n const key = keys[i];\n\n if (key && !deepEqual(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n // biome-ignore lint/suspicious/noSelfCompare: <explanation>\n return a !== a && b !== b;\n}\n", "import type { AAPlugin } from '@particle-network/aa-plugin';\nimport React, { createContext, useMemo, type ReactNode } from 'react';\nimport ConnectModal from '../components/connectModal';\nimport { type Config } from '../createConfig';\nimport { useAppearance } from '../hooks/useAppearance';\nimport { getAuthCoreTheme } from '../styles';\nimport type { AuthWalletConnectorProperties } from '../types/properties';\nimport { getSystemMode } from '../utils/theme';\nimport { ModalProvider } from './modalProvider';\nimport type { ConnectKitOptions } from './types';\nimport { Web3Provder } from './web3Provider';\n\ntype ContextValue = {\n options: ConnectKitOptions;\n config: Config;\n};\n\nexport const Context = createContext<ContextValue | null>(null);\n\nexport type ConnectKitProviderProps = {\n children?: ReactNode;\n config: Config;\n reconnectOnMount?: boolean | undefined;\n};\n\nexport const ConnectKitProvider = (parameters: ConnectKitProviderProps): React.ReactElement => {\n // Only allow for mounting ConnectKitProvider once, so we avoid weird global\n // state collisions.\n if (React.useContext(Context)) {\n throw new Error('Multiple, nested usages of ConnectKitProvider detected. Please use only one.');\n }\n\n const { children, config, reconnectOnMount = true } = parameters;\n const { appearance } = useAppearance(config);\n\n const { AuthCoreContextProvider, authOptions } = useMemo(() => {\n const authWalletConnector = config.getWalletConnector<AuthWalletConnectorProperties>('particleAuth');\n const aaPlugin = config.plugins.find((plugin) => plugin.id === 'aa') as AAPlugin;\n const erc4337 = aaPlugin ? aaPlugin.erc4337 : undefined;\n\n let theme = appearance?.mode ?? getSystemMode();\n if (theme === 'auto') {\n theme = getSystemMode();\n }\n\n return {\n AuthCoreContextProvider: authWalletConnector?.AuthCoreContextProvider ?? React.Fragment,\n authOptions: authWalletConnector\n ? {\n options: {\n themeType: theme,\n ...authWalletConnector.authOptions,\n customStyle: {\n ...authWalletConnector.authOptions?.customStyle,\n theme: {\n [theme as string]: getAuthCoreTheme(appearance),\n },\n },\n erc4337,\n },\n }\n : undefined,\n };\n }, [config, appearance]);\n\n return (\n <Context.Provider\n value={{\n options: config.options,\n config,\n }}\n >\n <AuthCoreContextProvider {...authOptions}>\n <Web3Provder>\n {children}\n <ModalProvider reconnectOnMount={reconnectOnMount}>\n <ConnectModal />\n </ModalProvider>\n </Web3Provder>\n </AuthCoreContextProvider>\n </Context.Provider>\n );\n};\n\nexport const useContext = () => {\n const context = React.useContext(Context);\n if (!context) throw Error('ConnectKit Hook must be inside a Provider.');\n return context;\n};\n", "import { useCallback, useSyncExternalStore } from 'react';\nimport { useContext } from '../context';\nimport type { Appearance } from '../context/types';\nimport type { Config } from '../createConfig';\nimport { deepEqual } from '../utils/deepEqual';\n\nexport type UseAppearanceReturnType = {\n appearance: Appearance;\n setAppearance: (value?: Appearance) => void;\n};\n\nexport type WatchAppearanceParameters = {\n onChange(appearance: Appearance, prevAppearance: Appearance): void;\n};\n\nlet previousAppearance: Appearance = {};\n\nexport function getAppearance(config: Config) {\n const appearance = { ...config.appearanceStore.getState() };\n if (deepEqual(previousAppearance, appearance)) return previousAppearance;\n\n previousAppearance = appearance;\n return appearance;\n}\n\nexport function useAppearance(config?: Config): UseAppearanceReturnType {\n if (!config) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { config: globalConfig } = useContext();\n config = globalConfig;\n }\n\n const setAppearance = useCallback(\n (value?: Appearance) => {\n config.appearanceStore.setState(value || {}, true);\n },\n [config.appearanceStore]\n );\n\n const appearance = useSyncExternalStore(\n config.appearanceStore.subscribe,\n () => getAppearance(config),\n () => getAppearance(config)\n );\n\n return {\n appearance,\n setAppearance,\n };\n}\n", "import { useEffect, useMemo, useState } from 'react';\nimport { getSystemMode } from '../utils/theme';\nimport { useAppearance } from './useAppearance';\n\nconst useIconColor = () => {\n const [currentMode, setCurrentMode] = useState<'light' | 'dark'>();\n const { appearance } = useAppearance();\n\n useEffect(() => {\n if (appearance?.mode && appearance?.mode !== 'auto') {\n setCurrentMode(appearance?.mode);\n } else {\n setCurrentMode(getSystemMode());\n }\n }, [appearance?.mode]);\n\n const foreground = useMemo(() => {\n if (currentMode === 'dark') {\n return '#000000';\n } else {\n return '#ffffff';\n }\n }, [currentMode]);\n\n const background = useMemo(() => {\n if (currentMode === 'dark') {\n return '#ffffff';\n } else {\n return '#000000';\n }\n }, [currentMode]);\n\n return { foreground, background, currentMode };\n};\n\nexport default useIconColor;\n", "import useIconColor from '../../hooks/useIconColor';\n\nconst Github = () => {\n const { foreground, background } = useIconColor();\n\n return (\n <svg width='22' height='22' viewBox='0 0 22 22' fill='none' xmlns='http://www.w3.org/2000/svg'>\n <rect width='22' height='22' rx='11' fill={foreground} />\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M10.999 0C4.92483 0 0 4.92483 0 11.0003C0 15.8603 3.15154 19.9829 7.52264 21.4382C8.07299 21.5388 8.27355 21.1991 8.27355 20.9074C8.27355 20.6467 8.2641 19.9546 8.25869 19.0369C5.19899 19.7013 4.55342 17.562 4.55342 17.562C4.05304 16.2918 3.33184 15.9535 3.33184 15.9535C2.3331 15.2708 3.40747 15.2843 3.40747 15.2843C4.51156 15.3627 5.0923 16.4181 5.0923 16.4181C6.07348 18.0989 7.66715 17.6134 8.29381 17.3325C8.39375 16.6214 8.67737 16.1365 8.99205 15.8617C6.54956 15.5841 3.98146 14.6401 3.98146 10.425C3.98146 9.22435 4.41026 8.24249 5.11391 7.47334C5.00046 7.19512 4.62298 6.07686 5.22128 4.5622C5.22128 4.5622 6.14506 4.26643 8.24654 5.68992C9.12373 5.44614 10.0651 5.32392 11.0003 5.31987C11.9343 5.32392 12.8756 5.44614 13.7541 5.68992C15.8543 4.26643 16.776 4.5622 16.776 4.5622C17.3763 6.07686 16.9989 7.19512 16.8854 7.47334C17.5904 8.24249 18.0165 9.22435 18.0165 10.425C18.0165 14.6509 15.4444 15.5808 12.9938 15.8529C13.3888 16.1926 13.7406 16.8638 13.7406 17.8902C13.7406 19.3603 13.7271 20.5468 13.7271 20.9074C13.7271 21.2018 13.925 21.5442 14.4834 21.4368C18.8512 19.9789 22 15.859 22 11.0003C22 4.92483 17.0745 0 10.999 0Z'\n fill={background}\n />\n </svg>\n );\n};\n\nexport default Github;\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,SAAS,gBAAgB;AAC9B,MAAI,OAAO,WAAW,eAAe,OAAO,cAAc,OAAO,WAAW,8BAA8B,EAAE,SAAS;AACnH,WAAO;AAAA,EACT,OAAO;AACL,WAAO;AAAA,EACT;AACF;AANA;AAAA;AAAA;AAAA;AAAA;;;ACEO,SAAS,UAAU,GAAQ,GAAQ;AACxC,MAAI,MAAM;AAAG,WAAO;AAEpB,MAAI,KAAK,KAAK,OAAO,MAAM,YAAY,OAAO,MAAM,UAAU;AAC5D,QAAI,EAAE,gBAAgB,EAAE;AAAa,aAAO;AAE5C,QAAI;AACJ,QAAI;AAEJ,QAAI,MAAM,QAAQ,CAAC,KAAK,MAAM,QAAQ,CAAC,GAAG;AACxC,eAAS,EAAE;AACX,UAAI,WAAW,EAAE;AAAQ,eAAO;AAChC,WAAK,IAAI,QAAQ,QAAQ;AAAK,YAAI,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE;AAAG,iBAAO;AACjE,aAAO;AAAA,IACT;AAEA,QAAI,EAAE,YAAY,OAAO,UAAU;AAAS,aAAO,EAAE,QAAQ,MAAM,EAAE,QAAQ;AAC7E,QAAI,EAAE,aAAa,OAAO,UAAU;AAAU,aAAO,EAAE,SAAS,MAAM,EAAE,SAAS;AAEjF,UAAM,OAAO,OAAO,KAAK,CAAC;AAC1B,aAAS,KAAK;AACd,QAAI,WAAW,OAAO,KAAK,CAAC,EAAE;AAAQ,aAAO;AAE7C,SAAK,IAAI,QAAQ,QAAQ;AAAK,UAAI,CAAC,OAAO,UAAU,eAAe,KAAK,GAAG,KAAK,EAAG;AAAG,eAAO;AAE7F,SAAK,IAAI,QAAQ,QAAQ,KAAK;AAC5B,YAAM,MAAM,KAAK;AAEjB,UAAI,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI;AAAG,eAAO;AAAA,IAChD;AAEA,WAAO;AAAA,EACT;AAIA,SAAO,MAAM,KAAK,MAAM;AAC1B;AAvCA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IACA,cAwEQ,oBAxDK,SAmEA;AApFb;AAAA;AAAA;AACA,mBAA8D;AAwEtD;AAxDD,IAAM,cAAU,4BAAmC,IAAI;AAmEvD,IAAM,aAAa,MAAM;AAC9B,YAAM,UAAU,aAAAA,QAAM,WAAW,OAAO;AACxC,UAAI,CAAC;AAAS,cAAM,MAAM,4CAA4C;AACtE,aAAO;AAAA,IACT;AAAA;AAAA;;;ACvEO,SAAS,cAAc,QAAgB;AAC5C,QAAM,aAAa,EAAE,GAAG,OAAO,gBAAgB,SAAS,EAAE;AAC1D,MAAI,UAAU,oBAAoB,UAAU;AAAG,WAAO;AAEtD,uBAAqB;AACrB,SAAO;AACT;AAEO,SAAS,cAAc,QAA0C;AACtE,MAAI,CAAC,QAAQ;AAEX,UAAM,EAAE,QAAQ,aAAa,IAAI,WAAW;AAC5C,aAAS;AAAA,EACX;AAEA,QAAM,oBAAgB;AAAA,IACpB,CAAC,UAAuB;AACtB,aAAO,gBAAgB,SAAS,SAAS,CAAC,GAAG,IAAI;AAAA,IACnD;AAAA,IACA,CAAC,OAAO,eAAe;AAAA,EACzB;AAEA,QAAM,iBAAa;AAAA,IACjB,OAAO,gBAAgB;AAAA,IACvB,MAAM,cAAc,MAAM;AAAA,IAC1B,MAAM,cAAc,MAAM;AAAA,EAC5B;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;AAjDA,IAAAC,eAeI;AAfJ;AAAA;AAAA;AAAA,IAAAA,gBAAkD;AAClD;AAGA;AAWA,IAAI,qBAAiC,CAAC;AAAA;AAAA;;;ACftC,IAAAC,eAIM,cA+BC;AAnCP;AAAA;AAAA;AAAA,IAAAA,gBAA6C;AAC7C;AACA;AAEA,IAAM,eAAe,MAAM;AACzB,YAAM,CAAC,aAAa,cAAc,QAAI,wBAA2B;AACjE,YAAM,EAAE,WAAW,IAAI,cAAc;AAErC,mCAAU,MAAM;AACd,YAAI,YAAY,QAAQ,YAAY,SAAS,QAAQ;AACnD,yBAAe,YAAY,IAAI;AAAA,QACjC,OAAO;AACL,yBAAe,cAAc,CAAC;AAAA,QAChC;AAAA,MACF,GAAG,CAAC,YAAY,IAAI,CAAC;AAErB,YAAM,iBAAa,uBAAQ,MAAM;AAC/B,YAAI,gBAAgB,QAAQ;AAC1B,iBAAO;AAAA,QACT,OAAO;AACL,iBAAO;AAAA,QACT;AAAA,MACF,GAAG,CAAC,WAAW,CAAC;AAEhB,YAAM,iBAAa,uBAAQ,MAAM;AAC/B,YAAI,gBAAgB,QAAQ;AAC1B,iBAAO;AAAA,QACT,OAAO;AACL,iBAAO;AAAA,QACT;AAAA,MACF,GAAG,CAAC,WAAW,CAAC;AAEhB,aAAO,EAAE,YAAY,YAAY,YAAY;AAAA,IAC/C;AAEA,IAAO,uBAAQ;AAAA;AAAA;;;ACnCf;AAAA;AAAA;AAAA;AAAA;AAAA,IAMIC,qBAJE,QAgBC;AAlBP;AAAA;AAAA;AAMI,IAAAA,sBAAA;AAJJ,IAAM,SAAS,MAAM;AACnB,YAAM,EAAE,YAAY,WAAW,IAAI,qBAAa;AAEhD,aACE,8CAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAChE;AAAA,qDAAC,UAAK,OAAM,MAAK,QAAO,MAAK,IAAG,MAAK,MAAM,YAAY;AAAA,QACvD;AAAA,UAAC;AAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,GAAE;AAAA,YACF,MAAM;AAAA;AAAA,QACR;AAAA,SACF;AAAA,IAEJ;AAEA,IAAO,iBAAQ;AAAA;AAAA;",
"names": ["React", "import_react", "import_react", "import_jsx_runtime"]
}