@ledgerhq/lumen-ui-rnative 0.1.47 → 0.1.49

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 (362) hide show
  1. package/dist/module/i18n/locales/de.json +1 -3
  2. package/dist/module/i18n/locales/en.json +1 -3
  3. package/dist/module/i18n/locales/es.json +1 -3
  4. package/dist/module/i18n/locales/fr.json +1 -3
  5. package/dist/module/i18n/locales/ja.json +1 -3
  6. package/dist/module/i18n/locales/ko.json +1 -3
  7. package/dist/module/i18n/locales/pt.json +1 -3
  8. package/dist/module/i18n/locales/ru.json +1 -3
  9. package/dist/module/i18n/locales/th.json +1 -3
  10. package/dist/module/i18n/locales/tr.json +1 -3
  11. package/dist/module/i18n/locales/zh.json +1 -3
  12. package/dist/module/lib/Animations/Pulse/Pulse.js +3 -3
  13. package/dist/module/lib/Animations/Pulse/Pulse.js.map +1 -1
  14. package/dist/module/lib/Animations/Pulse/Pulse.mdx +0 -1
  15. package/dist/module/lib/Animations/Spin/Spin.js +3 -3
  16. package/dist/module/lib/Animations/Spin/Spin.js.map +1 -1
  17. package/dist/module/lib/Animations/Spin/Spin.mdx +0 -1
  18. package/dist/module/lib/Components/AddressInput/AddressInput.figma.js +36 -0
  19. package/dist/module/lib/Components/AddressInput/AddressInput.figma.js.map +1 -0
  20. package/dist/module/lib/Components/AddressInput/AddressInput.mdx +0 -183
  21. package/dist/module/lib/Components/AmountDisplay/AmountDisplay.figma.js +31 -0
  22. package/dist/module/lib/Components/AmountDisplay/AmountDisplay.figma.js.map +1 -0
  23. package/dist/module/lib/Components/AmountDisplay/AmountDisplay.mdx +0 -90
  24. package/dist/module/lib/Components/AmountInput/AmountInput.figma.js +70 -0
  25. package/dist/module/lib/Components/AmountInput/AmountInput.figma.js.map +1 -0
  26. package/dist/module/lib/Components/AmountInput/AmountInput.js +3 -1
  27. package/dist/module/lib/Components/AmountInput/AmountInput.js.map +1 -1
  28. package/dist/module/lib/Components/AmountInput/AmountInput.mdx +0 -190
  29. package/dist/module/lib/Components/AmountInput/AmountInput.stories.js +15 -0
  30. package/dist/module/lib/Components/AmountInput/AmountInput.stories.js.map +1 -1
  31. package/dist/module/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.js +1 -1
  32. package/dist/module/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.js.map +1 -1
  33. package/dist/module/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.test.js +20 -1
  34. package/dist/module/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.test.js.map +1 -1
  35. package/dist/module/lib/Components/Avatar/Avatar.figma.js +15 -12
  36. package/dist/module/lib/Components/Avatar/Avatar.figma.js.map +1 -1
  37. package/dist/module/lib/Components/Avatar/Avatar.js +4 -27
  38. package/dist/module/lib/Components/Avatar/Avatar.js.map +1 -1
  39. package/dist/module/lib/Components/Avatar/Avatar.mdx +53 -69
  40. package/dist/module/lib/Components/Avatar/Avatar.stories.js +27 -33
  41. package/dist/module/lib/Components/Avatar/Avatar.stories.js.map +1 -1
  42. package/dist/module/lib/Components/Avatar/Avatar.test.js +21 -39
  43. package/dist/module/lib/Components/Avatar/Avatar.test.js.map +1 -1
  44. package/dist/module/lib/Components/Banner/Banner.figma.js +107 -0
  45. package/dist/module/lib/Components/Banner/Banner.figma.js.map +1 -0
  46. package/dist/module/lib/Components/Banner/Banner.mdx +0 -86
  47. package/dist/module/lib/Components/BottomSheet/BottomSheet.figma.js +49 -0
  48. package/dist/module/lib/Components/BottomSheet/BottomSheet.figma.js.map +1 -0
  49. package/dist/module/lib/Components/BottomSheet/BottomSheet.mdx +0 -119
  50. package/dist/module/lib/Components/Button/Button.figma.js +45 -0
  51. package/dist/module/lib/Components/Button/Button.figma.js.map +1 -0
  52. package/dist/module/lib/Components/Button/Button.mdx +25 -224
  53. package/dist/module/lib/Components/Button/Button.stories.js +4 -36
  54. package/dist/module/lib/Components/Button/Button.stories.js.map +1 -1
  55. package/dist/module/lib/Components/Card/Card.figma.js +143 -0
  56. package/dist/module/lib/Components/Card/Card.figma.js.map +1 -0
  57. package/dist/module/lib/Components/Card/Card.mdx +0 -160
  58. package/dist/module/lib/Components/CardButton/CardButton.figma.js +38 -0
  59. package/dist/module/lib/Components/CardButton/CardButton.figma.js.map +1 -0
  60. package/dist/module/lib/Components/CardButton/CardButton.mdx +0 -48
  61. package/dist/module/lib/Components/Checkbox/Checkbox.figma.js +48 -0
  62. package/dist/module/lib/Components/Checkbox/Checkbox.figma.js.map +1 -0
  63. package/dist/module/lib/Components/Checkbox/Checkbox.mdx +0 -73
  64. package/dist/module/lib/Components/ContentBanner/ContentBanner.figma.js +91 -0
  65. package/dist/module/lib/Components/ContentBanner/ContentBanner.figma.js.map +1 -0
  66. package/dist/module/lib/Components/ContentBanner/ContentBanner.mdx +0 -2
  67. package/dist/module/lib/Components/CryptoIcon/CryptoIcon.figma.js +17 -0
  68. package/dist/module/lib/Components/CryptoIcon/CryptoIcon.figma.js.map +1 -0
  69. package/dist/module/lib/Components/DescriptionItem/DescriptionItem.figma.js +29 -0
  70. package/dist/module/lib/Components/DescriptionItem/DescriptionItem.figma.js.map +1 -0
  71. package/dist/module/lib/Components/Divider/Divider.figma.js +10 -0
  72. package/dist/module/lib/Components/Divider/Divider.figma.js.map +1 -0
  73. package/dist/module/lib/Components/Divider/Divider.mdx +0 -2
  74. package/dist/module/lib/Components/DotCount/DotCount.figma.js +29 -0
  75. package/dist/module/lib/Components/DotCount/DotCount.figma.js.map +1 -0
  76. package/dist/module/lib/Components/DotIndicator/DotIndicator.figma.js +29 -0
  77. package/dist/module/lib/Components/DotIndicator/DotIndicator.figma.js.map +1 -0
  78. package/dist/module/lib/Components/DotIndicator/DotIndicator.stories.js +6 -3
  79. package/dist/module/lib/Components/DotIndicator/DotIndicator.stories.js.map +1 -1
  80. package/dist/module/lib/Components/DotIndicator/getDotIndicatorProps.js +17 -0
  81. package/dist/module/lib/Components/DotIndicator/getDotIndicatorProps.js.map +1 -0
  82. package/dist/module/lib/Components/DotIndicator/getDotIndicatorProps.test.js +17 -0
  83. package/dist/module/lib/Components/DotIndicator/getDotIndicatorProps.test.js.map +1 -0
  84. package/dist/module/lib/Components/DotIndicator/index.js +1 -0
  85. package/dist/module/lib/Components/DotIndicator/index.js.map +1 -1
  86. package/dist/module/lib/Components/Icon/Icon.figma.js +1840 -0
  87. package/dist/module/lib/Components/Icon/Icon.figma.js.map +1 -0
  88. package/dist/module/lib/Components/Icon/Icon.mdx +0 -62
  89. package/dist/module/lib/Components/IconButton/IconButton.figma.js +42 -0
  90. package/dist/module/lib/Components/IconButton/IconButton.figma.js.map +1 -0
  91. package/dist/module/lib/Components/IconButton/IconButton.mdx +0 -68
  92. package/dist/module/lib/Components/InteractiveIcon/InteractiveIcon.figma.js +51 -0
  93. package/dist/module/lib/Components/InteractiveIcon/InteractiveIcon.figma.js.map +1 -0
  94. package/dist/module/lib/Components/InteractiveIcon/InteractiveIcon.mdx +0 -107
  95. package/dist/module/lib/Components/Link/Link.figma.js +41 -0
  96. package/dist/module/lib/Components/Link/Link.figma.js.map +1 -0
  97. package/dist/module/lib/Components/Link/Link.mdx +0 -102
  98. package/dist/module/lib/Components/ListItem/ListItem.figma.js +416 -0
  99. package/dist/module/lib/Components/ListItem/ListItem.figma.js.map +1 -0
  100. package/dist/module/lib/Components/ListItem/ListItem.mdx +0 -129
  101. package/dist/module/lib/Components/MediaBanner/MediaBanner.figma.js +25 -0
  102. package/dist/module/lib/Components/MediaBanner/MediaBanner.figma.js.map +1 -0
  103. package/dist/module/lib/Components/MediaBanner/MediaBanner.mdx +0 -3
  104. package/dist/module/lib/Components/MediaButton/MediaButton.figma.js +72 -0
  105. package/dist/module/lib/Components/MediaButton/MediaButton.figma.js.map +1 -0
  106. package/dist/module/lib/Components/MediaCard/MediaCard.figma.js +28 -0
  107. package/dist/module/lib/Components/MediaCard/MediaCard.figma.js.map +1 -0
  108. package/dist/module/lib/Components/MediaCard/MediaCard.mdx +0 -2
  109. package/dist/module/lib/Components/MediaImage/MediaImage.mdx +0 -1
  110. package/dist/module/lib/Components/MediaTag/MediaTag.figma.js +100 -0
  111. package/dist/module/lib/Components/MediaTag/MediaTag.figma.js.map +1 -0
  112. package/dist/module/lib/Components/MediaTag/MediaTag.mdx +0 -2
  113. package/dist/module/lib/Components/NavBar/NavBar.figma.js +79 -0
  114. package/dist/module/lib/Components/NavBar/NavBar.figma.js.map +1 -0
  115. package/dist/module/lib/Components/NavBar/NavBar.mdx +0 -2
  116. package/dist/module/lib/Components/OptionList/OptionList.js +16 -1
  117. package/dist/module/lib/Components/OptionList/OptionList.js.map +1 -1
  118. package/dist/module/lib/Components/OptionList/OptionList.mdx +45 -90
  119. package/dist/module/lib/Components/OptionList/OptionList.stories.js +61 -1
  120. package/dist/module/lib/Components/OptionList/OptionList.stories.js.map +1 -1
  121. package/dist/module/lib/Components/OptionList/OptionList.test.js +43 -1
  122. package/dist/module/lib/Components/OptionList/OptionList.test.js.map +1 -1
  123. package/dist/module/lib/Components/OptionList/useOptionList/useOptionListItems.js.map +1 -1
  124. package/dist/module/lib/Components/PageIndicator/PageIndicator.figma.js +13 -0
  125. package/dist/module/lib/Components/PageIndicator/PageIndicator.figma.js.map +1 -0
  126. package/dist/module/lib/Components/PageIndicator/PageIndicator.mdx +0 -2
  127. package/dist/module/lib/Components/SearchInput/SearchInput.figma.js +31 -0
  128. package/dist/module/lib/Components/SearchInput/SearchInput.figma.js.map +1 -0
  129. package/dist/module/lib/Components/SearchInput/SearchInput.mdx +0 -199
  130. package/dist/module/lib/Components/SegmentedControl/SegmentedControl.figma.js +35 -0
  131. package/dist/module/lib/Components/SegmentedControl/SegmentedControl.figma.js.map +1 -0
  132. package/dist/module/lib/Components/SegmentedControl/SegmentedControl.js +7 -1
  133. package/dist/module/lib/Components/SegmentedControl/SegmentedControl.js.map +1 -1
  134. package/dist/module/lib/Components/SegmentedControl/SegmentedControl.mdx +28 -1
  135. package/dist/module/lib/Components/SegmentedControl/SegmentedControl.stories.js +24 -1
  136. package/dist/module/lib/Components/SegmentedControl/SegmentedControl.stories.js.map +1 -1
  137. package/dist/module/lib/Components/SegmentedControl/SegmentedControl.test.js +28 -1
  138. package/dist/module/lib/Components/SegmentedControl/SegmentedControl.test.js.map +1 -1
  139. package/dist/module/lib/Components/Skeleton/Skeleton.figma.js +18 -0
  140. package/dist/module/lib/Components/Skeleton/Skeleton.figma.js.map +1 -0
  141. package/dist/module/lib/Components/Skeleton/Skeleton.mdx +0 -71
  142. package/dist/module/lib/Components/Spinner/Spinner.figma.js +13 -0
  143. package/dist/module/lib/Components/Spinner/Spinner.figma.js.map +1 -0
  144. package/dist/module/lib/Components/Spinner/Spinner.mdx +0 -100
  145. package/dist/module/lib/Components/Spot/Spot.figma.js +37 -0
  146. package/dist/module/lib/Components/Spot/Spot.figma.js.map +1 -0
  147. package/dist/module/lib/Components/Spot/Spot.mdx +0 -94
  148. package/dist/module/lib/Components/Stepper/Stepper.figma.js +13 -0
  149. package/dist/module/lib/Components/Stepper/Stepper.figma.js.map +1 -0
  150. package/dist/module/lib/Components/Stepper/Stepper.mdx +0 -67
  151. package/dist/module/lib/Components/Subheader/Subheader.figma.js +67 -0
  152. package/dist/module/lib/Components/Subheader/Subheader.figma.js.map +1 -0
  153. package/dist/module/lib/Components/Subheader/Subheader.mdx +0 -116
  154. package/dist/module/lib/Components/Switch/Switch.figma.js +58 -0
  155. package/dist/module/lib/Components/Switch/Switch.figma.js.map +1 -0
  156. package/dist/module/lib/Components/Switch/Switch.mdx +0 -39
  157. package/dist/module/lib/Components/TabBar/TabBar.figma.js +98 -0
  158. package/dist/module/lib/Components/TabBar/TabBar.figma.js.map +1 -0
  159. package/dist/module/lib/Components/TabBar/TabBar.js +7 -4
  160. package/dist/module/lib/Components/TabBar/TabBar.js.map +1 -1
  161. package/dist/module/lib/Components/TabBar/TabBar.mdx +29 -5
  162. package/dist/module/lib/Components/TabBar/TabBar.stories.js +35 -1
  163. package/dist/module/lib/Components/TabBar/TabBar.stories.js.map +1 -1
  164. package/dist/module/lib/Components/TabBar/TabBar.test.js +28 -1
  165. package/dist/module/lib/Components/TabBar/TabBar.test.js.map +1 -1
  166. package/dist/module/lib/Components/TabBar/index.js +2 -1
  167. package/dist/module/lib/Components/TabBar/index.js.map +1 -1
  168. package/dist/module/lib/Components/Tag/Tag.figma.js +41 -0
  169. package/dist/module/lib/Components/Tag/Tag.figma.js.map +1 -0
  170. package/dist/module/lib/Components/Tag/Tag.mdx +0 -2
  171. package/dist/module/lib/Components/TextInput/TextInput.figma.js +37 -0
  172. package/dist/module/lib/Components/TextInput/TextInput.figma.js.map +1 -0
  173. package/dist/module/lib/Components/TextInput/TextInput.mdx +0 -178
  174. package/dist/module/lib/Components/Tile/Tile.figma.js +111 -0
  175. package/dist/module/lib/Components/Tile/Tile.figma.js.map +1 -0
  176. package/dist/module/lib/Components/Tile/Tile.mdx +0 -53
  177. package/dist/module/lib/Components/TileButton/TileButton.figma.js +23 -0
  178. package/dist/module/lib/Components/TileButton/TileButton.figma.js.map +1 -0
  179. package/dist/module/lib/Components/TileButton/TileButton.mdx +0 -40
  180. package/dist/module/lib/Components/Tooltip/Tooltip.figma.js +26 -0
  181. package/dist/module/lib/Components/Tooltip/Tooltip.figma.js.map +1 -0
  182. package/dist/module/lib/Components/Tooltip/Tooltip.mdx +0 -183
  183. package/dist/module/lib/Components/Trend/Trend.figma.js +29 -0
  184. package/dist/module/lib/Components/Trend/Trend.figma.js.map +1 -0
  185. package/dist/module/lib/Components/Trend/Trend.mdx +0 -2
  186. package/dist/module/lib/Components/Utility/Text/Text.mdx +0 -1
  187. package/dist/module/lib/Symbols/Icons/ChevronAscending.js +1 -1
  188. package/dist/module/lib/Symbols/Icons/ChevronDescending.js +1 -1
  189. package/dist/module/lib/Symbols/Icons/Contact.js +50 -0
  190. package/dist/module/lib/Symbols/Icons/Contact.js.map +1 -0
  191. package/dist/module/lib/Symbols/index.js +1 -0
  192. package/dist/module/lib/Symbols/index.js.map +1 -1
  193. package/dist/typescript/src/lib/Animations/Pulse/Pulse.d.ts.map +1 -1
  194. package/dist/typescript/src/lib/Animations/Spin/Spin.d.ts.map +1 -1
  195. package/dist/typescript/src/lib/Components/AmountInput/AmountInput.d.ts +1 -1
  196. package/dist/typescript/src/lib/Components/AmountInput/AmountInput.d.ts.map +1 -1
  197. package/dist/typescript/src/lib/Components/AmountInput/types.d.ts +8 -0
  198. package/dist/typescript/src/lib/Components/AmountInput/types.d.ts.map +1 -1
  199. package/dist/typescript/src/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.d.ts +1 -0
  200. package/dist/typescript/src/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.d.ts.map +1 -1
  201. package/dist/typescript/src/lib/Components/Avatar/Avatar.d.ts +1 -4
  202. package/dist/typescript/src/lib/Components/Avatar/Avatar.d.ts.map +1 -1
  203. package/dist/typescript/src/lib/Components/Avatar/types.d.ts +0 -6
  204. package/dist/typescript/src/lib/Components/Avatar/types.d.ts.map +1 -1
  205. package/dist/typescript/src/lib/Components/DotIndicator/getDotIndicatorProps.d.ts +24 -0
  206. package/dist/typescript/src/lib/Components/DotIndicator/getDotIndicatorProps.d.ts.map +1 -0
  207. package/dist/typescript/src/lib/Components/DotIndicator/index.d.ts +1 -0
  208. package/dist/typescript/src/lib/Components/DotIndicator/index.d.ts.map +1 -1
  209. package/dist/typescript/src/lib/Components/OptionList/OptionList.d.ts +18 -4
  210. package/dist/typescript/src/lib/Components/OptionList/OptionList.d.ts.map +1 -1
  211. package/dist/typescript/src/lib/Components/OptionList/types.d.ts +16 -15
  212. package/dist/typescript/src/lib/Components/OptionList/types.d.ts.map +1 -1
  213. package/dist/typescript/src/lib/Components/OptionList/useOptionList/useOptionListItems.d.ts +9 -9
  214. package/dist/typescript/src/lib/Components/OptionList/useOptionList/useOptionListItems.d.ts.map +1 -1
  215. package/dist/typescript/src/lib/Components/SegmentedControl/SegmentedControl.d.ts +8 -3
  216. package/dist/typescript/src/lib/Components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  217. package/dist/typescript/src/lib/Components/SegmentedControl/types.d.ts +6 -5
  218. package/dist/typescript/src/lib/Components/SegmentedControl/types.d.ts.map +1 -1
  219. package/dist/typescript/src/lib/Components/TabBar/TabBar.d.ts +7 -2
  220. package/dist/typescript/src/lib/Components/TabBar/TabBar.d.ts.map +1 -1
  221. package/dist/typescript/src/lib/Components/TabBar/index.d.ts +2 -2
  222. package/dist/typescript/src/lib/Components/TabBar/index.d.ts.map +1 -1
  223. package/dist/typescript/src/lib/Components/TabBar/types.d.ts +17 -16
  224. package/dist/typescript/src/lib/Components/TabBar/types.d.ts.map +1 -1
  225. package/dist/typescript/src/lib/Symbols/Icons/Contact.d.ts +35 -0
  226. package/dist/typescript/src/lib/Symbols/Icons/Contact.d.ts.map +1 -0
  227. package/dist/typescript/src/lib/Symbols/index.d.ts +1 -0
  228. package/dist/typescript/src/lib/Symbols/index.d.ts.map +1 -1
  229. package/package.json +3 -3
  230. package/src/i18n/locales/de.json +1 -3
  231. package/src/i18n/locales/en.json +1 -3
  232. package/src/i18n/locales/es.json +1 -3
  233. package/src/i18n/locales/fr.json +1 -3
  234. package/src/i18n/locales/ja.json +1 -3
  235. package/src/i18n/locales/ko.json +1 -3
  236. package/src/i18n/locales/pt.json +1 -3
  237. package/src/i18n/locales/ru.json +1 -3
  238. package/src/i18n/locales/th.json +1 -3
  239. package/src/i18n/locales/tr.json +1 -3
  240. package/src/i18n/locales/zh.json +1 -3
  241. package/src/lib/Animations/Pulse/Pulse.mdx +0 -1
  242. package/src/lib/Animations/Pulse/Pulse.tsx +8 -1
  243. package/src/lib/Animations/Spin/Spin.mdx +0 -1
  244. package/src/lib/Animations/Spin/Spin.tsx +8 -1
  245. package/src/lib/Components/AddressInput/AddressInput.figma.tsx +39 -0
  246. package/src/lib/Components/AddressInput/AddressInput.mdx +0 -183
  247. package/src/lib/Components/AmountDisplay/AmountDisplay.figma.tsx +37 -0
  248. package/src/lib/Components/AmountDisplay/AmountDisplay.mdx +0 -90
  249. package/src/lib/Components/AmountInput/AmountInput.figma.tsx +78 -0
  250. package/src/lib/Components/AmountInput/AmountInput.mdx +0 -190
  251. package/src/lib/Components/AmountInput/AmountInput.stories.tsx +14 -0
  252. package/src/lib/Components/AmountInput/AmountInput.tsx +2 -0
  253. package/src/lib/Components/AmountInput/types.ts +8 -0
  254. package/src/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.test.ts +20 -0
  255. package/src/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.ts +2 -0
  256. package/src/lib/Components/Avatar/Avatar.figma.tsx +24 -14
  257. package/src/lib/Components/Avatar/Avatar.mdx +53 -69
  258. package/src/lib/Components/Avatar/Avatar.stories.tsx +16 -50
  259. package/src/lib/Components/Avatar/Avatar.test.tsx +12 -32
  260. package/src/lib/Components/Avatar/Avatar.tsx +4 -34
  261. package/src/lib/Components/Avatar/types.ts +0 -6
  262. package/src/lib/Components/Banner/Banner.figma.tsx +115 -0
  263. package/src/lib/Components/Banner/Banner.mdx +0 -86
  264. package/src/lib/Components/BottomSheet/BottomSheet.figma.tsx +52 -0
  265. package/src/lib/Components/BottomSheet/BottomSheet.mdx +0 -119
  266. package/src/lib/Components/Button/Button.figma.tsx +57 -0
  267. package/src/lib/Components/Button/Button.mdx +25 -224
  268. package/src/lib/Components/Button/Button.stories.tsx +3 -35
  269. package/src/lib/Components/Card/Card.figma.tsx +149 -0
  270. package/src/lib/Components/Card/Card.mdx +0 -160
  271. package/src/lib/Components/CardButton/CardButton.figma.tsx +49 -0
  272. package/src/lib/Components/CardButton/CardButton.mdx +0 -48
  273. package/src/lib/Components/Checkbox/Checkbox.figma.tsx +54 -0
  274. package/src/lib/Components/Checkbox/Checkbox.mdx +0 -73
  275. package/src/lib/Components/ContentBanner/ContentBanner.figma.tsx +108 -0
  276. package/src/lib/Components/ContentBanner/ContentBanner.mdx +0 -2
  277. package/src/lib/Components/CryptoIcon/CryptoIcon.figma.tsx +20 -0
  278. package/src/lib/Components/DescriptionItem/DescriptionItem.figma.tsx +36 -0
  279. package/src/lib/Components/Divider/Divider.figma.tsx +11 -0
  280. package/src/lib/Components/Divider/Divider.mdx +0 -2
  281. package/src/lib/Components/DotCount/DotCount.figma.tsx +32 -0
  282. package/src/lib/Components/DotIndicator/DotIndicator.figma.tsx +32 -0
  283. package/src/lib/Components/DotIndicator/DotIndicator.stories.tsx +4 -1
  284. package/src/lib/Components/DotIndicator/getDotIndicatorProps.test.ts +15 -0
  285. package/src/lib/Components/DotIndicator/getDotIndicatorProps.ts +10 -0
  286. package/src/lib/Components/DotIndicator/index.ts +1 -0
  287. package/src/lib/Components/Icon/Icon.figma.tsx +3085 -0
  288. package/src/lib/Components/Icon/Icon.mdx +0 -62
  289. package/src/lib/Components/IconButton/IconButton.figma.tsx +53 -0
  290. package/src/lib/Components/IconButton/IconButton.mdx +0 -68
  291. package/src/lib/Components/InteractiveIcon/InteractiveIcon.figma.tsx +52 -0
  292. package/src/lib/Components/InteractiveIcon/InteractiveIcon.mdx +0 -107
  293. package/src/lib/Components/Link/Link.figma.tsx +53 -0
  294. package/src/lib/Components/Link/Link.mdx +0 -102
  295. package/src/lib/Components/ListItem/ListItem.figma.tsx +431 -0
  296. package/src/lib/Components/ListItem/ListItem.mdx +0 -129
  297. package/src/lib/Components/MediaBanner/MediaBanner.figma.tsx +32 -0
  298. package/src/lib/Components/MediaBanner/MediaBanner.mdx +0 -3
  299. package/src/lib/Components/MediaButton/MediaButton.figma.tsx +60 -0
  300. package/src/lib/Components/MediaCard/MediaCard.figma.tsx +27 -0
  301. package/src/lib/Components/MediaCard/MediaCard.mdx +0 -2
  302. package/src/lib/Components/MediaImage/MediaImage.mdx +0 -1
  303. package/src/lib/Components/MediaTag/MediaTag.figma.tsx +116 -0
  304. package/src/lib/Components/MediaTag/MediaTag.mdx +0 -2
  305. package/src/lib/Components/NavBar/NavBar.figma.tsx +84 -0
  306. package/src/lib/Components/NavBar/NavBar.mdx +0 -2
  307. package/src/lib/Components/OptionList/OptionList.mdx +45 -90
  308. package/src/lib/Components/OptionList/OptionList.stories.tsx +63 -0
  309. package/src/lib/Components/OptionList/OptionList.test.tsx +40 -0
  310. package/src/lib/Components/OptionList/OptionList.tsx +57 -10
  311. package/src/lib/Components/OptionList/types.ts +34 -15
  312. package/src/lib/Components/OptionList/useOptionList/useOptionListItems.ts +28 -13
  313. package/src/lib/Components/PageIndicator/PageIndicator.figma.tsx +11 -0
  314. package/src/lib/Components/PageIndicator/PageIndicator.mdx +0 -2
  315. package/src/lib/Components/SearchInput/SearchInput.figma.tsx +34 -0
  316. package/src/lib/Components/SearchInput/SearchInput.mdx +0 -199
  317. package/src/lib/Components/SegmentedControl/SegmentedControl.figma.tsx +34 -0
  318. package/src/lib/Components/SegmentedControl/SegmentedControl.mdx +28 -1
  319. package/src/lib/Components/SegmentedControl/SegmentedControl.stories.tsx +34 -1
  320. package/src/lib/Components/SegmentedControl/SegmentedControl.test.tsx +32 -1
  321. package/src/lib/Components/SegmentedControl/SegmentedControl.tsx +22 -5
  322. package/src/lib/Components/SegmentedControl/types.ts +11 -5
  323. package/src/lib/Components/Skeleton/Skeleton.figma.tsx +17 -0
  324. package/src/lib/Components/Skeleton/Skeleton.mdx +0 -71
  325. package/src/lib/Components/Spinner/Spinner.figma.tsx +12 -0
  326. package/src/lib/Components/Spinner/Spinner.mdx +0 -100
  327. package/src/lib/Components/Spot/Spot.figma.tsx +50 -0
  328. package/src/lib/Components/Spot/Spot.mdx +0 -94
  329. package/src/lib/Components/Stepper/Stepper.figma.tsx +11 -0
  330. package/src/lib/Components/Stepper/Stepper.mdx +0 -67
  331. package/src/lib/Components/Subheader/Subheader.figma.tsx +72 -0
  332. package/src/lib/Components/Subheader/Subheader.mdx +0 -116
  333. package/src/lib/Components/Switch/Switch.figma.tsx +66 -0
  334. package/src/lib/Components/Switch/Switch.mdx +0 -39
  335. package/src/lib/Components/TabBar/TabBar.figma.tsx +70 -0
  336. package/src/lib/Components/TabBar/TabBar.mdx +29 -5
  337. package/src/lib/Components/TabBar/TabBar.stories.tsx +34 -1
  338. package/src/lib/Components/TabBar/TabBar.test.tsx +23 -1
  339. package/src/lib/Components/TabBar/TabBar.tsx +17 -9
  340. package/src/lib/Components/TabBar/index.ts +2 -2
  341. package/src/lib/Components/TabBar/types.ts +19 -17
  342. package/src/lib/Components/Tag/Tag.figma.tsx +52 -0
  343. package/src/lib/Components/Tag/Tag.mdx +0 -2
  344. package/src/lib/Components/TextInput/TextInput.figma.tsx +40 -0
  345. package/src/lib/Components/TextInput/TextInput.mdx +0 -178
  346. package/src/lib/Components/Tile/Tile.figma.tsx +113 -0
  347. package/src/lib/Components/Tile/Tile.mdx +0 -53
  348. package/src/lib/Components/TileButton/TileButton.figma.tsx +35 -0
  349. package/src/lib/Components/TileButton/TileButton.mdx +0 -40
  350. package/src/lib/Components/Tooltip/Tooltip.figma.tsx +30 -0
  351. package/src/lib/Components/Tooltip/Tooltip.mdx +0 -183
  352. package/src/lib/Components/Trend/Trend.figma.tsx +28 -0
  353. package/src/lib/Components/Trend/Trend.mdx +0 -2
  354. package/src/lib/Components/Utility/Text/Text.mdx +0 -1
  355. package/src/lib/Symbols/Icons/ChevronAscending.tsx +1 -1
  356. package/src/lib/Symbols/Icons/ChevronDescending.tsx +1 -1
  357. package/src/lib/Symbols/Icons/Contact.tsx +45 -0
  358. package/src/lib/Symbols/index.ts +1 -0
  359. package/dist/typescript/src/lib/Components/Avatar/Avatar.figma.d.ts +0 -2
  360. package/dist/typescript/src/lib/Components/Avatar/Avatar.figma.d.ts.map +0 -1
  361. package/dist/typescript/src/lib/Components/OptionList/OptionList.figma.d.ts +0 -2
  362. package/dist/typescript/src/lib/Components/OptionList/OptionList.figma.d.ts.map +0 -1
