@situaction/traquiste-mobile 1.0.0 → 1.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 (471) hide show
  1. package/README.md +61 -90
  2. package/build/components/AssociationTag/AssociationTag.d.ts +19 -0
  3. package/build/components/AssociationTag/AssociationTag.d.ts.map +1 -0
  4. package/build/components/AssociationTag/AssociationTag.js +29 -0
  5. package/build/components/AssociationTag/AssociationTag.js.map +1 -0
  6. package/build/components/AssociationTag/AssociationTag.styles.d.ts +21 -0
  7. package/build/components/AssociationTag/AssociationTag.styles.d.ts.map +1 -0
  8. package/build/components/AssociationTag/AssociationTag.styles.js +26 -0
  9. package/build/components/AssociationTag/AssociationTag.styles.js.map +1 -0
  10. package/build/components/AssociationTag/index.d.ts +3 -0
  11. package/build/components/AssociationTag/index.d.ts.map +1 -0
  12. package/build/components/AssociationTag/index.js +2 -0
  13. package/build/components/AssociationTag/index.js.map +1 -0
  14. package/build/components/BottomSheet/BottomSheet.d.ts +36 -0
  15. package/build/components/BottomSheet/BottomSheet.d.ts.map +1 -0
  16. package/build/components/BottomSheet/BottomSheet.js +76 -0
  17. package/build/components/BottomSheet/BottomSheet.js.map +1 -0
  18. package/build/components/BottomSheet/BottomSheet.styles.d.ts +32 -0
  19. package/build/components/BottomSheet/BottomSheet.styles.d.ts.map +1 -0
  20. package/build/components/BottomSheet/BottomSheet.styles.js +31 -0
  21. package/build/components/BottomSheet/BottomSheet.styles.js.map +1 -0
  22. package/build/components/BottomSheet/index.d.ts +3 -0
  23. package/build/components/BottomSheet/index.d.ts.map +1 -0
  24. package/build/components/BottomSheet/index.js +2 -0
  25. package/build/components/BottomSheet/index.js.map +1 -0
  26. package/build/components/Button/Button.d.ts +5 -1
  27. package/build/components/Button/Button.d.ts.map +1 -1
  28. package/build/components/Button/Button.js +12 -6
  29. package/build/components/Button/Button.js.map +1 -1
  30. package/build/components/ButtonAction/ButtonAction.d.ts +5 -1
  31. package/build/components/ButtonAction/ButtonAction.d.ts.map +1 -1
  32. package/build/components/ButtonAction/ButtonAction.js +2 -2
  33. package/build/components/ButtonAction/ButtonAction.js.map +1 -1
  34. package/build/components/ButtonMap/ButtonMap.d.ts +5 -1
  35. package/build/components/ButtonMap/ButtonMap.d.ts.map +1 -1
  36. package/build/components/ButtonMap/ButtonMap.js +11 -9
  37. package/build/components/ButtonMap/ButtonMap.js.map +1 -1
  38. package/build/components/ButtonMenu/ButtonMenu.d.ts +5 -1
  39. package/build/components/ButtonMenu/ButtonMenu.d.ts.map +1 -1
  40. package/build/components/ButtonMenu/ButtonMenu.js +17 -17
  41. package/build/components/ButtonMenu/ButtonMenu.js.map +1 -1
  42. package/build/components/Calendar/Calendar.d.ts +4 -0
  43. package/build/components/Calendar/Calendar.d.ts.map +1 -0
  44. package/build/components/Calendar/Calendar.i18n.d.ts +34 -0
  45. package/build/components/Calendar/Calendar.i18n.d.ts.map +1 -0
  46. package/build/components/Calendar/Calendar.i18n.js +34 -0
  47. package/build/components/Calendar/Calendar.i18n.js.map +1 -0
  48. package/build/components/Calendar/Calendar.js +172 -0
  49. package/build/components/Calendar/Calendar.js.map +1 -0
  50. package/build/components/Calendar/Calendar.styles.d.ts +257 -0
  51. package/build/components/Calendar/Calendar.styles.d.ts.map +1 -0
  52. package/build/components/Calendar/Calendar.styles.js +234 -0
  53. package/build/components/Calendar/Calendar.styles.js.map +1 -0
  54. package/build/components/Calendar/Calendar.types.d.ts +62 -0
  55. package/build/components/Calendar/Calendar.types.d.ts.map +1 -0
  56. package/build/components/Calendar/Calendar.types.js +2 -0
  57. package/build/components/Calendar/Calendar.types.js.map +1 -0
  58. package/build/components/Calendar/CalendarDay.d.ts +4 -0
  59. package/build/components/Calendar/CalendarDay.d.ts.map +1 -0
  60. package/build/components/Calendar/CalendarDay.js +52 -0
  61. package/build/components/Calendar/CalendarDay.js.map +1 -0
  62. package/build/components/Calendar/CalendarHeader.d.ts +4 -0
  63. package/build/components/Calendar/CalendarHeader.d.ts.map +1 -0
  64. package/build/components/Calendar/CalendarHeader.js +16 -0
  65. package/build/components/Calendar/CalendarHeader.js.map +1 -0
  66. package/build/components/Calendar/CalendarLegend.d.ts +3 -0
  67. package/build/components/Calendar/CalendarLegend.d.ts.map +1 -0
  68. package/build/components/Calendar/CalendarLegend.js +38 -0
  69. package/build/components/Calendar/CalendarLegend.js.map +1 -0
  70. package/build/components/Calendar/CalendarYearPicker.d.ts +19 -0
  71. package/build/components/Calendar/CalendarYearPicker.d.ts.map +1 -0
  72. package/build/components/Calendar/CalendarYearPicker.js +158 -0
  73. package/build/components/Calendar/CalendarYearPicker.js.map +1 -0
  74. package/build/components/Calendar/index.d.ts +5 -0
  75. package/build/components/Calendar/index.d.ts.map +1 -0
  76. package/build/components/Calendar/index.js +3 -0
  77. package/build/components/Calendar/index.js.map +1 -0
  78. package/build/components/Card/Card.d.ts +25 -0
  79. package/build/components/Card/Card.d.ts.map +1 -0
  80. package/build/components/Card/Card.js +31 -0
  81. package/build/components/Card/Card.js.map +1 -0
  82. package/build/components/Card/Card.styles.d.ts +15 -0
  83. package/build/components/Card/Card.styles.d.ts.map +1 -0
  84. package/build/components/Card/Card.styles.js +18 -0
  85. package/build/components/Card/Card.styles.js.map +1 -0
  86. package/build/components/Card/index.d.ts +3 -0
  87. package/build/components/Card/index.d.ts.map +1 -0
  88. package/build/components/Card/index.js +2 -0
  89. package/build/components/Card/index.js.map +1 -0
  90. package/build/components/CardEquip/CardEquip.d.ts +60 -0
  91. package/build/components/CardEquip/CardEquip.d.ts.map +1 -0
  92. package/build/components/CardEquip/CardEquip.js +106 -0
  93. package/build/components/CardEquip/CardEquip.js.map +1 -0
  94. package/build/components/CardEquip/CardEquip.styles.d.ts +125 -0
  95. package/build/components/CardEquip/CardEquip.styles.d.ts.map +1 -0
  96. package/build/components/CardEquip/CardEquip.styles.js +139 -0
  97. package/build/components/CardEquip/CardEquip.styles.js.map +1 -0
  98. package/build/components/CardEquip/index.d.ts +3 -0
  99. package/build/components/CardEquip/index.d.ts.map +1 -0
  100. package/build/components/CardEquip/index.js +2 -0
  101. package/build/components/CardEquip/index.js.map +1 -0
  102. package/build/components/CardProfile/CardProfile.d.ts +55 -0
  103. package/build/components/CardProfile/CardProfile.d.ts.map +1 -0
  104. package/build/components/CardProfile/CardProfile.js +74 -0
  105. package/build/components/CardProfile/CardProfile.js.map +1 -0
  106. package/build/components/CardProfile/CardProfile.styles.d.ts +62 -0
  107. package/build/components/CardProfile/CardProfile.styles.d.ts.map +1 -0
  108. package/build/components/CardProfile/CardProfile.styles.js +65 -0
  109. package/build/components/CardProfile/CardProfile.styles.js.map +1 -0
  110. package/build/components/CardProfile/index.d.ts +3 -0
  111. package/build/components/CardProfile/index.d.ts.map +1 -0
  112. package/build/components/CardProfile/index.js +2 -0
  113. package/build/components/CardProfile/index.js.map +1 -0
  114. package/build/components/Checkbox/Checkbox.d.ts +28 -0
  115. package/build/components/Checkbox/Checkbox.d.ts.map +1 -0
  116. package/build/components/Checkbox/Checkbox.js +77 -0
  117. package/build/components/Checkbox/Checkbox.js.map +1 -0
  118. package/build/components/Checkbox/Checkbox.styles.d.ts +34 -0
  119. package/build/components/Checkbox/Checkbox.styles.d.ts.map +1 -0
  120. package/build/components/Checkbox/Checkbox.styles.js +39 -0
  121. package/build/components/Checkbox/Checkbox.styles.js.map +1 -0
  122. package/build/components/Checkbox/Checkbox.types.d.ts +25 -0
  123. package/build/components/Checkbox/Checkbox.types.d.ts.map +1 -0
  124. package/build/components/Checkbox/Checkbox.types.js +5 -0
  125. package/build/components/Checkbox/Checkbox.types.js.map +1 -0
  126. package/build/components/Checkbox/index.d.ts +3 -0
  127. package/build/components/Checkbox/index.d.ts.map +1 -0
  128. package/build/components/Checkbox/index.js +2 -0
  129. package/build/components/Checkbox/index.js.map +1 -0
  130. package/build/components/Cluster/Cluster.d.ts +23 -0
  131. package/build/components/Cluster/Cluster.d.ts.map +1 -0
  132. package/build/components/Cluster/Cluster.js +34 -0
  133. package/build/components/Cluster/Cluster.js.map +1 -0
  134. package/build/components/Cluster/Cluster.styles.d.ts +33 -0
  135. package/build/components/Cluster/Cluster.styles.d.ts.map +1 -0
  136. package/build/components/Cluster/Cluster.styles.js +34 -0
  137. package/build/components/Cluster/Cluster.styles.js.map +1 -0
  138. package/build/components/Cluster/index.d.ts +3 -0
  139. package/build/components/Cluster/index.d.ts.map +1 -0
  140. package/build/components/Cluster/index.js +2 -0
  141. package/build/components/Cluster/index.js.map +1 -0
  142. package/build/components/ColorPicker/ColorPicker.d.ts +20 -0
  143. package/build/components/ColorPicker/ColorPicker.d.ts.map +1 -0
  144. package/build/components/ColorPicker/ColorPicker.js +17 -0
  145. package/build/components/ColorPicker/ColorPicker.js.map +1 -0
  146. package/build/components/ColorPicker/ColorPicker.styles.d.ts +10 -0
  147. package/build/components/ColorPicker/ColorPicker.styles.d.ts.map +1 -0
  148. package/build/components/ColorPicker/ColorPicker.styles.js +11 -0
  149. package/build/components/ColorPicker/ColorPicker.styles.js.map +1 -0
  150. package/build/components/ColorPicker/index.d.ts +3 -0
  151. package/build/components/ColorPicker/index.d.ts.map +1 -0
  152. package/build/components/ColorPicker/index.js +2 -0
  153. package/build/components/ColorPicker/index.js.map +1 -0
  154. package/build/components/ColorSwatch/ColorSwatch.d.ts +20 -0
  155. package/build/components/ColorSwatch/ColorSwatch.d.ts.map +1 -0
  156. package/build/components/ColorSwatch/ColorSwatch.js +35 -0
  157. package/build/components/ColorSwatch/ColorSwatch.js.map +1 -0
  158. package/build/components/ColorSwatch/ColorSwatch.styles.d.ts +16 -0
  159. package/build/components/ColorSwatch/ColorSwatch.styles.d.ts.map +1 -0
  160. package/build/components/ColorSwatch/ColorSwatch.styles.js +19 -0
  161. package/build/components/ColorSwatch/ColorSwatch.styles.js.map +1 -0
  162. package/build/components/ColorSwatch/index.d.ts +3 -0
  163. package/build/components/ColorSwatch/index.d.ts.map +1 -0
  164. package/build/components/ColorSwatch/index.js +2 -0
  165. package/build/components/ColorSwatch/index.js.map +1 -0
  166. package/build/components/FileCard/FileCard.d.ts +29 -0
  167. package/build/components/FileCard/FileCard.d.ts.map +1 -0
  168. package/build/components/FileCard/FileCard.js +66 -0
  169. package/build/components/FileCard/FileCard.js.map +1 -0
  170. package/build/components/FileCard/FileCard.styles.d.ts +54 -0
  171. package/build/components/FileCard/FileCard.styles.d.ts.map +1 -0
  172. package/build/components/FileCard/FileCard.styles.js +56 -0
  173. package/build/components/FileCard/FileCard.styles.js.map +1 -0
  174. package/build/components/FileCard/index.d.ts +3 -0
  175. package/build/components/FileCard/index.d.ts.map +1 -0
  176. package/build/components/FileCard/index.js +2 -0
  177. package/build/components/FileCard/index.js.map +1 -0
  178. package/build/components/FilterChip/FilterChip.d.ts +5 -1
  179. package/build/components/FilterChip/FilterChip.d.ts.map +1 -1
  180. package/build/components/FilterChip/FilterChip.js +55 -25
  181. package/build/components/FilterChip/FilterChip.js.map +1 -1
  182. package/build/components/FilterNav/FilterNav.d.ts +53 -0
  183. package/build/components/FilterNav/FilterNav.d.ts.map +1 -0
  184. package/build/components/FilterNav/FilterNav.js +39 -0
  185. package/build/components/FilterNav/FilterNav.js.map +1 -0
  186. package/build/components/FilterNav/FilterNav.styles.d.ts +10 -0
  187. package/build/components/FilterNav/FilterNav.styles.d.ts.map +1 -0
  188. package/build/components/FilterNav/FilterNav.styles.js +11 -0
  189. package/build/components/FilterNav/FilterNav.styles.js.map +1 -0
  190. package/build/components/FilterNav/index.d.ts +3 -0
  191. package/build/components/FilterNav/index.d.ts.map +1 -0
  192. package/build/components/FilterNav/index.js +2 -0
  193. package/build/components/FilterNav/index.js.map +1 -0
  194. package/build/components/ImgPicker/ImgPicker.d.ts +47 -0
  195. package/build/components/ImgPicker/ImgPicker.d.ts.map +1 -0
  196. package/build/components/ImgPicker/ImgPicker.js +49 -0
  197. package/build/components/ImgPicker/ImgPicker.js.map +1 -0
  198. package/build/components/ImgPicker/ImgPicker.styles.d.ts +18 -0
  199. package/build/components/ImgPicker/ImgPicker.styles.d.ts.map +1 -0
  200. package/build/components/ImgPicker/ImgPicker.styles.js +19 -0
  201. package/build/components/ImgPicker/ImgPicker.styles.js.map +1 -0
  202. package/build/components/ImgPicker/index.d.ts +3 -0
  203. package/build/components/ImgPicker/index.d.ts.map +1 -0
  204. package/build/components/ImgPicker/index.js +2 -0
  205. package/build/components/ImgPicker/index.js.map +1 -0
  206. package/build/components/InlineInfo/InlineInfo.d.ts +60 -0
  207. package/build/components/InlineInfo/InlineInfo.d.ts.map +1 -0
  208. package/build/components/InlineInfo/InlineInfo.js +115 -0
  209. package/build/components/InlineInfo/InlineInfo.js.map +1 -0
  210. package/build/components/InlineInfo/InlineInfo.styles.d.ts +42 -0
  211. package/build/components/InlineInfo/InlineInfo.styles.d.ts.map +1 -0
  212. package/build/components/InlineInfo/InlineInfo.styles.js +50 -0
  213. package/build/components/InlineInfo/InlineInfo.styles.js.map +1 -0
  214. package/build/components/InlineInfo/index.d.ts +3 -0
  215. package/build/components/InlineInfo/index.d.ts.map +1 -0
  216. package/build/components/InlineInfo/index.js +2 -0
  217. package/build/components/InlineInfo/index.js.map +1 -0
  218. package/build/components/Input/Input.d.ts +57 -0
  219. package/build/components/Input/Input.d.ts.map +1 -0
  220. package/build/components/Input/Input.js +103 -0
  221. package/build/components/Input/Input.js.map +1 -0
  222. package/build/components/Input/Input.styles.d.ts +39 -0
  223. package/build/components/Input/Input.styles.d.ts.map +1 -0
  224. package/build/components/Input/Input.styles.js +40 -0
  225. package/build/components/Input/Input.styles.js.map +1 -0
  226. package/build/components/Input/index.d.ts +3 -0
  227. package/build/components/Input/index.d.ts.map +1 -0
  228. package/build/components/Input/index.js +2 -0
  229. package/build/components/Input/index.js.map +1 -0
  230. package/build/components/ListGroup/ListGroup.d.ts +24 -0
  231. package/build/components/ListGroup/ListGroup.d.ts.map +1 -0
  232. package/build/components/ListGroup/ListGroup.js +44 -0
  233. package/build/components/ListGroup/ListGroup.js.map +1 -0
  234. package/build/components/ListGroup/index.d.ts +3 -0
  235. package/build/components/ListGroup/index.d.ts.map +1 -0
  236. package/build/components/ListGroup/index.js +2 -0
  237. package/build/components/ListGroup/index.js.map +1 -0
  238. package/build/components/ListItem/ListItem.d.ts +44 -0
  239. package/build/components/ListItem/ListItem.d.ts.map +1 -0
  240. package/build/components/ListItem/ListItem.js +69 -0
  241. package/build/components/ListItem/ListItem.js.map +1 -0
  242. package/build/components/ListItem/ListItem.styles.d.ts +66 -0
  243. package/build/components/ListItem/ListItem.styles.d.ts.map +1 -0
  244. package/build/components/ListItem/ListItem.styles.js +70 -0
  245. package/build/components/ListItem/ListItem.styles.js.map +1 -0
  246. package/build/components/ListItem/index.d.ts +3 -0
  247. package/build/components/ListItem/index.d.ts.map +1 -0
  248. package/build/components/ListItem/index.js +2 -0
  249. package/build/components/ListItem/index.js.map +1 -0
  250. package/build/components/MapPin/MapPin.d.ts +61 -0
  251. package/build/components/MapPin/MapPin.d.ts.map +1 -0
  252. package/build/components/MapPin/MapPin.js +118 -0
  253. package/build/components/MapPin/MapPin.js.map +1 -0
  254. package/build/components/MapPin/MapPin.styles.d.ts +93 -0
  255. package/build/components/MapPin/MapPin.styles.d.ts.map +1 -0
  256. package/build/components/MapPin/MapPin.styles.js +101 -0
  257. package/build/components/MapPin/MapPin.styles.js.map +1 -0
  258. package/build/components/MapPin/index.d.ts +3 -0
  259. package/build/components/MapPin/index.d.ts.map +1 -0
  260. package/build/components/MapPin/index.js +2 -0
  261. package/build/components/MapPin/index.js.map +1 -0
  262. package/build/components/MediaPicker/MediaPicker.d.ts +74 -0
  263. package/build/components/MediaPicker/MediaPicker.d.ts.map +1 -0
  264. package/build/components/MediaPicker/MediaPicker.js +43 -0
  265. package/build/components/MediaPicker/MediaPicker.js.map +1 -0
  266. package/build/components/MediaPicker/MediaPicker.styles.d.ts +30 -0
  267. package/build/components/MediaPicker/MediaPicker.styles.d.ts.map +1 -0
  268. package/build/components/MediaPicker/MediaPicker.styles.js +31 -0
  269. package/build/components/MediaPicker/MediaPicker.styles.js.map +1 -0
  270. package/build/components/MediaPicker/index.d.ts +3 -0
  271. package/build/components/MediaPicker/index.d.ts.map +1 -0
  272. package/build/components/MediaPicker/index.js +2 -0
  273. package/build/components/MediaPicker/index.js.map +1 -0
  274. package/build/components/PhotoCard/PhotoCard.d.ts +28 -0
  275. package/build/components/PhotoCard/PhotoCard.d.ts.map +1 -0
  276. package/build/components/PhotoCard/PhotoCard.js +53 -0
  277. package/build/components/PhotoCard/PhotoCard.js.map +1 -0
  278. package/build/components/PhotoCard/PhotoCard.styles.d.ts +47 -0
  279. package/build/components/PhotoCard/PhotoCard.styles.d.ts.map +1 -0
  280. package/build/components/PhotoCard/PhotoCard.styles.js +45 -0
  281. package/build/components/PhotoCard/PhotoCard.styles.js.map +1 -0
  282. package/build/components/PhotoCard/index.d.ts +3 -0
  283. package/build/components/PhotoCard/index.d.ts.map +1 -0
  284. package/build/components/PhotoCard/index.js +2 -0
  285. package/build/components/PhotoCard/index.js.map +1 -0
  286. package/build/components/ProgressStep/ProgressStep.d.ts +9 -0
  287. package/build/components/ProgressStep/ProgressStep.d.ts.map +1 -0
  288. package/build/components/ProgressStep/ProgressStep.js +23 -0
  289. package/build/components/ProgressStep/ProgressStep.js.map +1 -0
  290. package/build/components/ProgressStep/ProgressStep.styles.d.ts +12 -0
  291. package/build/components/ProgressStep/ProgressStep.styles.d.ts.map +1 -0
  292. package/build/components/ProgressStep/ProgressStep.styles.js +13 -0
  293. package/build/components/ProgressStep/ProgressStep.styles.js.map +1 -0
  294. package/build/components/ProgressStep/index.d.ts +3 -0
  295. package/build/components/ProgressStep/index.d.ts.map +1 -0
  296. package/build/components/ProgressStep/index.js +2 -0
  297. package/build/components/ProgressStep/index.js.map +1 -0
  298. package/build/components/RadioButton/RadioButton.d.ts +29 -0
  299. package/build/components/RadioButton/RadioButton.d.ts.map +1 -0
  300. package/build/components/RadioButton/RadioButton.js +71 -0
  301. package/build/components/RadioButton/RadioButton.js.map +1 -0
  302. package/build/components/RadioButton/RadioButton.styles.d.ts +27 -0
  303. package/build/components/RadioButton/RadioButton.styles.d.ts.map +1 -0
  304. package/build/components/RadioButton/RadioButton.styles.js +30 -0
  305. package/build/components/RadioButton/RadioButton.styles.js.map +1 -0
  306. package/build/components/RadioButton/index.d.ts +3 -0
  307. package/build/components/RadioButton/index.d.ts.map +1 -0
  308. package/build/components/RadioButton/index.js +2 -0
  309. package/build/components/RadioButton/index.js.map +1 -0
  310. package/build/components/SearchBar/SearchBar.d.ts +33 -0
  311. package/build/components/SearchBar/SearchBar.d.ts.map +1 -0
  312. package/build/components/SearchBar/SearchBar.js +83 -0
  313. package/build/components/SearchBar/SearchBar.js.map +1 -0
  314. package/build/components/SearchBar/SearchBar.styles.d.ts +19 -0
  315. package/build/components/SearchBar/SearchBar.styles.d.ts.map +1 -0
  316. package/build/components/SearchBar/SearchBar.styles.js +21 -0
  317. package/build/components/SearchBar/SearchBar.styles.js.map +1 -0
  318. package/build/components/SearchBar/index.d.ts +3 -0
  319. package/build/components/SearchBar/index.d.ts.map +1 -0
  320. package/build/components/SearchBar/index.js +2 -0
  321. package/build/components/SearchBar/index.js.map +1 -0
  322. package/build/components/Spinner/Spinner.d.ts +12 -0
  323. package/build/components/Spinner/Spinner.d.ts.map +1 -0
  324. package/build/components/Spinner/Spinner.js +80 -0
  325. package/build/components/Spinner/Spinner.js.map +1 -0
  326. package/build/components/Spinner/Spinner.styles.d.ts +21 -0
  327. package/build/components/Spinner/Spinner.styles.d.ts.map +1 -0
  328. package/build/components/Spinner/Spinner.styles.js +22 -0
  329. package/build/components/Spinner/Spinner.styles.js.map +1 -0
  330. package/build/components/Spinner/index.d.ts +3 -0
  331. package/build/components/Spinner/index.d.ts.map +1 -0
  332. package/build/components/Spinner/index.js +2 -0
  333. package/build/components/Spinner/index.js.map +1 -0
  334. package/build/components/StepSheet/StepSheet.d.ts +77 -0
  335. package/build/components/StepSheet/StepSheet.d.ts.map +1 -0
  336. package/build/components/StepSheet/StepSheet.js +30 -0
  337. package/build/components/StepSheet/StepSheet.js.map +1 -0
  338. package/build/components/StepSheet/StepSheet.styles.d.ts +6 -0
  339. package/build/components/StepSheet/StepSheet.styles.d.ts.map +1 -0
  340. package/build/components/StepSheet/StepSheet.styles.js +7 -0
  341. package/build/components/StepSheet/StepSheet.styles.js.map +1 -0
  342. package/build/components/StepSheet/index.d.ts +3 -0
  343. package/build/components/StepSheet/index.d.ts.map +1 -0
  344. package/build/components/StepSheet/index.js +2 -0
  345. package/build/components/StepSheet/index.js.map +1 -0
  346. package/build/components/Stepper/Stepper.d.ts +50 -0
  347. package/build/components/Stepper/Stepper.d.ts.map +1 -0
  348. package/build/components/Stepper/Stepper.js +48 -0
  349. package/build/components/Stepper/Stepper.js.map +1 -0
  350. package/build/components/Stepper/Stepper.styles.d.ts +27 -0
  351. package/build/components/Stepper/Stepper.styles.d.ts.map +1 -0
  352. package/build/components/Stepper/Stepper.styles.js +28 -0
  353. package/build/components/Stepper/Stepper.styles.js.map +1 -0
  354. package/build/components/Stepper/index.d.ts +3 -0
  355. package/build/components/Stepper/index.d.ts.map +1 -0
  356. package/build/components/Stepper/index.js +2 -0
  357. package/build/components/Stepper/index.js.map +1 -0
  358. package/build/components/Switch/Switch.d.ts +29 -0
  359. package/build/components/Switch/Switch.d.ts.map +1 -0
  360. package/build/components/Switch/Switch.js +89 -0
  361. package/build/components/Switch/Switch.js.map +1 -0
  362. package/build/components/Switch/Switch.styles.d.ts +29 -0
  363. package/build/components/Switch/Switch.styles.d.ts.map +1 -0
  364. package/build/components/Switch/Switch.styles.js +26 -0
  365. package/build/components/Switch/Switch.styles.js.map +1 -0
  366. package/build/components/Switch/index.d.ts +3 -0
  367. package/build/components/Switch/index.d.ts.map +1 -0
  368. package/build/components/Switch/index.js +2 -0
  369. package/build/components/Switch/index.js.map +1 -0
  370. package/build/components/Tab/Tab.d.ts +52 -0
  371. package/build/components/Tab/Tab.d.ts.map +1 -0
  372. package/build/components/Tab/Tab.js +121 -0
  373. package/build/components/Tab/Tab.js.map +1 -0
  374. package/build/components/Tab/Tab.styles.d.ts +55 -0
  375. package/build/components/Tab/Tab.styles.d.ts.map +1 -0
  376. package/build/components/Tab/Tab.styles.js +60 -0
  377. package/build/components/Tab/Tab.styles.js.map +1 -0
  378. package/build/components/Tab/index.d.ts +3 -0
  379. package/build/components/Tab/index.d.ts.map +1 -0
  380. package/build/components/Tab/index.js +2 -0
  381. package/build/components/Tab/index.js.map +1 -0
  382. package/build/components/Tag/Tag.d.ts +4 -0
  383. package/build/components/Tag/Tag.d.ts.map +1 -0
  384. package/build/components/Tag/Tag.js +40 -0
  385. package/build/components/Tag/Tag.js.map +1 -0
  386. package/build/components/Tag/Tag.styles.d.ts +35 -0
  387. package/build/components/Tag/Tag.styles.d.ts.map +1 -0
  388. package/build/components/Tag/Tag.styles.js +43 -0
  389. package/build/components/Tag/Tag.styles.js.map +1 -0
  390. package/build/components/Tag/Tag.types.d.ts +23 -0
  391. package/build/components/Tag/Tag.types.d.ts.map +1 -0
  392. package/build/components/Tag/Tag.types.js +2 -0
  393. package/build/components/Tag/Tag.types.js.map +1 -0
  394. package/build/components/Tag/index.d.ts +3 -0
  395. package/build/components/Tag/index.d.ts.map +1 -0
  396. package/build/components/Tag/index.js +2 -0
  397. package/build/components/Tag/index.js.map +1 -0
  398. package/build/components/navigation/GeneralNav/GeneralNav.d.ts +21 -0
  399. package/build/components/navigation/GeneralNav/GeneralNav.d.ts.map +1 -0
  400. package/build/components/navigation/GeneralNav/GeneralNav.js +25 -0
  401. package/build/components/navigation/GeneralNav/GeneralNav.js.map +1 -0
  402. package/build/components/navigation/GeneralNav/GeneralNav.styles.d.ts +33 -0
  403. package/build/components/navigation/GeneralNav/GeneralNav.styles.d.ts.map +1 -0
  404. package/build/components/navigation/GeneralNav/GeneralNav.styles.js +35 -0
  405. package/build/components/navigation/GeneralNav/GeneralNav.styles.js.map +1 -0
  406. package/build/components/navigation/GeneralNav/index.d.ts +3 -0
  407. package/build/components/navigation/GeneralNav/index.d.ts.map +1 -0
  408. package/build/components/navigation/GeneralNav/index.js +2 -0
  409. package/build/components/navigation/GeneralNav/index.js.map +1 -0
  410. package/build/components/navigation/MobileCanva/MobileCanva.d.ts +11 -0
  411. package/build/components/navigation/MobileCanva/MobileCanva.d.ts.map +1 -0
  412. package/build/components/navigation/MobileCanva/MobileCanva.js +45 -0
  413. package/build/components/navigation/MobileCanva/MobileCanva.js.map +1 -0
  414. package/build/components/navigation/MobileCanva/MobileCanva.styles.d.ts +93 -0
  415. package/build/components/navigation/MobileCanva/MobileCanva.styles.d.ts.map +1 -0
  416. package/build/components/navigation/MobileCanva/MobileCanva.styles.js +94 -0
  417. package/build/components/navigation/MobileCanva/MobileCanva.styles.js.map +1 -0
  418. package/build/components/navigation/MobileCanva/MobileCanva.types.d.ts +21 -0
  419. package/build/components/navigation/MobileCanva/MobileCanva.types.d.ts.map +1 -0
  420. package/build/components/navigation/MobileCanva/MobileCanva.types.js +2 -0
  421. package/build/components/navigation/MobileCanva/MobileCanva.types.js.map +1 -0
  422. package/build/components/navigation/MobileCanva/index.d.ts +3 -0
  423. package/build/components/navigation/MobileCanva/index.d.ts.map +1 -0
  424. package/build/components/navigation/MobileCanva/index.js +2 -0
  425. package/build/components/navigation/MobileCanva/index.js.map +1 -0
  426. package/build/components/navigation/PageNav/PageNav.d.ts +46 -0
  427. package/build/components/navigation/PageNav/PageNav.d.ts.map +1 -0
  428. package/build/components/navigation/PageNav/PageNav.js +48 -0
  429. package/build/components/navigation/PageNav/PageNav.js.map +1 -0
  430. package/build/components/navigation/PageNav/PageNav.styles.d.ts +60 -0
  431. package/build/components/navigation/PageNav/PageNav.styles.d.ts.map +1 -0
  432. package/build/components/navigation/PageNav/PageNav.styles.js +60 -0
  433. package/build/components/navigation/PageNav/PageNav.styles.js.map +1 -0
  434. package/build/components/navigation/PageNav/index.d.ts +3 -0
  435. package/build/components/navigation/PageNav/index.d.ts.map +1 -0
  436. package/build/components/navigation/PageNav/index.js +2 -0
  437. package/build/components/navigation/PageNav/index.js.map +1 -0
  438. package/build/components/navigation/TabBar/TabBar.d.ts +22 -0
  439. package/build/components/navigation/TabBar/TabBar.d.ts.map +1 -0
  440. package/build/components/navigation/TabBar/TabBar.js +13 -0
  441. package/build/components/navigation/TabBar/TabBar.js.map +1 -0
  442. package/build/components/navigation/TabBar/TabBar.styles.d.ts +14 -0
  443. package/build/components/navigation/TabBar/TabBar.styles.d.ts.map +1 -0
  444. package/build/components/navigation/TabBar/TabBar.styles.js +16 -0
  445. package/build/components/navigation/TabBar/TabBar.styles.js.map +1 -0
  446. package/build/components/navigation/TabBar/index.d.ts +3 -0
  447. package/build/components/navigation/TabBar/index.d.ts.map +1 -0
  448. package/build/components/navigation/TabBar/index.js +2 -0
  449. package/build/components/navigation/TabBar/index.js.map +1 -0
  450. package/build/context/BottomSheetContext.d.ts +42 -0
  451. package/build/context/BottomSheetContext.d.ts.map +1 -0
  452. package/build/context/BottomSheetContext.js +51 -0
  453. package/build/context/BottomSheetContext.js.map +1 -0
  454. package/build/context/ThemeContext.d.ts +5 -1
  455. package/build/context/ThemeContext.d.ts.map +1 -1
  456. package/build/context/ThemeContext.js +4 -2
  457. package/build/context/ThemeContext.js.map +1 -1
  458. package/build/index.d.ts +77 -1
  459. package/build/index.d.ts.map +1 -1
  460. package/build/index.js +38 -0
  461. package/build/index.js.map +1 -1
  462. package/build/theme/tokens/dark.d.ts.map +1 -1
  463. package/build/theme/tokens/dark.js +263 -10
  464. package/build/theme/tokens/dark.js.map +1 -1
  465. package/build/theme/tokens/light.d.ts.map +1 -1
  466. package/build/theme/tokens/light.js +252 -7
  467. package/build/theme/tokens/light.js.map +1 -1
  468. package/build/theme/type.d.ts +398 -0
  469. package/build/theme/type.d.ts.map +1 -1
  470. package/build/theme/type.js.map +1 -1
  471. package/package.json +8 -5
