@ledgerhq/lumen-ui-rnative 0.1.23 → 0.1.25

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 (491) hide show
  1. package/dist/module/i18n/I18nProvider.js.map +1 -1
  2. package/dist/module/i18n/i18n.js.map +1 -1
  3. package/dist/module/lib/Components/AmountDisplay/AmountDisplay.js.map +1 -1
  4. package/dist/module/lib/Components/BaseInput/BaseInput.js +1 -1
  5. package/dist/module/lib/Components/BaseInput/BaseInput.js.map +1 -1
  6. package/dist/module/lib/Components/BottomSheet/BottomSheet.js.map +1 -1
  7. package/dist/module/lib/Components/BottomSheet/BottomSheet.test.js.map +1 -1
  8. package/dist/module/lib/Components/Card/Card.js +1 -1
  9. package/dist/module/lib/Components/Card/Card.js.map +1 -1
  10. package/dist/module/lib/Components/Checkbox/BaseCheckbox.js.map +1 -1
  11. package/dist/module/lib/Components/DotIcon/DotIcon.js +134 -0
  12. package/dist/module/lib/Components/DotIcon/DotIcon.js.map +1 -0
  13. package/dist/module/lib/Components/DotIcon/DotIcon.mdx +56 -0
  14. package/dist/module/lib/Components/DotIcon/DotIcon.stories.js +217 -0
  15. package/dist/module/lib/Components/DotIcon/DotIcon.stories.js.map +1 -0
  16. package/dist/module/lib/Components/DotIcon/DotIcon.test.js +238 -0
  17. package/dist/module/lib/Components/DotIcon/DotIcon.test.js.map +1 -0
  18. package/dist/module/lib/Components/DotIcon/index.js +5 -0
  19. package/dist/module/lib/Components/DotIcon/index.js.map +1 -0
  20. package/dist/module/lib/Components/DotIcon/types.js +4 -0
  21. package/dist/module/lib/Components/DotIcon/types.js.map +1 -0
  22. package/dist/module/lib/Components/DotSymbol/DotSymbol.js +29 -22
  23. package/dist/module/lib/Components/DotSymbol/DotSymbol.js.map +1 -1
  24. package/dist/module/lib/Components/DotSymbol/DotSymbol.stories.js +31 -9
  25. package/dist/module/lib/Components/DotSymbol/DotSymbol.stories.js.map +1 -1
  26. package/dist/module/lib/Components/InteractiveIcon/InteractiveIcon.js.map +1 -1
  27. package/dist/module/lib/Components/ListItem/ListItem.js.map +1 -1
  28. package/dist/module/lib/Components/MediaButton/MediaButton.test.js.map +1 -1
  29. package/dist/module/lib/Components/MediaImage/MediaImage.js +2 -1
  30. package/dist/module/lib/Components/MediaImage/MediaImage.js.map +1 -1
  31. package/dist/module/lib/Components/MediaImage/MediaImage.stories.js +4 -0
  32. package/dist/module/lib/Components/MediaImage/MediaImage.stories.js.map +1 -1
  33. package/dist/module/lib/Components/NavBar/NavBar.js.map +1 -1
  34. package/dist/module/lib/Components/SegmentedControl/usePillLayout.js.map +1 -1
  35. package/dist/module/lib/Components/Select/GlobalSelectContext.js.map +1 -1
  36. package/dist/module/lib/Components/Select/Select.js.map +1 -1
  37. package/dist/module/lib/Components/Slot/Slot.js.map +1 -1
  38. package/dist/module/lib/Components/Spinner/Spinner.js +6 -1
  39. package/dist/module/lib/Components/Spinner/Spinner.js.map +1 -1
  40. package/dist/module/lib/Components/Spot/Spot.js.map +1 -1
  41. package/dist/module/lib/Components/TabBar/TabBar.js +4 -4
  42. package/dist/module/lib/Components/TabBar/TabBar.js.map +1 -1
  43. package/dist/module/lib/Components/Tag/Tag.js +2 -0
  44. package/dist/module/lib/Components/Tag/Tag.js.map +1 -1
  45. package/dist/module/lib/Components/Tag/Tag.stories.js +8 -1
  46. package/dist/module/lib/Components/Tag/Tag.stories.js.map +1 -1
  47. package/dist/module/lib/Components/Tooltip/GlobalTooltipContext.js.map +1 -1
  48. package/dist/module/lib/Components/Tooltip/Tooltip.js.map +1 -1
  49. package/dist/module/lib/Components/Utility/Gradient/LinearGradient/LinearGradient.test.js.map +1 -1
  50. package/dist/module/lib/Components/Utility/Gradient/RadialGradient/RadialGradient.test.js.map +1 -1
  51. package/dist/module/lib/Components/Utility/Pressable/Pressable.test.js.map +1 -1
  52. package/dist/module/lib/Components/index.js +1 -0
  53. package/dist/module/lib/Components/index.js.map +1 -1
  54. package/dist/module/lib/utils/components/InjectStylesIntoChildren.js.map +1 -1
  55. package/dist/module/lib/utils/constants/constants.js.map +1 -1
  56. package/dist/module/lib/utils/react/extractTextFromChildren.js.map +1 -1
  57. package/dist/module/lib/utils/useControllableState/useControllableState.js.map +1 -1
  58. package/dist/module/styles/hooks/useStyleSheet.js.map +1 -1
  59. package/dist/module/styles/hooks/useStyleSheet.test.js.map +1 -1
  60. package/dist/module/styles/lx/createStyledPressable.test.js.map +1 -1
  61. package/dist/module/styles/lx/createStyledText.test.js.map +1 -1
  62. package/dist/module/styles/lx/createStyledView.js.map +1 -1
  63. package/dist/module/styles/lx/createStyledView.test.js.map +1 -1
  64. package/dist/module/styles/provider/LumenStyleSheetProvider.js.map +1 -1
  65. package/dist/module/styles/provider/LumenStyleSheetProvider.test.js.map +1 -1
  66. package/dist/module/utils/icon-template.js +0 -1
  67. package/dist/module/utils/icon-template.js.map +1 -1
  68. package/dist/typescript/src/i18n/I18nProvider.d.ts +1 -1
  69. package/dist/typescript/src/i18n/I18nProvider.d.ts.map +1 -1
  70. package/dist/typescript/src/i18n/i18n.d.ts +1 -1
  71. package/dist/typescript/src/i18n/i18n.d.ts.map +1 -1
  72. package/dist/typescript/src/lib/Animations/Pulse/Pulse.d.ts +1 -1
  73. package/dist/typescript/src/lib/Animations/Pulse/Pulse.d.ts.map +1 -1
  74. package/dist/typescript/src/lib/Animations/Pulse/types.d.ts +2 -2
  75. package/dist/typescript/src/lib/Animations/Pulse/types.d.ts.map +1 -1
  76. package/dist/typescript/src/lib/Animations/Spin/Spin.d.ts +1 -1
  77. package/dist/typescript/src/lib/Animations/Spin/Spin.d.ts.map +1 -1
  78. package/dist/typescript/src/lib/Animations/Spin/types.d.ts +2 -2
  79. package/dist/typescript/src/lib/Animations/Spin/types.d.ts.map +1 -1
  80. package/dist/typescript/src/lib/Animations/types.d.ts +2 -2
  81. package/dist/typescript/src/lib/Animations/types.d.ts.map +1 -1
  82. package/dist/typescript/src/lib/Animations/useTimingConfig.d.ts +1 -1
  83. package/dist/typescript/src/lib/Animations/useTimingConfig.d.ts.map +1 -1
  84. package/dist/typescript/src/lib/Components/AddressInput/types.d.ts +2 -2
  85. package/dist/typescript/src/lib/Components/AddressInput/types.d.ts.map +1 -1
  86. package/dist/typescript/src/lib/Components/AmountDisplay/AmountDisplay.d.ts +1 -1
  87. package/dist/typescript/src/lib/Components/AmountDisplay/AmountDisplay.d.ts.map +1 -1
  88. package/dist/typescript/src/lib/Components/AmountDisplay/types.d.ts +2 -2
  89. package/dist/typescript/src/lib/Components/AmountDisplay/types.d.ts.map +1 -1
  90. package/dist/typescript/src/lib/Components/AmountInput/types.d.ts +2 -2
  91. package/dist/typescript/src/lib/Components/AmountInput/types.d.ts.map +1 -1
  92. package/dist/typescript/src/lib/Components/Avatar/Avatar.d.ts +1 -1
  93. package/dist/typescript/src/lib/Components/Avatar/Avatar.d.ts.map +1 -1
  94. package/dist/typescript/src/lib/Components/Avatar/types.d.ts +1 -1
  95. package/dist/typescript/src/lib/Components/Avatar/types.d.ts.map +1 -1
  96. package/dist/typescript/src/lib/Components/Banner/Banner.d.ts +1 -1
  97. package/dist/typescript/src/lib/Components/Banner/Banner.d.ts.map +1 -1
  98. package/dist/typescript/src/lib/Components/Banner/types.d.ts +2 -2
  99. package/dist/typescript/src/lib/Components/Banner/types.d.ts.map +1 -1
  100. package/dist/typescript/src/lib/Components/BaseInput/BaseInput.d.ts.map +1 -1
  101. package/dist/typescript/src/lib/Components/BaseInput/types.d.ts +2 -2
  102. package/dist/typescript/src/lib/Components/BaseInput/types.d.ts.map +1 -1
  103. package/dist/typescript/src/lib/Components/BottomSheet/BottomSheet.d.ts +1 -1
  104. package/dist/typescript/src/lib/Components/BottomSheet/BottomSheet.d.ts.map +1 -1
  105. package/dist/typescript/src/lib/Components/BottomSheet/BottomSheetHeader.d.ts +1 -1
  106. package/dist/typescript/src/lib/Components/BottomSheet/BottomSheetHeader.d.ts.map +1 -1
  107. package/dist/typescript/src/lib/Components/BottomSheet/CustomBackdrop.d.ts +1 -1
  108. package/dist/typescript/src/lib/Components/BottomSheet/CustomBackdrop.d.ts.map +1 -1
  109. package/dist/typescript/src/lib/Components/BottomSheet/CustomHandle.d.ts +2 -2
  110. package/dist/typescript/src/lib/Components/BottomSheet/CustomHandle.d.ts.map +1 -1
  111. package/dist/typescript/src/lib/Components/BottomSheet/Scrollables.d.ts +1 -1
  112. package/dist/typescript/src/lib/Components/BottomSheet/Scrollables.d.ts.map +1 -1
  113. package/dist/typescript/src/lib/Components/BottomSheet/types.d.ts +4 -4
  114. package/dist/typescript/src/lib/Components/BottomSheet/types.d.ts.map +1 -1
  115. package/dist/typescript/src/lib/Components/BottomSheet/useBottomSheetRef.d.ts +1 -1
  116. package/dist/typescript/src/lib/Components/BottomSheet/useBottomSheetRef.d.ts.map +1 -1
  117. package/dist/typescript/src/lib/Components/Button/BaseButton.d.ts +1 -1
  118. package/dist/typescript/src/lib/Components/Button/BaseButton.d.ts.map +1 -1
  119. package/dist/typescript/src/lib/Components/Button/Button.d.ts +1 -1
  120. package/dist/typescript/src/lib/Components/Button/Button.d.ts.map +1 -1
  121. package/dist/typescript/src/lib/Components/Button/types.d.ts +4 -4
  122. package/dist/typescript/src/lib/Components/Button/types.d.ts.map +1 -1
  123. package/dist/typescript/src/lib/Components/Card/Card.d.ts +2 -2
  124. package/dist/typescript/src/lib/Components/Card/Card.d.ts.map +1 -1
  125. package/dist/typescript/src/lib/Components/Card/types.d.ts +3 -3
  126. package/dist/typescript/src/lib/Components/Card/types.d.ts.map +1 -1
  127. package/dist/typescript/src/lib/Components/CardButton/CardButton.d.ts +1 -1
  128. package/dist/typescript/src/lib/Components/CardButton/CardButton.d.ts.map +1 -1
  129. package/dist/typescript/src/lib/Components/CardButton/types.d.ts +3 -3
  130. package/dist/typescript/src/lib/Components/CardButton/types.d.ts.map +1 -1
  131. package/dist/typescript/src/lib/Components/Checkbox/BaseCheckbox.d.ts +2 -2
  132. package/dist/typescript/src/lib/Components/Checkbox/BaseCheckbox.d.ts.map +1 -1
  133. package/dist/typescript/src/lib/Components/Checkbox/Checkbox.d.ts +1 -1
  134. package/dist/typescript/src/lib/Components/Checkbox/Checkbox.d.ts.map +1 -1
  135. package/dist/typescript/src/lib/Components/Checkbox/types.d.ts +1 -1
  136. package/dist/typescript/src/lib/Components/Checkbox/types.d.ts.map +1 -1
  137. package/dist/typescript/src/lib/Components/ContentBanner/ContentBanner.d.ts +1 -1
  138. package/dist/typescript/src/lib/Components/ContentBanner/ContentBanner.d.ts.map +1 -1
  139. package/dist/typescript/src/lib/Components/ContentBanner/types.d.ts +1 -1
  140. package/dist/typescript/src/lib/Components/ContentBanner/types.d.ts.map +1 -1
  141. package/dist/typescript/src/lib/Components/Divider/Divider.d.ts +1 -1
  142. package/dist/typescript/src/lib/Components/Divider/Divider.d.ts.map +1 -1
  143. package/dist/typescript/src/lib/Components/Divider/types.d.ts +1 -1
  144. package/dist/typescript/src/lib/Components/Divider/types.d.ts.map +1 -1
  145. package/dist/typescript/src/lib/Components/DotIcon/DotIcon.d.ts +30 -0
  146. package/dist/typescript/src/lib/Components/DotIcon/DotIcon.d.ts.map +1 -0
  147. package/dist/typescript/src/lib/Components/DotIcon/index.d.ts +3 -0
  148. package/dist/typescript/src/lib/Components/DotIcon/index.d.ts.map +1 -0
  149. package/dist/typescript/src/lib/Components/DotIcon/types.d.ts +40 -0
  150. package/dist/typescript/src/lib/Components/DotIcon/types.d.ts.map +1 -0
  151. package/dist/typescript/src/lib/Components/DotSymbol/DotSymbol.d.ts +3 -3
  152. package/dist/typescript/src/lib/Components/DotSymbol/DotSymbol.d.ts.map +1 -1
  153. package/dist/typescript/src/lib/Components/DotSymbol/types.d.ts +1 -1
  154. package/dist/typescript/src/lib/Components/DotSymbol/types.d.ts.map +1 -1
  155. package/dist/typescript/src/lib/Components/Icon/Icon.d.ts +1 -1
  156. package/dist/typescript/src/lib/Components/Icon/Icon.d.ts.map +1 -1
  157. package/dist/typescript/src/lib/Components/Icon/createIcon.d.ts +2 -2
  158. package/dist/typescript/src/lib/Components/Icon/createIcon.d.ts.map +1 -1
  159. package/dist/typescript/src/lib/Components/Icon/types.d.ts +4 -4
  160. package/dist/typescript/src/lib/Components/Icon/types.d.ts.map +1 -1
  161. package/dist/typescript/src/lib/Components/IconButton/IconButton.d.ts +1 -1
  162. package/dist/typescript/src/lib/Components/IconButton/IconButton.d.ts.map +1 -1
  163. package/dist/typescript/src/lib/Components/IconButton/types.d.ts +1 -1
  164. package/dist/typescript/src/lib/Components/IconButton/types.d.ts.map +1 -1
  165. package/dist/typescript/src/lib/Components/InteractiveIcon/InteractiveIcon.d.ts +1 -1
  166. package/dist/typescript/src/lib/Components/InteractiveIcon/InteractiveIcon.d.ts.map +1 -1
  167. package/dist/typescript/src/lib/Components/InteractiveIcon/types.d.ts +4 -4
  168. package/dist/typescript/src/lib/Components/InteractiveIcon/types.d.ts.map +1 -1
  169. package/dist/typescript/src/lib/Components/Label/Label.d.ts +1 -1
  170. package/dist/typescript/src/lib/Components/Label/Label.d.ts.map +1 -1
  171. package/dist/typescript/src/lib/Components/Label/types.d.ts +1 -1
  172. package/dist/typescript/src/lib/Components/Label/types.d.ts.map +1 -1
  173. package/dist/typescript/src/lib/Components/Link/Link.d.ts +1 -1
  174. package/dist/typescript/src/lib/Components/Link/Link.d.ts.map +1 -1
  175. package/dist/typescript/src/lib/Components/Link/types.d.ts +4 -4
  176. package/dist/typescript/src/lib/Components/Link/types.d.ts.map +1 -1
  177. package/dist/typescript/src/lib/Components/ListItem/ListItem.d.ts +2 -2
  178. package/dist/typescript/src/lib/Components/ListItem/ListItem.d.ts.map +1 -1
  179. package/dist/typescript/src/lib/Components/ListItem/types.d.ts +1 -1
  180. package/dist/typescript/src/lib/Components/ListItem/types.d.ts.map +1 -1
  181. package/dist/typescript/src/lib/Components/MediaBanner/MediaBanner.d.ts +1 -1
  182. package/dist/typescript/src/lib/Components/MediaBanner/MediaBanner.d.ts.map +1 -1
  183. package/dist/typescript/src/lib/Components/MediaBanner/types.d.ts +2 -2
  184. package/dist/typescript/src/lib/Components/MediaBanner/types.d.ts.map +1 -1
  185. package/dist/typescript/src/lib/Components/MediaButton/types.d.ts +2 -2
  186. package/dist/typescript/src/lib/Components/MediaButton/types.d.ts.map +1 -1
  187. package/dist/typescript/src/lib/Components/MediaCard/MediaCard.d.ts +1 -1
  188. package/dist/typescript/src/lib/Components/MediaCard/MediaCard.d.ts.map +1 -1
  189. package/dist/typescript/src/lib/Components/MediaCard/types.d.ts +1 -1
  190. package/dist/typescript/src/lib/Components/MediaCard/types.d.ts.map +1 -1
  191. package/dist/typescript/src/lib/Components/MediaImage/MediaImage.d.ts +1 -1
  192. package/dist/typescript/src/lib/Components/MediaImage/MediaImage.d.ts.map +1 -1
  193. package/dist/typescript/src/lib/Components/MediaImage/types.d.ts +2 -2
  194. package/dist/typescript/src/lib/Components/MediaImage/types.d.ts.map +1 -1
  195. package/dist/typescript/src/lib/Components/NavBar/CoinCapsule.d.ts +1 -1
  196. package/dist/typescript/src/lib/Components/NavBar/CoinCapsule.d.ts.map +1 -1
  197. package/dist/typescript/src/lib/Components/NavBar/NavBar.d.ts +1 -1
  198. package/dist/typescript/src/lib/Components/NavBar/NavBar.d.ts.map +1 -1
  199. package/dist/typescript/src/lib/Components/NavBar/types.d.ts +4 -4
  200. package/dist/typescript/src/lib/Components/NavBar/types.d.ts.map +1 -1
  201. package/dist/typescript/src/lib/Components/OptionList/types.d.ts +2 -2
  202. package/dist/typescript/src/lib/Components/OptionList/types.d.ts.map +1 -1
  203. package/dist/typescript/src/lib/Components/PageIndicator/PageIndicator.d.ts +1 -1
  204. package/dist/typescript/src/lib/Components/PageIndicator/PageIndicator.d.ts.map +1 -1
  205. package/dist/typescript/src/lib/Components/PageIndicator/types.d.ts +1 -1
  206. package/dist/typescript/src/lib/Components/PageIndicator/types.d.ts.map +1 -1
  207. package/dist/typescript/src/lib/Components/SearchInput/types.d.ts +2 -2
  208. package/dist/typescript/src/lib/Components/SearchInput/types.d.ts.map +1 -1
  209. package/dist/typescript/src/lib/Components/SegmentedControl/types.d.ts +4 -4
  210. package/dist/typescript/src/lib/Components/SegmentedControl/types.d.ts.map +1 -1
  211. package/dist/typescript/src/lib/Components/SegmentedControl/usePillLayout.d.ts +3 -2
  212. package/dist/typescript/src/lib/Components/SegmentedControl/usePillLayout.d.ts.map +1 -1
  213. package/dist/typescript/src/lib/Components/Select/GlobalSelectContext.d.ts +2 -2
  214. package/dist/typescript/src/lib/Components/Select/GlobalSelectContext.d.ts.map +1 -1
  215. package/dist/typescript/src/lib/Components/Select/SelectContext.d.ts +2 -2
  216. package/dist/typescript/src/lib/Components/Select/SelectContext.d.ts.map +1 -1
  217. package/dist/typescript/src/lib/Components/Select/types.d.ts +4 -4
  218. package/dist/typescript/src/lib/Components/Select/types.d.ts.map +1 -1
  219. package/dist/typescript/src/lib/Components/Skeleton/types.d.ts +1 -1
  220. package/dist/typescript/src/lib/Components/Skeleton/types.d.ts.map +1 -1
  221. package/dist/typescript/src/lib/Components/Slot/Slot.d.ts +2 -2
  222. package/dist/typescript/src/lib/Components/Slot/Slot.d.ts.map +1 -1
  223. package/dist/typescript/src/lib/Components/Spinner/Spinner.d.ts +2 -2
  224. package/dist/typescript/src/lib/Components/Spinner/Spinner.d.ts.map +1 -1
  225. package/dist/typescript/src/lib/Components/Spinner/types.d.ts +3 -3
  226. package/dist/typescript/src/lib/Components/Spinner/types.d.ts.map +1 -1
  227. package/dist/typescript/src/lib/Components/Spot/Spot.d.ts +1 -1
  228. package/dist/typescript/src/lib/Components/Spot/Spot.d.ts.map +1 -1
  229. package/dist/typescript/src/lib/Components/Spot/types.d.ts +3 -3
  230. package/dist/typescript/src/lib/Components/Spot/types.d.ts.map +1 -1
  231. package/dist/typescript/src/lib/Components/Stepper/Stepper.d.ts +1 -1
  232. package/dist/typescript/src/lib/Components/Stepper/Stepper.d.ts.map +1 -1
  233. package/dist/typescript/src/lib/Components/Stepper/types.d.ts +1 -1
  234. package/dist/typescript/src/lib/Components/Stepper/types.d.ts.map +1 -1
  235. package/dist/typescript/src/lib/Components/Subheader/Subheader.d.ts +1 -1
  236. package/dist/typescript/src/lib/Components/Subheader/Subheader.d.ts.map +1 -1
  237. package/dist/typescript/src/lib/Components/Subheader/types.d.ts +3 -3
  238. package/dist/typescript/src/lib/Components/Subheader/types.d.ts.map +1 -1
  239. package/dist/typescript/src/lib/Components/Switch/BaseSwitch.d.ts +2 -2
  240. package/dist/typescript/src/lib/Components/Switch/BaseSwitch.d.ts.map +1 -1
  241. package/dist/typescript/src/lib/Components/Switch/Switch.d.ts +1 -1
  242. package/dist/typescript/src/lib/Components/Switch/Switch.d.ts.map +1 -1
  243. package/dist/typescript/src/lib/Components/Switch/types.d.ts +1 -1
  244. package/dist/typescript/src/lib/Components/Switch/types.d.ts.map +1 -1
  245. package/dist/typescript/src/lib/Components/TabBar/TabBar.d.ts +1 -1
  246. package/dist/typescript/src/lib/Components/TabBar/TabBar.d.ts.map +1 -1
  247. package/dist/typescript/src/lib/Components/TabBar/types.d.ts +4 -4
  248. package/dist/typescript/src/lib/Components/TabBar/types.d.ts.map +1 -1
  249. package/dist/typescript/src/lib/Components/Tag/Tag.d.ts +1 -1
  250. package/dist/typescript/src/lib/Components/Tag/Tag.d.ts.map +1 -1
  251. package/dist/typescript/src/lib/Components/Tag/types.d.ts +4 -4
  252. package/dist/typescript/src/lib/Components/Tag/types.d.ts.map +1 -1
  253. package/dist/typescript/src/lib/Components/TextInput/types.d.ts +2 -2
  254. package/dist/typescript/src/lib/Components/TextInput/types.d.ts.map +1 -1
  255. package/dist/typescript/src/lib/Components/ThemeProvider/ThemeProvider.d.ts +1 -1
  256. package/dist/typescript/src/lib/Components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  257. package/dist/typescript/src/lib/Components/ThemeProvider/types.d.ts +4 -4
  258. package/dist/typescript/src/lib/Components/ThemeProvider/types.d.ts.map +1 -1
  259. package/dist/typescript/src/lib/Components/Tile/Tile.d.ts +1 -1
  260. package/dist/typescript/src/lib/Components/Tile/Tile.d.ts.map +1 -1
  261. package/dist/typescript/src/lib/Components/Tile/types.d.ts +2 -2
  262. package/dist/typescript/src/lib/Components/Tile/types.d.ts.map +1 -1
  263. package/dist/typescript/src/lib/Components/TileButton/TileButton.d.ts +1 -1
  264. package/dist/typescript/src/lib/Components/TileButton/TileButton.d.ts.map +1 -1
  265. package/dist/typescript/src/lib/Components/TileButton/types.d.ts +4 -4
  266. package/dist/typescript/src/lib/Components/TileButton/types.d.ts.map +1 -1
  267. package/dist/typescript/src/lib/Components/Tooltip/GlobalTooltipContext.d.ts +1 -1
  268. package/dist/typescript/src/lib/Components/Tooltip/GlobalTooltipContext.d.ts.map +1 -1
  269. package/dist/typescript/src/lib/Components/Tooltip/TooltipContext.d.ts +1 -1
  270. package/dist/typescript/src/lib/Components/Tooltip/TooltipContext.d.ts.map +1 -1
  271. package/dist/typescript/src/lib/Components/Tooltip/types.d.ts +2 -2
  272. package/dist/typescript/src/lib/Components/Tooltip/types.d.ts.map +1 -1
  273. package/dist/typescript/src/lib/Components/Utility/Box/types.d.ts +1 -1
  274. package/dist/typescript/src/lib/Components/Utility/Box/types.d.ts.map +1 -1
  275. package/dist/typescript/src/lib/Components/Utility/Gradient/LinearGradient/types.d.ts +3 -3
  276. package/dist/typescript/src/lib/Components/Utility/Gradient/LinearGradient/types.d.ts.map +1 -1
  277. package/dist/typescript/src/lib/Components/Utility/Gradient/RadialGradient/types.d.ts +3 -3
  278. package/dist/typescript/src/lib/Components/Utility/Gradient/RadialGradient/types.d.ts.map +1 -1
  279. package/dist/typescript/src/lib/Components/Utility/Pressable/types.d.ts +1 -1
  280. package/dist/typescript/src/lib/Components/Utility/Pressable/types.d.ts.map +1 -1
  281. package/dist/typescript/src/lib/Components/Utility/Text/types.d.ts +1 -1
  282. package/dist/typescript/src/lib/Components/Utility/Text/types.d.ts.map +1 -1
  283. package/dist/typescript/src/lib/Components/Wrap/Wrap.d.ts +1 -1
  284. package/dist/typescript/src/lib/Components/Wrap/Wrap.d.ts.map +1 -1
  285. package/dist/typescript/src/lib/Components/Wrap/types.d.ts +1 -1
  286. package/dist/typescript/src/lib/Components/Wrap/types.d.ts.map +1 -1
  287. package/dist/typescript/src/lib/Components/index.d.ts +1 -0
  288. package/dist/typescript/src/lib/Components/index.d.ts.map +1 -1
  289. package/dist/typescript/src/lib/types/index.d.ts +1 -1
  290. package/dist/typescript/src/lib/types/index.d.ts.map +1 -1
  291. package/dist/typescript/src/lib/utils/components/InjectStylesIntoChildren.d.ts +2 -2
  292. package/dist/typescript/src/lib/utils/components/InjectStylesIntoChildren.d.ts.map +1 -1
  293. package/dist/typescript/src/lib/utils/constants/constants.d.ts.map +1 -1
  294. package/dist/typescript/src/lib/utils/react/extractTextFromChildren.d.ts +1 -1
  295. package/dist/typescript/src/lib/utils/react/extractTextFromChildren.d.ts.map +1 -1
  296. package/dist/typescript/src/lib/utils/useControllableState/useControllableState.d.ts +1 -1
  297. package/dist/typescript/src/lib/utils/useControllableState/useControllableState.d.ts.map +1 -1
  298. package/dist/typescript/src/styles/hooks/useStyleSheet.d.ts +1 -1
  299. package/dist/typescript/src/styles/hooks/useStyleSheet.d.ts.map +1 -1
  300. package/dist/typescript/src/styles/lx/areLxPropsEqual.d.ts +1 -1
  301. package/dist/typescript/src/styles/lx/areLxPropsEqual.d.ts.map +1 -1
  302. package/dist/typescript/src/styles/lx/createStyledPressable.d.ts +1 -1
  303. package/dist/typescript/src/styles/lx/createStyledPressable.d.ts.map +1 -1
  304. package/dist/typescript/src/styles/lx/createStyledText.d.ts +1 -1
  305. package/dist/typescript/src/styles/lx/createStyledText.d.ts.map +1 -1
  306. package/dist/typescript/src/styles/lx/createStyledView.d.ts +1 -1
  307. package/dist/typescript/src/styles/lx/createStyledView.d.ts.map +1 -1
  308. package/dist/typescript/src/styles/lx/resolveConfig.d.ts +1 -1
  309. package/dist/typescript/src/styles/lx/resolveConfig.d.ts.map +1 -1
  310. package/dist/typescript/src/styles/provider/LumenStyleSheetProvider.d.ts +1 -1
  311. package/dist/typescript/src/styles/provider/LumenStyleSheetProvider.d.ts.map +1 -1
  312. package/dist/typescript/src/styles/provider/types.d.ts +3 -3
  313. package/dist/typescript/src/styles/provider/types.d.ts.map +1 -1
  314. package/dist/typescript/src/styles/theme/createStylesheetTheme.d.ts +1 -1
  315. package/dist/typescript/src/styles/theme/createStylesheetTheme.d.ts.map +1 -1
  316. package/dist/typescript/src/styles/theme/resolvers/resolveFontWeights.d.ts +1 -1
  317. package/dist/typescript/src/styles/theme/resolvers/resolveFontWeights.d.ts.map +1 -1
  318. package/dist/typescript/src/styles/theme/resolvers/resolveNegativeSpacing.d.ts +2 -2
  319. package/dist/typescript/src/styles/theme/resolvers/resolveNegativeSpacing.d.ts.map +1 -1
  320. package/dist/typescript/src/styles/types/factories.types.d.ts +3 -3
  321. package/dist/typescript/src/styles/types/factories.types.d.ts.map +1 -1
  322. package/dist/typescript/src/styles/types/theme.types.d.ts +2 -2
  323. package/dist/typescript/src/styles/types/theme.types.d.ts.map +1 -1
  324. package/dist/typescript/src/utils/icon-template.d.ts +1 -1
  325. package/dist/typescript/src/utils/icon-template.d.ts.map +1 -1
  326. package/package.json +2 -2
  327. package/src/i18n/I18nProvider.tsx +2 -1
  328. package/src/i18n/i18n.ts +2 -5
  329. package/src/lib/Animations/Pulse/Pulse.tsx +2 -2
  330. package/src/lib/Animations/Pulse/types.ts +2 -2
  331. package/src/lib/Animations/Spin/Spin.tsx +2 -2
  332. package/src/lib/Animations/Spin/types.ts +2 -2
  333. package/src/lib/Animations/types.ts +2 -2
  334. package/src/lib/Animations/useTimingConfig.ts +1 -1
  335. package/src/lib/Components/AddressInput/AddressInput.stories.tsx +1 -1
  336. package/src/lib/Components/AddressInput/types.ts +2 -2
  337. package/src/lib/Components/AmountDisplay/AmountDisplay.test.tsx +1 -1
  338. package/src/lib/Components/AmountDisplay/AmountDisplay.tsx +3 -3
  339. package/src/lib/Components/AmountDisplay/types.ts +2 -2
  340. package/src/lib/Components/AmountInput/types.ts +2 -2
  341. package/src/lib/Components/Avatar/Avatar.stories.tsx +1 -1
  342. package/src/lib/Components/Avatar/Avatar.tsx +1 -1
  343. package/src/lib/Components/Avatar/types.ts +1 -1
  344. package/src/lib/Components/Banner/Banner.tsx +3 -3
  345. package/src/lib/Components/Banner/types.ts +2 -2
  346. package/src/lib/Components/BaseInput/BaseInput.tsx +2 -1
  347. package/src/lib/Components/BaseInput/types.ts +5 -5
  348. package/src/lib/Components/BottomSheet/BottomSheet.test.tsx +2 -1
  349. package/src/lib/Components/BottomSheet/BottomSheet.tsx +3 -5
  350. package/src/lib/Components/BottomSheet/BottomSheetHeader.tsx +1 -1
  351. package/src/lib/Components/BottomSheet/CustomBackdrop.tsx +1 -1
  352. package/src/lib/Components/BottomSheet/CustomHandle.tsx +2 -2
  353. package/src/lib/Components/BottomSheet/Scrollables.tsx +2 -2
  354. package/src/lib/Components/BottomSheet/types.ts +4 -4
  355. package/src/lib/Components/BottomSheet/useBottomSheetRef.ts +1 -1
  356. package/src/lib/Components/Button/BaseButton.test.tsx +1 -1
  357. package/src/lib/Components/Button/BaseButton.tsx +3 -3
  358. package/src/lib/Components/Button/Button.tsx +1 -1
  359. package/src/lib/Components/Button/types.ts +4 -4
  360. package/src/lib/Components/Card/Card.test.tsx +1 -1
  361. package/src/lib/Components/Card/Card.tsx +5 -3
  362. package/src/lib/Components/Card/types.ts +3 -3
  363. package/src/lib/Components/CardButton/CardButton.tsx +1 -1
  364. package/src/lib/Components/CardButton/types.ts +3 -3
  365. package/src/lib/Components/Checkbox/BaseCheckbox.tsx +4 -8
  366. package/src/lib/Components/Checkbox/Checkbox.tsx +1 -1
  367. package/src/lib/Components/Checkbox/types.ts +1 -1
  368. package/src/lib/Components/ContentBanner/ContentBanner.tsx +1 -1
  369. package/src/lib/Components/ContentBanner/types.ts +1 -1
  370. package/src/lib/Components/Divider/Divider.tsx +1 -1
  371. package/src/lib/Components/Divider/types.ts +1 -1
  372. package/src/lib/Components/DotIcon/DotIcon.mdx +56 -0
  373. package/src/lib/Components/DotIcon/DotIcon.stories.tsx +154 -0
  374. package/src/lib/Components/DotIcon/DotIcon.test.tsx +224 -0
  375. package/src/lib/Components/DotIcon/DotIcon.tsx +146 -0
  376. package/src/lib/Components/DotIcon/index.ts +6 -0
  377. package/src/lib/Components/DotIcon/types.ts +44 -0
  378. package/src/lib/Components/DotSymbol/DotSymbol.stories.tsx +26 -7
  379. package/src/lib/Components/DotSymbol/DotSymbol.tsx +25 -26
  380. package/src/lib/Components/DotSymbol/types.ts +1 -1
  381. package/src/lib/Components/Icon/Icon.tsx +2 -2
  382. package/src/lib/Components/Icon/createIcon.ts +2 -2
  383. package/src/lib/Components/Icon/types.ts +4 -4
  384. package/src/lib/Components/IconButton/IconButton.tsx +1 -1
  385. package/src/lib/Components/IconButton/types.ts +1 -1
  386. package/src/lib/Components/InteractiveIcon/InteractiveIcon.tsx +4 -3
  387. package/src/lib/Components/InteractiveIcon/types.ts +4 -4
  388. package/src/lib/Components/Label/Label.tsx +1 -1
  389. package/src/lib/Components/Label/types.ts +1 -1
  390. package/src/lib/Components/Link/Link.test.tsx +1 -1
  391. package/src/lib/Components/Link/Link.tsx +2 -2
  392. package/src/lib/Components/Link/types.ts +4 -4
  393. package/src/lib/Components/ListItem/ListItem.test.tsx +1 -1
  394. package/src/lib/Components/ListItem/ListItem.tsx +5 -4
  395. package/src/lib/Components/ListItem/types.ts +1 -1
  396. package/src/lib/Components/MediaBanner/MediaBanner.tsx +1 -1
  397. package/src/lib/Components/MediaBanner/types.ts +2 -2
  398. package/src/lib/Components/MediaButton/MediaButton.test.tsx +2 -1
  399. package/src/lib/Components/MediaButton/MediaButton.tsx +1 -1
  400. package/src/lib/Components/MediaButton/types.ts +2 -2
  401. package/src/lib/Components/MediaCard/MediaCard.tsx +1 -1
  402. package/src/lib/Components/MediaCard/types.ts +1 -1
  403. package/src/lib/Components/MediaImage/MediaImage.stories.tsx +1 -0
  404. package/src/lib/Components/MediaImage/MediaImage.tsx +4 -2
  405. package/src/lib/Components/MediaImage/types.ts +2 -2
  406. package/src/lib/Components/NavBar/CoinCapsule.tsx +1 -1
  407. package/src/lib/Components/NavBar/NavBar.tsx +5 -3
  408. package/src/lib/Components/NavBar/types.ts +4 -4
  409. package/src/lib/Components/OptionList/types.ts +2 -2
  410. package/src/lib/Components/PageIndicator/PageIndicator.tsx +1 -1
  411. package/src/lib/Components/PageIndicator/types.ts +1 -1
  412. package/src/lib/Components/SearchInput/SearchInput.stories.tsx +1 -1
  413. package/src/lib/Components/SearchInput/types.ts +2 -2
  414. package/src/lib/Components/SegmentedControl/SegmentedControl.tsx +1 -1
  415. package/src/lib/Components/SegmentedControl/types.ts +4 -4
  416. package/src/lib/Components/SegmentedControl/usePillLayout.ts +2 -2
  417. package/src/lib/Components/Select/GlobalSelectContext.tsx +3 -2
  418. package/src/lib/Components/Select/Select.tsx +1 -1
  419. package/src/lib/Components/Select/SelectContext.tsx +2 -2
  420. package/src/lib/Components/Select/types.ts +4 -4
  421. package/src/lib/Components/Skeleton/Skeleton.stories.tsx +1 -1
  422. package/src/lib/Components/Skeleton/types.ts +1 -1
  423. package/src/lib/Components/Slot/Slot.tsx +4 -5
  424. package/src/lib/Components/Spinner/Spinner.stories.tsx +1 -1
  425. package/src/lib/Components/Spinner/Spinner.tsx +9 -4
  426. package/src/lib/Components/Spinner/types.ts +3 -3
  427. package/src/lib/Components/Spot/Spot.stories.tsx +2 -2
  428. package/src/lib/Components/Spot/Spot.tsx +6 -4
  429. package/src/lib/Components/Spot/types.ts +3 -3
  430. package/src/lib/Components/Stepper/Stepper.stories.tsx +1 -1
  431. package/src/lib/Components/Stepper/Stepper.tsx +1 -1
  432. package/src/lib/Components/Stepper/types.ts +1 -1
  433. package/src/lib/Components/Subheader/Subheader.tsx +1 -1
  434. package/src/lib/Components/Subheader/types.ts +3 -3
  435. package/src/lib/Components/Switch/BaseSwitch.tsx +2 -2
  436. package/src/lib/Components/Switch/Switch.tsx +1 -1
  437. package/src/lib/Components/Switch/types.ts +1 -1
  438. package/src/lib/Components/TabBar/TabBar.tsx +4 -9
  439. package/src/lib/Components/TabBar/types.ts +4 -4
  440. package/src/lib/Components/Tag/Tag.stories.tsx +11 -1
  441. package/src/lib/Components/Tag/Tag.tsx +4 -2
  442. package/src/lib/Components/Tag/types.ts +11 -4
  443. package/src/lib/Components/TextInput/types.ts +2 -2
  444. package/src/lib/Components/ThemeProvider/ThemeProvider.tsx +1 -1
  445. package/src/lib/Components/ThemeProvider/types.ts +4 -4
  446. package/src/lib/Components/Tile/Tile.tsx +2 -2
  447. package/src/lib/Components/Tile/types.ts +2 -2
  448. package/src/lib/Components/TileButton/TileButton.test.tsx +1 -1
  449. package/src/lib/Components/TileButton/TileButton.tsx +3 -3
  450. package/src/lib/Components/TileButton/types.ts +4 -4
  451. package/src/lib/Components/Tooltip/GlobalTooltipContext.tsx +2 -1
  452. package/src/lib/Components/Tooltip/Tooltip.tsx +1 -1
  453. package/src/lib/Components/Tooltip/TooltipContext.tsx +1 -1
  454. package/src/lib/Components/Tooltip/types.ts +2 -2
  455. package/src/lib/Components/Utility/Box/types.ts +1 -1
  456. package/src/lib/Components/Utility/Gradient/LinearGradient/LinearGradient.test.tsx +2 -1
  457. package/src/lib/Components/Utility/Gradient/LinearGradient/types.ts +3 -3
  458. package/src/lib/Components/Utility/Gradient/RadialGradient/RadialGradient.test.tsx +2 -1
  459. package/src/lib/Components/Utility/Gradient/RadialGradient/types.ts +3 -3
  460. package/src/lib/Components/Utility/Pressable/Pressable.test.tsx +2 -1
  461. package/src/lib/Components/Utility/Pressable/types.ts +1 -1
  462. package/src/lib/Components/Utility/Text/Text.stories.tsx +1 -1
  463. package/src/lib/Components/Utility/Text/types.ts +1 -1
  464. package/src/lib/Components/Wrap/Wrap.tsx +1 -1
  465. package/src/lib/Components/Wrap/types.ts +1 -1
  466. package/src/lib/Components/index.ts +1 -0
  467. package/src/lib/types/index.ts +1 -1
  468. package/src/lib/utils/components/InjectStylesIntoChildren.tsx +3 -8
  469. package/src/lib/utils/constants/constants.ts +2 -4
  470. package/src/lib/utils/react/extractTextFromChildren.ts +2 -1
  471. package/src/lib/utils/useControllableState/useControllableState.ts +2 -1
  472. package/src/styles/hooks/useStyleSheet.test.tsx +2 -1
  473. package/src/styles/hooks/useStyleSheet.ts +2 -1
  474. package/src/styles/lx/areLxPropsEqual.ts +1 -1
  475. package/src/styles/lx/createStyledPressable.test.tsx +2 -2
  476. package/src/styles/lx/createStyledPressable.tsx +1 -1
  477. package/src/styles/lx/createStyledText.test.tsx +2 -1
  478. package/src/styles/lx/createStyledText.tsx +1 -1
  479. package/src/styles/lx/createStyledView.test.tsx +2 -1
  480. package/src/styles/lx/createStyledView.tsx +2 -1
  481. package/src/styles/lx/resolveConfig.ts +1 -1
  482. package/src/styles/provider/LumenStyleSheetProvider.test.tsx +2 -1
  483. package/src/styles/provider/LumenStyleSheetProvider.tsx +2 -4
  484. package/src/styles/provider/types.ts +3 -3
  485. package/src/styles/theme/createStylesheetTheme.ts +1 -1
  486. package/src/styles/theme/resolvers/resolveFontWeights.ts +1 -1
  487. package/src/styles/theme/resolvers/resolveNegativeSpacing.test.ts +1 -1
  488. package/src/styles/theme/resolvers/resolveNegativeSpacing.ts +2 -2
  489. package/src/styles/types/factories.types.ts +3 -3
  490. package/src/styles/types/theme.types.ts +2 -2
  491. package/src/utils/icon-template.ts +1 -2
