@codeimplants/ui-kit 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (474) hide show
  1. package/README.md +144 -0
  2. package/dist/adapters/index.d.ts +1 -0
  3. package/dist/adapters/index.js +2 -0
  4. package/dist/adapters/supportAdapter.d.ts +87 -0
  5. package/dist/adapters/supportAdapter.js +99 -0
  6. package/dist/client.d.ts +55 -0
  7. package/dist/client.js +229 -0
  8. package/dist/components/IconLibrary.d.ts +23 -0
  9. package/dist/components/IconLibrary.js +19 -0
  10. package/dist/components/RetryIndicator.d.ts +5 -0
  11. package/dist/components/RetryIndicator.js +208 -0
  12. package/dist/components/SupportContactCard.d.ts +10 -0
  13. package/dist/components/SupportContactCard.js +140 -0
  14. package/dist/components/buttons/PrimaryButton.d.ts +19 -0
  15. package/dist/components/buttons/PrimaryButton.js +42 -0
  16. package/dist/components/buttons/SecondaryButton.d.ts +20 -0
  17. package/dist/components/buttons/SecondaryButton.js +37 -0
  18. package/dist/components/buttons/index.d.ts +2 -0
  19. package/dist/components/buttons/index.js +3 -0
  20. package/dist/components/cards/ContentCard.d.ts +16 -0
  21. package/dist/components/cards/ContentCard.js +24 -0
  22. package/dist/components/cards/InfoCard.d.ts +9 -0
  23. package/dist/components/cards/InfoCard.js +51 -0
  24. package/dist/components/cards/TipsCard.d.ts +11 -0
  25. package/dist/components/cards/TipsCard.js +70 -0
  26. package/dist/components/cards/WarningCard.d.ts +11 -0
  27. package/dist/components/cards/WarningCard.js +80 -0
  28. package/dist/components/cards/WhatsNewCard.d.ts +15 -0
  29. package/dist/components/cards/WhatsNewCard.js +79 -0
  30. package/dist/components/cards/index.d.ts +5 -0
  31. package/dist/components/cards/index.js +6 -0
  32. package/dist/components/feedback/ExpandableSection.d.ts +8 -0
  33. package/dist/components/feedback/ExpandableSection.js +44 -0
  34. package/dist/components/feedback/SecurityBanner.d.ts +9 -0
  35. package/dist/components/feedback/SecurityBanner.js +49 -0
  36. package/dist/components/feedback/SpeedBadge.d.ts +9 -0
  37. package/dist/components/feedback/SpeedBadge.js +41 -0
  38. package/dist/components/feedback/StatusBadge.d.ts +17 -0
  39. package/dist/components/feedback/StatusBadge.js +20 -0
  40. package/dist/components/feedback/TopBanner.d.ts +7 -0
  41. package/dist/components/feedback/TopBanner.js +74 -0
  42. package/dist/components/feedback/index.d.ts +5 -0
  43. package/dist/components/feedback/index.js +6 -0
  44. package/dist/components/icons/AnimatedAlert.d.ts +11 -0
  45. package/dist/components/icons/AnimatedAlert.js +27 -0
  46. package/dist/components/icons/AnimatedCalendar.d.ts +7 -0
  47. package/dist/components/icons/AnimatedCalendar.js +34 -0
  48. package/dist/components/icons/AnimatedCamera.d.ts +7 -0
  49. package/dist/components/icons/AnimatedCamera.js +34 -0
  50. package/dist/components/icons/AnimatedClientError.d.ts +11 -0
  51. package/dist/components/icons/AnimatedClientError.js +20 -0
  52. package/dist/components/icons/AnimatedClock.d.ts +7 -0
  53. package/dist/components/icons/AnimatedClock.js +53 -0
  54. package/dist/components/icons/AnimatedCrash.d.ts +11 -0
  55. package/dist/components/icons/AnimatedCrash.js +36 -0
  56. package/dist/components/icons/AnimatedDocument.d.ts +7 -0
  57. package/dist/components/icons/AnimatedDocument.js +34 -0
  58. package/dist/components/icons/AnimatedDownload.d.ts +7 -0
  59. package/dist/components/icons/AnimatedDownload.js +23 -0
  60. package/dist/components/icons/AnimatedEmergency.d.ts +11 -0
  61. package/dist/components/icons/AnimatedEmergency.js +26 -0
  62. package/dist/components/icons/AnimatedInvalidData.d.ts +11 -0
  63. package/dist/components/icons/AnimatedInvalidData.js +24 -0
  64. package/dist/components/icons/AnimatedLightning.d.ts +7 -0
  65. package/dist/components/icons/AnimatedLightning.js +34 -0
  66. package/dist/components/icons/AnimatedLocationPin.d.ts +7 -0
  67. package/dist/components/icons/AnimatedLocationPin.js +34 -0
  68. package/dist/components/icons/AnimatedPermission.d.ts +11 -0
  69. package/dist/components/icons/AnimatedPermission.js +21 -0
  70. package/dist/components/icons/AnimatedPermissionDenied.d.ts +11 -0
  71. package/dist/components/icons/AnimatedPermissionDenied.js +27 -0
  72. package/dist/components/icons/AnimatedServerError.d.ts +7 -0
  73. package/dist/components/icons/AnimatedServerError.js +60 -0
  74. package/dist/components/icons/AnimatedShield.d.ts +7 -0
  75. package/dist/components/icons/AnimatedShield.js +34 -0
  76. package/dist/components/icons/AnimatedSparkle.d.ts +7 -0
  77. package/dist/components/icons/AnimatedSparkle.js +53 -0
  78. package/dist/components/icons/AnimatedSpeedGauge.d.ts +7 -0
  79. package/dist/components/icons/AnimatedSpeedGauge.js +50 -0
  80. package/dist/components/icons/AnimatedTimeout.d.ts +11 -0
  81. package/dist/components/icons/AnimatedTimeout.js +27 -0
  82. package/dist/components/icons/AnimatedWarning.d.ts +7 -0
  83. package/dist/components/icons/AnimatedWarning.js +50 -0
  84. package/dist/components/icons/AnimatedWifiOff.d.ts +7 -0
  85. package/dist/components/icons/AnimatedWifiOff.js +65 -0
  86. package/dist/components/icons/AnimatedWrench.d.ts +7 -0
  87. package/dist/components/icons/AnimatedWrench.js +43 -0
  88. package/dist/components/icons/ClockBadge.d.ts +8 -0
  89. package/dist/components/icons/ClockBadge.js +28 -0
  90. package/dist/components/icons/DownloadBadge.d.ts +8 -0
  91. package/dist/components/icons/DownloadBadge.js +28 -0
  92. package/dist/components/icons/IconWithBadge.d.ts +12 -0
  93. package/dist/components/icons/IconWithBadge.js +120 -0
  94. package/dist/components/icons/SimpleIcons.d.ts +12 -0
  95. package/dist/components/icons/SimpleIcons.js +8 -0
  96. package/dist/components/icons/XBadge.d.ts +8 -0
  97. package/dist/components/icons/XBadge.js +28 -0
  98. package/dist/components/icons/animated/errors/AnimatedClientError.d.ts +11 -0
  99. package/dist/components/icons/animated/errors/AnimatedClientError.js +20 -0
  100. package/dist/components/icons/animated/errors/AnimatedCrash.d.ts +11 -0
  101. package/dist/components/icons/animated/errors/AnimatedCrash.js +36 -0
  102. package/dist/components/icons/animated/errors/AnimatedInvalidData.d.ts +11 -0
  103. package/dist/components/icons/animated/errors/AnimatedInvalidData.js +24 -0
  104. package/dist/components/icons/animated/errors/AnimatedServerError.d.ts +7 -0
  105. package/dist/components/icons/animated/errors/AnimatedServerError.js +60 -0
  106. package/dist/components/icons/animated/errors/index.d.ts +4 -0
  107. package/dist/components/icons/animated/errors/index.js +5 -0
  108. package/dist/components/icons/animated/general/AnimatedCalendar.d.ts +7 -0
  109. package/dist/components/icons/animated/general/AnimatedCalendar.js +34 -0
  110. package/dist/components/icons/animated/general/AnimatedCamera.d.ts +7 -0
  111. package/dist/components/icons/animated/general/AnimatedCamera.js +34 -0
  112. package/dist/components/icons/animated/general/AnimatedClock.d.ts +7 -0
  113. package/dist/components/icons/animated/general/AnimatedClock.js +53 -0
  114. package/dist/components/icons/animated/general/AnimatedDocument.d.ts +7 -0
  115. package/dist/components/icons/animated/general/AnimatedDocument.js +34 -0
  116. package/dist/components/icons/animated/general/AnimatedDownload.d.ts +7 -0
  117. package/dist/components/icons/animated/general/AnimatedDownload.js +23 -0
  118. package/dist/components/icons/animated/general/AnimatedLightning.d.ts +7 -0
  119. package/dist/components/icons/animated/general/AnimatedLightning.js +34 -0
  120. package/dist/components/icons/animated/general/AnimatedLocationPin.d.ts +7 -0
  121. package/dist/components/icons/animated/general/AnimatedLocationPin.js +34 -0
  122. package/dist/components/icons/animated/general/AnimatedShield.d.ts +7 -0
  123. package/dist/components/icons/animated/general/AnimatedShield.js +34 -0
  124. package/dist/components/icons/animated/general/AnimatedSparkle.d.ts +7 -0
  125. package/dist/components/icons/animated/general/AnimatedSparkle.js +53 -0
  126. package/dist/components/icons/animated/general/AnimatedWarning.d.ts +7 -0
  127. package/dist/components/icons/animated/general/AnimatedWarning.js +50 -0
  128. package/dist/components/icons/animated/general/index.d.ts +10 -0
  129. package/dist/components/icons/animated/general/index.js +11 -0
  130. package/dist/components/icons/animated/index.d.ts +5 -0
  131. package/dist/components/icons/animated/index.js +6 -0
  132. package/dist/components/icons/animated/maintenance/AnimatedAlert.d.ts +11 -0
  133. package/dist/components/icons/animated/maintenance/AnimatedAlert.js +27 -0
  134. package/dist/components/icons/animated/maintenance/AnimatedEmergency.d.ts +11 -0
  135. package/dist/components/icons/animated/maintenance/AnimatedEmergency.js +26 -0
  136. package/dist/components/icons/animated/maintenance/AnimatedWrench.d.ts +7 -0
  137. package/dist/components/icons/animated/maintenance/AnimatedWrench.js +43 -0
  138. package/dist/components/icons/animated/maintenance/index.d.ts +3 -0
  139. package/dist/components/icons/animated/maintenance/index.js +4 -0
  140. package/dist/components/icons/animated/network/AnimatedSpeedGauge.d.ts +7 -0
  141. package/dist/components/icons/animated/network/AnimatedSpeedGauge.js +50 -0
  142. package/dist/components/icons/animated/network/AnimatedTimeout.d.ts +11 -0
  143. package/dist/components/icons/animated/network/AnimatedTimeout.js +27 -0
  144. package/dist/components/icons/animated/network/AnimatedWifiOff.d.ts +7 -0
  145. package/dist/components/icons/animated/network/AnimatedWifiOff.js +65 -0
  146. package/dist/components/icons/animated/network/index.d.ts +3 -0
  147. package/dist/components/icons/animated/network/index.js +4 -0
  148. package/dist/components/icons/animated/permissions/AnimatedPermission.d.ts +11 -0
  149. package/dist/components/icons/animated/permissions/AnimatedPermission.js +21 -0
  150. package/dist/components/icons/animated/permissions/AnimatedPermissionDenied.d.ts +11 -0
  151. package/dist/components/icons/animated/permissions/AnimatedPermissionDenied.js +27 -0
  152. package/dist/components/icons/animated/permissions/index.d.ts +2 -0
  153. package/dist/components/icons/animated/permissions/index.js +3 -0
  154. package/dist/components/icons/badges/ClockBadge.d.ts +8 -0
  155. package/dist/components/icons/badges/ClockBadge.js +28 -0
  156. package/dist/components/icons/badges/DownloadBadge.d.ts +8 -0
  157. package/dist/components/icons/badges/DownloadBadge.js +28 -0
  158. package/dist/components/icons/badges/XBadge.d.ts +8 -0
  159. package/dist/components/icons/badges/XBadge.js +28 -0
  160. package/dist/components/icons/badges/index.d.ts +3 -0
  161. package/dist/components/icons/badges/index.js +4 -0
  162. package/dist/components/icons/index.d.ts +3 -0
  163. package/dist/components/icons/index.js +4 -0
  164. package/dist/components/icons/utilities/AlertTriangleIcon.d.ts +7 -0
  165. package/dist/components/icons/utilities/AlertTriangleIcon.js +4 -0
  166. package/dist/components/icons/utilities/CheckCircleIcon.d.ts +7 -0
  167. package/dist/components/icons/utilities/CheckCircleIcon.js +4 -0
  168. package/dist/components/icons/utilities/DownloadIcon.d.ts +7 -0
  169. package/dist/components/icons/utilities/DownloadIcon.js +4 -0
  170. package/dist/components/icons/utilities/IconWithBadge.d.ts +12 -0
  171. package/dist/components/icons/utilities/IconWithBadge.js +120 -0
  172. package/dist/components/icons/utilities/SettingsIcon.d.ts +7 -0
  173. package/dist/components/icons/utilities/SettingsIcon.js +4 -0
  174. package/dist/components/icons/utilities/ShieldIcon.d.ts +7 -0
  175. package/dist/components/icons/utilities/ShieldIcon.js +4 -0
  176. package/dist/components/icons/utilities/SimpleIcons.d.ts +12 -0
  177. package/dist/components/icons/utilities/SimpleIcons.js +8 -0
  178. package/dist/components/icons/utilities/XIcon.d.ts +7 -0
  179. package/dist/components/icons/utilities/XIcon.js +4 -0
  180. package/dist/components/icons/utilities/index.d.ts +7 -0
  181. package/dist/components/icons/utilities/index.js +8 -0
  182. package/dist/components/index.d.ts +9 -0
  183. package/dist/components/index.js +10 -0
  184. package/dist/components/layout/DualButtonLayout.d.ts +14 -0
  185. package/dist/components/layout/DualButtonLayout.js +73 -0
  186. package/dist/components/layout/ResponsiveLayout.d.ts +25 -0
  187. package/dist/components/layout/ResponsiveLayout.js +76 -0
  188. package/dist/components/layout/SafeAreaWrapper.d.ts +21 -0
  189. package/dist/components/layout/SafeAreaWrapper.js +45 -0
  190. package/dist/components/layout/ScreenContainer.d.ts +15 -0
  191. package/dist/components/layout/ScreenContainer.js +21 -0
  192. package/dist/components/layout/index.d.ts +4 -0
  193. package/dist/components/layout/index.js +5 -0
  194. package/dist/components/lists/CheckListItem.d.ts +14 -0
  195. package/dist/components/lists/CheckListItem.js +40 -0
  196. package/dist/components/lists/StatusCheckList.d.ts +10 -0
  197. package/dist/components/lists/StatusCheckList.js +69 -0
  198. package/dist/components/lists/index.d.ts +2 -0
  199. package/dist/components/lists/index.js +3 -0
  200. package/dist/components/shared/CheckListItem.d.ts +14 -0
  201. package/dist/components/shared/CheckListItem.js +40 -0
  202. package/dist/components/shared/ConnectionStatus.d.ts +8 -0
  203. package/dist/components/shared/ConnectionStatus.js +57 -0
  204. package/dist/components/shared/ContentCard.d.ts +16 -0
  205. package/dist/components/shared/ContentCard.js +24 -0
  206. package/dist/components/shared/CountdownTimer.d.ts +9 -0
  207. package/dist/components/shared/CountdownTimer.js +91 -0
  208. package/dist/components/shared/DualButtonLayout.d.ts +14 -0
  209. package/dist/components/shared/DualButtonLayout.js +73 -0
  210. package/dist/components/shared/ExpandableSection.d.ts +8 -0
  211. package/dist/components/shared/ExpandableSection.js +44 -0
  212. package/dist/components/shared/IconWithBadge.d.ts +17 -0
  213. package/dist/components/shared/IconWithBadge.js +38 -0
  214. package/dist/components/shared/InfoCard.d.ts +9 -0
  215. package/dist/components/shared/InfoCard.js +51 -0
  216. package/dist/components/shared/PrimaryButton.d.ts +19 -0
  217. package/dist/components/shared/PrimaryButton.js +42 -0
  218. package/dist/components/shared/ResponsiveLayout.d.ts +25 -0
  219. package/dist/components/shared/ResponsiveLayout.js +76 -0
  220. package/dist/components/shared/RetryCounter.d.ts +8 -0
  221. package/dist/components/shared/RetryCounter.js +17 -0
  222. package/dist/components/shared/SafeAreaWrapper.d.ts +21 -0
  223. package/dist/components/shared/SafeAreaWrapper.js +45 -0
  224. package/dist/components/shared/ScreenContainer.d.ts +15 -0
  225. package/dist/components/shared/ScreenContainer.js +21 -0
  226. package/dist/components/shared/SecondaryButton.d.ts +20 -0
  227. package/dist/components/shared/SecondaryButton.js +37 -0
  228. package/dist/components/shared/SecurityBanner.d.ts +9 -0
  229. package/dist/components/shared/SecurityBanner.js +49 -0
  230. package/dist/components/shared/SpeedBadge.d.ts +9 -0
  231. package/dist/components/shared/SpeedBadge.js +41 -0
  232. package/dist/components/shared/StatusBadge.d.ts +17 -0
  233. package/dist/components/shared/StatusBadge.js +20 -0
  234. package/dist/components/shared/StatusCheckList.d.ts +10 -0
  235. package/dist/components/shared/StatusCheckList.js +69 -0
  236. package/dist/components/shared/SupportButtons.d.ts +9 -0
  237. package/dist/components/shared/SupportButtons.js +138 -0
  238. package/dist/components/shared/TipsCard.d.ts +11 -0
  239. package/dist/components/shared/TipsCard.js +70 -0
  240. package/dist/components/shared/TopBanner.d.ts +7 -0
  241. package/dist/components/shared/TopBanner.js +74 -0
  242. package/dist/components/shared/VersionDisplay.d.ts +14 -0
  243. package/dist/components/shared/VersionDisplay.js +30 -0
  244. package/dist/components/shared/WarningCard.d.ts +11 -0
  245. package/dist/components/shared/WarningCard.js +80 -0
  246. package/dist/components/shared/WhatsNewCard.d.ts +15 -0
  247. package/dist/components/shared/WhatsNewCard.js +79 -0
  248. package/dist/components/status/ConnectionStatus.d.ts +8 -0
  249. package/dist/components/status/ConnectionStatus.js +57 -0
  250. package/dist/components/status/VersionDisplay.d.ts +14 -0
  251. package/dist/components/status/VersionDisplay.js +30 -0
  252. package/dist/components/status/index.d.ts +2 -0
  253. package/dist/components/status/index.js +3 -0
  254. package/dist/components/support/SupportButtons.d.ts +9 -0
  255. package/dist/components/support/SupportButtons.js +138 -0
  256. package/dist/components/support/index.d.ts +1 -0
  257. package/dist/components/support/index.js +2 -0
  258. package/dist/components/timers/CountdownTimer.d.ts +9 -0
  259. package/dist/components/timers/CountdownTimer.js +91 -0
  260. package/dist/components/timers/RetryCounter.d.ts +8 -0
  261. package/dist/components/timers/RetryCounter.js +17 -0
  262. package/dist/components/timers/index.d.ts +2 -0
  263. package/dist/components/timers/index.js +3 -0
  264. package/dist/components/ui/Button.d.ts +38 -0
  265. package/dist/components/ui/Button.js +96 -0
  266. package/dist/components/ui/OfflineBanner.d.ts +15 -0
  267. package/dist/components/ui/OfflineBanner.js +42 -0
  268. package/dist/index.d.ts +68 -0
  269. package/dist/index.js +103 -0
  270. package/dist/screens/errors/ApiErrorScreen.d.ts +7 -0
  271. package/dist/screens/errors/ApiErrorScreen.js +166 -0
  272. package/dist/screens/errors/ClientErrorScreen.d.ts +9 -0
  273. package/dist/screens/errors/ClientErrorScreen.js +75 -0
  274. package/dist/screens/errors/ErrorBoundaryScreen.d.ts +9 -0
  275. package/dist/screens/errors/ErrorBoundaryScreen.js +43 -0
  276. package/dist/screens/errors/InvalidResponseScreen.d.ts +9 -0
  277. package/dist/screens/errors/InvalidResponseScreen.js +47 -0
  278. package/dist/screens/errors/ServerErrorScreen.d.ts +9 -0
  279. package/dist/screens/errors/ServerErrorScreen.js +72 -0
  280. package/dist/screens/errors/index.d.ts +5 -0
  281. package/dist/screens/errors/index.js +6 -0
  282. package/dist/screens/index.d.ts +4 -0
  283. package/dist/screens/index.js +5 -0
  284. package/dist/screens/network/ApiTimeoutScreen.d.ts +9 -0
  285. package/dist/screens/network/ApiTimeoutScreen.js +47 -0
  286. package/dist/screens/network/NetworkOfflineScreen.d.ts +9 -0
  287. package/dist/screens/network/NetworkOfflineScreen.js +42 -0
  288. package/dist/screens/network/NetworkSlowConnectionScreen.d.ts +9 -0
  289. package/dist/screens/network/NetworkSlowConnectionScreen.js +41 -0
  290. package/dist/screens/network/index.d.ts +3 -0
  291. package/dist/screens/network/index.js +4 -0
  292. package/dist/screens/permissions/PermissionDeniedScreen.d.ts +9 -0
  293. package/dist/screens/permissions/PermissionDeniedScreen.js +92 -0
  294. package/dist/screens/permissions/PermissionRequestScreen.d.ts +16 -0
  295. package/dist/screens/permissions/PermissionRequestScreen.js +303 -0
  296. package/dist/screens/permissions/PermissionScreen.d.ts +9 -0
  297. package/dist/screens/permissions/PermissionScreen.js +45 -0
  298. package/dist/screens/permissions/index.d.ts +3 -0
  299. package/dist/screens/permissions/index.js +4 -0
  300. package/dist/screens/system/AppUpdateScreen.d.ts +9 -0
  301. package/dist/screens/system/AppUpdateScreen.js +296 -0
  302. package/dist/screens/system/EmergencyOutageScreen.d.ts +9 -0
  303. package/dist/screens/system/EmergencyOutageScreen.js +48 -0
  304. package/dist/screens/system/ForceUpdateScreen.d.ts +9 -0
  305. package/dist/screens/system/ForceUpdateScreen.js +49 -0
  306. package/dist/screens/system/OptionalUpdateScreen.d.ts +9 -0
  307. package/dist/screens/system/OptionalUpdateScreen.js +47 -0
  308. package/dist/screens/system/PlannedMaintenanceScreen.d.ts +9 -0
  309. package/dist/screens/system/PlannedMaintenanceScreen.js +41 -0
  310. package/dist/screens/system/SecurityUpdateScreen.d.ts +9 -0
  311. package/dist/screens/system/SecurityUpdateScreen.js +64 -0
  312. package/dist/screens/system/ServiceUnavailableScreen.d.ts +15 -0
  313. package/dist/screens/system/ServiceUnavailableScreen.js +53 -0
  314. package/dist/screens/system/SoftUpdateScreen.d.ts +9 -0
  315. package/dist/screens/system/SoftUpdateScreen.js +55 -0
  316. package/dist/screens/system/SystemMaintenanceScreen.d.ts +9 -0
  317. package/dist/screens/system/SystemMaintenanceScreen.js +228 -0
  318. package/dist/screens/system/UnplannedOutageScreen.d.ts +9 -0
  319. package/dist/screens/system/UnplannedOutageScreen.js +42 -0
  320. package/dist/screens/system/index.d.ts +2 -0
  321. package/dist/screens/system/index.js +3 -0
  322. package/dist/screens/system/maintenance/EmergencyOutageScreen.d.ts +9 -0
  323. package/dist/screens/system/maintenance/EmergencyOutageScreen.js +48 -0
  324. package/dist/screens/system/maintenance/PlannedMaintenanceScreen.d.ts +9 -0
  325. package/dist/screens/system/maintenance/PlannedMaintenanceScreen.js +41 -0
  326. package/dist/screens/system/maintenance/ServiceUnavailableScreen.d.ts +15 -0
  327. package/dist/screens/system/maintenance/ServiceUnavailableScreen.js +53 -0
  328. package/dist/screens/system/maintenance/SystemMaintenanceScreen.d.ts +9 -0
  329. package/dist/screens/system/maintenance/SystemMaintenanceScreen.js +228 -0
  330. package/dist/screens/system/maintenance/UnplannedOutageScreen.d.ts +9 -0
  331. package/dist/screens/system/maintenance/UnplannedOutageScreen.js +42 -0
  332. package/dist/screens/system/maintenance/index.d.ts +5 -0
  333. package/dist/screens/system/maintenance/index.js +6 -0
  334. package/dist/screens/system/updates/AppUpdateScreen.d.ts +9 -0
  335. package/dist/screens/system/updates/AppUpdateScreen.js +296 -0
  336. package/dist/screens/system/updates/ForceUpdateScreen.d.ts +9 -0
  337. package/dist/screens/system/updates/ForceUpdateScreen.js +49 -0
  338. package/dist/screens/system/updates/OptionalUpdateScreen.d.ts +9 -0
  339. package/dist/screens/system/updates/OptionalUpdateScreen.js +47 -0
  340. package/dist/screens/system/updates/SecurityUpdateScreen.d.ts +9 -0
  341. package/dist/screens/system/updates/SecurityUpdateScreen.js +64 -0
  342. package/dist/screens/system/updates/SoftUpdateScreen.d.ts +9 -0
  343. package/dist/screens/system/updates/SoftUpdateScreen.js +55 -0
  344. package/dist/screens/system/updates/index.d.ts +5 -0
  345. package/dist/screens/system/updates/index.js +6 -0
  346. package/dist/types/common.d.ts +139 -0
  347. package/dist/types/common.js +4 -0
  348. package/dist/types/components.d.ts +52 -0
  349. package/dist/types/components.js +4 -0
  350. package/dist/types/index.d.ts +4 -0
  351. package/dist/types/index.js +8 -0
  352. package/dist/types/screens.d.ts +390 -0
  353. package/dist/types/screens.js +4 -0
  354. package/dist/types/support.d.ts +16 -0
  355. package/dist/types/support.js +4 -0
  356. package/dist/types.d.ts +580 -0
  357. package/dist/types.js +4 -0
  358. package/dist/utils/client.d.ts +55 -0
  359. package/dist/utils/client.js +229 -0
  360. package/dist/utils/index.d.ts +1 -0
  361. package/dist/utils/index.js +2 -0
  362. package/package.json +72 -0
  363. package/src/adapters/index.ts +2 -0
  364. package/src/adapters/supportAdapter.ts +167 -0
  365. package/src/components/buttons/PrimaryButton.tsx +82 -0
  366. package/src/components/buttons/SecondaryButton.tsx +81 -0
  367. package/src/components/buttons/index.ts +3 -0
  368. package/src/components/cards/ContentCard.tsx +53 -0
  369. package/src/components/cards/InfoCard.tsx +74 -0
  370. package/src/components/cards/TipsCard.tsx +106 -0
  371. package/src/components/cards/WarningCard.tsx +118 -0
  372. package/src/components/cards/WhatsNewCard.tsx +121 -0
  373. package/src/components/cards/index.ts +6 -0
  374. package/src/components/feedback/ExpandableSection.tsx +71 -0
  375. package/src/components/feedback/SecurityBanner.tsx +74 -0
  376. package/src/components/feedback/SpeedBadge.tsx +64 -0
  377. package/src/components/feedback/StatusBadge.tsx +50 -0
  378. package/src/components/feedback/TopBanner.tsx +104 -0
  379. package/src/components/feedback/index.ts +6 -0
  380. package/src/components/icons/animated/errors/AnimatedClientError.tsx +94 -0
  381. package/src/components/icons/animated/errors/AnimatedCrash.tsx +133 -0
  382. package/src/components/icons/animated/errors/AnimatedInvalidData.tsx +127 -0
  383. package/src/components/icons/animated/errors/AnimatedServerError.tsx +85 -0
  384. package/src/components/icons/animated/errors/index.ts +5 -0
  385. package/src/components/icons/animated/general/AnimatedCalendar.tsx +54 -0
  386. package/src/components/icons/animated/general/AnimatedCamera.tsx +54 -0
  387. package/src/components/icons/animated/general/AnimatedClock.tsx +78 -0
  388. package/src/components/icons/animated/general/AnimatedDocument.tsx +54 -0
  389. package/src/components/icons/animated/general/AnimatedDownload.tsx +61 -0
  390. package/src/components/icons/animated/general/AnimatedLightning.tsx +54 -0
  391. package/src/components/icons/animated/general/AnimatedLocationPin.tsx +54 -0
  392. package/src/components/icons/animated/general/AnimatedShield.tsx +54 -0
  393. package/src/components/icons/animated/general/AnimatedSparkle.tsx +74 -0
  394. package/src/components/icons/animated/general/AnimatedWarning.tsx +75 -0
  395. package/src/components/icons/animated/general/index.ts +11 -0
  396. package/src/components/icons/animated/index.ts +6 -0
  397. package/src/components/icons/animated/maintenance/AnimatedAlert.tsx +110 -0
  398. package/src/components/icons/animated/maintenance/AnimatedEmergency.tsx +112 -0
  399. package/src/components/icons/animated/maintenance/AnimatedWrench.tsx +64 -0
  400. package/src/components/icons/animated/maintenance/index.ts +4 -0
  401. package/src/components/icons/animated/network/AnimatedSpeedGauge.tsx +75 -0
  402. package/src/components/icons/animated/network/AnimatedTimeout.tsx +115 -0
  403. package/src/components/icons/animated/network/AnimatedWifiOff.tsx +93 -0
  404. package/src/components/icons/animated/network/index.ts +4 -0
  405. package/src/components/icons/animated/permissions/AnimatedPermission.tsx +74 -0
  406. package/src/components/icons/animated/permissions/AnimatedPermissionDenied.tsx +92 -0
  407. package/src/components/icons/animated/permissions/index.ts +3 -0
  408. package/src/components/icons/badges/ClockBadge.tsx +49 -0
  409. package/src/components/icons/badges/DownloadBadge.tsx +49 -0
  410. package/src/components/icons/badges/XBadge.tsx +49 -0
  411. package/src/components/icons/badges/index.ts +4 -0
  412. package/src/components/icons/index.ts +4 -0
  413. package/src/components/icons/utilities/AlertTriangleIcon.tsx +17 -0
  414. package/src/components/icons/utilities/CheckCircleIcon.tsx +16 -0
  415. package/src/components/icons/utilities/DownloadIcon.tsx +17 -0
  416. package/src/components/icons/utilities/IconWithBadge.tsx +166 -0
  417. package/src/components/icons/utilities/SettingsIcon.tsx +16 -0
  418. package/src/components/icons/utilities/ShieldIcon.tsx +15 -0
  419. package/src/components/icons/utilities/XIcon.tsx +16 -0
  420. package/src/components/icons/utilities/index.ts +8 -0
  421. package/src/components/index.ts +10 -0
  422. package/src/components/layout/DualButtonLayout.tsx +118 -0
  423. package/src/components/layout/ResponsiveLayout.tsx +118 -0
  424. package/src/components/layout/SafeAreaWrapper.tsx +72 -0
  425. package/src/components/layout/ScreenContainer.tsx +53 -0
  426. package/src/components/layout/index.ts +5 -0
  427. package/src/components/lists/CheckListItem.tsx +72 -0
  428. package/src/components/lists/StatusCheckList.tsx +101 -0
  429. package/src/components/lists/index.ts +3 -0
  430. package/src/components/status/ConnectionStatus.tsx +90 -0
  431. package/src/components/status/VersionDisplay.tsx +60 -0
  432. package/src/components/status/index.ts +3 -0
  433. package/src/components/support/SupportButtons.tsx +311 -0
  434. package/src/components/support/index.ts +2 -0
  435. package/src/components/timers/CountdownTimer.tsx +136 -0
  436. package/src/components/timers/RetryCounter.tsx +33 -0
  437. package/src/components/timers/index.ts +3 -0
  438. package/src/index.ts +125 -0
  439. package/src/screens/errors/ApiErrorScreen.tsx +276 -0
  440. package/src/screens/errors/ClientErrorScreen.tsx +135 -0
  441. package/src/screens/errors/ErrorBoundaryScreen.tsx +98 -0
  442. package/src/screens/errors/InvalidResponseScreen.tsx +104 -0
  443. package/src/screens/errors/ServerErrorScreen.tsx +139 -0
  444. package/src/screens/errors/index.ts +6 -0
  445. package/src/screens/index.ts +5 -0
  446. package/src/screens/network/ApiTimeoutScreen.tsx +104 -0
  447. package/src/screens/network/NetworkOfflineScreen.tsx +92 -0
  448. package/src/screens/network/NetworkSlowConnectionScreen.tsx +92 -0
  449. package/src/screens/network/index.ts +4 -0
  450. package/src/screens/permissions/PermissionDeniedScreen.tsx +176 -0
  451. package/src/screens/permissions/PermissionRequestScreen.tsx +506 -0
  452. package/src/screens/permissions/PermissionScreen.tsx +104 -0
  453. package/src/screens/permissions/index.ts +4 -0
  454. package/src/screens/system/index.ts +3 -0
  455. package/src/screens/system/maintenance/EmergencyOutageScreen.tsx +113 -0
  456. package/src/screens/system/maintenance/PlannedMaintenanceScreen.tsx +98 -0
  457. package/src/screens/system/maintenance/ServiceUnavailableScreen.tsx +133 -0
  458. package/src/screens/system/maintenance/SystemMaintenanceScreen.tsx +334 -0
  459. package/src/screens/system/maintenance/UnplannedOutageScreen.tsx +106 -0
  460. package/src/screens/system/maintenance/index.ts +6 -0
  461. package/src/screens/system/updates/AppUpdateScreen.tsx +440 -0
  462. package/src/screens/system/updates/ForceUpdateScreen.tsx +121 -0
  463. package/src/screens/system/updates/OptionalUpdateScreen.tsx +120 -0
  464. package/src/screens/system/updates/SecurityUpdateScreen.tsx +152 -0
  465. package/src/screens/system/updates/SoftUpdateScreen.tsx +137 -0
  466. package/src/screens/system/updates/index.ts +6 -0
  467. package/src/types/common.ts +203 -0
  468. package/src/types/components.ts +65 -0
  469. package/src/types/index.ts +9 -0
  470. package/src/types/reanimated.d.ts +38 -0
  471. package/src/types/screens.ts +428 -0
  472. package/src/types/support.ts +23 -0
  473. package/src/utils/client.ts +273 -0
  474. package/src/utils/index.ts +2 -0
