@pi-spi/app 1.6.0 → 2.1.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 (233) hide show
  1. package/README.md +64 -30
  2. package/example/App.tsx +27 -24
  3. package/lib/module/core/api.js +14 -5
  4. package/lib/module/core/api.js.map +1 -1
  5. package/lib/module/core/assets.js +0 -7
  6. package/lib/module/core/assets.js.map +1 -1
  7. package/lib/module/core/di.js +17 -8
  8. package/lib/module/core/di.js.map +1 -1
  9. package/lib/module/core/pi_spi_custom_theme.js +22 -10
  10. package/lib/module/core/pi_spi_custom_theme.js.map +1 -1
  11. package/lib/module/core/pi_spi_sdk_config.js +22 -8
  12. package/lib/module/core/pi_spi_sdk_config.js.map +1 -1
  13. package/lib/module/core/theme.js +345 -225
  14. package/lib/module/core/theme.js.map +1 -1
  15. package/lib/module/index.js +1 -1
  16. package/lib/module/index.js.map +1 -1
  17. package/lib/module/l10n/app_localizations.js.map +1 -1
  18. package/lib/module/l10n/app_localizations_en.js +22 -0
  19. package/lib/module/l10n/app_localizations_en.js.map +1 -1
  20. package/lib/module/l10n/app_localizations_fr.js +22 -0
  21. package/lib/module/l10n/app_localizations_fr.js.map +1 -1
  22. package/lib/module/l10n/app_localizations_pt.js +22 -0
  23. package/lib/module/l10n/app_localizations_pt.js.map +1 -1
  24. package/lib/module/modules/categorie/presentation/pages/categorie_edit_icon_btn.js +25 -35
  25. package/lib/module/modules/categorie/presentation/pages/categorie_edit_icon_btn.js.map +1 -1
  26. package/lib/module/modules/config/domain/models/config_keys.js +3 -1
  27. package/lib/module/modules/config/domain/models/config_keys.js.map +1 -1
  28. package/lib/module/modules/config/domain/services/config_service.js +31 -2
  29. package/lib/module/modules/config/domain/services/config_service.js.map +1 -1
  30. package/lib/module/modules/home/presentation/pages/home_tab_compte.js +0 -1
  31. package/lib/module/modules/home/presentation/pages/home_tab_compte.js.map +1 -1
  32. package/lib/module/modules/home/presentation/pages/home_tab_compte_more_menu.js +38 -37
  33. package/lib/module/modules/home/presentation/pages/home_tab_compte_more_menu.js.map +1 -1
  34. package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page.js +2 -2
  35. package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page.js.map +1 -1
  36. package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_qrcode.js +2 -2
  37. package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_qrcode.js.map +1 -1
  38. package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_theme.js +135 -199
  39. package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_theme.js.map +1 -1
  40. package/lib/module/modules/profile/presentation/pages/profile_menu.js +4 -3
  41. package/lib/module/modules/profile/presentation/pages/profile_menu.js.map +1 -1
  42. package/lib/module/modules/profile/presentation/pages/profile_page_avatar.js +6 -28
  43. package/lib/module/modules/profile/presentation/pages/profile_page_avatar.js.map +1 -1
  44. package/lib/module/modules/profile/presentation/pages/profile_page_contacts.js +0 -1
  45. package/lib/module/modules/profile/presentation/pages/profile_page_contacts.js.map +1 -1
  46. package/lib/module/modules/profile/presentation/pages/profile_page_contacts_actions.js +122 -162
  47. package/lib/module/modules/profile/presentation/pages/profile_page_contacts_actions.js.map +1 -1
  48. package/lib/module/modules/qrcode/presentation/pages/qrcode_alias_page.js +0 -1
  49. package/lib/module/modules/qrcode/presentation/pages/qrcode_alias_page.js.map +1 -1
  50. package/lib/module/modules/qrcode/presentation/pages/qrcode_alias_page_share.js +26 -38
  51. package/lib/module/modules/qrcode/presentation/pages/qrcode_alias_page_share.js.map +1 -1
  52. package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page.js +0 -1
  53. package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page.js.map +1 -1
  54. package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page_actions.js +0 -1
  55. package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page_actions.js.map +1 -1
  56. package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page_note_sheet.js +38 -93
  57. package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page_note_sheet.js.map +1 -1
  58. package/lib/module/modules/subscription/presentation/pages/subscription_list/subscription_list_empty_widget.js +0 -1
  59. package/lib/module/modules/subscription/presentation/pages/subscription_list/subscription_list_empty_widget.js.map +1 -1
  60. package/lib/module/modules/subscription/presentation/pages/subscription_list/subscription_list_widget.js +0 -1
  61. package/lib/module/modules/subscription/presentation/pages/subscription_list/subscription_list_widget.js.map +1 -1
  62. package/lib/module/modules/subscription/presentation/pages/subscription_menu_widget.js +23 -42
  63. package/lib/module/modules/subscription/presentation/pages/subscription_menu_widget.js.map +1 -1
  64. package/lib/module/modules/transactions/infra/transaction_output_remote.js +2 -1
  65. package/lib/module/modules/transactions/infra/transaction_output_remote.js.map +1 -1
  66. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions.js +0 -1
  67. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions.js.map +1 -1
  68. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_cancel.js +34 -61
  69. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_cancel.js.map +1 -1
  70. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_return.js +49 -62
  71. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_return.js.map +1 -1
  72. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_recu.js +3 -1
  73. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_recu.js.map +1 -1
  74. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_ticket.js +68 -88
  75. package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_ticket.js.map +1 -1
  76. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.js +77 -0
  77. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.js.map +1 -0
  78. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.js +49 -155
  79. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.js.map +1 -1
  80. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_othr.js +8 -28
  81. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_othr.js.map +1 -1
  82. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_verification.js +0 -1
  83. package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_verification.js.map +1 -1
  84. package/lib/module/modules/transactions/presentation/pages/transaction_recents/transaction_recents_nombre_widget.js +50 -42
  85. package/lib/module/modules/transactions/presentation/pages/transaction_recents/transaction_recents_nombre_widget.js.map +1 -1
  86. package/lib/module/modules/transactions/presentation/pages/transaction_recents/transaction_recents_widget.js +0 -1
  87. package/lib/module/modules/transactions/presentation/pages/transaction_recents/transaction_recents_widget.js.map +1 -1
  88. package/lib/module/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions.js +0 -1
  89. package/lib/module/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions.js.map +1 -1
  90. package/lib/module/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions_reject.js +37 -67
  91. package/lib/module/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions_reject.js.map +1 -1
  92. package/lib/module/modules/transactions/presentation/pages/transaction_search/transaction_search_page_filters.js +5 -4
  93. package/lib/module/modules/transactions/presentation/pages/transaction_search/transaction_search_page_filters.js.map +1 -1
  94. package/lib/module/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.js +2 -2
  95. package/lib/module/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.js.map +1 -1
  96. package/lib/module/pi_spi_sdk_entry.js +7 -2
  97. package/lib/module/pi_spi_sdk_entry.js.map +1 -1
  98. package/lib/module/shared/widgets/confirm_action_sheet_widget.js +34 -67
  99. package/lib/module/shared/widgets/confirm_action_sheet_widget.js.map +1 -1
  100. package/lib/module/shared/widgets/custom_progressbar.js +3 -2
  101. package/lib/module/shared/widgets/custom_progressbar.js.map +1 -1
  102. package/lib/module/shared/widgets/image_select_widget.js +43 -107
  103. package/lib/module/shared/widgets/image_select_widget.js.map +1 -1
  104. package/lib/module/shared/widgets/notification_dialog.js +25 -35
  105. package/lib/module/shared/widgets/notification_dialog.js.map +1 -1
  106. package/lib/module/shared/widgets/selection.js +382 -6
  107. package/lib/module/shared/widgets/selection.js.map +1 -1
  108. package/lib/typescript/src/core/api.d.ts +6 -0
  109. package/lib/typescript/src/core/api.d.ts.map +1 -1
  110. package/lib/typescript/src/core/assets.d.ts +0 -7
  111. package/lib/typescript/src/core/assets.d.ts.map +1 -1
  112. package/lib/typescript/src/core/di.d.ts.map +1 -1
  113. package/lib/typescript/src/core/pi_spi_custom_theme.d.ts +17 -8
  114. package/lib/typescript/src/core/pi_spi_custom_theme.d.ts.map +1 -1
  115. package/lib/typescript/src/core/pi_spi_sdk_config.d.ts +22 -8
  116. package/lib/typescript/src/core/pi_spi_sdk_config.d.ts.map +1 -1
  117. package/lib/typescript/src/core/theme.d.ts +123 -53
  118. package/lib/typescript/src/core/theme.d.ts.map +1 -1
  119. package/lib/typescript/src/index.d.ts +1 -1
  120. package/lib/typescript/src/index.d.ts.map +1 -1
  121. package/lib/typescript/src/l10n/app_localizations.d.ts +44 -0
  122. package/lib/typescript/src/l10n/app_localizations.d.ts.map +1 -1
  123. package/lib/typescript/src/l10n/app_localizations_en.d.ts.map +1 -1
  124. package/lib/typescript/src/l10n/app_localizations_fr.d.ts.map +1 -1
  125. package/lib/typescript/src/l10n/app_localizations_pt.d.ts.map +1 -1
  126. package/lib/typescript/src/modules/categorie/presentation/pages/categorie_edit_icon_btn.d.ts.map +1 -1
  127. package/lib/typescript/src/modules/config/domain/models/config_keys.d.ts +3 -1
  128. package/lib/typescript/src/modules/config/domain/models/config_keys.d.ts.map +1 -1
  129. package/lib/typescript/src/modules/config/domain/services/config_service.d.ts +7 -0
  130. package/lib/typescript/src/modules/config/domain/services/config_service.d.ts.map +1 -1
  131. package/lib/typescript/src/modules/home/presentation/pages/home_tab_compte_more_menu.d.ts +2 -0
  132. package/lib/typescript/src/modules/home/presentation/pages/home_tab_compte_more_menu.d.ts.map +1 -1
  133. package/lib/typescript/src/modules/profile/presentation/pages/parametre/profile_parametre_page.d.ts.map +1 -1
  134. package/lib/typescript/src/modules/profile/presentation/pages/parametre/profile_parametre_page_theme.d.ts +1 -1
  135. package/lib/typescript/src/modules/profile/presentation/pages/parametre/profile_parametre_page_theme.d.ts.map +1 -1
  136. package/lib/typescript/src/modules/profile/presentation/pages/profile_page_avatar.d.ts.map +1 -1
  137. package/lib/typescript/src/modules/profile/presentation/pages/profile_page_contacts.d.ts.map +1 -1
  138. package/lib/typescript/src/modules/profile/presentation/pages/profile_page_contacts_actions.d.ts.map +1 -1
  139. package/lib/typescript/src/modules/qrcode/presentation/pages/qrcode_alias_page.d.ts.map +1 -1
  140. package/lib/typescript/src/modules/qrcode/presentation/pages/qrcode_alias_page_share.d.ts.map +1 -1
  141. package/lib/typescript/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page.d.ts.map +1 -1
  142. package/lib/typescript/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page_actions.d.ts.map +1 -1
  143. package/lib/typescript/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page_note_sheet.d.ts +2 -2
  144. package/lib/typescript/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page_note_sheet.d.ts.map +1 -1
  145. package/lib/typescript/src/modules/subscription/presentation/pages/subscription_menu_widget.d.ts.map +1 -1
  146. package/lib/typescript/src/modules/transactions/infra/transaction_output_remote.d.ts.map +1 -1
  147. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions.d.ts.map +1 -1
  148. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_cancel.d.ts.map +1 -1
  149. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_return.d.ts.map +1 -1
  150. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.d.ts +17 -0
  151. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.d.ts.map +1 -0
  152. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.d.ts +6 -2
  153. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.d.ts.map +1 -1
  154. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_othr.d.ts.map +1 -1
  155. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_verification.d.ts.map +1 -1
  156. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_recents/transaction_recents_nombre_widget.d.ts.map +1 -1
  157. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions.d.ts.map +1 -1
  158. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions_reject.d.ts.map +1 -1
  159. package/lib/typescript/src/shared/widgets/confirm_action_sheet_widget.d.ts +4 -1
  160. package/lib/typescript/src/shared/widgets/confirm_action_sheet_widget.d.ts.map +1 -1
  161. package/lib/typescript/src/shared/widgets/custom_progressbar.d.ts.map +1 -1
  162. package/lib/typescript/src/shared/widgets/image_select_widget.d.ts +6 -4
  163. package/lib/typescript/src/shared/widgets/image_select_widget.d.ts.map +1 -1
  164. package/lib/typescript/src/shared/widgets/notification_dialog.d.ts +2 -2
  165. package/lib/typescript/src/shared/widgets/notification_dialog.d.ts.map +1 -1
  166. package/lib/typescript/src/shared/widgets/selection.d.ts +69 -2
  167. package/lib/typescript/src/shared/widgets/selection.d.ts.map +1 -1
  168. package/package.json +1 -1
  169. package/src/core/api.ts +11 -2
  170. package/src/core/assets.ts +0 -7
  171. package/src/core/di.ts +13 -8
  172. package/src/core/pi_spi_custom_theme.ts +22 -15
  173. package/src/core/pi_spi_sdk_config.ts +27 -9
  174. package/src/core/theme.ts +381 -269
  175. package/src/index.ts +1 -1
  176. package/src/l10n/app_localizations.ts +44 -0
  177. package/src/l10n/app_localizations_en.ts +22 -0
  178. package/src/l10n/app_localizations_fr.ts +22 -0
  179. package/src/l10n/app_localizations_pt.ts +22 -0
  180. package/src/modules/categorie/presentation/pages/categorie_edit_icon_btn.tsx +25 -27
  181. package/src/modules/config/domain/models/config_keys.ts +3 -1
  182. package/src/modules/config/domain/services/config_service.ts +31 -2
  183. package/src/modules/home/presentation/pages/home_tab_compte.tsx +1 -1
  184. package/src/modules/home/presentation/pages/home_tab_compte_more_menu.tsx +34 -42
  185. package/src/modules/profile/presentation/pages/parametre/profile_parametre_page.tsx +2 -5
  186. package/src/modules/profile/presentation/pages/parametre/profile_parametre_page_qrcode.tsx +2 -2
  187. package/src/modules/profile/presentation/pages/parametre/profile_parametre_page_theme.tsx +105 -148
  188. package/src/modules/profile/presentation/pages/profile_menu.tsx +2 -2
  189. package/src/modules/profile/presentation/pages/profile_page_avatar.tsx +6 -12
  190. package/src/modules/profile/presentation/pages/profile_page_contacts.tsx +0 -1
  191. package/src/modules/profile/presentation/pages/profile_page_contacts_actions.tsx +111 -117
  192. package/src/modules/qrcode/presentation/pages/qrcode_alias_page.tsx +0 -1
  193. package/src/modules/qrcode/presentation/pages/qrcode_alias_page_share.tsx +32 -40
  194. package/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page.tsx +0 -1
  195. package/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page_actions.tsx +0 -1
  196. package/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page_note_sheet.tsx +20 -59
  197. package/src/modules/subscription/presentation/pages/subscription_list/subscription_list_empty_widget.tsx +1 -1
  198. package/src/modules/subscription/presentation/pages/subscription_list/subscription_list_widget.tsx +1 -1
  199. package/src/modules/subscription/presentation/pages/subscription_menu_widget.tsx +25 -39
  200. package/src/modules/transactions/infra/transaction_output_remote.ts +6 -1
  201. package/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions.tsx +0 -1
  202. package/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_cancel.tsx +39 -41
  203. package/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_return.tsx +41 -46
  204. package/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_recu.tsx +3 -1
  205. package/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_ticket.tsx +46 -40
  206. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.tsx +92 -0
  207. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.tsx +48 -94
  208. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_othr.tsx +4 -17
  209. package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_verification.tsx +0 -1
  210. package/src/modules/transactions/presentation/pages/transaction_recents/transaction_recents_nombre_widget.tsx +49 -42
  211. package/src/modules/transactions/presentation/pages/transaction_recents/transaction_recents_widget.tsx +1 -1
  212. package/src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions.tsx +0 -1
  213. package/src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions_reject.tsx +47 -48
  214. package/src/modules/transactions/presentation/pages/transaction_search/transaction_search_page_filters.tsx +4 -4
  215. package/src/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.tsx +2 -2
  216. package/src/pi_spi_sdk_entry.tsx +9 -2
  217. package/src/shared/widgets/confirm_action_sheet_widget.tsx +30 -34
  218. package/src/shared/widgets/custom_progressbar.tsx +3 -2
  219. package/src/shared/widgets/image_select_widget.tsx +46 -61
  220. package/src/shared/widgets/notification_dialog.tsx +66 -70
  221. package/src/shared/widgets/selection.tsx +293 -5
  222. package/assets/images/theme_light_blue.jpeg +0 -0
  223. package/assets/images/theme_light_green.jpeg +0 -0
  224. package/assets/images/theme_light_orange.jpeg +0 -0
  225. package/assets/images/theme_light_pink.jpeg +0 -0
  226. package/assets/images/theme_light_purple.jpeg +0 -0
  227. package/assets/images/theme_light_red.jpeg +0 -0
  228. package/assets/images/theme_light_yellow.jpeg +0 -0
  229. package/lib/module/modules/transactions/presentation/pages/transaction_details/sheet_box.js +0 -47
  230. package/lib/module/modules/transactions/presentation/pages/transaction_details/sheet_box.js.map +0 -1
  231. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_details/sheet_box.d.ts +0 -10
  232. package/lib/typescript/src/modules/transactions/presentation/pages/transaction_details/sheet_box.d.ts.map +0 -1
  233. package/src/modules/transactions/presentation/pages/transaction_details/sheet_box.tsx +0 -30