@@ -0,0 +1,224 @@
1
+ import { describe, it, expect } from '@jest/globals';
2
+ import { ledgerLiveThemes } from '@ledgerhq/lumen-design-core';
3
+ import { render } from '@testing-library/react-native';
4
+ import { createRef } from 'react';
5
+ import type { View } from 'react-native';
6
+ import { Text } from 'react-native';
7
+ import { ArrowDown } from '../../Symbols';
8
+ import { ThemeProvider } from '../ThemeProvider/ThemeProvider';
9
+ import { DotIcon } from './DotIcon';
10
+
11
+ const { colors, sizes, borderRadius } = ledgerLiveThemes.dark;
12
+
13
+ const TestWrapper = ({ children }: { children: React.ReactNode }) => (
14
+ <ThemeProvider themes={ledgerLiveThemes} colorScheme='dark' locale='en'>
15
+ {children}
16
+ </ThemeProvider>
17
+ );
18
+
19
+ describe('DotIcon Component', () => {
20
+ describe('Rendering', () => {
21
+ it('should render children', () => {
22
+ const { getByText } = render(
23
+ <TestWrapper>
24
+ <DotIcon testID='dot-icon' appearance='success' icon={ArrowDown}>
25
+ <Text>Child</Text>
26
+ </DotIcon>
27
+ </TestWrapper>,
28
+ );
29
+
30
+ expect(getByText('Child')).toBeTruthy();
31
+ });
32
+
33
+ it('should render without children', () => {
34
+ const { getByTestId } = render(
35
+ <TestWrapper>
36
+ <DotIcon testID='dot-icon' appearance='success' icon={ArrowDown} />
37
+ </TestWrapper>,
38
+ );
39
+
40
+ expect(getByTestId('dot-icon')).toBeTruthy();
41
+ });
42
+
43
+ it('should have correct displayName', () => {
44
+ expect(DotIcon.displayName).toBe('DotIcon');
45
+ });
46
+ });
47
+
48
+ describe('Appearances', () => {
49
+ it.each([
50
+ {
51
+ appearance: 'success' as const,
52
+ expectedColor: colors.bg.successStrong,
53
+ },
54
+ { appearance: 'muted' as const, expectedColor: colors.bg.mutedStrong },
55
+ { appearance: 'error' as const, expectedColor: colors.bg.errorStrong },
56
+ ])(
57
+ 'should apply $appearance background color to the dot',
58
+ ({ appearance, expectedColor }) => {
59
+ const { getByTestId } = render(
60
+ <TestWrapper>
61
+ <DotIcon
62
+ testID='dot-icon'
63
+ appearance={appearance}
64
+ icon={ArrowDown}
65
+ />
66
+ </TestWrapper>,
67
+ );
68
+
69
+ const dotView = getByTestId('dot-icon-dot');
70
+ expect(dotView.props.style.backgroundColor).toBe(expectedColor);
71
+ },
72
+ );
73
+ });
74
+
75
+ describe('Sizes', () => {
76
+ it.each([
77
+ { size: 16 as const, expectedSize: sizes.s16 },
78
+ { size: 20 as const, expectedSize: sizes.s20 },
79
+ { size: 24 as const, expectedSize: sizes.s24 },
80
+ ])(
81
+ 'should apply correct width and height for size $size',
82
+ ({ size, expectedSize }) => {
83
+ const { getByTestId } = render(
84
+ <TestWrapper>
85
+ <DotIcon
86
+ testID='dot-icon'
87
+ appearance='success'
88
+ icon={ArrowDown}
89
+ size={size}
90
+ />
91
+ </TestWrapper>,
92
+ );
93
+
94
+ const dotView = getByTestId('dot-icon-dot');
95
+ expect(dotView.props.style.width).toBe(expectedSize);
96
+ expect(dotView.props.style.height).toBe(expectedSize);
97
+ },
98
+ );
99
+ });
100
+
101
+ describe('Pins', () => {
102
+ it.each([
103
+ {
104
+ pin: 'bottom-end' as const,
105
+ verticalKey: 'bottom',
106
+ horizontalKey: 'right',
107
+ },
108
+ {
109
+ pin: 'bottom-start' as const,
110
+ verticalKey: 'bottom',
111
+ horizontalKey: 'left',
112
+ },
113
+ {
114
+ pin: 'top-end' as const,
115
+ verticalKey: 'top',
116
+ horizontalKey: 'right',
117
+ },
118
+ {
119
+ pin: 'top-start' as const,
120
+ verticalKey: 'top',
121
+ horizontalKey: 'left',
122
+ },
123
+ ])('should position dot at $pin', ({ pin, verticalKey, horizontalKey }) => {
124
+ const { getByTestId } = render(
125
+ <TestWrapper>
126
+ <DotIcon
127
+ testID='dot-icon'
128
+ appearance='success'
129
+ icon={ArrowDown}
130
+ pin={pin}
131
+ />
132
+ </TestWrapper>,
133
+ );
134
+
135
+ const dotView = getByTestId('dot-icon-dot');
136
+ expect(dotView.props.style[verticalKey]).toBe(-3);
137
+ expect(dotView.props.style[horizontalKey]).toBe(-3);
138
+ });
139
+ });
140
+
141
+ describe('Shapes', () => {
142
+ it('should apply full border radius for circle shape', () => {
143
+ const { getByTestId } = render(
144
+ <TestWrapper>
145
+ <DotIcon
146
+ testID='dot-icon'
147
+ appearance='success'
148
+ icon={ArrowDown}
149
+ shape='circle'
150
+ />
151
+ </TestWrapper>,
152
+ );
153
+
154
+ const dotView = getByTestId('dot-icon-dot');
155
+ expect(dotView.props.style.borderRadius).toBe(borderRadius.full);
156
+ });
157
+
158
+ it.each([
159
+ { size: 16 as const, expectedRadius: 5 },
160
+ { size: 20 as const, expectedRadius: 6 },
161
+ { size: 24 as const, expectedRadius: 8 },
162
+ ])(
163
+ 'should apply correct border radius for square shape at size $size',
164
+ ({ size, expectedRadius }) => {
165
+ const { getByTestId } = render(
166
+ <TestWrapper>
167
+ <DotIcon
168
+ testID='dot-icon'
169
+ appearance='success'
170
+ icon={ArrowDown}
171
+ shape='square'
172
+ size={size}
173
+ />
174
+ </TestWrapper>,
175
+ );
176
+
177
+ const dotView = getByTestId('dot-icon-dot');
178
+ expect(dotView.props.style.borderRadius).toBe(expectedRadius);
179
+ },
180
+ );
181
+ });
182
+
183
+ describe('Ref forwarding', () => {
184
+ it('should forward ref to the root element', () => {
185
+ const ref = createRef<View>();
186
+
187
+ render(
188
+ <TestWrapper>
189
+ <DotIcon ref={ref} appearance='success' icon={ArrowDown} />
190
+ </TestWrapper>,
191
+ );
192
+
193
+ expect(ref.current).not.toBeNull();
194
+ });
195
+ });
196
+
197
+ describe('Styling', () => {
198
+ it('should apply custom styles', () => {
199
+ const { getByTestId } = render(
200
+ <TestWrapper>
201
+ <DotIcon
202
+ testID='dot-icon'
203
+ appearance='success'
204
+ icon={ArrowDown}
205
+ style={{ marginTop: 10 }}
206
+ />
207
+ </TestWrapper>,
208
+ );
209
+
210
+ const root = getByTestId('dot-icon');
211
+ expect(root.props.style.marginTop).toBe(10);
212
+ });
213
+
214
+ it('should pass additional props', () => {
215
+ const { getByTestId } = render(
216
+ <TestWrapper>
217
+ <DotIcon testID='custom-dot' appearance='success' icon={ArrowDown} />
218
+ </TestWrapper>,
219
+ );
220
+
221
+ expect(getByTestId('custom-dot')).toBeTruthy();
222
+ });
223
+ });
224
+ });
@@ -0,0 +1,146 @@
1
+ import { StyleSheet } from 'react-native';
2
+ import { useStyleSheet } from '../../../styles';
3
+ import type { IconSize } from '../Icon';
4
+ import { Box } from '../Utility';
5
+ import type {
6
+ DotIconAppearance,
7
+ DotIconPin,
8
+ DotIconProps,
9
+ DotIconSize,
10
+ } from './types';
11
+
12
+ const dotIconSizeMap: Record<DotIconSize, IconSize> = {
13
+ 16: 12,
14
+ 20: 12,
15
+ 24: 16,
16
+ };
17
+
18
+ const dotSquareRadiusMap: Record<DotIconSize, number> = {
19
+ 16: 5,
20
+ 20: 6,
21
+ 24: 8,
22
+ };
23
+
24
+ export const mediaImageDotIconSizeMap = {
25
+ 40: 16,
26
+ 48: 20,
27
+ 56: 24,
28
+ 64: 24,
29
+ } as const satisfies Record<number, DotIconSize>;
30
+
31
+ export const spotDotIconSizeMap = {
32
+ 40: 16,
33
+ 48: 20,
34
+ 56: 24,
35
+ 72: 24,
36
+ } as const satisfies Record<number, DotIconSize>;
37
+
38
+ const pinAxisMap: Record<DotIconPin, [vertical: string, horizontal: string]> = {
39
+ 'top-start': ['top', 'left'],
40
+ 'top-end': ['top', 'right'],
41
+ 'bottom-start': ['bottom', 'left'],
42
+ 'bottom-end': ['bottom', 'right'],
43
+ };
44
+
45
+ const DOT_OFFSET = -3;
46
+
47
+ const getPinOffset = (pin: DotIconPin): Record<string, number> => {
48
+ const [v, h] = pinAxisMap[pin];
49
+ return { [v]: DOT_OFFSET, [h]: DOT_OFFSET };
50
+ };
51
+
52
+ const appearanceBgMap: Record<
53
+ DotIconAppearance,
54
+ 'successStrong' | 'mutedStrong' | 'errorStrong'
55
+ > = {
56
+ success: 'successStrong',
57
+ muted: 'mutedStrong',
58
+ error: 'errorStrong',
59
+ };
60
+
61
+ const useStyles = ({
62
+ size,
63
+ shape,
64
+ pin,
65
+ appearance,
66
+ }: {
67
+ size: DotIconSize;
68
+ shape: 'square' | 'circle';
69
+ pin: DotIconPin;
70
+ appearance: DotIconAppearance;
71
+ }) => {
72
+ return useStyleSheet(
73
+ (t) => {
74
+ const sizeValue = t.sizes[`s${size}` as keyof typeof t.sizes] as number;
75
+ const radius =
76
+ shape === 'circle' ? t.borderRadius.full : dotSquareRadiusMap[size];
77
+ const pinOffset = getPinOffset(pin);
78
+
79
+ return {
80
+ dot: {
81
+ position: 'absolute',
82
+ zIndex: 10,
83
+ width: sizeValue,
84
+ height: sizeValue,
85
+ borderRadius: radius,
86
+ borderWidth: 1,
87
+ backgroundColor: t.colors.bg[appearanceBgMap[appearance]],
88
+ borderColor: t.colors.border.baseInverted,
89
+ overflow: 'hidden',
90
+ alignItems: 'center',
91
+ justifyContent: 'center',
92
+ ...pinOffset,
93
+ },
94
+ icon: {
95
+ color: t.colors.text.onInteractive,
96
+ },
97
+ };
98
+ },
99
+ [size, shape, pin, appearance],
100
+ );
101
+ };
102
+
103
+ /**
104
+ * A wrapper component that positions a small icon indicator at a configurable
105
+ * corner of a child element like MediaImage or Spot. The dot background uses a
106
+ * semantic color (`success`, `muted`, or `error`).
107
+ *
108
+ * @example
109
+ * import { DotIcon } from '@ledgerhq/lumen-ui-rnative';
110
+ *
111
+ * <DotIcon appearance="success" icon={ArrowDown} pin="bottom-end">
112
+ * <MediaImage src="https://example.com/usdc.png" alt="USDC" size={48} />
113
+ * </DotIcon>
114
+ */
115
+ export const DotIcon = ({
116
+ children,
117
+ icon: Icon,
118
+ appearance,
119
+ pin = 'bottom-end',
120
+ size = 20,
121
+ shape = 'circle',
122
+ lx = {},
123
+ style,
124
+ ref,
125
+ ...rest
126
+ }: DotIconProps) => {
127
+ const styles = useStyles({ size, shape, pin, appearance });
128
+
129
+ return (
130
+ <Box
131
+ ref={ref}
132
+ lx={lx}
133
+ style={StyleSheet.flatten([{ position: 'relative' }, style])}
134
+ {...rest}
135
+ >
136
+ <Box style={{ alignSelf: 'flex-start', position: 'relative' }}>
137
+ {children}
138
+ <Box testID='dot-icon-dot' style={styles.dot}>
139
+ <Icon size={dotIconSizeMap[size]} style={styles.icon} />
140
+ </Box>
141
+ </Box>
142
+ </Box>
143
+ );
144
+ };
145
+
146
+ DotIcon.displayName = 'DotIcon';
@@ -0,0 +1,6 @@
1
+ export {
2
+ DotIcon,
3
+ mediaImageDotIconSizeMap,
4
+ spotDotIconSizeMap,
5
+ } from './DotIcon';
6
+ export * from './types';
@@ -0,0 +1,44 @@
1
+ import type { ComponentType, ReactNode } from 'react';
2
+ import type { StyleProp, TextStyle } from 'react-native';
3
+ import type { StyledViewProps } from '../../../styles';
4
+ import type { IconSize } from '../Icon';
5
+
6
+ export type DotIconSize = 16 | 20 | 24;
7
+
8
+ export type DotIconPin =
9
+ | 'top-start'
10
+ | 'top-end'
11
+ | 'bottom-start'
12
+ | 'bottom-end';
13
+
14
+ export type DotIconAppearance = 'success' | 'muted' | 'error';
15
+
16
+ export type DotIconProps = {
17
+ /**
18
+ * Icon component to render inside the dot.
19
+ */
20
+ icon: ComponentType<{ size?: IconSize; style?: StyleProp<TextStyle> }>;
21
+ /**
22
+ * Semantic color of the dot background.
23
+ */
24
+ appearance: DotIconAppearance;
25
+ /**
26
+ * Corner placement of the dot indicator.
27
+ * @default 'bottom-end'
28
+ */
29
+ pin?: DotIconPin;
30
+ /**
31
+ * The size of the dot indicator in pixels.
32
+ * @default 20
33
+ */
34
+ size?: DotIconSize;
35
+ /**
36
+ * The shape of the dot indicator.
37
+ * @default 'circle'
38
+ */
39
+ shape?: 'square' | 'circle';
40
+ /**
41
+ * The wrapped component (e.g. MediaImage or Spot).
42
+ */
43
+ children?: ReactNode;
44
+ } & Omit<StyledViewProps, 'children'>;
@@ -32,8 +32,12 @@ export const Base: Story = {
32
32
  pin: 'bottom-end',
33
33
  size: 20,
34
34
  shape: 'circle',
35
- children: <MediaImage src={parentSrc} alt='Cardano' shape='circle' />,
36
35
  },
