@ledgerhq/lumen-ui-rnative 0.1.47 → 0.1.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (362) hide show
  1. package/dist/module/i18n/locales/de.json +1 -3
  2. package/dist/module/i18n/locales/en.json +1 -3
  3. package/dist/module/i18n/locales/es.json +1 -3
  4. package/dist/module/i18n/locales/fr.json +1 -3
  5. package/dist/module/i18n/locales/ja.json +1 -3
  6. package/dist/module/i18n/locales/ko.json +1 -3
  7. package/dist/module/i18n/locales/pt.json +1 -3
  8. package/dist/module/i18n/locales/ru.json +1 -3
  9. package/dist/module/i18n/locales/th.json +1 -3
  10. package/dist/module/i18n/locales/tr.json +1 -3
  11. package/dist/module/i18n/locales/zh.json +1 -3
  12. package/dist/module/lib/Animations/Pulse/Pulse.js +3 -3
  13. package/dist/module/lib/Animations/Pulse/Pulse.js.map +1 -1
  14. package/dist/module/lib/Animations/Pulse/Pulse.mdx +0 -1
  15. package/dist/module/lib/Animations/Spin/Spin.js +3 -3
  16. package/dist/module/lib/Animations/Spin/Spin.js.map +1 -1
  17. package/dist/module/lib/Animations/Spin/Spin.mdx +0 -1
  18. package/dist/module/lib/Components/AddressInput/AddressInput.figma.js +36 -0
  19. package/dist/module/lib/Components/AddressInput/AddressInput.figma.js.map +1 -0
  20. package/dist/module/lib/Components/AddressInput/AddressInput.mdx +0 -183
  21. package/dist/module/lib/Components/AmountDisplay/AmountDisplay.figma.js +31 -0
  22. package/dist/module/lib/Components/AmountDisplay/AmountDisplay.figma.js.map +1 -0
  23. package/dist/module/lib/Components/AmountDisplay/AmountDisplay.mdx +0 -90
  24. package/dist/module/lib/Components/AmountInput/AmountInput.figma.js +70 -0
  25. package/dist/module/lib/Components/AmountInput/AmountInput.figma.js.map +1 -0
  26. package/dist/module/lib/Components/AmountInput/AmountInput.js +3 -1
  27. package/dist/module/lib/Components/AmountInput/AmountInput.js.map +1 -1
  28. package/dist/module/lib/Components/AmountInput/AmountInput.mdx +0 -190
  29. package/dist/module/lib/Components/AmountInput/AmountInput.stories.js +15 -0
  30. package/dist/module/lib/Components/AmountInput/AmountInput.stories.js.map +1 -1
  31. package/dist/module/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.js +1 -1
  32. package/dist/module/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.js.map +1 -1
  33. package/dist/module/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.test.js +20 -1
  34. package/dist/module/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.test.js.map +1 -1
  35. package/dist/module/lib/Components/Avatar/Avatar.figma.js +15 -12
  36. package/dist/module/lib/Components/Avatar/Avatar.figma.js.map +1 -1
  37. package/dist/module/lib/Components/Avatar/Avatar.js +4 -27
  38. package/dist/module/lib/Components/Avatar/Avatar.js.map +1 -1
  39. package/dist/module/lib/Components/Avatar/Avatar.mdx +53 -69
  40. package/dist/module/lib/Components/Avatar/Avatar.stories.js +27 -33
  41. package/dist/module/lib/Components/Avatar/Avatar.stories.js.map +1 -1
  42. package/dist/module/lib/Components/Avatar/Avatar.test.js +21 -39
  43. package/dist/module/lib/Components/Avatar/Avatar.test.js.map +1 -1
  44. package/dist/module/lib/Components/Banner/Banner.figma.js +107 -0
  45. package/dist/module/lib/Components/Banner/Banner.figma.js.map +1 -0
  46. package/dist/module/lib/Components/Banner/Banner.mdx +0 -86
  47. package/dist/module/lib/Components/BottomSheet/BottomSheet.figma.js +49 -0
  48. package/dist/module/lib/Components/BottomSheet/BottomSheet.figma.js.map +1 -0
  49. package/dist/module/lib/Components/BottomSheet/BottomSheet.mdx +0 -119
  50. package/dist/module/lib/Components/Button/Button.figma.js +45 -0
  51. package/dist/module/lib/Components/Button/Button.figma.js.map +1 -0
  52. package/dist/module/lib/Components/Button/Button.mdx +25 -224
  53. package/dist/module/lib/Components/Button/Button.stories.js +4 -36
  54. package/dist/module/lib/Components/Button/Button.stories.js.map +1 -1
  55. package/dist/module/lib/Components/Card/Card.figma.js +143 -0
  56. package/dist/module/lib/Components/Card/Card.figma.js.map +1 -0
  57. package/dist/module/lib/Components/Card/Card.mdx +0 -160
  58. package/dist/module/lib/Components/CardButton/CardButton.figma.js +38 -0
  59. package/dist/module/lib/Components/CardButton/CardButton.figma.js.map +1 -0
  60. package/dist/module/lib/Components/CardButton/CardButton.mdx +0 -48
  61. package/dist/module/lib/Components/Checkbox/Checkbox.figma.js +48 -0
  62. package/dist/module/lib/Components/Checkbox/Checkbox.figma.js.map +1 -0
  63. package/dist/module/lib/Components/Checkbox/Checkbox.mdx +0 -73
  64. package/dist/module/lib/Components/ContentBanner/ContentBanner.figma.js +91 -0
  65. package/dist/module/lib/Components/ContentBanner/ContentBanner.figma.js.map +1 -0
  66. package/dist/module/lib/Components/ContentBanner/ContentBanner.mdx +0 -2
  67. package/dist/module/lib/Components/CryptoIcon/CryptoIcon.figma.js +17 -0
  68. package/dist/module/lib/Components/CryptoIcon/CryptoIcon.figma.js.map +1 -0
  69. package/dist/module/lib/Components/DescriptionItem/DescriptionItem.figma.js +29 -0
  70. package/dist/module/lib/Components/DescriptionItem/DescriptionItem.figma.js.map +1 -0
  71. package/dist/module/lib/Components/Divider/Divider.figma.js +10 -0
  72. package/dist/module/lib/Components/Divider/Divider.figma.js.map +1 -0
  73. package/dist/module/lib/Components/Divider/Divider.mdx +0 -2
  74. package/dist/module/lib/Components/DotCount/DotCount.figma.js +29 -0
  75. package/dist/module/lib/Components/DotCount/DotCount.figma.js.map +1 -0
  76. package/dist/module/lib/Components/DotIndicator/DotIndicator.figma.js +29 -0
  77. package/dist/module/lib/Components/DotIndicator/DotIndicator.figma.js.map +1 -0
  78. package/dist/module/lib/Components/DotIndicator/DotIndicator.stories.js +6 -3
  79. package/dist/module/lib/Components/DotIndicator/DotIndicator.stories.js.map +1 -1
  80. package/dist/module/lib/Components/DotIndicator/getDotIndicatorProps.js +17 -0
  81. package/dist/module/lib/Components/DotIndicator/getDotIndicatorProps.js.map +1 -0
  82. package/dist/module/lib/Components/DotIndicator/getDotIndicatorProps.test.js +17 -0
  83. package/dist/module/lib/Components/DotIndicator/getDotIndicatorProps.test.js.map +1 -0
  84. package/dist/module/lib/Components/DotIndicator/index.js +1 -0
  85. package/dist/module/lib/Components/DotIndicator/index.js.map +1 -1
  86. package/dist/module/lib/Components/Icon/Icon.figma.js +1840 -0
  87. package/dist/module/lib/Components/Icon/Icon.figma.js.map +1 -0
  88. package/dist/module/lib/Components/Icon/Icon.mdx +0 -62
  89. package/dist/module/lib/Components/IconButton/IconButton.figma.js +42 -0
  90. package/dist/module/lib/Components/IconButton/IconButton.figma.js.map +1 -0
  91. package/dist/module/lib/Components/IconButton/IconButton.mdx +0 -68
  92. package/dist/module/lib/Components/InteractiveIcon/InteractiveIcon.figma.js +51 -0
  93. package/dist/module/lib/Components/InteractiveIcon/InteractiveIcon.figma.js.map +1 -0
  94. package/dist/module/lib/Components/InteractiveIcon/InteractiveIcon.mdx +0 -107
  95. package/dist/module/lib/Components/Link/Link.figma.js +41 -0
  96. package/dist/module/lib/Components/Link/Link.figma.js.map +1 -0
  97. package/dist/module/lib/Components/Link/Link.mdx +0 -102
  98. package/dist/module/lib/Components/ListItem/ListItem.figma.js +416 -0
  99. package/dist/module/lib/Components/ListItem/ListItem.figma.js.map +1 -0
  100. package/dist/module/lib/Components/ListItem/ListItem.mdx +0 -129
  101. package/dist/module/lib/Components/MediaBanner/MediaBanner.figma.js +25 -0
  102. package/dist/module/lib/Components/MediaBanner/MediaBanner.figma.js.map +1 -0
  103. package/dist/module/lib/Components/MediaBanner/MediaBanner.mdx +0 -3
  104. package/dist/module/lib/Components/MediaButton/MediaButton.figma.js +72 -0
  105. package/dist/module/lib/Components/MediaButton/MediaButton.figma.js.map +1 -0
  106. package/dist/module/lib/Components/MediaCard/MediaCard.figma.js +28 -0
  107. package/dist/module/lib/Components/MediaCard/MediaCard.figma.js.map +1 -0
  108. package/dist/module/lib/Components/MediaCard/MediaCard.mdx +0 -2
  109. package/dist/module/lib/Components/MediaImage/MediaImage.mdx +0 -1
  110. package/dist/module/lib/Components/MediaTag/MediaTag.figma.js +100 -0
  111. package/dist/module/lib/Components/MediaTag/MediaTag.figma.js.map +1 -0
  112. package/dist/module/lib/Components/MediaTag/MediaTag.mdx +0 -2
  113. package/dist/module/lib/Components/NavBar/NavBar.figma.js +79 -0
  114. package/dist/module/lib/Components/NavBar/NavBar.figma.js.map +1 -0
  115. package/dist/module/lib/Components/NavBar/NavBar.mdx +0 -2
  116. package/dist/module/lib/Components/OptionList/OptionList.js +16 -1
  117. package/dist/module/lib/Components/OptionList/OptionList.js.map +1 -1
  118. package/dist/module/lib/Components/OptionList/OptionList.mdx +45 -90
  119. package/dist/module/lib/Components/OptionList/OptionList.stories.js +61 -1
  120. package/dist/module/lib/Components/OptionList/OptionList.stories.js.map +1 -1
  121. package/dist/module/lib/Components/OptionList/OptionList.test.js +43 -1
  122. package/dist/module/lib/Components/OptionList/OptionList.test.js.map +1 -1
  123. package/dist/module/lib/Components/OptionList/useOptionList/useOptionListItems.js.map +1 -1
  124. package/dist/module/lib/Components/PageIndicator/PageIndicator.figma.js +13 -0
  125. package/dist/module/lib/Components/PageIndicator/PageIndicator.figma.js.map +1 -0
  126. package/dist/module/lib/Components/PageIndicator/PageIndicator.mdx +0 -2
  127. package/dist/module/lib/Components/SearchInput/SearchInput.figma.js +31 -0
  128. package/dist/module/lib/Components/SearchInput/SearchInput.figma.js.map +1 -0
  129. package/dist/module/lib/Components/SearchInput/SearchInput.mdx +0 -199
  130. package/dist/module/lib/Components/SegmentedControl/SegmentedControl.figma.js +35 -0
  131. package/dist/module/lib/Components/SegmentedControl/SegmentedControl.figma.js.map +1 -0
  132. package/dist/module/lib/Components/SegmentedControl/SegmentedControl.js +7 -1
  133. package/dist/module/lib/Components/SegmentedControl/SegmentedControl.js.map +1 -1
  134. package/dist/module/lib/Components/SegmentedControl/SegmentedControl.mdx +28 -1
  135. package/dist/module/lib/Components/SegmentedControl/SegmentedControl.stories.js +24 -1
  136. package/dist/module/lib/Components/SegmentedControl/SegmentedControl.stories.js.map +1 -1
  137. package/dist/module/lib/Components/SegmentedControl/SegmentedControl.test.js +28 -1
  138. package/dist/module/lib/Components/SegmentedControl/SegmentedControl.test.js.map +1 -1
  139. package/dist/module/lib/Components/Skeleton/Skeleton.figma.js +18 -0
  140. package/dist/module/lib/Components/Skeleton/Skeleton.figma.js.map +1 -0
  141. package/dist/module/lib/Components/Skeleton/Skeleton.mdx +0 -71
  142. package/dist/module/lib/Components/Spinner/Spinner.figma.js +13 -0
  143. package/dist/module/lib/Components/Spinner/Spinner.figma.js.map +1 -0
  144. package/dist/module/lib/Components/Spinner/Spinner.mdx +0 -100
  145. package/dist/module/lib/Components/Spot/Spot.figma.js +37 -0
  146. package/dist/module/lib/Components/Spot/Spot.figma.js.map +1 -0
  147. package/dist/module/lib/Components/Spot/Spot.mdx +0 -94
  148. package/dist/module/lib/Components/Stepper/Stepper.figma.js +13 -0
  149. package/dist/module/lib/Components/Stepper/Stepper.figma.js.map +1 -0
  150. package/dist/module/lib/Components/Stepper/Stepper.mdx +0 -67
  151. package/dist/module/lib/Components/Subheader/Subheader.figma.js +67 -0
  152. package/dist/module/lib/Components/Subheader/Subheader.figma.js.map +1 -0
  153. package/dist/module/lib/Components/Subheader/Subheader.mdx +0 -116
  154. package/dist/module/lib/Components/Switch/Switch.figma.js +58 -0
  155. package/dist/module/lib/Components/Switch/Switch.figma.js.map +1 -0
  156. package/dist/module/lib/Components/Switch/Switch.mdx +0 -39
  157. package/dist/module/lib/Components/TabBar/TabBar.figma.js +98 -0
  158. package/dist/module/lib/Components/TabBar/TabBar.figma.js.map +1 -0
  159. package/dist/module/lib/Components/TabBar/TabBar.js +7 -4
  160. package/dist/module/lib/Components/TabBar/TabBar.js.map +1 -1
  161. package/dist/module/lib/Components/TabBar/TabBar.mdx +29 -5
  162. package/dist/module/lib/Components/TabBar/TabBar.stories.js +35 -1
  163. package/dist/module/lib/Components/TabBar/TabBar.stories.js.map +1 -1
  164. package/dist/module/lib/Components/TabBar/TabBar.test.js +28 -1
  165. package/dist/module/lib/Components/TabBar/TabBar.test.js.map +1 -1
  166. package/dist/module/lib/Components/TabBar/index.js +2 -1
  167. package/dist/module/lib/Components/TabBar/index.js.map +1 -1
  168. package/dist/module/lib/Components/Tag/Tag.figma.js +41 -0
  169. package/dist/module/lib/Components/Tag/Tag.figma.js.map +1 -0
  170. package/dist/module/lib/Components/Tag/Tag.mdx +0 -2
  171. package/dist/module/lib/Components/TextInput/TextInput.figma.js +37 -0
  172. package/dist/module/lib/Components/TextInput/TextInput.figma.js.map +1 -0
  173. package/dist/module/lib/Components/TextInput/TextInput.mdx +0 -178
  174. package/dist/module/lib/Components/Tile/Tile.figma.js +111 -0
  175. package/dist/module/lib/Components/Tile/Tile.figma.js.map +1 -0
  176. package/dist/module/lib/Components/Tile/Tile.mdx +0 -53
  177. package/dist/module/lib/Components/TileButton/TileButton.figma.js +23 -0
  178. package/dist/module/lib/Components/TileButton/TileButton.figma.js.map +1 -0
  179. package/dist/module/lib/Components/TileButton/TileButton.mdx +0 -40
  180. package/dist/module/lib/Components/Tooltip/Tooltip.figma.js +26 -0
  181. package/dist/module/lib/Components/Tooltip/Tooltip.figma.js.map +1 -0
  182. package/dist/module/lib/Components/Tooltip/Tooltip.mdx +0 -183
  183. package/dist/module/lib/Components/Trend/Trend.figma.js +29 -0
  184. package/dist/module/lib/Components/Trend/Trend.figma.js.map +1 -0
  185. package/dist/module/lib/Components/Trend/Trend.mdx +0 -2
  186. package/dist/module/lib/Components/Utility/Text/Text.mdx +0 -1
  187. package/dist/module/lib/Symbols/Icons/ChevronAscending.js +1 -1
  188. package/dist/module/lib/Symbols/Icons/ChevronDescending.js +1 -1
  189. package/dist/module/lib/Symbols/Icons/Contact.js +50 -0
  190. package/dist/module/lib/Symbols/Icons/Contact.js.map +1 -0
  191. package/dist/module/lib/Symbols/index.js +1 -0
  192. package/dist/module/lib/Symbols/index.js.map +1 -1
  193. package/dist/typescript/src/lib/Animations/Pulse/Pulse.d.ts.map +1 -1
  194. package/dist/typescript/src/lib/Animations/Spin/Spin.d.ts.map +1 -1
  195. package/dist/typescript/src/lib/Components/AmountInput/AmountInput.d.ts +1 -1
  196. package/dist/typescript/src/lib/Components/AmountInput/AmountInput.d.ts.map +1 -1
  197. package/dist/typescript/src/lib/Components/AmountInput/types.d.ts +8 -0
  198. package/dist/typescript/src/lib/Components/AmountInput/types.d.ts.map +1 -1
  199. package/dist/typescript/src/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.d.ts +1 -0
  200. package/dist/typescript/src/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.d.ts.map +1 -1
  201. package/dist/typescript/src/lib/Components/Avatar/Avatar.d.ts +1 -4
  202. package/dist/typescript/src/lib/Components/Avatar/Avatar.d.ts.map +1 -1
  203. package/dist/typescript/src/lib/Components/Avatar/types.d.ts +0 -6
  204. package/dist/typescript/src/lib/Components/Avatar/types.d.ts.map +1 -1
  205. package/dist/typescript/src/lib/Components/DotIndicator/getDotIndicatorProps.d.ts +24 -0
  206. package/dist/typescript/src/lib/Components/DotIndicator/getDotIndicatorProps.d.ts.map +1 -0
  207. package/dist/typescript/src/lib/Components/DotIndicator/index.d.ts +1 -0
  208. package/dist/typescript/src/lib/Components/DotIndicator/index.d.ts.map +1 -1
  209. package/dist/typescript/src/lib/Components/OptionList/OptionList.d.ts +18 -4
  210. package/dist/typescript/src/lib/Components/OptionList/OptionList.d.ts.map +1 -1
  211. package/dist/typescript/src/lib/Components/OptionList/types.d.ts +16 -15
  212. package/dist/typescript/src/lib/Components/OptionList/types.d.ts.map +1 -1
  213. package/dist/typescript/src/lib/Components/OptionList/useOptionList/useOptionListItems.d.ts +9 -9
  214. package/dist/typescript/src/lib/Components/OptionList/useOptionList/useOptionListItems.d.ts.map +1 -1
  215. package/dist/typescript/src/lib/Components/SegmentedControl/SegmentedControl.d.ts +8 -3
  216. package/dist/typescript/src/lib/Components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  217. package/dist/typescript/src/lib/Components/SegmentedControl/types.d.ts +6 -5
  218. package/dist/typescript/src/lib/Components/SegmentedControl/types.d.ts.map +1 -1
  219. package/dist/typescript/src/lib/Components/TabBar/TabBar.d.ts +7 -2
  220. package/dist/typescript/src/lib/Components/TabBar/TabBar.d.ts.map +1 -1
  221. package/dist/typescript/src/lib/Components/TabBar/index.d.ts +2 -2
  222. package/dist/typescript/src/lib/Components/TabBar/index.d.ts.map +1 -1
  223. package/dist/typescript/src/lib/Components/TabBar/types.d.ts +17 -16
  224. package/dist/typescript/src/lib/Components/TabBar/types.d.ts.map +1 -1
  225. package/dist/typescript/src/lib/Symbols/Icons/Contact.d.ts +35 -0
  226. package/dist/typescript/src/lib/Symbols/Icons/Contact.d.ts.map +1 -0
  227. package/dist/typescript/src/lib/Symbols/index.d.ts +1 -0
  228. package/dist/typescript/src/lib/Symbols/index.d.ts.map +1 -1
  229. package/package.json +3 -3
  230. package/src/i18n/locales/de.json +1 -3
  231. package/src/i18n/locales/en.json +1 -3
  232. package/src/i18n/locales/es.json +1 -3
  233. package/src/i18n/locales/fr.json +1 -3
  234. package/src/i18n/locales/ja.json +1 -3
  235. package/src/i18n/locales/ko.json +1 -3
  236. package/src/i18n/locales/pt.json +1 -3
  237. package/src/i18n/locales/ru.json +1 -3
  238. package/src/i18n/locales/th.json +1 -3
  239. package/src/i18n/locales/tr.json +1 -3
  240. package/src/i18n/locales/zh.json +1 -3
  241. package/src/lib/Animations/Pulse/Pulse.mdx +0 -1
  242. package/src/lib/Animations/Pulse/Pulse.tsx +8 -1
  243. package/src/lib/Animations/Spin/Spin.mdx +0 -1
  244. package/src/lib/Animations/Spin/Spin.tsx +8 -1
  245. package/src/lib/Components/AddressInput/AddressInput.figma.tsx +39 -0
  246. package/src/lib/Components/AddressInput/AddressInput.mdx +0 -183
  247. package/src/lib/Components/AmountDisplay/AmountDisplay.figma.tsx +37 -0
  248. package/src/lib/Components/AmountDisplay/AmountDisplay.mdx +0 -90
  249. package/src/lib/Components/AmountInput/AmountInput.figma.tsx +78 -0
  250. package/src/lib/Components/AmountInput/AmountInput.mdx +0 -190
  251. package/src/lib/Components/AmountInput/AmountInput.stories.tsx +14 -0
  252. package/src/lib/Components/AmountInput/AmountInput.tsx +2 -0
  253. package/src/lib/Components/AmountInput/types.ts +8 -0
  254. package/src/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.test.ts +20 -0
  255. package/src/lib/Components/AmountInput/useAmountInputFormatting/useAmountInputFormatting.ts +2 -0
  256. package/src/lib/Components/Avatar/Avatar.figma.tsx +24 -14
  257. package/src/lib/Components/Avatar/Avatar.mdx +53 -69
  258. package/src/lib/Components/Avatar/Avatar.stories.tsx +16 -50
  259. package/src/lib/Components/Avatar/Avatar.test.tsx +12 -32
  260. package/src/lib/Components/Avatar/Avatar.tsx +4 -34
  261. package/src/lib/Components/Avatar/types.ts +0 -6
  262. package/src/lib/Components/Banner/Banner.figma.tsx +115 -0
  263. package/src/lib/Components/Banner/Banner.mdx +0 -86
  264. package/src/lib/Components/BottomSheet/BottomSheet.figma.tsx +52 -0
  265. package/src/lib/Components/BottomSheet/BottomSheet.mdx +0 -119
  266. package/src/lib/Components/Button/Button.figma.tsx +57 -0
  267. package/src/lib/Components/Button/Button.mdx +25 -224
  268. package/src/lib/Components/Button/Button.stories.tsx +3 -35
  269. package/src/lib/Components/Card/Card.figma.tsx +149 -0
  270. package/src/lib/Components/Card/Card.mdx +0 -160
  271. package/src/lib/Components/CardButton/CardButton.figma.tsx +49 -0
  272. package/src/lib/Components/CardButton/CardButton.mdx +0 -48
  273. package/src/lib/Components/Checkbox/Checkbox.figma.tsx +54 -0
  274. package/src/lib/Components/Checkbox/Checkbox.mdx +0 -73
  275. package/src/lib/Components/ContentBanner/ContentBanner.figma.tsx +108 -0
  276. package/src/lib/Components/ContentBanner/ContentBanner.mdx +0 -2
  277. package/src/lib/Components/CryptoIcon/CryptoIcon.figma.tsx +20 -0
  278. package/src/lib/Components/DescriptionItem/DescriptionItem.figma.tsx +36 -0
  279. package/src/lib/Components/Divider/Divider.figma.tsx +11 -0
  280. package/src/lib/Components/Divider/Divider.mdx +0 -2
  281. package/src/lib/Components/DotCount/DotCount.figma.tsx +32 -0
  282. package/src/lib/Components/DotIndicator/DotIndicator.figma.tsx +32 -0
  283. package/src/lib/Components/DotIndicator/DotIndicator.stories.tsx +4 -1
  284. package/src/lib/Components/DotIndicator/getDotIndicatorProps.test.ts +15 -0
  285. package/src/lib/Components/DotIndicator/getDotIndicatorProps.ts +10 -0
  286. package/src/lib/Components/DotIndicator/index.ts +1 -0
  287. package/src/lib/Components/Icon/Icon.figma.tsx +3085 -0
  288. package/src/lib/Components/Icon/Icon.mdx +0 -62
  289. package/src/lib/Components/IconButton/IconButton.figma.tsx +53 -0
  290. package/src/lib/Components/IconButton/IconButton.mdx +0 -68
  291. package/src/lib/Components/InteractiveIcon/InteractiveIcon.figma.tsx +52 -0
  292. package/src/lib/Components/InteractiveIcon/InteractiveIcon.mdx +0 -107
  293. package/src/lib/Components/Link/Link.figma.tsx +53 -0
  294. package/src/lib/Components/Link/Link.mdx +0 -102
  295. package/src/lib/Components/ListItem/ListItem.figma.tsx +431 -0
  296. package/src/lib/Components/ListItem/ListItem.mdx +0 -129
  297. package/src/lib/Components/MediaBanner/MediaBanner.figma.tsx +32 -0
  298. package/src/lib/Components/MediaBanner/MediaBanner.mdx +0 -3
  299. package/src/lib/Components/MediaButton/MediaButton.figma.tsx +60 -0
  300. package/src/lib/Components/MediaCard/MediaCard.figma.tsx +27 -0
  301. package/src/lib/Components/MediaCard/MediaCard.mdx +0 -2
  302. package/src/lib/Components/MediaImage/MediaImage.mdx +0 -1
  303. package/src/lib/Components/MediaTag/MediaTag.figma.tsx +116 -0
  304. package/src/lib/Components/MediaTag/MediaTag.mdx +0 -2
  305. package/src/lib/Components/NavBar/NavBar.figma.tsx +84 -0
  306. package/src/lib/Components/NavBar/NavBar.mdx +0 -2
  307. package/src/lib/Components/OptionList/OptionList.mdx +45 -90
  308. package/src/lib/Components/OptionList/OptionList.stories.tsx +63 -0
  309. package/src/lib/Components/OptionList/OptionList.test.tsx +40 -0
  310. package/src/lib/Components/OptionList/OptionList.tsx +57 -10
  311. package/src/lib/Components/OptionList/types.ts +34 -15
  312. package/src/lib/Components/OptionList/useOptionList/useOptionListItems.ts +28 -13
  313. package/src/lib/Components/PageIndicator/PageIndicator.figma.tsx +11 -0
  314. package/src/lib/Components/PageIndicator/PageIndicator.mdx +0 -2
  315. package/src/lib/Components/SearchInput/SearchInput.figma.tsx +34 -0
  316. package/src/lib/Components/SearchInput/SearchInput.mdx +0 -199
  317. package/src/lib/Components/SegmentedControl/SegmentedControl.figma.tsx +34 -0
  318. package/src/lib/Components/SegmentedControl/SegmentedControl.mdx +28 -1
  319. package/src/lib/Components/SegmentedControl/SegmentedControl.stories.tsx +34 -1
  320. package/src/lib/Components/SegmentedControl/SegmentedControl.test.tsx +32 -1
  321. package/src/lib/Components/SegmentedControl/SegmentedControl.tsx +22 -5
  322. package/src/lib/Components/SegmentedControl/types.ts +11 -5
  323. package/src/lib/Components/Skeleton/Skeleton.figma.tsx +17 -0
  324. package/src/lib/Components/Skeleton/Skeleton.mdx +0 -71
  325. package/src/lib/Components/Spinner/Spinner.figma.tsx +12 -0
  326. package/src/lib/Components/Spinner/Spinner.mdx +0 -100
  327. package/src/lib/Components/Spot/Spot.figma.tsx +50 -0
  328. package/src/lib/Components/Spot/Spot.mdx +0 -94
  329. package/src/lib/Components/Stepper/Stepper.figma.tsx +11 -0
  330. package/src/lib/Components/Stepper/Stepper.mdx +0 -67
  331. package/src/lib/Components/Subheader/Subheader.figma.tsx +72 -0
  332. package/src/lib/Components/Subheader/Subheader.mdx +0 -116
  333. package/src/lib/Components/Switch/Switch.figma.tsx +66 -0
  334. package/src/lib/Components/Switch/Switch.mdx +0 -39
  335. package/src/lib/Components/TabBar/TabBar.figma.tsx +70 -0
  336. package/src/lib/Components/TabBar/TabBar.mdx +29 -5
  337. package/src/lib/Components/TabBar/TabBar.stories.tsx +34 -1
  338. package/src/lib/Components/TabBar/TabBar.test.tsx +23 -1
  339. package/src/lib/Components/TabBar/TabBar.tsx +17 -9
  340. package/src/lib/Components/TabBar/index.ts +2 -2
  341. package/src/lib/Components/TabBar/types.ts +19 -17
  342. package/src/lib/Components/Tag/Tag.figma.tsx +52 -0
  343. package/src/lib/Components/Tag/Tag.mdx +0 -2
  344. package/src/lib/Components/TextInput/TextInput.figma.tsx +40 -0
  345. package/src/lib/Components/TextInput/TextInput.mdx +0 -178
  346. package/src/lib/Components/Tile/Tile.figma.tsx +113 -0
  347. package/src/lib/Components/Tile/Tile.mdx +0 -53
  348. package/src/lib/Components/TileButton/TileButton.figma.tsx +35 -0
  349. package/src/lib/Components/TileButton/TileButton.mdx +0 -40
  350. package/src/lib/Components/Tooltip/Tooltip.figma.tsx +30 -0
  351. package/src/lib/Components/Tooltip/Tooltip.mdx +0 -183
  352. package/src/lib/Components/Trend/Trend.figma.tsx +28 -0
  353. package/src/lib/Components/Trend/Trend.mdx +0 -2
  354. package/src/lib/Components/Utility/Text/Text.mdx +0 -1
  355. package/src/lib/Symbols/Icons/ChevronAscending.tsx +1 -1
  356. package/src/lib/Symbols/Icons/ChevronDescending.tsx +1 -1
  357. package/src/lib/Symbols/Icons/Contact.tsx +45 -0
  358. package/src/lib/Symbols/index.ts +1 -0
  359. package/dist/typescript/src/lib/Components/Avatar/Avatar.figma.d.ts +0 -2
  360. package/dist/typescript/src/lib/Components/Avatar/Avatar.figma.d.ts.map +0 -1
  361. package/dist/typescript/src/lib/Components/OptionList/OptionList.figma.d.ts +0 -2
  362. package/dist/typescript/src/lib/Components/OptionList/OptionList.figma.d.ts.map +0 -1
