@pi-spi/app 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) hide show
  1. package/lib/module/core/api.js +14 -5
  2. package/lib/module/core/api.js.map +1 -1
  3. package/lib/module/l10n/app_localizations.js.map +1 -1
  4. package/lib/module/l10n/app_localizations_en.js +40 -8
  5. package/lib/module/l10n/app_localizations_en.js.map +1 -1
  6. package/lib/module/l10n/app_localizations_fr.js +49 -14
  7. package/lib/module/l10n/app_localizations_fr.js.map +1 -1
  8. package/lib/module/l10n/app_localizations_pt.js +41 -7
  9. package/lib/module/l10n/app_localizations_pt.js.map +1 -1
  10. package/lib/module/modules/alias/domain/models/alias_revendication.js +4 -2
  11. package/lib/module/modules/alias/domain/models/alias_revendication.js.map +1 -1
  12. package/lib/module/modules/alias/infra/alias_output_local.js +11 -0
  13. package/lib/module/modules/alias/infra/alias_output_local.js.map +1 -1
  14. package/lib/module/modules/alias/infra/alias_output_repository.js +9 -8
  15. package/lib/module/modules/alias/infra/alias_output_repository.js.map +1 -1
  16. package/lib/module/modules/alias/presentation/pages/alias_delete_btn_widget.js +14 -18
  17. package/lib/module/modules/alias/presentation/pages/alias_delete_btn_widget.js.map +1 -1
  18. package/lib/module/modules/alias/presentation/pages/alias_page_claim.js +113 -60
  19. package/lib/module/modules/alias/presentation/pages/alias_page_claim.js.map +1 -1
  20. package/lib/module/modules/alias/presentation/pages/alias_page_create_mbno_form.js +151 -76
  21. package/lib/module/modules/alias/presentation/pages/alias_page_create_mbno_form.js.map +1 -1
  22. package/lib/module/modules/alias/presentation/pages/alias_page_create_mbno_timer.js +38 -24
  23. package/lib/module/modules/alias/presentation/pages/alias_page_create_mbno_timer.js.map +1 -1
  24. package/lib/module/modules/alias/presentation/pages/alias_page_create_options.js +28 -26
  25. package/lib/module/modules/alias/presentation/pages/alias_page_create_options.js.map +1 -1
  26. package/lib/module/modules/alias/presentation/pages/alias_page_otp.js +27 -110
  27. package/lib/module/modules/alias/presentation/pages/alias_page_otp.js.map +1 -1
  28. package/lib/module/modules/categorie/domain/services/categorie_service.js +2 -1
  29. package/lib/module/modules/categorie/domain/services/categorie_service.js.map +1 -1
  30. package/lib/module/modules/categorie/presentation/pages/categorie_edit_icon_btn.js +58 -72
  31. package/lib/module/modules/categorie/presentation/pages/categorie_edit_icon_btn.js.map +1 -1
  32. package/lib/module/modules/categorie/presentation/pages/categorie_form_pages.js +88 -80
  33. package/lib/module/modules/categorie/presentation/pages/categorie_form_pages.js.map +1 -1
  34. package/lib/module/modules/categorie/presentation/pages/categorie_icon.js +39 -0
  35. package/lib/module/modules/categorie/presentation/pages/categorie_icon.js.map +1 -1
  36. package/lib/module/modules/categorie/presentation/pages/categorie_liste_widget.js +55 -27
  37. package/lib/module/modules/categorie/presentation/pages/categorie_liste_widget.js.map +1 -1
  38. package/lib/module/modules/categorie/presentation/pages/categorie_select_page.js +21 -81
  39. package/lib/module/modules/categorie/presentation/pages/categorie_select_page.js.map +1 -1
  40. package/lib/module/modules/categorie/presentation/pages/categorie_select_widget.js +53 -16
  41. package/lib/module/modules/categorie/presentation/pages/categorie_select_widget.js.map +1 -1
  42. package/lib/module/modules/config/domain/models/config_keys.js +2 -0
  43. package/lib/module/modules/config/domain/models/config_keys.js.map +1 -1
  44. package/lib/module/modules/contacts/domain/contact_pi.js +3 -5
  45. package/lib/module/modules/contacts/domain/contact_pi.js.map +1 -1
  46. package/lib/module/modules/contacts/presentation/bloc/contact_bloc.js +30 -14
  47. package/lib/module/modules/contacts/presentation/bloc/contact_bloc.js.map +1 -1
  48. package/lib/module/modules/contacts/presentation/pages/contact_actions_sheet.js +106 -0
  49. package/lib/module/modules/contacts/presentation/pages/contact_actions_sheet.js.map +1 -0
  50. package/lib/module/modules/contacts/presentation/pages/contact_list_alias_widget.js +17 -7
  51. package/lib/module/modules/contacts/presentation/pages/contact_list_alias_widget.js.map +1 -1
  52. package/lib/module/modules/contacts/presentation/pages/contact_list_phone_widget.js +5 -4
  53. package/lib/module/modules/contacts/presentation/pages/contact_list_phone_widget.js.map +1 -1
  54. package/lib/module/modules/contacts/presentation/pages/contact_list_widget_item.js +76 -67
  55. package/lib/module/modules/contacts/presentation/pages/contact_list_widget_item.js.map +1 -1
  56. package/lib/module/modules/contacts/presentation/pages/contact_section.js +14 -4
  57. package/lib/module/modules/contacts/presentation/pages/contact_section.js.map +1 -1
  58. package/lib/module/modules/contacts/presentation/pages/contact_select_page.js +131 -110
  59. package/lib/module/modules/contacts/presentation/pages/contact_select_page.js.map +1 -1
  60. package/lib/module/modules/contacts/presentation/pages/create/contact_create_page.js +118 -59
  61. package/lib/module/modules/contacts/presentation/pages/create/contact_create_page.js.map +1 -1
  62. package/lib/module/modules/home/presentation/pages/home_page.js +3 -13
  63. package/lib/module/modules/home/presentation/pages/home_page.js.map +1 -1
  64. package/lib/module/modules/introduction/presentation/pages/introduction.js +17 -4
  65. package/lib/module/modules/introduction/presentation/pages/introduction.js.map +1 -1
  66. package/lib/module/modules/introduction/presentation/pages/introduction_footer.js +15 -53
  67. package/lib/module/modules/introduction/presentation/pages/introduction_footer.js.map +1 -1
  68. package/lib/module/modules/introduction/presentation/pages/introduction_page.js +22 -4
  69. package/lib/module/modules/introduction/presentation/pages/introduction_page.js.map +1 -1
  70. package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications.js +2 -2
  71. package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications.js.map +1 -1
  72. package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications_son.js +1 -1
  73. package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications_son.js.map +1 -1
  74. package/lib/module/modules/profile/presentation/pages/profile_page_avatar.js +6 -28
  75. package/lib/module/modules/profile/presentation/pages/profile_page_avatar.js.map +1 -1
  76. package/lib/module/modules/profile/presentation/pages/profile_page_contacts.js +14 -53
  77. package/lib/module/modules/profile/presentation/pages/profile_page_contacts.js.map +1 -1
  78. package/lib/module/modules/profile/presentation/pages/profile_page_contacts_actions.js +131 -161
  79. package/lib/module/modules/profile/presentation/pages/profile_page_contacts_actions.js.map +1 -1
  80. package/lib/module/modules/qrcode/presentation/pages/qrcode_alias_page.js +0 -1
  81. package/lib/module/modules/qrcode/presentation/pages/qrcode_alias_page.js.map +1 -1
  82. package/lib/module/modules/qrcode/presentation/pages/qrcode_alias_page_share.js +26 -38
  83. package/lib/module/modules/qrcode/presentation/pages/qrcode_alias_page_share.js.map +1 -1
  84. package/lib/module/modules/search/domain/models/fonctionnalite.js +51 -0
  85. package/lib/module/modules/search/domain/models/fonctionnalite.js.map +1 -1
  86. package/lib/module/modules/search/presentation/pages/search_btn_widget.js +136 -0
  87. package/lib/module/modules/search/presentation/pages/search_btn_widget.js.map +1 -0
  88. package/lib/module/modules/search/presentation/pages/search_fonctionnalites.js +21 -1
  89. package/lib/module/modules/search/presentation/pages/search_fonctionnalites.js.map +1 -1
  90. package/lib/module/modules/search/presentation/pages/search_page.js +266 -97
  91. package/lib/module/modules/search/presentation/pages/search_page.js.map +1 -1
  92. package/lib/module/modules/subscription/presentation/pages/subscription_create/subscription_create_page.js +5 -3
  93. package/lib/module/modules/subscription/presentation/pages/subscription_create/subscription_create_page.js.map +1 -1
  94. package/lib/module/modules/subscription/presentation/pages/subscription_create/subscription_create_page_list.js +5 -6
  95. package/lib/module/modules/subscription/presentation/pages/subscription_create/subscription_create_page_list.js.map +1 -1
  96. package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page.js +0 -1
  97. package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page.js.map +1 -1
  98. package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page_actions.js +0 -1
  99. package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page_actions.js.map +1 -1
  100. package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page_note_sheet.js +38 -93
  101. package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page_note_sheet.js.map +1 -1
  102. package/lib/module/modules/subscription/presentation/pages/subscription_list/subscription_list_empty_widget.js +0 -1
  103. package/lib/module/modules/subscription/presentation/pages/subscription_list/subscription_list_empty_widget.js.map +1 -1
  104. package/lib/module/modules/subscription/presentation/pages/subscription_list/subscription_list_widget.js +0 -1
  105. package/lib/module/modules/subscription/presentation/pages/subscription_list/subscription_list_widget.js.map +1 -1
  106. package/lib/module/modules/subscription/presentation/pages/subscription_menu_widget.js +23 -42
  107. package/lib/module/modules/subscription/presentation/pages/subscription_menu_widget.js.map +1 -1
  108. package/lib/module/modules/transactions/domain/models/transaction_send/transaction_send_command_othr.js +1 -2
  109. package/lib/module/modules/transactions/domain/models/transaction_send/transaction_send_command_othr.js.map +1 -1
  110. package/lib/module/modules/transactions/infra/transaction_output_remote.js +2 -1
  111. package/lib/module/modules/transactions/infra/transaction_output_remote.js.map +1 -1
  112. package/lib/module/modules/transactions/presentation/bloc/transaction_send/transaction_send_bloc.js +17 -0
  113. package/lib/module/modules/transactions/presentation/bloc/transaction_send/transaction_send_bloc.js.map +1 -1
  114. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions.js +0 -1
  115. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions.js.map +1 -1
  116. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_cancel.js +34 -61
  117. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_cancel.js.map +1 -1
  118. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_return.js +49 -62
  119. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_return.js.map +1 -1
  120. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_ticket.js +68 -88
  121. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_ticket.js.map +1 -1
  122. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_date.js +30 -23
  123. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_date.js.map +1 -1
  124. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.js +77 -0
  125. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.js.map +1 -0
  126. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.js +49 -155
  127. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.js.map +1 -1
  128. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page.js +16 -4
  129. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page.js.map +1 -1
  130. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_alias.js +11 -9
  131. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_alias.js.map +1 -1
  132. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_othr.js +17 -35
  133. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_othr.js.map +1 -1
  134. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_schedule.js +8 -10
  135. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_schedule.js.map +1 -1
  136. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_verification.js +127 -106
  137. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_verification.js.map +1 -1
  138. package/lib/module/modules/transactions/presentation/pages/transaction_recents/transaction_recents_nombre_widget.js +50 -42
  139. package/lib/module/modules/transactions/presentation/pages/transaction_recents/transaction_recents_nombre_widget.js.map +1 -1
  140. package/lib/module/modules/transactions/presentation/pages/transaction_recents/transaction_recents_widget.js +0 -1
  141. package/lib/module/modules/transactions/presentation/pages/transaction_recents/transaction_recents_widget.js.map +1 -1
  142. package/lib/module/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions.js +0 -1
  143. package/lib/module/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions.js.map +1 -1
  144. package/lib/module/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions_reject.js +37 -67
  145. package/lib/module/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions_reject.js.map +1 -1
  146. package/lib/module/modules/transactions/presentation/pages/transaction_search/transaction_search_page.js +9 -15
  147. package/lib/module/modules/transactions/presentation/pages/transaction_search/transaction_search_page.js.map +1 -1
  148. package/lib/module/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.js +5 -11
  149. package/lib/module/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.js.map +1 -1
  150. package/lib/module/modules/transactions/presentation/pages/transaction_split/transaction_split_page_tx.js +9 -9
  151. package/lib/module/modules/transactions/presentation/pages/transaction_split/transaction_split_page_tx.js.map +1 -1
  152. package/lib/module/shared/widgets/alias_widget.js +33 -12
  153. package/lib/module/shared/widgets/alias_widget.js.map +1 -1
  154. package/lib/module/shared/widgets/auth_code_field.js +89 -0
  155. package/lib/module/shared/widgets/auth_code_field.js.map +1 -0
  156. package/lib/module/shared/widgets/calendar_date_picker.js +21 -16
  157. package/lib/module/shared/widgets/calendar_date_picker.js.map +1 -1
  158. package/lib/module/shared/widgets/confirm_action_sheet_widget.js +53 -67
  159. package/lib/module/shared/widgets/confirm_action_sheet_widget.js.map +1 -1
  160. package/lib/module/shared/widgets/emoji_select_widget.js +34 -39
  161. package/lib/module/shared/widgets/emoji_select_widget.js.map +1 -1
  162. package/lib/module/shared/widgets/frequence_input_widget.js +18 -29
  163. package/lib/module/shared/widgets/frequence_input_widget.js.map +1 -1
  164. package/lib/module/shared/widgets/frequence_select_widget.js +233 -140
  165. package/lib/module/shared/widgets/frequence_select_widget.js.map +1 -1
  166. package/lib/module/shared/widgets/image_select_widget.js +43 -107
  167. package/lib/module/shared/widgets/image_select_widget.js.map +1 -1
  168. package/lib/module/shared/widgets/input_text.js +1 -1
  169. package/lib/module/shared/widgets/input_text.js.map +1 -1
  170. package/lib/module/shared/widgets/notification_dialog.js +28 -37
  171. package/lib/module/shared/widgets/notification_dialog.js.map +1 -1
  172. package/lib/module/shared/widgets/pin_entete.js +114 -0
  173. package/lib/module/shared/widgets/pin_entete.js.map +1 -0
  174. package/lib/module/shared/widgets/select_date_widget.js +74 -59
  175. package/lib/module/shared/widgets/select_date_widget.js.map +1 -1
  176. package/lib/module/shared/widgets/selection.js +387 -6
  177. package/lib/module/shared/widgets/selection.js.map +1 -1
  178. package/lib/typescript/src/core/api.d.ts +6 -0
  179. package/lib/typescript/src/core/api.d.ts.map +1 -1
  180. package/lib/typescript/src/l10n/app_localizations.d.ts +75 -11
  181. package/lib/typescript/src/l10n/app_localizations.d.ts.map +1 -1
  182. package/lib/typescript/src/l10n/app_localizations_en.d.ts.map +1 -1
  183. package/lib/typescript/src/l10n/app_localizations_fr.d.ts.map +1 -1
  184. package/lib/typescript/src/l10n/app_localizations_pt.d.ts.map +1 -1
  185. package/lib/typescript/src/modules/alias/domain/models/alias_revendication.d.ts.map +1 -1
  186. package/lib/typescript/src/modules/alias/infra/alias_output_local.d.ts +5 -0
  187. package/lib/typescript/src/modules/alias/infra/alias_output_local.d.ts.map +1 -1
  188. package/lib/typescript/src/modules/alias/infra/alias_output_repository.d.ts.map +1 -1
  189. package/lib/typescript/src/modules/alias/presentation/pages/alias_delete_btn_widget.d.ts.map +1 -1
  190. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_claim.d.ts.map +1 -1
  191. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_create_mbno_form.d.ts.map +1 -1
  192. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_create_mbno_timer.d.ts +1 -1
  193. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_create_mbno_timer.d.ts.map +1 -1
  194. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_create_options.d.ts +4 -1
  195. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_create_options.d.ts.map +1 -1
  196. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_otp.d.ts +9 -5
  197. package/lib/typescript/src/modules/alias/presentation/pages/alias_page_otp.d.ts.map +1 -1
  198. package/lib/typescript/src/modules/categorie/domain/services/categorie_service.d.ts.map +1 -1
  199. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_edit_icon_btn.d.ts +3 -0
  200. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_edit_icon_btn.d.ts.map +1 -1
  201. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_form_pages.d.ts.map +1 -1
  202. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_icon.d.ts +9 -0
  203. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_icon.d.ts.map +1 -1
  204. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_liste_widget.d.ts +7 -2
  205. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_liste_widget.d.ts.map +1 -1
  206. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_select_page.d.ts.map +1 -1
  207. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_select_widget.d.ts +10 -2
  208. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_select_widget.d.ts.map +1 -1
  209. package/lib/typescript/src/modules/config/domain/models/config_keys.d.ts +3 -1
  210. package/lib/typescript/src/modules/config/domain/models/config_keys.d.ts.map +1 -1
  211. package/lib/typescript/src/modules/contacts/domain/contact_pi.d.ts +0 -2
  212. package/lib/typescript/src/modules/contacts/domain/contact_pi.d.ts.map +1 -1
  213. package/lib/typescript/src/modules/contacts/presentation/bloc/contact_bloc.d.ts +7 -0
  214. package/lib/typescript/src/modules/contacts/presentation/bloc/contact_bloc.d.ts.map +1 -1
  215. package/lib/typescript/src/modules/contacts/presentation/pages/contact_actions_sheet.d.ts +14 -0
  216. package/lib/typescript/src/modules/contacts/presentation/pages/contact_actions_sheet.d.ts.map +1 -0
  217. package/lib/typescript/src/modules/contacts/presentation/pages/contact_list_alias_widget.d.ts +4 -2
  218. package/lib/typescript/src/modules/contacts/presentation/pages/contact_list_alias_widget.d.ts.map +1 -1
  219. package/lib/typescript/src/modules/contacts/presentation/pages/contact_list_phone_widget.d.ts.map +1 -1
  220. package/lib/typescript/src/modules/contacts/presentation/pages/contact_list_widget_item.d.ts +6 -4
  221. package/lib/typescript/src/modules/contacts/presentation/pages/contact_list_widget_item.d.ts.map +1 -1
  222. package/lib/typescript/src/modules/contacts/presentation/pages/contact_section.d.ts +3 -1
  223. package/lib/typescript/src/modules/contacts/presentation/pages/contact_section.d.ts.map +1 -1
  224. package/lib/typescript/src/modules/contacts/presentation/pages/contact_select_page.d.ts.map +1 -1
  225. package/lib/typescript/src/modules/contacts/presentation/pages/create/contact_create_page.d.ts.map +1 -1
  226. package/lib/typescript/src/modules/home/presentation/pages/home_page.d.ts.map +1 -1
  227. package/lib/typescript/src/modules/introduction/presentation/pages/introduction.d.ts.map +1 -1
  228. package/lib/typescript/src/modules/introduction/presentation/pages/introduction_footer.d.ts +5 -1
  229. package/lib/typescript/src/modules/introduction/presentation/pages/introduction_footer.d.ts.map +1 -1
  230. package/lib/typescript/src/modules/introduction/presentation/pages/introduction_page.d.ts.map +1 -1
  231. package/lib/typescript/src/modules/profile/presentation/pages/profile_page_avatar.d.ts.map +1 -1
  232. package/lib/typescript/src/modules/profile/presentation/pages/profile_page_contacts.d.ts.map +1 -1
  233. package/lib/typescript/src/modules/profile/presentation/pages/profile_page_contacts_actions.d.ts.map +1 -1
  234. package/lib/typescript/src/modules/qrcode/presentation/pages/qrcode_alias_page.d.ts.map +1 -1
  235. package/lib/typescript/src/modules/qrcode/presentation/pages/qrcode_alias_page_share.d.ts.map +1 -1
  236. package/lib/typescript/src/modules/search/domain/models/fonctionnalite.d.ts +20 -0
  237. package/lib/typescript/src/modules/search/domain/models/fonctionnalite.d.ts.map +1 -1
  238. package/lib/typescript/src/modules/search/presentation/pages/search_btn_widget.d.ts +11 -0
  239. package/lib/typescript/src/modules/search/presentation/pages/search_btn_widget.d.ts.map +1 -0
  240. package/lib/typescript/src/modules/search/presentation/pages/search_fonctionnalites.d.ts.map +1 -1
  241. package/lib/typescript/src/modules/search/presentation/pages/search_page.d.ts.map +1 -1
  242. package/lib/typescript/src/modules/subscription/presentation/pages/subscription_create/subscription_create_page.d.ts.map +1 -1
  243. package/lib/typescript/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page.d.ts.map +1 -1
  244. package/lib/typescript/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page_actions.d.ts.map +1 -1
  245. package/lib/typescript/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page_note_sheet.d.ts +2 -2
  246. package/lib/typescript/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page_note_sheet.d.ts.map +1 -1
  247. package/lib/typescript/src/modules/subscription/presentation/pages/subscription_menu_widget.d.ts.map +1 -1
  248. package/lib/typescript/src/modules/transactions/domain/models/transaction_send/transaction_send_command_othr.d.ts.map +1 -1
  249. package/lib/typescript/src/modules/transactions/infra/transaction_output_remote.d.ts.map +1 -1
  250. package/lib/typescript/src/modules/transactions/presentation/bloc/transaction_send/transaction_send_bloc.d.ts.map +1 -1
  251. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions.d.ts.map +1 -1
  252. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_cancel.d.ts.map +1 -1
  253. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_return.d.ts.map +1 -1
  254. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_date.d.ts +4 -1
  255. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_date.d.ts.map +1 -1
  256. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.d.ts +17 -0
  257. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.d.ts.map +1 -0
  258. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.d.ts +6 -2
  259. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.d.ts.map +1 -1
  260. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_alias.d.ts +4 -0
  261. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_alias.d.ts.map +1 -1
  262. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_othr.d.ts.map +1 -1
  263. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_schedule.d.ts.map +1 -1
  264. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_verification.d.ts.map +1 -1
  265. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_recents/transaction_recents_nombre_widget.d.ts.map +1 -1
  266. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions.d.ts.map +1 -1
  267. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions_reject.d.ts.map +1 -1
  268. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_search/transaction_search_page.d.ts.map +1 -1
  269. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.d.ts.map +1 -1
  270. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_split/transaction_split_page_tx.d.ts.map +1 -1
  271. package/lib/typescript/src/shared/widgets/alias_widget.d.ts +2 -2
  272. package/lib/typescript/src/shared/widgets/alias_widget.d.ts.map +1 -1
  273. package/lib/typescript/src/shared/widgets/auth_code_field.d.ts +17 -0
  274. package/lib/typescript/src/shared/widgets/auth_code_field.d.ts.map +1 -0
  275. package/lib/typescript/src/shared/widgets/calendar_date_picker.d.ts.map +1 -1
  276. package/lib/typescript/src/shared/widgets/confirm_action_sheet_widget.d.ts +16 -2
  277. package/lib/typescript/src/shared/widgets/confirm_action_sheet_widget.d.ts.map +1 -1
  278. package/lib/typescript/src/shared/widgets/emoji_select_widget.d.ts.map +1 -1
  279. package/lib/typescript/src/shared/widgets/frequence_input_widget.d.ts +6 -3
  280. package/lib/typescript/src/shared/widgets/frequence_input_widget.d.ts.map +1 -1
  281. package/lib/typescript/src/shared/widgets/frequence_select_widget.d.ts +23 -5
  282. package/lib/typescript/src/shared/widgets/frequence_select_widget.d.ts.map +1 -1
  283. package/lib/typescript/src/shared/widgets/image_select_widget.d.ts +6 -4
  284. package/lib/typescript/src/shared/widgets/image_select_widget.d.ts.map +1 -1
  285. package/lib/typescript/src/shared/widgets/input_text.d.ts +2 -0
  286. package/lib/typescript/src/shared/widgets/input_text.d.ts.map +1 -1
  287. package/lib/typescript/src/shared/widgets/notification_dialog.d.ts +5 -3
  288. package/lib/typescript/src/shared/widgets/notification_dialog.d.ts.map +1 -1
  289. package/lib/typescript/src/shared/widgets/pin_entete.d.ts +15 -0
  290. package/lib/typescript/src/shared/widgets/pin_entete.d.ts.map +1 -0
  291. package/lib/typescript/src/shared/widgets/select_date_widget.d.ts +4 -0
  292. package/lib/typescript/src/shared/widgets/select_date_widget.d.ts.map +1 -1
  293. package/lib/typescript/src/shared/widgets/selection.d.ts +74 -3
  294. package/lib/typescript/src/shared/widgets/selection.d.ts.map +1 -1
  295. package/package.json +1 -1
  296. package/src/core/api.ts +11 -2
  297. package/src/l10n/app_localizations.ts +75 -11
  298. package/src/l10n/app_localizations_en.ts +40 -8
  299. package/src/l10n/app_localizations_fr.ts +46 -14
  300. package/src/l10n/app_localizations_pt.ts +39 -7
  301. package/src/modules/alias/domain/models/alias_revendication.ts +4 -2
  302. package/src/modules/alias/infra/alias_output_local.ts +11 -0
  303. package/src/modules/alias/infra/alias_output_repository.ts +9 -8
  304. package/src/modules/alias/presentation/pages/alias_delete_btn_widget.tsx +17 -24
  305. package/src/modules/alias/presentation/pages/alias_page_claim.tsx +76 -48
  306. package/src/modules/alias/presentation/pages/alias_page_create_mbno_form.tsx +113 -65
  307. package/src/modules/alias/presentation/pages/alias_page_create_mbno_timer.tsx +34 -25
  308. package/src/modules/alias/presentation/pages/alias_page_create_options.tsx +29 -36
  309. package/src/modules/alias/presentation/pages/alias_page_otp.tsx +24 -88
  310. package/src/modules/categorie/domain/services/categorie_service.ts +2 -1
  311. package/src/modules/categorie/presentation/pages/categorie_edit_icon_btn.tsx +58 -50
  312. package/src/modules/categorie/presentation/pages/categorie_form_pages.tsx +71 -41
  313. package/src/modules/categorie/presentation/pages/categorie_icon.tsx +26 -0
  314. package/src/modules/categorie/presentation/pages/categorie_liste_widget.tsx +45 -24
  315. package/src/modules/categorie/presentation/pages/categorie_select_page.tsx +10 -46
  316. package/src/modules/categorie/presentation/pages/categorie_select_widget.tsx +54 -13
  317. package/src/modules/config/domain/models/config_keys.ts +3 -0
  318. package/src/modules/contacts/domain/contact_pi.ts +3 -6
  319. package/src/modules/contacts/presentation/bloc/contact_bloc.ts +37 -20
  320. package/src/modules/contacts/presentation/pages/contact_actions_sheet.tsx +69 -0
  321. package/src/modules/contacts/presentation/pages/contact_list_alias_widget.tsx +26 -4
  322. package/src/modules/contacts/presentation/pages/contact_list_phone_widget.tsx +3 -0
  323. package/src/modules/contacts/presentation/pages/contact_list_widget_item.tsx +54 -65
  324. package/src/modules/contacts/presentation/pages/contact_section.tsx +13 -3
  325. package/src/modules/contacts/presentation/pages/contact_select_page.tsx +106 -74
  326. package/src/modules/contacts/presentation/pages/create/contact_create_page.tsx +86 -47
  327. package/src/modules/home/presentation/pages/home_page.tsx +2 -9
  328. package/src/modules/introduction/presentation/pages/introduction.tsx +8 -0
  329. package/src/modules/introduction/presentation/pages/introduction_footer.tsx +16 -36
  330. package/src/modules/introduction/presentation/pages/introduction_page.tsx +17 -5
  331. package/src/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications.tsx +2 -2
  332. package/src/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications_son.tsx +1 -1
  333. package/src/modules/profile/presentation/pages/profile_page_avatar.tsx +6 -12
  334. package/src/modules/profile/presentation/pages/profile_page_contacts.tsx +12 -20
  335. package/src/modules/profile/presentation/pages/profile_page_contacts_actions.tsx +120 -117
  336. package/src/modules/qrcode/presentation/pages/qrcode_alias_page.tsx +0 -1
  337. package/src/modules/qrcode/presentation/pages/qrcode_alias_page_share.tsx +32 -40
  338. package/src/modules/search/domain/models/fonctionnalite.ts +56 -0
  339. package/src/modules/search/presentation/pages/search_btn_widget.tsx +91 -0
  340. package/src/modules/search/presentation/pages/search_fonctionnalites.ts +21 -1
  341. package/src/modules/search/presentation/pages/search_page.tsx +166 -57
  342. package/src/modules/subscription/presentation/pages/subscription_create/subscription_create_page.tsx +4 -2
  343. package/src/modules/subscription/presentation/pages/subscription_create/subscription_create_page_list.tsx +5 -5
  344. package/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page.tsx +0 -1
  345. package/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page_actions.tsx +0 -1
  346. package/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page_note_sheet.tsx +20 -59
  347. package/src/modules/subscription/presentation/pages/subscription_list/subscription_list_empty_widget.tsx +1 -1
  348. package/src/modules/subscription/presentation/pages/subscription_list/subscription_list_widget.tsx +1 -1
  349. package/src/modules/subscription/presentation/pages/subscription_menu_widget.tsx +25 -39
  350. package/src/modules/transactions/domain/models/transaction_send/transaction_send_command_othr.ts +1 -2
  351. package/src/modules/transactions/infra/transaction_output_remote.ts +6 -1
  352. package/src/modules/transactions/presentation/bloc/transaction_send/transaction_send_bloc.ts +17 -0
  353. package/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions.tsx +0 -1
  354. package/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_cancel.tsx +39 -41
  355. package/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_return.tsx +41 -46
  356. package/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_ticket.tsx +46 -40
  357. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_date.tsx +26 -17
  358. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.tsx +92 -0
  359. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.tsx +48 -94
  360. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page.tsx +20 -2
  361. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_alias.tsx +6 -8
  362. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_othr.tsx +9 -22
  363. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_schedule.tsx +5 -7
  364. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_verification.tsx +112 -104
  365. package/src/modules/transactions/presentation/pages/transaction_recents/transaction_recents_nombre_widget.tsx +49 -42
  366. package/src/modules/transactions/presentation/pages/transaction_recents/transaction_recents_widget.tsx +1 -1
  367. package/src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions.tsx +0 -1
  368. package/src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions_reject.tsx +47 -48
  369. package/src/modules/transactions/presentation/pages/transaction_search/transaction_search_page.tsx +6 -10
  370. package/src/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.tsx +3 -6
  371. package/src/modules/transactions/presentation/pages/transaction_split/transaction_split_page_tx.tsx +5 -5
  372. package/src/shared/widgets/alias_widget.tsx +45 -18
  373. package/src/shared/widgets/auth_code_field.tsx +89 -0
  374. package/src/shared/widgets/calendar_date_picker.tsx +12 -11
  375. package/src/shared/widgets/confirm_action_sheet_widget.tsx +49 -35
  376. package/src/shared/widgets/emoji_select_widget.tsx +31 -29
  377. package/src/shared/widgets/frequence_input_widget.tsx +18 -24
  378. package/src/shared/widgets/frequence_select_widget.tsx +237 -117
  379. package/src/shared/widgets/image_select_widget.tsx +46 -61
  380. package/src/shared/widgets/input_text.tsx +3 -0
  381. package/src/shared/widgets/notification_dialog.tsx +70 -71
  382. package/src/shared/widgets/pin_entete.tsx +74 -0
  383. package/src/shared/widgets/select_date_widget.tsx +66 -34
  384. package/src/shared/widgets/selection.tsx +304 -5
  385. package/lib/module/modules/transactions/presentation/pages/transaction_details/sheet_box.js +0 -47
  386. package/lib/module/modules/transactions/presentation/pages/transaction_details/sheet_box.js.map +0 -1
  387. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_details/sheet_box.d.ts +0 -10
  388. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_details/sheet_box.d.ts.map +0 -1
  389. package/src/modules/transactions/presentation/pages/transaction_details/sheet_box.tsx +0 -30
