{"_id":"@airxpay/sdk-ui","_rev":"10-07b36f5962e0d77ee1b4b803ee1ebb3e","name":"@airxpay/sdk-ui","dist-tags":{"latest":"1.0.8"},"versions":{"1.0.0":{"name":"@airxpay/sdk-ui","version":"1.0.0","keywords":["airxpay","react-native","seller-onboarding","payments","ui"],"author":{"name":"Tafseel Khan"},"license":"MIT","_id":"@airxpay/sdk-ui@1.0.0","maintainers":[{"name":"tafseel1983","email":"tafseel1983@gmail.com"}],"homepage":"https://github.com/tafseelkhan/airxpay-initialization-ui#readme","bugs":{"url":"https://github.com/tafseelkhan/airxpay-initialization-ui/issues"},"dist":{"shasum":"5be8785b5412c53bf7e39d30fe780d110c60c84d","tarball":"https://registry.npmjs.org/@airxpay/sdk-ui/-/sdk-ui-1.0.0.tgz","fileCount":19,"integrity":"sha512-Tk+SGxnps5do9MLkNefvEaAf2/3UTXtMw0WgB0YLZRsS+Xsilo8u81dYCVq60orcXS09+LeSmndTJyb3lYS7TA==","signatures":[{"sig":"MEYCIQCCv8tc01Rgjzq9BSFGXa8hs3eI4H0IWnDqTfIZwzrokgIhAN88ATe1kXEM1XFVF7mjyTa9loeGiCAKhDumNg/vg3TX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":162129},"main":"dist/index.js","gitHead":"ed5c403fb3ec26bfaf4dd04c503c44c594af03d4","scripts":{"build":"tsc --project tsconfig.json --outDir dist --declaration false","prepare":"npm run build"},"_npmUser":{"name":"tafseel1983","email":"tafseel1983@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/tafseelkhan/airxpay-initialization-ui.git","type":"git"},"_npmVersion":"9.9.4","description":"AirXPay Initialization UI Components for React & React Native","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.5"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-native":"^0.84.0","expo-image-picker":"^17.0.10","react-native-paper":"^5.15.0","expo-linear-gradient":"^15.0.8","react-native-country-picker-modal":"^2.0.0","@react-native-community/datetimepicker":"^8.6.0"},"peerDependencies":{"react":">=18","react-native":">=0.72"},"_npmOperationalInternal":{"tmp":"tmp/sdk-ui_1.0.0_1771133240450_0.12562078211707672","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@airxpay/sdk-ui","version":"1.0.1","keywords":["airxpay","react-native","seller-onboarding","payments","ui"],"author":{"name":"Tafseel Khan"},"license":"MIT","_id":"@airxpay/sdk-ui@1.0.1","maintainers":[{"name":"tafseel1983","email":"tafseel1983@gmail.com"}],"homepage":"https://github.com/tafseelkhan/airxpay-sdk-ui#readme","bugs":{"url":"https://github.com/tafseelkhan/airxpay-sdk-ui/issues"},"dist":{"shasum":"12dd5fc93a325d4965a08da660767b05b8a068a1","tarball":"https://registry.npmjs.org/@airxpay/sdk-ui/-/sdk-ui-1.0.1.tgz","fileCount":40,"integrity":"sha512-W1DDcBU+EKwIOnZvmfeTbEl0ANSPam2IolWCSuDL8AVLYR4W9ajnmIxoolg5r/RFE6JFjkaf29ZXYRwwQwYUdQ==","signatures":[{"sig":"MEQCICHRSHUDpYyH2kcvOFiuEsMQ9lrVg7wLre3lJJHIYra9AiBo61NxMfFkP+eR9NTKOT1lsIuuE2/K38kTdNFHYF9hHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181326},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"028af43ec4a3f83880fb9c9163b4a74266ac6848","scripts":{"build":"tsc --project tsconfig.json --outDir dist && cpx \"src/types/**/*\" dist/types","prepare":"npm run build"},"_npmUser":{"name":"tafseel1983","email":"tafseel1983@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/tafseelkhan/airxpay-sdk-ui.git","type":"git"},"_npmVersion":"9.9.4","description":"AirXPay Initialization UI Components for React & React Native","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.5"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"^1.5.0","react":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-native":"^0.84.0","expo-image-picker":"^17.0.10","react-native-paper":"^5.15.0","expo-linear-gradient":"^15.0.8","react-native-country-picker-modal":"^2.0.0","@react-native-community/datetimepicker":"^8.6.0"},"peerDependencies":{"react":">=18","react-native":">=0.72"},"_npmOperationalInternal":{"tmp":"tmp/sdk-ui_1.0.1_1771169708754_0.4637243344726334","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@airxpay/sdk-ui","version":"1.0.2","keywords":["airxpay","react-native","seller-onboarding","payments","ui"],"author":{"name":"Tafseel Khan"},"license":"MIT","_id":"@airxpay/sdk-ui@1.0.2","maintainers":[{"name":"tafseel1983","email":"tafseel1983@gmail.com"}],"homepage":"https://github.com/tafseelkhan/airxpay-sdk-ui#readme","bugs":{"url":"https://github.com/tafseelkhan/airxpay-sdk-ui/issues"},"dist":{"shasum":"2d5d56bc3e9bebfc7cfae3b74a0fbbdb4037364f","tarball":"https://registry.npmjs.org/@airxpay/sdk-ui/-/sdk-ui-1.0.2.tgz","fileCount":40,"integrity":"sha512-YsLcORJwCB1HkBmdH/n/qXJ8QfeUNt2fTCFrE01CIVNOMQDaFdmAtxQ8ei690fViKXn5ggrPreM+1M1sXewNSQ==","signatures":[{"sig":"MEQCICMJ6tqUP0wiW3q0pgLtj6lLYp5iP1yfuZM7Wy8+MH/bAiAVTWdyVJAEoEIocTls0abksRVVi9BRbynU3KG3zHWvDQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":184717},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"a5223f8cb860b2fb93099996de6f3d1d58a36cfb","scripts":{"build":"tsc --project tsconfig.json --outDir dist && cpx \"src/types/**/*\" dist/types","prepare":"npm run build"},"_npmUser":{"name":"tafseel1983","email":"tafseel1983@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/tafseelkhan/airxpay-sdk-ui.git","type":"git"},"_npmVersion":"9.9.4","description":"AirXPay Initialization UI Components for React & React Native","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.5"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"^1.5.0","react":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-native":"^0.84.0","expo-image-picker":"^17.0.10","react-native-paper":"^5.15.0","expo-linear-gradient":"^15.0.8","react-native-country-picker-modal":"^2.0.0","@react-native-community/datetimepicker":"^8.6.0"},"peerDependencies":{"react":">=18","react-native":">=0.72"},"_npmOperationalInternal":{"tmp":"tmp/sdk-ui_1.0.2_1771237377837_0.010621476597562296","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@airxpay/sdk-ui","version":"1.0.3","keywords":["airxpay","react-native","seller-onboarding","payments","ui"],"author":{"name":"Tafseel Khan"},"license":"MIT","_id":"@airxpay/sdk-ui@1.0.3","maintainers":[{"name":"tafseel1983","email":"tafseel1983@gmail.com"}],"homepage":"https://github.com/tafseelkhan/airxpay-sdk-ui#readme","bugs":{"url":"https://github.com/tafseelkhan/airxpay-sdk-ui/issues"},"dist":{"shasum":"4f3b482a7dde6adeae3f53244a81dc821d254f87","tarball":"https://registry.npmjs.org/@airxpay/sdk-ui/-/sdk-ui-1.0.3.tgz","fileCount":42,"integrity":"sha512-j2+Xew5URY27IJvgZKjSjNrRmxduHM7pB0qSMfpYVV+eCMYY6YYOfDcPmGD9uVrRN9StY3Y4xLc47yqdNB+BKA==","signatures":[{"sig":"MEYCIQCWKyCrbSvDOgf+7CMzLE7q7yUwHLfHeUZkxn6zm+uzYAIhAJUAewGd3OpcrhaWDkeDrjACeVLlrXHt7bgfzYtVXwh4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":360733},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"a5223f8cb860b2fb93099996de6f3d1d58a36cfb","scripts":{"build":"tsc --project tsconfig.json --outDir dist && cpx \"src/types/**/*\" dist/types && copyfiles -u 1 src/assets/**/* dist","prepare":"npm run build"},"_npmUser":{"name":"tafseel1983","email":"tafseel1983@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/tafseelkhan/airxpay-sdk-ui.git","type":"git"},"_npmVersion":"9.9.4","description":"AirXPay Initialization UI Components for React & React Native","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.5"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"^1.5.0","react":"^19.2.4","copyfiles":"^2.4.1","typescript":"^5.9.3","@types/react":"^19.2.14","react-native":"^0.84.0","expo-image-picker":"^17.0.10","react-native-paper":"^5.15.0","expo-linear-gradient":"^15.0.8","react-native-country-picker-modal":"^2.0.0","@react-native-community/datetimepicker":"^8.6.0"},"peerDependencies":{"react":">=18","react-native":">=0.72"},"_npmOperationalInternal":{"tmp":"tmp/sdk-ui_1.0.3_1771240190888_0.7160473111676136","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@airxpay/sdk-ui","version":"1.0.5","keywords":["airxpay","react-native","seller-onboarding","payments","ui"],"author":{"name":"Tafseel Khan"},"license":"MIT","_id":"@airxpay/sdk-ui@1.0.5","maintainers":[{"name":"tafseel1983","email":"tafseel1983@gmail.com"}],"homepage":"https://github.com/tafseelkhan/airxpay-sdk-ui#readme","bugs":{"url":"https://github.com/tafseelkhan/airxpay-sdk-ui/issues"},"dist":{"shasum":"e6efe2b2fa0987796628e63059a636f74e3dfbfc","tarball":"https://registry.npmjs.org/@airxpay/sdk-ui/-/sdk-ui-1.0.5.tgz","fileCount":42,"integrity":"sha512-rzSNcqzvKgHpJHMaNGrNGwgFo41lXMZQD0jhzvHcqooeUfX1iRByJqkfMqHgy/b77YC960yCHpjnvo6HL1yEDQ==","signatures":[{"sig":"MEUCIH9HEiRWgr727MsJ7/k+Xy7sC1pdKzYfnw0JqBKpFJa7AiEAsa3DWQbOij2KrNs9n/CLzUNtTchGmDDIpYo3la+CLss=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":367096},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"24ebb98f681064791c9ee52095859418c568775e","scripts":{"build":"tsc --project tsconfig.json --outDir dist && cpx \"src/types/**/*\" dist/types && copyfiles -u 1 src/assets/**/* dist","prepare":"npm run build"},"_npmUser":{"name":"tafseel1983","email":"tafseel1983@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/tafseelkhan/airxpay-sdk-ui.git","type":"git"},"_npmVersion":"9.9.4","description":"AirXPay Initialization UI Components for React & React Native","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.5"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"^1.5.0","react":"^19.2.4","copyfiles":"^2.4.1","typescript":"^5.9.3","@types/react":"^19.2.14","react-native":"^0.84.0","expo-image-picker":"^17.0.10","react-native-paper":"^5.15.0","expo-linear-gradient":"^15.0.8","react-native-country-picker-modal":"^2.0.0","@react-native-community/datetimepicker":"^8.6.0"},"peerDependencies":{"react":">=18","react-native":">=0.72"},"_npmOperationalInternal":{"tmp":"tmp/sdk-ui_1.0.5_1771251648859_0.07118200793644625","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@airxpay/sdk-ui","version":"1.0.6","keywords":["airxpay","react-native","seller-onboarding","payments","ui"],"author":{"name":"Tafseel Khan"},"license":"MIT","_id":"@airxpay/sdk-ui@1.0.6","maintainers":[{"name":"tafseel1983","email":"tafseel1983@gmail.com"}],"homepage":"https://github.com/tafseelkhan/airxpay-sdk-ui#readme","bugs":{"url":"https://github.com/tafseelkhan/airxpay-sdk-ui/issues"},"dist":{"shasum":"095f1e807d2556d821919d1d65c21dbb7300cacd","tarball":"https://registry.npmjs.org/@airxpay/sdk-ui/-/sdk-ui-1.0.6.tgz","fileCount":44,"integrity":"sha512-ODr6WWlmj1m/vCxj7w8XESiUNx/E1j8XvaEAzl0isjdHSakFiw43UOiAKMYNj3a9h8EpjgvinzFvL+1JwvwZgQ==","signatures":[{"sig":"MEQCIHaJy+ZcJMIJB2ESCX0F3n0aHjp58kl3RnMBMwCsYBcYAiAVe+HbK6dX57LB++lVXL3puICmr6d3iOCCwF7ooG7jNg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":381190},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"38e4c3df4c32cda1c5a2e082c189fa2a36431a0b","scripts":{"build":"tsc --project tsconfig.json --outDir dist && cpx \"src/types/**/*\" dist/types && copyfiles -u 1 src/assets/**/* dist","prepare":"npm run build"},"_npmUser":{"name":"tafseel1983","email":"tafseel1983@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/tafseelkhan/airxpay-sdk-ui.git","type":"git"},"_npmVersion":"9.9.4","description":"AirXPay Initialization UI Components for React & React Native","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.5"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"^1.5.0","react":"^19.2.4","copyfiles":"^2.4.1","typescript":"^5.9.3","@types/react":"^19.2.14","react-native":"^0.84.0","expo-image-picker":"^17.0.10","react-native-paper":"^5.15.0","expo-linear-gradient":"^15.0.8","react-native-country-picker-modal":"^2.0.0","@react-native-community/datetimepicker":"^8.6.0"},"peerDependencies":{"react":">=18","react-native":">=0.72"},"_npmOperationalInternal":{"tmp":"tmp/sdk-ui_1.0.6_1771334539520_0.4786860615975308","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@airxpay/sdk-ui","version":"1.0.7","keywords":["airxpay","react-native","seller-onboarding","payments","ui"],"author":{"name":"Tafseel Khan"},"license":"MIT","_id":"@airxpay/sdk-ui@1.0.7","maintainers":[{"name":"tafseel1983","email":"tafseel1983@gmail.com"}],"homepage":"https://github.com/tafseelkhan/airxpay-sdk-ui#readme","bugs":{"url":"https://github.com/tafseelkhan/airxpay-sdk-ui/issues"},"dist":{"shasum":"cc8fe53d85a027fe4f32e4043d862c2e41da4881","tarball":"https://registry.npmjs.org/@airxpay/sdk-ui/-/sdk-ui-1.0.7.tgz","fileCount":46,"integrity":"sha512-JkRHrd2YekYZqK96IOsgrfDhSuoMYk0KVJaDOdPa6lnnhp1Z6WNgAck+aNaEJzUNop/vRsjSOI7erK8jLe0SQg==","signatures":[{"sig":"MEQCIApkR+l9Lu79dCoPfNuXyJpFJerXbg6G3CnLeGngu1k9AiAO8hBRazkRhM9caCtPDtd2mXcf7KQWuvo0FbUAwehT+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":389805},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"38e4c3df4c32cda1c5a2e082c189fa2a36431a0b","scripts":{"build":"tsc --project tsconfig.json --outDir dist && cpx \"src/types/**/*\" dist/types && copyfiles -u 1 src/assets/**/* dist","prepare":"npm run build"},"_npmUser":{"name":"tafseel1983","email":"tafseel1983@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/tafseelkhan/airxpay-sdk-ui.git","type":"git"},"_npmVersion":"9.9.4","description":"AirXPay Initialization UI Components for React & React Native","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.5"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"^1.5.0","react":"^19.2.4","copyfiles":"^2.4.1","typescript":"^5.9.3","@types/react":"^19.2.14","react-native":"^0.84.0","expo-image-picker":"^17.0.10","react-native-paper":"^5.15.0","expo-linear-gradient":"^15.0.8","@react-navigation/native":"^7.1.28","react-native-country-picker-modal":"^2.0.0","@react-native-community/datetimepicker":"^8.6.0","@react-native-async-storage/async-storage":"^2.2.0"},"peerDependencies":{"react":">=18","react-native":">=0.72"},"_npmOperationalInternal":{"tmp":"tmp/sdk-ui_1.0.7_1771390071444_0.3794920499311396","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@airxpay/sdk-ui","version":"1.0.8","keywords":["airxpay","react-native","seller-onboarding","payments","ui"],"author":{"name":"Tafseel Khan"},"license":"MIT","_id":"@airxpay/sdk-ui@1.0.8","maintainers":[{"name":"tafseel1983","email":"tafseel1983@gmail.com"}],"homepage":"https://github.com/tafseelkhan/airxpay-sdk-ui#readme","bugs":{"url":"https://github.com/tafseelkhan/airxpay-sdk-ui/issues"},"dist":{"shasum":"e1d075bf1f3a984559f9cb651caf6ecbad75f4fc","tarball":"https://registry.npmjs.org/@airxpay/sdk-ui/-/sdk-ui-1.0.8.tgz","fileCount":50,"integrity":"sha512-R+SwJK1eCsw6A8D/c0r/7IGp4r/GpuXiYa+tE2eKlmyjwZ72rXl6Jr4KeOG+B0SRZvibvLWRz+LkcrWsl4GArQ==","signatures":[{"sig":"MEUCIQDhTIMTJsL9cl4ABbROuRsFa76SudIeQ2b+UnBbO9K0WgIgFNtV6LTzWVWIqLpgcY9qemtt7ExdQn/mP4TmeicGczk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":389092},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"38e4c3df4c32cda1c5a2e082c189fa2a36431a0b","scripts":{"build":"tsc --project tsconfig.json --outDir dist && cpx \"src/types/**/*\" dist/types && copyfiles -u 1 src/assets/**/* dist","prepare":"npm run build"},"_npmUser":{"name":"tafseel1983","email":"tafseel1983@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/tafseelkhan/airxpay-sdk-ui.git","type":"git"},"_npmVersion":"9.9.4","description":"AirXPay Initialization UI Components for React & React Native","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.5"},"_hasShrinkwrap":false,"devDependencies":{"cpx":"^1.5.0","react":"^19.2.4","copyfiles":"^2.4.1","typescript":"^5.9.3","@types/react":"^19.2.14","react-native":"^0.84.0","expo-image-picker":"^17.0.10","react-native-paper":"^5.15.0","expo-linear-gradient":"^15.0.8","@react-navigation/native":"^7.1.28","react-native-country-picker-modal":"^2.0.0","@react-native-community/datetimepicker":"^8.6.0","@react-native-async-storage/async-storage":"^2.2.0"},"peerDependencies":{"react":">=18","react-native":">=0.72"},"_npmOperationalInternal":{"tmp":"tmp/sdk-ui_1.0.8_1771395636229_0.08923055769612609","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-02-15T05:27:20.358Z","modified":"2026-02-18T11:47:19.550Z","1.0.0":"2026-02-15T05:27:20.590Z","1.0.1":"2026-02-15T15:35:08.901Z","1.0.2":"2026-02-16T10:22:58.000Z","1.0.3":"2026-02-16T11:09:51.090Z","1.0.5":"2026-02-16T14:20:49.011Z","1.0.6":"2026-02-17T13:22:19.736Z","1.0.7":"2026-02-18T04:47:51.649Z","1.0.8":"2026-02-18T06:20:36.399Z"},"bugs":{"url":"https://github.com/tafseelkhan/airxpay-sdk-ui/issues"},"author":{"name":"Tafseel Khan"},"license":"MIT","homepage":"https://github.com/tafseelkhan/airxpay-sdk-ui#readme","keywords":["airxpay","react-native","seller-onboarding","payments","ui"],"repository":{"url":"git+https://github.com/tafseelkhan/airxpay-sdk-ui.git","type":"git"},"description":"AirXPay Initialization UI Components for React & React Native","maintainers":[{"email":"support@npmjs.com","name":"npm-support"}],"readme":"# 📘 AirXPay Initialization UI Components\r\n\r\n<a href=\"#-typescript\">\r\n  <img src=\"https://img.shields.io/badge/TypeScript-5.0+-blue?style=for-the-badge&logo=typescript\" alt=\"TypeScript\" />\r\n</a>\r\n<a href=\"#-react\">\r\n  <img src=\"https://img.shields.io/badge/React-18.0+-61DAFB?style=for-the-badge&logo=react\" alt=\"React\" />\r\n</a>\r\n<a href=\"#-react-native\">\r\n  <img src=\"https://img.shields.io/badge/React_Native-0.72+-61DAFB?style=for-the-badge&logo=react\" alt=\"React Native\" />\r\n</a>\r\n<a href=\"#-expo\">\r\n  <img src=\"https://img.shields.io/badge/Expo-50+-000020?style=for-the-badge&logo=expo\" alt=\"Expo\" />\r\n</a>\r\n<a href=\"#-nextjs\">\r\n  <img src=\"https://img.shields.io/badge/Next.js-14.0+-000000?style=for-the-badge&logo=next.js\" alt=\"Next.js\" />\r\n</a>\r\n<a href=\"#-javascript\">\r\n  <img src=\"https://img.shields.io/badge/JavaScript-ES6+-F7DF1E?style=for-the-badge&logo=javascript\" alt=\"JavaScript\" />\r\n</a>\r\n<a href=\"#-typescript\">\r\n  <img src=\"https://img.shields.io/badge/TypeScript-5.0+-3178C6?style=for-the-badge&logo=typescript\" alt=\"TypeScript\" />\r\n</a>\r\n<a href=\"#-mit-license\">\r\n  <img src=\"https://img.shields.io/badge/License-MIT-yellow?style=for-the-badge&logo=open-source-initiative\" alt=\"MIT License\" />\r\n</a>\r\n\r\n---\r\n\r\n<div align=\"center\">\r\n  <img src=\"./src/assets/images/airxpay.png\" alt=\"AirXPay Flixora SDK\" width=\"120\"/>\r\n</div>\r\n\r\n---\r\n\r\n## 🚀 Overview\r\n\r\nAirXPay Initialization UI is a production-ready React & React Native component library designed to streamline merchant onboarding in multi-tenant SaaS applications. Built with TypeScript and enterprise-grade architecture, it provides a seamless, animated, and validated multi-step flow for collecting merchant information.\r\n\r\n> **Part of the Flixora Ecosystem** — Integrated with AirXPay for payments, TizzyGo for logistics, TizzyOS for operations, and soon TizzyChat for real-time notifications.\r\n\r\n---\r\n\r\n## ✨ Key Features\r\n\r\n| Feature | Description |\r\n|---------|-------------|\r\n| ✅ **Multi-step Flow** | Basic Details → KYC → Bank Details → Completion |\r\n| 🎨 **Animated Transitions** | Smooth step transitions with progress tracking |\r\n| 🔒 **Built-in Validation** | Form validation for each step |\r\n| 📸 **Document Upload** | Integrated with Expo ImagePicker for KYC documents |\r\n| 🏦 **Bank Verification** | Country-specific bank details collection |\r\n| 📊 **Progress Tracking** | Visual progress indicator with step status |\r\n| 🔧 **Configurable** | Customizable via AirXPayProvider |\r\n| 📘 **TypeScript** | Fully typed components, hooks, and classes |\r\n| 📱 **Cross-platform** | Works with React Native, Expo, and Web |\r\n\r\n---\r\n\r\n## 📦 Installation\r\n\r\n### Prerequisites\r\n\r\nEnsure you're in your React Native/Expo project:\r\n\r\n```bash\r\n# Required peer dependencies\r\nnpm install react-native-paper react-native-country-picker-modal @react-native-community/datetimepicker expo-image-picker expo-linear-gradient\r\n\r\n# Or with Yarn\r\nyarn add react-native-paper react-native-country-picker-modal @react-native-community/datetimepicker expo-image-picker expo-linear-gradient\r\nInstall the Package\r\nbash\r\n# Install the package from npm\r\nnpm install @airxpay/sdk-ui\r\n\r\n# Install package from yarn\r\nyarn add @airxpay/sdk-ui\r\nRequirements\r\nReact 18+\r\n\r\nReact Native >= 0.72\r\n\r\nExpo SDK (optional, for LinearGradient & ImagePicker)\r\n\r\n🏗️ Architecture\r\ntext\r\n@airxpay/sdk-ui/\r\n├── components/\r\n│   ├── steps/\r\n│   │   ├── BasicDetailsForm.tsx\r\n│   │   ├── KYCVerification.tsx\r\n│   │   ├── BankDetails.tsx\r\n│   │   └── OnboardingComplete.tsx\r\n│   └── ui/\r\n│       └── MerchantOnboard/\r\n│           └── MerchantOnboarding.tsx\r\n├── contexts/\r\n│   └── AirXPayProvider.tsx\r\n├── hooks/\r\n│   └── MerchantOnboarding.tsx      # useAirXPaySheet\r\n├── api/\r\n│   └── merchant.ts                  # verifyPublicKey\r\n├── types/\r\n│   ├── dev.ts                     # __DEV__\r\n│   └── type.ts                     # AirXPayConfig\r\n└── index.ts                        # Main exports\r\n🚀 Quick Start\r\n1️⃣ Wrap with Provider\r\ntsx\r\n// Root.tsx\r\nimport React from 'react';\r\nimport { AirXPayProvider } from '@airxpay/sdk-ui';\r\nimport App from './App';\r\n\r\nexport default function Root() {\r\n  return (\r\n    <AirXPayProvider\r\n      config={{\r\n        publicKey: 'YOUR_PUBLIC_KEY_HERE',\r\n      }}\r\n      enableLogging={__DEV__} // Optional: enables detailed logs in development\r\n    >\r\n      <App />\r\n    </AirXPayProvider>\r\n  );\r\n}\r\n2️⃣ Implement Onboarding\r\ntsx\r\n// MerchantOnboardingScreen.tsx\r\nimport React from 'react';\r\nimport { useAirXPaySheet } from '@airxpay/sdk-ui';\r\n\r\nconst MyMerchantOnboarding = () => {\r\n  return (\r\n    <useAirXPaySheet\r\n      merchantId=\"merchant_12345\"\r\n      mode=\"live\"\r\n      isKycCompleted={false}\r\n      isBankDetailsCompleted={false}\r\n      kycStatus=\"pending\"\r\n      status=\"pending\"\r\n      onNext={(stepData, currentStep) => {\r\n        console.log(`Step ${currentStep} completed:`, stepData);\r\n      }}\r\n      onBack={(currentStep) => {\r\n        console.log(`Navigated back from step ${currentStep}`);\r\n      }}\r\n      onComplete={(merchantData) => {\r\n        console.log('🎉 Onboarding complete!', merchantData);\r\n      }}\r\n    />\r\n  );\r\n};\r\n\r\nexport default MyMerchantOnboarding;\r\n📋 Component API\r\nuseAirXPaySheet Props\r\nProp\tType\tRequired\tDefault\tDescription\r\nmerchantId\tstring\t✅\t-\tUnique merchant identifier\r\nmode\t'live' | 'test'\t✅\t-\tEnvironment mode\r\nisKycCompleted\tboolean\t✅\t-\tKYC completion status\r\nisBankDetailsCompleted\tboolean\t✅\t-\tBank details status\r\nkycStatus\tstring\t✅\t-\t'pending' | 'verified' | 'rejected'\r\nstatus\tstring\t✅\t-\t'pending' | 'active' | 'suspended'\r\ninitialStep\tnumber\t❌\t1\tStarting step (1-4)\r\ninitialData\tPartial<Merchant>\t❌\t{}\tPre-filled merchant data\r\nloading\tboolean\t❌\tfalse\tExternal loading state\r\nonNext\t(data: Partial<Merchant>, step: number) => void\t✅\t-\tStep completion callback\r\nonBack\t(step: number) => void\t✅\t-\tBack navigation callback\r\nonComplete\t(data: Merchant) => void\t✅\t-\tFinal completion callback\r\nAirXPayProvider Props\r\nProp\tType\tRequired\tDefault\tDescription\r\nconfig.publicKey\tstring\t✅\t-\tAPI public key (min 20 chars)\r\nchildren\tReactNode\t✅\t-\tChild components\r\nenableLogging\tboolean\t❌\t__DEV__\tEnable/disable console logs\r\n🎣 Hooks & Utilities\r\ntsx\r\nimport { \r\n  useAirXPay,           // Access config (throws if no provider)\r\n  useAirXPaySafe,       // Safe access (returns null if no provider)\r\n  useProviderReady,    // Hook: checks if provider is ready\r\n  useAirXPayConfig,     // Access specific config value\r\n  AirXPayConsumer       // Context consumer for advanced use\r\n} from '@airxpay/sdk-ui';\r\n\r\n// Example usage\r\nconst { publicKey } = useAirXPay();\r\nconst config = useAirXPaySafe();\r\nconst isReady = useProviderReady();\r\n⚡ Class-based Initialization\r\nThe package also provides a class-based approach for scenarios where you need to initialize the SDK asynchronously:\r\n\r\ntsx\r\nimport { useIsAirXPayReady } from '@airxpay/sdk-ui';\r\n\r\n// Initialize with config\r\nconst airxpay = new useIsAirXPayReady({\r\n  publicKey: 'your_public_key_here'\r\n});\r\n\r\n// Verify credentials asynchronously\r\nasync function initializeSDK() {\r\n  try {\r\n    const result = await airxpay.initialize();\r\n    console.log('SDK initialized successfully:', result);\r\n  } catch (error) {\r\n    console.error('Initialization failed:', error);\r\n  }\r\n}\r\n🔧 Configuration Validation\r\nThe AirXPayProvider includes built-in validation that throws clear, actionable errors:\r\n\r\ntsx\r\n// ❌ This will throw a detailed error\r\n<AirXPayProvider\r\n  config={{\r\n    publicKey: 'short'\r\n  }}\r\n>\r\n  <App />\r\n</AirXPayProvider>\r\n\r\n// Error message:\r\n// AirXPayProvider Configuration Error:\r\n//   • publicKey appears to be invalid\r\n🎨 Customization\r\nStyling\r\ntsx\r\n<useAirXPaySheet\r\n  // ... props\r\n  styles={{\r\n    container: { backgroundColor: '#f5f5f5' },\r\n    stepIndicator: { backgroundColor: '#6200ee' }\r\n  }}\r\n/>\r\nTheme Support\r\ntsx\r\nimport { Provider as PaperProvider } from 'react-native-paper';\r\n\r\n<PaperProvider theme={yourTheme}>\r\n  <AirXPayProvider config={config}>\r\n    <useAirXPaySheet {...props} />\r\n  </AirXPayProvider>\r\n</PaperProvider>\r\nFuture Customization Options Hooks and Initialization Like This Structure Will Be Added In Future Updates To Allow More Flexibility And Control Over The Onboarding Flow And SDK Initialization Process. Stay Tuned For More Enhancements!\r\ntext\r\nimport React from \"react\";\r\nimport {\r\n  useAirXPaySheet,\r\n  useAirXPay,\r\n  useAirXPaySafe,\r\n  useProviderReady,\r\n  useAirXPayConfig,\r\n} from \"@airxpay/sdk-ui\";\r\nimport { ActivityIndicator, View, Text } from \"react-native\";\r\n\r\nconst MerchantOnboardingScreen = () => {\r\n  const { publicKey } = useAirXPay(); // Throws if provider missing\r\n  const safeConfig = useAirXPaySafe(); // Returns null if provider missing\r\n  const isReady = useProviderReady(); // SDK ready check\r\n  const apiUrl = useAirXPayConfig(\"publicKey\"); // Specific config\r\n\r\n  if (!isReady) {\r\n    return (\r\n      <View>\r\n        <ActivityIndicator />\r\n        <Text>Initializing AirXPay🔗...</Text>\r\n      </View>\r\n    );\r\n  }\r\n\r\n  if (!publicKey) {\r\n    return (\r\n      <View>\r\n        <Text style={{ color: \"red\" }}>⚠️ AirXPay configuration missing!</Text>\r\n      </View>\r\n    );\r\n  }\r\n\r\n  if (!safeConfig) {\r\n    return (\r\n      <View>\r\n        <Text style={{ color: \"red\" }}>⚠️ AirXPay safe config missing!</Text>\r\n      </View>\r\n    );\r\n  }\r\n\r\n  const merchantSheet = useAirXPaySheet({\r\n    merchantId: \"merchant_12345\",\r\n    mode: \"live\",\r\n    isKycCompleted: false,\r\n    isBankDetailsCompleted: false,\r\n    kycStatus: \"pending\",\r\n    status: \"pending\",\r\n    onNext: (data: any, step: number) => {\r\n      console.log(`Step ${step} completed`, data);\r\n    },\r\n    onBack: (step: number) => {\r\n      console.log(`Went back from step ${step}`);\r\n    },\r\n    onComplete: (finalData: any) => {\r\n      console.log(\"🎉 Onboarding Complete:\", finalData);\r\n    },\r\n  });\r\n\r\n  return merchantSheet; // ✅ just return it directly\r\n};\r\n\r\nexport default MerchantOnboardingScreen;\r\n🔄 Step Flow\r\ntext\r\nStep 1: Basic Details\r\n├── Merchant Name\r\n├── Email Address\r\n├── Phone Number\r\n└── Business Type\r\n\r\nStep 2: KYC Verification\r\n├── Document Upload (PAN/Aadhar)\r\n├── Selfie Verification\r\n└── Address Proof\r\n\r\nStep 3: Bank Details\r\n├── Account Number\r\n├── IFSC Code\r\n├── Account Holder Name\r\n└── Bank Branch\r\n\r\nStep 4: Completion\r\n├── Success Animation\r\n├── Summary View\r\n└── Next Steps\r\n📝 Exports Reference\r\ntsx\r\n// Main exports from index.ts\r\nexport { useIsAirXPayReady } from \"./sdk/airxpay\";           // Class for async init\r\nexport { AirXPayProvider, useProviderReady, useAirXPayConfig, useAirXPaySafe, useAirXPay } from \"./contexts/AirXPayProvider\";\r\nexport { default as useAirXPaySheet } from \"./hooks/MerchantOnboarding\";\r\nexport { __DEV__ } from './types/dev';\r\n\r\n// Also available via context\r\nexport { \r\n  useAirXPay,\r\n  useAirXPaySafe,\r\n  useAirXPayConfig,\r\n  AirXPayConsumer \r\n} from './contexts/AirXPayProvider';\r\n🧪 Development Utilities\r\ntsx\r\nimport { __DEV__ } from '@airxpay/sdk-ui';\r\n\r\nif (__DEV__) {\r\n  console.log('Running in development mode');\r\n}\r\nThe __DEV__ flag helps you conditionally run code only in development environments.\r\n\r\n📈 Performance\r\nMemoized Components: All step components are memoized\r\n\r\nOptimized Re-renders: Context splitting prevents unnecessary renders\r\n\r\nLazy Loading: Steps load on-demand\r\n\r\nDevelopment Logging: Auto-disabled in production via __DEV__\r\n\r\n🔒 Security\r\nAll API calls require valid publicKey\r\n\r\nFile uploads are validated client-side\r\n\r\nSensitive data never stored in logs\r\n\r\nHTTPS enforced for all requests\r\n\r\nXSS protection via input sanitization\r\n\r\n🐛 Troubleshooting\r\nIssue\tSolution\r\n\"useAirXPay must be used within AirXPayProvider\"\tWrap your component tree with provider\r\n\"Public key appears to be invalid\"\tCheck if publicKey is at least 20 chars\r\nImages not uploading\tCheck Expo ImagePicker permissions\r\nTypeScript errors\tUpdate to latest version\r\n🎣 Available Hooks\r\nThe @airxpay/sdk-ui package provides several utility hooks for accessing configuration, managing initialization state, and safely interacting with the AirXPayProvider.\r\n\r\ntext\r\nimport { \r\n  useAirXPay, \r\n  useAirXPaySafe, \r\n  useProviderReady, \r\n  useAirXPayConfig \r\n} from '@airxpay/sdk-ui';\r\n\r\n1️⃣ useAirXPay()\r\nconst { publicKey } = useAirXPay();\r\nProvides direct access to the full AirXPay configuration.\r\n\r\nBehavior\r\n\r\nMust be used inside AirXPayProvider.\r\n\r\nThrows an error if the provider is not found.\r\n\r\nEnsures strict enforcement of provider usage.\r\n\r\nWhen to Use\r\n\r\nUse this hook when you require guaranteed access to configuration values such as publicKey for:\r\n\r\nAPI requests\r\n\r\nDynamic endpoint handling\r\n\r\nAdvanced integrations\r\n\r\nRecommended for: Production components where the provider is always present.\r\ntext\r\n2️⃣ useAirXPaySafe()\r\nconst safeConfig = useAirXPaySafe();\r\nA safe alternative to useAirXPay().\r\n\r\nBehavior\r\n\r\nReturns null if the provider is not available.\r\n\r\nDoes not throw an error.\r\n\r\nWhen to Use\r\n\r\nComponent testing in isolation\r\n\r\nOptional integrations\r\n\r\nShared UI components that may or may not be wrapped in the provider\r\n\r\nRecommended for: Flexible usage scenarios where provider presence is not guaranteed.\r\n\r\ntext\r\n3️⃣ useProviderReady()\r\nconst isReady = useProviderReady();\r\nChecks whether the SDK has been fully initialized.\r\n\r\nBehavior\r\n\r\nReturns a boolean indicating initialization state.\r\n\r\nUseful for asynchronous setup workflows.\r\n\r\nWhen to Use\r\n\r\nConditional rendering\r\n\r\nShowing loaders before initialization\r\n\r\nDelaying onboarding UI until SDK is ready\r\n\r\nRecommended for: Applications using async initialization or class-based setup.\r\n\r\ntext\r\n4️⃣ useAirXPayConfig(key)\r\nconst publicKey = useAirXPayConfig('publicKey');\r\nRetrieves a specific configuration value from the provider.\r\n\r\nBehavior\r\n\r\nAccepts a configuration key (e.g.,'publicKey').\r\n\r\nReturns only the requested value.\r\n\r\nWhen to Use\r\n\r\nAccessing a single configuration property\r\n\r\nAvoiding full object destructuring\r\n\r\nCleaner and more focused component logic\r\n\r\nRecommended for: Minimal, targeted configuration access.\r\n\r\n📌 Hook Comparison\r\nHook Throws Error Safe Fallback Primary Purpose\r\n\r\ntext\r\nuseAirXPay\t✅ Yes\t❌ No\tDirect access to full configuration\r\nuseAirXPaySafe\t❌ No\t✅ Yes\tOptional/safe configuration access\r\nuseProviderReady\t❌ No\t✅ Yes\tInitialization state check\r\nuseAirXPayConfig\t❌ No\t✅ Yes\tAccess a single configuration value\r\n📝 Changelog\r\nv1.0.5 (Latest)\r\nAdded class-based useIsAirXPayReady for async initialization\r\n\r\nEnhanced error messages with stack traces\r\n\r\nAdded __DEV__ flag for environment detection\r\n\r\nImproved TypeScript types\r\n\r\nAdded enableLogging prop to provider\r\n\r\nv1.0.3\r\nInitial release\r\n\r\nBasic step flow\r\n\r\nKYC document upload\r\n\r\nBank details validation\r\n\r\n🤝 Contributing\r\nFork the repository\r\n\r\nCreate feature branch (git checkout -b feature/amazing)\r\n\r\nCommit changes (git commit -m 'Add amazing feature')\r\n\r\nPush to branch (git push origin feature/amazing)\r\n\r\nOpen a Pull Request\r\n\r\n📄 License\r\nMIT License © 2026 Flixora Technologies\r\n\r\n<div align=\"center\"> <h3>Built with ❤️ by the Flixora Ecosystem</h3> <p><strong>Your Smile, Our Simplicity 😊</strong></p> <p><sub>Version 1.0.5 | Part of AirXPay, TizzyGo, TizzyOS, and TizzyChat</sub></p> <p><i>We upgraded from v1.0.3 to v1.0.5 to maintain version consistency across our ecosystem. Thanks for your understanding!</i></p> </div> ```","readmeFilename":"README.md"}