@@ -3,7 +3,11 @@ import { useState } from 'react';
3
3
  import { Coins, Nft, TransferHorizontal } from '../../Symbols';
4
4
  import { DotCount } from '../DotCount';
5
5
  import { Box } from '../Utility';
6
- import { SegmentedControl, SegmentedControlButton } from './SegmentedControl';
6
+ import {
7
+ createSegmentedControl,
8
+ SegmentedControl,
9
+ SegmentedControlButton,
10
+ } from './SegmentedControl';
7
11
 
8
12
  const meta = {
9
13
  id: 'rnative-segmentedcontrol',
@@ -171,3 +175,32 @@ export const WithTrailingContent: Story = {
171
175
  );
172
176
  },
173
177
  };
178
+
179
+ type View = 'preview' | 'raw' | 'blame';
180
+ const TypedSegmentedControl = createSegmentedControl<View>();
181
+
182
+ export const TypesafeFactory: Story = {
183
+ args: {} as React.ComponentProps<typeof SegmentedControl>,
184
+ render: (args) => {
185
+ const [view, setView] = useState<View>('preview');
186
+
187
+ return (
188
+ <TypedSegmentedControl.SegmentedControl
189
+ {...args}
190
+ selectedValue={view}
191
+ onSelectedChange={setView}
192
+ accessibilityLabel='File view'
193
+ >
194
+ <TypedSegmentedControl.SegmentedControlButton value='preview'>
195
+ Preview
196
+ </TypedSegmentedControl.SegmentedControlButton>
197
+ <TypedSegmentedControl.SegmentedControlButton value='raw'>
198
+ Raw
199
+ </TypedSegmentedControl.SegmentedControlButton>
200
+ <TypedSegmentedControl.SegmentedControlButton value='blame'>
201
+ Blame
202
+ </TypedSegmentedControl.SegmentedControlButton>
203
+ </TypedSegmentedControl.SegmentedControl>
204
+ );
205
+ },
206
+ };
@@ -3,7 +3,11 @@ import { ledgerLiveThemes } from '@ledgerhq/lumen-design-core';
3
3
  import { render, fireEvent } from '@testing-library/react-native';