@@ -1,6 +1,5 @@
1
1
  import { Image } from 'expo-image';
2
- import { ScrollView, StyleSheet, Text, useWindowDimensions, View } from 'react-native';
3
- import { useSafeAreaInsets } from 'react-native-safe-area-context';
2
+ import { ScrollView, StyleSheet, Text, View } from 'react-native';
4
3
 
5
4
  import { Images } from '../../core/assets';
6
5
  import { scaleDownSize } from '../utils/scale_down';
@@ -8,6 +7,7 @@ import { AppRouter, useAppRouter } from '../../core/router';
8
7
  import { useTheme } from '../../core/theme';
9
8
  import { ElevatedButton } from '../material/buttons';
10
9
  import { PopScope } from '../material/overlays';
10
+ import { SelectionSheet } from './selection';
11
11
 
12
12
  /** Affichage des dialogues de notifications de succes ou erreur */
13
13
  export enum NotificationType {
@@ -40,11 +40,13 @@ export type NotificationDialogProps = {
40
40
  animatedImage?: number;
41
41
  btnAction?: () => void;
42
42
  btns?: NotificationBtn[];
43
+ /** `true` : la feuille se ferme aussi par le bouton retour */
44
+ canPop?: boolean;
43
45
  };
44
46
 
45
47
  /**
46
- * Contenu de feuille du bas affichant un succès / une erreur / une info,
47
- * avec son animation, ses textes et ses boutons. Le bouton retour est
48
+ * Feuille du bas affichant un succès / une erreur / une info : animation
49
+ * selon le [type], textes centrés puis bouton(s) sur toute la largeur. Le bouton retour est
48
50
  * bloqué : seuls les boutons ferment la feuille.
49
51
  */
50
52
  export function NotificationDialog({
@@ -58,76 +60,74 @@ export function NotificationDialog({
58
60
  animatedImage,
59
61
  btnAction,
60
62
  btns,
63
+ canPop = false,
61
64
  }: NotificationDialogProps) {
62
65
  const theme = useTheme();
63
66
  const router = useAppRouter();
64
- const { height } = useWindowDimensions();
65
- const insets = useSafeAreaInsets();
66
67
  const image = animatedImage ?? imageFor(type);
67
68
  const close = () => AppRouter.pop(router);
68
69
 
69
70
  return (
70
- <PopScope canPop={false}>
71
- <View
72
- style={[
73
- styles.box,
74
- { maxHeight: height * 0.7, backgroundColor: theme.colorScheme.surface, paddingBottom: insets.bottom },
75
- ]}
76
- >
77
- <ScrollView contentContainerStyle={styles.content} bounces={false}>
78
- {image != null && (
79
- <>
80
- <Image source={image} style={[scaleDownSize(image, 100), styles.image]} contentFit="contain" />
81
- <View style={styles.gap32} />
82
- </>
83
- )}
84
- {/* Text message */}
85
- {message != null && (
86
- <>
87
- <Text style={[theme.textTheme.headlineSmall, styles.center]}>{message}</Text>
88
- <View style={styles.gap20} />
89
- </>
90
- )}
91
- {/* Title message */}
92
- {title != null && (
93
- <>
94
- <Text style={[theme.textTheme.titleSmall, styles.center]}>{title}</Text>
95
- <View style={styles.gap15} />
96
- </>
97
- )}
98
- {/* Subtitle message */}
99
- {subtitle != null && (
100
- <>
101
- <Text style={[theme.textTheme.titleSmall, styles.center]}>{subtitle}</Text>
102
- <View style={styles.gap15} />
103
- </>
104
- )}
105
- {/* Description */}
106
- {description != null && (
107
- <>
108
- <Text style={[theme.textTheme.displaySmall, styles.center]}>{description}</Text>
109
- <View style={styles.gap24} />
110
- </>
111
- )}
112
- {/* Continue btn */}
113
- {btnText != null && (
114
- <ElevatedButton onPress={btnAction ?? close} style={btnColor ? { backgroundColor: btnColor } : undefined}>
115
- {btnText}
116
- </ElevatedButton>
117
- )}
118
- {/* Btns d'action */}
119
- {btns?.map((btn, i) => (
120
- <View key={i} style={styles.btn}>
121
- <ElevatedButton
122
- onPress={btn.btnAction ?? close}
123
- style={btn.btnColor ? { backgroundColor: btn.btnColor } : undefined}
124
- >
125
- {btn.btnText}
71
+ <PopScope canPop={canPop}>
72
+ <SelectionSheet
73
+ hauteurMax={0.8}
74
+ contenu={
75
+ <ScrollView contentContainerStyle={styles.content} bounces={false}>
76
+ {image != null && (
77
+ <>
78
+ <Image source={image} style={[scaleDownSize(image, 96), styles.image]} contentFit="contain" />
79
+ <View style={styles.gap24} />
80
+ </>
81
+ )}
82
+ {/* Text message */}
83
+ {message != null && (
84
+ <>
85
+ <Text style={[theme.textTheme.headlineSmall, styles.center]}>{message}</Text>
86
+ <View style={styles.gap16} />
87
+ </>
88
+ )}
89
+ {/* Title message */}
90
+ {title != null && (
91
+ <>
92
+ <Text style={[theme.textTheme.titleSmall, styles.center]}>{title}</Text>
93
+ <View style={styles.gap12} />
94
+ </>
95
+ )}
96
+ {/* Subtitle message */}
97
+ {subtitle != null && (
98
+ <>
99
+ <Text style={[theme.textTheme.titleSmall, styles.center]}>{subtitle}</Text>
100
+ <View style={styles.gap12} />
101
+ </>
102
+ )}
103
+ {/* Description */}
104
+ {description != null && (
105
+ <>
106
+ <Text style={[theme.textTheme.displaySmall, styles.center]}>{description}</Text>
107
+ <View style={styles.gap16} />
108
+ </>
109
+ )}
110
+ <View style={styles.gap8} />
111
+ {/* Continue btn */}
112
+ {btnText != null && (
113
+ <ElevatedButton onPress={btnAction ?? close} style={btnColor ? { backgroundColor: btnColor } : undefined}>
114
+ {btnText}
126
115
  </ElevatedButton>
127
- </View>
128
- ))}
129
- </ScrollView>
130
- </View>
116
+ )}
117
+ {/* Btns d'action */}
118
+ {btns?.map((btn, i) => (
119
+ <View key={i} style={styles.btn}>
120
+ <ElevatedButton
121
+ onPress={btn.btnAction ?? close}
122
+ style={btn.btnColor ? { backgroundColor: btn.btnColor } : undefined}
123
+ >
124
+ {btn.btnText}
125
+ </ElevatedButton>
126
+ </View>
127
+ ))}
128
+ </ScrollView>
129
+ }
130
+ />
131
131
  </PopScope>
132
132
  );
133
133
  }
@@ -146,13 +146,12 @@ function imageFor(type: NotificationType): number | undefined {
146
146
  }
147
147
 
148
148
  const styles = StyleSheet.create({
149
- box: { borderRadius: 20, width: '100%', overflow: 'hidden' },
150
- content: { paddingHorizontal: 40, paddingVertical: 10, alignItems: 'stretch' },
149
+ content: { paddingHorizontal: 28, paddingTop: 8, paddingBottom: 16, alignItems: 'stretch' },
151
150
  image: { alignSelf: 'center' },
152
151
  center: { textAlign: 'center' },
153
- gap15: { height: 15 },
154
- gap20: { height: 20 },
152
+ gap8: { height: 8 },
153
+ gap12: { height: 12 },
154
+ gap16: { height: 16 },
155
155
  gap24: { height: 24 },
156
- gap32: { height: 32 },
157
156
  btn: { paddingVertical: 5 },
158
157
  });
@@ -0,0 +1,74 @@
1
+ import { MaterialIcons } from '@expo/vector-icons';
2
+ import type { ComponentProps } from 'react';
3
+ import { StyleSheet, Text, View } from 'react-native';
4
+
5
+ import { Themer, useTheme } from '../../core/theme';
6
+ import { withAlpha } from '../utils/color';
7
+
8
+ /** En-tête des pages de création et de modification du code PIN : pastille avec [icone], [titre] (facultatif) et [sousTitre] centrés. */
9
+ export function PinEntete({
10
+ icone,
11
+ titre,
12
+ sousTitre,
13
+ compact = false,
14
+ }: {
15
+ icone: ComponentProps<typeof MaterialIcons>['name'];
16
+ titre?: string;
17
+ sousTitre: string;
18
+ compact?: boolean;
19
+ }) {
20
+ const theme = useTheme();
21
+ const primaire = theme.colorScheme.primary;
22
+ const taille = compact ? 56 : 72;
23
+ return (
24
+ <View style={pageStyles.entete}>
25
+ <View style={[pageStyles.pastille, { width: taille, height: taille, borderRadius: taille / 2, backgroundColor: withAlpha(primaire, 0.12) }]}>
26
+ <MaterialIcons name={icone} size={taille * 0.45} color={primaire} />
27
+ </View>
28
+ <View style={{ height: compact ? 10 : 14 }} />
29
+ {titre != null && (
30
+ <>
31
+ <Text style={[theme.textTheme.headlineSmall, pageStyles.centre, pageStyles.gras]}>{titre}</Text>
32
+ <View style={pageStyles.gap6} />
33
+ </>
34
+ )}
35
+ <Text style={[theme.textTheme.displayMedium, pageStyles.centre, { color: Themer.neural03Color }]}>{sousTitre}</Text>
36
+ </View>
37
+ );
38
+ }
39
+
40
+ /** Bandeau d'erreur (ou de succès, avec [succes]) sous les points du code PIN ; rien si [message] est vide. */
41
+ export function PinMessage({ message, succes = false }: { message?: string | null; succes?: boolean }) {
42
+ const theme = useTheme();
43
+ if (message == null || message.length === 0) return null;
44
+ const couleur = succes ? Themer.successColor : theme.colorScheme.error;
45
+ return (
46
+ <View
47
+ accessibilityLiveRegion="polite"
48
+ style={[pageStyles.message, { backgroundColor: withAlpha(couleur, 0.08), borderColor: withAlpha(couleur, 0.25) }]}
49
+ >
50
+ <MaterialIcons name={succes ? 'check-circle-outline' : 'error-outline'} size={20} color={couleur} />
51
+ <Text style={[theme.textTheme.bodyMedium, pageStyles.messageTexte, { color: couleur }]}>{message}</Text>
52
+ </View>
53
+ );
54
+ }
55
+
56
+ const pageStyles = StyleSheet.create({
57
+ gap6: { height: 6 },
58
+ entete: { alignItems: 'center' },
59
+ pastille: { alignItems: 'center', justifyContent: 'center' },
60
+ centre: { textAlign: 'center' },
61
+ gras: { fontWeight: '600' },
62
+ message: {
63
+ flexDirection: 'row',
64
+ alignItems: 'center',
65
+ justifyContent: 'center',
66
+ alignSelf: 'stretch',
67
+ marginTop: 15,
68
+ paddingHorizontal: 14,
69
+ paddingVertical: 12,
70
+ borderRadius: 14,
71
+ borderWidth: 1,
72
+ },
73
+ messageTexte: { marginLeft: 10, fontWeight: '500', flexShrink: 1, textAlign: 'center' },
74
+ });
@@ -1,6 +1,6 @@
1
+ import { MaterialIcons } from '@expo/vector-icons';
1
2
  import { useState, type ReactNode } from 'react';
2
- import { ScrollView, StyleSheet, Text, useWindowDimensions, View } from 'react-native';
3
- import { useSafeAreaInsets } from 'react-native-safe-area-context';
3
+ import { ScrollView, StyleSheet, Text, View } from 'react-native';
4
4
 
5
5
  import { AppRouter, useAppRouter, type SdkRouter } from '../../core/router';
6
6
  import { Themer, useTheme } from '../../core/theme';
@@ -8,28 +8,57 @@ import type { AppLocalizations } from '../../l10n/app_localizations';
8
8
  import { useAppLocalizations } from '../../l10n/localizations';
9
9
  import { ElevatedButton } from '../material/buttons';
10
10
  import { showModalBottomSheet } from '../material/overlays';
11
+ import { withAlpha } from '../utils/color';
11
12
  import { DateFormat } from '../utils/date_format';
12
13
  import { CalendarDatePicker } from './calendar_date_picker';
14
+ import { SelectionBoutons, SelectionSheet } from './selection';
13
15
 
14
- /** Feuille avec un calendrier : titre, calendrier, plage choisie, « Valider ». */
15
- function DateSheet({ title, subTitle, children, footer }: { title: string; subTitle?: string; children: ReactNode; footer?: ReactNode }) {
16
+ /**
17
+ * Feuille avec un calendrier : poignée, titre, sous-titre, calendrier, date
18
+ * ou plage choisie ([resume]) puis « Valider » fixé en bas.
19
+ */
20
+ function DateSheet({ title, subTitle, children, resume }: { title: string; subTitle?: string; children: ReactNode; resume?: string | null }) {
16
21
  const theme = useTheme();
17
22
  const router = useAppRouter();
18
23
  const traductions = useAppLocalizations();
19
- const insets = useSafeAreaInsets();
20
- const { height } = useWindowDimensions();
21
24
  return (
22
- <View style={[styles.sheet, { backgroundColor: theme.colorScheme.surface, maxHeight: height * 0.65, paddingBottom: insets.bottom }]}>
23
- <View style={styles.title}>
24
- <Text style={theme.textTheme.headlineMedium}>{title}</Text>
25
- <View style={styles.gap12} />
26
- {subTitle != null && <Text style={theme.textTheme.displayMedium}>{subTitle}</Text>}
27
- </View>
28
- <ScrollView style={styles.flexShrink}>{children}</ScrollView>
29
- {footer}
30
- <View style={styles.button}>
31
- <ElevatedButton onPress={() => AppRouter.pop(router)}>{traductions.popupSelectDateBtnValider}</ElevatedButton>
32
- </View>
25
+ <SelectionSheet
26
+ titre={title}
27
+ hauteurMax={0.85}
28
+ entete={
29
+ subTitle != null ? <Text style={[theme.textTheme.displaySmall, { color: Themer.neural03Color }]}>{subTitle}</Text> : undefined
30
+ }
31
+ contenu={
32
+ <>
33
+ <ScrollView bounces={false} style={styles.flexShrink} contentContainerStyle={styles.content}>
34
+ {children}
35
+ {resume != null && <SelectDateResume texte={resume} />}
36
+ </ScrollView>
37
+ <SelectionBoutons
38
+ boutons={[
39
+ <ElevatedButton key="valider" onPress={() => AppRouter.pop(router)}>
40
+ {traductions.popupSelectDateBtnValider}
41
+ </ElevatedButton>,
42
+ ]}
43
+ />
44
+ </>
45
+ }
46
+ />
47
+ );
48
+ }
49
+
50
+ /** Date ou plage choisie, mise en évidence sous le calendrier. */
51
+ export function SelectDateResume({ texte }: { texte: string }) {
52
+ const theme = useTheme();
53
+ return (
54
+ <View
55
+ style={[
56
+ styles.resume,
57
+ { backgroundColor: withAlpha(Themer.successColor, 0.08), borderColor: withAlpha(Themer.successColor, 0.25) },
58
+ ]}
59
+ >
60
+ <MaterialIcons name="event-available" size={20} color={Themer.successColor} />
61
+ <Text style={[theme.textTheme.displayLarge, styles.resumeTexte, { color: Themer.successColor }]}>{texte}</Text>
33
62
  </View>
34
63
  );
35
64
  }
@@ -41,7 +70,6 @@ export async function showSelectDate(
41
70
  ): Promise<Date | null> {
42
71
  let date: Date | null = null;
43
72
  await showModalBottomSheet(router, {
44
- themed: true,
45
73
  builder: () => <SelectDate {...options} onSelect={(d) => (date = d)} />,
46
74
  });
47
75
  return date;
@@ -62,9 +90,14 @@ function SelectDate({
62
90
  lastDate?: Date | null;
63
91
  onSelect: (date: Date) => void;
64
92
  }) {
65
- const [value, setValue] = useState<Date | null>(null);
93
+ const traductions = useAppLocalizations();
94
+ const [value, setValue] = useState<Date | null>(selected ?? null);
66
95
  return (
67
- <DateSheet title={title} subTitle={subTitle}>
96
+ <DateSheet
97
+ title={title}
98
+ subTitle={subTitle}
99
+ resume={value != null ? new DateFormat('EEEE d MMMM yyyy', traductions.localeName).format(value) : null}
100
+ >
68
101
  <CalendarDatePicker
69
102
  type="single"
70
103
  value={[value]}
@@ -95,7 +128,6 @@ export async function showSelectDateRange(
95
128
  ): Promise<Date[]> {
96
129
  let dates: Date[] = [];
97
130
  await showModalBottomSheet(router, {
98
- themed: true,
99
131
  builder: () => <SelectDateRange {...options} onSelect={(d) => (dates = d)} />,
100
132
  });
101
133
  return dates;
@@ -119,14 +151,7 @@ function SelectDateRange({
119
151
  const [dateFin, setDateFin] = useState<Date | null>(initialFin ?? null);
120
152
  const formatter = new DateFormat('d MMMM yyyy', traductions.localeName);
121
153
  return (
122
- <DateSheet
123
- title={title}
124
- footer={
125
- dateDebut != null ? (
126
- <Text style={[styles.plage, { color: Themer.successColor }]}>{plageText(traductions, formatter, dateDebut, dateFin)}</Text>
127
- ) : null
128
- }
129
- >
154
+ <DateSheet title={title} resume={dateDebut != null ? plageText(traductions, formatter, dateDebut, dateFin) : null}>
130
155
  <CalendarDatePicker
131
156
  type="range"
132
157
  value={[dateDebut, dateFin]}
@@ -142,10 +167,17 @@ function SelectDateRange({
142
167
  }
143
168
 
144
169
  const styles = StyleSheet.create({
145
- sheet: { borderRadius: 20, overflow: 'hidden' },
146
- title: { paddingHorizontal: 20, paddingTop: 30, paddingBottom: 15 },
147
170
  flexShrink: { flexShrink: 1 },
148
- gap12: { height: 12 },
149
- plage: { textAlign: 'center', paddingHorizontal: 20 },
150
- button: { paddingHorizontal: 20, paddingVertical: 10 },
171
+ content: { paddingHorizontal: 4, paddingBottom: 16 },
172
+ resume: {
173
+ flexDirection: 'row',
174
+ alignItems: 'center',
175
+ marginHorizontal: 20,
176
+ marginTop: 4,
177
+ paddingHorizontal: 14,
178
+ paddingVertical: 12,
179
+ borderRadius: 14,
180
+ borderWidth: 1,
181
+ },
182
+ resumeTexte: { flex: 1, marginLeft: 10, fontWeight: '600' },
151
183
  });