@@ -6,6 +6,7 @@ type FormatOptions = {
6
6
  thousandsSeparator: boolean;
7
7
  maxIntegerLength: number;
8
8
  maxDecimalLength: number;
9
+ decimalSeparator: '.' | ',';
9
10
  };
10
11
 
11
12
  type UseAmountInputFormattingArgs = {
@@ -32,6 +33,7 @@ export const useAmountInputFormatting = ({
32
33
  formatOptions.thousandsSeparator,
33
34
  formatOptions.maxIntegerLength,
34
35
  formatOptions.maxDecimalLength,
36
+ formatOptions.decimalSeparator,
35
37
  ],
36
38
  );
37
39
 
@@ -1,11 +1,14 @@
1
1
  import figma from '@figma/code-connect';
2
+ import { DotIndicator, getDotIndicatorProps } from '../DotIndicator';
2
3
  import { Avatar } from './Avatar';
3
4
 
4
5
  figma.connect(
5
6
  Avatar,
6
7
  'https://www.figma.com/design/JxaLVMTWirCpU0rsbZ30k7?node-id=11097-8',
7
8
  {
8
- imports: ["import { Avatar } from '@ledgerhq/lumen-ui-rnative'"],
9
+ imports: [
10
+ "import { Avatar, DotIndicator, getDotIndicatorProps } from '@ledgerhq/lumen-ui-rnative'",
11
+ ],
9
12
  props: {
10
13
  appearance: figma.enum('appearance', {
11
14
  gray: 'gray',
@@ -17,19 +20,26 @@ figma.connect(
17
20
  lg: 'lg',
18
21
  xl: 'xl',
19
22
  }),
20
- showNotification: figma.boolean('show-notification', {
21
- true: true,
22
- false: false,
23
- }),
23
+ showNotification: figma.boolean('show-notification'),
24
+ },
25
+ example: (props) => {
26
+ const avatar = (
27
+ <Avatar
28
+ src='https://example-image.com'
29
+ appearance={props.appearance}
30
+ size={props.size}
31
+ alt="John Doe's Avatar"
32
+ />
33
+ );
34
+
35
+ return props.showNotification &&
36
+ (props.size === 'sm' || props.size === 'md') ? (
37
+ <DotIndicator {...getDotIndicatorProps('avatar', props.size)}>
38
+ {avatar}
39
+ </DotIndicator>
40
+ ) : (
41
+ avatar
42
+ );
24
43
  },
25
- example: (props) => (
26
- <Avatar
27
- src='https://example-image.com'
28
- appearance={props.appearance}
29
- size={props.size}
30
- alt="John Doe's Avatar"
31
- showNotification={props.showNotification}
32
- />
33
- ),
34
44
  },
35
45
  );
@@ -2,8 +2,6 @@ import { Meta, Canvas, Controls } from '@storybook/addon-docs/blocks';
2
2
  import * as AvatarStories from './Avatar.stories';
3
3
  import { Avatar } from './Avatar';
4
4
  import { CustomTabs, Tab } from '../../../../.storybook/components';
5
- import { DoVsDontRow, DoBlockItem, DontBlockItem } from '../../../../.storybook/components/DoVsDont';
6
- import CommonRulesDoAndDont from '../../../../.storybook/components/DoVsDont/CommonRulesDoAndDont.mdx';
7
5
  import { Box } from '../Utility';
8
6
 
9
7
  <Meta title='Core/Avatar' of={AvatarStories} />
@@ -60,11 +58,22 @@ The Avatar component handles two primary states automatically:
60
58
 
61
59
  ### Notification Indicator
62
60
 
63
- An optional notification indicator can be displayed to show status or alerts:
61
+ To show a status or alert dot, wrap the Avatar in a `DotIndicator` and derive the dot props from the avatar size with the `getDotIndicatorProps` helper:
64
62
 
65
- - **showNotification**: Boolean prop to toggle the notification dot (default: false)
63
+ ```tsx
64
+ import { Avatar, DotIndicator, getDotIndicatorProps } from '@ledgerhq/lumen-ui-rnative';
65
+
66
+ <DotIndicator
67
+ {...getDotIndicatorProps('avatar', 'md')}
68
+ accessibilityLabel="New notifications"
69
+ >
70
+ <Avatar src="https://example.com/photo.jpg" size="md" />
71
+ </DotIndicator>;
72
+ ```
73
+
74
+ > The notification dot is only supported on the `sm` and `md` sizes.
66
75
 
67
- > The notification dot is only rendered on the `sm` and `md` sizes. It is suppressed on `lg` and `xl` even when `showNotification` is `true`.
76
+ > When the dot conveys state to the user, pass an `accessibilityLabel` to `DotIndicator`.
68
77
 
69
78
  <Canvas of={AvatarStories.NotificationShowcase} />
70
79
 
@@ -116,21 +125,23 @@ function MyComponent() {
116
125
 
117
126
  ### With Notification
118
127
 
119
- Display a notification indicator to show status or alerts:
128
+ Wrap the Avatar in a `DotIndicator` to show a status or alert dot, using `getDotIndicatorProps` to match the dot to the avatar size:
120
129
 
121
130
  ```tsx
122
- import { Avatar } from '@ledgerhq/lumen-ui-rnative';
131
+ import { Avatar, DotIndicator, getDotIndicatorProps } from '@ledgerhq/lumen-ui-rnative';
123
132
 
124
133
  function MyComponent() {
125
- const hasNotifications = true;
126
-
127
134
  return (
128
- <Avatar
129
- src="https://example.com/photo.jpg"
130
- showNotification={hasNotifications}
131
- size="md"
132
- alt="User profile"
133
- />
135
+ <DotIndicator
136
+ {...getDotIndicatorProps('avatar', 'md')}
137
+ accessibilityLabel="New notifications"
138
+ >
139
+ <Avatar
140
+ src="https://example.com/photo.jpg"
141
+ size="md"
142
+ alt="User profile"
143
+ />
144
+ </DotIndicator>
134
145
  );
135
146
  }
136
147
  ```
@@ -159,7 +170,7 @@ function MyComponent() {
159
170
  Avatars are commonly used as interactive triggers for navigation or actions. Wrap the Avatar in a `Pressable` component:
160
171
 
161
172
  ```tsx
162
- import { Avatar } from '@ledgerhq/lumen-ui-rnative';
173
+ import { Avatar, DotIndicator, getDotIndicatorProps } from '@ledgerhq/lumen-ui-rnative';
163
174
  import { Pressable, Linking } from 'react-native';
164
175
 
165
176
  function UserProfile() {
@@ -177,12 +188,12 @@ function UserProfile() {
177
188
  backgroundColor: pressed ? 'rgba(0, 0, 0, 0.05)' : 'transparent',
178
189
  })}
179
190
  >
180
- <Avatar
181
- src="https://example.com/photo.jpg"
182
- size="md"
183
- alt="User menu"
184
- showNotification
185
- />
191
+ <DotIndicator
192
+ {...getDotIndicatorProps('avatar', 'md')}
193
+ accessibilityLabel="New notifications"
194
+ >
195
+ <Avatar src="https://example.com/photo.jpg" size="md" alt="User menu" />
196
+ </DotIndicator>
186
197
  </Pressable>
187
198
  );
188
199
  }
@@ -193,6 +204,7 @@ function UserProfile() {
193
204
  - Use `borderRadius: 9999` to maintain circular touch area
194
205
  - Add opacity changes for visual feedback on press
195
206
  - Provide appropriate `alt` text for accessibility
207
+ - Pass an `accessibilityLabel` to `DotIndicator` so the notification state is announced by screen readers
196
208
 
197
209
  ### Custom Styling
198
210
 
@@ -221,7 +233,7 @@ You can also use the `style` prop for escape-hatch styling when needed:
221
233
  Here's a comprehensive example showing all Avatar features in a user profile context:
222
234
 
223
235
  ```tsx
224
- import { Avatar, Box, Text } from '@ledgerhq/lumen-ui-rnative';
236
+ import { Avatar, Box, Text, DotIndicator, getDotIndicatorProps } from '@ledgerhq/lumen-ui-rnative';
225
237
  import { Pressable } from 'react-native';
226
238
  import { useState } from 'react';
227
239
 
@@ -237,6 +249,14 @@ function UserProfileHeader() {
237
249
  // Navigate to profile or show menu
238
250
  };
239
251
 
252
+ const avatar = (
253
+ <Avatar
254
+ src={user.avatar}
255
+ size="md"
256
+ alt={`${user.name} profile picture`}
257
+ />
258
+ );
259
+
240
260
  return (
241
261
  <Box lx={{ flexDirection: 'row', alignItems: 'center', gap: 's12', padding: 's16' }}>
242
262
  <Pressable
@@ -247,12 +267,16 @@ function UserProfileHeader() {
247
267
  backgroundColor: pressed ? 'rgba(0, 0, 0, 0.05)' : 'transparent',
248
268
  })}
249
269
  >
250
- <Avatar
251
- src={user.avatar}
252
- size="md"
253
- showNotification={user.hasNotifications}
254
- alt={`${user.name} profile picture`}
255
- />
270
+ {user.hasNotifications ? (
271
+ <DotIndicator
272
+ {...getDotIndicatorProps('avatar', 'md')}
273
+ accessibilityLabel="You have new notifications"
274
+ >
275
+ {avatar}
276
+ </DotIndicator>
277
+ ) : (
278
+ avatar
279
+ )}
256
280
  </Pressable>
257
281
  <Box lx={{ flexDirection: 'column' }}>
258
282
  <Text>{user.name}</Text>
@@ -267,46 +291,6 @@ function UserProfileHeader() {
267
291
  }
268
292
  ```
269
293
 
270
- ## Do's and Don'ts
271
-
272
- The following guidelines ensure consistent usage of the Avatar component and maintain design system principles.
273
-
274
- <Box lx={{ flexDirection: 'column', gap: 's24' }}>
275
- <DoVsDontRow>
276
- <DoBlockItem
277
- title='Provide descriptive alt text'
278
- description='Use meaningful alt text for better accessibility and screen reader support'
279
- >
280
-
281
- {/* prettier-ignore */}
282
- ```tsx
283
- <Avatar
284
- src="https://example.com/photo.jpg"
285
- alt="John Doe profile picture"
286
- size="md"
287
- />
288
- ```
289
-
290
- </DoBlockItem>
291
- <DontBlockItem
292
- title="Don't omit alt text"
293
- description='Missing alt text reduces accessibility for screen reader users'
294
- >
295
-
296
- {/* prettier-ignore */}
297
- ```tsx
298
- <Avatar
299
- src="https://example.com/photo.jpg"
300
- size="md"
301
- />
302
- ```
303
-
304
- </DontBlockItem>
305
-
306
- </DoVsDontRow>
307
-
308
- <CommonRulesDoAndDont />
309
- </Box>
310
294
 
311
295
  ## Platform Considerations
312
296
 
@@ -1,6 +1,7 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react-native-web-vite';
2
2
  import { View, Text, Pressable, Linking } from 'react-native';
3
3
 
4
+ import { DotIndicator, getDotIndicatorProps } from '../DotIndicator';
4
5
  import { Box } from '../Utility';
5
6
  import { Avatar } from './Avatar';
6
7
 
@@ -30,13 +31,12 @@ export const Base: Story = {
30
31
  src: exampleSrc,
31
32
  alt: 'avatar',
32
33
  size: 'md',
33
- showNotification: false,
34
34
  },
35
35
  render: (args) => <Avatar {...args} />,
36
36
  parameters: {
37
37
  docs: {
38
38
  source: {
39
- code: `<Avatar src="https://example.com" size="md" alt="avatar" showNotification={false} />`,
39
+ code: `<Avatar src="https://example.com" size="md" alt="avatar" />`,
40
40
  },
41
41
  },
42
42
  },
@@ -52,39 +52,19 @@ export const SizeShowcase: Story = {
52
52
  }}
53
53
  >
54
54
  <View style={{ alignItems: 'center', justifyContent: 'flex-end' }}>
55
- <Avatar
56
- src={exampleSrc}
57
- alt='avatar'
58
- size='sm'
59
- showNotification={false}
60
- />
55
+ <Avatar src={exampleSrc} alt='avatar' size='sm' />
61
56
  <Text style={{ marginTop: 4 }}>sm</Text>
62
57
  </View>
63
58
  <View style={{ alignItems: 'center', justifyContent: 'flex-end' }}>
64
- <Avatar
65
- src={exampleSrc}
66
- alt='avatar'
67
- size='md'
68
- showNotification={false}
69
- />
59
+ <Avatar src={exampleSrc} alt='avatar' size='md' />
70
60
  <Text style={{ marginTop: 4 }}>md</Text>
71
61
  </View>
72
62
  <View style={{ alignItems: 'center', justifyContent: 'flex-end' }}>
73
- <Avatar
74
- src={exampleSrc}
75
- alt='avatar'
76
- size='lg'
77
- showNotification={false}
78
- />
63
+ <Avatar src={exampleSrc} alt='avatar' size='lg' />
79
64
  <Text style={{ marginTop: 4 }}>lg</Text>
80
65
  </View>
81
66
  <View style={{ alignItems: 'center', justifyContent: 'flex-end' }}>
82
- <Avatar
83
- src={exampleSrc}
84
- alt='avatar'
85
- size='xl'
86
- showNotification={false}
87
- />
67
+ <Avatar src={exampleSrc} alt='avatar' size='xl' />
88
68
  <Text style={{ marginTop: 4 }}>xl</Text>
89
69
  </View>
90
70
  </Box>
@@ -95,18 +75,8 @@ const AppearanceShowcaseRender = () => {
95
75
  return (
96
76
  <Box lx={{ gap: 's8' }}>
97
77
  <Box lx={{ flexDirection: 'row', gap: 's16', padding: 's8' }}>
98
- <Avatar
99
- alt='gray fallback'
100
- size='md'
101
- appearance='gray'
102
- showNotification={false}
103
- />
104
- <Avatar
105
- alt='transparent fallback'
106
- size='md'
107
- appearance='transparent'
108
- showNotification={false}
109
- />
78
+ <Avatar alt='gray fallback' size='md' appearance='gray' />
79
+ <Avatar alt='transparent fallback' size='md' appearance='transparent' />
110
80
  </Box>
111
81
  <Box lx={{ flexDirection: 'row', gap: 's16', padding: 's8' }}>
112
82
  <Avatar
@@ -114,14 +84,12 @@ const AppearanceShowcaseRender = () => {
114
84
  alt='gray with image'
115
85
  size='md'
116
86
  appearance='gray'
117
- showNotification={false}
118
87
  />
119
88
  <Avatar
120
89
  src={exampleSrc}
121
90
  alt='transparent with image'
122
91
  size='md'
123
92
  appearance='transparent'
124
- showNotification={false}
125
93
  />
126
94
  </Box>
127
95
  </Box>
@@ -137,13 +105,12 @@ export const FallbackShowcase: Story = {
137
105
  src: 'https://brokenLink.random',
138
106
  size: 'md',
139
107
  alt: 'Fallback example',
140
- showNotification: false,
141
108
  },
142
109
  render: (args) => <Avatar {...args} />,
143
110
  parameters: {
144
111
  docs: {
145
112
  source: {
146
- code: `<Avatar src="https://brokenLink.random" size="md" alt="Fallback example" showNotification={false} />`,
113
+ code: `<Avatar src="https://brokenLink.random" size="md" alt="Fallback example" />`,
147
114
  },
148
115
  },
149
116
  },
@@ -157,13 +124,10 @@ export const NotificationShowcase: Story = {
157
124
  gap: 's16',
158
125
  }}
159
126
  >
160
- <Avatar
161
- src={exampleSrc}
162
- alt='avatar'
163
- size='md'
164
- showNotification={false}
165
- />
166
- <Avatar src={exampleSrc} alt='avatar' size='md' showNotification={true} />
127
+ <Avatar src={exampleSrc} alt='avatar' size='md' />
128
+ <DotIndicator {...getDotIndicatorProps('avatar', 'md')}>
129
+ <Avatar src={exampleSrc} alt='avatar' size='md' />
130
+ </DotIndicator>
167
131
  </Box>
168
132
  ),
169
133
  };
@@ -181,7 +145,9 @@ export const InteractiveShowcase: Story = {
181
145
  backgroundColor: pressed ? 'rgba(0, 0, 0, 0.05)' : 'transparent',
182
146
  })}
183
147
  >
184
- <Avatar src={exampleSrc} size='md' showNotification />
148
+ <DotIndicator {...getDotIndicatorProps('avatar', 'md')}>
149
+ <Avatar src={exampleSrc} size='md' />
150
+ </DotIndicator>
185
151
  </Pressable>
186
152
  ),
187
153
  };
@@ -1,6 +1,7 @@
1
1
  import { describe, it, expect } from '@jest/globals';
2
2
  import { ledgerLiveThemes } from '@ledgerhq/lumen-design-core';
3
3
  import { render, waitFor } from '@testing-library/react-native';
4
+ import { DotIndicator, getDotIndicatorProps } from '../DotIndicator';
4
5
  import { ThemeProvider } from '../ThemeProvider/ThemeProvider';
5
6
  import { Avatar } from './Avatar';
6
7
 
@@ -182,10 +183,12 @@ describe('Avatar Component', () => {
182
183
  });
183
184
  });
184
185
 
185
- it('should show notification indicator when showNotification is true', () => {
186
+ it('should render a notification indicator when wrapped in DotIndicator', () => {
186
187
  const { getByTestId, toJSON } = render(
187
188
  <TestWrapper>
188
- <Avatar testID='avatar-id' showNotification />
189
+ <DotIndicator {...getDotIndicatorProps('avatar', 'md')}>
190
+ <Avatar testID='avatar-id' size='md' />
191
+ </DotIndicator>
189
192
  </TestWrapper>,
190
193
  );
191
194
 
@@ -196,21 +199,12 @@ describe('Avatar Component', () => {
196
199
  expect(getByTestId('avatar-id')).toBeTruthy();
197
200
  });
198
201
 
199
- it('should not show notification indicator by default', () => {
200
- const { toJSON } = render(
201
- <TestWrapper>
202
- <Avatar testID='avatar-id' />
203
- </TestWrapper>,
204
- );
205
-
206
- const tree = toJSON();
207
- expect(tree.props.testID).toBe('avatar-id');
208
- });
209
-
210
- it('should apply correct notification indicator size based on avatar size', () => {
202
+ it('should style the notification indicator based on the avatar size', () => {
211
203
  const { toJSON, rerender } = render(
212
204
  <TestWrapper>
213
- <Avatar testID='avatar-id' size='sm' showNotification />
205
+ <DotIndicator {...getDotIndicatorProps('avatar', 'sm')}>
206
+ <Avatar testID='avatar-id' size='sm' />
207
+ </DotIndicator>
214
208
  </TestWrapper>,
215
209
  );
216
210
 
@@ -219,7 +213,9 @@ describe('Avatar Component', () => {
219
213
 
220
214
  rerender(
221
215
  <TestWrapper>
222
- <Avatar testID='avatar-id' size='md' showNotification />
216
+ <DotIndicator {...getDotIndicatorProps('avatar', 'md')}>
217
+ <Avatar testID='avatar-id' size='md' />
218
+ </DotIndicator>
223
219
  </TestWrapper>,
224
220
  );
225
221
 
@@ -227,22 +223,6 @@ describe('Avatar Component', () => {
227
223
  expect(dot.props.style.height).toBe(sizes.s12);
228
224
  });
229
225
 
230
- it.each(['lg', 'xl'] as const)(
231
- 'should not render the notification indicator on size=%s even when showNotification is true',
232
- (size) => {
233
- const { toJSON } = render(
234
- <TestWrapper>
235
- <Avatar testID='avatar-id' size={size} showNotification />
236
- </TestWrapper>,
237
- );
238
-
239
- const tree = toJSON();
240
- expect(tree.props.testID).toBe('avatar-id');
241
- expect(tree.props.accessibilityRole).toBe('image');
242
- expect(tree.props.accessibilityLabel).toBe('avatar');
243
- },
244
- );
245
-
246
226
  it('should apply custom styles', () => {
247
227
  const customStyle = { borderWidth: 2 };
248
228
  const { getByTestId } = render(
@@ -1,9 +1,8 @@
1
- import { useState, useEffect } from 'react';
2
- import { StyleSheet, Image } from 'react-native';
1
+ import { useEffect, useState } from 'react';
2
+ import { Image, StyleSheet } from 'react-native';
3
3
  import { useCommonTranslation } from '../../../i18n';
4
4
  import { useStyleSheet } from '../../../styles';
5
5
  import { User } from '../../Symbols';
6
- import { DotIndicator } from '../DotIndicator';
7
6
  import { Box } from '../Utility';
8
7
  import type { AvatarProps } from './types';
9
8
 
@@ -17,13 +16,6 @@ const fallbackSizes = {
17
16
  xl: 40,
18
17
  } as const;
19
18
 
20
- const dotSizeMap: Partial<
21
- Record<Size, NonNullable<React.ComponentProps<typeof DotIndicator>['size']>>
22
- > = {
23
- sm: 'lg',
24
- md: 'xl',
25
- };
26
-
27
19
  const useStyles = ({
28
20
  appearance,
29
21
  size,
@@ -80,9 +72,6 @@ const useStyles = ({
80
72
  * import { Avatar } from '@ledgerhq/lumen-ui-rnative';
81
73
  *
82
74
  * <Avatar src="https://example.com/photo.jpg" size="md" />
83
- *
84
- * // With notification indicator
85
- * <Avatar src="https://example.com/photo.jpg" showNotification />
86
75
  */
87
76
  export const Avatar = ({
88
77
  lx,
@@ -91,8 +80,6 @@ export const Avatar = ({
91
80
  alt = 'avatar',
92
81
  appearance = 'transparent',
93
82
  size = 'md',
94
- showNotification: showNotificationProp = false,
95
- testID,
96
83
  ref,
97
84
  ...props
98
85
  }: AvatarProps) => {
@@ -101,15 +88,7 @@ export const Avatar = ({
101
88
  const shouldFallback = !src || error;
102
89
  const styles = useStyles({ appearance, size });
103
90
 
104
- const resolvedAlt = alt || t('components.avatar.defaultAlt');
105
-
106
- // dot indicator is not visible on larger sizes, regardless of the `showNotification` prop
107
- const showNotification =
108
- showNotificationProp && (size === 'sm' || size === 'md');
109
-
110
- const accessibilityLabel = showNotification
111
- ? `${resolvedAlt}, ${t('components.avatar.notificationAriaLabel')}`
112
- : resolvedAlt;
91
+ const resolvedAlt = alt || t('components.avatar.defaultAriaLabel');
113
92
 
114
93
  useEffect(() => {
115
94
  setError(false);
@@ -121,8 +100,7 @@ export const Avatar = ({
121
100
  lx={lx}
122
101
  style={StyleSheet.flatten([styles.root, style])}
123
102
  accessibilityRole='image'
124
- accessibilityLabel={accessibilityLabel}
125
- testID={showNotification ? undefined : testID}
103
+ accessibilityLabel={resolvedAlt}
126
104
  {...props}
127
105
  >
128
106
  {shouldFallback ? (
@@ -143,13 +121,5 @@ export const Avatar = ({
143
121
  </Box>
144
122
  );
145
123
 
146
- if (showNotification) {
147
- return (
148
- <DotIndicator size={dotSizeMap[size]} appearance='red' testID={testID}>
149
- {avatarContent}
150
- </DotIndicator>
151
- );
152
- }
153
-
154
124
  return avatarContent;
155
125
  };
@@ -23,10 +23,4 @@ export type AvatarProps = {
23
23
  * @default md
24
24
  */
25
25
  size?: 'sm' | 'md' | 'lg' | 'xl';
26
- /**
27
- * Whether to show the notifications indicator.
28
- * @optional
29
- * @default false
30
- */
31
- showNotification?: boolean;
32
26
  } & Omit<StyledViewProps, 'children'>;