@@ -1,6 +1,6 @@
1
1
  import { supportedLocales, type SupportedLocaleCode } from '../l10n/app_localizations';
2
2
  import type { PiSpiCustomTheme } from './pi_spi_custom_theme';
3
- import { Themes } from './theme';
3
+ import { Accents, Themes } from './theme';
4
4
 
5
5
  /**
6
6
  * Équivalent des `assert` Dart : vérifié uniquement en développement
@@ -226,18 +226,31 @@ export class PiSpiAppConfig {
226
226
  * SDK lors d'une session précédente (voir {@link canChangeTheme}). Si
227
227
  * absent, la préférence locale actuelle est conservée telle quelle (ou
228
228
  * le défaut du SDK, `Themes.light`, si aucune n'existe encore).
229
+ * Valeurs : `Themes.system`, `Themes.light` ou `Themes.dark` ; la couleur
230
+ * se choisit avec {@link defaultAccent}.
229
231
  */
230
232
  readonly defaultTheme?: Themes;
231
233
 
234
+ /**
235
+ * Couleur d'accentuation avec laquelle le SDK s'ouvre (boutons, liens,
236
+ * pastilles), en clair comme en sombre. Optionnelle : si fournie, elle
237
+ * est appliquée et **persistée** à chaque ouverture du SDK, comme
238
+ * {@link defaultTheme}. Si absente, la préférence locale est conservée
239
+ * (ou la couleur PI-SPI, `Accents.pispi`, si aucune n'existe encore).
240
+ * Ignorée si {@link customTheme} est fourni.
241
+ */
242
+ readonly defaultAccent?: Accents;
243
+
232
244
  /**
233
245
  * Thème personnalisé de l'application hôte, quand aucun des thèmes du
234
246
  * SDK (`Themes`) ne convient : défini par ses couleurs ou par un
235
247
  * `ThemeData` complet (voir {@link PiSpiCustomTheme}). Optionnel : si
236
- * fourni, il est appliqué et **persisté** à chaque ouverture du SDK, et
237
- * il prime sur {@link defaultTheme}. L'entrée « Thème » des paramètres
238
- * est alors masquée, sauf si {@link canChangeTheme} vaut `true` : le
239
- * client peut alors choisir entre « Thème de l'application » (ce thème)
240
- * et les thèmes du SDK.
248
+ * fourni, sa couleur est appliquée et **persistée** à chaque ouverture
249
+ * du SDK, en clair comme en sombre, et elle prime sur
250
+ * {@link defaultAccent}. L'entrée « Thème » des paramètres est alors
251
+ * masquée, sauf si {@link canChangeTheme} vaut `true` : le client peut
252
+ * alors choisir entre la couleur « Thème de l'application » et celles du
253
+ * SDK.
241
254
  */
