@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
@@ -0,0 +1,53 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef } from 'react';
3
+ import { View, Text, StyleSheet, ScrollView, Animated } from 'react-native';
4
+ import IconWithBadge from '../../components/icons/IconWithBadge';
5
+ import AnimatedWrench from '../../components/icons/AnimatedWrench';
6
+ import ClockBadge from '../../components/icons/ClockBadge';
7
+ import StatusCheckList from '../../components/shared/StatusCheckList';
8
+ import DualButtonLayout from '../../components/shared/DualButtonLayout';
9
+ const ServiceUnavailableScreen = ({ title = 'Service Temporarily Unavailable', description = "We're experiencing technical difficulties and working to resolve them.", statusMessages, onCheckAgain, onNotifyMe, checkButtonText = 'Check Again', notifyButtonText = 'Notify Me When Back', theme, backgroundColor, }) => {
10
+ const fadeAnim = useRef(new Animated.Value(0)).current;
11
+ useEffect(() => {
12
+ Animated.timing(fadeAnim, {
13
+ toValue: 1,
14
+ duration: 600,
15
+ useNativeDriver: true,
16
+ }).start();
17
+ }, []);
18
+ const defaultStatusMessages = statusMessages || [
19
+ 'Our team is actively working on this',
20
+ 'Your data is safe and secure',
21
+ "We'll be back as soon as possible",
22
+ ];
23
+ const bgColor = backgroundColor || theme?.background || '#FFFFFF';
24
+ return (_jsx(View, { style: [styles.container, { backgroundColor: bgColor }], children: _jsx(ScrollView, { contentContainerStyle: styles.scrollContent, showsVerticalScrollIndicator: false, children: _jsxs(Animated.View, { style: { opacity: fadeAnim }, children: [_jsx(View, { style: styles.iconSection, children: _jsx(IconWithBadge, { icon: _jsx(AnimatedWrench, { size: 60, color: "#F59E0B" }), badge: _jsx(ClockBadge, { size: 48 }), size: 120, backgroundColor: "#FEF3C7" }) }), _jsx(Text, { style: styles.title, children: title }), _jsx(Text, { style: styles.description, children: description }), _jsx(StatusCheckList, { messages: defaultStatusMessages }), (onCheckAgain || onNotifyMe) && (_jsx(DualButtonLayout, { primaryText: checkButtonText, primaryAction: onCheckAgain || (() => { }), primaryIcon: "\uD83D\uDD04", secondaryText: notifyButtonText, secondaryAction: onNotifyMe || (() => { }), secondaryIcon: "\uD83D\uDD14", layout: "vertical", theme: theme }))] }) }) }));
25
+ };
26
+ const styles = StyleSheet.create({
27
+ container: {
28
+ flex: 1,
29
+ },
30
+ scrollContent: {
31
+ alignItems: 'center',
32
+ paddingHorizontal: 32,
33
+ paddingVertical: 60,
34
+ },
35
+ iconSection: {
36
+ marginBottom: 24,
37
+ },
38
+ title: {
39
+ fontSize: 28,
40
+ fontWeight: '700',
41
+ color: '#1F2937',
42
+ textAlign: 'center',
43
+ marginBottom: 12,
44
+ },
45
+ description: {
46
+ fontSize: 16,
47
+ color: '#6B7280',
48
+ textAlign: 'center',
49
+ lineHeight: 24,
50
+ marginBottom: 32,
51
+ },
52
+ });
53
+ export default ServiceUnavailableScreen;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { SoftUpdateScreenProps } from '../../types';
3
+ /**
4
+ * Soft Update Screen
5
+ *
6
+ * Displayed when a soft update is available (user can skip).
7
+ */
8
+ export declare const SoftUpdateScreen: React.FC<SoftUpdateScreenProps>;
9
+ export default SoftUpdateScreen;
@@ -0,0 +1,55 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Text, StyleSheet } from 'react-native';
3
+ import ScreenContainer from '../../components/shared/ScreenContainer';
4
+ import IconWithBadge from '../../components/icons/IconWithBadge';
5
+ import ContentCard from '../../components/shared/ContentCard';
6
+ import PrimaryButton from '../../components/shared/PrimaryButton';
7
+ import SecondaryButton from '../../components/shared/SecondaryButton';
8
+ import VersionDisplay from '../../components/shared/VersionDisplay';
9
+ import AnimatedDownload from '../../components/icons/AnimatedDownload';
10
+ import { getColor } from '../../client';
11
+ /**
12
+ * Soft Update Screen
13
+ *
14
+ * Displayed when a soft update is available (user can skip).
15
+ */
16
+ export const SoftUpdateScreen = ({ title = 'Update Available', description = 'A new version is available with improvements and bug fixes.', currentVersion, newVersion, features, onUpdate, onRemindLater, onSkip, updateButtonText = 'Update Now', remindButtonText = 'Remind Later', skipButtonText = 'Skip', support, theme, primaryColor, backgroundColor, }) => {
17
+ const infoColor = primaryColor || theme?.primary || getColor('primary');
18
+ return (_jsxs(ScreenContainer, { backgroundColor: backgroundColor || theme?.background, children: [_jsx(IconWithBadge, { icon: _jsx(AnimatedDownload, { size: 48, color: infoColor }), iconBackgroundColor: "#DBEAFE", badge: _jsx(Text, { style: styles.badgeIcon, children: "\u2139" }), badgeBackgroundColor: infoColor }), _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 }), currentVersion && newVersion && (_jsx(VersionDisplay, { currentVersion: currentVersion, newVersion: newVersion, primaryColor: infoColor })), features && features.length > 0 && (_jsx(ContentCard, { title: "What's New", children: features.map((feature, index) => (_jsxs(Text, { style: styles.featureText, children: ["\u2022 ", feature] }, index))) })), onUpdate && (_jsx(PrimaryButton, { onPress: onUpdate, backgroundColor: infoColor, children: updateButtonText })), onRemindLater && (_jsx(SecondaryButton, { onPress: onRemindLater, children: remindButtonText })), onSkip && (_jsx(Text, { style: styles.skipText, onPress: onSkip, children: skipButtonText }))] }));
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
+ featureText: {
38
+ fontSize: 14,
39
+ color: '#6B7280',
40
+ lineHeight: 20,
41
+ marginBottom: 8,
42
+ },
43
+ badgeIcon: {
44
+ color: '#FFFFFF',
45
+ fontSize: 16,
46
+ fontWeight: '700',
47
+ },
48
+ skipText: {
49
+ fontSize: 14,
50
+ color: '#6B7280',
51
+ textAlign: 'center',
52
+ textDecorationLine: 'underline',
53
+ },
54
+ });
55
+ export default SoftUpdateScreen;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { MaintenanceScreenProps } from '../../types';
3
+ /**
4
+ * System Maintenance Screen Component
5
+ *
6
+ * Fully customizable maintenance screen.
7
+ * All content, countdown, actions, and support are configurable via props.
8
+ */
9
+ export declare const SystemMaintenanceScreen: React.FC<MaintenanceScreenProps>;
@@ -0,0 +1,228 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect, useRef } from 'react';
3
+ import { View, Text, TouchableOpacity, StyleSheet, ScrollView, Animated } from 'react-native';
4
+ import SupportButtons from '../../components/shared/SupportButtons';
5
+ import AnimatedWrench from '../../components/icons/AnimatedWrench';
6
+ import { getColor, getColorWithOpacity, isWeb } from '../../client';
7
+ /**
8
+ * System Maintenance Screen Component
9
+ *
10
+ * Fully customizable maintenance screen.
11
+ * All content, countdown, actions, and support are configurable via props.
12
+ */
13
+ export const SystemMaintenanceScreen = ({
14
+ // Maintenance type (for default config)
15
+ type,
16
+ // Content customization
17
+ title, description, icon,
18
+ // Time info (optional)
19
+ estimatedEndTime, showCountdown = true,
20
+ // Actions
21
+ onRetry, onNotifyMe,
22
+ // Button text
23
+ retryButtonText = 'Check Again', notifyButtonText = 'Notify Me When Ready',
24
+ // Support (optional)
25
+ support, supportVariant,
26
+ // Styling
27
+ theme, }) => {
28
+ const [timeRemaining, setTimeRemaining] = useState('');
29
+ // Animation
30
+ const fadeAnim = useRef(new Animated.Value(0)).current;
31
+ const scaleAnim = useRef(new Animated.Value(0.9)).current;
32
+ useEffect(() => {
33
+ Animated.parallel([
34
+ Animated.timing(fadeAnim, {
35
+ toValue: 1,
36
+ duration: 300,
37
+ useNativeDriver: true,
38
+ }),
39
+ Animated.spring(scaleAnim, {
40
+ toValue: 1,
41
+ tension: 50,
42
+ friction: 7,
43
+ useNativeDriver: true,
44
+ }),
45
+ ]).start();
46
+ }, []);
47
+ useEffect(() => {
48
+ if (estimatedEndTime && showCountdown) {
49
+ const updateCountdown = () => {
50
+ const now = new Date().getTime();
51
+ const end = estimatedEndTime.getTime();
52
+ const diff = end - now;
53
+ if (diff <= 0) {
54
+ setTimeRemaining('Maintenance should be complete');
55
+ return;
56
+ }
57
+ const hours = Math.floor(diff / (1000 * 60 * 60));
58
+ const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
59
+ const seconds = Math.floor((diff % (1000 * 60)) / 1000);
60
+ if (hours > 0) {
61
+ setTimeRemaining(`${hours}h ${minutes}m ${seconds}s`);
62
+ }
63
+ else if (minutes > 0) {
64
+ setTimeRemaining(`${minutes}m ${seconds}s`);
65
+ }
66
+ else {
67
+ setTimeRemaining(`${seconds}s`);
68
+ }
69
+ };
70
+ updateCountdown();
71
+ const interval = setInterval(updateCountdown, 1000);
72
+ return () => clearInterval(interval);
73
+ }
74
+ }, [estimatedEndTime, showCountdown]);
75
+ // Get default config based on type (fallback)
76
+ const getDefaultConfig = () => {
77
+ const errorColor = theme?.error || getColor('error');
78
+ const warningColor = theme?.warning || getColor('warning');
79
+ const primaryColorDefault = theme?.primary || getColor('primary');
80
+ switch (type) {
81
+ case 'emergency':
82
+ return {
83
+ color: errorColor,
84
+ title: 'Emergency Maintenance',
85
+ description: 'We are performing emergency maintenance to fix critical issues. We apologize for the inconvenience.',
86
+ badge: 'Critical',
87
+ };
88
+ case 'unplanned':
89
+ return {
90
+ color: warningColor,
91
+ title: 'Unplanned Outage',
92
+ description: 'We are experiencing unexpected issues and working to resolve them as quickly as possible.',
93
+ badge: 'Unexpected',
94
+ };
95
+ case 'planned':
96
+ default:
97
+ return {
98
+ color: primaryColorDefault,
99
+ title: 'Scheduled Maintenance',
100
+ description: 'We are performing scheduled maintenance to improve your experience. We will be back shortly.',
101
+ badge: 'Scheduled',
102
+ };
103
+ }
104
+ };
105
+ const defaultConfig = type ? getDefaultConfig() : null;
106
+ // Use custom values or fallback to defaults
107
+ const finalTitle = title || defaultConfig?.title || 'Under Maintenance';
108
+ const finalDescription = description || defaultConfig?.description || 'We are currently performing maintenance.';
109
+ const finalIcon = icon || _jsx(AnimatedWrench, { size: 48, color: defaultConfig?.color || theme?.primary || getColor('primary') });
110
+ const finalColor = defaultConfig?.color || theme?.primary || getColor('primary');
111
+ const badge = defaultConfig?.badge;
112
+ return (_jsx(View, { style: [styles.container, theme?.background ? { backgroundColor: theme.background } : undefined], children: _jsx(ScrollView, { contentContainerStyle: styles.scrollContent, showsVerticalScrollIndicator: false, children: _jsxs(Animated.View, { style: [
113
+ styles.content,
114
+ {
115
+ opacity: fadeAnim,
116
+ transform: [{ scale: scaleAnim }],
117
+ },
118
+ ], children: [_jsx(View, { style: [styles.iconContainer, { backgroundColor: getColorWithOpacity(finalColor, 0.1) }], children: finalIcon }), badge && (_jsx(View, { style: [styles.badge, { backgroundColor: getColorWithOpacity(finalColor, 0.1) }], children: _jsx(Text, { style: [styles.badgeText, { color: finalColor }], children: badge }) })), _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 }), timeRemaining && showCountdown && (_jsxs(View, { style: [styles.countdownContainer, { backgroundColor: getColorWithOpacity(finalColor, 0.1) }], children: [_jsx(Text, { style: styles.countdownLabel, children: "Estimated time remaining" }), _jsx(Text, { style: [styles.countdownTime, { color: finalColor }], children: timeRemaining })] })), _jsxs(View, { style: styles.buttonsContainer, children: [onRetry && (_jsx(TouchableOpacity, { style: [styles.button, styles.primaryButton, { backgroundColor: finalColor }], onPress: onRetry, activeOpacity: 0.8, children: _jsx(Text, { style: styles.primaryButtonText, children: retryButtonText }) })), onNotifyMe && (_jsx(TouchableOpacity, { style: [styles.button, styles.secondaryButton, { borderColor: finalColor }], onPress: onNotifyMe, activeOpacity: 0.8, children: _jsx(Text, { style: [styles.secondaryButtonText, { color: finalColor }], children: notifyButtonText }) }))] }), support && (_jsx(View, { style: styles.supportContainer, children: _jsx(SupportButtons, { support: support, variant: supportVariant || 'combined', theme: theme }) }))] }) }) }));
119
+ };
120
+ const styles = StyleSheet.create({
121
+ container: {
122
+ flex: 1,
123
+ backgroundColor: '#FFFFFF',
124
+ },
125
+ scrollContent: {
126
+ flexGrow: 1,
127
+ justifyContent: 'center',
128
+ padding: 24,
129
+ },
130
+ content: {
131
+ alignItems: 'center',
132
+ maxWidth: 480,
133
+ width: '100%',
134
+ alignSelf: 'center',
135
+ },
136
+ iconContainer: {
137
+ width: 96,
138
+ height: 96,
139
+ borderRadius: 48,
140
+ justifyContent: 'center',
141
+ alignItems: 'center',
142
+ marginBottom: 16,
143
+ },
144
+ badge: {
145
+ paddingHorizontal: 12,
146
+ paddingVertical: 6,
147
+ borderRadius: 12,
148
+ marginBottom: 16,
149
+ },
150
+ badgeText: {
151
+ fontSize: 12,
152
+ fontWeight: '700',
153
+ textTransform: 'uppercase',
154
+ },
155
+ title: {
156
+ fontSize: 24,
157
+ fontWeight: '700',
158
+ color: '#1F2937',
159
+ textAlign: 'center',
160
+ marginBottom: 12,
161
+ },
162
+ description: {
163
+ fontSize: 16,
164
+ color: '#6B7280',
165
+ textAlign: 'center',
166
+ lineHeight: 24,
167
+ marginBottom: 24,
168
+ },
169
+ countdownContainer: {
170
+ padding: 16,
171
+ borderRadius: 12,
172
+ marginBottom: 24,
173
+ alignItems: 'center',
174
+ width: '100%',
175
+ },
176
+ countdownLabel: {
177
+ fontSize: 14,
178
+ color: '#6B7280',
179
+ marginBottom: 8,
180
+ },
181
+ countdownTime: {
182
+ fontSize: 32,
183
+ fontWeight: '700',
184
+ },
185
+ buttonsContainer: {
186
+ width: '100%',
187
+ marginBottom: 16,
188
+ },
189
+ button: {
190
+ flexDirection: 'row',
191
+ alignItems: 'center',
192
+ justifyContent: 'center',
193
+ paddingVertical: 14,
194
+ paddingHorizontal: 32,
195
+ borderRadius: 12,
196
+ width: '100%',
197
+ marginBottom: 12,
198
+ },
199
+ buttonIcon: {
200
+ marginRight: 8,
201
+ },
202
+ primaryButton: {
203
+ ...(!isWeb() && {
204
+ shadowColor: '#000',
205
+ shadowOffset: { width: 0, height: 2 },
206
+ shadowOpacity: 0.1,
207
+ shadowRadius: 4,
208
+ elevation: 3,
209
+ }),
210
+ },
211
+ primaryButtonText: {
212
+ fontSize: 16,
213
+ fontWeight: '600',
214
+ color: '#FFFFFF',
215
+ },
216
+ secondaryButton: {
217
+ borderWidth: 2,
218
+ backgroundColor: 'transparent',
219
+ },
220
+ secondaryButtonText: {
221
+ fontSize: 16,
222
+ fontWeight: '600',
223
+ },
224
+ supportContainer: {
225
+ width: '100%',
226
+ marginTop: 8,
227
+ },
228
+ });
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { UnplannedOutageScreenProps } from '../../types';
3
+ /**
4
+ * Unplanned Outage Screen
5
+ *
6
+ * Displayed during unplanned service disruptions.
7
+ */
8
+ export declare const UnplannedOutageScreen: React.FC<UnplannedOutageScreenProps>;
9
+ export default UnplannedOutageScreen;
@@ -0,0 +1,42 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Text, StyleSheet } from 'react-native';
3
+ import ScreenContainer from '../../components/shared/ScreenContainer';
4
+ import IconWithBadge from '../../components/icons/IconWithBadge';
5
+ import StatusBadge from '../../components/shared/StatusBadge';
6
+ import ContentCard from '../../components/shared/ContentCard';
7
+ import PrimaryButton from '../../components/shared/PrimaryButton';
8
+ import SecondaryButton from '../../components/shared/SecondaryButton';
9
+ import CheckListItem from '../../components/shared/CheckListItem';
10
+ import AnimatedAlert from '../../components/icons/AnimatedAlert';
11
+ import { getColor } from '../../client';
12
+ /**
13
+ * Unplanned Outage Screen
14
+ *
15
+ * Displayed during unplanned service disruptions.
16
+ */
17
+ export const UnplannedOutageScreen = ({ title = 'Service Disruption', description = 'We\'re aware of an issue affecting our services and are working urgently to fix it.', onCheckAgain, onNotifyWhenBack, checkButtonText = 'Check Again', notifyButtonText = 'Notify Me When Back', support, theme, primaryColor, backgroundColor, }) => {
18
+ const warningColor = primaryColor || theme?.warning || getColor('warning');
19
+ return (_jsxs(ScreenContainer, { backgroundColor: backgroundColor || theme?.background, children: [_jsx(IconWithBadge, { icon: _jsx(AnimatedAlert, { size: 48, color: warningColor }), iconBackgroundColor: "#FED7AA", badge: _jsx(Text, { style: styles.badgeIcon, children: "\uD83D\uDD50" }), badgeBackgroundColor: warningColor }), _jsx(StatusBadge, { text: "Service Alert", backgroundColor: "#FED7AA", textColor: 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 }), _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" })] }), onCheckAgain && (_jsx(PrimaryButton, { onPress: onCheckAgain, backgroundColor: warningColor, children: checkButtonText })), onNotifyWhenBack && (_jsx(SecondaryButton, { onPress: onNotifyWhenBack, children: notifyButtonText }))] }));
20
+ };
21
+ const styles = StyleSheet.create({
22
+ title: {
23
+ fontSize: 24,
24
+ fontWeight: '700',
25
+ color: '#1F2937',
26
+ textAlign: 'center',
27
+ marginBottom: 12,
28
+ lineHeight: 32,
29
+ },
30
+ description: {
31
+ fontSize: 16,
32
+ fontWeight: '400',
33
+ color: '#6B7280',
34
+ textAlign: 'center',
35
+ lineHeight: 24,
36
+ marginBottom: 24,
37
+ },
38
+ badgeIcon: {
39
+ fontSize: 16,
40
+ },
41
+ });
42
+ export default UnplannedOutageScreen;
@@ -0,0 +1,2 @@
1
+ export * from './updates';
2
+ export * from './maintenance';
@@ -0,0 +1,3 @@
1
+ // System Screens - Barrel Export
2
+ export * from './updates';
3
+ export * from './maintenance';
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { EmergencyOutageScreenProps } from '../../../types';
3
+ /**
4
+ * Emergency Outage Screen
5
+ *
6
+ * Displayed during critical emergency outages.
7
+ */
8
+ export declare const EmergencyOutageScreen: React.FC<EmergencyOutageScreenProps>;
9
+ export default EmergencyOutageScreen;
@@ -0,0 +1,48 @@
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 AnimatedEmergency from '../../../components/icons/animated/maintenance/AnimatedEmergency';
10
+ import { getColor } from '../../../utils/client';
11
+ /**
12
+ * Emergency Outage Screen
13
+ *
14
+ * Displayed during critical emergency outages.
15
+ */
16
+ export const EmergencyOutageScreen = ({ title = 'Service Unavailable', description = 'We\'re experiencing a critical issue. Our team is working around the clock to restore service.', incidentDetails, onCheckStatus, onGetUpdates, statusButtonText = 'Check Status', updatesButtonText = 'Get Updates', support, theme, primaryColor, backgroundColor, }) => {
17
+ const errorColor = primaryColor || theme?.error || getColor('error');
18
+ return (_jsxs(ScreenContainer, { backgroundColor: backgroundColor || theme?.background, children: [_jsx(IconWithBadge, { icon: _jsx(AnimatedEmergency, { size: 48, color: errorColor }), iconBackgroundColor: "#FEE2E2", badge: _jsx(Text, { style: styles.badgeIcon, children: "!" }), badgeBackgroundColor: errorColor }), _jsx(StatusBadge, { text: "Critical", backgroundColor: "#FEE2E2", textColor: 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 }), incidentDetails && (_jsx(ContentCard, { title: "Incident Details", children: _jsx(Text, { style: styles.incidentText, children: incidentDetails }) })), onCheckStatus && (_jsx(PrimaryButton, { onPress: onCheckStatus, backgroundColor: errorColor, children: statusButtonText })), onGetUpdates && (_jsx(SecondaryButton, { onPress: onGetUpdates, children: updatesButtonText }))] }));
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
+ incidentText: {
38
+ fontSize: 14,
39
+ color: '#6B7280',
40
+ lineHeight: 20,
41
+ },
42
+ badgeIcon: {
43
+ color: '#FFFFFF',
44
+ fontSize: 20,
45
+ fontWeight: '700',
46
+ },
47
+ });
48
+ export default EmergencyOutageScreen;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { PlannedMaintenanceScreenProps } from '../../../types';
3
+ /**
4
+ * Planned Maintenance Screen
5
+ *
6
+ * Displayed during scheduled maintenance.
7
+ */
8
+ export declare const PlannedMaintenanceScreen: React.FC<PlannedMaintenanceScreenProps>;
9
+ export default PlannedMaintenanceScreen;
@@ -0,0 +1,41 @@
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 AnimatedWrench from '../../../components/icons/animated/maintenance/AnimatedWrench';
10
+ import { getColor } from '../../../utils/client';
11
+ /**
12
+ * Planned Maintenance Screen
13
+ *
14
+ * Displayed during scheduled maintenance.
15
+ */
16
+ export const PlannedMaintenanceScreen = ({ title = 'Service Temporarily Unavailable', description = 'We\'re experiencing technical difficulties and working to resolve them.', onCheckAgain, onNotifyWhenBack, checkButtonText = 'Check Again', notifyButtonText = 'Notify Me When Back', support, theme, primaryColor, backgroundColor, }) => {
17
+ const warningColor = primaryColor || theme?.warning || getColor('warning');
18
+ return (_jsxs(ScreenContainer, { backgroundColor: backgroundColor || theme?.background, children: [_jsx(IconWithBadge, { icon: _jsx(AnimatedWrench, { size: 48, color: warningColor }), iconBackgroundColor: "#FEF3C7", badge: _jsx(Text, { style: styles.badgeIcon, children: "\uD83D\uDD50" }), 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 }), _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" })] }), onCheckAgain && (_jsx(PrimaryButton, { onPress: onCheckAgain, backgroundColor: warningColor, children: checkButtonText })), onNotifyWhenBack && (_jsx(SecondaryButton, { onPress: onNotifyWhenBack, children: notifyButtonText }))] }));
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
+ fontSize: 16,
39
+ },
40
+ });
41
+ export default PlannedMaintenanceScreen;
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import type { ThemeColors } from '../../../types';
3
+ export interface ServiceUnavailableScreenProps {
4
+ title?: string;
5
+ description?: string;
6
+ statusMessages?: string[];
7
+ onCheckAgain?: () => void;
8
+ onNotifyMe?: () => void;
9
+ checkButtonText?: string;
10
+ notifyButtonText?: string;
11
+ theme?: ThemeColors;
12
+ backgroundColor?: string;
13
+ }
14
+ declare const ServiceUnavailableScreen: React.FC<ServiceUnavailableScreenProps>;
15
+ export default ServiceUnavailableScreen;
@@ -0,0 +1,53 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef } from 'react';
3
+ import { View, Text, StyleSheet, ScrollView, Animated } from 'react-native';
4
+ import IconWithBadge from '../../../components/icons/utilities/IconWithBadge';
5
+ import AnimatedWrench from '../../../components/icons/animated/maintenance/AnimatedWrench';
6
+ import ClockBadge from '../../../components/icons/badges/ClockBadge';
7
+ import StatusCheckList from '../../../components/lists/StatusCheckList';
8
+ import DualButtonLayout from '../../../components/layout/DualButtonLayout';
9
+ const ServiceUnavailableScreen = ({ title = 'Service Temporarily Unavailable', description = "We're experiencing technical difficulties and working to resolve them.", statusMessages, onCheckAgain, onNotifyMe, checkButtonText = 'Check Again', notifyButtonText = 'Notify Me When Back', theme, backgroundColor, }) => {
10
+ const fadeAnim = useRef(new Animated.Value(0)).current;
11
+ useEffect(() => {
12
+ Animated.timing(fadeAnim, {
13
+ toValue: 1,
14
+ duration: 600,
15
+ useNativeDriver: true,
16
+ }).start();
17
+ }, []);
18
+ const defaultStatusMessages = statusMessages || [
19
+ 'Our team is actively working on this',
20
+ 'Your data is safe and secure',
21
+ "We'll be back as soon as possible",
22
+ ];
23
+ const bgColor = backgroundColor || theme?.background || '#FFFFFF';
24
+ return (_jsx(View, { style: [styles.container, { backgroundColor: bgColor }], children: _jsx(ScrollView, { contentContainerStyle: styles.scrollContent, showsVerticalScrollIndicator: false, children: _jsxs(Animated.View, { style: { opacity: fadeAnim }, children: [_jsx(View, { style: styles.iconSection, children: _jsx(IconWithBadge, { icon: _jsx(AnimatedWrench, { size: 60, color: "#F59E0B" }), badge: _jsx(ClockBadge, { size: 48 }), size: 120, backgroundColor: "#FEF3C7" }) }), _jsx(Text, { style: styles.title, children: title }), _jsx(Text, { style: styles.description, children: description }), _jsx(StatusCheckList, { messages: defaultStatusMessages }), (onCheckAgain || onNotifyMe) && (_jsx(DualButtonLayout, { primaryText: checkButtonText, primaryAction: onCheckAgain || (() => { }), primaryIcon: "\uD83D\uDD04", secondaryText: notifyButtonText, secondaryAction: onNotifyMe || (() => { }), secondaryIcon: "\uD83D\uDD14", layout: "vertical", theme: theme }))] }) }) }));
25
+ };
26
+ const styles = StyleSheet.create({
27
+ container: {
28
+ flex: 1,
29
+ },
30
+ scrollContent: {
31
+ alignItems: 'center',
32
+ paddingHorizontal: 32,
33
+ paddingVertical: 60,
34
+ },
35
+ iconSection: {
36
+ marginBottom: 24,
37
+ },
38
+ title: {
39
+ fontSize: 28,
40
+ fontWeight: '700',
41
+ color: '#1F2937',
42
+ textAlign: 'center',
43
+ marginBottom: 12,
44
+ },
45
+ description: {
46
+ fontSize: 16,
47
+ color: '#6B7280',
48
+ textAlign: 'center',
49
+ lineHeight: 24,
50
+ marginBottom: 32,
51
+ },
52
+ });
53
+ export default ServiceUnavailableScreen;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { MaintenanceScreenProps } from '../../../types';
3
+ /**
4
+ * System Maintenance Screen Component
5
+ *
6
+ * Fully customizable maintenance screen.
7
+ * All content, countdown, actions, and support are configurable via props.
8
+ */
9
+ export declare const SystemMaintenanceScreen: React.FC<MaintenanceScreenProps>;