4
4
  import { DotCount } from '../DotCount';
5
5
  import { ThemeProvider } from '../ThemeProvider/ThemeProvider';
6
- import { SegmentedControl, SegmentedControlButton } from './SegmentedControl';
6
+ import {
7
+ SegmentedControl,
8
+ SegmentedControlButton,
9
+ createSegmentedControl,
10
+ } from './SegmentedControl';
7
11
 
8
12
  const TestWrapper = ({ children }: { children: React.ReactNode }) => (
9
13
  <ThemeProvider themes={ledgerLiveThemes} colorScheme='dark' locale='en'>
@@ -172,4 +176,31 @@ describe('SegmentedControl', () => {
172
176
  expect(onSelectedChange).toHaveBeenCalledWith('preview');
173
177
  });
174
178
  });
179
+
180
+ describe('createSegmentedControl', () => {
181
+ it('returns typed components that render and select like the originals', () => {
182
+ const {
183
+ SegmentedControl: TypedControl,
184
+ SegmentedControlButton: TypedButton,
185
+ } = createSegmentedControl<'send' | 'receive'>();
186
+ const onSelectedChange = jest.fn();
187
+
188
+ const { getByText } = render(
189
+ <TestWrapper>
190
+ <TypedControl
191
+ selectedValue='send'
192
+ onSelectedChange={onSelectedChange}
193
+ accessibilityLabel='Transaction type'
194
+ >
195
+ <TypedButton value='send'>Send</TypedButton>
196
+ <TypedButton value='receive'>Receive</TypedButton>
197
+ </TypedControl>
198
+ </TestWrapper>,
199
+ );
200
+
201
+ fireEvent.press(getByText('Receive'));
202
+
203
+ expect(onSelectedChange).toHaveBeenCalledWith('receive');
204
+ });
205
+ });
175
206
  });