242
255
  readonly customTheme?: PiSpiCustomTheme;
243
256
 
@@ -248,8 +261,9 @@ export class PiSpiAppConfig {
248
261
  * la préférence déjà persistée, voir sa documentation) pour toute la
249
262
  * session — comme pour {@link defaultLocale}.
250
263
  *
251
- * Non fourni, sa valeur par défaut dépend de {@link defaultTheme} et de
252
- * {@link customTheme} : `false` si l'hôte a fourni l'un des deux (il impose alors ce
264
+ * Non fourni, sa valeur par défaut dépend de {@link defaultTheme},
265
+ * {@link defaultAccent} et {@link customTheme} : `false` si l'hôte a
266
+ * fourni l'un d'eux (il impose alors ce
253
267
  * thème, cohérent avec le comportement de `defaultLocale`), `true` sinon
254
268
  * (l'hôte n'a exprimé aucun avis sur le thème, donc autant laisser le
255
269
  * client choisir). Passez explicitement `true`/`false` pour imposer un
@@ -268,6 +282,7 @@ export class PiSpiAppConfig {
268
282
  appstoreLink?: string;
269
283
  defaultLocale?: SupportedLocaleCode;
270
284
  defaultTheme?: Themes;
285
+ defaultAccent?: Accents;
271
286
  customTheme?: PiSpiCustomTheme;
272
287
  canChangeTheme?: boolean;
273
288
  }) {
@@ -281,8 +296,11 @@ export class PiSpiAppConfig {
281
296
  this.appstoreLink = params.appstoreLink ?? '';
282
297
  this.defaultLocale = params.defaultLocale ?? 'fr';
283
298
  this.defaultTheme = params.defaultTheme;
299
+ this.defaultAccent = params.defaultAccent;
284
300
  this.customTheme = params.customTheme;
285
- this.canChangeTheme = params.canChangeTheme ?? (params.defaultTheme === undefined && params.customTheme === undefined);
301
+ this.canChangeTheme =
302
+ params.canChangeTheme ??
303
+ (params.defaultTheme === undefined && params.defaultAccent === undefined && params.customTheme === undefined);
286
304
 
287
305
  devAssert(
288
306
  (PiSpiAppConfig.supportedLocaleCodes as readonly string[]).includes(this.defaultLocale),