package/dist/index.js ADDED
@@ -0,0 +1,103 @@
1
+ // ============================================================================
2
+ // Cross-Platform UI Kit - Main Export
3
+ // ============================================================================
4
+ // Export all types
5
+ export * from './types';
6
+ // Export all client utilities
7
+ export * from './utils';
8
+ // ============================================================================
9
+ // Error Handling Screens
10
+ // ============================================================================
11
+ export { ErrorBoundaryScreen } from './screens/errors/ErrorBoundaryScreen';
12
+ export { ServerErrorScreen } from './screens/errors/ServerErrorScreen';
13
+ export { ClientErrorScreen } from './screens/errors/ClientErrorScreen';
14
+ export { InvalidResponseScreen } from './screens/errors/InvalidResponseScreen';
15
+ export { ApiErrorScreen } from './screens/errors/ApiErrorScreen';
16
+ // ============================================================================
17
+ // Network & Connectivity Screens
18
+ // ============================================================================
19
+ export { NetworkOfflineScreen } from './screens/network/NetworkOfflineScreen';
20
+ export { NetworkSlowConnectionScreen } from './screens/network/NetworkSlowConnectionScreen';
21
+ export { ApiTimeoutScreen } from './screens/network/ApiTimeoutScreen';
22
+ // ============================================================================
23
+ // Permission Screens
24
+ // ============================================================================
25
+ export { PermissionScreen } from './screens/permissions/PermissionScreen';
26
+ export { PermissionDeniedScreen } from './screens/permissions/PermissionDeniedScreen';
27
+ export { PermissionRequestScreen, MultiPermissionRequestScreen } from './screens/permissions/PermissionRequestScreen';
28
+ // ============================================================================
29
+ // System Screens
30
+ // ============================================================================
31
+ // Update Screens
32
+ export { SoftUpdateScreen } from './screens/system/updates/SoftUpdateScreen';
33
+ export { OptionalUpdateScreen } from './screens/system/updates/OptionalUpdateScreen';
34
+ export { ForceUpdateScreen } from './screens/system/updates/ForceUpdateScreen';
35
+ export { SecurityUpdateScreen } from './screens/system/updates/SecurityUpdateScreen';
36
+ export { AppUpdateScreen } from './screens/system/updates/AppUpdateScreen';
37
+ // Maintenance Screens
38
+ export { PlannedMaintenanceScreen } from './screens/system/maintenance/PlannedMaintenanceScreen';
39
+ export { UnplannedOutageScreen } from './screens/system/maintenance/UnplannedOutageScreen';
40
+ export { EmergencyOutageScreen } from './screens/system/maintenance/EmergencyOutageScreen';
41
+ export { SystemMaintenanceScreen } from './screens/system/maintenance/SystemMaintenanceScreen';
42
+ export { default as ServiceUnavailableScreen } from './screens/system/maintenance/ServiceUnavailableScreen';
43
+ // ============================================================================
44
+ // Shared Design System Components
45
+ // ============================================================================
46
+ export { default as ScreenContainer } from './components/layout/ScreenContainer';
47
+ export { default as IconWithBadge } from './components/icons/utilities/IconWithBadge';
48
+ export { default as ContentCard } from './components/cards/ContentCard';
49
+ export { default as PrimaryButton } from './components/buttons/PrimaryButton';
50
+ export { default as SecondaryButton } from './components/buttons/SecondaryButton';
51
+ export { default as CheckListItem } from './components/lists/CheckListItem';
52
+ export { default as StatusBadge } from './components/feedback/StatusBadge';
53
+ export { default as VersionDisplay } from './components/status/VersionDisplay';
54
+ // Other Shared Components
55
+ export { default as SupportButtons } from './components/support/SupportButtons';
56
+ export { default as RetryCounter } from './components/timers/RetryCounter';
57
+ export { default as DualButtonLayout } from './components/layout/DualButtonLayout';
58
+ export { default as TopBanner } from './components/feedback/TopBanner';
59
+ export { default as ExpandableSection } from './components/feedback/ExpandableSection';
60
+ export { default as WhatsNewCard } from './components/cards/WhatsNewCard';
61
+ export { default as StatusCheckList } from './components/lists/StatusCheckList';
62
+ export { default as CountdownTimer } from './components/timers/CountdownTimer';
63
+ export { default as InfoCard } from './components/cards/InfoCard';
64
+ export { default as WarningCard } from './components/cards/WarningCard';
65
+ export { default as SecurityBanner } from './components/feedback/SecurityBanner';
66
+ // ============================================================================
67
+ // Animated Icons
68
+ // ============================================================================
69
+ // Network Icons
70
+ export { default as AnimatedWifiOff } from './components/icons/animated/network/AnimatedWifiOff';
71
+ export { default as AnimatedSpeedGauge } from './components/icons/animated/network/AnimatedSpeedGauge';
72
+ export { default as AnimatedTimeout } from './components/icons/animated/network/AnimatedTimeout';
73
+ // Error Icons
74
+ export { default as AnimatedCrash } from './components/icons/animated/errors/AnimatedCrash';
75
+ export { default as AnimatedServerError } from './components/icons/animated/errors/AnimatedServerError';
76
+ export { default as AnimatedClientError } from './components/icons/animated/errors/AnimatedClientError';
77
+ export { default as AnimatedInvalidData } from './components/icons/animated/errors/AnimatedInvalidData';
78
+ // Permission Icons
79
+ export { default as AnimatedPermission } from './components/icons/animated/permissions/AnimatedPermission';
80
+ export { default as AnimatedPermissionDenied } from './components/icons/animated/permissions/AnimatedPermissionDenied';
81
+ // Maintenance Icons
82
+ export { default as AnimatedAlert } from './components/icons/animated/maintenance/AnimatedAlert';
83
+ export { default as AnimatedEmergency } from './components/icons/animated/maintenance/AnimatedEmergency';
84
+ export { default as AnimatedWrench } from './components/icons/animated/maintenance/AnimatedWrench';
85
+ // Other Icons
86
+ export { default as AnimatedClock } from './components/icons/animated/general/AnimatedClock';
87
+ export { default as AnimatedWarning } from './components/icons/animated/general/AnimatedWarning';
88
+ export { default as AnimatedShield } from './components/icons/animated/general/AnimatedShield';
89
+ export { default as AnimatedCalendar } from './components/icons/animated/general/AnimatedCalendar';
90
+ export { default as AnimatedDocument } from './components/icons/animated/general/AnimatedDocument';
91
+ export { default as AnimatedCamera } from './components/icons/animated/general/AnimatedCamera';
92
+ export { default as AnimatedLightning } from './components/icons/animated/general/AnimatedLightning';
93
+ export { default as AnimatedLocationPin } from './components/icons/animated/general/AnimatedLocationPin';
94
+ export { default as AnimatedSparkle } from './components/icons/animated/general/AnimatedSparkle';
95
+ export { default as AnimatedDownload } from './components/icons/animated/general/AnimatedDownload';
96
+ // Icon Badges
97
+ export { default as DownloadBadge } from './components/icons/badges/DownloadBadge';
98
+ export { default as ClockBadge } from './components/icons/badges/ClockBadge';
99
+ export { default as XBadge } from './components/icons/badges/XBadge';
100
+ // ============================================================================
101
+ // Adapter Layer
102
+ // ============================================================================
103
+ export { createSupportHandler, createRetryHandler, createErrorContext, } from './adapters/supportAdapter';
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { ApiErrorScreenProps } from '../../types';
3
+ /**
4
+ * ApiErrorScreen Component
5
+ * 100% design fidelity port from error-ui-kit
6
+ */
7
+ export declare const ApiErrorScreen: React.FC<ApiErrorScreenProps>;
@@ -0,0 +1,166 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { View, Text, StyleSheet, ScrollView, Animated, } from 'react-native';
4
+ import PrimaryButton from '../../components/buttons/PrimaryButton';
5
+ import SupportButtons from '../../components/support/SupportButtons';
6
+ import AnimatedServerError from '../../components/icons/animated/errors/AnimatedServerError';
7
+ import AnimatedAlert from '../../components/icons/animated/maintenance/AnimatedAlert';
8
+ import AnimatedTimeout from '../../components/icons/animated/network/AnimatedTimeout';
9
+ import { getColor, getColorWithOpacity } from '../../utils/client';
10
+ /**
11
+ * Error configurations matching error-ui-kit design
12
+ */
13
+ const errorConfigs = {
14
+ timeout: {
15
+ icon: AnimatedTimeout,
16
+ title: 'Request Timed Out',
17
+ description: 'The server is taking too long to respond. This might be due to high traffic or slow connection.',
18
+ color: getColor('warning'),
19
+ bgColor: getColorWithOpacity(getColor('warning'), 0.1),
20
+ },
21
+ server_error: {
22
+ icon: AnimatedServerError,
23
+ title: 'Server Error',
24
+ description: 'Something went wrong on our end. Our team has been notified and is working on a fix.',
25
+ color: getColor('error'),
26
+ bgColor: getColorWithOpacity(getColor('error'), 0.1),
27
+ },
28
+ client_error: {
29
+ icon: AnimatedAlert,
30
+ title: 'Request Failed',
31
+ description: 'There was an issue with your request. Please try again or contact support if the problem persists.',
32
+ color: getColor('error'),
33
+ bgColor: getColorWithOpacity(getColor('error'), 0.1),
34
+ },
35
+ invalid_response: {
36
+ icon: AnimatedAlert,
37
+ title: 'Invalid Response',
38
+ description: 'We received an unexpected response from the server. This is usually temporary.',
39
+ color: getColor('warning'),
40
+ bgColor: getColorWithOpacity(getColor('warning'), 0.1),
41
+ },
42
+ network_error: {
43
+ icon: AnimatedAlert,
44
+ title: 'Connection Error',
45
+ description: 'Unable to reach our servers. Please check your internet connection.',
46
+ color: getColor('offline'),
47
+ bgColor: getColorWithOpacity(getColor('offline'), 0.1),
48
+ },
49
+ };
50
+ /**
51
+ * ApiErrorScreen Component
52
+ * 100% design fidelity port from error-ui-kit
53
+ */
54
+ export const ApiErrorScreen = ({
55
+ // Content customization
56
+ title, description, icon, iconColor, iconBackgroundColor,
57
+ // Actions
58
+ onRetry,
59
+ // Button configuration
60
+ retryButtonText = 'Try Again', showRetryButton = true,
61
+ // Support
62
+ support, supportVariant = 'icon-only',
63
+ // Additional info
64
+ statusCode, errorCode, errorType = 'server_error',
65
+ // Styling
66
+ theme, primaryColor, backgroundColor, }) => {
67
+ const config = errorConfigs[errorType];
68
+ const IconComponent = icon || config.icon;
69
+ const finalIconColor = iconColor || theme?.error || config.color;
70
+ const finalIconBgColor = iconBackgroundColor || theme?.surface || config.bgColor;
71
+ const finalPrimaryColor = primaryColor || theme?.primary || getColor('primary');
72
+ const finalBgColor = backgroundColor || theme?.background || '#FFFFFF';
73
+ // Animation values
74
+ const scaleAnim = React.useRef(new Animated.Value(0)).current;
75
+ const fadeAnim = React.useRef(new Animated.Value(0)).current;
76
+ React.useEffect(() => {
77
+ Animated.parallel([
78
+ Animated.spring(scaleAnim, {
79
+ toValue: 1,
80
+ tension: 50,
81
+ friction: 7,
82
+ useNativeDriver: true,
83
+ }),
84
+ Animated.timing(fadeAnim, {
85
+ toValue: 1,
86
+ duration: 400,
87
+ useNativeDriver: true,
88
+ }),
89
+ ]).start();
90
+ }, []);
91
+ return (_jsx(ScrollView, { style: [styles.container, { backgroundColor: finalBgColor }], contentContainerStyle: styles.contentContainer, children: _jsxs(Animated.View, { style: [
92
+ styles.content,
93
+ {
94
+ opacity: fadeAnim,
95
+ transform: [{ scale: scaleAnim }],
96
+ },
97
+ ], children: [_jsx(View, { style: [
98
+ styles.iconContainer,
99
+ { backgroundColor: finalIconBgColor },
100
+ ], children: typeof IconComponent === 'function' ? (_jsx(IconComponent, { size: 40, color: finalIconColor })) : (IconComponent) }), statusCode && (_jsx(View, { style: [
101
+ styles.badge,
102
+ { backgroundColor: finalIconBgColor },
103
+ ], children: _jsxs(Text, { style: [
104
+ styles.badgeText,
105
+ { color: finalIconColor },
106
+ ], children: ["Error ", statusCode] }) })), _jsx(Text, { style: [styles.title, theme?.textPrimary ? { color: theme.textPrimary } : undefined], children: title || config.title }), _jsx(Text, { style: [styles.description, theme?.textSecondary ? { color: theme.textSecondary } : undefined], children: description || config.description }), showRetryButton && onRetry && (_jsx(View, { style: styles.buttonContainer, children: _jsx(PrimaryButton, { onPress: onRetry, backgroundColor: finalPrimaryColor, children: retryButtonText }) })), support && (_jsx(View, { style: styles.supportContainer, children: _jsx(SupportButtons, { support: support, variant: supportVariant, theme: theme }) }))] }) }));
107
+ };
108
+ const styles = StyleSheet.create({
109
+ container: {
110
+ flex: 1,
111
+ },
112
+ contentContainer: {
113
+ flexGrow: 1,
114
+ justifyContent: 'center',
115
+ alignItems: 'center',
116
+ padding: 16,
117
+ },
118
+ content: {
119
+ maxWidth: 400,
120
+ width: '100%',
121
+ alignItems: 'center',
122
+ },
123
+ iconContainer: {
124
+ width: 80,
125
+ height: 80,
126
+ borderRadius: 40,
127
+ justifyContent: 'center',
128
+ alignItems: 'center',
129
+ marginBottom: 24,
130
+ },
131
+ badge: {
132
+ paddingHorizontal: 12,
133
+ paddingVertical: 6,
134
+ borderRadius: 16,
135
+ marginBottom: 16,
136
+ },
137
+ badgeText: {
138
+ fontSize: 14,
139
+ fontWeight: '600',
140
+ fontFamily: 'monospace',
141
+ },
142
+ title: {
143
+ fontSize: 24,
144
+ fontWeight: 'bold',
145
+ textAlign: 'center',
146
+ marginBottom: 12,
147
+ color: '#111827',
148
+ },
149
+ description: {
150
+ fontSize: 16,
151
+ textAlign: 'center',
152
+ marginBottom: 24,
153
+ color: '#6B7280',
154
+ lineHeight: 24,
155
+ },
156
+ buttonContainer: {
157
+ width: '100%',
158
+ marginBottom: 24,
159
+ },
160
+ retryButton: {
161
+ width: '100%',
162
+ },
163
+ supportContainer: {
164
+ marginTop: 8,
165
+ },
166
+ });
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { ClientErrorScreenProps } from '../../types';
3
+ /**
4
+ * Client Error Screen (4xx errors)
5
+ *
6
+ * Displayed when the client makes an invalid request.
7
+ */
8
+ export declare const ClientErrorScreen: React.FC<ClientErrorScreenProps>;
9
+ export default ClientErrorScreen;
@@ -0,0 +1,75 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Text, StyleSheet } from 'react-native';
3
+ import ScreenContainer from '../../components/layout/ScreenContainer';
4
+ import IconWithBadge from '../../components/icons/utilities/IconWithBadge';
5
+ import StatusBadge from '../../components/feedback/StatusBadge';
6
+ import PrimaryButton from '../../components/buttons/PrimaryButton';
7
+ import SecondaryButton from '../../components/buttons/SecondaryButton';
8
+ import AnimatedClientError from '../../components/icons/animated/errors/AnimatedClientError';
9
+ import { getColor } from '../../utils/client';
10
+ /**
11
+ * Client Error Screen (4xx errors)
12
+ *
13
+ * Displayed when the client makes an invalid request.
14
+ */
15
+ export const ClientErrorScreen = ({ title, description, statusCode = 404, onGoBack, onHome, goBackButtonText = 'Go Back', homeButtonText = 'Go Home', support, theme, primaryColor, backgroundColor, }) => {
16
+ const warningColor = primaryColor || theme?.warning || getColor('warning');
17
+ // Get default content based on status code
18
+ const getDefaultContent = () => {
19
+ switch (statusCode) {
20
+ case 400:
21
+ return {
22
+ title: 'Bad Request',
23
+ description: 'The request could not be understood. Please check and try again.',
24
+ };
25
+ case 401:
26
+ return {
27
+ title: 'Unauthorized',
28
+ description: 'You need to sign in to access this resource.',
29
+ };
30
+ case 403:
31
+ return {
32
+ title: 'Access Denied',
33
+ description: 'You don\'t have permission to access this resource.',
34
+ };
35
+ case 404:
36
+ return {
37
+ title: 'Page Not Found',
38
+ description: 'The page you\'re looking for doesn\'t exist or has been moved.',
39
+ };
40
+ default:
41
+ return {
42
+ title: 'Client Error',
43
+ description: 'There was a problem with your request. Please try again.',
44
+ };
45
+ }
46
+ };
47
+ const defaultContent = getDefaultContent();
48
+ const finalTitle = title || defaultContent.title;
49
+ const finalDescription = description || defaultContent.description;
50
+ return (_jsxs(ScreenContainer, { backgroundColor: backgroundColor || theme?.background, children: [_jsx(IconWithBadge, { icon: _jsx(AnimatedClientError, { size: 48, color: warningColor }), iconBackgroundColor: "#FED7AA", badge: _jsx(Text, { style: styles.badgeIcon, children: "!" }), badgeBackgroundColor: warningColor }), _jsx(StatusBadge, { text: `Error ${statusCode}`, backgroundColor: "#FED7AA", textColor: warningColor }), _jsx(Text, { style: [styles.title, theme?.textPrimary ? { color: theme.textPrimary } : undefined], children: finalTitle }), _jsx(Text, { style: [styles.description, theme?.textSecondary ? { color: theme.textSecondary } : undefined], children: finalDescription }), onGoBack && (_jsx(PrimaryButton, { onPress: onGoBack, backgroundColor: warningColor, children: goBackButtonText })), onHome && (_jsx(SecondaryButton, { onPress: onHome, children: homeButtonText }))] }));
51
+ };
52
+ const styles = StyleSheet.create({
53
+ title: {
54
+ fontSize: 24,
55
+ fontWeight: '700',
56
+ color: '#1F2937',
57
+ textAlign: 'center',
58
+ marginBottom: 12,
59
+ lineHeight: 32,
60
+ },
61
+ description: {
62
+ fontSize: 16,
63
+ fontWeight: '400',
64
+ color: '#6B7280',
65
+ textAlign: 'center',
66
+ lineHeight: 24,
67
+ marginBottom: 24,
68
+ },
69
+ badgeIcon: {
70
+ color: '#FFFFFF',
71
+ fontSize: 20,
72
+ fontWeight: '700',
73
+ },
74
+ });
75
+ export default ClientErrorScreen;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { ErrorFallbackProps } from '../../types';
3
+ /**
4
+ * App Crash Screen (Error Boundary Screen)
5
+ *
6
+ * Displayed when the app encounters an unhandled error.
7
+ */
8
+ export declare const ErrorBoundaryScreen: React.FC<ErrorFallbackProps>;
9
+ export default ErrorBoundaryScreen;
@@ -0,0 +1,43 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Text, StyleSheet } from 'react-native';
3
+ import ScreenContainer from '../../components/layout/ScreenContainer';
4
+ import IconWithBadge from '../../components/icons/utilities/IconWithBadge';
5
+ import ContentCard from '../../components/cards/ContentCard';
6
+ import PrimaryButton from '../../components/buttons/PrimaryButton';
7
+ import SecondaryButton from '../../components/buttons/SecondaryButton';
8
+ import CheckListItem from '../../components/lists/CheckListItem';
9
+ import AnimatedCrash from '../../components/icons/animated/errors/AnimatedCrash';
10
+ import { getColor } from '../../utils/client';
11
+ /**
12
+ * App Crash Screen (Error Boundary Screen)
13
+ *
14
+ * Displayed when the app encounters an unhandled error.
15
+ */
16
+ export const ErrorBoundaryScreen = ({ title = 'Something Went Wrong', description = 'The app encountered an unexpected error. We apologize for the inconvenience.', onReset, onHome, resetButtonText = 'Restart App', homeButtonText = 'Go Home', support, theme, }) => {
17
+ const errorColor = theme?.error || getColor('error');
18
+ return (_jsxs(ScreenContainer, { backgroundColor: theme?.background, children: [_jsx(IconWithBadge, { icon: _jsx(AnimatedCrash, { size: 48, color: errorColor }), iconBackgroundColor: "#FEE2E2", badge: _jsx(Text, { style: styles.badgeIcon, children: "\u2715" }), badgeBackgroundColor: errorColor }), _jsx(Text, { style: [styles.title, theme?.textPrimary ? { color: theme.textPrimary } : undefined], children: title }), _jsx(Text, { style: [styles.description, theme?.textSecondary ? { color: theme.textSecondary } : undefined], children: description }), _jsxs(ContentCard, { title: "What happened?", children: [_jsx(CheckListItem, { text: "An unexpected error occurred" }), _jsx(CheckListItem, { text: "Your data is safe" }), _jsx(CheckListItem, { text: "Restarting should fix the issue" })] }), onReset && (_jsx(PrimaryButton, { onPress: onReset, backgroundColor: errorColor, children: resetButtonText })), onHome && (_jsx(SecondaryButton, { onPress: onHome, children: homeButtonText }))] }));
19
+ };
20
+ const styles = StyleSheet.create({
21
+ title: {
22
+ fontSize: 24,
23
+ fontWeight: '700',
24
+ color: '#1F2937',
25
+ textAlign: 'center',
26
+ marginBottom: 12,
27
+ lineHeight: 32,
28
+ },
29
+ description: {
30
+ fontSize: 16,
31
+ fontWeight: '400',
32
+ color: '#6B7280',
33
+ textAlign: 'center',
34
+ lineHeight: 24,
35
+ marginBottom: 24,
36
+ },
37
+ badgeIcon: {
38
+ color: '#FFFFFF',
39
+ fontSize: 20,
40
+ fontWeight: '700',
41
+ },
42
+ });
43
+ export default ErrorBoundaryScreen;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { InvalidResponseScreenProps } from '../../types';
3
+ /**
4
+ * Invalid Response Screen
5
+ *
6
+ * Displayed when the server returns invalid or corrupted data.
7
+ */
8
+ export declare const InvalidResponseScreen: React.FC<InvalidResponseScreenProps>;
9
+ export default InvalidResponseScreen;
@@ -0,0 +1,47 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Text, StyleSheet } from 'react-native';
3
+ import ScreenContainer from '../../components/layout/ScreenContainer';
4
+ import IconWithBadge from '../../components/icons/utilities/IconWithBadge';
5
+ import ContentCard from '../../components/cards/ContentCard';
6
+ import PrimaryButton from '../../components/buttons/PrimaryButton';
7
+ import SecondaryButton from '../../components/buttons/SecondaryButton';
8
+ import AnimatedInvalidData from '../../components/icons/animated/errors/AnimatedInvalidData';
9
+ import { getColor } from '../../utils/client';
10
+ /**
11
+ * Invalid Response Screen
12
+ *
13
+ * Displayed when the server returns invalid or corrupted data.
14
+ */
15
+ export const InvalidResponseScreen = ({ title = 'Invalid Response', description = 'The server returned data that couldn\'t be processed. Please try again.', onRetry, onReportError, retryButtonText = 'Try Again', reportButtonText = 'Report Issue', support, theme, primaryColor, backgroundColor, }) => {
16
+ const errorColor = primaryColor || theme?.error || getColor('error');
17
+ return (_jsxs(ScreenContainer, { backgroundColor: backgroundColor || theme?.background, children: [_jsx(IconWithBadge, { icon: _jsx(AnimatedInvalidData, { size: 48, color: errorColor }), iconBackgroundColor: "#FEE2E2", badge: _jsx(Text, { style: styles.badgeIcon, children: "?" }), badgeBackgroundColor: errorColor }), _jsx(Text, { style: [styles.title, theme?.textPrimary ? { color: theme.textPrimary } : undefined], children: title }), _jsx(Text, { style: [styles.description, theme?.textSecondary ? { color: theme.textSecondary } : undefined], children: description }), _jsx(ContentCard, { title: "What happened?", children: _jsx(Text, { style: styles.cardText, children: "The data received from the server was invalid or corrupted. This is usually a temporary issue." }) }), onRetry && (_jsx(PrimaryButton, { onPress: onRetry, backgroundColor: errorColor, children: retryButtonText })), onReportError && (_jsx(SecondaryButton, { onPress: onReportError, children: reportButtonText }))] }));
18
+ };
19
+ const styles = StyleSheet.create({
20
+ title: {
21
+ fontSize: 24,
22
+ fontWeight: '700',
23
+ color: '#1F2937',
24
+ textAlign: 'center',
25
+ marginBottom: 12,
26
+ lineHeight: 32,
27
+ },
28
+ description: {
29
+ fontSize: 16,
30
+ fontWeight: '400',
31
+ color: '#6B7280',
32
+ textAlign: 'center',
33
+ lineHeight: 24,
34
+ marginBottom: 24,
35
+ },
36
+ cardText: {
37
+ fontSize: 14,
38
+ color: '#6B7280',
39
+ lineHeight: 20,
40
+ },
41
+ badgeIcon: {
42
+ color: '#FFFFFF',
43
+ fontSize: 20,
44
+ fontWeight: '700',
45
+ },
46
+ });
47
+ export default InvalidResponseScreen;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { ServerErrorScreenProps } from '../../types';
3
+ /**
4
+ * Server Error Screen (5xx errors)
5
+ *
6
+ * Displayed when the server encounters an error.
7
+ */
8
+ export declare const ServerErrorScreen: React.FC<ServerErrorScreenProps>;
9
+ export default ServerErrorScreen;
@@ -0,0 +1,72 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Text, StyleSheet } from 'react-native';
3
+ import ScreenContainer from '../../components/layout/ScreenContainer';
4
+ import IconWithBadge from '../../components/icons/utilities/IconWithBadge';
5
+ import StatusBadge from '../../components/feedback/StatusBadge';
6
+ import ContentCard from '../../components/cards/ContentCard';
7
+ import PrimaryButton from '../../components/buttons/PrimaryButton';
8
+ import SecondaryButton from '../../components/buttons/SecondaryButton';
9
+ import CheckListItem from '../../components/lists/CheckListItem';
10
+ import AnimatedServerError from '../../components/icons/animated/errors/AnimatedServerError';
11
+ import { getColor } from '../../utils/client';
12
+ /**
13
+ * Server Error Screen (5xx errors)
14
+ *
15
+ * Displayed when the server encounters an error.
16
+ */
17
+ export const ServerErrorScreen = ({ title, description, statusCode = 500, onRetry, onHome, retryButtonText = 'Try Again', homeButtonText = 'Go Home', support, theme, primaryColor, backgroundColor, }) => {
18
+ const errorColor = primaryColor || theme?.error || getColor('error');
19
+ // Get default content based on status code
20
+ const getDefaultContent = () => {
21
+ switch (statusCode) {
22
+ case 502:
23
+ return {
24
+ title: 'Bad Gateway',
25
+ description: 'The server received an invalid response. Please try again in a moment.',
26
+ };
27
+ case 503:
28
+ return {
29
+ title: 'Service Unavailable',
30
+ description: 'The server is temporarily unable to handle your request. Please try again later.',
31
+ };
32
+ case 504:
33
+ return {
34
+ title: 'Gateway Timeout',
35
+ description: 'The server took too long to respond. Please try again.',
36
+ };
37
+ default:
38
+ return {
39
+ title: 'Server Error',
40
+ description: 'Something went wrong on our end. We\'re working to fix it.',
41
+ };
42
+ }
43
+ };
44
+ const defaultContent = getDefaultContent();
45
+ const finalTitle = title || defaultContent.title;
46
+ const finalDescription = description || defaultContent.description;
47
+ return (_jsxs(ScreenContainer, { backgroundColor: backgroundColor || theme?.background, children: [_jsx(IconWithBadge, { icon: _jsx(AnimatedServerError, { size: 48, color: errorColor }), iconBackgroundColor: "#FEE2E2", badge: _jsx(Text, { style: styles.badgeIcon, children: "!" }), badgeBackgroundColor: errorColor }), _jsx(StatusBadge, { text: `Error ${statusCode}`, backgroundColor: "#FEE2E2", textColor: errorColor }), _jsx(Text, { style: [styles.title, theme?.textPrimary ? { color: theme.textPrimary } : undefined], children: finalTitle }), _jsx(Text, { style: [styles.description, theme?.textSecondary ? { color: theme.textSecondary } : undefined], children: finalDescription }), _jsxs(ContentCard, { title: "What's happening?", children: [_jsx(CheckListItem, { text: "Our team is actively working on this" }), _jsx(CheckListItem, { text: "Your data is safe and secure" }), _jsx(CheckListItem, { text: "We'll be back as soon as possible" })] }), onRetry && (_jsx(PrimaryButton, { onPress: onRetry, backgroundColor: errorColor, children: retryButtonText })), onHome && (_jsx(SecondaryButton, { onPress: onHome, children: homeButtonText }))] }));
48
+ };
49
+ const styles = StyleSheet.create({
50
+ title: {
51
+ fontSize: 24,
52
+ fontWeight: '700',
53
+ color: '#1F2937',
54
+ textAlign: 'center',
55
+ marginBottom: 12,
56
+ lineHeight: 32,
57
+ },
58
+ description: {
59
+ fontSize: 16,
60
+ fontWeight: '400',
61
+ color: '#6B7280',
62
+ textAlign: 'center',
63
+ lineHeight: 24,
64
+ marginBottom: 24,
65
+ },
66
+ badgeIcon: {
67
+ color: '#FFFFFF',
68
+ fontSize: 20,
69
+ fontWeight: '700',
70
+ },
71
+ });
72
+ export default ServerErrorScreen;
@@ -0,0 +1,5 @@
1
+ export { ErrorBoundaryScreen } from './ErrorBoundaryScreen';
2
+ export { ServerErrorScreen } from './ServerErrorScreen';
3
+ export { ClientErrorScreen } from './ClientErrorScreen';
4
+ export { InvalidResponseScreen } from './InvalidResponseScreen';
5
+ export { ApiErrorScreen } from './ApiErrorScreen';
@@ -0,0 +1,6 @@
1
+ // Error Screens - Barrel Export
2
+ export { ErrorBoundaryScreen } from './ErrorBoundaryScreen';
3
+ export { ServerErrorScreen } from './ServerErrorScreen';
4
+ export { ClientErrorScreen } from './ClientErrorScreen';
5
+ export { InvalidResponseScreen } from './InvalidResponseScreen';
6
+ export { ApiErrorScreen } from './ApiErrorScreen';
@@ -0,0 +1,4 @@
1
+ export * from './errors';
2
+ export * from './network';
3
+ export * from './permissions';
4
+ export * from './system';
@@ -0,0 +1,5 @@
1
+ // All Screens - Barrel Export
2
+ export * from './errors';
3
+ export * from './network';
4
+ export * from './permissions';
5
+ export * from './system';
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { ApiTimeoutScreenProps } from '../../types';
3
+ /**
4
+ * API Timeout Screen
5
+ *
6
+ * Displayed when an API request times out.
7
+ */
8
+ export declare const ApiTimeoutScreen: React.FC<ApiTimeoutScreenProps>;
9
+ export default ApiTimeoutScreen;
@@ -0,0 +1,47 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Text, StyleSheet } from 'react-native';
3
+ import ScreenContainer from '../../components/layout/ScreenContainer';
4
+ import IconWithBadge from '../../components/icons/utilities/IconWithBadge';
5
+ import ContentCard from '../../components/cards/ContentCard';
6
+ import PrimaryButton from '../../components/buttons/PrimaryButton';
7
+ import SecondaryButton from '../../components/buttons/SecondaryButton';
8
+ import AnimatedTimeout from '../../components/icons/animated/network/AnimatedTimeout';
9
+ import { getColor } from '../../utils/client';
10
+ /**
11
+ * API Timeout Screen
12
+ *
13
+ * Displayed when an API request times out.
14
+ */
15
+ export const ApiTimeoutScreen = ({ title = 'Request Timed Out', description = 'The server took too long to respond. Please try again.', onRetry, onHome, retryButtonText = 'Try Again', homeButtonText = 'Go Home', support, theme, primaryColor, backgroundColor, }) => {
16
+ const warningColor = primaryColor || theme?.warning || getColor('warning');
17
+ return (_jsxs(ScreenContainer, { backgroundColor: backgroundColor || theme?.background, children: [_jsx(IconWithBadge, { icon: _jsx(AnimatedTimeout, { size: 48, color: warningColor }), iconBackgroundColor: "#FED7AA", badge: _jsx(Text, { style: styles.badgeIcon, children: "!" }), badgeBackgroundColor: warningColor }), _jsx(Text, { style: [styles.title, theme?.textPrimary ? { color: theme.textPrimary } : undefined], children: title }), _jsx(Text, { style: [styles.description, theme?.textSecondary ? { color: theme.textSecondary } : undefined], children: description }), _jsx(ContentCard, { title: "What happened?", children: _jsx(Text, { style: styles.cardText, children: "The request took longer than expected. This could be due to slow network or server issues." }) }), onRetry && (_jsx(PrimaryButton, { onPress: onRetry, backgroundColor: warningColor, children: retryButtonText })), onHome && (_jsx(SecondaryButton, { onPress: onHome, children: homeButtonText }))] }));
18
+ };
19
+ const styles = StyleSheet.create({
20
+ title: {
21
+ fontSize: 24,
22
+ fontWeight: '700',
23
+ color: '#1F2937',
24
+ textAlign: 'center',
25
+ marginBottom: 12,
26
+ lineHeight: 32,
27
+ },
28
+ description: {
29
+ fontSize: 16,
30
+ fontWeight: '400',
31
+ color: '#6B7280',
32
+ textAlign: 'center',
33
+ lineHeight: 24,
34
+ marginBottom: 24,
35
+ },
36
+ cardText: {
37
+ fontSize: 14,
38
+ color: '#6B7280',
39
+ lineHeight: 20,
40
+ },
41
+ badgeIcon: {
42
+ color: '#FFFFFF',
43
+ fontSize: 20,
44
+ fontWeight: '700',
45
+ },
46
+ });
47
+ export default ApiTimeoutScreen;