36
+ render: (args) => (
37
+ <DotSymbol {...args}>
38
+ <MediaImage src={parentSrc} alt='Cardano' shape={args.shape} />
39
+ </DotSymbol>
40
+ ),
37
41
  };
38
42
 
39
43
  export const PinShowcase: Story = {
@@ -135,6 +139,13 @@ export const SizeShowcase: Story = {
135
139
  >
136
140
  <MediaImage src={parentSrc} size={56} shape='circle' />
137
141
  </DotSymbol>
142
+ <DotSymbol
143
+ src={dotSrc}
144
+ size={mediaImageDotSizeMap[64]}
145
+ pin='bottom-end'
146
+ >
147
+ <MediaImage src={parentSrc} size={64} shape='circle' />
148
+ </DotSymbol>
138
149
  </Box>
139
150
  <Box lx={{ flexDirection: 'row', alignItems: 'flex-end', gap: 's24' }}>
140
151
  <DotSymbol
@@ -143,7 +154,7 @@ export const SizeShowcase: Story = {
143
154
  size={mediaImageDotSizeMap[20]}
144
155
  pin='bottom-end'
145
156
  >
146
- <MediaImage src={parentSrc} size={20} shape='circle' />
157
+ <MediaImage src={parentSrc} size={20} shape='square' />
147
158
  </DotSymbol>
148
159
  <DotSymbol
149
160
  shape='square'
@@ -151,7 +162,7 @@ export const SizeShowcase: Story = {
151
162
  size={mediaImageDotSizeMap[24]}
152
163
  pin='bottom-end'
153
164
  >
154
- <MediaImage src={parentSrc} size={24} shape='circle' />
165
+ <MediaImage src={parentSrc} size={24} shape='square' />
155
166
  </DotSymbol>
156
167
  <DotSymbol
157
168
  shape='square'
@@ -159,7 +170,7 @@ export const SizeShowcase: Story = {
159
170
  size={mediaImageDotSizeMap[32]}
160
171
  pin='bottom-end'
161
172
  >
162
- <MediaImage src={parentSrc} size={32} shape='circle' />
173
+ <MediaImage src={parentSrc} size={32} shape='square' />
163
174
  </DotSymbol>
164
175
  <DotSymbol
165
176
  shape='square'
@@ -167,7 +178,7 @@ export const SizeShowcase: Story = {
167
178
  size={mediaImageDotSizeMap[40]}
168
179
  pin='bottom-end'
169
180
  >
170
- <MediaImage src={parentSrc} size={40} shape='circle' />
181
+ <MediaImage src={parentSrc} size={40} shape='square' />
171
182
  </DotSymbol>
172
183
  <DotSymbol
173
184
  shape='square'
@@ -175,7 +186,7 @@ export const SizeShowcase: Story = {
175
186
  size={mediaImageDotSizeMap[48]}
176
187
  pin='bottom-end'
177
188
  >
178
- <MediaImage src={parentSrc} size={48} shape='circle' />
189
+ <MediaImage src={parentSrc} size={48} shape='square' />
179
190
  </DotSymbol>
180
191
  <DotSymbol
181
192
  shape='square'
@@ -183,7 +194,15 @@ export const SizeShowcase: Story = {
183
194
  size={mediaImageDotSizeMap[56]}
184
195
  pin='bottom-end'
185
196
  >
186
- <MediaImage src={parentSrc} size={56} shape='circle' />
197
+ <MediaImage src={parentSrc} size={56} shape='square' />
198
+ </DotSymbol>
199
+ <DotSymbol
200
+ shape='square'
201
+ src={dotSrc}
202
+ size={mediaImageDotSizeMap[64]}
203
+ pin='bottom-end'
204
+ >
205
+ <MediaImage src={parentSrc} size={64} shape='square' />
187
206
  </DotSymbol>
188
207
  </Box>
189
208
  </Box>
@@ -1,20 +1,18 @@
1
1
  import { useEffect, useState } from 'react';
2
2
  import { Image, StyleSheet } from 'react-native';
3
3
  import { useStyleSheet } from '../../../styles';
4
- import { MediaImageSize } from '../MediaImage';
5
- import { SpotSize } from '../Spot';
4
+ import type { MediaImageSize } from '../MediaImage';
5
+ import type { SpotSize } from '../Spot';
6
6
  import { Box } from '../Utility';
7
- import { DotSymbolPin, DotSymbolProps, DotSymbolSize } from './types';
7
+ import type { DotSymbolPin, DotSymbolProps, DotSymbolSize } from './types';
8
8
 
9
- type BorderRadiusKey = 'xs' | 'sm' | 'md' | 'lg' | 'full';
10
-
11
- const shapeRadiusMap: Record<DotSymbolSize, BorderRadiusKey> = {
12
- 8: 'xs',
13
- 10: 'xs',
14
- 12: 'xs',
15
- 16: 'sm',
16
- 20: 'sm',
17
- 24: 'md',
9
+ const dotSquareRadiusMap: Record<DotSymbolSize, number> = {
10
+ 8: 2,
11
+ 10: 3,
12
+ 12: 4,
13
+ 16: 5,
14
+ 20: 6,
15
+ 24: 8,
18
16
  };
19
17
 
20
18
  const offsetBySize: Record<DotSymbolSize, number> = {
@@ -35,6 +33,7 @@ export const mediaImageDotSizeMap: Record<MediaImageSize, DotSymbolSize> = {
35
33
  40: 16,
36
34
  48: 20,
37
35
  56: 24,
36
+ 64: 24,
38
37
  };
39
38
 
40
39
  export const spotDotSizeMap: Record<SpotSize, DotSymbolSize> = {
@@ -75,9 +74,7 @@ const useStyles = ({
75
74
  (t) => {
76
75
  const sizeValue = t.sizes[`s${size}` as keyof typeof t.sizes] as number;
77
76
  const radius =
78
- shape === 'circle'
79
- ? t.borderRadius.full
80
- : t.borderRadius[shapeRadiusMap[size]];
77
+ shape === 'circle' ? t.borderRadius.full : dotSquareRadiusMap[size];
81
78
  const pinOffset = getPinOffset(pin, size);
82
79
 
83
80
  return {
@@ -142,17 +139,19 @@ export const DotSymbol = ({
142
139
  accessibilityLabel={alt}
143
140
  {...rest}
144
141
  >
145
- {children}
146
- <Box style={styles.dot}>
147
- {!error && (
148
- <Image
149
- source={{ uri: src }}
150
- style={styles.image}
151
- accessible={false}
152
- onError={() => setError(true)}
153
- testID='dot-symbol-img'
154
- />
155
- )}
142
+ <Box style={{ alignSelf: 'flex-start', position: 'relative' }}>
143
+ {children}
144
+ <Box style={styles.dot}>
145
+ {!error && (
146
+ <Image
147
+ source={{ uri: src }}
148
+ style={styles.image}
149
+ accessible={false}
150
+ onError={() => setError(true)}
151
+ testID='dot-symbol-img'
152
+ />
153
+ )}
154
+ </Box>
156
155
  </Box>
157
156
  </Box>
158
157
  );
@@ -1,5 +1,5 @@
1
1
  import type { ReactNode } from 'react';
2
- import { StyledViewProps } from '../../../styles';
2
+ import type { StyledViewProps } from '../../../styles';
3
3
 
4
4
  export type DotSymbolSize = 8 | 10 | 12 | 16 | 20 | 24;
5
5
 
@@ -1,8 +1,8 @@
1
1
  import { useMemo } from 'react';
2
2
  import { Svg } from 'react-native-svg';
3
3
  import { useResolveTextStyle, useTheme } from '../../../styles';
4
- import { TextProps } from '../Utility';
5
- import { IconProps, IconSize } from './types';
4
+ import type { TextProps } from '../Utility';
5
+ import type { IconProps, IconSize } from './types';
6
6
 
7
7
  const iconSizeMap = {
8
8
  12: 's12',
@@ -1,9 +1,9 @@
1
1
  import { toPascalCase, useDisabledContext } from '@ledgerhq/lumen-utils-shared';
2
2
  import { createElement } from 'react';
3
- import { SvgProps } from 'react-native-svg';
3
+ import type { SvgProps } from 'react-native-svg';
4
4
  import { useTheme } from '../../../styles';
5
5
  import { Icon } from './Icon';
6
- import { IconProps } from './types';
6
+ import type { IconProps } from './types';
7
7
 
8
8
  /**
9
9
  * Create an Icon component for React Native
@@ -1,7 +1,7 @@
1
- import { Ref } from 'react';
2
- import { Svg, SvgProps } from 'react-native-svg';
3
- import { LumenTextStyle } from '../../../styles';
4
- import { TextProps } from '../Utility';
1
+ import type { Ref } from 'react';
2
+ import type { Svg, SvgProps } from 'react-native-svg';
3
+ import type { LumenTextStyle } from '../../../styles';
4
+ import type { TextProps } from '../Utility';
5
5
 
6
6
  export type IconSize = 12 | 16 | 20 | 24 | 32 | 40 | 48 | 56;
7
7
 
@@ -1,5 +1,5 @@
1
1
  import { BaseButton } from '../Button/BaseButton';
2
- import { IconButtonProps } from './types';
2
+ import type { IconButtonProps } from './types';
3
3
 
4
4
  export const IconButton = (props: IconButtonProps) => {
5
5
  return <BaseButton {...props} />;
@@ -1,4 +1,4 @@
1
- import { BaseButtonProps } from '../Button';
1
+ import type { BaseButtonProps } from '../Button';
2
2
 
3
3
  export type IconButtonProps = {
4
4
  /**
@@ -1,11 +1,12 @@
1
1
  import { useDisabledContext } from '@ledgerhq/lumen-utils-shared';
2
- import { ComponentType } from 'react';
2
+ import type { ComponentType } from 'react';
3
3
  import { StyleSheet, View } from 'react-native';
4
4
  import { useStyleSheet } from '../../../styles';
5
5
 
6
- import { IconProps, IconSize } from '../Icon';
6
+ import type { IconProps, IconSize } from '../Icon';
7
7
  import { Pressable } from '../Utility';
8
- import { HIT_SLOP_MAP, InteractiveIconProps } from './types';
8
+ import type { InteractiveIconProps } from './types';
9
+ import { HIT_SLOP_MAP } from './types';
9
10
 
10
11
  type IconType = InteractiveIconProps['iconType'];
11
12
  type Appearance = NonNullable<InteractiveIconProps['appearance']>;
@@ -1,7 +1,7 @@
1
- import { ComponentType } from 'react';
2
- import { Insets } from 'react-native';
3
- import { StyledPressableProps } from '../../../styles';
4
- import { IconProps, IconSize } from '../Icon';
1
+ import type { ComponentType } from 'react';
2
+ import type { Insets } from 'react-native';
3
+ import type { StyledPressableProps } from '../../../styles';
4
+ import type { IconProps, IconSize } from '../Icon';
5
5
 
6
6
  export const HIT_SLOP_MAP: Partial<
7
7
  Record<HitSlopType, Partial<Record<IconSize, Insets>>>