@ledgerhq/lumen-ui-rnative 0.1.36 → 0.1.38

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 (245) hide show
  1. package/dist/module/lib/Animations/Pulse/Pulse.mdx +1 -1
  2. package/dist/module/lib/Animations/Spin/Spin.mdx +1 -1
  3. package/dist/module/lib/Components/AddressInput/AddressInput.mdx +1 -1
  4. package/dist/module/lib/Components/AmountDisplay/AmountDisplay.js +68 -39
  5. package/dist/module/lib/Components/AmountDisplay/AmountDisplay.js.map +1 -1
  6. package/dist/module/lib/Components/AmountDisplay/AmountDisplay.mdx +7 -1
  7. package/dist/module/lib/Components/AmountDisplay/AmountDisplay.stories.js +24 -0
  8. package/dist/module/lib/Components/AmountDisplay/AmountDisplay.stories.js.map +1 -1
  9. package/dist/module/lib/Components/AmountDisplay/types.js.map +1 -1
  10. package/dist/module/lib/Components/AmountInput/AmountInput.js +109 -72
  11. package/dist/module/lib/Components/AmountInput/AmountInput.js.map +1 -1
  12. package/dist/module/lib/Components/AmountInput/AmountInput.mdx +13 -1
  13. package/dist/module/lib/Components/AmountInput/AmountInput.stories.js +53 -0
  14. package/dist/module/lib/Components/AmountInput/AmountInput.stories.js.map +1 -1
  15. package/dist/module/lib/Components/Avatar/Avatar.js +6 -5
  16. package/dist/module/lib/Components/Avatar/Avatar.js.map +1 -1
  17. package/dist/module/lib/Components/Avatar/Avatar.mdx +3 -1
  18. package/dist/module/lib/Components/Avatar/Avatar.test.js +10 -13
  19. package/dist/module/lib/Components/Avatar/Avatar.test.js.map +1 -1
  20. package/dist/module/lib/Components/Banner/Banner.mdx +1 -1
  21. package/dist/module/lib/Components/BottomSheet/BottomSheet.mdx +1 -1
  22. package/dist/module/lib/Components/Button/Button.mdx +1 -1
  23. package/dist/module/lib/Components/Card/Card.stories.js +4 -9
  24. package/dist/module/lib/Components/Card/Card.stories.js.map +1 -1
  25. package/dist/module/lib/Components/CardButton/CardButton.mdx +1 -1
  26. package/dist/module/lib/Components/Checkbox/Checkbox.mdx +1 -1
  27. package/dist/module/lib/Components/Divider/Divider.mdx +1 -1
  28. package/dist/module/lib/Components/DotIcon/DotIcon.js +51 -27
  29. package/dist/module/lib/Components/DotIcon/DotIcon.js.map +1 -1
  30. package/dist/module/lib/Components/DotIcon/DotIcon.mdx +92 -0
  31. package/dist/module/lib/Components/DotIcon/DotIcon.stories.js +57 -0
  32. package/dist/module/lib/Components/DotIcon/DotIcon.stories.js.map +1 -1
  33. package/dist/module/lib/Components/DotIndicator/DotIndicator.js +5 -5
  34. package/dist/module/lib/Components/DotIndicator/DotIndicator.js.map +1 -1
  35. package/dist/module/lib/Components/DotIndicator/DotIndicator.mdx +4 -4
  36. package/dist/module/lib/Components/DotIndicator/DotIndicator.stories.js +3 -3
  37. package/dist/module/lib/Components/DotIndicator/DotIndicator.test.js +12 -2
  38. package/dist/module/lib/Components/DotIndicator/DotIndicator.test.js.map +1 -1
  39. package/dist/module/lib/Components/DotSymbol/DotSymbol.js +59 -34
  40. package/dist/module/lib/Components/DotSymbol/DotSymbol.js.map +1 -1
  41. package/dist/module/lib/Components/DotSymbol/DotSymbol.mdx +79 -2
  42. package/dist/module/lib/Components/DotSymbol/DotSymbol.stories.js +60 -0
  43. package/dist/module/lib/Components/DotSymbol/DotSymbol.stories.js.map +1 -1
  44. package/dist/module/lib/Components/IconButton/IconButton.mdx +1 -1
  45. package/dist/module/lib/Components/InteractiveIcon/InteractiveIcon.mdx +1 -1
  46. package/dist/module/lib/Components/Label/Label.js +1 -1
  47. package/dist/module/lib/Components/Link/Link.mdx +1 -1
  48. package/dist/module/lib/Components/MediaBanner/MediaBanner.mdx +1 -1
  49. package/dist/module/lib/Components/MediaButton/MediaButton.js +19 -19
  50. package/dist/module/lib/Components/MediaButton/MediaButton.js.map +1 -1
  51. package/dist/module/lib/Components/MediaButton/MediaButton.mdx +5 -5
  52. package/dist/module/lib/Components/MediaButton/MediaButton.stories.js +17 -17
  53. package/dist/module/lib/Components/MediaButton/MediaButton.stories.js.map +1 -1
  54. package/dist/module/lib/Components/MediaButton/MediaButton.test.js +4 -4
  55. package/dist/module/lib/Components/MediaButton/MediaButton.test.js.map +1 -1
  56. package/dist/module/lib/Components/MediaImage/MediaImage.js +24 -6
  57. package/dist/module/lib/Components/MediaImage/MediaImage.js.map +1 -1
  58. package/dist/module/lib/Components/MediaImage/MediaImage.mdx +1 -1
  59. package/dist/module/lib/Components/MediaImage/MediaImage.stories.js +47 -0
  60. package/dist/module/lib/Components/MediaImage/MediaImage.stories.js.map +1 -1
  61. package/dist/module/lib/Components/NavBar/CoinCapsule.js +2 -2
  62. package/dist/module/lib/Components/NavBar/CoinCapsule.js.map +1 -1
  63. package/dist/module/lib/Components/NavBar/NavBar.js +2 -2
  64. package/dist/module/lib/Components/NavBar/NavBar.js.map +1 -1
  65. package/dist/module/lib/Components/NavBar/NavBar.mdx +2 -2
  66. package/dist/module/lib/Components/NavBar/NavBar.stories.js +1 -1
  67. package/dist/module/lib/Components/NavBar/NavBar.stories.js.map +1 -1
  68. package/dist/module/lib/Components/NavBar/NavBar.test.js +3 -3
  69. package/dist/module/lib/Components/NavBar/NavBar.test.js.map +1 -1
  70. package/dist/module/lib/Components/OptionList/OptionList.mdx +1 -1
  71. package/dist/module/lib/Components/OptionList/OptionList.stories.js +4 -4
  72. package/dist/module/lib/Components/OptionList/OptionList.stories.js.map +1 -1
  73. package/dist/module/lib/Components/PageIndicator/PageIndicator.js +13 -8
  74. package/dist/module/lib/Components/PageIndicator/PageIndicator.js.map +1 -1
  75. package/dist/module/lib/Components/PageIndicator/PageIndicator.test.js +58 -0
  76. package/dist/module/lib/Components/PageIndicator/PageIndicator.test.js.map +1 -1
  77. package/dist/module/lib/Components/SearchInput/SearchInput.mdx +1 -1
  78. package/dist/module/lib/Components/SegmentedControl/SegmentedControl.mdx +1 -1
  79. package/dist/module/lib/Components/Spinner/Spinner.mdx +1 -1
  80. package/dist/module/lib/Components/Spot/Spot.mdx +1 -1
  81. package/dist/module/lib/Components/Stepper/Stepper.mdx +1 -1
  82. package/dist/module/lib/Components/Subheader/Subheader.mdx +1 -1
  83. package/dist/module/lib/Components/Switch/Switch.mdx +1 -1
  84. package/dist/module/lib/Components/TabBar/TabBar.mdx +1 -1
  85. package/dist/module/lib/Components/TextInput/TextInput.mdx +1 -1
  86. package/dist/module/lib/Components/ThemeProvider/ThemeProvider.js +2 -5
  87. package/dist/module/lib/Components/ThemeProvider/ThemeProvider.js.map +1 -1
  88. package/dist/module/lib/Components/Tile/Tile.mdx +1 -1
  89. package/dist/module/lib/Components/Tooltip/Tooltip.mdx +1 -1
  90. package/dist/module/lib/Components/index.js +0 -1
  91. package/dist/module/lib/Components/index.js.map +1 -1
  92. package/dist/module/lib/Symbols/Icons/Lightbulb.js +3 -3
  93. package/dist/module/lib/Symbols/Icons/Lightbulb.js.map +1 -1
  94. package/dist/typescript/src/lib/Components/AmountDisplay/AmountDisplay.d.ts +1 -1
  95. package/dist/typescript/src/lib/Components/AmountDisplay/AmountDisplay.d.ts.map +1 -1
  96. package/dist/typescript/src/lib/Components/AmountDisplay/index.d.ts +1 -1
  97. package/dist/typescript/src/lib/Components/AmountDisplay/index.d.ts.map +1 -1
  98. package/dist/typescript/src/lib/Components/AmountDisplay/types.d.ts +10 -3
  99. package/dist/typescript/src/lib/Components/AmountDisplay/types.d.ts.map +1 -1
  100. package/dist/typescript/src/lib/Components/AmountInput/AmountInput.d.ts +1 -1
  101. package/dist/typescript/src/lib/Components/AmountInput/AmountInput.d.ts.map +1 -1
  102. package/dist/typescript/src/lib/Components/AmountInput/types.d.ts +12 -0
  103. package/dist/typescript/src/lib/Components/AmountInput/types.d.ts.map +1 -1
  104. package/dist/typescript/src/lib/Components/Avatar/Avatar.d.ts +1 -1
  105. package/dist/typescript/src/lib/Components/Avatar/Avatar.d.ts.map +1 -1
  106. package/dist/typescript/src/lib/Components/DotIcon/DotIcon.d.ts +3 -2
  107. package/dist/typescript/src/lib/Components/DotIcon/DotIcon.d.ts.map +1 -1
  108. package/dist/typescript/src/lib/Components/DotIcon/types.d.ts +7 -1
  109. package/dist/typescript/src/lib/Components/DotIcon/types.d.ts.map +1 -1
  110. package/dist/typescript/src/lib/Components/DotIndicator/types.d.ts +2 -2
  111. package/dist/typescript/src/lib/Components/DotSymbol/DotSymbol.d.ts +1 -1
  112. package/dist/typescript/src/lib/Components/DotSymbol/DotSymbol.d.ts.map +1 -1
  113. package/dist/typescript/src/lib/Components/DotSymbol/types.d.ts +7 -1
  114. package/dist/typescript/src/lib/Components/DotSymbol/types.d.ts.map +1 -1
  115. package/dist/typescript/src/lib/Components/Label/Label.d.ts +1 -1
  116. package/dist/typescript/src/lib/Components/MediaButton/MediaButton.d.ts +5 -5
  117. package/dist/typescript/src/lib/Components/MediaButton/MediaButton.d.ts.map +1 -1
  118. package/dist/typescript/src/lib/Components/MediaButton/types.d.ts +6 -6
  119. package/dist/typescript/src/lib/Components/MediaButton/types.d.ts.map +1 -1
  120. package/dist/typescript/src/lib/Components/MediaImage/MediaImage.d.ts +1 -1
  121. package/dist/typescript/src/lib/Components/MediaImage/MediaImage.d.ts.map +1 -1
  122. package/dist/typescript/src/lib/Components/MediaImage/types.d.ts +7 -1
  123. package/dist/typescript/src/lib/Components/MediaImage/types.d.ts.map +1 -1
  124. package/dist/typescript/src/lib/Components/NavBar/CoinCapsule.d.ts +1 -1
  125. package/dist/typescript/src/lib/Components/NavBar/CoinCapsule.d.ts.map +1 -1
  126. package/dist/typescript/src/lib/Components/NavBar/NavBar.d.ts +1 -1
  127. package/dist/typescript/src/lib/Components/NavBar/NavBar.d.ts.map +1 -1
  128. package/dist/typescript/src/lib/Components/NavBar/types.d.ts +3 -3
  129. package/dist/typescript/src/lib/Components/NavBar/types.d.ts.map +1 -1
  130. package/dist/typescript/src/lib/Components/PageIndicator/PageIndicator.d.ts.map +1 -1
  131. package/dist/typescript/src/lib/Components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  132. package/dist/typescript/src/lib/Components/index.d.ts +0 -1
  133. package/dist/typescript/src/lib/Components/index.d.ts.map +1 -1
  134. package/package.json +3 -3
  135. package/src/lib/Animations/Pulse/Pulse.mdx +1 -1
  136. package/src/lib/Animations/Spin/Spin.mdx +1 -1
  137. package/src/lib/Components/AddressInput/AddressInput.mdx +1 -1
  138. package/src/lib/Components/AmountDisplay/AmountDisplay.mdx +7 -1
  139. package/src/lib/Components/AmountDisplay/AmountDisplay.stories.tsx +18 -0
  140. package/src/lib/Components/AmountDisplay/AmountDisplay.tsx +71 -40
  141. package/src/lib/Components/AmountDisplay/index.ts +5 -1
  142. package/src/lib/Components/AmountDisplay/types.ts +12 -3
  143. package/src/lib/Components/AmountInput/AmountInput.mdx +13 -1
  144. package/src/lib/Components/AmountInput/AmountInput.stories.tsx +68 -1
  145. package/src/lib/Components/AmountInput/AmountInput.tsx +118 -75
  146. package/src/lib/Components/AmountInput/types.ts +14 -0
  147. package/src/lib/Components/Avatar/Avatar.mdx +3 -1
  148. package/src/lib/Components/Avatar/Avatar.test.tsx +16 -18
  149. package/src/lib/Components/Avatar/Avatar.tsx +9 -8
  150. package/src/lib/Components/Banner/Banner.mdx +1 -1
  151. package/src/lib/Components/BottomSheet/BottomSheet.mdx +1 -1
  152. package/src/lib/Components/Button/Button.mdx +1 -1
  153. package/src/lib/Components/Card/Card.stories.tsx +1 -3
  154. package/src/lib/Components/CardButton/CardButton.mdx +1 -1
  155. package/src/lib/Components/Checkbox/Checkbox.mdx +1 -1
  156. package/src/lib/Components/Divider/Divider.mdx +1 -1
  157. package/src/lib/Components/DotIcon/DotIcon.mdx +92 -0
  158. package/src/lib/Components/DotIcon/DotIcon.stories.tsx +43 -0
  159. package/src/lib/Components/DotIcon/DotIcon.tsx +35 -15
  160. package/src/lib/Components/DotIcon/types.ts +7 -1
  161. package/src/lib/Components/DotIndicator/DotIndicator.mdx +4 -4
  162. package/src/lib/Components/DotIndicator/DotIndicator.stories.tsx +2 -2
  163. package/src/lib/Components/DotIndicator/DotIndicator.test.tsx +12 -2
  164. package/src/lib/Components/DotIndicator/DotIndicator.tsx +5 -5
  165. package/src/lib/Components/DotIndicator/types.ts +2 -2
  166. package/src/lib/Components/DotSymbol/DotSymbol.mdx +79 -2
  167. package/src/lib/Components/DotSymbol/DotSymbol.stories.tsx +32 -0
  168. package/src/lib/Components/DotSymbol/DotSymbol.tsx +46 -25
  169. package/src/lib/Components/DotSymbol/types.ts +7 -1
  170. package/src/lib/Components/IconButton/IconButton.mdx +1 -1
  171. package/src/lib/Components/InteractiveIcon/InteractiveIcon.mdx +1 -1
  172. package/src/lib/Components/Label/Label.tsx +1 -1
  173. package/src/lib/Components/Link/Link.mdx +1 -1
  174. package/src/lib/Components/MediaBanner/MediaBanner.mdx +1 -1
  175. package/src/lib/Components/MediaButton/MediaButton.mdx +5 -5
  176. package/src/lib/Components/MediaButton/MediaButton.stories.tsx +29 -15
  177. package/src/lib/Components/MediaButton/MediaButton.test.tsx +4 -4
  178. package/src/lib/Components/MediaButton/MediaButton.tsx +35 -22
  179. package/src/lib/Components/MediaButton/types.ts +6 -6
  180. package/src/lib/Components/MediaImage/MediaImage.mdx +1 -1
  181. package/src/lib/Components/MediaImage/MediaImage.stories.tsx +21 -0
  182. package/src/lib/Components/MediaImage/MediaImage.tsx +14 -2
  183. package/src/lib/Components/MediaImage/types.ts +7 -1
  184. package/src/lib/Components/NavBar/CoinCapsule.tsx +2 -2
  185. package/src/lib/Components/NavBar/NavBar.mdx +2 -2
  186. package/src/lib/Components/NavBar/NavBar.stories.tsx +3 -1
  187. package/src/lib/Components/NavBar/NavBar.test.tsx +3 -3
  188. package/src/lib/Components/NavBar/NavBar.tsx +2 -2
  189. package/src/lib/Components/NavBar/types.ts +3 -3
  190. package/src/lib/Components/OptionList/OptionList.mdx +1 -1
  191. package/src/lib/Components/OptionList/OptionList.stories.tsx +4 -4
  192. package/src/lib/Components/PageIndicator/PageIndicator.test.tsx +78 -0
  193. package/src/lib/Components/PageIndicator/PageIndicator.tsx +15 -7
  194. package/src/lib/Components/SearchInput/SearchInput.mdx +1 -1
  195. package/src/lib/Components/SegmentedControl/SegmentedControl.mdx +1 -1
  196. package/src/lib/Components/Spinner/Spinner.mdx +1 -1
  197. package/src/lib/Components/Spot/Spot.mdx +1 -1
  198. package/src/lib/Components/Stepper/Stepper.mdx +1 -1
  199. package/src/lib/Components/Subheader/Subheader.mdx +1 -1
  200. package/src/lib/Components/Switch/Switch.mdx +1 -1
  201. package/src/lib/Components/TabBar/TabBar.mdx +1 -1
  202. package/src/lib/Components/TextInput/TextInput.mdx +1 -1
  203. package/src/lib/Components/ThemeProvider/ThemeProvider.tsx +1 -4
  204. package/src/lib/Components/Tile/Tile.mdx +1 -1
  205. package/src/lib/Components/Tooltip/Tooltip.mdx +1 -1
  206. package/src/lib/Components/index.ts +0 -1
  207. package/src/lib/Symbols/Icons/Lightbulb.tsx +3 -3
  208. package/dist/module/lib/Components/Select/GlobalSelectBottomSheet.js +0 -155
  209. package/dist/module/lib/Components/Select/GlobalSelectBottomSheet.js.map +0 -1
  210. package/dist/module/lib/Components/Select/GlobalSelectContext.js +0 -78
  211. package/dist/module/lib/Components/Select/GlobalSelectContext.js.map +0 -1
  212. package/dist/module/lib/Components/Select/Select.js +0 -366
  213. package/dist/module/lib/Components/Select/Select.js.map +0 -1
  214. package/dist/module/lib/Components/Select/Select.mdx +0 -596
  215. package/dist/module/lib/Components/Select/Select.stories.js +0 -304
  216. package/dist/module/lib/Components/Select/Select.stories.js.map +0 -1
  217. package/dist/module/lib/Components/Select/Select.test.js +0 -123
  218. package/dist/module/lib/Components/Select/Select.test.js.map +0 -1
  219. package/dist/module/lib/Components/Select/SelectContext.js +0 -38
  220. package/dist/module/lib/Components/Select/SelectContext.js.map +0 -1
  221. package/dist/module/lib/Components/Select/index.js +0 -6
  222. package/dist/module/lib/Components/Select/index.js.map +0 -1
  223. package/dist/module/lib/Components/Select/types.js +0 -4
  224. package/dist/module/lib/Components/Select/types.js.map +0 -1
  225. package/dist/typescript/src/lib/Components/Select/GlobalSelectBottomSheet.d.ts +0 -20
  226. package/dist/typescript/src/lib/Components/Select/GlobalSelectBottomSheet.d.ts.map +0 -1
  227. package/dist/typescript/src/lib/Components/Select/GlobalSelectContext.d.ts +0 -44
  228. package/dist/typescript/src/lib/Components/Select/GlobalSelectContext.d.ts.map +0 -1
  229. package/dist/typescript/src/lib/Components/Select/Select.d.ts +0 -52
  230. package/dist/typescript/src/lib/Components/Select/Select.d.ts.map +0 -1
  231. package/dist/typescript/src/lib/Components/Select/SelectContext.d.ts +0 -36
  232. package/dist/typescript/src/lib/Components/Select/SelectContext.d.ts.map +0 -1
  233. package/dist/typescript/src/lib/Components/Select/index.d.ts +0 -4
  234. package/dist/typescript/src/lib/Components/Select/index.d.ts.map +0 -1
  235. package/dist/typescript/src/lib/Components/Select/types.d.ts +0 -130
  236. package/dist/typescript/src/lib/Components/Select/types.d.ts.map +0 -1
  237. package/src/lib/Components/Select/GlobalSelectBottomSheet.tsx +0 -180
  238. package/src/lib/Components/Select/GlobalSelectContext.tsx +0 -103
  239. package/src/lib/Components/Select/Select.mdx +0 -596
  240. package/src/lib/Components/Select/Select.stories.tsx +0 -266
  241. package/src/lib/Components/Select/Select.test.tsx +0 -117
  242. package/src/lib/Components/Select/Select.tsx +0 -469
  243. package/src/lib/Components/Select/SelectContext.tsx +0 -68
  244. package/src/lib/Components/Select/index.ts +0 -3
  245. package/src/lib/Components/Select/types.ts +0 -149
