@procivis/one-react-native-components 0.3.95 → 0.3.102

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 (373) hide show
  1. package/lib/commonjs/components/backup/preview-credentials.js.map +1 -1
  2. package/lib/commonjs/components/credential/credential.js.map +1 -1
  3. package/lib/commonjs/components/entity/EntityButtons.js.map +1 -1
  4. package/lib/commonjs/components/entity/entity-attributes.js.map +1 -1
  5. package/lib/commonjs/components/entity/entity-details-with-buttons.js +2 -2
  6. package/lib/commonjs/components/entity/entity-details-with-buttons.js.map +1 -1
  7. package/lib/commonjs/components/entity/entity-details.js +3 -3
  8. package/lib/commonjs/components/entity/entity-details.js.map +1 -1
  9. package/lib/commonjs/components/history/history-details-screen.js +10 -10
  10. package/lib/commonjs/components/history/history-details-screen.js.map +1 -1
  11. package/lib/commonjs/components/history/history-list-item-icon.js +10 -8
  12. package/lib/commonjs/components/history/history-list-item-icon.js.map +1 -1
  13. package/lib/commonjs/components/history/history-list-item.js.map +1 -1
  14. package/lib/commonjs/components/history/history-list-screen.js +1 -0
  15. package/lib/commonjs/components/history/history-list-screen.js.map +1 -1
  16. package/lib/commonjs/components/history/history-list-section-header.js +1 -1
  17. package/lib/commonjs/components/history/history-list-section-header.js.map +1 -1
  18. package/lib/commonjs/components/history/history-list.js.map +1 -1
  19. package/lib/commonjs/components/proof-request/share-credential-card-notice.js.map +1 -1
  20. package/lib/commonjs/components/proof-request/v1/select-credential.js.map +1 -1
  21. package/lib/commonjs/components/proof-request/v1/share-credential.js +1 -1
  22. package/lib/commonjs/components/proof-request/v1/share-credential.js.map +1 -1
  23. package/lib/commonjs/components/proof-request/v2/select-credential-v2.js.map +1 -1
  24. package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js +3 -2
  25. package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js.map +1 -1
  26. package/lib/commonjs/components/proof-request/v2/share-credential-v2.js +3 -2
  27. package/lib/commonjs/components/proof-request/v2/share-credential-v2.js.map +1 -1
  28. package/lib/commonjs/ui-components/accessibility/accessibilityHistoryWrappers.js.map +1 -1
  29. package/lib/commonjs/ui-components/accessibility/locale/fi.json +1 -1
  30. package/lib/commonjs/ui-components/buttons/connectivity-button.js +1 -0
  31. package/lib/commonjs/ui-components/buttons/connectivity-button.js.map +1 -1
  32. package/lib/commonjs/ui-components/buttons/filter-button.js +1 -0
  33. package/lib/commonjs/ui-components/buttons/filter-button.js.map +1 -1
  34. package/lib/commonjs/ui-components/buttons/ghost-button.js +1 -0
  35. package/lib/commonjs/ui-components/buttons/ghost-button.js.map +1 -1
  36. package/lib/commonjs/ui-components/buttons/hold-button.js +1 -0
  37. package/lib/commonjs/ui-components/buttons/hold-button.js.map +1 -1
  38. package/lib/commonjs/ui-components/buttons/scan-button.js +3 -0
  39. package/lib/commonjs/ui-components/buttons/scan-button.js.map +1 -1
  40. package/lib/commonjs/ui-components/buttons/share-button.js +1 -0
  41. package/lib/commonjs/ui-components/buttons/share-button.js.map +1 -1
  42. package/lib/commonjs/ui-components/control/checkbox.js +1 -0
  43. package/lib/commonjs/ui-components/control/checkbox.js.map +1 -1
  44. package/lib/commonjs/ui-components/credential/card/credential-card.js +1 -0
  45. package/lib/commonjs/ui-components/credential/card/credential-card.js.map +1 -1
  46. package/lib/commonjs/ui-components/credential/card/credential-details-card.js +3 -1
  47. package/lib/commonjs/ui-components/credential/card/credential-details-card.js.map +1 -1
  48. package/lib/commonjs/ui-components/credential/card/credential-details-list-item.js +1 -0
  49. package/lib/commonjs/ui-components/credential/card/credential-details-list-item.js.map +1 -1
  50. package/lib/commonjs/ui-components/credential/card/credential-header.js +1 -0
  51. package/lib/commonjs/ui-components/credential/card/credential-header.js.map +1 -1
  52. package/lib/commonjs/ui-components/credential/card/credential-image-carousel.js +2 -0
  53. package/lib/commonjs/ui-components/credential/card/credential-image-carousel.js.map +1 -1
  54. package/lib/commonjs/ui-components/credential/credential-attribute-item.js +1 -0
  55. package/lib/commonjs/ui-components/credential/credential-attribute-item.js.map +1 -1
  56. package/lib/commonjs/ui-components/credential/credential-carousel-images.js +2 -1
  57. package/lib/commonjs/ui-components/credential/credential-carousel-images.js.map +1 -1
  58. package/lib/commonjs/ui-components/credential/selector.js +1 -0
  59. package/lib/commonjs/ui-components/credential/selector.js.map +1 -1
  60. package/lib/commonjs/ui-components/entity/avatar.js +1 -0
  61. package/lib/commonjs/ui-components/entity/avatar.js.map +1 -1
  62. package/lib/commonjs/ui-components/entity/entity-cluster.js.map +1 -1
  63. package/lib/commonjs/ui-components/header/foldable-header.js.map +1 -1
  64. package/lib/commonjs/ui-components/header/navigation-header.js +1 -0
  65. package/lib/commonjs/ui-components/header/navigation-header.js.map +1 -1
  66. package/lib/commonjs/ui-components/history/history-details.js +3 -1
  67. package/lib/commonjs/ui-components/history/history-details.js.map +1 -1
  68. package/lib/commonjs/ui-components/history/history-section-header.js +1 -1
  69. package/lib/commonjs/ui-components/history/history-section-header.js.map +1 -1
  70. package/lib/commonjs/ui-components/history/history-section-list-item.js +1 -1
  71. package/lib/commonjs/ui-components/history/history-section-list-item.js.map +1 -1
  72. package/lib/commonjs/ui-components/icons/entity.js.map +1 -1
  73. package/lib/commonjs/ui-components/icons/history.js +1 -0
  74. package/lib/commonjs/ui-components/icons/history.js.map +1 -1
  75. package/lib/commonjs/ui-components/pin/keypad.js +1 -0
  76. package/lib/commonjs/ui-components/pin/keypad.js.map +1 -1
  77. package/lib/commonjs/ui-components/pin/pins.js +1 -0
  78. package/lib/commonjs/ui-components/pin/pins.js.map +1 -1
  79. package/lib/commonjs/ui-components/screens/nerd-mode-screen.js.map +1 -1
  80. package/lib/commonjs/ui-components/screens/section-list-screen.js.map +1 -1
  81. package/lib/commonjs/ui-components/settings/button-setting.js +3 -1
  82. package/lib/commonjs/ui-components/settings/button-setting.js.map +1 -1
  83. package/lib/commonjs/ui-components/settings/setting-item.js +5 -2
  84. package/lib/commonjs/ui-components/settings/setting-item.js.map +1 -1
  85. package/lib/commonjs/ui-components/settings/settings-button.js +1 -0
  86. package/lib/commonjs/ui-components/settings/settings-button.js.map +1 -1
  87. package/lib/commonjs/ui-components/settings/switch-setting.js +4 -2
  88. package/lib/commonjs/ui-components/settings/switch-setting.js.map +1 -1
  89. package/lib/commonjs/utils/date.js.map +1 -1
  90. package/lib/commonjs/utils/history.js.map +1 -1
  91. package/lib/commonjs/utils/hooks/connectivity/connectivity.test.js.map +1 -1
  92. package/lib/commonjs/utils/hooks/core/backup.js +3 -3
  93. package/lib/commonjs/utils/hooks/core/backup.js.map +1 -1
  94. package/lib/commonjs/utils/hooks/core/cache.js +10 -10
  95. package/lib/commonjs/utils/hooks/core/cache.js.map +1 -1
  96. package/lib/commonjs/utils/hooks/core/core-context.js +5 -5
  97. package/lib/commonjs/utils/hooks/core/core-context.js.map +1 -1
  98. package/lib/commonjs/utils/hooks/core/credential-schemas.js.map +1 -1
  99. package/lib/commonjs/utils/hooks/core/credentials.js +3 -3
  100. package/lib/commonjs/utils/hooks/core/credentials.js.map +1 -1
  101. package/lib/commonjs/utils/hooks/core/dids.js +1 -1
  102. package/lib/commonjs/utils/hooks/core/dids.js.map +1 -1
  103. package/lib/commonjs/utils/hooks/core/history.js +1 -1
  104. package/lib/commonjs/utils/hooks/core/history.js.map +1 -1
  105. package/lib/commonjs/utils/hooks/core/identifiers.js +3 -3
  106. package/lib/commonjs/utils/hooks/core/identifiers.js.map +1 -1
  107. package/lib/commonjs/utils/hooks/core/proof-schemas.js.map +1 -1
  108. package/lib/commonjs/utils/hooks/core/proofs.js +9 -9
  109. package/lib/commonjs/utils/hooks/core/proofs.js.map +1 -1
  110. package/lib/commonjs/utils/hooks/core/trust-entity.js +5 -5
  111. package/lib/commonjs/utils/hooks/core/trust-entity.js.map +1 -1
  112. package/lib/commonjs/utils/hooks/core/wallet-unit.js +1 -1
  113. package/lib/commonjs/utils/hooks/core/wallet-unit.js.map +1 -1
  114. package/lib/commonjs/utils/hooks/navigation/open-settings.js.map +1 -1
  115. package/lib/commonjs/utils/hooks/revocation/credential-status.js +1 -1
  116. package/lib/commonjs/utils/hooks/revocation/credential-status.js.map +1 -1
  117. package/lib/commonjs/utils/parsers/credential-images.js +11 -10
  118. package/lib/commonjs/utils/parsers/credential-images.js.map +1 -1
  119. package/lib/commonjs/utils/parsers/credential-sharing-v2.js +11 -8
  120. package/lib/commonjs/utils/parsers/credential-sharing-v2.js.map +1 -1
  121. package/lib/commonjs/utils/parsers/credential-sharing.js +2 -2
  122. package/lib/commonjs/utils/parsers/credential-sharing.js.map +1 -1
  123. package/lib/commonjs/utils/parsers/credential.js +29 -16
  124. package/lib/commonjs/utils/parsers/credential.js.map +1 -1
  125. package/lib/commonjs/utils/parsers/query.js.map +1 -1
  126. package/lib/commonjs/utils/url.js.map +1 -1
  127. package/lib/module/components/backup/preview-credentials.js.map +1 -1
  128. package/lib/module/components/credential/credential.js.map +1 -1
  129. package/lib/module/components/entity/EntityButtons.js.map +1 -1
  130. package/lib/module/components/entity/entity-attributes.js.map +1 -1
  131. package/lib/module/components/entity/entity-details-with-buttons.js +3 -3
  132. package/lib/module/components/entity/entity-details-with-buttons.js.map +1 -1
  133. package/lib/module/components/entity/entity-details.js +4 -4
  134. package/lib/module/components/entity/entity-details.js.map +1 -1
  135. package/lib/module/components/history/history-details-screen.js +11 -11
  136. package/lib/module/components/history/history-details-screen.js.map +1 -1
  137. package/lib/module/components/history/history-list-item-icon.js +11 -9
  138. package/lib/module/components/history/history-list-item-icon.js.map +1 -1
  139. package/lib/module/components/history/history-list-item.js.map +1 -1
  140. package/lib/module/components/history/history-list-screen.js +1 -0
  141. package/lib/module/components/history/history-list-screen.js.map +1 -1
  142. package/lib/module/components/history/history-list-section-header.js +1 -1
  143. package/lib/module/components/history/history-list-section-header.js.map +1 -1
  144. package/lib/module/components/history/history-list.js.map +1 -1
  145. package/lib/module/components/proof-request/share-credential-card-notice.js.map +1 -1
  146. package/lib/module/components/proof-request/v1/select-credential.js.map +1 -1
  147. package/lib/module/components/proof-request/v1/share-credential.js +2 -2
  148. package/lib/module/components/proof-request/v1/share-credential.js.map +1 -1
  149. package/lib/module/components/proof-request/v2/select-credential-v2.js.map +1 -1
  150. package/lib/module/components/proof-request/v2/share-credential-v2-group.js +3 -2
  151. package/lib/module/components/proof-request/v2/share-credential-v2-group.js.map +1 -1
  152. package/lib/module/components/proof-request/v2/share-credential-v2.js +3 -2
  153. package/lib/module/components/proof-request/v2/share-credential-v2.js.map +1 -1
  154. package/lib/module/ui-components/accessibility/accessibilityHistoryWrappers.js.map +1 -1
  155. package/lib/module/ui-components/accessibility/locale/fi.json +1 -1
  156. package/lib/module/ui-components/buttons/connectivity-button.js +1 -0
  157. package/lib/module/ui-components/buttons/connectivity-button.js.map +1 -1
  158. package/lib/module/ui-components/buttons/filter-button.js +1 -0
  159. package/lib/module/ui-components/buttons/filter-button.js.map +1 -1
  160. package/lib/module/ui-components/buttons/ghost-button.js +1 -0
  161. package/lib/module/ui-components/buttons/ghost-button.js.map +1 -1
  162. package/lib/module/ui-components/buttons/hold-button.js +1 -0
  163. package/lib/module/ui-components/buttons/hold-button.js.map +1 -1
  164. package/lib/module/ui-components/buttons/scan-button.js +3 -0
  165. package/lib/module/ui-components/buttons/scan-button.js.map +1 -1
  166. package/lib/module/ui-components/buttons/share-button.js +1 -0
  167. package/lib/module/ui-components/buttons/share-button.js.map +1 -1
  168. package/lib/module/ui-components/control/checkbox.js +1 -0
  169. package/lib/module/ui-components/control/checkbox.js.map +1 -1
  170. package/lib/module/ui-components/credential/card/credential-card.js +1 -0
  171. package/lib/module/ui-components/credential/card/credential-card.js.map +1 -1
  172. package/lib/module/ui-components/credential/card/credential-details-card.js +3 -1
  173. package/lib/module/ui-components/credential/card/credential-details-card.js.map +1 -1
  174. package/lib/module/ui-components/credential/card/credential-details-list-item.js +1 -0
  175. package/lib/module/ui-components/credential/card/credential-details-list-item.js.map +1 -1
  176. package/lib/module/ui-components/credential/card/credential-header.js +1 -0
  177. package/lib/module/ui-components/credential/card/credential-header.js.map +1 -1
  178. package/lib/module/ui-components/credential/card/credential-image-carousel.js +2 -0
  179. package/lib/module/ui-components/credential/card/credential-image-carousel.js.map +1 -1
  180. package/lib/module/ui-components/credential/credential-attribute-item.js +1 -0
  181. package/lib/module/ui-components/credential/credential-attribute-item.js.map +1 -1
  182. package/lib/module/ui-components/credential/credential-carousel-images.js +2 -1
  183. package/lib/module/ui-components/credential/credential-carousel-images.js.map +1 -1
  184. package/lib/module/ui-components/credential/selector.js +1 -0
  185. package/lib/module/ui-components/credential/selector.js.map +1 -1
  186. package/lib/module/ui-components/entity/avatar.js +1 -0
  187. package/lib/module/ui-components/entity/avatar.js.map +1 -1
  188. package/lib/module/ui-components/entity/entity-cluster.js.map +1 -1
  189. package/lib/module/ui-components/header/foldable-header.js.map +1 -1
  190. package/lib/module/ui-components/header/navigation-header.js +1 -0
  191. package/lib/module/ui-components/header/navigation-header.js.map +1 -1
  192. package/lib/module/ui-components/history/history-details.js +3 -1
  193. package/lib/module/ui-components/history/history-details.js.map +1 -1
  194. package/lib/module/ui-components/history/history-section-header.js +1 -1
  195. package/lib/module/ui-components/history/history-section-header.js.map +1 -1
  196. package/lib/module/ui-components/history/history-section-list-item.js +1 -1
  197. package/lib/module/ui-components/history/history-section-list-item.js.map +1 -1
  198. package/lib/module/ui-components/icons/entity.js.map +1 -1
  199. package/lib/module/ui-components/icons/history.js +1 -0
  200. package/lib/module/ui-components/icons/history.js.map +1 -1
  201. package/lib/module/ui-components/pin/keypad.js +1 -0
  202. package/lib/module/ui-components/pin/keypad.js.map +1 -1
  203. package/lib/module/ui-components/pin/pins.js +1 -0
  204. package/lib/module/ui-components/pin/pins.js.map +1 -1
  205. package/lib/module/ui-components/screens/nerd-mode-screen.js.map +1 -1
  206. package/lib/module/ui-components/screens/section-list-screen.js.map +1 -1
  207. package/lib/module/ui-components/settings/button-setting.js +3 -1
  208. package/lib/module/ui-components/settings/button-setting.js.map +1 -1
  209. package/lib/module/ui-components/settings/setting-item.js +5 -2
  210. package/lib/module/ui-components/settings/setting-item.js.map +1 -1
  211. package/lib/module/ui-components/settings/settings-button.js +1 -0
  212. package/lib/module/ui-components/settings/settings-button.js.map +1 -1
  213. package/lib/module/ui-components/settings/switch-setting.js +4 -2
  214. package/lib/module/ui-components/settings/switch-setting.js.map +1 -1
  215. package/lib/module/utils/date.js.map +1 -1
  216. package/lib/module/utils/history.js.map +1 -1
  217. package/lib/module/utils/hooks/connectivity/connectivity.test.js.map +1 -1
  218. package/lib/module/utils/hooks/core/backup.js +4 -4
  219. package/lib/module/utils/hooks/core/backup.js.map +1 -1
  220. package/lib/module/utils/hooks/core/cache.js +11 -11
  221. package/lib/module/utils/hooks/core/cache.js.map +1 -1
  222. package/lib/module/utils/hooks/core/core-context.js +5 -5
  223. package/lib/module/utils/hooks/core/core-context.js.map +1 -1
  224. package/lib/module/utils/hooks/core/credential-schemas.js.map +1 -1
  225. package/lib/module/utils/hooks/core/credentials.js +4 -4
  226. package/lib/module/utils/hooks/core/credentials.js.map +1 -1
  227. package/lib/module/utils/hooks/core/dids.js +2 -2
  228. package/lib/module/utils/hooks/core/dids.js.map +1 -1
  229. package/lib/module/utils/hooks/core/history.js +1 -1
  230. package/lib/module/utils/hooks/core/history.js.map +1 -1
  231. package/lib/module/utils/hooks/core/identifiers.js +4 -4
  232. package/lib/module/utils/hooks/core/identifiers.js.map +1 -1
  233. package/lib/module/utils/hooks/core/proof-schemas.js.map +1 -1
  234. package/lib/module/utils/hooks/core/proofs.js +10 -10
  235. package/lib/module/utils/hooks/core/proofs.js.map +1 -1
  236. package/lib/module/utils/hooks/core/trust-entity.js +6 -6
  237. package/lib/module/utils/hooks/core/trust-entity.js.map +1 -1
  238. package/lib/module/utils/hooks/core/wallet-unit.js +2 -2
  239. package/lib/module/utils/hooks/core/wallet-unit.js.map +1 -1
  240. package/lib/module/utils/hooks/navigation/open-settings.js.map +1 -1
  241. package/lib/module/utils/hooks/revocation/credential-status.js +2 -2
  242. package/lib/module/utils/hooks/revocation/credential-status.js.map +1 -1
  243. package/lib/module/utils/parsers/credential-images.js +12 -11
  244. package/lib/module/utils/parsers/credential-images.js.map +1 -1
  245. package/lib/module/utils/parsers/credential-sharing-v2.js +11 -8
  246. package/lib/module/utils/parsers/credential-sharing-v2.js.map +1 -1
  247. package/lib/module/utils/parsers/credential-sharing.js +2 -2
  248. package/lib/module/utils/parsers/credential-sharing.js.map +1 -1
  249. package/lib/module/utils/parsers/credential.js +30 -17
  250. package/lib/module/utils/parsers/credential.js.map +1 -1
  251. package/lib/module/utils/parsers/query.js.map +1 -1
  252. package/lib/module/utils/url.js.map +1 -1
  253. package/lib/typescript/components/backup/preview-credentials.d.ts +2 -2
  254. package/lib/typescript/components/credential/credential.d.ts +2 -2
  255. package/lib/typescript/components/entity/EntityButtons.d.ts +2 -2
  256. package/lib/typescript/components/entity/entity-attributes.d.ts +2 -2
  257. package/lib/typescript/components/entity/entity-details-with-buttons.d.ts +3 -3
  258. package/lib/typescript/components/entity/entity-details.d.ts +5 -5
  259. package/lib/typescript/components/history/history-details-screen.d.ts +2 -2
  260. package/lib/typescript/components/history/history-list-item-icon.d.ts +3 -3
  261. package/lib/typescript/components/history/history-list-item.d.ts +5 -5
  262. package/lib/typescript/components/history/history-list-screen.d.ts +4 -4
  263. package/lib/typescript/components/history/history-list.d.ts +5 -5
  264. package/lib/typescript/components/proof-request/v1/select-credential.d.ts +2 -2
  265. package/lib/typescript/components/proof-request/v1/share-credential.d.ts +6 -6
  266. package/lib/typescript/components/proof-request/v2/select-credential-v2.d.ts +3 -3
  267. package/lib/typescript/components/proof-request/v2/share-credential-v2-group.d.ts +4 -4
  268. package/lib/typescript/components/proof-request/v2/share-credential-v2.d.ts +5 -5
  269. package/lib/typescript/ui-components/screens/nerd-mode-screen.d.ts +2 -2
  270. package/lib/typescript/ui-components/settings/setting-item.d.ts +1 -0
  271. package/lib/typescript/utils/history.d.ts +3 -3
  272. package/lib/typescript/utils/hooks/core/backup.d.ts +3 -3
  273. package/lib/typescript/utils/hooks/core/cache.d.ts +2 -2
  274. package/lib/typescript/utils/hooks/core/core-context.d.ts +1 -1
  275. package/lib/typescript/utils/hooks/core/credential-schemas.d.ts +6 -6
  276. package/lib/typescript/utils/hooks/core/credentials.d.ts +8 -8
  277. package/lib/typescript/utils/hooks/core/dids.d.ts +2 -2
  278. package/lib/typescript/utils/hooks/core/history.d.ts +2 -2
  279. package/lib/typescript/utils/hooks/core/identifiers.d.ts +3 -3
  280. package/lib/typescript/utils/hooks/core/proof-schemas.d.ts +7 -7
  281. package/lib/typescript/utils/hooks/core/proofs.d.ts +9 -9
  282. package/lib/typescript/utils/hooks/core/trust-entity.d.ts +6 -6
  283. package/lib/typescript/utils/hooks/core/wallet-unit.d.ts +5 -5
  284. package/lib/typescript/utils/parsers/credential-images.d.ts +2 -2
  285. package/lib/typescript/utils/parsers/credential-sharing-v2.d.ts +7 -7
  286. package/lib/typescript/utils/parsers/credential-sharing.d.ts +8 -8
  287. package/lib/typescript/utils/parsers/credential.d.ts +11 -37
  288. package/lib/typescript/utils/parsers/query.d.ts +8 -8
  289. package/package.json +6 -4
  290. package/src/components/backup/preview-credentials.tsx +2 -2
  291. package/src/components/credential/credential.tsx +2 -2
  292. package/src/components/entity/EntityButtons.tsx +2 -2
  293. package/src/components/entity/entity-attributes.tsx +4 -4
  294. package/src/components/entity/entity-details-with-buttons.tsx +11 -6
  295. package/src/components/entity/entity-details.tsx +17 -16
  296. package/src/components/history/history-details-screen.tsx +13 -16
  297. package/src/components/history/history-list-item-icon.tsx +17 -11
  298. package/src/components/history/history-list-item.tsx +9 -5
  299. package/src/components/history/history-list-screen.tsx +5 -4
  300. package/src/components/history/history-list-section-header.tsx +1 -1
  301. package/src/components/history/history-list.tsx +6 -6
  302. package/src/components/proof-request/share-credential-card-notice.tsx +1 -1
  303. package/src/components/proof-request/v1/select-credential.tsx +2 -2
  304. package/src/components/proof-request/v1/share-credential.tsx +13 -11
  305. package/src/components/proof-request/v2/select-credential-v2.tsx +6 -3
  306. package/src/components/proof-request/v2/share-credential-v2-group.tsx +13 -12
  307. package/src/components/proof-request/v2/share-credential-v2.tsx +12 -11
  308. package/src/ui-components/accessibility/accessibilityHistoryWrappers.tsx +4 -1
  309. package/src/ui-components/accessibility/locale/fi.json +1 -1
  310. package/src/ui-components/buttons/connectivity-button.tsx +1 -0
  311. package/src/ui-components/buttons/filter-button.tsx +1 -0
  312. package/src/ui-components/buttons/ghost-button.stories.tsx +0 -1
  313. package/src/ui-components/buttons/ghost-button.tsx +1 -0
  314. package/src/ui-components/buttons/hold-button.tsx +1 -0
  315. package/src/ui-components/buttons/scan-button.tsx +3 -0
  316. package/src/ui-components/buttons/share-button.tsx +1 -0
  317. package/src/ui-components/control/checkbox.stories.tsx +1 -1
  318. package/src/ui-components/control/checkbox.tsx +1 -0
  319. package/src/ui-components/control/switch.stories.tsx +1 -1
  320. package/src/ui-components/credential/card/credential-card.tsx +1 -0
  321. package/src/ui-components/credential/card/credential-details-card.tsx +2 -0
  322. package/src/ui-components/credential/card/credential-details-list-item.tsx +1 -0
  323. package/src/ui-components/credential/card/credential-header.stories.tsx +0 -1
  324. package/src/ui-components/credential/card/credential-header.tsx +1 -0
  325. package/src/ui-components/credential/card/credential-image-carousel.tsx +2 -2
  326. package/src/ui-components/credential/credential-attribute-item.tsx +1 -0
  327. package/src/ui-components/credential/credential-carousel-images.tsx +1 -0
  328. package/src/ui-components/credential/selector.tsx +1 -0
  329. package/src/ui-components/entity/avatar.tsx +1 -0
  330. package/src/ui-components/entity/entity-cluster.tsx +7 -6
  331. package/src/ui-components/header/foldable-header.tsx +8 -11
  332. package/src/ui-components/header/navigation-header.tsx +1 -0
  333. package/src/ui-components/history/history-details.tsx +2 -0
  334. package/src/ui-components/history/history-section-header.tsx +1 -1
  335. package/src/ui-components/history/history-section-list-item.tsx +1 -1
  336. package/src/ui-components/icons/entity.tsx +2 -2
  337. package/src/ui-components/icons/history.tsx +1 -0
  338. package/src/ui-components/pin/keypad.tsx +1 -0
  339. package/src/ui-components/pin/pin-code-screen.stories.tsx +1 -1
  340. package/src/ui-components/pin/pins.tsx +1 -0
  341. package/src/ui-components/screens/image-preview-screen.stories.tsx +1 -1
  342. package/src/ui-components/screens/nerd-mode-screen.tsx +2 -2
  343. package/src/ui-components/screens/qr-code-scanner-screen.stories.tsx +1 -1
  344. package/src/ui-components/screens/section-list-screen.tsx +10 -1
  345. package/src/ui-components/searchbar/search-bar.stories.tsx +0 -1
  346. package/src/ui-components/settings/button-setting.tsx +2 -1
  347. package/src/ui-components/settings/setting-item.tsx +10 -2
  348. package/src/ui-components/settings/settings-button.tsx +1 -0
  349. package/src/ui-components/settings/switch-setting.tsx +9 -2
  350. package/src/ui-components/text/typography.stories.tsx +2 -2
  351. package/src/utils/date.ts +2 -2
  352. package/src/utils/history.ts +4 -4
  353. package/src/utils/hooks/connectivity/connectivity.test.ts +2 -2
  354. package/src/utils/hooks/core/backup.ts +4 -4
  355. package/src/utils/hooks/core/cache.ts +13 -13
  356. package/src/utils/hooks/core/core-context.tsx +6 -6
  357. package/src/utils/hooks/core/credential-schemas.ts +7 -4
  358. package/src/utils/hooks/core/credentials.ts +21 -13
  359. package/src/utils/hooks/core/dids.ts +3 -3
  360. package/src/utils/hooks/core/history.ts +3 -3
  361. package/src/utils/hooks/core/identifiers.ts +9 -5
  362. package/src/utils/hooks/core/proof-schemas.ts +21 -16
  363. package/src/utils/hooks/core/proofs.ts +31 -27
  364. package/src/utils/hooks/core/trust-entity.ts +19 -12
  365. package/src/utils/hooks/core/wallet-unit.ts +21 -11
  366. package/src/utils/hooks/navigation/open-settings.ts +1 -1
  367. package/src/utils/hooks/revocation/credential-status.ts +2 -2
  368. package/src/utils/parsers/credential-images.tsx +19 -13
  369. package/src/utils/parsers/credential-sharing-v2.tsx +29 -24
  370. package/src/utils/parsers/credential-sharing.tsx +24 -24
  371. package/src/utils/parsers/credential.ts +63 -40
  372. package/src/utils/parsers/query.ts +16 -14
  373. package/src/utils/url.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useMemo","Dimensions","StyleSheet","CredentialDetailsCardListItem","useAppColorScheme","concatTestID","getValidityState","useCoreConfig","ValidityState","shareCredentialCardFromV2PresentationCredential","SelectShareCredentialCardNotice","ShareCredentialCardNotice","GroupedShareCredentialV2Padding","ShareCredentialV2","credentialQuery","credentialRequestId","expanded","grouped","headerAccessory","labels","lastItem","onHeaderPress","onImagePreview","onSelectCredential","onSelectField","selectedCredentialId","selectedFields","style","testID","_applicableCredential","_credential$issuer","colorScheme","applicableCredentials","undefined","failureHint","credential","find","c","id","data","config","cardWidth","get","width","multipleCredentialsAvailable","Boolean","length","validityState","issuer","footer","Revoked","createElement","text","revokedCredentialNotice","Suspended","suspendedCredentialNotice","reason","invalidCredentialNotice","buttonTitle","multipleCredentialsSelect","onPress","multipleCredentialsNotice","onAttributeSelected","fieldPath","selected","card","header","attributes","accessory","credentialId","styles","groupedCredential","bordered","borderColor","background","create","borderWidth","borderRadius","marginBottom","marginHorizontal"],"sources":["share-credential-v2.tsx"],"sourcesContent":["import {\n CredentialListItem,\n PresentationDefinitionV2CredentialClaim,\n PresentationDefinitionV2CredentialQuery,\n} from '@procivis/react-native-one-core';\nimport React, { FunctionComponent, useCallback, useMemo } from 'react';\nimport { Dimensions, ImageSourcePropType, StyleProp, StyleSheet, ViewStyle } from 'react-native';\n\nimport { CredentialDetailsCardListItem, useAppColorScheme } from '../../../ui-components';\nimport { concatTestID, getValidityState, useCoreConfig, ValidityState } from '../../../utils';\nimport { shareCredentialCardFromV2PresentationCredential } from '../../../utils/parsers/credential-sharing-v2';\nimport { SelectShareCredentialCardNotice } from '../select-share-credential-card-notice';\nimport { ShareCredentialCardNotice } from '../share-credential-card-notice';\nimport { ShareCredentialLabels } from '../v1';\n\nexport type ShareCredentialV2Props = {\n credentialQuery: PresentationDefinitionV2CredentialQuery;\n credentialRequestId: string;\n expanded?: boolean;\n grouped?: boolean;\n headerAccessory?: React.ComponentType<any> | React.ReactElement;\n labels: ShareCredentialLabels;\n lastItem?: boolean;\n onHeaderPress?: (_credentialId?: string) => void;\n onImagePreview: (title: string, image: ImageSourcePropType) => void;\n onSelectCredential?: () => void;\n onSelectField: (\n credentialId: CredentialListItem['id'],\n fieldPath: PresentationDefinitionV2CredentialClaim['path'],\n selected: boolean,\n ) => void;\n selectedCredentialId?: CredentialListItem['id'];\n selectedFields?: Array<PresentationDefinitionV2CredentialClaim['path']>;\n style?: StyleProp<ViewStyle>;\n testID: string;\n};\n\nexport const GroupedShareCredentialV2Padding = 4;\n\nexport const ShareCredentialV2: FunctionComponent<ShareCredentialV2Props> = ({\n credentialQuery,\n credentialRequestId,\n expanded,\n grouped,\n headerAccessory,\n labels,\n lastItem,\n onHeaderPress,\n onImagePreview,\n onSelectCredential,\n onSelectField,\n selectedCredentialId,\n selectedFields,\n style,\n testID,\n}) => {\n const colorScheme = useAppColorScheme();\n const applicableCredentials =\n 'applicableCredentials' in credentialQuery ? credentialQuery.applicableCredentials : undefined;\n const failureHint = 'failureHint' in credentialQuery ? credentialQuery.failureHint : undefined;\n const credential = applicableCredentials?.find((c) => c.id === selectedCredentialId) ?? applicableCredentials?.[0];\n const { data: config } = useCoreConfig();\n const cardWidth = useMemo(\n () => Dimensions.get('window').width - 32 - (grouped ? GroupedShareCredentialV2Padding * 2 : 0),\n [grouped],\n );\n\n const multipleCredentialsAvailable = Boolean(applicableCredentials?.length && applicableCredentials.length > 1);\n\n const validityState = getValidityState(\n credential\n ? {\n ...credential,\n issuer: credential?.issuer?.id,\n }\n : undefined,\n );\n\n const footer = useMemo(() => {\n if (!expanded) {\n return;\n }\n if (validityState === ValidityState.Revoked) {\n return (\n <ShareCredentialCardNotice\n testID={concatTestID(testID, 'notice.revoked')}\n text={labels.revokedCredentialNotice}\n />\n );\n }\n if (validityState === ValidityState.Suspended) {\n return (\n <ShareCredentialCardNotice\n testID={concatTestID(testID, 'notice.suspended')}\n text={labels.suspendedCredentialNotice}\n />\n );\n }\n\n if (failureHint?.reason === 'VALIDITY') {\n return (\n <ShareCredentialCardNotice\n testID={concatTestID(testID, 'notice.invalid')}\n text={labels.invalidCredentialNotice}\n />\n );\n }\n\n if (multipleCredentialsAvailable) {\n return (\n <SelectShareCredentialCardNotice\n buttonTitle={labels.multipleCredentialsSelect}\n onPress={onSelectCredential}\n testID={concatTestID(testID, 'notice.multiple')}\n text={labels.multipleCredentialsNotice}\n />\n );\n }\n }, [\n expanded,\n failureHint?.reason,\n labels.invalidCredentialNotice,\n labels.multipleCredentialsNotice,\n labels.multipleCredentialsSelect,\n labels.revokedCredentialNotice,\n labels.suspendedCredentialNotice,\n multipleCredentialsAvailable,\n onSelectCredential,\n testID,\n validityState,\n ]);\n\n const onAttributeSelected = useCallback(\n (fieldPath: PresentationDefinitionV2CredentialClaim['path'], selected: boolean) => {\n if (!selectedCredentialId) {\n return;\n }\n onSelectField(selectedCredentialId, fieldPath, selected);\n },\n [onSelectField, selectedCredentialId],\n );\n\n if (!config) {\n return null;\n }\n\n const {\n card: { header, ...card },\n attributes,\n } = shareCredentialCardFromV2PresentationCredential(\n credential,\n failureHint,\n Boolean(expanded),\n multipleCredentialsAvailable,\n selectedFields,\n config,\n testID,\n labels,\n );\n\n if (headerAccessory) {\n header.accessory = headerAccessory;\n }\n\n return (\n <CredentialDetailsCardListItem\n attributes={attributes}\n card={{\n ...card,\n credentialId: credentialRequestId,\n header,\n onHeaderPress,\n width: cardWidth,\n }}\n expanded={expanded}\n footer={footer}\n lastItem={lastItem}\n onAttributeSelected={onAttributeSelected}\n onImagePreview={onImagePreview}\n style={[\n styles.credential,\n grouped ? styles.groupedCredential : styles.bordered,\n { borderColor: colorScheme.background },\n style,\n ]}\n testID={testID}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n bordered: {\n borderWidth: 1,\n },\n credential: {\n borderRadius: 10,\n marginBottom: 8,\n },\n groupedCredential: {\n marginHorizontal: GroupedShareCredentialV2Padding,\n },\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useMemo","Dimensions","StyleSheet","CredentialDetailsCardListItem","useAppColorScheme","concatTestID","getValidityState","useCoreConfig","ValidityState","shareCredentialCardFromV2PresentationCredential","SelectShareCredentialCardNotice","ShareCredentialCardNotice","GroupedShareCredentialV2Padding","ShareCredentialV2","credentialQuery","credentialRequestId","expanded","grouped","headerAccessory","labels","lastItem","onHeaderPress","onImagePreview","onSelectCredential","onSelectField","selectedCredentialId","selectedFields","style","testID","_applicableCredential","_credential$issuer","colorScheme","applicableCredentials","type_","undefined","failureHint","credential","find","c","id","data","config","cardWidth","get","width","multipleCredentialsAvailable","Boolean","length","validityState","issuer","footer","Revoked","createElement","text","revokedCredentialNotice","Suspended","suspendedCredentialNotice","reason","invalidCredentialNotice","buttonTitle","multipleCredentialsSelect","onPress","multipleCredentialsNotice","onAttributeSelected","fieldPath","selected","card","header","attributes","accessory","credentialId","styles","groupedCredential","bordered","borderColor","background","create","borderWidth","borderRadius","marginBottom","marginHorizontal"],"sources":["share-credential-v2.tsx"],"sourcesContent":["import {\n ApplicableCredentialOrFailureHintBindingEnum,\n CredentialListItemBindingDto,\n PresentationDefinitionV2ClaimBindingDto,\n} from '@procivis/react-native-one-core';\nimport React, { FunctionComponent, useCallback, useMemo } from 'react';\nimport { Dimensions, ImageSourcePropType, StyleProp, StyleSheet, ViewStyle } from 'react-native';\n\nimport { CredentialDetailsCardListItem, useAppColorScheme } from '../../../ui-components';\nimport { concatTestID, getValidityState, useCoreConfig, ValidityState } from '../../../utils';\nimport { shareCredentialCardFromV2PresentationCredential } from '../../../utils/parsers/credential-sharing-v2';\nimport { SelectShareCredentialCardNotice } from '../select-share-credential-card-notice';\nimport { ShareCredentialCardNotice } from '../share-credential-card-notice';\nimport { ShareCredentialLabels } from '../v1';\n\nexport type ShareCredentialV2Props = {\n credentialQuery: ApplicableCredentialOrFailureHintBindingEnum;\n credentialRequestId: string;\n expanded?: boolean;\n grouped?: boolean;\n headerAccessory?: React.ComponentType<any> | React.ReactElement;\n labels: ShareCredentialLabels;\n lastItem?: boolean;\n onHeaderPress?: (_credentialId?: string) => void;\n onImagePreview: (title: string, image: ImageSourcePropType) => void;\n onSelectCredential?: () => void;\n onSelectField: (\n credentialId: CredentialListItemBindingDto['id'],\n fieldPath: PresentationDefinitionV2ClaimBindingDto['path'],\n selected: boolean,\n ) => void;\n selectedCredentialId?: CredentialListItemBindingDto['id'];\n selectedFields?: Array<PresentationDefinitionV2ClaimBindingDto['path']>;\n style?: StyleProp<ViewStyle>;\n testID: string;\n};\n\nexport const GroupedShareCredentialV2Padding = 4;\n\nexport const ShareCredentialV2: FunctionComponent<ShareCredentialV2Props> = ({\n credentialQuery,\n credentialRequestId,\n expanded,\n grouped,\n headerAccessory,\n labels,\n lastItem,\n onHeaderPress,\n onImagePreview,\n onSelectCredential,\n onSelectField,\n selectedCredentialId,\n selectedFields,\n style,\n testID,\n}) => {\n const colorScheme = useAppColorScheme();\n const applicableCredentials =\n credentialQuery.type_ === 'APPLICABLE_CREDENTIALS' ? credentialQuery.applicableCredentials : undefined;\n const failureHint = credentialQuery.type_ === 'FAILURE_HINT' ? credentialQuery.failureHint : undefined;\n const credential = applicableCredentials?.find((c) => c.id === selectedCredentialId) ?? applicableCredentials?.[0];\n const { data: config } = useCoreConfig();\n const cardWidth = useMemo(\n () => Dimensions.get('window').width - 32 - (grouped ? GroupedShareCredentialV2Padding * 2 : 0),\n [grouped],\n );\n\n const multipleCredentialsAvailable = Boolean(applicableCredentials?.length && applicableCredentials.length > 1);\n\n const validityState = getValidityState(\n credential\n ? {\n ...credential,\n issuer: credential?.issuer?.id,\n }\n : undefined,\n );\n\n const footer = useMemo(() => {\n if (!expanded) {\n return;\n }\n if (validityState === ValidityState.Revoked) {\n return (\n <ShareCredentialCardNotice\n testID={concatTestID(testID, 'notice.revoked')}\n text={labels.revokedCredentialNotice}\n />\n );\n }\n if (validityState === ValidityState.Suspended) {\n return (\n <ShareCredentialCardNotice\n testID={concatTestID(testID, 'notice.suspended')}\n text={labels.suspendedCredentialNotice}\n />\n );\n }\n\n if (failureHint?.reason === 'VALIDITY') {\n return (\n <ShareCredentialCardNotice\n testID={concatTestID(testID, 'notice.invalid')}\n text={labels.invalidCredentialNotice}\n />\n );\n }\n\n if (multipleCredentialsAvailable) {\n return (\n <SelectShareCredentialCardNotice\n buttonTitle={labels.multipleCredentialsSelect}\n onPress={onSelectCredential}\n testID={concatTestID(testID, 'notice.multiple')}\n text={labels.multipleCredentialsNotice}\n />\n );\n }\n }, [\n expanded,\n failureHint?.reason,\n labels.invalidCredentialNotice,\n labels.multipleCredentialsNotice,\n labels.multipleCredentialsSelect,\n labels.revokedCredentialNotice,\n labels.suspendedCredentialNotice,\n multipleCredentialsAvailable,\n onSelectCredential,\n testID,\n validityState,\n ]);\n\n const onAttributeSelected = useCallback(\n (fieldPath: PresentationDefinitionV2ClaimBindingDto['path'], selected: boolean) => {\n if (!selectedCredentialId) {\n return;\n }\n onSelectField(selectedCredentialId, fieldPath, selected);\n },\n [onSelectField, selectedCredentialId],\n );\n\n if (!config) {\n return null;\n }\n\n const {\n card: { header, ...card },\n attributes,\n } = shareCredentialCardFromV2PresentationCredential(\n credential,\n failureHint,\n Boolean(expanded),\n multipleCredentialsAvailable,\n selectedFields,\n config,\n testID,\n labels,\n );\n\n if (headerAccessory) {\n header.accessory = headerAccessory;\n }\n\n return (\n <CredentialDetailsCardListItem\n attributes={attributes}\n card={{\n ...card,\n credentialId: credentialRequestId,\n header,\n onHeaderPress,\n width: cardWidth,\n }}\n expanded={expanded}\n footer={footer}\n lastItem={lastItem}\n onAttributeSelected={onAttributeSelected}\n onImagePreview={onImagePreview}\n style={[\n styles.credential,\n grouped ? styles.groupedCredential : styles.bordered,\n { borderColor: colorScheme.background },\n style,\n ]}\n testID={testID}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n bordered: {\n borderWidth: 1,\n },\n credential: {\n borderRadius: 10,\n borderWidth: 0,\n marginBottom: 8,\n },\n groupedCredential: {\n marginHorizontal: GroupedShareCredentialV2Padding,\n },\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","forwardRef","Pressable","RNPressable","TouchableHighlight","RNTouchableHighlight","TouchableOpacity","RNTouchableOpacity","TouchableWithoutFeedback","RNTouchableWithoutFeedback","useAccessibilityFocusHistory","WithAccessibilityFocusHistory","C","displayName","ComponentWithAccessibilityFocusHistory","forwardedRef","onPress","originalOnPress","props","ref","undefined","createElement","_extends","Forwarded"],"sources":["accessibilityHistoryWrappers.tsx"],"sourcesContent":["/* eslint-disable no-restricted-imports */\nimport React, { FC, ForwardedRef, forwardRef } from 'react';\nimport {\n GestureResponderEvent,\n Pressable as RNPressable,\n PressableProps,\n TouchableHighlight as RNTouchableHighlight,\n TouchableHighlightProps,\n TouchableOpacity as RNTouchableOpacity,\n TouchableOpacityProps,\n TouchableWithoutFeedback as RNTouchableWithoutFeedback,\n TouchableWithoutFeedbackProps,\n View,\n} from 'react-native';\n\nimport { useAccessibilityFocusHistory } from './accessibilityHistory';\n\ntype RNOnPress = (event: GestureResponderEvent) => void;\ninterface OnPressProps {\n onPress?: RNOnPress | null;\n}\n\nconst WithAccessibilityFocusHistory = <ComponentProps extends OnPressProps, RefType extends React.ElementType<any, any>>(\n C: React.ComponentType<ComponentProps>,\n displayName: string,\n) => {\n type ForwardedProps = ComponentProps & {\n forwardedRef: ForwardedRef<RefType>;\n };\n\n const ComponentWithAccessibilityFocusHistory: FC<ForwardedProps> = ({\n forwardedRef,\n onPress: originalOnPress,\n ...props\n }) => {\n const { ref, onPress } = useAccessibilityFocusHistory<RefType, RNOnPress>(\n originalOnPress ?? undefined,\n forwardedRef,\n );\n // @ts-ignore\n return <C ref={ref} onPress={onPress} {...props} />;\n };\n\n const Forwarded = forwardRef<RefType, ComponentProps>((props, ref) => (\n <ComponentWithAccessibilityFocusHistory {...props} forwardedRef={ref} />\n ));\n Forwarded.displayName = displayName;\n\n return Forwarded;\n};\n\n/**\n * Wrappers of RN touchable components with accessibilty focus history support\n */\nexport const TouchableOpacity = WithAccessibilityFocusHistory<TouchableOpacityProps, typeof RNTouchableOpacity>(\n RNTouchableOpacity,\n 'TouchableOpacity',\n);\nexport const TouchableWithoutFeedback = WithAccessibilityFocusHistory<\n TouchableWithoutFeedbackProps,\n RNTouchableWithoutFeedback\n>(RNTouchableWithoutFeedback, 'TouchableWithoutFeedback');\nexport const TouchableHighlight = WithAccessibilityFocusHistory<TouchableHighlightProps, typeof RNTouchableHighlight>(\n RNTouchableHighlight,\n 'TouchableHighlight',\n);\nexport const Pressable = WithAccessibilityFocusHistory<PressableProps, View>(RNPressable, 'Pressable');\n\ntype WrapperRefType<C extends React.ForwardRefExoticComponent<React.RefAttributes<any>>> =\n C extends React.ForwardRefExoticComponent<React.RefAttributes<infer Ref>> ? Ref : never;\n\n/**\n * Ref types to be used in forwardRef for the wrappers\n */\nexport type TouchableOpacityRef = WrapperRefType<typeof TouchableOpacity>;\nexport type TouchableWithoutFeedbackRef = WrapperRefType<typeof TouchableWithoutFeedback>;\nexport type TouchableHighlightRef = WrapperRefType<typeof TouchableHighlight>;\nexport type PressableRef = WrapperRefType<typeof Pressable>;\n"],"mappings":";AAAA;AACA,OAAOA,KAAK,IAAsBC,UAAU,QAAQ,OAAO;AAC3D,SAEEC,SAAS,IAAIC,WAAW,EAExBC,kBAAkB,IAAIC,oBAAoB,EAE1CC,gBAAgB,IAAIC,kBAAkB,EAEtCC,wBAAwB,IAAIC,0BAA0B,QAGjD,cAAc;AAErB,SAASC,4BAA4B,QAAQ,wBAAwB;AAOrE,MAAMC,6BAA6B,GAAGA,CACpCC,CAAsC,EACtCC,WAAmB,KAChB;EAKH,MAAMC,sCAA0D,GAAGA,CAAC;IAClEC,YAAY;IACZC,OAAO,EAAEC,eAAe;IACxB,GAAGC;EACL,CAAC,KAAK;IACJ,MAAM;MAAEC,GAAG;MAAEH;IAAQ,CAAC,GAAGN,4BAA4B,CACnDO,eAAe,aAAfA,eAAe,cAAfA,eAAe,GAAIG,SAAS,EAC5BL,YACF,CAAC;IACD;IACA,oBAAOf,KAAA,CAAAqB,aAAA,CAACT,CAAC,EAAAU,QAAA;MAACH,GAAG,EAAEA,GAAI;MAACH,OAAO,EAAEA;IAAQ,GAAKE,KAAK,CAAG,CAAC;EACrD,CAAC;EAED,MAAMK,SAAS,gBAAGtB,UAAU,CAA0B,CAACiB,KAAK,EAAEC,GAAG,kBAC/DnB,KAAA,CAAAqB,aAAA,CAACP,sCAAsC,EAAAQ,QAAA,KAAKJ,KAAK;IAAEH,YAAY,EAAEI;EAAI,EAAE,CACxE,CAAC;EACFI,SAAS,CAACV,WAAW,GAAGA,WAAW;EAEnC,OAAOU,SAAS;AAClB,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMjB,gBAAgB,GAAGK,6BAA6B,CAC3DJ,kBAAkB,EAClB,kBACF,CAAC;AACD,OAAO,MAAMC,wBAAwB,GAAGG,6BAA6B,CAGnEF,0BAA0B,EAAE,0BAA0B,CAAC;AACzD,OAAO,MAAML,kBAAkB,GAAGO,6BAA6B,CAC7DN,oBAAoB,EACpB,oBACF,CAAC;AACD,OAAO,MAAMH,SAAS,GAAGS,6BAA6B,CAAuBR,WAAW,EAAE,WAAW,CAAC;;AAKtG;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["React","forwardRef","Pressable","RNPressable","TouchableHighlight","RNTouchableHighlight","TouchableOpacity","RNTouchableOpacity","TouchableWithoutFeedback","RNTouchableWithoutFeedback","useAccessibilityFocusHistory","WithAccessibilityFocusHistory","C","displayName","ComponentWithAccessibilityFocusHistory","forwardedRef","onPress","originalOnPress","props","ref","undefined","createElement","_extends","Forwarded"],"sources":["accessibilityHistoryWrappers.tsx"],"sourcesContent":["/* eslint-disable no-restricted-imports */\nimport React, { FC, ForwardedRef, forwardRef } from 'react';\nimport {\n GestureResponderEvent,\n Pressable as RNPressable,\n PressableProps,\n TouchableHighlight as RNTouchableHighlight,\n TouchableHighlightProps,\n TouchableOpacity as RNTouchableOpacity,\n TouchableOpacityProps,\n TouchableWithoutFeedback as RNTouchableWithoutFeedback,\n TouchableWithoutFeedbackProps,\n View,\n} from 'react-native';\n\nimport { useAccessibilityFocusHistory } from './accessibilityHistory';\n\ntype RNOnPress = (event: GestureResponderEvent) => void;\ninterface OnPressProps {\n onPress?: RNOnPress | null;\n}\n\nconst WithAccessibilityFocusHistory = <\n ComponentProps extends OnPressProps,\n RefType extends React.ElementType<any, any>,\n>(\n C: React.ComponentType<ComponentProps>,\n displayName: string,\n) => {\n type ForwardedProps = ComponentProps & {\n forwardedRef: ForwardedRef<RefType>;\n };\n\n const ComponentWithAccessibilityFocusHistory: FC<ForwardedProps> = ({\n forwardedRef,\n onPress: originalOnPress,\n ...props\n }) => {\n const { ref, onPress } = useAccessibilityFocusHistory<RefType, RNOnPress>(\n originalOnPress ?? undefined,\n forwardedRef,\n );\n // @ts-ignore\n return <C ref={ref} onPress={onPress} {...props} />;\n };\n\n const Forwarded = forwardRef<RefType, ComponentProps>((props, ref) => (\n <ComponentWithAccessibilityFocusHistory {...props} forwardedRef={ref} />\n ));\n Forwarded.displayName = displayName;\n\n return Forwarded;\n};\n\n/**\n * Wrappers of RN touchable components with accessibilty focus history support\n */\nexport const TouchableOpacity = WithAccessibilityFocusHistory<TouchableOpacityProps, typeof RNTouchableOpacity>(\n RNTouchableOpacity,\n 'TouchableOpacity',\n);\nexport const TouchableWithoutFeedback = WithAccessibilityFocusHistory<\n TouchableWithoutFeedbackProps,\n RNTouchableWithoutFeedback\n>(RNTouchableWithoutFeedback, 'TouchableWithoutFeedback');\nexport const TouchableHighlight = WithAccessibilityFocusHistory<TouchableHighlightProps, typeof RNTouchableHighlight>(\n RNTouchableHighlight,\n 'TouchableHighlight',\n);\nexport const Pressable = WithAccessibilityFocusHistory<PressableProps, View>(RNPressable, 'Pressable');\n\ntype WrapperRefType<C extends React.ForwardRefExoticComponent<React.RefAttributes<any>>> =\n C extends React.ForwardRefExoticComponent<React.RefAttributes<infer Ref>> ? Ref : never;\n\n/**\n * Ref types to be used in forwardRef for the wrappers\n */\nexport type TouchableOpacityRef = WrapperRefType<typeof TouchableOpacity>;\nexport type TouchableWithoutFeedbackRef = WrapperRefType<typeof TouchableWithoutFeedback>;\nexport type TouchableHighlightRef = WrapperRefType<typeof TouchableHighlight>;\nexport type PressableRef = WrapperRefType<typeof Pressable>;\n"],"mappings":";AAAA;AACA,OAAOA,KAAK,IAAsBC,UAAU,QAAQ,OAAO;AAC3D,SAEEC,SAAS,IAAIC,WAAW,EAExBC,kBAAkB,IAAIC,oBAAoB,EAE1CC,gBAAgB,IAAIC,kBAAkB,EAEtCC,wBAAwB,IAAIC,0BAA0B,QAGjD,cAAc;AAErB,SAASC,4BAA4B,QAAQ,wBAAwB;AAOrE,MAAMC,6BAA6B,GAAGA,CAIpCC,CAAsC,EACtCC,WAAmB,KAChB;EAKH,MAAMC,sCAA0D,GAAGA,CAAC;IAClEC,YAAY;IACZC,OAAO,EAAEC,eAAe;IACxB,GAAGC;EACL,CAAC,KAAK;IACJ,MAAM;MAAEC,GAAG;MAAEH;IAAQ,CAAC,GAAGN,4BAA4B,CACnDO,eAAe,aAAfA,eAAe,cAAfA,eAAe,GAAIG,SAAS,EAC5BL,YACF,CAAC;IACD;IACA,oBAAOf,KAAA,CAAAqB,aAAA,CAACT,CAAC,EAAAU,QAAA;MAACH,GAAG,EAAEA,GAAI;MAACH,OAAO,EAAEA;IAAQ,GAAKE,KAAK,CAAG,CAAC;EACrD,CAAC;EAED,MAAMK,SAAS,gBAAGtB,UAAU,CAA0B,CAACiB,KAAK,EAAEC,GAAG,kBAC/DnB,KAAA,CAAAqB,aAAA,CAACP,sCAAsC,EAAAQ,QAAA,KAAKJ,KAAK;IAAEH,YAAY,EAAEI;EAAI,EAAE,CACxE,CAAC;EACFI,SAAS,CAACV,WAAW,GAAGA,WAAW;EAEnC,OAAOU,SAAS;AAClB,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMjB,gBAAgB,GAAGK,6BAA6B,CAC3DJ,kBAAkB,EAClB,kBACF,CAAC;AACD,OAAO,MAAMC,wBAAwB,GAAGG,6BAA6B,CAGnEF,0BAA0B,EAAE,0BAA0B,CAAC;AACzD,OAAO,MAAML,kBAAkB,GAAGO,6BAA6B,CAC7DN,oBAAoB,EACpB,oBACF,CAAC;AACD,OAAO,MAAMH,SAAS,GAAGS,6BAA6B,CAAuBR,WAAW,EAAE,WAAW,CAAC;;AAKtG;AACA;AACA","ignoreList":[]}
@@ -18,4 +18,4 @@
18
18
  "accessibility.icon.scan": "skannaa",
19
19
  "accessibility.key.faceId": "faceId",
20
20
  "accessibility.key.fingerprint": "sormenjälki"
21
- }
21
+ }
@@ -54,6 +54,7 @@ const ConnectivityButton = ({
54
54
  const styles = StyleSheet.create({
55
55
  button: {
56
56
  borderRadius: 20,
57
+ borderWidth: 0,
57
58
  overflow: 'hidden'
58
59
  },
59
60
  container: {
@@ -1 +1 @@
1
- {"version":3,"names":["React","StyleSheet","View","concatTestID","TouchableHighlight","ConnectivityBluetoothOffIcon","ConnectivityBluetoothOnIcon","ConnectivityInternetOffIcon","ConnectivityInternetOnIcon","ConnectivityStatusIcon","Typography","useAppColorScheme","ConnectivityTransport","ConnectivityButton","available","disabled","onPress","status","title","transport","testID","colorScheme","backgroundColor","undefined","grayDark","white","opacity","icons","createElement","style","styles","Bluetooth","Internet","button","container","color","text","preset","create","borderRadius","overflow","alignItems","flexDirection","height","paddingHorizontal","paddingVertical","gap"],"sources":["connectivity-button.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport { concatTestID } from '../../utils';\nimport { TouchableHighlight } from '../accessibility';\nimport {\n ConnectivityBluetoothOffIcon,\n ConnectivityBluetoothOnIcon,\n ConnectivityInternetOffIcon,\n ConnectivityInternetOnIcon,\n ConnectivityStatusIcon,\n} from '../icons/connectivity';\nimport { Typography } from '../text';\nimport { useAppColorScheme } from '../theme';\n\nexport enum ConnectivityTransport {\n Internet = 'Internet',\n Bluetooth = 'Bluetooth',\n All = 'All',\n}\n\nexport type ConnectivityButtonProps = {\n available: boolean;\n disabled?: boolean;\n onPress?: () => void;\n status?: boolean;\n title?: string;\n transport: ConnectivityTransport;\n testID?: string;\n};\n\nconst ConnectivityButton: FC<ConnectivityButtonProps> = ({\n available,\n disabled,\n onPress,\n status,\n title,\n transport,\n testID,\n}) => {\n const colorScheme = useAppColorScheme();\n\n const backgroundColor = status === undefined ? colorScheme.grayDark : colorScheme.white;\n const opacity = disabled ? 0.7 : 1.0;\n const icons = (\n <View style={styles.icons}>\n {transport !== ConnectivityTransport.Bluetooth &&\n (available ? (\n <ConnectivityInternetOnIcon testID={concatTestID(testID, 'icon.on')} />\n ) : (\n <ConnectivityInternetOffIcon testID={concatTestID(testID, 'icon.off')} />\n ))}\n {transport !== ConnectivityTransport.Internet &&\n (available ? (\n <ConnectivityBluetoothOnIcon testID={concatTestID(testID, 'icon.on')} />\n ) : (\n <ConnectivityBluetoothOffIcon testID={concatTestID(testID, 'icon.off')} />\n ))}\n </View>\n );\n return (\n <TouchableHighlight onPress={onPress} style={styles.button} testID={testID}>\n <View style={[styles.container, { backgroundColor, opacity }]}>\n {icons}\n {title && (\n <Typography testID={concatTestID(testID, 'title')} color={colorScheme.text} preset=\"s\">\n {title}\n </Typography>\n )}\n {status !== undefined && <ConnectivityStatusIcon status={status} />}\n </View>\n </TouchableHighlight>\n );\n};\n\nconst styles = StyleSheet.create({\n button: {\n borderRadius: 20,\n overflow: 'hidden',\n },\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n height: 40,\n paddingHorizontal: 12,\n paddingVertical: 9,\n },\n icons: {\n alignItems: 'center',\n flexDirection: 'row',\n gap: 5,\n },\n});\n\nexport default ConnectivityButton;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","StyleSheet","View","concatTestID","TouchableHighlight","ConnectivityBluetoothOffIcon","ConnectivityBluetoothOnIcon","ConnectivityInternetOffIcon","ConnectivityInternetOnIcon","ConnectivityStatusIcon","Typography","useAppColorScheme","ConnectivityTransport","ConnectivityButton","available","disabled","onPress","status","title","transport","testID","colorScheme","backgroundColor","undefined","grayDark","white","opacity","icons","createElement","style","styles","Bluetooth","Internet","button","container","color","text","preset","create","borderRadius","borderWidth","overflow","alignItems","flexDirection","height","paddingHorizontal","paddingVertical","gap"],"sources":["connectivity-button.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport { concatTestID } from '../../utils';\nimport { TouchableHighlight } from '../accessibility';\nimport {\n ConnectivityBluetoothOffIcon,\n ConnectivityBluetoothOnIcon,\n ConnectivityInternetOffIcon,\n ConnectivityInternetOnIcon,\n ConnectivityStatusIcon,\n} from '../icons/connectivity';\nimport { Typography } from '../text';\nimport { useAppColorScheme } from '../theme';\n\nexport enum ConnectivityTransport {\n Internet = 'Internet',\n Bluetooth = 'Bluetooth',\n All = 'All',\n}\n\nexport type ConnectivityButtonProps = {\n available: boolean;\n disabled?: boolean;\n onPress?: () => void;\n status?: boolean;\n title?: string;\n transport: ConnectivityTransport;\n testID?: string;\n};\n\nconst ConnectivityButton: FC<ConnectivityButtonProps> = ({\n available,\n disabled,\n onPress,\n status,\n title,\n transport,\n testID,\n}) => {\n const colorScheme = useAppColorScheme();\n\n const backgroundColor = status === undefined ? colorScheme.grayDark : colorScheme.white;\n const opacity = disabled ? 0.7 : 1.0;\n const icons = (\n <View style={styles.icons}>\n {transport !== ConnectivityTransport.Bluetooth &&\n (available ? (\n <ConnectivityInternetOnIcon testID={concatTestID(testID, 'icon.on')} />\n ) : (\n <ConnectivityInternetOffIcon testID={concatTestID(testID, 'icon.off')} />\n ))}\n {transport !== ConnectivityTransport.Internet &&\n (available ? (\n <ConnectivityBluetoothOnIcon testID={concatTestID(testID, 'icon.on')} />\n ) : (\n <ConnectivityBluetoothOffIcon testID={concatTestID(testID, 'icon.off')} />\n ))}\n </View>\n );\n return (\n <TouchableHighlight onPress={onPress} style={styles.button} testID={testID}>\n <View style={[styles.container, { backgroundColor, opacity }]}>\n {icons}\n {title && (\n <Typography testID={concatTestID(testID, 'title')} color={colorScheme.text} preset=\"s\">\n {title}\n </Typography>\n )}\n {status !== undefined && <ConnectivityStatusIcon status={status} />}\n </View>\n </TouchableHighlight>\n );\n};\n\nconst styles = StyleSheet.create({\n button: {\n borderRadius: 20,\n borderWidth: 0,\n overflow: 'hidden',\n },\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n height: 40,\n paddingHorizontal: 12,\n paddingVertical: 9,\n },\n icons: {\n alignItems: 'center',\n flexDirection: 'row',\n gap: 5,\n },\n});\n\nexport default ConnectivityButton;\n"],"mappings":"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","ignoreList":[]}
@@ -33,6 +33,7 @@ const styles = StyleSheet.create({
33
33
  button: {
34
34
  alignItems: 'center',
35
35
  borderRadius: 20,
36
+ borderWidth: 0,
36
37
  height: 40,
37
38
  justifyContent: 'center',
38
39
  width: 40
@@ -1 +1 @@
1
- {"version":3,"names":["React","StyleSheet","TouchableOpacity","FilterIcon","useAppColorScheme","hitslop","bottom","left","right","top","FilterButton","active","style","props","colorScheme","createElement","_extends","accessibilityRole","accessibilityState","selected","hitSlop","styles","button","backgroundColor","accent","undefined","color","white","create","alignItems","borderRadius","height","justifyContent","width"],"sources":["filter-button.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { Insets, StyleSheet, TouchableOpacityProps } from 'react-native';\n\nimport { TouchableOpacity } from '../accessibility/accessibilityHistoryWrappers';\nimport { FilterIcon } from '../icons/icons';\nimport { useAppColorScheme } from '../theme/color-scheme-context';\n\nexport type FilterButtonProps = TouchableOpacityProps & {\n active: boolean;\n};\n\nconst hitslop: Insets = { bottom: 10, left: 10, right: 10, top: 10 };\n\nconst FilterButton: FC<FilterButtonProps> = ({ active, style, ...props }) => {\n const colorScheme = useAppColorScheme();\n return (\n <TouchableOpacity\n accessibilityRole=\"button\"\n accessibilityState={{ selected: active }}\n hitSlop={hitslop}\n style={[styles.button, { backgroundColor: active ? colorScheme.accent : undefined }, style]}\n {...props}>\n <FilterIcon color={active ? colorScheme.white : colorScheme.accent} />\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n button: {\n alignItems: 'center',\n borderRadius: 20,\n height: 40,\n justifyContent: 'center',\n width: 40,\n },\n});\n\nexport default FilterButton;\n"],"mappings":";AAAA,OAAOA,KAAK,MAAc,OAAO;AACjC,SAAiBC,UAAU,QAA+B,cAAc;AAExE,SAASC,gBAAgB,QAAQ,+CAA+C;AAChF,SAASC,UAAU,QAAQ,gBAAgB;AAC3C,SAASC,iBAAiB,QAAQ,+BAA+B;AAMjE,MAAMC,OAAe,GAAG;EAAEC,MAAM,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,KAAK,EAAE,EAAE;EAAEC,GAAG,EAAE;AAAG,CAAC;AAEpE,MAAMC,YAAmC,GAAGA,CAAC;EAAEC,MAAM;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,KAAK;EAC3E,MAAMC,WAAW,GAAGV,iBAAiB,CAAC,CAAC;EACvC,oBACEJ,KAAA,CAAAe,aAAA,CAACb,gBAAgB,EAAAc,QAAA;IACfC,iBAAiB,EAAC,QAAQ;IAC1BC,kBAAkB,EAAE;MAAEC,QAAQ,EAAER;IAAO,CAAE;IACzCS,OAAO,EAAEf,OAAQ;IACjBO,KAAK,EAAE,CAACS,MAAM,CAACC,MAAM,EAAE;MAAEC,eAAe,EAAEZ,MAAM,GAAGG,WAAW,CAACU,MAAM,GAAGC;IAAU,CAAC,EAAEb,KAAK;EAAE,GACxFC,KAAK,gBACTb,KAAA,CAAAe,aAAA,CAACZ,UAAU;IAACuB,KAAK,EAAEf,MAAM,GAAGG,WAAW,CAACa,KAAK,GAAGb,WAAW,CAACU;EAAO,CAAE,CACrD,CAAC;AAEvB,CAAC;AAED,MAAMH,MAAM,GAAGpB,UAAU,CAAC2B,MAAM,CAAC;EAC/BN,MAAM,EAAE;IACNO,UAAU,EAAE,QAAQ;IACpBC,YAAY,EAAE,EAAE;IAChBC,MAAM,EAAE,EAAE;IACVC,cAAc,EAAE,QAAQ;IACxBC,KAAK,EAAE;EACT;AACF,CAAC,CAAC;AAEF,eAAevB,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["React","StyleSheet","TouchableOpacity","FilterIcon","useAppColorScheme","hitslop","bottom","left","right","top","FilterButton","active","style","props","colorScheme","createElement","_extends","accessibilityRole","accessibilityState","selected","hitSlop","styles","button","backgroundColor","accent","undefined","color","white","create","alignItems","borderRadius","borderWidth","height","justifyContent","width"],"sources":["filter-button.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { Insets, StyleSheet, TouchableOpacityProps } from 'react-native';\n\nimport { TouchableOpacity } from '../accessibility/accessibilityHistoryWrappers';\nimport { FilterIcon } from '../icons/icons';\nimport { useAppColorScheme } from '../theme/color-scheme-context';\n\nexport type FilterButtonProps = TouchableOpacityProps & {\n active: boolean;\n};\n\nconst hitslop: Insets = { bottom: 10, left: 10, right: 10, top: 10 };\n\nconst FilterButton: FC<FilterButtonProps> = ({ active, style, ...props }) => {\n const colorScheme = useAppColorScheme();\n return (\n <TouchableOpacity\n accessibilityRole=\"button\"\n accessibilityState={{ selected: active }}\n hitSlop={hitslop}\n style={[styles.button, { backgroundColor: active ? colorScheme.accent : undefined }, style]}\n {...props}>\n <FilterIcon color={active ? colorScheme.white : colorScheme.accent} />\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n button: {\n alignItems: 'center',\n borderRadius: 20,\n borderWidth: 0,\n height: 40,\n justifyContent: 'center',\n width: 40,\n },\n});\n\nexport default FilterButton;\n"],"mappings":";AAAA,OAAOA,KAAK,MAAc,OAAO;AACjC,SAAiBC,UAAU,QAA+B,cAAc;AAExE,SAASC,gBAAgB,QAAQ,+CAA+C;AAChF,SAASC,UAAU,QAAQ,gBAAgB;AAC3C,SAASC,iBAAiB,QAAQ,+BAA+B;AAMjE,MAAMC,OAAe,GAAG;EAAEC,MAAM,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,KAAK,EAAE,EAAE;EAAEC,GAAG,EAAE;AAAG,CAAC;AAEpE,MAAMC,YAAmC,GAAGA,CAAC;EAAEC,MAAM;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,KAAK;EAC3E,MAAMC,WAAW,GAAGV,iBAAiB,CAAC,CAAC;EACvC,oBACEJ,KAAA,CAAAe,aAAA,CAACb,gBAAgB,EAAAc,QAAA;IACfC,iBAAiB,EAAC,QAAQ;IAC1BC,kBAAkB,EAAE;MAAEC,QAAQ,EAAER;IAAO,CAAE;IACzCS,OAAO,EAAEf,OAAQ;IACjBO,KAAK,EAAE,CAACS,MAAM,CAACC,MAAM,EAAE;MAAEC,eAAe,EAAEZ,MAAM,GAAGG,WAAW,CAACU,MAAM,GAAGC;IAAU,CAAC,EAAEb,KAAK;EAAE,GACxFC,KAAK,gBACTb,KAAA,CAAAe,aAAA,CAACZ,UAAU;IAACuB,KAAK,EAAEf,MAAM,GAAGG,WAAW,CAACa,KAAK,GAAGb,WAAW,CAACU;EAAO,CAAE,CACrD,CAAC;AAEvB,CAAC;AAED,MAAMH,MAAM,GAAGpB,UAAU,CAAC2B,MAAM,CAAC;EAC/BN,MAAM,EAAE;IACNO,UAAU,EAAE,QAAQ;IACpBC,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,CAAC;IACdC,MAAM,EAAE,EAAE;IACVC,cAAc,EAAE,QAAQ;IACxBC,KAAK,EAAE;EACT;AACF,CAAC,CAAC;AAEF,eAAexB,YAAY","ignoreList":[]}
@@ -42,6 +42,7 @@ const styles = StyleSheet.create({
42
42
  alignItems: 'center',
43
43
  backgroundColor: 'transparent',
44
44
  borderRadius: 12,
45
+ borderWidth: 0,
45
46
  height: 24,
46
47
  justifyContent: 'center',
47
48
  overflow: 'hidden',
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","StyleSheet","useAccessibleAfterTransition","TouchableOpacity","useAppColorScheme","hitSlop","top","left","bottom","right","GhostButton","accessibilityLabel","icon","onPress","style","props","colorScheme","accessible","iconElement","isValidElement","Icon","createElement","color","text","_extends","accessibilityRole","styles","button","create","alignItems","backgroundColor","borderRadius","height","justifyContent","overflow","width"],"sources":["ghost-button.tsx"],"sourcesContent":["import React, { FC, ReactNode, useMemo } from 'react';\nimport { Insets, StyleProp, StyleSheet, TouchableOpacityProps, ViewStyle } from 'react-native';\nimport type { SvgProps } from 'react-native-svg';\n\nimport { useAccessibleAfterTransition } from '../accessibility';\nimport { TouchableOpacity } from '../accessibility/accessibilityHistoryWrappers';\nimport { useAppColorScheme } from '../theme';\n\nexport type GhostButtonProps = TouchableOpacityProps & {\n accessibilityLabel: string;\n icon?: FC<SvgProps> | ReactNode;\n onPress: () => void;\n style?: StyleProp<ViewStyle>;\n};\n\nconst hitSlop: Insets = { top: 10, left: 10, bottom: 10, right: 10 };\n\nconst GhostButton: FC<GhostButtonProps> = ({ accessibilityLabel, icon, onPress, style, ...props }) => {\n const colorScheme = useAppColorScheme();\n const accessible = useAccessibleAfterTransition();\n\n const iconElement = useMemo(() => {\n if (React.isValidElement(icon)) {\n return icon;\n }\n const Icon = icon as FC<SvgProps>;\n return <Icon color={colorScheme.text} />;\n }, [colorScheme.text, icon]);\n\n return (\n <TouchableOpacity\n accessibilityLabel={accessibilityLabel}\n accessibilityRole=\"button\"\n accessible={accessible}\n hitSlop={hitSlop}\n onPress={onPress}\n style={[styles.button, style]}\n {...props}>\n {iconElement}\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n button: {\n alignItems: 'center',\n backgroundColor: 'transparent',\n borderRadius: 12,\n height: 24,\n justifyContent: 'center',\n overflow: 'hidden',\n width: 24,\n },\n});\n\nexport default GhostButton;\n"],"mappings":";AAAA,OAAOA,KAAK,IAAmBC,OAAO,QAAQ,OAAO;AACrD,SAA4BC,UAAU,QAA0C,cAAc;AAG9F,SAASC,4BAA4B,QAAQ,kBAAkB;AAC/D,SAASC,gBAAgB,QAAQ,+CAA+C;AAChF,SAASC,iBAAiB,QAAQ,UAAU;AAS5C,MAAMC,OAAe,GAAG;EAAEC,GAAG,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,MAAM,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAEpE,MAAMC,WAAiC,GAAGA,CAAC;EAAEC,kBAAkB;EAAEC,IAAI;EAAEC,OAAO;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,KAAK;EACpG,MAAMC,WAAW,GAAGZ,iBAAiB,CAAC,CAAC;EACvC,MAAMa,UAAU,GAAGf,4BAA4B,CAAC,CAAC;EAEjD,MAAMgB,WAAW,GAAGlB,OAAO,CAAC,MAAM;IAChC,iBAAID,KAAK,CAACoB,cAAc,CAACP,IAAI,CAAC,EAAE;MAC9B,OAAOA,IAAI;IACb;IACA,MAAMQ,IAAI,GAAGR,IAAoB;IACjC,oBAAOb,KAAA,CAAAsB,aAAA,CAACD,IAAI;MAACE,KAAK,EAAEN,WAAW,CAACO;IAAK,CAAE,CAAC;EAC1C,CAAC,EAAE,CAACP,WAAW,CAACO,IAAI,EAAEX,IAAI,CAAC,CAAC;EAE5B,oBACEb,KAAA,CAAAsB,aAAA,CAAClB,gBAAgB,EAAAqB,QAAA;IACfb,kBAAkB,EAAEA,kBAAmB;IACvCc,iBAAiB,EAAC,QAAQ;IAC1BR,UAAU,EAAEA,UAAW;IACvBZ,OAAO,EAAEA,OAAQ;IACjBQ,OAAO,EAAEA,OAAQ;IACjBC,KAAK,EAAE,CAACY,MAAM,CAACC,MAAM,EAAEb,KAAK;EAAE,GAC1BC,KAAK,GACRG,WACe,CAAC;AAEvB,CAAC;AAED,MAAMQ,MAAM,GAAGzB,UAAU,CAAC2B,MAAM,CAAC;EAC/BD,MAAM,EAAE;IACNE,UAAU,EAAE,QAAQ;IACpBC,eAAe,EAAE,aAAa;IAC9BC,YAAY,EAAE,EAAE;IAChBC,MAAM,EAAE,EAAE;IACVC,cAAc,EAAE,QAAQ;IACxBC,QAAQ,EAAE,QAAQ;IAClBC,KAAK,EAAE;EACT;AACF,CAAC,CAAC;AAEF,eAAezB,WAAW","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","StyleSheet","useAccessibleAfterTransition","TouchableOpacity","useAppColorScheme","hitSlop","top","left","bottom","right","GhostButton","accessibilityLabel","icon","onPress","style","props","colorScheme","accessible","iconElement","isValidElement","Icon","createElement","color","text","_extends","accessibilityRole","styles","button","create","alignItems","backgroundColor","borderRadius","borderWidth","height","justifyContent","overflow","width"],"sources":["ghost-button.tsx"],"sourcesContent":["import React, { FC, ReactNode, useMemo } from 'react';\nimport { Insets, StyleProp, StyleSheet, TouchableOpacityProps, ViewStyle } from 'react-native';\nimport type { SvgProps } from 'react-native-svg';\n\nimport { useAccessibleAfterTransition } from '../accessibility';\nimport { TouchableOpacity } from '../accessibility/accessibilityHistoryWrappers';\nimport { useAppColorScheme } from '../theme';\n\nexport type GhostButtonProps = TouchableOpacityProps & {\n accessibilityLabel: string;\n icon?: FC<SvgProps> | ReactNode;\n onPress: () => void;\n style?: StyleProp<ViewStyle>;\n};\n\nconst hitSlop: Insets = { top: 10, left: 10, bottom: 10, right: 10 };\n\nconst GhostButton: FC<GhostButtonProps> = ({ accessibilityLabel, icon, onPress, style, ...props }) => {\n const colorScheme = useAppColorScheme();\n const accessible = useAccessibleAfterTransition();\n\n const iconElement = useMemo(() => {\n if (React.isValidElement(icon)) {\n return icon;\n }\n const Icon = icon as FC<SvgProps>;\n return <Icon color={colorScheme.text} />;\n }, [colorScheme.text, icon]);\n\n return (\n <TouchableOpacity\n accessibilityLabel={accessibilityLabel}\n accessibilityRole=\"button\"\n accessible={accessible}\n hitSlop={hitSlop}\n onPress={onPress}\n style={[styles.button, style]}\n {...props}>\n {iconElement}\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n button: {\n alignItems: 'center',\n backgroundColor: 'transparent',\n borderRadius: 12,\n borderWidth: 0,\n height: 24,\n justifyContent: 'center',\n overflow: 'hidden',\n width: 24,\n },\n});\n\nexport default GhostButton;\n"],"mappings":";AAAA,OAAOA,KAAK,IAAmBC,OAAO,QAAQ,OAAO;AACrD,SAA4BC,UAAU,QAA0C,cAAc;AAG9F,SAASC,4BAA4B,QAAQ,kBAAkB;AAC/D,SAASC,gBAAgB,QAAQ,+CAA+C;AAChF,SAASC,iBAAiB,QAAQ,UAAU;AAS5C,MAAMC,OAAe,GAAG;EAAEC,GAAG,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,MAAM,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAEpE,MAAMC,WAAiC,GAAGA,CAAC;EAAEC,kBAAkB;EAAEC,IAAI;EAAEC,OAAO;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,KAAK;EACpG,MAAMC,WAAW,GAAGZ,iBAAiB,CAAC,CAAC;EACvC,MAAMa,UAAU,GAAGf,4BAA4B,CAAC,CAAC;EAEjD,MAAMgB,WAAW,GAAGlB,OAAO,CAAC,MAAM;IAChC,iBAAID,KAAK,CAACoB,cAAc,CAACP,IAAI,CAAC,EAAE;MAC9B,OAAOA,IAAI;IACb;IACA,MAAMQ,IAAI,GAAGR,IAAoB;IACjC,oBAAOb,KAAA,CAAAsB,aAAA,CAACD,IAAI;MAACE,KAAK,EAAEN,WAAW,CAACO;IAAK,CAAE,CAAC;EAC1C,CAAC,EAAE,CAACP,WAAW,CAACO,IAAI,EAAEX,IAAI,CAAC,CAAC;EAE5B,oBACEb,KAAA,CAAAsB,aAAA,CAAClB,gBAAgB,EAAAqB,QAAA;IACfb,kBAAkB,EAAEA,kBAAmB;IACvCc,iBAAiB,EAAC,QAAQ;IAC1BR,UAAU,EAAEA,UAAW;IACvBZ,OAAO,EAAEA,OAAQ;IACjBQ,OAAO,EAAEA,OAAQ;IACjBC,KAAK,EAAE,CAACY,MAAM,CAACC,MAAM,EAAEb,KAAK;EAAE,GAC1BC,KAAK,GACRG,WACe,CAAC;AAEvB,CAAC;AAED,MAAMQ,MAAM,GAAGzB,UAAU,CAAC2B,MAAM,CAAC;EAC/BD,MAAM,EAAE;IACNE,UAAU,EAAE,QAAQ;IACpBC,eAAe,EAAE,aAAa;IAC9BC,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,CAAC;IACdC,MAAM,EAAE,EAAE;IACVC,cAAc,EAAE,QAAQ;IACxBC,QAAQ,EAAE,QAAQ;IAClBC,KAAK,EAAE;EACT;AACF,CAAC,CAAC;AAEF,eAAe1B,WAAW","ignoreList":[]}
@@ -195,6 +195,7 @@ HoldButton.displayName = 'HoldButton';
195
195
  const styles = StyleSheet.create({
196
196
  container: {
197
197
  borderRadius: 12,
198
+ borderWidth: 0,
198
199
  height: 68,
199
200
  overflow: 'hidden'
200
201
  },
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useMemo","useState","StyleSheet","View","Animated","cancelAnimation","Easing","runOnJS","useAnimatedStyle","useDerivedValue","useSharedValue","withTiming","TouchableOpacity","Typography","useAppColorScheme","Content","title","subtitlePrefix","subtitleSuffix","width","height","textColor","progress","holdTimeoutSecs","disabled","nums","Array","from","length","map","_","index","subtitleHeight","setSubtitleHeight","onSubtitleLayout","nativeEvent","layout","translateY","value","movingUpStyle","transform","createElement","style","styles","contentWrapper","contentDisabled","pointerEvents","color","numberOfLines","subtitle","subtitleDisabled","onLayout","preset","subtitleSecsWrapper","subtitleSecs","val","key","HoldButtonLayouted","onFinished","ref","props","colorScheme","isFinished","setFinished","onLongPress","onPressIn","holdTimeout","duration","easing","linear","finished","onPressOut","translateX","movingRightStyle","movingLeftStyle","contentProps","Fragment","_extends","accent","movingLayer","backgroundColor","accentText","pressableLayer","accessibilityRole","undefined","activeOpacity","HoldButton","forwardRef","setLayout","onContainerLayout","container","white","background","borderColor","displayName","create","borderRadius","overflow","opacity","alignItems","justifyContent","paddingBottom","paddingHorizontal","paddingTop","borderWidth","position","flexDirection"],"sources":["hold-button.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { ColorValue, LayoutChangeEvent, StyleSheet, TouchableWithoutFeedbackProps, View } from 'react-native';\nimport Animated, {\n cancelAnimation,\n Easing,\n runOnJS,\n SharedValue,\n useAnimatedStyle,\n useDerivedValue,\n useSharedValue,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { TouchableOpacity, TouchableOpacityRef } from '../accessibility/accessibilityHistoryWrappers';\nimport { Typography } from '../text';\nimport { useAppColorScheme } from '../theme';\n\nexport interface HoldButtonProps\n extends Omit<\n TouchableWithoutFeedbackProps,\n 'children' | 'onLayout' | 'onPress' | 'onLongPress' | 'onPressIn' | 'onPressOut'\n > {\n title: string;\n subtitlePrefix: string;\n subtitleSuffix: string;\n holdTimeoutSecs?: number;\n onFinished: () => void;\n}\n\ninterface ContentProps {\n title: string;\n subtitlePrefix: string;\n subtitleSuffix: string;\n width: number;\n height: number;\n textColor: ColorValue;\n progress: SharedValue<number>;\n holdTimeoutSecs: number;\n disabled?: boolean;\n}\n\nconst Content = ({\n title,\n subtitlePrefix,\n subtitleSuffix,\n width,\n height,\n textColor,\n progress,\n holdTimeoutSecs,\n disabled,\n}: ContentProps) => {\n const nums = useMemo(\n () => Array.from({ length: holdTimeoutSecs + 1 }).map((_, index) => holdTimeoutSecs - index),\n [holdTimeoutSecs],\n );\n\n const [subtitleHeight, setSubtitleHeight] = useState<number>(0);\n const onSubtitleLayout = useCallback(({ nativeEvent }: LayoutChangeEvent) => {\n setSubtitleHeight(nativeEvent.layout.height);\n }, []);\n\n const translateY = useDerivedValue(\n () => progress.value * subtitleHeight * holdTimeoutSecs,\n [subtitleHeight, holdTimeoutSecs],\n );\n const movingUpStyle = useAnimatedStyle(() => ({\n transform: [{ translateY: -translateY.value }],\n }), [translateY]);\n\n return (\n <View style={[styles.contentWrapper, disabled && styles.contentDisabled, { width, height }]} pointerEvents=\"none\">\n <Typography color={textColor} numberOfLines={1}>\n {title}\n </Typography>\n\n <View style={[styles.subtitle, disabled && styles.subtitleDisabled]}>\n <Typography onLayout={onSubtitleLayout} preset=\"s/line-height-capped\" color={textColor} numberOfLines={1}>\n {subtitlePrefix}\n </Typography>\n <View style={[styles.subtitleSecsWrapper, { height: subtitleHeight }]}>\n <Animated.View style={[styles.subtitleSecs, movingUpStyle]}>\n {nums.map((val) => (\n <Typography key={val} preset=\"s/line-height-capped\" color={textColor} numberOfLines={1}>\n {val}\n </Typography>\n ))}\n </Animated.View>\n </View>\n <Typography preset=\"s/line-height-capped\" color={textColor} numberOfLines={1}>\n {subtitleSuffix}\n </Typography>\n </View>\n </View>\n );\n};\n\ninterface HoldButtonLayoutedProps extends Omit<HoldButtonProps, 'style'> {\n ref: React.ForwardedRef<TouchableOpacityRef>;\n width: number;\n height: number;\n}\n\nconst HoldButtonLayouted = ({\n title,\n subtitlePrefix,\n subtitleSuffix,\n onFinished,\n holdTimeoutSecs = 3,\n width,\n height,\n disabled,\n ref,\n ...props\n}: HoldButtonLayoutedProps) => {\n const colorScheme = useAppColorScheme();\n\n const [isFinished, setFinished] = useState(false);\n useEffect(() => {\n if (isFinished) {\n onFinished();\n }\n }, [isFinished, onFinished]);\n\n const progress = useSharedValue(0);\n\n const onLongPress = useCallback(() => {\n // Fix for detox bug https://github.com/wix/Detox/issues/4754\n if (isFinished || progress.value !== 0) {\n return;\n }\n setFinished(true);\n }, [progress, isFinished]);\n\n const onPressIn = useCallback(() => {\n const holdTimeout = holdTimeoutSecs * 1000;\n\n // start moving forward\n progress.value = withTiming(\n 1,\n {\n duration: (1 - progress.value) * holdTimeout,\n easing: Easing.linear,\n },\n (finished) => {\n if (finished) {\n runOnJS(setFinished)(true);\n } else {\n // start moving back\n progress.value = withTiming(0, {\n duration: progress.value * holdTimeout,\n easing: Easing.linear,\n });\n }\n },\n );\n }, [holdTimeoutSecs, progress]);\n\n const onPressOut = useCallback(() => cancelAnimation(progress), [progress]);\n\n const translateX = useDerivedValue(() => progress.value * width, [width]);\n const movingRightStyle = useAnimatedStyle(() => ({\n transform: [{ translateX: translateX.value }],\n }), [translateX]);\n const movingLeftStyle = useAnimatedStyle(() => ({\n transform: [{ translateX: -translateX.value }],\n }), [translateX]);\n\n const contentProps = useMemo(\n () => ({ title, subtitlePrefix, subtitleSuffix, progress, holdTimeoutSecs, width, height }),\n [title, subtitlePrefix, subtitleSuffix, progress, holdTimeoutSecs, width, height],\n );\n\n return (\n <>\n <Content textColor={colorScheme.accent} disabled={disabled} {...contentProps} />\n {!disabled && (\n <Animated.View style={[styles.movingLayer, { backgroundColor: colorScheme.accent }, movingRightStyle]}>\n <Animated.View style={movingLeftStyle}>\n <Content textColor={colorScheme.accentText} {...contentProps} />\n </Animated.View>\n </Animated.View>\n )}\n <View style={styles.pressableLayer}>\n <TouchableOpacity\n accessibilityRole=\"button\"\n ref={ref}\n disabled={isFinished || disabled}\n onLongPress={onLongPress}\n onPressIn={isFinished ? undefined : onPressIn}\n onPressOut={isFinished ? undefined : onPressOut}\n activeOpacity={1}\n {...props}>\n <View style={{ width, height }} />\n </TouchableOpacity>\n </View>\n </>\n );\n};\n\n/**\n * Press and hold button component\n *\n * follows design: https://www.figma.com/design/cCmAyBQrQWCQZuDi85pJfe/Procivis-One-Wallet-Developments-2025?node-id=1-871\n */\nconst HoldButton = React.forwardRef<TouchableOpacityRef, HoldButtonProps>(\n ({ style, disabled, ...props }, ref) => {\n const colorScheme = useAppColorScheme();\n\n const [layout, setLayout] = useState<{ width: number; height: number }>();\n const onContainerLayout = useCallback(({ nativeEvent }: LayoutChangeEvent) => {\n setLayout({ width: nativeEvent.layout.width, height: nativeEvent.layout.height });\n }, []);\n\n return (\n <View\n onLayout={onContainerLayout}\n style={[\n styles.container,\n disabled && styles.disabled,\n {\n backgroundColor: disabled ? colorScheme.white : colorScheme.background,\n borderColor: colorScheme.background,\n },\n style,\n ]}>\n {layout && <HoldButtonLayouted ref={ref} disabled={disabled} {...props} {...layout} />}\n </View>\n );\n },\n);\n\nHoldButton.displayName = 'HoldButton';\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 12,\n height: 68,\n overflow: 'hidden',\n },\n contentDisabled: {\n opacity: 0.4,\n },\n contentWrapper: {\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingBottom: 16,\n paddingHorizontal: 24,\n paddingTop: 12,\n },\n disabled: {\n borderWidth: 1,\n },\n movingLayer: {\n overflow: 'hidden',\n position: 'absolute',\n },\n pressableLayer: {\n position: 'absolute',\n },\n subtitle: {\n alignItems: 'flex-end',\n flexDirection: 'row',\n opacity: 0.8,\n },\n subtitleDisabled: {\n opacity: 1,\n },\n subtitleSecs: {\n alignItems: 'center',\n },\n subtitleSecsWrapper: {\n overflow: 'hidden',\n },\n});\n\nexport default HoldButton;\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AACxE,SAAwCC,UAAU,EAAiCC,IAAI,QAAQ,cAAc;AAC7G,OAAOC,QAAQ,IACbC,eAAe,EACfC,MAAM,EACNC,OAAO,EAEPC,gBAAgB,EAChBC,eAAe,EACfC,cAAc,EACdC,UAAU,QACL,yBAAyB;AAEhC,SAASC,gBAAgB,QAA6B,+CAA+C;AACrG,SAASC,UAAU,QAAQ,SAAS;AACpC,SAASC,iBAAiB,QAAQ,UAAU;AA0B5C,MAAMC,OAAO,GAAGA,CAAC;EACfC,KAAK;EACLC,cAAc;EACdC,cAAc;EACdC,KAAK;EACLC,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,eAAe;EACfC;AACY,CAAC,KAAK;EAClB,MAAMC,IAAI,GAAGzB,OAAO,CAClB,MAAM0B,KAAK,CAACC,IAAI,CAAC;IAAEC,MAAM,EAAEL,eAAe,GAAG;EAAE,CAAC,CAAC,CAACM,GAAG,CAAC,CAACC,CAAC,EAAEC,KAAK,KAAKR,eAAe,GAAGQ,KAAK,CAAC,EAC5F,CAACR,eAAe,CAClB,CAAC;EAED,MAAM,CAACS,cAAc,EAAEC,iBAAiB,CAAC,GAAGhC,QAAQ,CAAS,CAAC,CAAC;EAC/D,MAAMiC,gBAAgB,GAAGpC,WAAW,CAAC,CAAC;IAAEqC;EAA+B,CAAC,KAAK;IAC3EF,iBAAiB,CAACE,WAAW,CAACC,MAAM,CAAChB,MAAM,CAAC;EAC9C,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMiB,UAAU,GAAG5B,eAAe,CAChC,MAAMa,QAAQ,CAACgB,KAAK,GAAGN,cAAc,GAAGT,eAAe,EACvD,CAACS,cAAc,EAAET,eAAe,CAClC,CAAC;EACD,MAAMgB,aAAa,GAAG/B,gBAAgB,CAAC,OAAO;IAC5CgC,SAAS,EAAE,CAAC;MAAEH,UAAU,EAAE,CAACA,UAAU,CAACC;IAAM,CAAC;EAC/C,CAAC,CAAC,EAAE,CAACD,UAAU,CAAC,CAAC;EAEjB,oBACExC,KAAA,CAAA4C,aAAA,CAACtC,IAAI;IAACuC,KAAK,EAAE,CAACC,MAAM,CAACC,cAAc,EAAEpB,QAAQ,IAAImB,MAAM,CAACE,eAAe,EAAE;MAAE1B,KAAK;MAAEC;IAAO,CAAC,CAAE;IAAC0B,aAAa,EAAC;EAAM,gBAC/GjD,KAAA,CAAA4C,aAAA,CAAC5B,UAAU;IAACkC,KAAK,EAAE1B,SAAU;IAAC2B,aAAa,EAAE;EAAE,GAC5ChC,KACS,CAAC,eAEbnB,KAAA,CAAA4C,aAAA,CAACtC,IAAI;IAACuC,KAAK,EAAE,CAACC,MAAM,CAACM,QAAQ,EAAEzB,QAAQ,IAAImB,MAAM,CAACO,gBAAgB;EAAE,gBAClErD,KAAA,CAAA4C,aAAA,CAAC5B,UAAU;IAACsC,QAAQ,EAAEjB,gBAAiB;IAACkB,MAAM,EAAC,sBAAsB;IAACL,KAAK,EAAE1B,SAAU;IAAC2B,aAAa,EAAE;EAAE,GACtG/B,cACS,CAAC,eACbpB,KAAA,CAAA4C,aAAA,CAACtC,IAAI;IAACuC,KAAK,EAAE,CAACC,MAAM,CAACU,mBAAmB,EAAE;MAAEjC,MAAM,EAAEY;IAAe,CAAC;EAAE,gBACpEnC,KAAA,CAAA4C,aAAA,CAACrC,QAAQ,CAACD,IAAI;IAACuC,KAAK,EAAE,CAACC,MAAM,CAACW,YAAY,EAAEf,aAAa;EAAE,GACxDd,IAAI,CAACI,GAAG,CAAE0B,GAAG,iBACZ1D,KAAA,CAAA4C,aAAA,CAAC5B,UAAU;IAAC2C,GAAG,EAAED,GAAI;IAACH,MAAM,EAAC,sBAAsB;IAACL,KAAK,EAAE1B,SAAU;IAAC2B,aAAa,EAAE;EAAE,GACpFO,GACS,CACb,CACY,CACX,CAAC,eACP1D,KAAA,CAAA4C,aAAA,CAAC5B,UAAU;IAACuC,MAAM,EAAC,sBAAsB;IAACL,KAAK,EAAE1B,SAAU;IAAC2B,aAAa,EAAE;EAAE,GAC1E9B,cACS,CACR,CACF,CAAC;AAEX,CAAC;AAQD,MAAMuC,kBAAkB,GAAGA,CAAC;EAC1BzC,KAAK;EACLC,cAAc;EACdC,cAAc;EACdwC,UAAU;EACVnC,eAAe,GAAG,CAAC;EACnBJ,KAAK;EACLC,MAAM;EACNI,QAAQ;EACRmC,GAAG;EACH,GAAGC;AACoB,CAAC,KAAK;EAC7B,MAAMC,WAAW,GAAG/C,iBAAiB,CAAC,CAAC;EAEvC,MAAM,CAACgD,UAAU,EAAEC,WAAW,CAAC,GAAG9D,QAAQ,CAAC,KAAK,CAAC;EACjDF,SAAS,CAAC,MAAM;IACd,IAAI+D,UAAU,EAAE;MACdJ,UAAU,CAAC,CAAC;IACd;EACF,CAAC,EAAE,CAACI,UAAU,EAAEJ,UAAU,CAAC,CAAC;EAE5B,MAAMpC,QAAQ,GAAGZ,cAAc,CAAC,CAAC,CAAC;EAElC,MAAMsD,WAAW,GAAGlE,WAAW,CAAC,MAAM;IACpC;IACA,IAAIgE,UAAU,IAAIxC,QAAQ,CAACgB,KAAK,KAAK,CAAC,EAAE;MACtC;IACF;IACAyB,WAAW,CAAC,IAAI,CAAC;EACnB,CAAC,EAAE,CAACzC,QAAQ,EAAEwC,UAAU,CAAC,CAAC;EAE1B,MAAMG,SAAS,GAAGnE,WAAW,CAAC,MAAM;IAClC,MAAMoE,WAAW,GAAG3C,eAAe,GAAG,IAAI;;IAE1C;IACAD,QAAQ,CAACgB,KAAK,GAAG3B,UAAU,CACzB,CAAC,EACD;MACEwD,QAAQ,EAAE,CAAC,CAAC,GAAG7C,QAAQ,CAACgB,KAAK,IAAI4B,WAAW;MAC5CE,MAAM,EAAE9D,MAAM,CAAC+D;IACjB,CAAC,EACAC,QAAQ,IAAK;MACZ,IAAIA,QAAQ,EAAE;QACZ/D,OAAO,CAACwD,WAAW,CAAC,CAAC,IAAI,CAAC;MAC5B,CAAC,MAAM;QACL;QACAzC,QAAQ,CAACgB,KAAK,GAAG3B,UAAU,CAAC,CAAC,EAAE;UAC7BwD,QAAQ,EAAE7C,QAAQ,CAACgB,KAAK,GAAG4B,WAAW;UACtCE,MAAM,EAAE9D,MAAM,CAAC+D;QACjB,CAAC,CAAC;MACJ;IACF,CACF,CAAC;EACH,CAAC,EAAE,CAAC9C,eAAe,EAAED,QAAQ,CAAC,CAAC;EAE/B,MAAMiD,UAAU,GAAGzE,WAAW,CAAC,MAAMO,eAAe,CAACiB,QAAQ,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAE3E,MAAMkD,UAAU,GAAG/D,eAAe,CAAC,MAAMa,QAAQ,CAACgB,KAAK,GAAGnB,KAAK,EAAE,CAACA,KAAK,CAAC,CAAC;EACzE,MAAMsD,gBAAgB,GAAGjE,gBAAgB,CAAC,OAAO;IAC/CgC,SAAS,EAAE,CAAC;MAAEgC,UAAU,EAAEA,UAAU,CAAClC;IAAM,CAAC;EAC9C,CAAC,CAAC,EAAE,CAACkC,UAAU,CAAC,CAAC;EACjB,MAAME,eAAe,GAAGlE,gBAAgB,CAAC,OAAO;IAC9CgC,SAAS,EAAE,CAAC;MAAEgC,UAAU,EAAE,CAACA,UAAU,CAAClC;IAAM,CAAC;EAC/C,CAAC,CAAC,EAAE,CAACkC,UAAU,CAAC,CAAC;EAEjB,MAAMG,YAAY,GAAG3E,OAAO,CAC1B,OAAO;IAAEgB,KAAK;IAAEC,cAAc;IAAEC,cAAc;IAAEI,QAAQ;IAAEC,eAAe;IAAEJ,KAAK;IAAEC;EAAO,CAAC,CAAC,EAC3F,CAACJ,KAAK,EAAEC,cAAc,EAAEC,cAAc,EAAEI,QAAQ,EAAEC,eAAe,EAAEJ,KAAK,EAAEC,MAAM,CAClF,CAAC;EAED,oBACEvB,KAAA,CAAA4C,aAAA,CAAA5C,KAAA,CAAA+E,QAAA,qBACE/E,KAAA,CAAA4C,aAAA,CAAC1B,OAAO,EAAA8D,QAAA;IAACxD,SAAS,EAAEwC,WAAW,CAACiB,MAAO;IAACtD,QAAQ,EAAEA;EAAS,GAAKmD,YAAY,CAAG,CAAC,EAC/E,CAACnD,QAAQ,iBACR3B,KAAA,CAAA4C,aAAA,CAACrC,QAAQ,CAACD,IAAI;IAACuC,KAAK,EAAE,CAACC,MAAM,CAACoC,WAAW,EAAE;MAAEC,eAAe,EAAEnB,WAAW,CAACiB;IAAO,CAAC,EAAEL,gBAAgB;EAAE,gBACpG5E,KAAA,CAAA4C,aAAA,CAACrC,QAAQ,CAACD,IAAI;IAACuC,KAAK,EAAEgC;EAAgB,gBACpC7E,KAAA,CAAA4C,aAAA,CAAC1B,OAAO,EAAA8D,QAAA;IAACxD,SAAS,EAAEwC,WAAW,CAACoB;EAAW,GAAKN,YAAY,CAAG,CAClD,CACF,CAChB,eACD9E,KAAA,CAAA4C,aAAA,CAACtC,IAAI;IAACuC,KAAK,EAAEC,MAAM,CAACuC;EAAe,gBACjCrF,KAAA,CAAA4C,aAAA,CAAC7B,gBAAgB,EAAAiE,QAAA;IACfM,iBAAiB,EAAC,QAAQ;IAC1BxB,GAAG,EAAEA,GAAI;IACTnC,QAAQ,EAAEsC,UAAU,IAAItC,QAAS;IACjCwC,WAAW,EAAEA,WAAY;IACzBC,SAAS,EAAEH,UAAU,GAAGsB,SAAS,GAAGnB,SAAU;IAC9CM,UAAU,EAAET,UAAU,GAAGsB,SAAS,GAAGb,UAAW;IAChDc,aAAa,EAAE;EAAE,GACbzB,KAAK,gBACT/D,KAAA,CAAA4C,aAAA,CAACtC,IAAI;IAACuC,KAAK,EAAE;MAAEvB,KAAK;MAAEC;IAAO;EAAE,CAAE,CACjB,CACd,CACN,CAAC;AAEP,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMkE,UAAU,gBAAGzF,KAAK,CAAC0F,UAAU,CACjC,CAAC;EAAE7C,KAAK;EAAElB,QAAQ;EAAE,GAAGoC;AAAM,CAAC,EAAED,GAAG,KAAK;EACtC,MAAME,WAAW,GAAG/C,iBAAiB,CAAC,CAAC;EAEvC,MAAM,CAACsB,MAAM,EAAEoD,SAAS,CAAC,GAAGvF,QAAQ,CAAoC,CAAC;EACzE,MAAMwF,iBAAiB,GAAG3F,WAAW,CAAC,CAAC;IAAEqC;EAA+B,CAAC,KAAK;IAC5EqD,SAAS,CAAC;MAAErE,KAAK,EAAEgB,WAAW,CAACC,MAAM,CAACjB,KAAK;MAAEC,MAAM,EAAEe,WAAW,CAACC,MAAM,CAAChB;IAAO,CAAC,CAAC;EACnF,CAAC,EAAE,EAAE,CAAC;EAEN,oBACEvB,KAAA,CAAA4C,aAAA,CAACtC,IAAI;IACHgD,QAAQ,EAAEsC,iBAAkB;IAC5B/C,KAAK,EAAE,CACLC,MAAM,CAAC+C,SAAS,EAChBlE,QAAQ,IAAImB,MAAM,CAACnB,QAAQ,EAC3B;MACEwD,eAAe,EAAExD,QAAQ,GAAGqC,WAAW,CAAC8B,KAAK,GAAG9B,WAAW,CAAC+B,UAAU;MACtEC,WAAW,EAAEhC,WAAW,CAAC+B;IAC3B,CAAC,EACDlD,KAAK;EACL,GACDN,MAAM,iBAAIvC,KAAA,CAAA4C,aAAA,CAACgB,kBAAkB,EAAAoB,QAAA;IAAClB,GAAG,EAAEA,GAAI;IAACnC,QAAQ,EAAEA;EAAS,GAAKoC,KAAK,EAAMxB,MAAM,CAAG,CACjF,CAAC;AAEX,CACF,CAAC;AAEDkD,UAAU,CAACQ,WAAW,GAAG,YAAY;AAErC,MAAMnD,MAAM,GAAGzC,UAAU,CAAC6F,MAAM,CAAC;EAC/BL,SAAS,EAAE;IACTM,YAAY,EAAE,EAAE;IAChB5E,MAAM,EAAE,EAAE;IACV6E,QAAQ,EAAE;EACZ,CAAC;EACDpD,eAAe,EAAE;IACfqD,OAAO,EAAE;EACX,CAAC;EACDtD,cAAc,EAAE;IACduD,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,eAAe;IAC/BC,aAAa,EAAE,EAAE;IACjBC,iBAAiB,EAAE,EAAE;IACrBC,UAAU,EAAE;EACd,CAAC;EACD/E,QAAQ,EAAE;IACRgF,WAAW,EAAE;EACf,CAAC;EACDzB,WAAW,EAAE;IACXkB,QAAQ,EAAE,QAAQ;IAClBQ,QAAQ,EAAE;EACZ,CAAC;EACDvB,cAAc,EAAE;IACduB,QAAQ,EAAE;EACZ,CAAC;EACDxD,QAAQ,EAAE;IACRkD,UAAU,EAAE,UAAU;IACtBO,aAAa,EAAE,KAAK;IACpBR,OAAO,EAAE;EACX,CAAC;EACDhD,gBAAgB,EAAE;IAChBgD,OAAO,EAAE;EACX,CAAC;EACD5C,YAAY,EAAE;IACZ6C,UAAU,EAAE;EACd,CAAC;EACD9C,mBAAmB,EAAE;IACnB4C,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAEF,eAAeX,UAAU","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useMemo","useState","StyleSheet","View","Animated","cancelAnimation","Easing","runOnJS","useAnimatedStyle","useDerivedValue","useSharedValue","withTiming","TouchableOpacity","Typography","useAppColorScheme","Content","title","subtitlePrefix","subtitleSuffix","width","height","textColor","progress","holdTimeoutSecs","disabled","nums","Array","from","length","map","_","index","subtitleHeight","setSubtitleHeight","onSubtitleLayout","nativeEvent","layout","translateY","value","movingUpStyle","transform","createElement","style","styles","contentWrapper","contentDisabled","pointerEvents","color","numberOfLines","subtitle","subtitleDisabled","onLayout","preset","subtitleSecsWrapper","subtitleSecs","val","key","HoldButtonLayouted","onFinished","ref","props","colorScheme","isFinished","setFinished","onLongPress","onPressIn","holdTimeout","duration","easing","linear","finished","onPressOut","translateX","movingRightStyle","movingLeftStyle","contentProps","Fragment","_extends","accent","movingLayer","backgroundColor","accentText","pressableLayer","accessibilityRole","undefined","activeOpacity","HoldButton","forwardRef","setLayout","onContainerLayout","container","white","background","borderColor","displayName","create","borderRadius","borderWidth","overflow","opacity","alignItems","justifyContent","paddingBottom","paddingHorizontal","paddingTop","position","flexDirection"],"sources":["hold-button.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { ColorValue, LayoutChangeEvent, StyleSheet, TouchableWithoutFeedbackProps, View } from 'react-native';\nimport Animated, {\n cancelAnimation,\n Easing,\n runOnJS,\n SharedValue,\n useAnimatedStyle,\n useDerivedValue,\n useSharedValue,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { TouchableOpacity, TouchableOpacityRef } from '../accessibility/accessibilityHistoryWrappers';\nimport { Typography } from '../text';\nimport { useAppColorScheme } from '../theme';\n\nexport interface HoldButtonProps\n extends Omit<\n TouchableWithoutFeedbackProps,\n 'children' | 'onLayout' | 'onPress' | 'onLongPress' | 'onPressIn' | 'onPressOut'\n > {\n title: string;\n subtitlePrefix: string;\n subtitleSuffix: string;\n holdTimeoutSecs?: number;\n onFinished: () => void;\n}\n\ninterface ContentProps {\n title: string;\n subtitlePrefix: string;\n subtitleSuffix: string;\n width: number;\n height: number;\n textColor: ColorValue;\n progress: SharedValue<number>;\n holdTimeoutSecs: number;\n disabled?: boolean;\n}\n\nconst Content = ({\n title,\n subtitlePrefix,\n subtitleSuffix,\n width,\n height,\n textColor,\n progress,\n holdTimeoutSecs,\n disabled,\n}: ContentProps) => {\n const nums = useMemo(\n () => Array.from({ length: holdTimeoutSecs + 1 }).map((_, index) => holdTimeoutSecs - index),\n [holdTimeoutSecs],\n );\n\n const [subtitleHeight, setSubtitleHeight] = useState<number>(0);\n const onSubtitleLayout = useCallback(({ nativeEvent }: LayoutChangeEvent) => {\n setSubtitleHeight(nativeEvent.layout.height);\n }, []);\n\n const translateY = useDerivedValue(\n () => progress.value * subtitleHeight * holdTimeoutSecs,\n [subtitleHeight, holdTimeoutSecs],\n );\n const movingUpStyle = useAnimatedStyle(() => ({\n transform: [{ translateY: -translateY.value }],\n }), [translateY]);\n\n return (\n <View style={[styles.contentWrapper, disabled && styles.contentDisabled, { width, height }]} pointerEvents=\"none\">\n <Typography color={textColor} numberOfLines={1}>\n {title}\n </Typography>\n\n <View style={[styles.subtitle, disabled && styles.subtitleDisabled]}>\n <Typography onLayout={onSubtitleLayout} preset=\"s/line-height-capped\" color={textColor} numberOfLines={1}>\n {subtitlePrefix}\n </Typography>\n <View style={[styles.subtitleSecsWrapper, { height: subtitleHeight }]}>\n <Animated.View style={[styles.subtitleSecs, movingUpStyle]}>\n {nums.map((val) => (\n <Typography key={val} preset=\"s/line-height-capped\" color={textColor} numberOfLines={1}>\n {val}\n </Typography>\n ))}\n </Animated.View>\n </View>\n <Typography preset=\"s/line-height-capped\" color={textColor} numberOfLines={1}>\n {subtitleSuffix}\n </Typography>\n </View>\n </View>\n );\n};\n\ninterface HoldButtonLayoutedProps extends Omit<HoldButtonProps, 'style'> {\n ref: React.ForwardedRef<TouchableOpacityRef>;\n width: number;\n height: number;\n}\n\nconst HoldButtonLayouted = ({\n title,\n subtitlePrefix,\n subtitleSuffix,\n onFinished,\n holdTimeoutSecs = 3,\n width,\n height,\n disabled,\n ref,\n ...props\n}: HoldButtonLayoutedProps) => {\n const colorScheme = useAppColorScheme();\n\n const [isFinished, setFinished] = useState(false);\n useEffect(() => {\n if (isFinished) {\n onFinished();\n }\n }, [isFinished, onFinished]);\n\n const progress = useSharedValue(0);\n\n const onLongPress = useCallback(() => {\n // Fix for detox bug https://github.com/wix/Detox/issues/4754\n if (isFinished || progress.value !== 0) {\n return;\n }\n setFinished(true);\n }, [progress, isFinished]);\n\n const onPressIn = useCallback(() => {\n const holdTimeout = holdTimeoutSecs * 1000;\n\n // start moving forward\n progress.value = withTiming(\n 1,\n {\n duration: (1 - progress.value) * holdTimeout,\n easing: Easing.linear,\n },\n (finished) => {\n if (finished) {\n runOnJS(setFinished)(true);\n } else {\n // start moving back\n progress.value = withTiming(0, {\n duration: progress.value * holdTimeout,\n easing: Easing.linear,\n });\n }\n },\n );\n }, [holdTimeoutSecs, progress]);\n\n const onPressOut = useCallback(() => cancelAnimation(progress), [progress]);\n\n const translateX = useDerivedValue(() => progress.value * width, [width]);\n const movingRightStyle = useAnimatedStyle(() => ({\n transform: [{ translateX: translateX.value }],\n }), [translateX]);\n const movingLeftStyle = useAnimatedStyle(() => ({\n transform: [{ translateX: -translateX.value }],\n }), [translateX]);\n\n const contentProps = useMemo(\n () => ({ title, subtitlePrefix, subtitleSuffix, progress, holdTimeoutSecs, width, height }),\n [title, subtitlePrefix, subtitleSuffix, progress, holdTimeoutSecs, width, height],\n );\n\n return (\n <>\n <Content textColor={colorScheme.accent} disabled={disabled} {...contentProps} />\n {!disabled && (\n <Animated.View style={[styles.movingLayer, { backgroundColor: colorScheme.accent }, movingRightStyle]}>\n <Animated.View style={movingLeftStyle}>\n <Content textColor={colorScheme.accentText} {...contentProps} />\n </Animated.View>\n </Animated.View>\n )}\n <View style={styles.pressableLayer}>\n <TouchableOpacity\n accessibilityRole=\"button\"\n ref={ref}\n disabled={isFinished || disabled}\n onLongPress={onLongPress}\n onPressIn={isFinished ? undefined : onPressIn}\n onPressOut={isFinished ? undefined : onPressOut}\n activeOpacity={1}\n {...props}>\n <View style={{ width, height }} />\n </TouchableOpacity>\n </View>\n </>\n );\n};\n\n/**\n * Press and hold button component\n *\n * follows design: https://www.figma.com/design/cCmAyBQrQWCQZuDi85pJfe/Procivis-One-Wallet-Developments-2025?node-id=1-871\n */\nconst HoldButton = React.forwardRef<TouchableOpacityRef, HoldButtonProps>(\n ({ style, disabled, ...props }, ref) => {\n const colorScheme = useAppColorScheme();\n\n const [layout, setLayout] = useState<{ width: number; height: number }>();\n const onContainerLayout = useCallback(({ nativeEvent }: LayoutChangeEvent) => {\n setLayout({ width: nativeEvent.layout.width, height: nativeEvent.layout.height });\n }, []);\n\n return (\n <View\n onLayout={onContainerLayout}\n style={[\n styles.container,\n disabled && styles.disabled,\n {\n backgroundColor: disabled ? colorScheme.white : colorScheme.background,\n borderColor: colorScheme.background,\n },\n style,\n ]}>\n {layout && <HoldButtonLayouted ref={ref} disabled={disabled} {...props} {...layout} />}\n </View>\n );\n },\n);\n\nHoldButton.displayName = 'HoldButton';\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 12,\n borderWidth: 0,\n height: 68,\n overflow: 'hidden',\n },\n contentDisabled: {\n opacity: 0.4,\n },\n contentWrapper: {\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingBottom: 16,\n paddingHorizontal: 24,\n paddingTop: 12,\n },\n disabled: {\n borderWidth: 1,\n },\n movingLayer: {\n overflow: 'hidden',\n position: 'absolute',\n },\n pressableLayer: {\n position: 'absolute',\n },\n subtitle: {\n alignItems: 'flex-end',\n flexDirection: 'row',\n opacity: 0.8,\n },\n subtitleDisabled: {\n opacity: 1,\n },\n subtitleSecs: {\n alignItems: 'center',\n },\n subtitleSecsWrapper: {\n overflow: 'hidden',\n },\n});\n\nexport default HoldButton;\n"],"mappings":"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","ignoreList":[]}
@@ -44,12 +44,14 @@ export default ScanButton;
44
44
  const styles = StyleSheet.create({
45
45
  blurWrapper: {
46
46
  borderRadius: 28,
47
+ borderWidth: 0,
47
48
  height: 80,
48
49
  padding: 8,
49
50
  width: 104
50
51
  },
51
52
  button: {
52
53
  borderRadius: 28,
54
+ borderWidth: 0,
53
55
  height: 80,
54
56
  left: '50%',
55
57
  marginLeft: -52,
@@ -66,6 +68,7 @@ const styles = StyleSheet.create({
66
68
  iconWrapper: {
67
69
  alignItems: 'center',
68
70
  borderRadius: 20,
71
+ borderWidth: 0,
69
72
  height: '100%',
70
73
  justifyContent: 'center',
71
74
  width: '100%'
@@ -1 +1 @@
1
- {"version":3,"names":["React","StyleSheet","View","useSafeAreaInsets","TouchableOpacity","useAccessibilityTranslation","BlurView","ScanIcon","useAppColorScheme","hitSlop","top","left","bottom","right","ScanButton","forwardRef","style","props","ref","t","colorScheme","insets","createElement","_extends","accessibilityLabel","accessibilityRole","styles","button","Math","max","blurStyle","blurWrapper","iconWrapper","backgroundColor","accent","color","white","displayName","create","borderRadius","height","padding","width","marginLeft","position","shadowColor","shadowOffset","shadowOpacity","shadowRadius","alignItems","justifyContent"],"sources":["scan-button.tsx"],"sourcesContent":["import React from 'react';\nimport { Insets, StyleSheet, TouchableOpacityProps, View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { TouchableOpacity, TouchableOpacityRef } from '../accessibility/accessibilityHistoryWrappers';\nimport { useAccessibilityTranslation } from '../accessibility/accessibilityLanguage';\nimport BlurView from '../blur/blur-view';\nimport { ScanIcon } from '../icons';\nimport { useAppColorScheme } from '../theme';\n\nexport type ScanButtonProps = TouchableOpacityProps;\n\nconst hitSlop: Insets = { top: 10, left: 10, bottom: 10, right: 10 };\n\nconst ScanButton = React.forwardRef<TouchableOpacityRef, ScanButtonProps>(({ style, ...props }, ref) => {\n const t = useAccessibilityTranslation();\n const colorScheme = useAppColorScheme();\n const insets = useSafeAreaInsets();\n\n return (\n <TouchableOpacity\n accessibilityLabel={t('accessibility.icon.scan')}\n accessibilityRole=\"button\"\n hitSlop={hitSlop}\n ref={ref}\n style={[styles.button, { bottom: Math.max(24, insets.bottom) }, style]}\n {...props}>\n <BlurView blurStyle=\"soft\" style={styles.blurWrapper}>\n <View style={[styles.iconWrapper, { backgroundColor: colorScheme.accent }]}>\n <ScanIcon color={colorScheme.white} />\n </View>\n </BlurView>\n </TouchableOpacity>\n );\n});\n\nScanButton.displayName = 'ScanButton';\nexport default ScanButton;\n\nconst styles = StyleSheet.create({\n blurWrapper: {\n borderRadius: 28,\n height: 80,\n padding: 8,\n width: 104,\n },\n button: {\n borderRadius: 28,\n height: 80,\n left: '50%',\n marginLeft: -52,\n position: 'absolute',\n shadowColor: '#000000',\n shadowOffset: { height: 4, width: 0 },\n shadowOpacity: 0.2,\n shadowRadius: 24,\n width: 104,\n },\n iconWrapper: {\n alignItems: 'center',\n borderRadius: 20,\n height: '100%',\n justifyContent: 'center',\n width: '100%',\n },\n});\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAiBC,UAAU,EAAyBC,IAAI,QAAQ,cAAc;AAC9E,SAASC,iBAAiB,QAAQ,gCAAgC;AAElE,SAASC,gBAAgB,QAA6B,+CAA+C;AACrG,SAASC,2BAA2B,QAAQ,wCAAwC;AACpF,OAAOC,QAAQ,MAAM,mBAAmB;AACxC,SAASC,QAAQ,QAAQ,UAAU;AACnC,SAASC,iBAAiB,QAAQ,UAAU;AAI5C,MAAMC,OAAe,GAAG;EAAEC,GAAG,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,MAAM,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAEpE,MAAMC,UAAU,gBAAGd,KAAK,CAACe,UAAU,CAAuC,CAAC;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACtG,MAAMC,CAAC,GAAGd,2BAA2B,CAAC,CAAC;EACvC,MAAMe,WAAW,GAAGZ,iBAAiB,CAAC,CAAC;EACvC,MAAMa,MAAM,GAAGlB,iBAAiB,CAAC,CAAC;EAElC,oBACEH,KAAA,CAAAsB,aAAA,CAAClB,gBAAgB,EAAAmB,QAAA;IACfC,kBAAkB,EAAEL,CAAC,CAAC,yBAAyB,CAAE;IACjDM,iBAAiB,EAAC,QAAQ;IAC1BhB,OAAO,EAAEA,OAAQ;IACjBS,GAAG,EAAEA,GAAI;IACTF,KAAK,EAAE,CAACU,MAAM,CAACC,MAAM,EAAE;MAAEf,MAAM,EAAEgB,IAAI,CAACC,GAAG,CAAC,EAAE,EAAER,MAAM,CAACT,MAAM;IAAE,CAAC,EAAEI,KAAK;EAAE,GACnEC,KAAK,gBACTjB,KAAA,CAAAsB,aAAA,CAAChB,QAAQ;IAACwB,SAAS,EAAC,MAAM;IAACd,KAAK,EAAEU,MAAM,CAACK;EAAY,gBACnD/B,KAAA,CAAAsB,aAAA,CAACpB,IAAI;IAACc,KAAK,EAAE,CAACU,MAAM,CAACM,WAAW,EAAE;MAAEC,eAAe,EAAEb,WAAW,CAACc;IAAO,CAAC;EAAE,gBACzElC,KAAA,CAAAsB,aAAA,CAACf,QAAQ;IAAC4B,KAAK,EAAEf,WAAW,CAACgB;EAAM,CAAE,CACjC,CACE,CACM,CAAC;AAEvB,CAAC,CAAC;AAEFtB,UAAU,CAACuB,WAAW,GAAG,YAAY;AACrC,eAAevB,UAAU;AAEzB,MAAMY,MAAM,GAAGzB,UAAU,CAACqC,MAAM,CAAC;EAC/BP,WAAW,EAAE;IACXQ,YAAY,EAAE,EAAE;IAChBC,MAAM,EAAE,EAAE;IACVC,OAAO,EAAE,CAAC;IACVC,KAAK,EAAE;EACT,CAAC;EACDf,MAAM,EAAE;IACNY,YAAY,EAAE,EAAE;IAChBC,MAAM,EAAE,EAAE;IACV7B,IAAI,EAAE,KAAK;IACXgC,UAAU,EAAE,CAAC,EAAE;IACfC,QAAQ,EAAE,UAAU;IACpBC,WAAW,EAAE,SAAS;IACtBC,YAAY,EAAE;MAAEN,MAAM,EAAE,CAAC;MAAEE,KAAK,EAAE;IAAE,CAAC;IACrCK,aAAa,EAAE,GAAG;IAClBC,YAAY,EAAE,EAAE;IAChBN,KAAK,EAAE;EACT,CAAC;EACDV,WAAW,EAAE;IACXiB,UAAU,EAAE,QAAQ;IACpBV,YAAY,EAAE,EAAE;IAChBC,MAAM,EAAE,MAAM;IACdU,cAAc,EAAE,QAAQ;IACxBR,KAAK,EAAE;EACT;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","StyleSheet","View","useSafeAreaInsets","TouchableOpacity","useAccessibilityTranslation","BlurView","ScanIcon","useAppColorScheme","hitSlop","top","left","bottom","right","ScanButton","forwardRef","style","props","ref","t","colorScheme","insets","createElement","_extends","accessibilityLabel","accessibilityRole","styles","button","Math","max","blurStyle","blurWrapper","iconWrapper","backgroundColor","accent","color","white","displayName","create","borderRadius","borderWidth","height","padding","width","marginLeft","position","shadowColor","shadowOffset","shadowOpacity","shadowRadius","alignItems","justifyContent"],"sources":["scan-button.tsx"],"sourcesContent":["import React from 'react';\nimport { Insets, StyleSheet, TouchableOpacityProps, View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { TouchableOpacity, TouchableOpacityRef } from '../accessibility/accessibilityHistoryWrappers';\nimport { useAccessibilityTranslation } from '../accessibility/accessibilityLanguage';\nimport BlurView from '../blur/blur-view';\nimport { ScanIcon } from '../icons';\nimport { useAppColorScheme } from '../theme';\n\nexport type ScanButtonProps = TouchableOpacityProps;\n\nconst hitSlop: Insets = { top: 10, left: 10, bottom: 10, right: 10 };\n\nconst ScanButton = React.forwardRef<TouchableOpacityRef, ScanButtonProps>(({ style, ...props }, ref) => {\n const t = useAccessibilityTranslation();\n const colorScheme = useAppColorScheme();\n const insets = useSafeAreaInsets();\n\n return (\n <TouchableOpacity\n accessibilityLabel={t('accessibility.icon.scan')}\n accessibilityRole=\"button\"\n hitSlop={hitSlop}\n ref={ref}\n style={[styles.button, { bottom: Math.max(24, insets.bottom) }, style]}\n {...props}>\n <BlurView blurStyle=\"soft\" style={styles.blurWrapper}>\n <View style={[styles.iconWrapper, { backgroundColor: colorScheme.accent }]}>\n <ScanIcon color={colorScheme.white} />\n </View>\n </BlurView>\n </TouchableOpacity>\n );\n});\n\nScanButton.displayName = 'ScanButton';\nexport default ScanButton;\n\nconst styles = StyleSheet.create({\n blurWrapper: {\n borderRadius: 28,\n borderWidth: 0,\n height: 80,\n padding: 8,\n width: 104,\n },\n button: {\n borderRadius: 28,\n borderWidth: 0,\n height: 80,\n left: '50%',\n marginLeft: -52,\n position: 'absolute',\n shadowColor: '#000000',\n shadowOffset: { height: 4, width: 0 },\n shadowOpacity: 0.2,\n shadowRadius: 24,\n width: 104,\n },\n iconWrapper: {\n alignItems: 'center',\n borderRadius: 20,\n borderWidth: 0,\n height: '100%',\n justifyContent: 'center',\n width: '100%',\n },\n});\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAiBC,UAAU,EAAyBC,IAAI,QAAQ,cAAc;AAC9E,SAASC,iBAAiB,QAAQ,gCAAgC;AAElE,SAASC,gBAAgB,QAA6B,+CAA+C;AACrG,SAASC,2BAA2B,QAAQ,wCAAwC;AACpF,OAAOC,QAAQ,MAAM,mBAAmB;AACxC,SAASC,QAAQ,QAAQ,UAAU;AACnC,SAASC,iBAAiB,QAAQ,UAAU;AAI5C,MAAMC,OAAe,GAAG;EAAEC,GAAG,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,MAAM,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAEpE,MAAMC,UAAU,gBAAGd,KAAK,CAACe,UAAU,CAAuC,CAAC;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACtG,MAAMC,CAAC,GAAGd,2BAA2B,CAAC,CAAC;EACvC,MAAMe,WAAW,GAAGZ,iBAAiB,CAAC,CAAC;EACvC,MAAMa,MAAM,GAAGlB,iBAAiB,CAAC,CAAC;EAElC,oBACEH,KAAA,CAAAsB,aAAA,CAAClB,gBAAgB,EAAAmB,QAAA;IACfC,kBAAkB,EAAEL,CAAC,CAAC,yBAAyB,CAAE;IACjDM,iBAAiB,EAAC,QAAQ;IAC1BhB,OAAO,EAAEA,OAAQ;IACjBS,GAAG,EAAEA,GAAI;IACTF,KAAK,EAAE,CAACU,MAAM,CAACC,MAAM,EAAE;MAAEf,MAAM,EAAEgB,IAAI,CAACC,GAAG,CAAC,EAAE,EAAER,MAAM,CAACT,MAAM;IAAE,CAAC,EAAEI,KAAK;EAAE,GACnEC,KAAK,gBACTjB,KAAA,CAAAsB,aAAA,CAAChB,QAAQ;IAACwB,SAAS,EAAC,MAAM;IAACd,KAAK,EAAEU,MAAM,CAACK;EAAY,gBACnD/B,KAAA,CAAAsB,aAAA,CAACpB,IAAI;IAACc,KAAK,EAAE,CAACU,MAAM,CAACM,WAAW,EAAE;MAAEC,eAAe,EAAEb,WAAW,CAACc;IAAO,CAAC;EAAE,gBACzElC,KAAA,CAAAsB,aAAA,CAACf,QAAQ;IAAC4B,KAAK,EAAEf,WAAW,CAACgB;EAAM,CAAE,CACjC,CACE,CACM,CAAC;AAEvB,CAAC,CAAC;AAEFtB,UAAU,CAACuB,WAAW,GAAG,YAAY;AACrC,eAAevB,UAAU;AAEzB,MAAMY,MAAM,GAAGzB,UAAU,CAACqC,MAAM,CAAC;EAC/BP,WAAW,EAAE;IACXQ,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,CAAC;IACdC,MAAM,EAAE,EAAE;IACVC,OAAO,EAAE,CAAC;IACVC,KAAK,EAAE;EACT,CAAC;EACDhB,MAAM,EAAE;IACNY,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,CAAC;IACdC,MAAM,EAAE,EAAE;IACV9B,IAAI,EAAE,KAAK;IACXiC,UAAU,EAAE,CAAC,EAAE;IACfC,QAAQ,EAAE,UAAU;IACpBC,WAAW,EAAE,SAAS;IACtBC,YAAY,EAAE;MAAEN,MAAM,EAAE,CAAC;MAAEE,KAAK,EAAE;IAAE,CAAC;IACrCK,aAAa,EAAE,GAAG;IAClBC,YAAY,EAAE,EAAE;IAChBN,KAAK,EAAE;EACT,CAAC;EACDX,WAAW,EAAE;IACXkB,UAAU,EAAE,QAAQ;IACpBX,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,CAAC;IACdC,MAAM,EAAE,MAAM;IACdU,cAAc,EAAE,QAAQ;IACxBR,KAAK,EAAE;EACT;AACF,CAAC,CAAC","ignoreList":[]}
@@ -31,6 +31,7 @@ const ShareButton = ({
31
31
  const styles = StyleSheet.create({
32
32
  button: {
33
33
  borderRadius: 5,
34
+ borderWidth: 0,
34
35
  overflow: 'hidden'
35
36
  },
36
37
  container: {
@@ -1 +1 @@
1
- {"version":3,"names":["React","StyleSheet","View","concatTestID","TouchableHighlight","LinkIcon","Typography","useAppColorScheme","ShareButton","onPress","style","title","testID","colorScheme","createElement","styles","button","container","backgroundColor","white","color","text","preset","create","borderRadius","overflow","alignItems","flexDirection","gap","height","paddingLeft","paddingRight","paddingVertical"],"sources":["share-button.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { concatTestID } from '../../utils';\nimport { TouchableHighlight } from '../accessibility';\nimport { LinkIcon } from '../icons';\nimport { Typography } from '../text';\nimport { useAppColorScheme } from '../theme';\n\nexport type ShareButtonProps = {\n onPress?: () => void;\n style?: StyleProp<ViewStyle>;\n title?: string;\n testID?: string;\n};\n\nconst ShareButton: FC<ShareButtonProps> = ({\n onPress,\n style,\n title,\n testID,\n}) => {\n const colorScheme = useAppColorScheme();\n\n return (\n <TouchableHighlight onPress={onPress} style={[styles.button, style]} testID={testID}>\n <View style={[styles.container, { backgroundColor: colorScheme.white }]}>\n <LinkIcon color={colorScheme.text} />\n {title && (\n <Typography testID={concatTestID(testID, 'title')} color={colorScheme.text} preset=\"s\">\n {title}\n </Typography>\n )}\n </View>\n </TouchableHighlight>\n );\n};\n\nconst styles = StyleSheet.create({\n button: {\n borderRadius: 5,\n overflow: 'hidden',\n },\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n gap: 5,\n height: 32,\n paddingLeft: 4,\n paddingRight: 6,\n paddingVertical: 5,\n },\n});\n\nexport default ShareButton;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAc,OAAO;AACjC,SAAoBC,UAAU,EAAEC,IAAI,QAAmB,cAAc;AAErE,SAASC,YAAY,QAAQ,aAAa;AAC1C,SAASC,kBAAkB,QAAQ,kBAAkB;AACrD,SAASC,QAAQ,QAAQ,UAAU;AACnC,SAASC,UAAU,QAAQ,SAAS;AACpC,SAASC,iBAAiB,QAAQ,UAAU;AAS5C,MAAMC,WAAiC,GAAGA,CAAC;EACzCC,OAAO;EACPC,KAAK;EACLC,KAAK;EACLC;AACF,CAAC,KAAK;EACJ,MAAMC,WAAW,GAAGN,iBAAiB,CAAC,CAAC;EAEvC,oBACEP,KAAA,CAAAc,aAAA,CAACV,kBAAkB;IAACK,OAAO,EAAEA,OAAQ;IAACC,KAAK,EAAE,CAACK,MAAM,CAACC,MAAM,EAAEN,KAAK,CAAE;IAACE,MAAM,EAAEA;EAAO,gBAClFZ,KAAA,CAAAc,aAAA,CAACZ,IAAI;IAACQ,KAAK,EAAE,CAACK,MAAM,CAACE,SAAS,EAAE;MAAEC,eAAe,EAAEL,WAAW,CAACM;IAAM,CAAC;EAAE,gBACtEnB,KAAA,CAAAc,aAAA,CAACT,QAAQ;IAACe,KAAK,EAAEP,WAAW,CAACQ;EAAK,CAAE,CAAC,EACpCV,KAAK,iBACJX,KAAA,CAAAc,aAAA,CAACR,UAAU;IAACM,MAAM,EAAET,YAAY,CAACS,MAAM,EAAE,OAAO,CAAE;IAACQ,KAAK,EAAEP,WAAW,CAACQ,IAAK;IAACC,MAAM,EAAC;EAAG,GACnFX,KACS,CAEV,CACY,CAAC;AAEzB,CAAC;AAED,MAAMI,MAAM,GAAGd,UAAU,CAACsB,MAAM,CAAC;EAC/BP,MAAM,EAAE;IACNQ,YAAY,EAAE,CAAC;IACfC,QAAQ,EAAE;EACZ,CAAC;EACDR,SAAS,EAAE;IACTS,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,KAAK;IACpBC,GAAG,EAAE,CAAC;IACNC,MAAM,EAAE,EAAE;IACVC,WAAW,EAAE,CAAC;IACdC,YAAY,EAAE,CAAC;IACfC,eAAe,EAAE;EACnB;AACF,CAAC,CAAC;AAEF,eAAexB,WAAW","ignoreList":[]}
1
+ {"version":3,"names":["React","StyleSheet","View","concatTestID","TouchableHighlight","LinkIcon","Typography","useAppColorScheme","ShareButton","onPress","style","title","testID","colorScheme","createElement","styles","button","container","backgroundColor","white","color","text","preset","create","borderRadius","borderWidth","overflow","alignItems","flexDirection","gap","height","paddingLeft","paddingRight","paddingVertical"],"sources":["share-button.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { concatTestID } from '../../utils';\nimport { TouchableHighlight } from '../accessibility';\nimport { LinkIcon } from '../icons';\nimport { Typography } from '../text';\nimport { useAppColorScheme } from '../theme';\n\nexport type ShareButtonProps = {\n onPress?: () => void;\n style?: StyleProp<ViewStyle>;\n title?: string;\n testID?: string;\n};\n\nconst ShareButton: FC<ShareButtonProps> = ({\n onPress,\n style,\n title,\n testID,\n}) => {\n const colorScheme = useAppColorScheme();\n\n return (\n <TouchableHighlight onPress={onPress} style={[styles.button, style]} testID={testID}>\n <View style={[styles.container, { backgroundColor: colorScheme.white }]}>\n <LinkIcon color={colorScheme.text} />\n {title && (\n <Typography testID={concatTestID(testID, 'title')} color={colorScheme.text} preset=\"s\">\n {title}\n </Typography>\n )}\n </View>\n </TouchableHighlight>\n );\n};\n\nconst styles = StyleSheet.create({\n button: {\n borderRadius: 5,\n borderWidth: 0,\n overflow: 'hidden',\n },\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n gap: 5,\n height: 32,\n paddingLeft: 4,\n paddingRight: 6,\n paddingVertical: 5,\n },\n});\n\nexport default ShareButton;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAc,OAAO;AACjC,SAAoBC,UAAU,EAAEC,IAAI,QAAmB,cAAc;AAErE,SAASC,YAAY,QAAQ,aAAa;AAC1C,SAASC,kBAAkB,QAAQ,kBAAkB;AACrD,SAASC,QAAQ,QAAQ,UAAU;AACnC,SAASC,UAAU,QAAQ,SAAS;AACpC,SAASC,iBAAiB,QAAQ,UAAU;AAS5C,MAAMC,WAAiC,GAAGA,CAAC;EACzCC,OAAO;EACPC,KAAK;EACLC,KAAK;EACLC;AACF,CAAC,KAAK;EACJ,MAAMC,WAAW,GAAGN,iBAAiB,CAAC,CAAC;EAEvC,oBACEP,KAAA,CAAAc,aAAA,CAACV,kBAAkB;IAACK,OAAO,EAAEA,OAAQ;IAACC,KAAK,EAAE,CAACK,MAAM,CAACC,MAAM,EAAEN,KAAK,CAAE;IAACE,MAAM,EAAEA;EAAO,gBAClFZ,KAAA,CAAAc,aAAA,CAACZ,IAAI;IAACQ,KAAK,EAAE,CAACK,MAAM,CAACE,SAAS,EAAE;MAAEC,eAAe,EAAEL,WAAW,CAACM;IAAM,CAAC;EAAE,gBACtEnB,KAAA,CAAAc,aAAA,CAACT,QAAQ;IAACe,KAAK,EAAEP,WAAW,CAACQ;EAAK,CAAE,CAAC,EACpCV,KAAK,iBACJX,KAAA,CAAAc,aAAA,CAACR,UAAU;IAACM,MAAM,EAAET,YAAY,CAACS,MAAM,EAAE,OAAO,CAAE;IAACQ,KAAK,EAAEP,WAAW,CAACQ,IAAK;IAACC,MAAM,EAAC;EAAG,GACnFX,KACS,CAEV,CACY,CAAC;AAEzB,CAAC;AAED,MAAMI,MAAM,GAAGd,UAAU,CAACsB,MAAM,CAAC;EAC/BP,MAAM,EAAE;IACNQ,YAAY,EAAE,CAAC;IACfC,WAAW,EAAE,CAAC;IACdC,QAAQ,EAAE;EACZ,CAAC;EACDT,SAAS,EAAE;IACTU,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,KAAK;IACpBC,GAAG,EAAE,CAAC;IACNC,MAAM,EAAE,EAAE;IACVC,WAAW,EAAE,CAAC;IACdC,YAAY,EAAE,CAAC;IACfC,eAAe,EAAE;EACnB;AACF,CAAC,CAAC;AAEF,eAAezB,WAAW","ignoreList":[]}
@@ -49,6 +49,7 @@ const styles = StyleSheet.create({
49
49
  container: {
50
50
  alignItems: 'center',
51
51
  borderRadius: 12,
52
+ borderWidth: 0,
52
53
  flexDirection: 'row',
53
54
  padding: 12
54
55
  },
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","StyleSheet","View","TouchableOpacity","useAccessibilityTranslation","CheckedIcon","Typography","useAppColorScheme","Checkbox","style","text","value","disabled","onValueChanged","props","t","colorScheme","onPress","createElement","_extends","activeOpacity","accessibilityRole","accessibilityState","accessibilityValue","undefined","styles","container","backgroundColor","background","unchecked","borderColor","grayDark","white","preset","color","create","alignItems","borderRadius","flexDirection","padding","opacity","flex","marginLeft","borderWidth","height","width"],"sources":["checkbox.tsx"],"sourcesContent":["import React, { FC, ReactNode, useCallback } from 'react';\nimport { StyleSheet, TouchableOpacityProps, View } from 'react-native';\n\nimport { TouchableOpacity } from '../accessibility/accessibilityHistoryWrappers';\nimport { useAccessibilityTranslation } from '../accessibility/accessibilityLanguage';\nimport { CheckedIcon } from '../icons/selector';\nimport { Typography } from '../text';\nimport { useAppColorScheme } from '../theme';\n\nexport interface CheckboxProps extends TouchableOpacityProps {\n value: boolean;\n text: ReactNode;\n onValueChanged: (value: boolean) => void;\n disabled?: boolean;\n}\n\nexport const Checkbox: FC<CheckboxProps> = ({ style, text, value, disabled, onValueChanged, ...props }) => {\n const t = useAccessibilityTranslation();\n const colorScheme = useAppColorScheme();\n\n const onPress = useCallback(() => onValueChanged(!value), [onValueChanged, value]);\n\n return (\n <TouchableOpacity\n activeOpacity={0.8}\n accessibilityRole=\"checkbox\"\n accessibilityState={{ disabled }}\n accessibilityValue={\n disabled ? undefined : { text: t(value ? 'accessibility.control.checked' : 'accessibility.control.unchecked') }\n }\n disabled={disabled}\n style={[styles.container, { backgroundColor: colorScheme.background }, style]}\n onPress={onPress}\n {...props}>\n {value ? (\n <CheckedIcon style={disabled && styles.disabled} />\n ) : (\n <View\n style={[\n styles.unchecked,\n {\n borderColor: colorScheme.grayDark,\n backgroundColor: disabled ? colorScheme.background : colorScheme.white,\n },\n ]}\n />\n )}\n <View style={[styles.text, disabled && styles.disabled]}>\n {typeof text === 'string' ? (\n <Typography preset=\"xs/line-height-small\" color={colorScheme.text}>\n {text}\n </Typography>\n ) : (\n text\n )}\n </View>\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n borderRadius: 12,\n flexDirection: 'row',\n padding: 12,\n },\n disabled: {\n opacity: 0.4,\n },\n text: {\n flex: 1,\n marginLeft: 12,\n },\n unchecked: {\n borderRadius: 12,\n borderWidth: 1,\n height: 24,\n width: 24,\n },\n});\n"],"mappings":";AAAA,OAAOA,KAAK,IAAmBC,WAAW,QAAQ,OAAO;AACzD,SAASC,UAAU,EAAyBC,IAAI,QAAQ,cAAc;AAEtE,SAASC,gBAAgB,QAAQ,+CAA+C;AAChF,SAASC,2BAA2B,QAAQ,wCAAwC;AACpF,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,UAAU,QAAQ,SAAS;AACpC,SAASC,iBAAiB,QAAQ,UAAU;AAS5C,OAAO,MAAMC,QAA2B,GAAGA,CAAC;EAAEC,KAAK;EAAEC,IAAI;EAAEC,KAAK;EAAEC,QAAQ;EAAEC,cAAc;EAAE,GAAGC;AAAM,CAAC,KAAK;EACzG,MAAMC,CAAC,GAAGX,2BAA2B,CAAC,CAAC;EACvC,MAAMY,WAAW,GAAGT,iBAAiB,CAAC,CAAC;EAEvC,MAAMU,OAAO,GAAGjB,WAAW,CAAC,MAAMa,cAAc,CAAC,CAACF,KAAK,CAAC,EAAE,CAACE,cAAc,EAAEF,KAAK,CAAC,CAAC;EAElF,oBACEZ,KAAA,CAAAmB,aAAA,CAACf,gBAAgB,EAAAgB,QAAA;IACfC,aAAa,EAAE,GAAI;IACnBC,iBAAiB,EAAC,UAAU;IAC5BC,kBAAkB,EAAE;MAAEV;IAAS,CAAE;IACjCW,kBAAkB,EAChBX,QAAQ,GAAGY,SAAS,GAAG;MAAEd,IAAI,EAAEK,CAAC,CAACJ,KAAK,GAAG,+BAA+B,GAAG,iCAAiC;IAAE,CAC/G;IACDC,QAAQ,EAAEA,QAAS;IACnBH,KAAK,EAAE,CAACgB,MAAM,CAACC,SAAS,EAAE;MAAEC,eAAe,EAAEX,WAAW,CAACY;IAAW,CAAC,EAAEnB,KAAK,CAAE;IAC9EQ,OAAO,EAAEA;EAAQ,GACbH,KAAK,GACRH,KAAK,gBACJZ,KAAA,CAAAmB,aAAA,CAACb,WAAW;IAACI,KAAK,EAAEG,QAAQ,IAAIa,MAAM,CAACb;EAAS,CAAE,CAAC,gBAEnDb,KAAA,CAAAmB,aAAA,CAAChB,IAAI;IACHO,KAAK,EAAE,CACLgB,MAAM,CAACI,SAAS,EAChB;MACEC,WAAW,EAAEd,WAAW,CAACe,QAAQ;MACjCJ,eAAe,EAAEf,QAAQ,GAAGI,WAAW,CAACY,UAAU,GAAGZ,WAAW,CAACgB;IACnE,CAAC;EACD,CACH,CACF,eACDjC,KAAA,CAAAmB,aAAA,CAAChB,IAAI;IAACO,KAAK,EAAE,CAACgB,MAAM,CAACf,IAAI,EAAEE,QAAQ,IAAIa,MAAM,CAACb,QAAQ;EAAE,GACrD,OAAOF,IAAI,KAAK,QAAQ,gBACvBX,KAAA,CAAAmB,aAAA,CAACZ,UAAU;IAAC2B,MAAM,EAAC,sBAAsB;IAACC,KAAK,EAAElB,WAAW,CAACN;EAAK,GAC/DA,IACS,CAAC,GAEbA,IAEE,CACU,CAAC;AAEvB,CAAC;AAED,MAAMe,MAAM,GAAGxB,UAAU,CAACkC,MAAM,CAAC;EAC/BT,SAAS,EAAE;IACTU,UAAU,EAAE,QAAQ;IACpBC,YAAY,EAAE,EAAE;IAChBC,aAAa,EAAE,KAAK;IACpBC,OAAO,EAAE;EACX,CAAC;EACD3B,QAAQ,EAAE;IACR4B,OAAO,EAAE;EACX,CAAC;EACD9B,IAAI,EAAE;IACJ+B,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE;EACd,CAAC;EACDb,SAAS,EAAE;IACTQ,YAAY,EAAE,EAAE;IAChBM,WAAW,EAAE,CAAC;IACdC,MAAM,EAAE,EAAE;IACVC,KAAK,EAAE;EACT;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","StyleSheet","View","TouchableOpacity","useAccessibilityTranslation","CheckedIcon","Typography","useAppColorScheme","Checkbox","style","text","value","disabled","onValueChanged","props","t","colorScheme","onPress","createElement","_extends","activeOpacity","accessibilityRole","accessibilityState","accessibilityValue","undefined","styles","container","backgroundColor","background","unchecked","borderColor","grayDark","white","preset","color","create","alignItems","borderRadius","borderWidth","flexDirection","padding","opacity","flex","marginLeft","height","width"],"sources":["checkbox.tsx"],"sourcesContent":["import React, { FC, ReactNode, useCallback } from 'react';\nimport { StyleSheet, TouchableOpacityProps, View } from 'react-native';\n\nimport { TouchableOpacity } from '../accessibility/accessibilityHistoryWrappers';\nimport { useAccessibilityTranslation } from '../accessibility/accessibilityLanguage';\nimport { CheckedIcon } from '../icons/selector';\nimport { Typography } from '../text';\nimport { useAppColorScheme } from '../theme';\n\nexport interface CheckboxProps extends TouchableOpacityProps {\n value: boolean;\n text: ReactNode;\n onValueChanged: (value: boolean) => void;\n disabled?: boolean;\n}\n\nexport const Checkbox: FC<CheckboxProps> = ({ style, text, value, disabled, onValueChanged, ...props }) => {\n const t = useAccessibilityTranslation();\n const colorScheme = useAppColorScheme();\n\n const onPress = useCallback(() => onValueChanged(!value), [onValueChanged, value]);\n\n return (\n <TouchableOpacity\n activeOpacity={0.8}\n accessibilityRole=\"checkbox\"\n accessibilityState={{ disabled }}\n accessibilityValue={\n disabled ? undefined : { text: t(value ? 'accessibility.control.checked' : 'accessibility.control.unchecked') }\n }\n disabled={disabled}\n style={[styles.container, { backgroundColor: colorScheme.background }, style]}\n onPress={onPress}\n {...props}>\n {value ? (\n <CheckedIcon style={disabled && styles.disabled} />\n ) : (\n <View\n style={[\n styles.unchecked,\n {\n borderColor: colorScheme.grayDark,\n backgroundColor: disabled ? colorScheme.background : colorScheme.white,\n },\n ]}\n />\n )}\n <View style={[styles.text, disabled && styles.disabled]}>\n {typeof text === 'string' ? (\n <Typography preset=\"xs/line-height-small\" color={colorScheme.text}>\n {text}\n </Typography>\n ) : (\n text\n )}\n </View>\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n borderRadius: 12,\n borderWidth: 0,\n flexDirection: 'row',\n padding: 12,\n },\n disabled: {\n opacity: 0.4,\n },\n text: {\n flex: 1,\n marginLeft: 12,\n },\n unchecked: {\n borderRadius: 12,\n borderWidth: 1,\n height: 24,\n width: 24,\n },\n});\n"],"mappings":";AAAA,OAAOA,KAAK,IAAmBC,WAAW,QAAQ,OAAO;AACzD,SAASC,UAAU,EAAyBC,IAAI,QAAQ,cAAc;AAEtE,SAASC,gBAAgB,QAAQ,+CAA+C;AAChF,SAASC,2BAA2B,QAAQ,wCAAwC;AACpF,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,UAAU,QAAQ,SAAS;AACpC,SAASC,iBAAiB,QAAQ,UAAU;AAS5C,OAAO,MAAMC,QAA2B,GAAGA,CAAC;EAAEC,KAAK;EAAEC,IAAI;EAAEC,KAAK;EAAEC,QAAQ;EAAEC,cAAc;EAAE,GAAGC;AAAM,CAAC,KAAK;EACzG,MAAMC,CAAC,GAAGX,2BAA2B,CAAC,CAAC;EACvC,MAAMY,WAAW,GAAGT,iBAAiB,CAAC,CAAC;EAEvC,MAAMU,OAAO,GAAGjB,WAAW,CAAC,MAAMa,cAAc,CAAC,CAACF,KAAK,CAAC,EAAE,CAACE,cAAc,EAAEF,KAAK,CAAC,CAAC;EAElF,oBACEZ,KAAA,CAAAmB,aAAA,CAACf,gBAAgB,EAAAgB,QAAA;IACfC,aAAa,EAAE,GAAI;IACnBC,iBAAiB,EAAC,UAAU;IAC5BC,kBAAkB,EAAE;MAAEV;IAAS,CAAE;IACjCW,kBAAkB,EAChBX,QAAQ,GAAGY,SAAS,GAAG;MAAEd,IAAI,EAAEK,CAAC,CAACJ,KAAK,GAAG,+BAA+B,GAAG,iCAAiC;IAAE,CAC/G;IACDC,QAAQ,EAAEA,QAAS;IACnBH,KAAK,EAAE,CAACgB,MAAM,CAACC,SAAS,EAAE;MAAEC,eAAe,EAAEX,WAAW,CAACY;IAAW,CAAC,EAAEnB,KAAK,CAAE;IAC9EQ,OAAO,EAAEA;EAAQ,GACbH,KAAK,GACRH,KAAK,gBACJZ,KAAA,CAAAmB,aAAA,CAACb,WAAW;IAACI,KAAK,EAAEG,QAAQ,IAAIa,MAAM,CAACb;EAAS,CAAE,CAAC,gBAEnDb,KAAA,CAAAmB,aAAA,CAAChB,IAAI;IACHO,KAAK,EAAE,CACLgB,MAAM,CAACI,SAAS,EAChB;MACEC,WAAW,EAAEd,WAAW,CAACe,QAAQ;MACjCJ,eAAe,EAAEf,QAAQ,GAAGI,WAAW,CAACY,UAAU,GAAGZ,WAAW,CAACgB;IACnE,CAAC;EACD,CACH,CACF,eACDjC,KAAA,CAAAmB,aAAA,CAAChB,IAAI;IAACO,KAAK,EAAE,CAACgB,MAAM,CAACf,IAAI,EAAEE,QAAQ,IAAIa,MAAM,CAACb,QAAQ;EAAE,GACrD,OAAOF,IAAI,KAAK,QAAQ,gBACvBX,KAAA,CAAAmB,aAAA,CAACZ,UAAU;IAAC2B,MAAM,EAAC,sBAAsB;IAACC,KAAK,EAAElB,WAAW,CAACN;EAAK,GAC/DA,IACS,CAAC,GAEbA,IAEE,CACU,CAAC;AAEvB,CAAC;AAED,MAAMe,MAAM,GAAGxB,UAAU,CAACkC,MAAM,CAAC;EAC/BT,SAAS,EAAE;IACTU,UAAU,EAAE,QAAQ;IACpBC,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,CAAC;IACdC,aAAa,EAAE,KAAK;IACpBC,OAAO,EAAE;EACX,CAAC;EACD5B,QAAQ,EAAE;IACR6B,OAAO,EAAE;EACX,CAAC;EACD/B,IAAI,EAAE;IACJgC,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE;EACd,CAAC;EACDd,SAAS,EAAE;IACTQ,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,CAAC;IACdM,MAAM,EAAE,EAAE;IACVC,KAAK,EAAE;EACT;AACF,CAAC,CAAC","ignoreList":[]}
@@ -111,6 +111,7 @@ const CredentialCard = ({
111
111
  const styles = StyleSheet.create({
112
112
  card: {
113
113
  borderRadius: 10,
114
+ borderWidth: 0,
114
115
  overflow: 'hidden'
115
116
  },
116
117
  cardButton: {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useMemo","Image","StyleSheet","View","concatTestID","TouchableOpacity","BlurView","ImageOrComponent","Typography","useAppColorScheme","CredentialHeader","CarouselComponent","CredentialCardShadow","shadowColor","shadowOffset","height","width","shadowOpacity","shadowRadius","CredentialCardRatio","CredentialCard","cardCarouselImages","cardImage","color","credentialId","header","notice","onCardPress","onHeaderPress","style","testID","_header$color","colorScheme","cardSize","Math","ceil","headerPressHandler","cardPressHandler","noticeIconView","noticeIcon","undefined","isValidElement","NoticeIconComponent","createElement","shouldShowCarousel","styles","card","source","imageSource","image","String","backgroundColor","cardButton","onPress","carousel","imagesToRender","carouselSize","activeOpacity","disabled","_extends","blurStyle","noticeTextWrapper","text","preset","noticeText","create","borderRadius","overflow","position","marginTop","top","bottom","columnGap","flexDirection","justifyContent","paddingBottom","paddingHorizontal","paddingTop","marginVertical","flex"],"sources":["credential-card.tsx"],"sourcesContent":["import React, { FC, useCallback, useMemo } from 'react';\nimport { ColorValue, Image, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { concatTestID } from '../../../utils/testID';\nimport { TouchableOpacity } from '../../accessibility/accessibilityHistoryWrappers';\nimport BlurView from '../../blur/blur-view';\nimport ImageOrComponent, { ImageOrComponentSource } from '../../image/image-or-component';\nimport Typography from '../../text/typography';\nimport { useAppColorScheme } from '../../theme/color-scheme-context';\nimport CredentialHeader, { CredentialHeaderProps } from './credential-header';\nimport CarouselComponent, { CarouselImage } from './credential-image-carousel';\n\nexport const CredentialCardShadow: Pick<ViewStyle, 'shadowColor' | 'shadowOffset' | 'shadowOpacity' | 'shadowRadius'> =\n {\n shadowColor: '#10274226',\n shadowOffset: {\n height: 5,\n width: 0,\n },\n shadowOpacity: 1,\n shadowRadius: 7,\n };\n\nexport const CredentialCardRatio = 18 / 11;\n\nexport type CredentialCardNotice = {\n text: string;\n noticeIcon?: React.ComponentType<any> | React.ReactElement;\n};\n\nexport type CredentialCardProps = {\n cardCarouselImages?: CarouselImage[];\n cardImage?: ImageOrComponentSource;\n color?: ColorValue;\n credentialId?: string;\n header: CredentialHeaderProps;\n notice?: CredentialCardNotice;\n onCardPress?: (credentialId?: string) => void;\n onHeaderPress?: (credentialId?: string) => void;\n style?: StyleProp<ViewStyle>;\n testID?: string;\n width: number;\n};\n\nconst CredentialCard: FC<CredentialCardProps> = ({\n cardCarouselImages = [],\n cardImage,\n color = '#5A69F3',\n credentialId,\n header,\n notice,\n onCardPress,\n onHeaderPress,\n style,\n testID,\n width,\n}) => {\n const colorScheme = useAppColorScheme();\n const cardSize = {\n width,\n height: Math.ceil(width / CredentialCardRatio),\n };\n\n const headerPressHandler = useCallback(() => {\n onHeaderPress?.(credentialId);\n }, [credentialId, onHeaderPress]);\n\n const cardPressHandler = useCallback(() => {\n onCardPress?.(credentialId);\n }, [credentialId, onCardPress]);\n\n const noticeIconView: React.ReactElement | undefined = useMemo(() => {\n if (!notice?.noticeIcon) {\n return undefined;\n }\n if (React.isValidElement(notice.noticeIcon)) {\n return notice.noticeIcon;\n } else {\n const NoticeIconComponent = notice.noticeIcon as React.ComponentType<any>;\n return <NoticeIconComponent />;\n }\n }, [notice?.noticeIcon]);\n\n const shouldShowCarousel = cardSize?.width && cardSize.height;\n return (\n <View style={[styles.card, cardSize, style]} testID={testID}>\n {cardImage ? (\n 'imageSource' in cardImage ? (\n <View style={cardSize}>\n <Image testID={concatTestID(testID, 'imageSource')} source={cardImage.imageSource} style={styles.image} />\n </View>\n ) : (\n <ImageOrComponent testID={concatTestID(testID, 'cardImage')} source={cardImage} style={cardSize} />\n )\n ) : (\n <View\n testID={concatTestID(testID, 'cardBackgroundColor', String(color))}\n style={[cardSize, { backgroundColor: color }]}\n />\n )}\n {onCardPress && <TouchableOpacity style={styles.cardButton} onPress={cardPressHandler} />}\n {shouldShowCarousel ? (\n <CarouselComponent\n style={styles.carousel}\n imagesToRender={cardCarouselImages ?? []}\n carouselSize={{\n width: cardSize.width,\n height: cardSize.height - 60,\n }}\n testID={concatTestID(testID, 'carousel')}\n />\n ) : null}\n <TouchableOpacity\n activeOpacity={0.9}\n disabled={!onHeaderPress}\n onPress={headerPressHandler}\n style={styles.header}>\n <CredentialHeader {...header} color={header.color ?? color} testID={concatTestID(testID, 'header')} />\n </TouchableOpacity>\n {notice && (\n <BlurView blurStyle=\"soft\" style={[styles.notice]} testID={concatTestID(testID, 'notice')}>\n {noticeIconView && <View style={styles.noticeIcon}>{noticeIconView}</View>}\n <View style={styles.noticeTextWrapper}>\n <Typography\n color={colorScheme.text}\n preset=\"xs/line-height-small\"\n style={styles.noticeText}\n testID={concatTestID(testID, 'notice.text')}>\n {notice.text}\n </Typography>\n </View>\n </BlurView>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n card: {\n borderRadius: 10,\n overflow: 'hidden',\n },\n cardButton: {\n height: '100%',\n position: 'absolute',\n width: '100%',\n },\n carousel: {\n marginTop: 60,\n },\n header: {\n position: 'absolute',\n top: 0,\n width: '100%',\n },\n image: {\n height: '100%',\n width: '100%',\n },\n notice: {\n bottom: 0,\n columnGap: 6,\n flexDirection: 'row',\n justifyContent: 'flex-start',\n paddingBottom: 6,\n paddingHorizontal: 12,\n paddingTop: 2,\n position: 'absolute',\n width: '100%',\n },\n noticeIcon: {\n marginTop: 4,\n },\n noticeText: {\n marginVertical: 5,\n },\n noticeTextWrapper: {\n flex: 1,\n },\n});\n\nexport default CredentialCard;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useMemo","Image","StyleSheet","View","concatTestID","TouchableOpacity","BlurView","ImageOrComponent","Typography","useAppColorScheme","CredentialHeader","CarouselComponent","CredentialCardShadow","shadowColor","shadowOffset","height","width","shadowOpacity","shadowRadius","CredentialCardRatio","CredentialCard","cardCarouselImages","cardImage","color","credentialId","header","notice","onCardPress","onHeaderPress","style","testID","_header$color","colorScheme","cardSize","Math","ceil","headerPressHandler","cardPressHandler","noticeIconView","noticeIcon","undefined","isValidElement","NoticeIconComponent","createElement","shouldShowCarousel","styles","card","source","imageSource","image","String","backgroundColor","cardButton","onPress","carousel","imagesToRender","carouselSize","activeOpacity","disabled","_extends","blurStyle","noticeTextWrapper","text","preset","noticeText","create","borderRadius","borderWidth","overflow","position","marginTop","top","bottom","columnGap","flexDirection","justifyContent","paddingBottom","paddingHorizontal","paddingTop","marginVertical","flex"],"sources":["credential-card.tsx"],"sourcesContent":["import React, { FC, useCallback, useMemo } from 'react';\nimport { ColorValue, Image, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { concatTestID } from '../../../utils/testID';\nimport { TouchableOpacity } from '../../accessibility/accessibilityHistoryWrappers';\nimport BlurView from '../../blur/blur-view';\nimport ImageOrComponent, { ImageOrComponentSource } from '../../image/image-or-component';\nimport Typography from '../../text/typography';\nimport { useAppColorScheme } from '../../theme/color-scheme-context';\nimport CredentialHeader, { CredentialHeaderProps } from './credential-header';\nimport CarouselComponent, { CarouselImage } from './credential-image-carousel';\n\nexport const CredentialCardShadow: Pick<ViewStyle, 'shadowColor' | 'shadowOffset' | 'shadowOpacity' | 'shadowRadius'> =\n {\n shadowColor: '#10274226',\n shadowOffset: {\n height: 5,\n width: 0,\n },\n shadowOpacity: 1,\n shadowRadius: 7,\n };\n\nexport const CredentialCardRatio = 18 / 11;\n\nexport type CredentialCardNotice = {\n text: string;\n noticeIcon?: React.ComponentType<any> | React.ReactElement;\n};\n\nexport type CredentialCardProps = {\n cardCarouselImages?: CarouselImage[];\n cardImage?: ImageOrComponentSource;\n color?: ColorValue;\n credentialId?: string;\n header: CredentialHeaderProps;\n notice?: CredentialCardNotice;\n onCardPress?: (credentialId?: string) => void;\n onHeaderPress?: (credentialId?: string) => void;\n style?: StyleProp<ViewStyle>;\n testID?: string;\n width: number;\n};\n\nconst CredentialCard: FC<CredentialCardProps> = ({\n cardCarouselImages = [],\n cardImage,\n color = '#5A69F3',\n credentialId,\n header,\n notice,\n onCardPress,\n onHeaderPress,\n style,\n testID,\n width,\n}) => {\n const colorScheme = useAppColorScheme();\n const cardSize = {\n width,\n height: Math.ceil(width / CredentialCardRatio),\n };\n\n const headerPressHandler = useCallback(() => {\n onHeaderPress?.(credentialId);\n }, [credentialId, onHeaderPress]);\n\n const cardPressHandler = useCallback(() => {\n onCardPress?.(credentialId);\n }, [credentialId, onCardPress]);\n\n const noticeIconView: React.ReactElement | undefined = useMemo(() => {\n if (!notice?.noticeIcon) {\n return undefined;\n }\n if (React.isValidElement(notice.noticeIcon)) {\n return notice.noticeIcon;\n } else {\n const NoticeIconComponent = notice.noticeIcon as React.ComponentType<any>;\n return <NoticeIconComponent />;\n }\n }, [notice?.noticeIcon]);\n\n const shouldShowCarousel = cardSize?.width && cardSize.height;\n return (\n <View style={[styles.card, cardSize, style]} testID={testID}>\n {cardImage ? (\n 'imageSource' in cardImage ? (\n <View style={cardSize}>\n <Image testID={concatTestID(testID, 'imageSource')} source={cardImage.imageSource} style={styles.image} />\n </View>\n ) : (\n <ImageOrComponent testID={concatTestID(testID, 'cardImage')} source={cardImage} style={cardSize} />\n )\n ) : (\n <View\n testID={concatTestID(testID, 'cardBackgroundColor', String(color))}\n style={[cardSize, { backgroundColor: color }]}\n />\n )}\n {onCardPress && <TouchableOpacity style={styles.cardButton} onPress={cardPressHandler} />}\n {shouldShowCarousel ? (\n <CarouselComponent\n style={styles.carousel}\n imagesToRender={cardCarouselImages ?? []}\n carouselSize={{\n width: cardSize.width,\n height: cardSize.height - 60,\n }}\n testID={concatTestID(testID, 'carousel')}\n />\n ) : null}\n <TouchableOpacity\n activeOpacity={0.9}\n disabled={!onHeaderPress}\n onPress={headerPressHandler}\n style={styles.header}>\n <CredentialHeader {...header} color={header.color ?? color} testID={concatTestID(testID, 'header')} />\n </TouchableOpacity>\n {notice && (\n <BlurView blurStyle=\"soft\" style={[styles.notice]} testID={concatTestID(testID, 'notice')}>\n {noticeIconView && <View style={styles.noticeIcon}>{noticeIconView}</View>}\n <View style={styles.noticeTextWrapper}>\n <Typography\n color={colorScheme.text}\n preset=\"xs/line-height-small\"\n style={styles.noticeText}\n testID={concatTestID(testID, 'notice.text')}>\n {notice.text}\n </Typography>\n </View>\n </BlurView>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n card: {\n borderRadius: 10,\n borderWidth: 0,\n overflow: 'hidden',\n },\n cardButton: {\n height: '100%',\n position: 'absolute',\n width: '100%',\n },\n carousel: {\n marginTop: 60,\n },\n header: {\n position: 'absolute',\n top: 0,\n width: '100%',\n },\n image: {\n height: '100%',\n width: '100%',\n },\n notice: {\n bottom: 0,\n columnGap: 6,\n flexDirection: 'row',\n justifyContent: 'flex-start',\n paddingBottom: 6,\n paddingHorizontal: 12,\n paddingTop: 2,\n position: 'absolute',\n width: '100%',\n },\n noticeIcon: {\n marginTop: 4,\n },\n noticeText: {\n marginVertical: 5,\n },\n noticeTextWrapper: {\n flex: 1,\n },\n});\n\nexport default CredentialCard;\n"],"mappings":";AAAA,OAAOA,KAAK,IAAQC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACvD,SAAqBC,KAAK,EAAaC,UAAU,EAAEC,IAAI,QAAmB,cAAc;AAExF,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,gBAAgB,QAAQ,kDAAkD;AACnF,OAAOC,QAAQ,MAAM,sBAAsB;AAC3C,OAAOC,gBAAgB,MAAkC,gCAAgC;AACzF,OAAOC,UAAU,MAAM,uBAAuB;AAC9C,SAASC,iBAAiB,QAAQ,kCAAkC;AACpE,OAAOC,gBAAgB,MAAiC,qBAAqB;AAC7E,OAAOC,iBAAiB,MAAyB,6BAA6B;AAE9E,OAAO,MAAMC,oBAAwG,GACnH;EACEC,WAAW,EAAE,WAAW;EACxBC,YAAY,EAAE;IACZC,MAAM,EAAE,CAAC;IACTC,KAAK,EAAE;EACT,CAAC;EACDC,aAAa,EAAE,CAAC;EAChBC,YAAY,EAAE;AAChB,CAAC;AAEH,OAAO,MAAMC,mBAAmB,GAAG,EAAE,GAAG,EAAE;AAqB1C,MAAMC,cAAuC,GAAGA,CAAC;EAC/CC,kBAAkB,GAAG,EAAE;EACvBC,SAAS;EACTC,KAAK,GAAG,SAAS;EACjBC,YAAY;EACZC,MAAM;EACNC,MAAM;EACNC,WAAW;EACXC,aAAa;EACbC,KAAK;EACLC,MAAM;EACNd;AACF,CAAC,KAAK;EAAA,IAAAe,aAAA;EACJ,MAAMC,WAAW,GAAGvB,iBAAiB,CAAC,CAAC;EACvC,MAAMwB,QAAQ,GAAG;IACfjB,KAAK;IACLD,MAAM,EAAEmB,IAAI,CAACC,IAAI,CAACnB,KAAK,GAAGG,mBAAmB;EAC/C,CAAC;EAED,MAAMiB,kBAAkB,GAAGrC,WAAW,CAAC,MAAM;IAC3C6B,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAGJ,YAAY,CAAC;EAC/B,CAAC,EAAE,CAACA,YAAY,EAAEI,aAAa,CAAC,CAAC;EAEjC,MAAMS,gBAAgB,GAAGtC,WAAW,CAAC,MAAM;IACzC4B,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAGH,YAAY,CAAC;EAC7B,CAAC,EAAE,CAACA,YAAY,EAAEG,WAAW,CAAC,CAAC;EAE/B,MAAMW,cAA8C,GAAGtC,OAAO,CAAC,MAAM;IACnE,IAAI,EAAC0B,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEa,UAAU,GAAE;MACvB,OAAOC,SAAS;IAClB;IACA,iBAAI1C,KAAK,CAAC2C,cAAc,CAACf,MAAM,CAACa,UAAU,CAAC,EAAE;MAC3C,OAAOb,MAAM,CAACa,UAAU;IAC1B,CAAC,MAAM;MACL,MAAMG,mBAAmB,GAAGhB,MAAM,CAACa,UAAsC;MACzE,oBAAOzC,KAAA,CAAA6C,aAAA,CAACD,mBAAmB,MAAE,CAAC;IAChC;EACF,CAAC,EAAE,CAAChB,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEa,UAAU,CAAC,CAAC;EAExB,MAAMK,kBAAkB,GAAG,CAAAX,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEjB,KAAK,KAAIiB,QAAQ,CAAClB,MAAM;EAC7D,oBACEjB,KAAA,CAAA6C,aAAA,CAACxC,IAAI;IAAC0B,KAAK,EAAE,CAACgB,MAAM,CAACC,IAAI,EAAEb,QAAQ,EAAEJ,KAAK,CAAE;IAACC,MAAM,EAAEA;EAAO,GACzDR,SAAS,GACR,aAAa,IAAIA,SAAS,gBACxBxB,KAAA,CAAA6C,aAAA,CAACxC,IAAI;IAAC0B,KAAK,EAAEI;EAAS,gBACpBnC,KAAA,CAAA6C,aAAA,CAAC1C,KAAK;IAAC6B,MAAM,EAAE1B,YAAY,CAAC0B,MAAM,EAAE,aAAa,CAAE;IAACiB,MAAM,EAAEzB,SAAS,CAAC0B,WAAY;IAACnB,KAAK,EAAEgB,MAAM,CAACI;EAAM,CAAE,CACrG,CAAC,gBAEPnD,KAAA,CAAA6C,aAAA,CAACpC,gBAAgB;IAACuB,MAAM,EAAE1B,YAAY,CAAC0B,MAAM,EAAE,WAAW,CAAE;IAACiB,MAAM,EAAEzB,SAAU;IAACO,KAAK,EAAEI;EAAS,CAAE,CACnG,gBAEDnC,KAAA,CAAA6C,aAAA,CAACxC,IAAI;IACH2B,MAAM,EAAE1B,YAAY,CAAC0B,MAAM,EAAE,qBAAqB,EAAEoB,MAAM,CAAC3B,KAAK,CAAC,CAAE;IACnEM,KAAK,EAAE,CAACI,QAAQ,EAAE;MAAEkB,eAAe,EAAE5B;IAAM,CAAC;EAAE,CAC/C,CACF,EACAI,WAAW,iBAAI7B,KAAA,CAAA6C,aAAA,CAACtC,gBAAgB;IAACwB,KAAK,EAAEgB,MAAM,CAACO,UAAW;IAACC,OAAO,EAAEhB;EAAiB,CAAE,CAAC,EACxFO,kBAAkB,gBACjB9C,KAAA,CAAA6C,aAAA,CAAChC,iBAAiB;IAChBkB,KAAK,EAAEgB,MAAM,CAACS,QAAS;IACvBC,cAAc,EAAElC,kBAAkB,aAAlBA,kBAAkB,cAAlBA,kBAAkB,GAAI,EAAG;IACzCmC,YAAY,EAAE;MACZxC,KAAK,EAAEiB,QAAQ,CAACjB,KAAK;MACrBD,MAAM,EAAEkB,QAAQ,CAAClB,MAAM,GAAG;IAC5B,CAAE;IACFe,MAAM,EAAE1B,YAAY,CAAC0B,MAAM,EAAE,UAAU;EAAE,CAC1C,CAAC,GACA,IAAI,eACRhC,KAAA,CAAA6C,aAAA,CAACtC,gBAAgB;IACfoD,aAAa,EAAE,GAAI;IACnBC,QAAQ,EAAE,CAAC9B,aAAc;IACzByB,OAAO,EAAEjB,kBAAmB;IAC5BP,KAAK,EAAEgB,MAAM,CAACpB;EAAO,gBACrB3B,KAAA,CAAA6C,aAAA,CAACjC,gBAAgB,EAAAiD,QAAA,KAAKlC,MAAM;IAAEF,KAAK,GAAAQ,aAAA,GAAEN,MAAM,CAACF,KAAK,cAAAQ,aAAA,cAAAA,aAAA,GAAIR,KAAM;IAACO,MAAM,EAAE1B,YAAY,CAAC0B,MAAM,EAAE,QAAQ;EAAE,EAAE,CACrF,CAAC,EAClBJ,MAAM,iBACL5B,KAAA,CAAA6C,aAAA,CAACrC,QAAQ;IAACsD,SAAS,EAAC,MAAM;IAAC/B,KAAK,EAAE,CAACgB,MAAM,CAACnB,MAAM,CAAE;IAACI,MAAM,EAAE1B,YAAY,CAAC0B,MAAM,EAAE,QAAQ;EAAE,GACvFQ,cAAc,iBAAIxC,KAAA,CAAA6C,aAAA,CAACxC,IAAI;IAAC0B,KAAK,EAAEgB,MAAM,CAACN;EAAW,GAAED,cAAqB,CAAC,eAC1ExC,KAAA,CAAA6C,aAAA,CAACxC,IAAI;IAAC0B,KAAK,EAAEgB,MAAM,CAACgB;EAAkB,gBACpC/D,KAAA,CAAA6C,aAAA,CAACnC,UAAU;IACTe,KAAK,EAAES,WAAW,CAAC8B,IAAK;IACxBC,MAAM,EAAC,sBAAsB;IAC7BlC,KAAK,EAAEgB,MAAM,CAACmB,UAAW;IACzBlC,MAAM,EAAE1B,YAAY,CAAC0B,MAAM,EAAE,aAAa;EAAE,GAC3CJ,MAAM,CAACoC,IACE,CACR,CACE,CAER,CAAC;AAEX,CAAC;AAED,MAAMjB,MAAM,GAAG3C,UAAU,CAAC+D,MAAM,CAAC;EAC/BnB,IAAI,EAAE;IACJoB,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,CAAC;IACdC,QAAQ,EAAE;EACZ,CAAC;EACDhB,UAAU,EAAE;IACVrC,MAAM,EAAE,MAAM;IACdsD,QAAQ,EAAE,UAAU;IACpBrD,KAAK,EAAE;EACT,CAAC;EACDsC,QAAQ,EAAE;IACRgB,SAAS,EAAE;EACb,CAAC;EACD7C,MAAM,EAAE;IACN4C,QAAQ,EAAE,UAAU;IACpBE,GAAG,EAAE,CAAC;IACNvD,KAAK,EAAE;EACT,CAAC;EACDiC,KAAK,EAAE;IACLlC,MAAM,EAAE,MAAM;IACdC,KAAK,EAAE;EACT,CAAC;EACDU,MAAM,EAAE;IACN8C,MAAM,EAAE,CAAC;IACTC,SAAS,EAAE,CAAC;IACZC,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,YAAY;IAC5BC,aAAa,EAAE,CAAC;IAChBC,iBAAiB,EAAE,EAAE;IACrBC,UAAU,EAAE,CAAC;IACbT,QAAQ,EAAE,UAAU;IACpBrD,KAAK,EAAE;EACT,CAAC;EACDuB,UAAU,EAAE;IACV+B,SAAS,EAAE;EACb,CAAC;EACDN,UAAU,EAAE;IACVe,cAAc,EAAE;EAClB,CAAC;EACDlB,iBAAiB,EAAE;IACjBmB,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAEF,eAAe5D,cAAc","ignoreList":[]}
@@ -166,10 +166,12 @@ const styles = StyleSheet.create({
166
166
  width: '100%'
167
167
  },
168
168
  card: {
169
- borderRadius: 0
169
+ borderRadius: 0,
170
+ borderWidth: 0
170
171
  },
171
172
  detailsCard: {
172
173
  borderRadius: 10,
174
+ borderWidth: 0,
173
175
  overflow: 'hidden'
174
176
  },
175
177
  footer: {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useMemo","useState","StyleSheet","View","Animated","useAnimatedStyle","useSharedValue","withTiming","concatTestID","Button","ButtonType","DownIcon","UpIcon","useAppColorScheme","CredentialAttributeItem","CredentialCard","CredentialCardRatio","PREVIEW_ATTRIBUTES_COUNT","SEE_ALL_BUTTON_HEIGHT","CredentialDetailsCard","animate","attributes","card","expanded","footer","onImagePreview","onAttributeSelected","style","showAllButtonLabel","testID","viewProps","_header$accessory","colorScheme","previewAttributesHeight","setPreviewAttributesHeight","fullAttributesHeight","setFullAttributesHeight","allAttributesRendered","setAllAttributesRendered","length","CaretIcon","cardHeight","Math","ceil","width","currentHeight","undefined","previewAttributes","slice","extraAttributes","viewStyle","flatten","styles","allAttributesWrapper","allAttributesWrapperWithFooter","padding","paddingBottom","buttonViewHeight","additionalAttributesHeight","additionalHeight","fullHeight","value","newHeight","duration","animatedStyle","height","onPreviewAttrContentLayout","event","nativeEvent","layout","onFullAttrContentLayout","footerView","isValidElement","FooterComponent","createElement","header","cardProps","renderExtraAttributes","ContainerComponent","_extends","detailsCard","backgroundColor","white","accessory","onHeaderPress","attributesWrapper","onLayout","previewAttributesWrapper","map","attribute","idx","key","id","last","toString","onPress","buttonWrapper","type","Secondary","title","index","create","paddingHorizontal","paddingTop","borderRadius","overflow","marginTop"],"sources":["credential-details-card.tsx"],"sourcesContent":["import React, { ComponentType, FC, ReactElement, useCallback, useEffect, useMemo, useState } from 'react';\nimport { ImageSourcePropType, LayoutChangeEvent, StyleSheet, View, ViewProps } from 'react-native';\nimport Animated, { useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';\n\nimport { concatTestID } from '../../../utils/testID';\nimport { Button, ButtonType } from '../../buttons';\nimport { DownIcon, UpIcon } from '../../icons/credential';\nimport { useAppColorScheme } from '../../theme/color-scheme-context';\nimport CredentialAttributeItem, { CredentialAttribute } from '../credential-attribute-item';\nimport CredentialCard, { CredentialCardProps, CredentialCardRatio } from './credential-card';\n\nexport type CredentialDetailsCardProps = ViewProps & {\n animate?: boolean;\n attributes: CredentialAttribute[] | false;\n card: CredentialCardProps;\n expanded?: boolean;\n footer?: ComponentType<any> | ReactElement;\n onImagePreview?: (name: string, image: ImageSourcePropType) => void;\n onAttributeSelected?: (id: string, selected: boolean) => void;\n showAllButtonLabel?: string;\n};\n\nconst PREVIEW_ATTRIBUTES_COUNT = 3;\nconst SEE_ALL_BUTTON_HEIGHT = 78;\n\nconst CredentialDetailsCard: FC<CredentialDetailsCardProps> = ({\n animate = true,\n attributes,\n card,\n expanded,\n footer,\n onImagePreview,\n onAttributeSelected,\n style,\n showAllButtonLabel,\n testID,\n ...viewProps\n}) => {\n const colorScheme = useAppColorScheme();\n const [previewAttributesHeight, setPreviewAttributesHeight] = useState<number>();\n const [fullAttributesHeight, setFullAttributesHeight] = useState<number>();\n\n const [allAttributesRendered, setAllAttributesRendered] = useState<boolean>(\n (attributes && attributes.length <= PREVIEW_ATTRIBUTES_COUNT) || !showAllButtonLabel,\n );\n\n const CaretIcon = expanded ? UpIcon : DownIcon;\n\n const cardHeight = Math.ceil(card.width / CredentialCardRatio);\n const currentHeight = useSharedValue<number | undefined>(undefined);\n\n const previewAttributes = attributes ? attributes.slice(0, PREVIEW_ATTRIBUTES_COUNT) : [];\n const extraAttributes = useMemo(() => (attributes ? attributes.slice(PREVIEW_ATTRIBUTES_COUNT) : []), [attributes]);\n\n useEffect(() => {\n if (extraAttributes.length === 0) {\n const viewStyle = StyleSheet.flatten([\n styles.allAttributesWrapper,\n footer && styles.allAttributesWrapperWithFooter,\n ]);\n const padding = viewStyle.paddingBottom;\n setFullAttributesHeight(padding);\n }\n }, [extraAttributes, footer]);\n\n useEffect(() => {\n if (previewAttributesHeight === undefined) {\n return;\n }\n if (allAttributesRendered && fullAttributesHeight === undefined) {\n return;\n }\n\n const buttonViewHeight = !extraAttributes || allAttributesRendered ? 0 : SEE_ALL_BUTTON_HEIGHT;\n const additionalAttributesHeight = fullAttributesHeight ?? 0;\n const additionalHeight = allAttributesRendered ? additionalAttributesHeight : buttonViewHeight;\n const fullHeight = previewAttributesHeight + additionalHeight;\n\n if (!animate) {\n currentHeight.value = fullHeight;\n return;\n }\n\n const newHeight = expanded ? fullHeight : 0;\n\n if (currentHeight.value === undefined || !animate) {\n currentHeight.value = newHeight;\n return;\n }\n\n const duration = fullHeight / 5;\n currentHeight.value = withTiming(newHeight, {\n duration,\n });\n }, [\n allAttributesRendered,\n currentHeight,\n animate,\n expanded,\n extraAttributes,\n fullAttributesHeight,\n previewAttributes.length,\n previewAttributesHeight,\n ]);\n\n const animatedStyle = useAnimatedStyle(() => {\n if (currentHeight.value === undefined) {\n if (expanded) {\n return {};\n }\n return {\n height: cardHeight,\n };\n }\n return {\n height: cardHeight + currentHeight.value,\n };\n }, [expanded, currentHeight]);\n\n const onPreviewAttrContentLayout = useCallback((event: LayoutChangeEvent) => {\n setPreviewAttributesHeight(event.nativeEvent.layout.height);\n }, []);\n\n const onFullAttrContentLayout = useCallback((event: LayoutChangeEvent) => {\n setFullAttributesHeight(event.nativeEvent.layout.height);\n }, []);\n\n const footerView: ReactElement | undefined = useMemo(() => {\n if (!footer) {\n return undefined;\n }\n if (React.isValidElement(footer)) {\n return footer;\n } else {\n const FooterComponent = footer as React.ComponentType<any>;\n return <FooterComponent />;\n }\n }, [footer]);\n\n const { header, ...cardProps } = card;\n\n const renderExtraAttributes =\n allAttributesRendered || (previewAttributesHeight !== undefined && currentHeight.value !== undefined);\n\n const ContainerComponent = animate ? Animated.View : View;\n return (\n <ContainerComponent\n style={[styles.detailsCard, { backgroundColor: colorScheme.white }, animate ? animatedStyle : undefined, style]}\n {...viewProps}\n testID={concatTestID(card.testID, expanded ? 'expanded' : 'collapsed')}>\n <CredentialCard\n {...cardProps}\n header={{ ...header, accessory: header.accessory ?? (cardProps.onHeaderPress ? CaretIcon : undefined) }}\n style={[styles.card, cardProps.style]}\n />\n {previewAttributes.length > 0 && (\n <View>\n <View style={styles.attributesWrapper}>\n <View onLayout={onPreviewAttrContentLayout} style={styles.previewAttributesWrapper}>\n {previewAttributes.map((attribute, idx) => (\n <CredentialAttributeItem\n key={attribute.id}\n last={!footerView && !extraAttributes.length && idx === previewAttributes.length - 1}\n testID={concatTestID(testID, 'attribute', idx.toString())}\n onImagePreview={onImagePreview}\n onPress={onAttributeSelected}\n {...attribute}\n />\n ))}\n </View>\n {!allAttributesRendered && extraAttributes.length > 0 && (\n <View style={styles.buttonWrapper}>\n <Button\n onPress={() => setAllAttributesRendered(true)}\n type={ButtonType.Secondary}\n testID={concatTestID(testID, 'showAllAttributesButton')}\n title={showAllButtonLabel!}\n />\n </View>\n )}\n {renderExtraAttributes && (\n <View\n style={[styles.allAttributesWrapper, footerView && styles.allAttributesWrapperWithFooter]}\n onLayout={onFullAttrContentLayout}>\n {extraAttributes.map((attribute, index, { length }) => (\n <CredentialAttributeItem\n key={attribute.id}\n last={!footerView && index === length - 1}\n testID={concatTestID(testID, 'attribute', index.toString())}\n onImagePreview={onImagePreview}\n onPress={onAttributeSelected}\n {...attribute}\n />\n ))}\n </View>\n )}\n </View>\n </View>\n )}\n {footerView ? <View style={styles.footer}>{footerView}</View> : null}\n </ContainerComponent>\n );\n};\n\nconst styles = StyleSheet.create({\n allAttributesWrapper: {\n paddingBottom: 12,\n paddingHorizontal: 4,\n width: '100%',\n },\n allAttributesWrapperWithFooter: {\n paddingBottom: 0,\n },\n attributesWrapper: {\n paddingTop: 7,\n width: '100%',\n },\n buttonWrapper: {\n height: SEE_ALL_BUTTON_HEIGHT,\n paddingBottom: 12,\n paddingHorizontal: 4,\n width: '100%',\n },\n card: {\n borderRadius: 0,\n },\n detailsCard: {\n borderRadius: 10,\n overflow: 'hidden',\n },\n footer: {\n marginTop: 12,\n },\n previewAttributesWrapper: {\n paddingHorizontal: 4,\n width: '100%',\n },\n});\n\nexport default CredentialDetailsCard;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useMemo","useState","StyleSheet","View","Animated","useAnimatedStyle","useSharedValue","withTiming","concatTestID","Button","ButtonType","DownIcon","UpIcon","useAppColorScheme","CredentialAttributeItem","CredentialCard","CredentialCardRatio","PREVIEW_ATTRIBUTES_COUNT","SEE_ALL_BUTTON_HEIGHT","CredentialDetailsCard","animate","attributes","card","expanded","footer","onImagePreview","onAttributeSelected","style","showAllButtonLabel","testID","viewProps","_header$accessory","colorScheme","previewAttributesHeight","setPreviewAttributesHeight","fullAttributesHeight","setFullAttributesHeight","allAttributesRendered","setAllAttributesRendered","length","CaretIcon","cardHeight","Math","ceil","width","currentHeight","undefined","previewAttributes","slice","extraAttributes","viewStyle","flatten","styles","allAttributesWrapper","allAttributesWrapperWithFooter","padding","paddingBottom","buttonViewHeight","additionalAttributesHeight","additionalHeight","fullHeight","value","newHeight","duration","animatedStyle","height","onPreviewAttrContentLayout","event","nativeEvent","layout","onFullAttrContentLayout","footerView","isValidElement","FooterComponent","createElement","header","cardProps","renderExtraAttributes","ContainerComponent","_extends","detailsCard","backgroundColor","white","accessory","onHeaderPress","attributesWrapper","onLayout","previewAttributesWrapper","map","attribute","idx","key","id","last","toString","onPress","buttonWrapper","type","Secondary","title","index","create","paddingHorizontal","paddingTop","borderRadius","borderWidth","overflow","marginTop"],"sources":["credential-details-card.tsx"],"sourcesContent":["import React, { ComponentType, FC, ReactElement, useCallback, useEffect, useMemo, useState } from 'react';\nimport { ImageSourcePropType, LayoutChangeEvent, StyleSheet, View, ViewProps } from 'react-native';\nimport Animated, { useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';\n\nimport { concatTestID } from '../../../utils/testID';\nimport { Button, ButtonType } from '../../buttons';\nimport { DownIcon, UpIcon } from '../../icons/credential';\nimport { useAppColorScheme } from '../../theme/color-scheme-context';\nimport CredentialAttributeItem, { CredentialAttribute } from '../credential-attribute-item';\nimport CredentialCard, { CredentialCardProps, CredentialCardRatio } from './credential-card';\n\nexport type CredentialDetailsCardProps = ViewProps & {\n animate?: boolean;\n attributes: CredentialAttribute[] | false;\n card: CredentialCardProps;\n expanded?: boolean;\n footer?: ComponentType<any> | ReactElement;\n onImagePreview?: (name: string, image: ImageSourcePropType) => void;\n onAttributeSelected?: (id: string, selected: boolean) => void;\n showAllButtonLabel?: string;\n};\n\nconst PREVIEW_ATTRIBUTES_COUNT = 3;\nconst SEE_ALL_BUTTON_HEIGHT = 78;\n\nconst CredentialDetailsCard: FC<CredentialDetailsCardProps> = ({\n animate = true,\n attributes,\n card,\n expanded,\n footer,\n onImagePreview,\n onAttributeSelected,\n style,\n showAllButtonLabel,\n testID,\n ...viewProps\n}) => {\n const colorScheme = useAppColorScheme();\n const [previewAttributesHeight, setPreviewAttributesHeight] = useState<number>();\n const [fullAttributesHeight, setFullAttributesHeight] = useState<number>();\n\n const [allAttributesRendered, setAllAttributesRendered] = useState<boolean>(\n (attributes && attributes.length <= PREVIEW_ATTRIBUTES_COUNT) || !showAllButtonLabel,\n );\n\n const CaretIcon = expanded ? UpIcon : DownIcon;\n\n const cardHeight = Math.ceil(card.width / CredentialCardRatio);\n const currentHeight = useSharedValue<number | undefined>(undefined);\n\n const previewAttributes = attributes ? attributes.slice(0, PREVIEW_ATTRIBUTES_COUNT) : [];\n const extraAttributes = useMemo(() => (attributes ? attributes.slice(PREVIEW_ATTRIBUTES_COUNT) : []), [attributes]);\n\n useEffect(() => {\n if (extraAttributes.length === 0) {\n const viewStyle = StyleSheet.flatten([\n styles.allAttributesWrapper,\n footer && styles.allAttributesWrapperWithFooter,\n ]);\n const padding = viewStyle.paddingBottom;\n setFullAttributesHeight(padding);\n }\n }, [extraAttributes, footer]);\n\n useEffect(() => {\n if (previewAttributesHeight === undefined) {\n return;\n }\n if (allAttributesRendered && fullAttributesHeight === undefined) {\n return;\n }\n\n const buttonViewHeight = !extraAttributes || allAttributesRendered ? 0 : SEE_ALL_BUTTON_HEIGHT;\n const additionalAttributesHeight = fullAttributesHeight ?? 0;\n const additionalHeight = allAttributesRendered ? additionalAttributesHeight : buttonViewHeight;\n const fullHeight = previewAttributesHeight + additionalHeight;\n\n if (!animate) {\n currentHeight.value = fullHeight;\n return;\n }\n\n const newHeight = expanded ? fullHeight : 0;\n\n if (currentHeight.value === undefined || !animate) {\n currentHeight.value = newHeight;\n return;\n }\n\n const duration = fullHeight / 5;\n currentHeight.value = withTiming(newHeight, {\n duration,\n });\n }, [\n allAttributesRendered,\n currentHeight,\n animate,\n expanded,\n extraAttributes,\n fullAttributesHeight,\n previewAttributes.length,\n previewAttributesHeight,\n ]);\n\n const animatedStyle = useAnimatedStyle(() => {\n if (currentHeight.value === undefined) {\n if (expanded) {\n return {};\n }\n return {\n height: cardHeight,\n };\n }\n return {\n height: cardHeight + currentHeight.value,\n };\n }, [expanded, currentHeight]);\n\n const onPreviewAttrContentLayout = useCallback((event: LayoutChangeEvent) => {\n setPreviewAttributesHeight(event.nativeEvent.layout.height);\n }, []);\n\n const onFullAttrContentLayout = useCallback((event: LayoutChangeEvent) => {\n setFullAttributesHeight(event.nativeEvent.layout.height);\n }, []);\n\n const footerView: ReactElement | undefined = useMemo(() => {\n if (!footer) {\n return undefined;\n }\n if (React.isValidElement(footer)) {\n return footer;\n } else {\n const FooterComponent = footer as React.ComponentType<any>;\n return <FooterComponent />;\n }\n }, [footer]);\n\n const { header, ...cardProps } = card;\n\n const renderExtraAttributes =\n allAttributesRendered || (previewAttributesHeight !== undefined && currentHeight.value !== undefined);\n\n const ContainerComponent = animate ? Animated.View : View;\n return (\n <ContainerComponent\n style={[styles.detailsCard, { backgroundColor: colorScheme.white }, animate ? animatedStyle : undefined, style]}\n {...viewProps}\n testID={concatTestID(card.testID, expanded ? 'expanded' : 'collapsed')}>\n <CredentialCard\n {...cardProps}\n header={{ ...header, accessory: header.accessory ?? (cardProps.onHeaderPress ? CaretIcon : undefined) }}\n style={[styles.card, cardProps.style]}\n />\n {previewAttributes.length > 0 && (\n <View>\n <View style={styles.attributesWrapper}>\n <View onLayout={onPreviewAttrContentLayout} style={styles.previewAttributesWrapper}>\n {previewAttributes.map((attribute, idx) => (\n <CredentialAttributeItem\n key={attribute.id}\n last={!footerView && !extraAttributes.length && idx === previewAttributes.length - 1}\n testID={concatTestID(testID, 'attribute', idx.toString())}\n onImagePreview={onImagePreview}\n onPress={onAttributeSelected}\n {...attribute}\n />\n ))}\n </View>\n {!allAttributesRendered && extraAttributes.length > 0 && (\n <View style={styles.buttonWrapper}>\n <Button\n onPress={() => setAllAttributesRendered(true)}\n type={ButtonType.Secondary}\n testID={concatTestID(testID, 'showAllAttributesButton')}\n title={showAllButtonLabel!}\n />\n </View>\n )}\n {renderExtraAttributes && (\n <View\n style={[styles.allAttributesWrapper, footerView && styles.allAttributesWrapperWithFooter]}\n onLayout={onFullAttrContentLayout}>\n {extraAttributes.map((attribute, index, { length }) => (\n <CredentialAttributeItem\n key={attribute.id}\n last={!footerView && index === length - 1}\n testID={concatTestID(testID, 'attribute', index.toString())}\n onImagePreview={onImagePreview}\n onPress={onAttributeSelected}\n {...attribute}\n />\n ))}\n </View>\n )}\n </View>\n </View>\n )}\n {footerView ? <View style={styles.footer}>{footerView}</View> : null}\n </ContainerComponent>\n );\n};\n\nconst styles = StyleSheet.create({\n allAttributesWrapper: {\n paddingBottom: 12,\n paddingHorizontal: 4,\n width: '100%',\n },\n allAttributesWrapperWithFooter: {\n paddingBottom: 0,\n },\n attributesWrapper: {\n paddingTop: 7,\n width: '100%',\n },\n buttonWrapper: {\n height: SEE_ALL_BUTTON_HEIGHT,\n paddingBottom: 12,\n paddingHorizontal: 4,\n width: '100%',\n },\n card: {\n borderRadius: 0,\n borderWidth: 0,\n },\n detailsCard: {\n borderRadius: 10,\n borderWidth: 0,\n overflow: 'hidden',\n },\n footer: {\n marginTop: 12,\n },\n previewAttributesWrapper: {\n paddingHorizontal: 4,\n width: '100%',\n },\n});\n\nexport default CredentialDetailsCard;\n"],"mappings":"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","ignoreList":[]}