@@ -0,0 +1,101 @@
1
+ import { StyleSheet } from 'react-native';
2
+ const TAIL_WIDTH = 12;
3
+ const TAIL_HEIGHT = 6;
4
+ const TAIL_SQUARE_SIZE = 8.5;
5
+ export const styles = StyleSheet.create({
6
+ // -- Simple pin
7
+ simpleRoot: {
8
+ alignItems: 'center',
9
+ width: 24,
10
+ },
11
+ simpleBadge: {
12
+ alignItems: 'center',
13
+ justifyContent: 'center',
14
+ padding: 4,
15
+ borderRadius: 9999,
16
+ borderWidth: 1,
17
+ },
18
+ // -- Pill pin
19
+ pillRoot: {
20
+ alignItems: 'center',
21
+ },
22
+ pillBadge: {
23
+ flexDirection: 'row',
24
+ alignItems: 'center',
25
+ height: 24,
26
+ paddingLeft: 4,
27
+ paddingRight: 6,
28
+ paddingVertical: 4,
29
+ gap: 2,
30
+ borderRadius: 9999,
31
+ borderWidth: 1,
32
+ },
33
+ pillShadow: {
34
+ // shadowColor is injected inline from colors.mapPin.pillShadowColor
35
+ shadowOffset: { width: 0, height: 0 },
36
+ shadowRadius: 6,
37
+ shadowOpacity: 0.25,
38
+ elevation: 4,
39
+ },
40
+ // -- Icon circle
41
+ iconCircle: {
42
+ alignItems: 'center',
43
+ justifyContent: 'center',
44
+ padding: 2,
45
+ borderRadius: 9999,
46
+ },
47
+ // -- Row wrapper (pin + labels)
48
+ row: {
49
+ flexDirection: 'row',
50
+ alignItems: 'flex-start',
51
+ gap: 4,
52
+ },
53
+ // -- Side label text (aligns with the center of the 24px badge)
54
+ labelText: {
55
+ fontSize: 14,
56
+ fontWeight: '600',
57
+ lineHeight: 16,
58
+ paddingTop: 4,
59
+ },
60
+ // -- Right-aligned for labelLeft
61
+ labelTextRight: {
62
+ textAlign: 'right',
63
+ },
64
+ // satellite adds shadow; color is always injected dynamically from tokens
65
+ labelTextSatellite: {
66
+ textShadowColor: 'rgba(0,0,0,0.5)',
67
+ textShadowOffset: { width: 0, height: 0 },
68
+ textShadowRadius: 4,
69
+ },
70
+ // -- Count label
71
+ countText: {
72
+ fontSize: 12,
73
+ fontWeight: '600',
74
+ lineHeight: 14,
75
+ },
76
+ // -- Tail (downward triangle: separate top-border line + clipped rotated square)
77
+ tailOuter: {
78
+ alignItems: 'center',
79
+ marginTop: 2,
80
+ },
81
+ tailBorderTop: {
82
+ width: TAIL_WIDTH, // 12px — spans the full triangle base
83
+ height: 1, // 1px horizontal top border (colored inline)
84
+ },
85
+ tailClip: {
86
+ width: TAIL_WIDTH, // 12px
87
+ height: TAIL_HEIGHT, // 6px — shows only the bottom half of the diamond
88
+ overflow: 'hidden',
89
+ alignItems: 'center',
90
+ },
91
+ tailSquare: {
92
+ width: TAIL_SQUARE_SIZE, // 8.5px — S = TAIL_WIDTH/√2 → diamond width ≈ 12px at y=0
93
+ height: TAIL_SQUARE_SIZE,
94
+ borderWidth: 1,
95
+ // places the diamond's widest point at y=0 of tailClip so the diagonal
96
+ // borders start flush with the ends of the horizontal top-border line
97
+ marginTop: -(TAIL_SQUARE_SIZE / 2),
98
+ transform: [{ rotate: '45deg' }],
99
+ },
100
+ });
101
+ //# sourceMappingURL=MapPin.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapPin.styles.js","sourceRoot":"","sources":["../../../src/components/MapPin/MapPin.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACtC,gBAAgB;IAChB,UAAU,EAAE;QACV,UAAU,EAAE,QAAQ;QACpB,KAAK,EAAE,EAAE;KACV;IACD,WAAW,EAAE;QACX,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;QACxB,OAAO,EAAE,CAAC;QACV,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,CAAC;KACf;IAED,cAAc;IACd,QAAQ,EAAE;QACR,UAAU,EAAE,QAAQ;KACrB;IACD,SAAS,EAAE;QACT,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,EAAE;QACV,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,CAAC;QACf,eAAe,EAAE,CAAC;QAClB,GAAG,EAAE,CAAC;QACN,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,CAAC;KACf;IACD,UAAU,EAAE;QACV,oEAAoE;QACpE,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QACrC,YAAY,EAAE,CAAC;QACf,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,CAAC;KACb;IAED,iBAAiB;IACjB,UAAU,EAAE;QACV,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;QACxB,OAAO,EAAE,CAAC;QACV,YAAY,EAAE,IAAI;KACnB;IAED,gCAAgC;IAChC,GAAG,EAAE;QACH,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,CAAC;KACP;IAED,gEAAgE;IAChE,SAAS,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,CAAC;KACd;IACD,iCAAiC;IACjC,cAAc,EAAE;QACd,SAAS,EAAE,OAAO;KACnB;IACD,0EAA0E;IAC1E,kBAAkB,EAAE;QAClB,eAAe,EAAE,iBAAiB;QAClC,gBAAgB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QACzC,gBAAgB,EAAE,CAAC;KACpB;IAED,iBAAiB;IACjB,SAAS,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,EAAE;KACf;IAED,iFAAiF;IACjF,SAAS,EAAE;QACT,UAAU,EAAE,QAAQ;QACpB,SAAS,EAAE,CAAC;KACb;IACD,aAAa,EAAE;QACb,KAAK,EAAE,UAAU,EAAG,sCAAsC;QAC1D,MAAM,EAAE,CAAC,EAAW,6CAA6C;KAClE;IACD,QAAQ,EAAE;QACR,KAAK,EAAE,UAAU,EAAI,OAAO;QAC5B,MAAM,EAAE,WAAW,EAAE,kDAAkD;QACvE,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,QAAQ;KACrB;IACD,UAAU,EAAE;QACV,KAAK,EAAE,gBAAgB,EAAI,0DAA0D;QACrF,MAAM,EAAE,gBAAgB;QACxB,WAAW,EAAE,CAAC;QACd,uEAAuE;QACvE,sEAAsE;QACtE,SAAS,EAAE,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAClC,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;KACjC;CACF,CAAC,CAAC","sourcesContent":["import { StyleSheet } from 'react-native';\n\nconst TAIL_WIDTH = 12;\nconst TAIL_HEIGHT = 6;\nconst TAIL_SQUARE_SIZE = 8.5;\n\nexport const styles = StyleSheet.create({\n // -- Simple pin\n simpleRoot: {\n alignItems: 'center',\n width: 24,\n },\n simpleBadge: {\n alignItems: 'center',\n justifyContent: 'center',\n padding: 4,\n borderRadius: 9999,\n borderWidth: 1,\n },\n\n // -- Pill pin\n pillRoot: {\n alignItems: 'center',\n },\n pillBadge: {\n flexDirection: 'row',\n alignItems: 'center',\n height: 24,\n paddingLeft: 4,\n paddingRight: 6,\n paddingVertical: 4,\n gap: 2,\n borderRadius: 9999,\n borderWidth: 1,\n },\n pillShadow: {\n // shadowColor is injected inline from colors.mapPin.pillShadowColor\n shadowOffset: { width: 0, height: 0 },\n shadowRadius: 6,\n shadowOpacity: 0.25,\n elevation: 4,\n },\n\n // -- Icon circle\n iconCircle: {\n alignItems: 'center',\n justifyContent: 'center',\n padding: 2,\n borderRadius: 9999,\n },\n\n // -- Row wrapper (pin + labels)\n row: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n gap: 4,\n },\n\n // -- Side label text (aligns with the center of the 24px badge)\n labelText: {\n fontSize: 14,\n fontWeight: '600',\n lineHeight: 16,\n paddingTop: 4,\n },\n // -- Right-aligned for labelLeft\n labelTextRight: {\n textAlign: 'right',\n },\n // satellite adds shadow; color is always injected dynamically from tokens\n labelTextSatellite: {\n textShadowColor: 'rgba(0,0,0,0.5)',\n textShadowOffset: { width: 0, height: 0 },\n textShadowRadius: 4,\n },\n\n // -- Count label\n countText: {\n fontSize: 12,\n fontWeight: '600',\n lineHeight: 14,\n },\n\n // -- Tail (downward triangle: separate top-border line + clipped rotated square)\n tailOuter: {\n alignItems: 'center',\n marginTop: 2,\n },\n tailBorderTop: {\n width: TAIL_WIDTH, // 12px — spans the full triangle base\n height: 1, // 1px horizontal top border (colored inline)\n },\n tailClip: {\n width: TAIL_WIDTH, // 12px\n height: TAIL_HEIGHT, // 6px — shows only the bottom half of the diamond\n overflow: 'hidden',\n alignItems: 'center',\n },\n tailSquare: {\n width: TAIL_SQUARE_SIZE, // 8.5px — S = TAIL_WIDTH/√2 → diamond width ≈ 12px at y=0\n height: TAIL_SQUARE_SIZE,\n borderWidth: 1,\n // places the diamond's widest point at y=0 of tailClip so the diagonal\n // borders start flush with the ends of the horizontal top-border line\n marginTop: -(TAIL_SQUARE_SIZE / 2),\n transform: [{ rotate: '45deg' }],\n },\n});\n"]}
@@ -0,0 +1,3 @@
1
+ export { MapPin, MAP_PIN_HEIGHT, MAP_PIN_SIMPLE_WIDTH } from './MapPin';
2
+ export type { MapPinProps, MapPinState, MapPinType, MapPinLabelVariant } from './MapPin';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MapPin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACxE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { MapPin, MAP_PIN_HEIGHT, MAP_PIN_SIMPLE_WIDTH } from './MapPin';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/MapPin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC","sourcesContent":["export { MapPin, MAP_PIN_HEIGHT, MAP_PIN_SIMPLE_WIDTH } from './MapPin';\nexport type { MapPinProps, MapPinState, MapPinType, MapPinLabelVariant } from './MapPin';\n"]}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * MediaPicker — field-level media attachment widget.
3
+ *
4
+ * Two modes:
5
+ * - 'image': uses ImgPicker — principale slot + divider + additional slots (horizontal scroll)
6
+ * - 'file': vertical list of FileCards + a full-width "Ajouter un fichier" button.
7
+ *
8
+ * The component is fully controlled — it fires callbacks and the parent updates
9
+ * the images/files arrays.
10
+ */
11
+ import type { StyleProp, ViewStyle } from 'react-native';
12
+ export type MediaPickerMode = 'image' | 'file';
13
+ export interface MediaPickerImageItem {
14
+ /** Unique identifier */
15
+ id: string;
16
+ /** Image URI */
17
+ uri: string;
18
+ }
19
+ export interface MediaPickerFileItem {
20
+ /** Unique identifier */
21
+ id: string;
22
+ /** Display file name */
23
+ filename: string;
24
+ /** First secondary text, shown left of the bullet (e.g. "4.3 Mo") */
25
+ detail?: string;
26
+ /** Second secondary text, shown right of the bullet (e.g. "17/04/2026") */
27
+ caption?: string;
28
+ /** MIME type — drives the icon choice */
29
+ mimeType?: string;
30
+ /** Image thumbnail URI — fills the icon area if provided */
31
+ thumbnailUri?: string;
32
+ }
33
+ export interface MediaPickerProps {
34
+ /** Picker mode: image slots or file list */
35
+ mode: MediaPickerMode;
36
+ /** Section label shown above the picker */
37
+ label?: string;
38
+ /** Optional subtitle / helper text below the label */
39
+ subtitle?: string;
40
+ /** Controlled principale image. If undefined, the principale slot is shown empty. */
41
+ principale?: MediaPickerImageItem;
42
+ /** Controlled additional image slots (independent from principale). */
43
+ additionalImages?: MediaPickerImageItem[];
44
+ /**
45
+ * Number of additional empty slots shown on first render.
46
+ * Default: 2 (matches Figma).
47
+ */
48
+ initialAdditionalSlots?: number;
49
+ /**
50
+ * Maximum total images (1 principale + additional).
51
+ * When reached, no more empty slot is appended. Default: undefined (no limit).
52
+ */
53
+ maxImages?: number;
54
+ /** Badge label on the principale slot. Default: "Principale" */
55
+ principaleLabel?: string;
56
+ /** Called when the user taps the empty principale slot */
57
+ onAddPrincipale?: () => void;
58
+ /** Called when the user taps an empty additional slot */
59
+ onAddAdditional?: () => void;
60
+ /** Called with the image id when the user taps the X remove button */
61
+ onRemoveImage?: (id: string) => void;
62
+ /** Controlled list of attached files */
63
+ files?: MediaPickerFileItem[];
64
+ /** Called when the user taps "Ajouter un fichier" */
65
+ onAddFile?: () => void;
66
+ /** Called with the file id when the user taps the remove button on a FileCard */
67
+ onRemoveFile?: (id: string) => void;
68
+ /** Additional style applied to the outer container */
69
+ style?: StyleProp<ViewStyle>;
70
+ /** Test identifier for automated testing */
71
+ testID?: string;
72
+ }
73
+ export declare const MediaPicker: ({ mode, label, subtitle, principale, additionalImages, initialAdditionalSlots, maxImages, principaleLabel, onAddPrincipale, onAddAdditional, onRemoveImage, files, onAddFile, onRemoveFile, style, testID, }: MediaPickerProps) => import("react").JSX.Element;
74
+ //# sourceMappingURL=MediaPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaPicker.d.ts","sourceRoot":"","sources":["../../../src/components/MediaPicker/MediaPicker.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAYzD,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,CAAC;AAE/C,MAAM,WAAW,oBAAoB;IACnC,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,gBAAgB;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,4CAA4C;IAC5C,IAAI,EAAE,eAAe,CAAC;IACtB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,qFAAqF;IACrF,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC1C;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,yDAAyD;IACzD,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,sEAAsE;IACtE,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAGrC,wCAAwC;IACxC,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC9B,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,iFAAiF;IACjF,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpC,sDAAsD;IACtD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD,eAAO,MAAM,WAAW,GAAI,8MAiBzB,gBAAgB,gCAoElB,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * MediaPicker — field-level media attachment widget.
3
+ *
4
+ * Two modes:
5
+ * - 'image': uses ImgPicker — principale slot + divider + additional slots (horizontal scroll)
6
+ * - 'file': vertical list of FileCards + a full-width "Ajouter un fichier" button.
7
+ *
8
+ * The component is fully controlled — it fires callbacks and the parent updates
9
+ * the images/files arrays.
10
+ */
11
+ import { Text, View } from 'react-native';
12
+ import { PlusCircle } from 'phosphor-react-native';
13
+ import { useTheme } from '../../context/ThemeContext';
14
+ import { ImgPicker } from '../ImgPicker';
15
+ import { FileCard } from '../FileCard';
16
+ import { Button } from '../Button';
17
+ import { styles } from './MediaPicker.styles';
18
+ // ---------------------------------------------------------------------------
19
+ // Component
20
+ // ---------------------------------------------------------------------------
21
+ export const MediaPicker = ({ mode, label, subtitle, principale, additionalImages, initialAdditionalSlots, maxImages, principaleLabel, onAddPrincipale, onAddAdditional, onRemoveImage, files = [], onAddFile, onRemoveFile, style, testID, }) => {
22
+ const { colors, fontFamily } = useTheme();
23
+ const mp = colors.mediaPicker;
24
+ return (<View style={[styles.container, style]} testID={testID}>
25
+ {/* Label section */}
26
+ {(label != null || subtitle != null) && (<View style={styles.labelBlock}>
27
+ {label != null && (<Text style={[styles.label, { color: mp.label, fontFamily }]}>{label}</Text>)}
28
+ {subtitle != null && (<Text style={[styles.subtitle, { color: mp.subtitle, fontFamily }]}>{subtitle}</Text>)}
29
+ </View>)}
30
+
31
+ {/* ── Image mode ────────────────────────────────────────────────── */}
32
+ {mode === 'image' && (<ImgPicker principale={principale} additionalImages={additionalImages} initialAdditionalSlots={initialAdditionalSlots} maxImages={maxImages} principaleLabel={principaleLabel} onAddPrincipale={onAddPrincipale} onAddAdditional={onAddAdditional} onRemoveImage={onRemoveImage}/>)}
33
+
34
+ {/* ── File mode ─────────────────────────────────────────────────── */}
35
+ {mode === 'file' && (<View style={styles.fileCol}>
36
+ {files.length > 0 && (<View style={styles.fileList}>
37
+ {files.map((f) => (<FileCard key={f.id} filename={f.filename} detail={f.detail} caption={f.caption} mimeType={f.mimeType} thumbnailUri={f.thumbnailUri} onRemove={onRemoveFile ? () => onRemoveFile(f.id) : undefined}/>))}
38
+ </View>)}
39
+ <Button variant="tertiary" size="M" label="Ajouter un fichier" iconLeft={<PlusCircle size={18} weight="duotone" color={colors.button.tertiary.default.icon}/>} onPress={onAddFile} style={styles.addButton}/>
40
+ </View>)}
41
+ </View>);
42
+ };
43
+ //# sourceMappingURL=MediaPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaPicker.js","sourceRoot":"","sources":["../../../src/components/MediaPicker/MediaPicker.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * MediaPicker — field-level media attachment widget.\n *\n * Two modes:\n * - 'image': uses ImgPicker — principale slot + divider + additional slots (horizontal scroll)\n * - 'file': vertical list of FileCards + a full-width \"Ajouter un fichier\" button.\n *\n * The component is fully controlled — it fires callbacks and the parent updates\n * the images/files arrays.\n */\n\nimport { Text, View } from 'react-native';\nimport type { StyleProp, ViewStyle } from 'react-native';\nimport { PlusCircle } from 'phosphor-react-native';\nimport { useTheme } from '../../context/ThemeContext';\nimport { ImgPicker } from '../ImgPicker';\nimport { FileCard } from '../FileCard';\nimport { Button } from '../Button';\nimport { styles } from './MediaPicker.styles';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport type MediaPickerMode = 'image' | 'file';\n\nexport interface MediaPickerImageItem {\n /** Unique identifier */\n id: string;\n /** Image URI */\n uri: string;\n}\n\nexport interface MediaPickerFileItem {\n /** Unique identifier */\n id: string;\n /** Display file name */\n filename: string;\n /** First secondary text, shown left of the bullet (e.g. \"4.3 Mo\") */\n detail?: string;\n /** Second secondary text, shown right of the bullet (e.g. \"17/04/2026\") */\n caption?: string;\n /** MIME type — drives the icon choice */\n mimeType?: string;\n /** Image thumbnail URI — fills the icon area if provided */\n thumbnailUri?: string;\n}\n\nexport interface MediaPickerProps {\n /** Picker mode: image slots or file list */\n mode: MediaPickerMode;\n /** Section label shown above the picker */\n label?: string;\n /** Optional subtitle / helper text below the label */\n subtitle?: string;\n\n // --- Image mode ---\n /** Controlled principale image. If undefined, the principale slot is shown empty. */\n principale?: MediaPickerImageItem;\n /** Controlled additional image slots (independent from principale). */\n additionalImages?: MediaPickerImageItem[];\n /**\n * Number of additional empty slots shown on first render.\n * Default: 2 (matches Figma).\n */\n initialAdditionalSlots?: number;\n /**\n * Maximum total images (1 principale + additional).\n * When reached, no more empty slot is appended. Default: undefined (no limit).\n */\n maxImages?: number;\n /** Badge label on the principale slot. Default: \"Principale\" */\n principaleLabel?: string;\n /** Called when the user taps the empty principale slot */\n onAddPrincipale?: () => void;\n /** Called when the user taps an empty additional slot */\n onAddAdditional?: () => void;\n /** Called with the image id when the user taps the X remove button */\n onRemoveImage?: (id: string) => void;\n\n // --- File mode ---\n /** Controlled list of attached files */\n files?: MediaPickerFileItem[];\n /** Called when the user taps \"Ajouter un fichier\" */\n onAddFile?: () => void;\n /** Called with the file id when the user taps the remove button on a FileCard */\n onRemoveFile?: (id: string) => void;\n\n /** Additional style applied to the outer container */\n style?: StyleProp<ViewStyle>;\n /** Test identifier for automated testing */\n testID?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nexport const MediaPicker = ({\n mode,\n label,\n subtitle,\n principale,\n additionalImages,\n initialAdditionalSlots,\n maxImages,\n principaleLabel,\n onAddPrincipale,\n onAddAdditional,\n onRemoveImage,\n files = [],\n onAddFile,\n onRemoveFile,\n style,\n testID,\n}: MediaPickerProps) => {\n const { colors, fontFamily } = useTheme();\n const mp = colors.mediaPicker;\n\n return (\n <View style={[styles.container, style]} testID={testID}>\n {/* Label section */}\n {(label != null || subtitle != null) && (\n <View style={styles.labelBlock}>\n {label != null && (\n <Text style={[styles.label, { color: mp.label, fontFamily }]}>{label}</Text>\n )}\n {subtitle != null && (\n <Text style={[styles.subtitle, { color: mp.subtitle, fontFamily }]}>{subtitle}</Text>\n )}\n </View>\n )}\n\n {/* ── Image mode ────────────────────────────────────────────────── */}\n {mode === 'image' && (\n <ImgPicker\n principale={principale}\n additionalImages={additionalImages}\n initialAdditionalSlots={initialAdditionalSlots}\n maxImages={maxImages}\n principaleLabel={principaleLabel}\n onAddPrincipale={onAddPrincipale}\n onAddAdditional={onAddAdditional}\n onRemoveImage={onRemoveImage}\n />\n )}\n\n {/* ── File mode ─────────────────────────────────────────────────── */}\n {mode === 'file' && (\n <View style={styles.fileCol}>\n {files.length > 0 && (\n <View style={styles.fileList}>\n {files.map((f) => (\n <FileCard\n key={f.id}\n filename={f.filename}\n detail={f.detail}\n caption={f.caption}\n mimeType={f.mimeType}\n thumbnailUri={f.thumbnailUri}\n onRemove={onRemoveFile ? () => onRemoveFile(f.id) : undefined}\n />\n ))}\n </View>\n )}\n <Button\n variant=\"tertiary\"\n size=\"M\"\n label=\"Ajouter un fichier\"\n iconLeft={\n <PlusCircle\n size={18}\n weight=\"duotone\"\n color={colors.button.tertiary.default.icon}\n />\n }\n onPress={onAddFile}\n style={styles.addButton}\n />\n </View>\n )}\n </View>\n );\n};\n\n"]}
@@ -0,0 +1,30 @@
1
+ export declare const styles: {
2
+ container: {
3
+ gap: number;
4
+ };
5
+ labelBlock: {
6
+ gap: number;
7
+ };
8
+ label: {
9
+ fontSize: number;
10
+ fontWeight: "600";
11
+ lineHeight: number;
12
+ letterSpacing: number;
13
+ textTransform: "uppercase";
14
+ };
15
+ subtitle: {
16
+ fontSize: number;
17
+ fontWeight: "500";
18
+ lineHeight: number;
19
+ };
20
+ fileCol: {
21
+ gap: number;
22
+ };
23
+ fileList: {
24
+ gap: number;
25
+ };
26
+ addButton: {
27
+ alignSelf: "stretch";
28
+ };
29
+ };
30
+ //# sourceMappingURL=MediaPicker.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaPicker.styles.d.ts","sourceRoot":"","sources":["../../../src/components/MediaPicker/MediaPicker.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BjB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { StyleSheet } from 'react-native';
2
+ export const styles = StyleSheet.create({
3
+ container: {
4
+ gap: 4,
5
+ },
6
+ labelBlock: {
7
+ gap: 0,
8
+ },
9
+ label: {
10
+ fontSize: 12,
11
+ fontWeight: '600',
12
+ lineHeight: 16,
13
+ letterSpacing: 0.72,
14
+ textTransform: 'uppercase',
15
+ },
16
+ subtitle: {
17
+ fontSize: 12,
18
+ fontWeight: '500',
19
+ lineHeight: 16,
20
+ },
21
+ fileCol: {
22
+ gap: 8,
23
+ },
24
+ fileList: {
25
+ gap: 4,
26
+ },
27
+ addButton: {
28
+ alignSelf: 'stretch',
29
+ },
30
+ });
31
+ //# sourceMappingURL=MediaPicker.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaPicker.styles.js","sourceRoot":"","sources":["../../../src/components/MediaPicker/MediaPicker.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACtC,SAAS,EAAE;QACT,GAAG,EAAE,CAAC;KACP;IACD,UAAU,EAAE;QACV,GAAG,EAAE,CAAC;KACP;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,EAAE;QACd,aAAa,EAAE,IAAI;QACnB,aAAa,EAAE,WAAW;KAC3B;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,EAAE;KACf;IACD,OAAO,EAAE;QACP,GAAG,EAAE,CAAC;KACP;IACD,QAAQ,EAAE;QACR,GAAG,EAAE,CAAC;KACP;IACD,SAAS,EAAE;QACT,SAAS,EAAE,SAAS;KACrB;CACF,CAAC,CAAC","sourcesContent":["import { StyleSheet } from 'react-native';\n\nexport const styles = StyleSheet.create({\n container: {\n gap: 4,\n },\n labelBlock: {\n gap: 0,\n },\n label: {\n fontSize: 12,\n fontWeight: '600',\n lineHeight: 16,\n letterSpacing: 0.72,\n textTransform: 'uppercase',\n },\n subtitle: {\n fontSize: 12,\n fontWeight: '500',\n lineHeight: 16,\n },\n fileCol: {\n gap: 8,\n },\n fileList: {\n gap: 4,\n },\n addButton: {\n alignSelf: 'stretch',\n },\n});\n"]}
@@ -0,0 +1,3 @@
1
+ export { MediaPicker } from './MediaPicker';
2
+ export type { MediaPickerProps, MediaPickerMode, MediaPickerImageItem, MediaPickerFileItem, } from './MediaPicker';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MediaPicker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { MediaPicker } from './MediaPicker';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/MediaPicker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC","sourcesContent":["export { MediaPicker } from './MediaPicker';\nexport type {\n MediaPickerProps,\n MediaPickerMode,\n MediaPickerImageItem,\n MediaPickerFileItem,\n} from './MediaPicker';\n"]}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * PhotoCard — 160 × 140 image slot used inside the image-mode MediaPicker.
3
+ *
4
+ * Default state: empty "+" slot, beige background, optional "Principale" badge.
5
+ * Used state: image fill (cover) + top gradient overlay + XCircle remove button
6
+ * + optional "Principale" badge.
7
+ */
8
+ import type { StyleProp, ViewStyle } from 'react-native';
9
+ export interface PhotoCardProps {
10
+ /** Image URI — if provided, shows the "Used" state; if omitted shows the empty "+" slot */
11
+ uri?: string;
12
+ /** Show the badge at the bottom of the card */
13
+ principale?: boolean;
14
+ /** Badge label — defaults to "Principale" */
15
+ principaleLabel?: string;
16
+ /** Called when the card area is pressed (empty slot or image area) */
17
+ onPress?: () => void;
18
+ /** Called when the X remove button is pressed — only rendered in Used state */
19
+ onRemove?: () => void;
20
+ /** Additional style applied to the card container */
21
+ style?: StyleProp<ViewStyle>;
22
+ /** Test identifier for automated testing */
23
+ testID?: string;
24
+ /** Accessibility label for the card press area */
25
+ accessibilityLabel?: string;
26
+ }
27
+ export declare const PhotoCard: ({ uri, principale, principaleLabel, onPress, onRemove, style, testID, accessibilityLabel, }: PhotoCardProps) => import("react").JSX.Element;
28
+ //# sourceMappingURL=PhotoCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhotoCard.d.ts","sourceRoot":"","sources":["../../../src/components/PhotoCard/PhotoCard.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAUzD,MAAM,WAAW,cAAc;IAC7B,2FAA2F;IAC3F,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6CAA6C;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,qDAAqD;IACrD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAMD,eAAO,MAAM,SAAS,GAAI,6FASvB,cAAc,gCAkEhB,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * PhotoCard — 160 × 140 image slot used inside the image-mode MediaPicker.
3
+ *
4
+ * Default state: empty "+" slot, beige background, optional "Principale" badge.
5
+ * Used state: image fill (cover) + top gradient overlay + XCircle remove button
6
+ * + optional "Principale" badge.
7
+ */
8
+ import { Image, Pressable, StyleSheet, Text, View } from 'react-native';
9
+ import { LinearGradient } from 'expo-linear-gradient';
10
+ import { Plus, XCircle } from 'phosphor-react-native';
11
+ import { useTheme } from '../../context/ThemeContext';
12
+ import { styles } from './PhotoCard.styles';
13
+ // ---------------------------------------------------------------------------
14
+ // Component
15
+ // ---------------------------------------------------------------------------
16
+ export const PhotoCard = ({ uri, principale = false, principaleLabel = 'Principale', onPress, onRemove, style, testID, accessibilityLabel, }) => {
17
+ const { colors, fontFamily } = useTheme();
18
+ const pc = colors.mediaPicker.photoCard;
19
+ const isUsed = !!uri;
20
+ return (<Pressable onPress={onPress} style={[
21
+ styles.card,
22
+ {
23
+ borderColor: pc.border,
24
+ backgroundColor: isUsed ? 'transparent' : pc.emptyBackground,
25
+ },
26
+ style,
27
+ ]} testID={testID} accessibilityRole="button" accessibilityLabel={accessibilityLabel ?? (isUsed ? 'Photo' : 'Ajouter une photo')}>
28
+ {/* Empty state — "+" icon */}
29
+ {!isUsed && (<Plus size={20} weight="regular" color={colors.text.primary}/>)}
30
+
31
+ {/* Used state — image + gradient + remove button */}
32
+ {isUsed && uri && (<>
33
+ <Image source={{ uri }} style={StyleSheet.absoluteFillObject} resizeMode="cover"/>
34
+ <LinearGradient colors={['rgba(0,0,0,0.5)', 'rgba(0,0,0,0)']} start={{ x: 0, y: 0 }} end={{ x: 0, y: 1 }} locations={[0, 0.58]} style={StyleSheet.absoluteFillObject}/>
35
+ {onRemove && (<Pressable onPress={onRemove} style={styles.removeButton} hitSlop={8} testID="photo-card-remove" accessibilityRole="button" accessibilityLabel="Supprimer la photo">
36
+ <XCircle size={28} weight="duotone" color={pc.removeIcon}/>
37
+ </Pressable>)}
38
+ </>)}
39
+
40
+ {/* "Principale" badge */}
41
+ {principale && (<View style={styles.badgeRow}>
42
+ <View style={[styles.badge, { backgroundColor: pc.badgeBackground }]}>
43
+ <Text style={[styles.badgeText, { color: pc.badgeText, fontFamily }]}>
44
+ {principaleLabel}
45
+ </Text>
46
+ </View>
47
+ </View>)}
48
+
49
+ {/* Inner border overlay — sits on top of the image so border is always visible */}
50
+ <View style={[styles.innerBorder, { borderColor: pc.border }]}/>
51
+ </Pressable>);
52
+ };
53
+ //# sourceMappingURL=PhotoCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhotoCard.js","sourceRoot":"","sources":["../../../src/components/PhotoCard/PhotoCard.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * PhotoCard — 160 × 140 image slot used inside the image-mode MediaPicker.\n *\n * Default state: empty \"+\" slot, beige background, optional \"Principale\" badge.\n * Used state: image fill (cover) + top gradient overlay + XCircle remove button\n * + optional \"Principale\" badge.\n */\n\nimport { Image, Pressable, StyleSheet, Text, View } from 'react-native';\nimport type { StyleProp, ViewStyle } from 'react-native';\nimport { LinearGradient } from 'expo-linear-gradient';\nimport { Plus, XCircle } from 'phosphor-react-native';\nimport { useTheme } from '../../context/ThemeContext';\nimport { styles } from './PhotoCard.styles';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface PhotoCardProps {\n /** Image URI — if provided, shows the \"Used\" state; if omitted shows the empty \"+\" slot */\n uri?: string;\n /** Show the badge at the bottom of the card */\n principale?: boolean;\n /** Badge label — defaults to \"Principale\" */\n principaleLabel?: string;\n /** Called when the card area is pressed (empty slot or image area) */\n onPress?: () => void;\n /** Called when the X remove button is pressed — only rendered in Used state */\n onRemove?: () => void;\n /** Additional style applied to the card container */\n style?: StyleProp<ViewStyle>;\n /** Test identifier for automated testing */\n testID?: string;\n /** Accessibility label for the card press area */\n accessibilityLabel?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nexport const PhotoCard = ({\n uri,\n principale = false,\n principaleLabel = 'Principale',\n onPress,\n onRemove,\n style,\n testID,\n accessibilityLabel,\n}: PhotoCardProps) => {\n const { colors, fontFamily } = useTheme();\n const pc = colors.mediaPicker.photoCard;\n const isUsed = !!uri;\n\n return (\n <Pressable\n onPress={onPress}\n style={[\n styles.card,\n {\n borderColor: pc.border,\n backgroundColor: isUsed ? 'transparent' : pc.emptyBackground,\n },\n style,\n ]}\n testID={testID}\n accessibilityRole=\"button\"\n accessibilityLabel={accessibilityLabel ?? (isUsed ? 'Photo' : 'Ajouter une photo')}\n >\n {/* Empty state — \"+\" icon */}\n {!isUsed && (\n <Plus size={20} weight=\"regular\" color={colors.text.primary} />\n )}\n\n {/* Used state — image + gradient + remove button */}\n {isUsed && uri && (\n <>\n <Image source={{ uri }} style={StyleSheet.absoluteFillObject} resizeMode=\"cover\" />\n <LinearGradient\n colors={['rgba(0,0,0,0.5)', 'rgba(0,0,0,0)']}\n start={{ x: 0, y: 0 }}\n end={{ x: 0, y: 1 }}\n locations={[0, 0.58]}\n style={StyleSheet.absoluteFillObject}\n />\n {onRemove && (\n <Pressable\n onPress={onRemove}\n style={styles.removeButton}\n hitSlop={8}\n testID=\"photo-card-remove\"\n accessibilityRole=\"button\"\n accessibilityLabel=\"Supprimer la photo\"\n >\n <XCircle size={28} weight=\"duotone\" color={pc.removeIcon} />\n </Pressable>\n )}\n </>\n )}\n\n {/* \"Principale\" badge */}\n {principale && (\n <View style={styles.badgeRow}>\n <View style={[styles.badge, { backgroundColor: pc.badgeBackground }]}>\n <Text style={[styles.badgeText, { color: pc.badgeText, fontFamily }]}>\n {principaleLabel}\n </Text>\n </View>\n </View>\n )}\n\n {/* Inner border overlay — sits on top of the image so border is always visible */}\n <View style={[styles.innerBorder, { borderColor: pc.border }]} />\n </Pressable>\n );\n};\n\n"]}
@@ -0,0 +1,47 @@
1
+ export declare const styles: {
2
+ card: {
3
+ width: number;
4
+ height: number;
5
+ borderRadius: number;
6
+ overflow: "hidden";
7
+ alignItems: "center";
8
+ justifyContent: "center";
9
+ };
10
+ innerBorder: {
11
+ position: "absolute";
12
+ top: number;
13
+ left: number;
14
+ right: number;
15
+ bottom: number;
16
+ borderRadius: number;
17
+ borderWidth: number;
18
+ pointerEvents: "none";
19
+ };
20
+ removeButton: {
21
+ position: "absolute";
22
+ right: number;
23
+ top: number;
24
+ width: number;
25
+ height: number;
26
+ alignItems: "center";
27
+ justifyContent: "center";
28
+ };
29
+ badgeRow: {
30
+ position: "absolute";
31
+ bottom: number;
32
+ left: number;
33
+ right: number;
34
+ alignItems: "center";
35
+ };
36
+ badge: {
37
+ paddingHorizontal: number;
38
+ paddingVertical: number;
39
+ borderRadius: number;
40
+ };
41
+ badgeText: {
42
+ fontSize: number;
43
+ fontWeight: "500";
44
+ lineHeight: number;
45
+ };
46
+ };
47
+ //# sourceMappingURL=PhotoCard.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhotoCard.styles.d.ts","sourceRoot":"","sources":["../../../src/components/PhotoCard/PhotoCard.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CjB,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { StyleSheet } from 'react-native';
2
+ export const styles = StyleSheet.create({
3
+ card: {
4
+ width: 160,
5
+ height: 140,
6
+ borderRadius: 8,
7
+ overflow: 'hidden',
8
+ alignItems: 'center',
9
+ justifyContent: 'center',
10
+ },
11
+ innerBorder: {
12
+ position: 'absolute',
13
+ top: 0, left: 0, right: 0, bottom: 0,
14
+ borderRadius: 8,
15
+ borderWidth: 1,
16
+ pointerEvents: 'none',
17
+ },
18
+ removeButton: {
19
+ position: 'absolute',
20
+ right: 5,
21
+ top: 5,
22
+ width: 28,
23
+ height: 28,
24
+ alignItems: 'center',
25
+ justifyContent: 'center',
26
+ },
27
+ badgeRow: {
28
+ position: 'absolute',
29
+ bottom: 7,
30
+ left: 0,
31
+ right: 0,
32
+ alignItems: 'center',
33
+ },
34
+ badge: {
35
+ paddingHorizontal: 8,
36
+ paddingVertical: 2,
37
+ borderRadius: 9999,
38
+ },
39
+ badgeText: {
40
+ fontSize: 14,
41
+ fontWeight: '500',
42
+ lineHeight: 20,
43
+ },
44
+ });
45
+ //# sourceMappingURL=PhotoCard.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhotoCard.styles.js","sourceRoot":"","sources":["../../../src/components/PhotoCard/PhotoCard.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE;QACJ,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;QACX,YAAY,EAAE,CAAC;QACf,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;KACzB;IACD,WAAW,EAAE;QACX,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACpC,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;QACd,aAAa,EAAE,MAAM;KACtB;IACD,YAAY,EAAE;QACZ,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,CAAC;QACR,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;KACzB;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,CAAC;QACT,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;QACR,UAAU,EAAE,QAAQ;KACrB;IACD,KAAK,EAAE;QACL,iBAAiB,EAAE,CAAC;QACpB,eAAe,EAAE,CAAC;QAClB,YAAY,EAAE,IAAI;KACnB;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,EAAE;KACf;CACF,CAAC,CAAC","sourcesContent":["import { StyleSheet } from 'react-native';\n\nexport const styles = StyleSheet.create({\n card: {\n width: 160,\n height: 140,\n borderRadius: 8,\n overflow: 'hidden',\n alignItems: 'center',\n justifyContent: 'center',\n },\n innerBorder: {\n position: 'absolute',\n top: 0, left: 0, right: 0, bottom: 0,\n borderRadius: 8,\n borderWidth: 1,\n pointerEvents: 'none',\n },\n removeButton: {\n position: 'absolute',\n right: 5,\n top: 5,\n width: 28,\n height: 28,\n alignItems: 'center',\n justifyContent: 'center',\n },\n badgeRow: {\n position: 'absolute',\n bottom: 7,\n left: 0,\n right: 0,\n alignItems: 'center',\n },\n badge: {\n paddingHorizontal: 8,\n paddingVertical: 2,\n borderRadius: 9999,\n },\n badgeText: {\n fontSize: 14,\n fontWeight: '500',\n lineHeight: 20,\n },\n});\n"]}
@@ -0,0 +1,3 @@
1
+ export { PhotoCard } from './PhotoCard';
2
+ export type { PhotoCardProps } from './PhotoCard';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PhotoCard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { PhotoCard } from './PhotoCard';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/PhotoCard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC","sourcesContent":["export { PhotoCard } from './PhotoCard';\nexport type { PhotoCardProps } from './PhotoCard';\n"]}
@@ -0,0 +1,9 @@
1
+ export interface ProgressStepProps {
2
+ /** Total number of steps */
3
+ totalSteps: number;
4
+ /** Index of the current active step (0-based) */
5
+ currentStep: number;
6
+ }
7
+ export declare function ProgressStep({ totalSteps, currentStep }: ProgressStepProps): import("react").JSX.Element;
8
+ export default ProgressStep;
9
+ //# sourceMappingURL=ProgressStep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressStep.d.ts","sourceRoot":"","sources":["../../../src/components/ProgressStep/ProgressStep.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,iBAAiB;IAChC,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,iBAAiB,+BAsB1E;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * ProgressStep — horizontal step progress indicator.
3
+ * Renders a row of segments: completed/active segments are filled, future ones are dimmed.
4
+ */
5
+ import { View } from 'react-native';
6
+ import { useTheme } from '../../context/ThemeContext';
7
+ import { styles } from './ProgressStep.styles';
8
+ export function ProgressStep({ totalSteps, currentStep }) {
9
+ const { colors } = useTheme();
10
+ return (<View style={styles.row} accessibilityRole="progressbar" accessibilityValue={{ min: 0, max: totalSteps - 1, now: currentStep }}>
11
+ {Array.from({ length: totalSteps }, (_, index) => (<View key={index} style={[
12
+ styles.segment,
13
+ {
14
+ flex: 1,
15
+ backgroundColor: index < currentStep ? colors.progressStep.done :
16
+ index === currentStep ? colors.progressStep.active :
17
+ colors.progressStep.default,
18
+ },
19
+ ]}/>))}
20
+ </View>);
21
+ }
22
+ export default ProgressStep;
23
+ //# sourceMappingURL=ProgressStep.js.map