@@ -44,30 +44,40 @@ export const Base: Story = {
44
44
  export const SizeShowcase: Story = {
45
45
  render: () => (
46
46
  <Box lx={{ flexDirection: 'row', alignItems: 'center', gap: 's16' }}>
47
- <MediaButton size='sm' icon={<Star size={20} />} iconType='flat'>
47
+ <MediaButton
48
+ size='sm'
49
+ leadingContent={<Star size={20} />}
50
+ leadingContentShape='flat'
51
+ >
48
52
  Small
49
53
  </MediaButton>
50
- <MediaButton size='md' icon={<Star size={20} />} iconType='flat'>
54
+ <MediaButton
55
+ size='md'
56
+ leadingContent={<Star size={20} />}
57
+ leadingContentShape='flat'
58
+ >
51
59
  Medium
52
60
  </MediaButton>
53
61
  </Box>
54
62
  ),
55
63
  };
56
64
 
57
- export const IconTypeShowcase: Story = {
65
+ export const LeadingContentShapeShowcase: Story = {
58
66
  render: () => (
59
67
  <Box lx={{ flexDirection: 'column', gap: 's16' }}>
60
68
  <Box lx={{ flexDirection: 'row', alignItems: 'center', gap: 's16' }}>
61
69
  <MediaButton
62
- icon={<Settings size={20} />}
63
- iconType='flat'
70
+ leadingContent={<Settings size={20} />}
71
+ leadingContentShape='flat'
64
72
  appearance='gray'
65
73
  >
66
74
  Flat icon (md)
67
75
  </MediaButton>
68
76
  <MediaButton
69
- icon={<CryptoIcon ledgerId='bitcoin' ticker='BTC' size={32} />}
70
- iconType='rounded'
77
+ leadingContent={
78
+ <CryptoIcon ledgerId='bitcoin' ticker='BTC' size={32} />
79
+ }
80
+ leadingContentShape='rounded'
71
81
  appearance='gray'
72
82
  >
73
83
  Rounded icon (md)
@@ -76,16 +86,18 @@ export const IconTypeShowcase: Story = {
76
86
  </Box>
77
87
  <Box lx={{ flexDirection: 'row', alignItems: 'center', gap: 's16' }}>
78
88
  <MediaButton
79
- icon={<Settings size={20} />}
80
- iconType='flat'
89
+ leadingContent={<Settings size={20} />}
90
+ leadingContentShape='flat'
81
91
  appearance='gray'
82
92
  size='sm'
83
93
  >
84
94
  Flat icon (sm)
85
95
  </MediaButton>
86
96
  <MediaButton
87
- icon={<CryptoIcon ledgerId='bitcoin' ticker='BTC' size={24} />}
88
- iconType='rounded'
97
+ leadingContent={
98
+ <CryptoIcon ledgerId='bitcoin' ticker='BTC' size={24} />
99
+ }
100
+ leadingContentShape='rounded'
89
101
  appearance='gray'
90
102
  size='sm'
91
103
  >
@@ -112,15 +124,17 @@ export const AppearanceShowcase: Story = {
112
124
  <MediaButton appearance={appearance}>{appearance}</MediaButton>
113
125
  <MediaButton
114
126
  appearance={appearance}
115
- icon={<Settings size={20} />}
116
- iconType='flat'
127
+ leadingContent={<Settings size={20} />}
128
+ leadingContentShape='flat'
117
129
  >
118
130
  {appearance}
119
131
  </MediaButton>
120
132
  <MediaButton
121
133
  appearance={appearance}
122
- icon={<CryptoIcon ledgerId='bitcoin' ticker='BTC' size={32} />}
123
- iconType='rounded'
134
+ leadingContent={
135
+ <CryptoIcon ledgerId='bitcoin' ticker='BTC' size={32} />
136
+ }
137
+ leadingContentShape='rounded'
124
138
  >
125
139
  {appearance}
126
140
  </MediaButton>
@@ -64,8 +64,8 @@ describe('MediaButton', () => {
64
64
  renderWithProvider(
65
65
  <MediaButton
66
66
  testID='trigger'
67
- icon={<Settings size={20} testID='icon' />}
68
- iconType='flat'
67
+ leadingContent={<Settings size={20} testID='icon' />}
68
+ leadingContentShape='flat'
69
69
  >
70
70
  Network
71
71
  </MediaButton>,
@@ -78,8 +78,8 @@ describe('MediaButton', () => {
78
78
  renderWithProvider(
79
79
  <MediaButton
80
80
  testID='trigger'
81
- icon={<View testID='crypto-icon' />}
82
- iconType='rounded'
81
+ leadingContent={<View testID='crypto-icon' />}
82
+ leadingContentShape='rounded'
83
83
  >
84
84
  Bitcoin
85
85
  </MediaButton>,
@@ -7,20 +7,20 @@ import type { MediaButtonProps } from './types';
7
7
 
8
8
  type Appearance = NonNullable<MediaButtonProps['appearance']>;
9
9
  type Size = NonNullable<MediaButtonProps['size']>;
10
- type IconType = 'flat' | 'rounded' | 'none';
10
+ type LeadingContentShape = 'flat' | 'rounded' | 'none';
11
11
 
12
12
  const useStyles = ({
13
13
  appearance,
14
14
  size,
15
15
  disabled,
16
16
  pressed,
17
- iconType,
17
+ leadingContentShape,
18
18
  }: {
19
19
  appearance: Appearance;
20
20
  size: Size;
21
21
  disabled: boolean;
22
22
  pressed: boolean;
23
- iconType: IconType;
23
+ leadingContentShape: LeadingContentShape;
24
24
  }) => {
25
25
  return useStyleSheet(
26
26
  (t) => {
@@ -45,7 +45,10 @@ const useStyles = ({
45
45
  paddingRight: number;
46
46
  };
47
47
 
48
- const paddingMap: Record<Size, Record<IconType, PaddingStyle>> = {
48
+ const paddingMap: Record<
49
+ Size,
50
+ Record<LeadingContentShape, PaddingStyle>
51
+ > = {
49
52
  md: {
50
53
  flat: {
51
54
  paddingTop: t.spacings.s12,
@@ -97,7 +100,7 @@ const useStyles = ({
97
100
  backgroundColor: bgColors[appearance],
98
101
  gap: t.spacings.s8,
99
102
  },
100
- paddingMap[size][iconType],
103
+ paddingMap[size][leadingContentShape],
101
104
  pressed && { backgroundColor: pressedBgColors[appearance] },
102
105
  disabled && { backgroundColor: t.colors.bg.disabled },
103
106
  appearance === 'no-background' &&
@@ -115,7 +118,7 @@ const useStyles = ({
115
118
  alignItems: 'center',
116
119
  gap: t.spacings.s2,
117
120
  },
118
- icon: {
121
+ leadingContent: {
119
122
  flexShrink: 0,
120
123
  },
121
124
  chevron: {
@@ -124,15 +127,15 @@ const useStyles = ({
124
127
  },
125
128
  };
126
129
  },
127
- [appearance, size, disabled, pressed, iconType],
130
+ [appearance, size, disabled, pressed, leadingContentShape],
128
131
  );
129
132
  };
130
133
 
131
134
  /**
132
- * Media button for select/dropdown components. Displays a label with an optional
133
- * leading icon and a trailing chevron indicator.
135
+ * Media button for option list/dropdown components. Displays a label with an optional
136
+ * leading content and a trailing chevron indicator.
134
137
  *
135
- * This component is intended to be used exclusively as the trigger inside a Select or
138
+ * This component is intended to be used exclusively as the trigger inside an OptionList or
136
139
  * dropdown pattern. It should not be used as a standalone action button — use `Button`
137
140
  * or `IconButton` instead.
138
141
  *
@@ -142,7 +145,7 @@ const useStyles = ({
142
145
  * import { MediaButton } from '@ledgerhq/lumen-ui-rnative';
143
146
  * import { Settings } from '@ledgerhq/lumen-ui-rnative/symbols';
144
147
  *
145
- * <MediaButton icon={<Settings size={20} />} iconType="flat">
148
+ * <MediaButton leadingContent={<Settings size={20} />} leadingContentShape="flat">
146
149
  * Network
147
150
  * </MediaButton>
148
151
  *
@@ -154,14 +157,16 @@ export const MediaButton = ({
154
157
  appearance = 'gray',
155
158
  size = 'md',
156
159
  disabled = false,
157
- icon,
158
- iconType = 'flat',
160
+ leadingContent,
161
+ leadingContentShape = 'flat',
159
162
  hideChevron = false,
160
163
  children: label,
161
164
  ref,
162
165
  ...props
163
166
  }: MediaButtonProps) => {
164
- const effectiveIconType: IconType = icon ? iconType : 'none';
167
+ const effectiveLeadingContentShape: LeadingContentShape = leadingContent
168
+ ? leadingContentShape
169
+ : 'none';
165
170
 
166
171
  return (
167
172
  <Pressable
@@ -179,8 +184,8 @@ export const MediaButton = ({
179
184
  size={size}
180
185
  disabled={disabled}
181
186
  pressed={pressed}
182
- iconType={effectiveIconType}
183
- icon={icon}
187
+ leadingContent={leadingContent}
188
+ leadingContentShape={effectiveLeadingContentShape}
184
189
  hideChevron={hideChevron}
185
190
  >
186
191
  {label}
@@ -195,8 +200,8 @@ type MediaButtonContentProps = PropsWithChildren<{
195
200
  size: Size;
196
201
  disabled: boolean;
197
202
  pressed: boolean;
198
- iconType: IconType;
199
- icon?: MediaButtonProps['icon'];
203
+ leadingContent?: MediaButtonProps['leadingContent'];
204
+ leadingContentShape: LeadingContentShape;
200
205
  hideChevron: boolean;
201
206
  }>;
202
207
 
@@ -205,16 +210,24 @@ const MediaButtonContent = ({
205
210
  size,
206
211
  disabled,
207
212
  pressed,
208
- iconType,
209
- icon,
213
+ leadingContent,
214
+ leadingContentShape,
210
215
  hideChevron,
211
216
  children,
212
217
  }: MediaButtonContentProps) => {
213
- const styles = useStyles({ appearance, size, disabled, pressed, iconType });
218
+ const styles = useStyles({
219
+ appearance,
220
+ size,
221
+ disabled,
222
+ pressed,
223
+ leadingContentShape,
224
+ });
214
225
 
215
226
  return (
216
227
  <View style={styles.container} testID='button-trigger-content'>
217
- {icon && <View style={styles.icon}>{icon}</View>}
228
+ {leadingContent && (
229
+ <View style={styles.leadingContent}>{leadingContent}</View>
230
+ )}
218
231
  <View style={styles.labelWrapper}>
219
232
  <Text style={styles.label} numberOfLines={1} ellipsizeMode='tail'>
220
233
  {children}
@@ -13,19 +13,19 @@ export type MediaButtonProps = {
13
13
  */
14
14
  size?: 'sm' | 'md';
15
15
  /**
16
- * An optional pre-rendered icon element to display as leading content.
17
- * Consumer is responsible for sizing the icon.
16
+ * An optional leading content, usually a pre-rendered icon.
17
+ * Consumer is responsible for sizing the icon (typically 20px).
18
18
  */
19
- icon?: ReactNode;
19
+ leadingContent?: ReactNode;
20
20
  /**
21
- * Determines the padding scheme when an icon is present.
21
+ * Determines the padding scheme when `leadingContent` is present.
22
22
  * - `'flat'`: Standard padding for line/interface icons.
23
23
  * - `'rounded'`: Tighter left padding for circular icons with their own background (e.g., crypto icons).
24
24
  *
25
- * Only relevant when `icon` is provided.
25
+ * Only relevant when `leadingContent` is provided.
26
26
  * @default 'flat'
27
27
  */
28
- iconType?: 'flat' | 'rounded';
28
+ leadingContentShape?: 'flat' | 'rounded';
29
29
  /**
30
30
  * When true, hides the trailing chevron indicator.
31
31
  * @default false
@@ -37,7 +37,7 @@ MediaImage displays an image with consistent sizing and shape. When the image fa
37
37
 
38
38
  ### Sizes
39
39
 
40
- Nine sizes are available (12, 16, 20, 24, 32, 40, 48, 56, 64). Border radius scales with size.
40
+ Ten sizes are available (12, 16, 20, 24, 32, 40, 48, 56, 64, 72). Border radius scales with size.
41
41
 
42
42
  <Canvas of={MediaImageStories.SizeShowcase} />
43
43
 
@@ -42,6 +42,7 @@ export const SizeShowcase: Story = {
42
42
  <MediaImage src={exampleSrc} alt='Size 48' size={48} />
43
43
  <MediaImage src={exampleSrc} alt='Size 56' size={56} />
44
44
  <MediaImage src={exampleSrc} alt='Size 64' size={64} />
45
+ <MediaImage src={exampleSrc} alt='Size 72' size={72} />
45
46
  </Box>
46
47
  ),
47
48
  };
@@ -67,6 +68,7 @@ export const FallbackShowcase: Story = {
67
68
  <MediaImage fallback='Bitcoin' alt='Bitcoin' size={48} />
68
69
  <MediaImage fallback='Bitcoin' alt='Bitcoin' size={56} />
69
70
  <MediaImage fallback='Bitcoin' alt='Bitcoin' size={64} />
71
+ <MediaImage fallback='Bitcoin' alt='Bitcoin' size={72} />
70
72
  </Box>
71
73
  ),
72
74
  };
@@ -83,6 +85,25 @@ export const LoadingShowcase: Story = {
83
85
  <MediaImage loading alt='Loading' size={48} />
84
86
  <MediaImage loading alt='Loading' size={56} />
85
87
  <MediaImage loading alt='Loading' size={64} />
88
+ <MediaImage loading alt='Loading' size={72} />
89
+ </Box>
90
+ ),
91
+ };
92
+
93
+ export const DisabledShowcase: Story = {
94
+ render: () => (
95
+ <Box lx={{ flexDirection: 'row', alignItems: 'flex-end', gap: 's16' }}>
96
+ <MediaImage src={exampleSrc} alt='Cardano' size={32} disabled />
97
+ <MediaImage src={exampleSrc} alt='Cardano' size={48} disabled />
98
+ <MediaImage
99
+ src={exampleSrc}
100
+ alt='Cardano'
101
+ size={48}
102
+ shape='circle'
103
+ disabled
104
+ />
105
+ <MediaImage fallback='Bitcoin' alt='Bitcoin' size={48} disabled />
106
+ <MediaImage alt='Empty' size={48} disabled />
86
107
  </Box>
87
108
  ),
88
109
  };
@@ -1,3 +1,4 @@
1
+ import { useDisabledContext } from '@ledgerhq/lumen-utils-shared';
1
2
  import { useEffect, useState } from 'react';
2
3
  import { Image, StyleSheet } from 'react-native';
3
4
  import { useStyleSheet } from '../../../styles';
@@ -19,6 +20,7 @@ const borderRadiusMap: Record<MediaImageSize, BorderRadiusKey> = {
19
20
  48: 'md',
20
21
  56: 'lg',
21
22
  64: 'lg',
23
+ 72: 'lg',
22
24
  };
23
25
 
24
26
  export const fontSizeMap: Record<MediaImageSize, number> = {
@@ -31,14 +33,17 @@ export const fontSizeMap: Record<MediaImageSize, number> = {
31
33
  48: 24,
32
34
  56: 24,
33
35
  64: 24,
36
+ 72: 32,
34
37
  };
35
38
 
36
39
  const useStyles = ({
37
40
  size,
38
41
  shape,
42
+ disabled,
39
43
  }: {
40
44
  size: MediaImageSize;
41
45
  shape: MediaImageShape;
46
+ disabled: boolean;
42
47
  }) => {
43
48
  return useStyleSheet(
44
49
  (t) => {
@@ -61,6 +66,7 @@ const useStyles = ({
61
66
  outlineWidth: 1,
62
67
  outlineOffset: -1,
63
68
  outlineStyle: 'solid',
69
+ ...(disabled && { opacity: 0.3 }),
64
70
  },
65
71
  image: {
66
72
  width: '100%',
@@ -72,7 +78,7 @@ const useStyles = ({
72
78
  },
73
79
  };
74
80
  },
75
- [size, shape],
81
+ [size, shape, disabled],
76
82
  );
77
83
  };
78
84
 
@@ -99,6 +105,7 @@ export const MediaImage = ({
99
105
  shape = 'square',
100
106
  fallback,
101
107
  loading = false,
108
+ disabled: disabledProp = false,
102
109
  lx = {},
103
110
  style,
104
111
  ref,
@@ -106,7 +113,11 @@ export const MediaImage = ({
106
113
  }: MediaImageProps) => {
107
114
  const [error, setError] = useState(false);
108
115
  const shouldFallback = !src || error;
109
- const styles = useStyles({ size, shape });
116
+ const disabled = useDisabledContext({
117
+ consumerName: 'MediaImage',
118
+ mergeWith: { disabled: disabledProp },
119
+ });
120
+ const styles = useStyles({ size, shape, disabled });
110
121
 
111
122
  useEffect(() => {
112
123
  setError(false);
@@ -119,6 +130,7 @@ export const MediaImage = ({
119
130
  style={StyleSheet.flatten([styles.root, style])}
120
131
  accessibilityRole='image'
121
132
  accessibilityLabel={alt}
133
+ accessibilityState={{ disabled }}
122
134
  {...props}
123
135
  >
124
136
  {loading && <Skeleton style={styles.skeleton} />}
@@ -1,6 +1,6 @@
1
1
  import type { StyledViewProps } from '../../../styles';
2
2
 
3
- export type MediaImageSize = 12 | 16 | 20 | 24 | 32 | 40 | 48 | 56 | 64;
3
+ export type MediaImageSize = 12 | 16 | 20 | 24 | 32 | 40 | 48 | 56 | 64 | 72;
4
4
 
5
5
  export type MediaImageShape = 'square' | 'circle';
6
6
 
@@ -36,4 +36,10 @@ export type MediaImageProps = {
36
36
  * @default false
37
37
  */
38
38
  loading?: boolean;
39
+ /**
40
+ * Shows a disabled appearance.
41
+ * @optional
42
+ * @default false
43
+ */
44
+ disabled?: boolean;
39
45
  } & Omit<StyledViewProps, 'children'>;
@@ -2,12 +2,12 @@ import { useStyleSheet } from '../../../styles';
2
2
  import { Box, Text } from '../Utility';
3
3
  import type { CoinCapsuleProps } from './types';
4
4
 
5
- export function CoinCapsule({ ticker, icon }: CoinCapsuleProps) {
5
+ export function CoinCapsule({ ticker, leadingContent }: CoinCapsuleProps) {
6
6
  const styles = useStyles();
7
7
 
8
8
  return (
9
9
  <Box style={styles.container}>
10
- {icon}
10
+ {leadingContent}
11
11
  <Text style={styles.text}>{ticker}</Text>
12
12
  </Box>
13
13
  );
@@ -7,7 +7,7 @@ import CommonRulesDoAndDont from '../../../../.storybook/components/DoVsDont/Com
7
7
 
8
8
  <Meta title='Navigation/NavBar' of={NavBarStories} />
9
9
 
10
- # 🧭 NavBar
10
+ # NavBar
11
11
 
12
12
  <CustomTabs>
13
13
  <Tab label="Overview">
@@ -135,7 +135,7 @@ import { NavBarCoinCapsule } from '@ledgerhq/lumen-ui-rnative';
135
135
  <NavBarContent>
136
136
  <NavBarCoinCapsule
137
137
  ticker='BTC'
138
- icon={<Icon ledgerId='bitcoin' ticker='BTC' size={24} />}
138
+ leadingContent={<Icon ledgerId='bitcoin' ticker='BTC' size={24} />}
139
139
  />
140
140
  <NavBarTitle>Bitcoin</NavBarTitle>
141
141
  </NavBarContent>
@@ -111,7 +111,9 @@ export const WithCoinCapsule: Story = {
111
111
  <NavBarContent>
112
112
  <NavBarCoinCapsule
113
113
  ticker='BTC'
114
- icon={<CryptoIcon ledgerId='bitcoin' ticker='BTC' size={24} />}
114
+ leadingContent={
115
+ <CryptoIcon ledgerId='bitcoin' ticker='BTC' size={24} />
116
+ }
115
117
  />
116
118
  </NavBarContent>
117
119
  <NavBarTrailing>
@@ -69,7 +69,7 @@ describe('NavBar', () => {
69
69
  renderWithProvider(
70
70
  <NavBar testID='navbar' density='compact'>
71
71
  <NavBarContent>
72
- <NavBarCoinCapsule ticker='BTC' icon={<MockIcon />} />
72
+ <NavBarCoinCapsule ticker='BTC' leadingContent={<MockIcon />} />
73
73
  </NavBarContent>
74
74
  </NavBar>,
75
75
  );
@@ -252,11 +252,11 @@ describe('NavBar', () => {
252
252
  });
253
253
 
254
254
  describe('NavBarCoinCapsule', () => {
255
- it('should render ticker and icon', () => {
255
+ it('should render ticker and leading content', () => {
256
256
  renderWithProvider(
257
257
  <NavBar density='compact'>
258
258
  <NavBarContent>
259
- <NavBarCoinCapsule ticker='ETH' icon={<MockIcon />} />
259
+ <NavBarCoinCapsule ticker='ETH' leadingContent={<MockIcon />} />
260
260
  </NavBarContent>
261
261
  </NavBar>,
262
262
  );
@@ -122,12 +122,12 @@ export function NavBarDescription({
122
122
 
123
123
  export function NavBarCoinCapsule({
124
124
  ticker,
125
- icon,
125
+ leadingContent,
126
126
  ...props
127
127
  }: NavBarCoinCapsuleProps) {
128
128
  return (
129
129
  <Box {...props}>
130
- <CoinCapsule ticker={ticker} icon={icon} />
130
+ <CoinCapsule ticker={ticker} leadingContent={leadingContent} />
131
131
  </Box>
132
132
  );
133
133
  }
@@ -1,5 +1,5 @@
1
1
  import type { Density } from '@ledgerhq/lumen-utils-shared';
2
- import type { ReactElement, ReactNode } from 'react';
2
+ import type { ReactNode } from 'react';
3
3
  import type { StyledViewProps } from '../../../styles';
4
4
  import type { IconButtonProps } from '../IconButton';
5
5
 
@@ -57,9 +57,9 @@ export type CoinCapsuleProps = {
57
57
  */
58
58
  ticker: string;
59
59
  /**
60
- * The icon element to display (typically a crypto coin icon).
60
+ * The leading content, typically a crypto coin icon.
61
61
  */
62
- icon: ReactElement;
62
+ leadingContent: ReactNode;
63
63
  } & Omit<StyledViewProps, 'children'>;
64
64
 
65
65
  /**
@@ -17,7 +17,7 @@ import {
17
17
 
18
18
  ## Introduction
19
19
 
20
- OptionList is a data-driven, composable selection list designed to be embedded inside a `BottomSheet`, a new screen, or any container. Unlike `Select`, it does not manage its own trigger or modal — consumers compose it within their own layout.
20
+ OptionList is a data-driven, composable selection list designed to be embedded inside a `BottomSheet`, a new screen, or any container.
21
21
 
22
22
  It handles **selection state**, **automatic grouping** (via a `group` field on items), and exposes a `renderItem` callback for full control over item rendering.
23
23
 
@@ -865,8 +865,8 @@ export const TriggerShowcase: Story = {
865
865
  <MediaButton
866
866
  appearance='gray'
867
867
  onPress={() => iconRef.current?.present()}
868
- icon={<Settings size={20} />}
869
- iconType='flat'
868
+ leadingContent={<Settings size={20} />}
869
+ leadingContentShape='flat'
870
870
  >
871
871
  {selectedIcon?.label ?? 'Settings'}
872
872
  </MediaButton>
@@ -874,7 +874,7 @@ export const TriggerShowcase: Story = {
874
874
  <MediaButton
875
875
  appearance='gray'
876
876
  onPress={() => cryptoRef.current?.present()}
877
- icon={
877
+ leadingContent={
878
878
  selectedCrypto?.meta ? (
879
879
  <CryptoIcon
880
880
  ledgerId={selectedCrypto.meta.ledgerId as string}
@@ -883,7 +883,7 @@ export const TriggerShowcase: Story = {
883
883
  />
884
884
  ) : undefined
885
885
  }
886
- iconType='rounded'
886
+ leadingContentShape='rounded'
887
887
  >
888
888
  {selectedCrypto?.label ?? 'Network'}
889
889
  </MediaButton>