{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "solana-provider",
  "type": "registry:component",
  "title": "Solana Provider",
  "description": "A provider that configures Wallet UI for your app.",
  "dependencies": [
    "@wallet-ui/react@latest",
    "@wallet-ui/react-gill@latest",
    "@solana-mobile/wallet-standard-mobile",
    "gill@latest"
  ],
  "registryDependencies": [],
  "files": [
    {
      "path": "registry/wallet-ui/blocks/solana-provider/solana-provider.tsx",
      "content": "'use client'\n\nimport { ReactNode } from 'react'\nimport {\n  createSolanaDevnet,\n  createSolanaLocalnet,\n  createSolanaTestnet,\n  createWalletUiConfig,\n  WalletUi\n} from '@wallet-ui/react'\nimport { WalletUiGillProvider } from '@wallet-ui/react-gill'\nimport { solanaMobileWalletAdapter } from \"./solana-mobile-wallet-adapter\";\n\nconst config = createWalletUiConfig({\n  clusters: [createSolanaDevnet(), createSolanaLocalnet(), createSolanaTestnet()],\n})\n\nsolanaMobileWalletAdapter({ clusters: config.clusters })\n\nexport function SolanaProvider({ children }: { children: ReactNode }) {\n  return <WalletUi config={config}>\n    <WalletUiGillProvider>\n      {children}\n    </WalletUiGillProvider>\n  </WalletUi>\n}\n",
      "type": "registry:component"
    },
    {
      "path": "registry/wallet-ui/blocks/solana-provider/solana-mobile-wallet-adapter.ts",
      "content": "'use client'\n\nimport { SolanaCluster } from '@wallet-ui/react'\nimport {\n  createDefaultAuthorizationCache,\n  createDefaultChainSelector,\n  createDefaultWalletNotFoundHandler,\n  registerMwa,\n} from '@solana-mobile/wallet-standard-mobile';\n\nexport function solanaMobileWalletAdapter({ appIdentity = { name: 'Wallet UI' }, clusters }: { appIdentity?: { uri?: string; icon?: string; name?: string }, clusters: SolanaCluster[] }) {\n  if (typeof window === 'undefined') {\n    return\n  }\n  if (!window.isSecureContext) {\n    console.warn(`Solana Mobile Wallet Adapter not loaded: https connection required`)\n    return\n  }\n  const chains = clusters.map(c => c.id)\n  if (!chains.length) {\n    console.warn(`Solana Mobile Wallet Adapter not loaded: no clusters provided`)\n    return\n  }\n  registerMwa({\n    appIdentity,\n    authorizationCache: createDefaultAuthorizationCache(),\n    chains,\n    chainSelector: createDefaultChainSelector(),\n    onWalletNotFound: createDefaultWalletNotFoundHandler(),\n  })\n  console.log(`Loaded Solana Mobile Wallet Adapter`)\n}",
      "type": "registry:component"
    },
    {
      "path": "registry/wallet-ui/blocks/solana-provider/use-solana.tsx",
      "content": "import { useWalletUi } from '@wallet-ui/react'\nimport { useWalletUiGill } from '@wallet-ui/react-gill'\n\n/**\n * Custom hook to abstract Wallet UI and related functionality from your app.\n *\n * This is a great place to add custom shared Solana logic or clients.\n */\nexport function useSolana() {\n  const walletUi = useWalletUi()\n  const client = useWalletUiGill()\n  return {\n    ...walletUi,\n    client,\n  }\n}\n",
      "type": "registry:hook"
    }
  ]
}