@@ -1,4 +1,5 @@
1
1
  import { useDisabledContext } from '@ledgerhq/lumen-utils-shared';
2
+ import type { ReactElement } from 'react';
2
3
  import type { LayoutChangeEvent } from 'react-native';
3
4
  import Animated from 'react-native-reanimated';
4
5
  import { useStyleSheet } from '../../../styles';
@@ -11,20 +12,23 @@ import {
11
12
  import type {
12
13
  SegmentedControlButtonProps,
13
14
  SegmentedControlProps,
15
+ SegmentedControlValue,
14
16
  } from './types';
15
17
  import {
16
18
  usePillLayout,
17
19
  useSegmentedControlSelectedIndex,
18
20
  } from './usePillLayout';
19
21
 
20
- export function SegmentedControlButton({
22
+ export function SegmentedControlButton<
23
+ T extends SegmentedControlValue = SegmentedControlValue,
24
+ >({
21
25
  value,
22
26
  children,
23
27
  icon: Icon,
24
28
  trailingContent,
25
29
  onPress,
26
30
  ...props
27
- }: SegmentedControlButtonProps) {
31
+ }: SegmentedControlButtonProps<T>) {
28
32
  const {
29
33
  selectedValue,
30
34
  onSelectedChange,
@@ -126,7 +130,9 @@ function useButtonStyles({
126
130
  return { ...styles, typography, textColor };
127
131
  }
128
132
 
129
- export function SegmentedControl({
133
+ export function SegmentedControl<
134
+ T extends SegmentedControlValue = SegmentedControlValue,
135
+ >({
130
136
  selectedValue,
131
137
  onSelectedChange,
132
138
  accessibilityLabel,
@@ -135,7 +141,7 @@ export function SegmentedControl({
135
141
  appearance = 'background',
136
142
  tabLayout = 'fixed',
137
143
  ...props
138
- }: SegmentedControlProps) {
144
+ }: SegmentedControlProps<T>) {
139
145
  const disabled = useDisabledContext({
140
146
  consumerName: 'SegmentedControl',
141
147
  mergeWith: { disabled: disabledProp },
@@ -160,7 +166,7 @@ export function SegmentedControl({
160
166
  <SegmentedControlContextProvider
161
167
  value={{
162
168
  selectedValue,
163
- onSelectedChange,
169
+ onSelectedChange: onSelectedChange as (value: string) => void,
164
170
  disabled,
165
171
  tabLayout,
166
172
  registerButtonLayout,
@@ -220,3 +226,14 @@ function useRootStyles({
220
226
  [disabled, appearance, tabLayout],
221
227
  );
222
228
  }
229
+
230
+ export function createSegmentedControl<
231
+ T extends SegmentedControlValue = never,
232
+ >(): {
233
+ SegmentedControl: (props: SegmentedControlProps<T>) => ReactElement;
234
+ SegmentedControlButton: (
235
+ props: SegmentedControlButtonProps<T>,
236
+ ) => ReactElement;
237
+ } {
238
+ return { SegmentedControl, SegmentedControlButton };
239
+ }
@@ -3,15 +3,19 @@ import type { LumenTextStyle, StyledPressableProps } from '../../../styles';
3
3
  import type { IconSize } from '../Icon';
4
4
  import type { BoxProps } from '../Utility';
5
5
 
6
- export type SegmentedControlProps = {
6
+ export type SegmentedControlValue = string;
7
+
8
+ export type SegmentedControlProps<
9
+ T extends SegmentedControlValue = SegmentedControlValue,
10
+ > = {
7
11
  /**
8
12
  * The value of the currently selected segment (drives the sliding pill).
9
13
  */
10
- selectedValue: string;
14
+ selectedValue: T;
11
15
  /**
12
16
  * Callback when the selected segment value changes.
13
17
  */
14
- onSelectedChange: (value: string) => void;
18
+ onSelectedChange: (value: T) => void;
15
19
  /**
16
20
  * When true, the entire control is disabled (no interaction, selected uses muted styling).
17
21
  */
@@ -43,11 +47,13 @@ type IconComponent = ComponentType<{
43
47
  color?: LumenTextStyle['color'];
44
48
  }>;
45
49
 
46
- export type SegmentedControlButtonProps = {
50
+ export type SegmentedControlButtonProps<
51
+ T extends SegmentedControlValue = SegmentedControlValue,
52
+ > = {
47
53
  /**
48
54
  * Value for this segment (must be unique among siblings).
49
55
  */
50
- value: string;
56
+ value: T;
51
57
  /**
52
58
  * Button label (e.g. "Preview", "Raw").
53
59
  */
@@ -0,0 +1,17 @@
1
+ import figma from '@figma/code-connect';
2
+ import { Skeleton } from './Skeleton';
3
+
4
+ figma.connect(
5
+ Skeleton,
6
+ 'https://www.figma.com/design/JxaLVMTWirCpU0rsbZ30k7?node-id=8004-10676',
7
+ {
8
+ imports: ["import { Skeleton } from '@ledgerhq/lumen-ui-rnative'"],
9
+ props: {
10
+ component: figma.enum('appearance', {
11
+ 'list-item': 'list-item',
12
+ tile: 'tile',
13
+ }),
14
+ },
15
+ example: (props) => <Skeleton component={props.component} />,
16
+ },
17
+ );
@@ -4,11 +4,7 @@ import { Skeleton } from './Skeleton';
4
4
  import {
5
5
  CustomTabs,
6
6
  Tab,
7
- DoVsDontRow,
8
- DoBlockItem,
9
- DontBlockItem,
10
7
  } from '../../../../.storybook/components';
11
- import CommonRulesDoAndDont from '../../../../.storybook/components/DoVsDont/CommonRulesDoAndDont.mdx';
12
8
 
13
9
  <Meta title='Core/Skeleton' of={SkeletonStories} />
14
10
 
@@ -128,73 +124,6 @@ import { Box, Skeleton } from '@ledgerhq/lumen-ui-rnative';
128
124
  </Box>
129
125
  ```
130
126
 
131
- ## Do's and Don'ts
132
-
133
- <div className='flex flex-col gap-24'>
134
- <DoVsDontRow>
135
- <DoBlockItem
136
- title='Use component prop for common patterns'
137
- description='Use pre-built variants for consistent loading states'
138
- >
139
-
140
- {/* prettier-ignore */}
141
- ```tsx
142
- <Skeleton component='list-item' />
143
- <Skeleton component='tile' />
144
- ```
145
-
146
- </DoBlockItem>
147
- <DontBlockItem
148
- title="Don't manually recreate common patterns"
149
- description='Avoid recreating patterns that already exist as component variants'
150
- >
151
-
152
- {/* prettier-ignore */}
153
- ```tsx
154
- import { Box, Skeleton } from '@ledgerhq/lumen-ui-rnative';
155
-
156
- <Box lx={{ flexDirection: 'row', alignItems: 'center', gap: 's16' }}>
157
- <Skeleton lx={{ width: 's48', height: 's48', borderRadius: 'full' }} />
158
- <Box lx={{ flex: 1, flexDirection: 'column', gap: 's8' }}>
159
- <Skeleton lx={{ height: 's12', width: 's176' }} />
160
- <Skeleton lx={{ height: 's12', width: 's112' }} />
161
- </Box>
162
- </Box>
163
- ```
164
-
165
- </DontBlockItem>
166
-
167
- </DoVsDontRow>
168
-
169
- <DoVsDontRow>
170
- <DoBlockItem
171
- title='Use lx prop for sizing'
172
- description='Use design system size tokens for consistent sizing'
173
- >
174
-
175
- {/* prettier-ignore */}
176
- ```tsx
177
- <Skeleton lx={{ height: 's16', width: 's256' }} />
178
- ```
179
-
180
- </DoBlockItem>
181
- <DontBlockItem
182
- title="Don't use arbitrary style values"
183
- description='Avoid using the style prop or arbitrary values'
184
- >
185
-
186
- {/* prettier-ignore */}
187
- ```tsx
188
- <Skeleton style={{ height: 16, width: 200 }} />
189
- ```
190
-
191
- </DontBlockItem>
192
-
193
- </DoVsDontRow>
194
-
195
- </div>
196
-
197
- <CommonRulesDoAndDont />
198
127
 
199
128
  </Tab>
200
129
  </CustomTabs>
@@ -0,0 +1,12 @@
1
+ import figma from '@figma/code-connect';
2
+ import { Spinner } from './Spinner';
3
+
4
+ figma.connect(
5
+ Spinner,
6
+ 'https://www.figma.com/design/JxaLVMTWirCpU0rsbZ30k7?node-id=9023-3681',
7
+ {
8
+ imports: ["import { Spinner } from '@ledgerhq/lumen-ui-rnative'"],
9
+ // @ts-expect-error — placeholder value, replace with a valid IconSize
10
+ example: () => <Spinner size='<insert-size>' />,
11
+ },
12
+ );
@@ -1,8 +1,6 @@
1
1
  import { Meta, Canvas, Controls } from '@storybook/addon-docs/blocks';
2
2
  import { CustomTabs, Tab } from '../../../../.storybook/components';
3
3
  import * as SpinnerStories from './Spinner.stories';
4
- import { DoVsDontRow, DoBlockItem, DontBlockItem } from '../../../../.storybook/components/DoVsDont';
5
- import CommonRulesDoAndDont from '../../../../.storybook/components/DoVsDont/CommonRulesDoAndDont.mdx';
6
4
  import { Box } from '../Utility/Box';
7
5
  import { Text } from '../Utility/Text';
8
6
 
@@ -116,104 +114,6 @@ function MyComponent() {
116
114
  }
117
115
  ```
118
116
 
119
- ## Do's and Don'ts
120
-
121
- <Box lx={{ gap: 's24' }}>
122
- <DoVsDontRow>
123
- <DoBlockItem
124
- title='Match spinner size to context'
125
- description='Use appropriate spinner sizes based on the context and prominence'
126
- >
127
-
128
- {/* prettier-ignore */}
129
- ```tsx
130
- // Small inline loading
131
- <Spinner size={12} />
132
-
133
- // Prominent loading state
134
- <Spinner size={40} />
135
- ```
136
-
137
- </DoBlockItem>
138
- <DontBlockItem
139
- title="Don't override spinner size"
140
- description='Avoid using style or additional props to override spinner dimensions'
141
- >
142
-
143
- {/* prettier-ignore */}
144
- ```tsx
145
- // Small inline loading
146
- <Spinner size={12} style={{ width: 6, height: 6 }} />
147
-
148
- // Prominent loading state
149
- <Spinner size={40} width={32} height={32} />
150
- ```
151
-
152
- </DontBlockItem>
153
-
154
- </DoVsDontRow>
155
-
156
- <DoVsDontRow>
157
- <DoBlockItem
158
- title='Provide context with descriptive text'
159
- description='Pair spinners with text to give users context about what is loading'
160
- >
161
-
162
- {/* prettier-ignore */}
163
- ```tsx
164
- <Box lx={{ flexDirection: 'row', alignItems: 'center', gap: 's8' }}>
165
- <Spinner size={16} />
166
- <Text>Syncing wallet...</Text>
167
- </Box>
168
- ```
169
-
170
- </DoBlockItem>
171
- <DontBlockItem
172
- title="Don't show spinners without context"
173
- description='Avoid showing spinners alone without descriptive text'
174
- >
175
-
176
- {/* prettier-ignore */}
177
- ```tsx
178
- <Box lx={{ flexDirection: 'row', alignItems: 'center', gap: 's8' }}>
179
- <Spinner size={16} />
180
- </Box>
181
- ```
182
-
183
- </DontBlockItem>
184
-
185
- </DoVsDontRow>
186
-
187
- <DoVsDontRow>
188
- <DoBlockItem
189
- title='Use standard sizes from the design system'
190
- description='Stick to predefined size values like 12, 16, 20, 24, 40'
191
- >
192
-
193
- {/* prettier-ignore */}
194
- ```tsx
195
- <Spinner size={16} />
196
- <Spinner size={24} />
197
- ```
198
-
199
- </DoBlockItem>
200
- <DontBlockItem
201
- title="Don't use non-standard sizes"
202
- description='Avoid arbitrary size values that are not part of the design system'
203
- >
204
-
205
- {/* prettier-ignore */}
206
- ```tsx
207
- <Spinner size={22} />
208
- <Spinner size={35} />
209
- ```
210
-
211
- </DontBlockItem>
212
-
213
- </DoVsDontRow>
214
-
215
- <CommonRulesDoAndDont />
216
- </Box>
217
117
 
218
118
  </Tab>
219
119
  </CustomTabs>
@@ -0,0 +1,50 @@
1
+ import figma from '@figma/code-connect';
2
+ import { Placeholder } from '../../Symbols';
3
+ import { Spot } from './Spot';
4
+ import type { SpotAppearance } from './types';
5
+
6
+ figma.connect(
7
+ Spot,
8
+ 'https://www.figma.com/design/JxaLVMTWirCpU0rsbZ30k7?node-id=6786%3A4738',
9
+ {
10
+ imports: [
11
+ "import { Spot } from '@ledgerhq/lumen-ui-rnative'",
12
+ "import { Placeholder } from '@ledgerhq/lumen-ui-rnative/symbols'",
13
+ ],
14
+ props: {
15
+ disabled: figma.enum('state', {
16
+ disabled: true,
17
+ }),
18
+ appearance: figma.enum('appearance', {
19
+ 'interface-icon': 'icon',
20
+ loader: 'loader',
21
+ number: 'number',
22
+ 'info-muted': 'info',
23
+ warning: 'warning',
24
+ error: 'error',
25
+ check: 'check',
26
+ bluetooth: 'bluetooth',
27
+ }),
28
+ icon: figma.enum('appearance', {
29
+ 'interface-icon': Placeholder,
30
+ }),
31
+ number: figma.enum('appearance', {
32
+ number: 1,
33
+ }),
34
+ },
35
+ example: (props: {
36
+ disabled: boolean;
37
+ appearance: SpotAppearance;
38
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
39
+ icon: any;
40
+ number: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
41
+ }) => (
42
+ <Spot
43
+ appearance={props.appearance}
44
+ icon={props.icon}
45
+ number={props.number}
46
+ disabled={props.disabled}
47
+ />
48
+ ),
49
+ },
50
+ );
@@ -3,8 +3,6 @@ import * as SpotStories from './Spot.stories';
3
3
  import { Spot } from './Spot';
4
4
  import { Box } from '../Utility';
5
5
  import { CustomTabs, Tab } from '../../../../.storybook/components';
6
- import { DoVsDontRow, DoBlockItem, DontBlockItem } from '../../../../.storybook/components/DoVsDont';
7
- import CommonRulesDoAndDont from '../../../../.storybook/components/DoVsDont/CommonRulesDoAndDont.mdx';
8
6
 
9
7
  <Meta title='Core/Spot' of={SpotStories} />
10
8
 
@@ -171,98 +169,6 @@ function StatusIndicators() {
171
169
  }
172
170
  ```
173
171
 
174
- ## Do's and Don'ts
175
-
176
- <Box lx={{ flexDirection: 'column', gap: 's24' }}>
177
- <DoVsDontRow>
178
- <DoBlockItem
179
- title='Use required props for discriminated types'
180
- description='Icon appearance requires icon prop, number appearance requires number prop'
181
- >
182
-
183
- {/* prettier-ignore */}
184
- ```tsx
185
- import { Settings } from '@ledgerhq/lumen-ui-rnative/symbols';
186
-
187
- <Spot appearance='icon' icon={Settings} />
188
- <Spot appearance='number' number={5} />
189
- ```
190
-
191
- </DoBlockItem>
192
- <DontBlockItem
193
- title="Don't omit required props"
194
- description='Discriminated union types require their specific props'
195
- >
196
-
197
- {/* prettier-ignore */}
198
- ```tsx
199
- import { Settings } from '@ledgerhq/lumen-ui-rnative/symbols';
200
-
201
- <Spot appearance='icon' /> // Missing required 'icon' prop
202
- <Spot appearance='number' /> // Missing required 'number' prop
203
- ```
204
-
205
- </DontBlockItem>
206
-
207
- </DoVsDontRow>
208
-
209
- <DoVsDontRow>
210
- <DoBlockItem
211
- title='Use valid number values'
212
- description='Number appearance only accepts values from 0 to 9'
213
- >
214
-
215
- {/* prettier-ignore */}
216
- ```tsx
217
- <Spot appearance='number' number={5} />
218
- <Spot appearance='number' number={0} />
219
- ```
220
-
221
- </DoBlockItem>
222
- <DontBlockItem
223
- title="Don't pass invalid number values"
224
- description='Only values 0-9 are allowed for number appearance'
225
- >
226
-
227
- {/* prettier-ignore */}
228
- ```tsx
229
- <Spot appearance='number' number={10} />
230
- <Spot appearance='number' number={-1} />
231
- ```
232
-
233
- </DontBlockItem>
234
-
235
- </DoVsDontRow>
236
-
237
- <DoVsDontRow>
238
- <DoBlockItem
239
- title='Use Spot for status indication only'
240
- description='Spots are designed to display status, not to be interactive elements'
241
- >
242
-
243
- {/* prettier-ignore */}
244
- ```tsx
245
- <Spot appearance='check' />
246
- <Spot appearance='error' />
247
- ```
248
-
249
- </DoBlockItem>
250
- <DontBlockItem
251
- title="Don't make spots interactive"
252
- description='Avoid adding press handlers or making spots clickable'
253
- >
254
-
255
- {/* prettier-ignore */}
256
- ```tsx
257
- <Spot appearance='check' onPress={handlePress} />
258
- ```
259
-
260
- </DontBlockItem>
261
-
262
- </DoVsDontRow>
263
-
264
- <CommonRulesDoAndDont />
265
- </Box>
266
172
 
267
173
  </Tab>
268
174
  </CustomTabs>
@@ -0,0 +1,11 @@
1
+ import figma from '@figma/code-connect';
2
+ import { Stepper } from './Stepper';
3
+
4
+ figma.connect(
5
+ Stepper,
6
+ 'https://www.figma.com/design/JxaLVMTWirCpU0rsbZ30k7/2.-Components-Library?node-id=11439-7755',
7
+ {
8
+ imports: ["import { Stepper } from '@ledgerhq/lumen-ui-rnative'"],
9
+ example: () => <Stepper currentStep={2} totalSteps={4} />,
10
+ },
11
+ );
@@ -1,8 +1,6 @@
1
1
  import { Meta, Canvas, Controls } from '@storybook/addon-docs/blocks';
2
2
  import { CustomTabs, Tab } from '../../../../.storybook/components';
3
3
  import * as StepperStories from './Stepper.stories';
4
- import { DoVsDontRow, DoBlockItem, DontBlockItem } from '../../../../.storybook/components/DoVsDont';
5
- import CommonRulesDoAndDont from '../../../../.storybook/components/DoVsDont/CommonRulesDoAndDont.mdx';
6
4
  import { Box } from '../Utility/Box';
7
5
  import { Text } from '../Utility/Text';
8
6
 
@@ -143,71 +141,6 @@ function LocalizedStepper() {
143
141
  }
144
142
  ```
145
143
 
146
- ## Do's and Don'ts
147
-
148
- <Box lx={{ gap: 's24' }}>
149
- <DoVsDontRow>
150
- <DoBlockItem
151
- title='Provide meaningful step counts'
152
- description='Use realistic total steps that match your flow'
153
- >
154
-
155
- {/* prettier-ignore */}
156
- ```tsx
157
- <Stepper currentStep={3} totalSteps={5} />
158
- ```
159
-
160
- </DoBlockItem>
161
- <DontBlockItem
162
- title="Don't use for single-step processes"
163
- description='Steppers are for multi-step workflows only'
164
- >
165
-
166
- {/* prettier-ignore */}
167
- ```tsx
168
- <Stepper currentStep={1} totalSteps={1} />
169
- ```
170
-
171
- </DontBlockItem>
172
-
173
- </DoVsDontRow>
174
-
175
- <DoVsDontRow>
176
- <DoBlockItem
177
- title='Use disabled for paused steppers'
178
- description='Reserve disabled for steppers that are not actively progressing'
179
- >
180
-
181
- {/* prettier-ignore */}
182
- ```tsx
183
- <Stepper
184
- currentStep={2}
185
- totalSteps={4}
186
- disabled
187
- />
188
- ```
189
-
190
- </DoBlockItem>
191
- <DontBlockItem
192
- title="Don't disable active steps"
193
- description='Active steps in progress should not be disabled'
194
- >
195
-
196
- {/* prettier-ignore */}
197
- ```tsx
198
- <Stepper
199
- currentStep={2}
200
- totalSteps={4}
201
- disabled // Wrong for active step
202
- />
203
- ```
204
-
205
- </DontBlockItem>
206
-
207
- </DoVsDontRow>
208
-
209
- <CommonRulesDoAndDont />
210
- </Box>
211
144
 
212
145
  </Tab>
213
146
  </CustomTabs>