@hero-design/rn 7.10.2 → 7.11.2

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 (247) hide show
  1. package/.turbo/turbo-build.log +8 -8
  2. package/es/index.js +353 -79
  3. package/lib/assets/fonts/hero-icons.ttf +0 -0
  4. package/lib/index.js +352 -77
  5. package/package.json +2 -2
  6. package/src/components/FAB/ActionGroup/__tests__/__snapshots__/index.spec.tsx.snap +4 -0
  7. package/src/components/FAB/ActionGroup/index.tsx +16 -5
  8. package/src/components/PinInput/PinCell.tsx +34 -0
  9. package/src/components/PinInput/StyledPinInput.tsx +88 -0
  10. package/src/components/PinInput/__tests__/PinCell.spec.tsx +48 -0
  11. package/src/components/PinInput/__tests__/StyledPinInput.spec.tsx +22 -0
  12. package/src/components/PinInput/__tests__/__snapshots__/PinCell.spec.tsx.snap +186 -0
  13. package/src/components/PinInput/__tests__/__snapshots__/StyledPinInput.spec.tsx.snap +58 -0
  14. package/src/components/PinInput/__tests__/__snapshots__/index.spec.tsx.snap +1028 -0
  15. package/src/components/PinInput/__tests__/index.spec.tsx +91 -0
  16. package/src/components/PinInput/index.tsx +173 -0
  17. package/src/components/TextInput/__tests__/index.spec.tsx +15 -0
  18. package/src/components/TextInput/index.tsx +20 -16
  19. package/src/components/Typography/Text/StyledText.tsx +1 -1
  20. package/src/components/Typography/Text/__tests__/StyledText.spec.tsx +1 -0
  21. package/src/components/Typography/Text/__tests__/__snapshots__/StyledText.spec.tsx.snap +22 -0
  22. package/src/components/Typography/Text/index.tsx +1 -1
  23. package/src/index.ts +2 -0
  24. package/src/theme/__tests__/__snapshots__/index.spec.ts.snap +35 -0
  25. package/src/theme/components/pinInput.ts +45 -0
  26. package/src/theme/components/typography.ts +2 -0
  27. package/src/theme/global/colors.ts +1 -1
  28. package/src/theme/global/space.ts +10 -10
  29. package/src/theme/index.ts +6 -3
  30. package/types/components/Alert/StyledAlert.d.ts +0 -0
  31. package/types/components/Alert/__tests__/index.spec.d.ts +0 -0
  32. package/types/components/Alert/index.d.ts +0 -0
  33. package/types/components/Avatar/StyledAvatar.d.ts +0 -0
  34. package/types/components/Avatar/__tests__/StyledAvatar.spec.d.ts +0 -0
  35. package/types/components/Avatar/__tests__/index.spec.d.ts +0 -0
  36. package/types/components/Avatar/index.d.ts +0 -0
  37. package/types/components/Badge/Status.d.ts +0 -0
  38. package/types/components/Badge/StyledBadge.d.ts +0 -0
  39. package/types/components/Badge/__tests__/Badge.spec.d.ts +0 -0
  40. package/types/components/Badge/__tests__/Status.spec.d.ts +0 -0
  41. package/types/components/Badge/index.d.ts +0 -0
  42. package/types/components/BottomNavigation/StyledBottomNavigation.d.ts +0 -0
  43. package/types/components/BottomNavigation/__tests__/index.spec.d.ts +0 -0
  44. package/types/components/BottomNavigation/index.d.ts +0 -0
  45. package/types/components/BottomSheet/Footer.d.ts +0 -0
  46. package/types/components/BottomSheet/Header.d.ts +0 -0
  47. package/types/components/BottomSheet/StyledBottomSheet.d.ts +0 -0
  48. package/types/components/BottomSheet/__tests__/index.spec.d.ts +0 -0
  49. package/types/components/BottomSheet/index.d.ts +0 -0
  50. package/types/components/Button/Button.d.ts +0 -0
  51. package/types/components/Button/IconButton.d.ts +0 -0
  52. package/types/components/Button/LoadingIndicator/StyledLoadingIndicator.d.ts +0 -0
  53. package/types/components/Button/LoadingIndicator/__tests__/StyledLoadingIndicator.spec.d.ts +0 -0
  54. package/types/components/Button/LoadingIndicator/__tests__/index.spec.d.ts +0 -0
  55. package/types/components/Button/LoadingIndicator/index.d.ts +0 -0
  56. package/types/components/Button/StyledButton.d.ts +0 -0
  57. package/types/components/Button/UtilityButton/__tests__/index.spec.d.ts +0 -0
  58. package/types/components/Button/UtilityButton/index.d.ts +0 -0
  59. package/types/components/Button/UtilityButton/styled.d.ts +0 -0
  60. package/types/components/Button/__tests__/Button.spec.d.ts +0 -0
  61. package/types/components/Button/__tests__/IconButton.spec.d.ts +0 -0
  62. package/types/components/Button/__tests__/StyledButton.spec.d.ts +0 -0
  63. package/types/components/Button/index.d.ts +0 -0
  64. package/types/components/Card/DataCard/StyledDataCard.d.ts +0 -0
  65. package/types/components/Card/DataCard/__tests__/StyledDataCard.spec.d.ts +0 -0
  66. package/types/components/Card/DataCard/__tests__/index.spec.d.ts +0 -0
  67. package/types/components/Card/DataCard/index.d.ts +0 -0
  68. package/types/components/Card/StyledCard.d.ts +0 -0
  69. package/types/components/Card/__tests__/StyledCard.spec.d.ts +0 -0
  70. package/types/components/Card/__tests__/index.spec.d.ts +0 -0
  71. package/types/components/Card/index.d.ts +0 -0
  72. package/types/components/Checkbox/StyledCheckbox.d.ts +0 -0
  73. package/types/components/Checkbox/__tests__/StyledCheckbox.spec.d.ts +0 -0
  74. package/types/components/Checkbox/__tests__/index.spec.d.ts +0 -0
  75. package/types/components/Checkbox/index.d.ts +0 -0
  76. package/types/components/Collapse/StyledCollapse.d.ts +0 -0
  77. package/types/components/Collapse/__tests__/StyledCollapse.spec.d.ts +0 -0
  78. package/types/components/Collapse/__tests__/index.spec.d.ts +0 -0
  79. package/types/components/Collapse/index.d.ts +0 -0
  80. package/types/components/ContentNavigator/StyledContentNavigator.d.ts +0 -0
  81. package/types/components/ContentNavigator/__tests__/StyledContentNavigator.spec.d.ts +0 -0
  82. package/types/components/ContentNavigator/__tests__/index.spec.d.ts +0 -0
  83. package/types/components/ContentNavigator/index.d.ts +0 -0
  84. package/types/components/Divider/StyledDivider.d.ts +0 -0
  85. package/types/components/Divider/__tests__/StyledDivider.spec.d.ts +0 -0
  86. package/types/components/Divider/index.d.ts +0 -0
  87. package/types/components/Drawer/StyledDrawer.d.ts +0 -0
  88. package/types/components/Drawer/__tests__/index.spec.d.ts +0 -0
  89. package/types/components/Drawer/index.d.ts +0 -0
  90. package/types/components/FAB/ActionGroup/ActionItem.d.ts +0 -0
  91. package/types/components/FAB/ActionGroup/StyledActionGroup.d.ts +0 -0
  92. package/types/components/FAB/ActionGroup/StyledActionItem.d.ts +0 -0
  93. package/types/components/FAB/ActionGroup/__tests__/index.spec.d.ts +0 -0
  94. package/types/components/FAB/ActionGroup/index.d.ts +0 -0
  95. package/types/components/FAB/AnimatedFABIcon.d.ts +0 -0
  96. package/types/components/FAB/FAB.d.ts +0 -0
  97. package/types/components/FAB/StyledFAB.d.ts +0 -0
  98. package/types/components/FAB/__tests__/AnimatedFABIcon.spec.d.ts +0 -0
  99. package/types/components/FAB/__tests__/StyledFAB.spec.d.ts +0 -0
  100. package/types/components/FAB/__tests__/index.spec.d.ts +0 -0
  101. package/types/components/FAB/index.d.ts +0 -0
  102. package/types/components/Icon/HeroIcon/index.d.ts +0 -0
  103. package/types/components/Icon/IconList.d.ts +0 -0
  104. package/types/components/Icon/__tests__/index.spec.d.ts +0 -0
  105. package/types/components/Icon/index.d.ts +0 -0
  106. package/types/components/Icon/utils.d.ts +0 -0
  107. package/types/components/List/BasicListItem.d.ts +0 -0
  108. package/types/components/List/ListItem.d.ts +0 -0
  109. package/types/components/List/StyledBasicListItem.d.ts +0 -0
  110. package/types/components/List/StyledListItem.d.ts +0 -0
  111. package/types/components/List/__tests__/BasicListItem.spec.d.ts +0 -0
  112. package/types/components/List/__tests__/ListItem.spec.d.ts +0 -0
  113. package/types/components/List/__tests__/StyledBasicListItem.spec.d.ts +0 -0
  114. package/types/components/List/__tests__/StyledListItem.spec.d.ts +0 -0
  115. package/types/components/List/index.d.ts +0 -0
  116. package/types/components/PinInput/PinCell.d.ts +8 -0
  117. package/types/components/PinInput/StyledPinInput.d.ts +73 -0
  118. package/types/components/PinInput/__tests__/PinCell.spec.d.ts +1 -0
  119. package/types/components/PinInput/__tests__/StyledPinInput.spec.d.ts +1 -0
  120. package/types/components/PinInput/__tests__/index.spec.d.ts +1 -0
  121. package/types/components/PinInput/index.d.ts +48 -0
  122. package/types/components/Progress/ProgressBar.d.ts +0 -0
  123. package/types/components/Progress/ProgressCircle.d.ts +0 -0
  124. package/types/components/Progress/StyledProgressBar.d.ts +0 -0
  125. package/types/components/Progress/StyledProgressCircle.d.ts +0 -0
  126. package/types/components/Progress/__tests__/index.spec.d.ts +0 -0
  127. package/types/components/Progress/index.d.ts +0 -0
  128. package/types/components/Progress/types.d.ts +0 -0
  129. package/types/components/Radio/Radio.d.ts +0 -0
  130. package/types/components/Radio/RadioGroup.d.ts +0 -0
  131. package/types/components/Radio/StyledRadio.d.ts +0 -0
  132. package/types/components/Radio/__tests__/Radio.spec.d.ts +0 -0
  133. package/types/components/Radio/__tests__/RadioGroup.spec.d.ts +0 -0
  134. package/types/components/Radio/__tests__/StyledRadio.spec.d.ts +0 -0
  135. package/types/components/Radio/index.d.ts +0 -0
  136. package/types/components/Radio/types.d.ts +0 -0
  137. package/types/components/SectionHeading/StyledHeading.d.ts +0 -0
  138. package/types/components/SectionHeading/__tests__/StyledHeading.spec.d.ts +0 -0
  139. package/types/components/SectionHeading/__tests__/index.spec.d.ts +0 -0
  140. package/types/components/SectionHeading/index.d.ts +0 -0
  141. package/types/components/Select/Footer.d.ts +0 -0
  142. package/types/components/Select/MultiSelect/Option.d.ts +0 -0
  143. package/types/components/Select/MultiSelect/OptionList.d.ts +0 -0
  144. package/types/components/Select/MultiSelect/__tests__/Option.spec.d.ts +0 -0
  145. package/types/components/Select/MultiSelect/__tests__/OptionList.spec.d.ts +0 -0
  146. package/types/components/Select/MultiSelect/__tests__/index.spec.d.ts +0 -0
  147. package/types/components/Select/MultiSelect/index.d.ts +0 -0
  148. package/types/components/Select/SingleSelect/Option.d.ts +0 -0
  149. package/types/components/Select/SingleSelect/OptionList.d.ts +0 -0
  150. package/types/components/Select/SingleSelect/__tests__/Option.spec.d.ts +0 -0
  151. package/types/components/Select/SingleSelect/__tests__/OptionList.spec.d.ts +0 -0
  152. package/types/components/Select/SingleSelect/__tests__/index.spec.d.ts +0 -0
  153. package/types/components/Select/SingleSelect/index.d.ts +0 -0
  154. package/types/components/Select/StyledSelect.d.ts +0 -0
  155. package/types/components/Select/__tests__/StyledSelect.spec.d.ts +0 -0
  156. package/types/components/Select/helpers.d.ts +0 -0
  157. package/types/components/Select/index.d.ts +0 -0
  158. package/types/components/Select/types.d.ts +0 -0
  159. package/types/components/Spinner/AnimatedSpinner.d.ts +0 -0
  160. package/types/components/Spinner/StyledSpinner.d.ts +0 -0
  161. package/types/components/Spinner/__tests__/AnimatedSpinner.spec.d.ts +0 -0
  162. package/types/components/Spinner/__tests__/StyledSpinner.spec.d.ts +0 -0
  163. package/types/components/Spinner/__tests__/index.spec.d.ts +0 -0
  164. package/types/components/Spinner/index.d.ts +0 -0
  165. package/types/components/Switch/StyledSwitch.d.ts +0 -0
  166. package/types/components/Switch/__tests__/StyledHeading.spec.d.ts +0 -0
  167. package/types/components/Switch/__tests__/index.spec.d.ts +0 -0
  168. package/types/components/Switch/index.d.ts +0 -0
  169. package/types/components/Tabs/ActiveTabIndicator.d.ts +0 -0
  170. package/types/components/Tabs/ScrollableTabs.d.ts +0 -0
  171. package/types/components/Tabs/StyledScrollableTabs.d.ts +0 -0
  172. package/types/components/Tabs/StyledTabs.d.ts +0 -0
  173. package/types/components/Tabs/__tests__/ScrollableTabs.spec.d.ts +0 -0
  174. package/types/components/Tabs/__tests__/index.spec.d.ts +0 -0
  175. package/types/components/Tabs/index.d.ts +0 -0
  176. package/types/components/Tabs/utils.d.ts +0 -0
  177. package/types/components/Tag/StyledTag.d.ts +0 -0
  178. package/types/components/Tag/__tests__/Tag.spec.d.ts +0 -0
  179. package/types/components/Tag/index.d.ts +0 -0
  180. package/types/components/TextInput/StyledTextInput.d.ts +0 -0
  181. package/types/components/TextInput/__tests__/StyledTextInput.spec.d.ts +0 -0
  182. package/types/components/TextInput/__tests__/index.spec.d.ts +0 -0
  183. package/types/components/TextInput/index.d.ts +0 -0
  184. package/types/components/Toast/StyledToast.d.ts +0 -0
  185. package/types/components/Toast/Toast.d.ts +0 -0
  186. package/types/components/Toast/ToastContainer.d.ts +0 -0
  187. package/types/components/Toast/ToastContext.d.ts +0 -0
  188. package/types/components/Toast/ToastProvider.d.ts +0 -0
  189. package/types/components/Toast/__tests__/Toast.spec.d.ts +0 -0
  190. package/types/components/Toast/__tests__/ToastContainer.spec.d.ts +0 -0
  191. package/types/components/Toast/index.d.ts +0 -0
  192. package/types/components/Toast/types.d.ts +0 -0
  193. package/types/components/Toolbar/StyledToolbar.d.ts +0 -0
  194. package/types/components/Toolbar/ToolbarGroup.d.ts +0 -0
  195. package/types/components/Toolbar/ToolbarItem.d.ts +0 -0
  196. package/types/components/Toolbar/__tests__/ToolbarGroup.spec.d.ts +0 -0
  197. package/types/components/Toolbar/__tests__/ToolbarItem.spec.d.ts +0 -0
  198. package/types/components/Toolbar/index.d.ts +0 -0
  199. package/types/components/Typography/Text/StyledText.d.ts +1 -1
  200. package/types/components/Typography/Text/__tests__/StyledText.spec.d.ts +0 -0
  201. package/types/components/Typography/Text/__tests__/index.spec.d.ts +0 -0
  202. package/types/components/Typography/Text/index.d.ts +1 -1
  203. package/types/components/Typography/index.d.ts +0 -0
  204. package/types/index.d.ts +2 -1
  205. package/types/testHelpers/renderWithTheme.d.ts +0 -0
  206. package/types/theme/__tests__/index.spec.d.ts +0 -0
  207. package/types/theme/components/alert.d.ts +0 -0
  208. package/types/theme/components/avatar.d.ts +0 -0
  209. package/types/theme/components/badge.d.ts +0 -0
  210. package/types/theme/components/bottomNavigation.d.ts +0 -0
  211. package/types/theme/components/bottomSheet.d.ts +0 -0
  212. package/types/theme/components/button.d.ts +0 -0
  213. package/types/theme/components/card.d.ts +0 -0
  214. package/types/theme/components/checkbox.d.ts +0 -0
  215. package/types/theme/components/contentNavigator.d.ts +0 -0
  216. package/types/theme/components/divider.d.ts +0 -0
  217. package/types/theme/components/drawer.d.ts +0 -0
  218. package/types/theme/components/fab.d.ts +0 -0
  219. package/types/theme/components/icon.d.ts +0 -0
  220. package/types/theme/components/list.d.ts +0 -0
  221. package/types/theme/components/pinInput.d.ts +35 -0
  222. package/types/theme/components/progress.d.ts +0 -0
  223. package/types/theme/components/radio.d.ts +0 -0
  224. package/types/theme/components/sectionHeading.d.ts +0 -0
  225. package/types/theme/components/select.d.ts +0 -0
  226. package/types/theme/components/spinner.d.ts +0 -0
  227. package/types/theme/components/switch.d.ts +0 -0
  228. package/types/theme/components/tabs.d.ts +0 -0
  229. package/types/theme/components/tag.d.ts +0 -0
  230. package/types/theme/components/textInput.d.ts +0 -0
  231. package/types/theme/components/toast.d.ts +0 -0
  232. package/types/theme/components/toolbar.d.ts +0 -0
  233. package/types/theme/components/typography.d.ts +2 -0
  234. package/types/theme/global/borders.d.ts +0 -0
  235. package/types/theme/global/colors.d.ts +0 -0
  236. package/types/theme/global/index.d.ts +0 -0
  237. package/types/theme/global/scale.d.ts +0 -0
  238. package/types/theme/global/space.d.ts +0 -0
  239. package/types/theme/global/typography.d.ts +0 -0
  240. package/types/theme/index.d.ts +4 -2
  241. package/types/types.d.ts +0 -0
  242. package/types/utils/__tests__/scale.spec.d.ts +0 -0
  243. package/types/utils/helpers.d.ts +0 -0
  244. package/types/utils/hooks.d.ts +0 -0
  245. package/types/utils/scale.d.ts +0 -0
  246. package/src/components/TextInput/__tests__/.log/ti-10343.log +0 -62
  247. package/src/components/TextInput/__tests__/.log/tsserver.log +0 -15584
package/lib/index.js CHANGED
@@ -1323,21 +1323,6 @@ function prefixer(element, index, children, callback) {
1323
1323
  }
1324
1324
  }
1325
1325
 
1326
- var weakMemoize = function weakMemoize(func) {
1327
- // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps
1328
- var cache = new WeakMap();
1329
- return function (arg) {
1330
- if (cache.has(arg)) {
1331
- // $FlowFixMe
1332
- return cache.get(arg);
1333
- }
1334
-
1335
- var ret = func(arg);
1336
- cache.set(arg, ret);
1337
- return ret;
1338
- };
1339
- };
1340
-
1341
1326
  var identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {
1342
1327
  var previous = 0;
1343
1328
  var character = 0;
@@ -1575,6 +1560,21 @@ function _extends$2() {
1575
1560
  return _extends$2.apply(this, arguments);
1576
1561
  }
1577
1562
 
1563
+ var weakMemoize = function weakMemoize(func) {
1564
+ // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps
1565
+ var cache = new WeakMap();
1566
+ return function (arg) {
1567
+ if (cache.has(arg)) {
1568
+ // $FlowFixMe
1569
+ return cache.get(arg);
1570
+ }
1571
+
1572
+ var ret = func(arg);
1573
+ cache.set(arg, ret);
1574
+ return ret;
1575
+ };
1576
+ };
1577
+
1578
1578
  var EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case
1579
1579
  // because this module is primarily intended for the browser and node
1580
1580
  // but it's also required in react native and similar environments sometimes
@@ -2740,7 +2740,8 @@ var getSpace = function getSpace(baseSpace) {
2740
2740
  xlarge: scale(baseSpace * 4),
2741
2741
  xxlarge: scale(baseSpace * 5),
2742
2742
  xxxlarge: scale(baseSpace * 6),
2743
- xxxxlarge: scale(baseSpace * 7)
2743
+ xxxxlarge: scale(baseSpace * 7) // 56
2744
+
2744
2745
  };
2745
2746
  };
2746
2747
 
@@ -3189,6 +3190,96 @@ var getIconTheme = function getIconTheme(theme) {
3189
3190
  };
3190
3191
  };
3191
3192
 
3193
+ var getListTheme = function getListTheme(theme) {
3194
+ var colors = {
3195
+ checkedListItemContainerBackground: theme.colors.primaryBackground,
3196
+ listItemContainerBackground: theme.colors.platformBackground,
3197
+ leadingStatus: {
3198
+ danger: theme.colors.danger,
3199
+ info: theme.colors.infoLight,
3200
+ success: theme.colors.successDark,
3201
+ warning: theme.colors.warningLight,
3202
+ archived: theme.colors.archived
3203
+ }
3204
+ };
3205
+ var space = {
3206
+ listItemContainerPadding: theme.space.medium,
3207
+ leadingStatusMarginRight: theme.space.small,
3208
+ prefixContainerMarginRight: theme.space.small,
3209
+ suffixContainerMarginLeft: theme.space.small
3210
+ };
3211
+ var radii = {
3212
+ card: theme.radii.medium,
3213
+ cardShadow: theme.radii.base,
3214
+ leadingStatus: theme.radii.rounded
3215
+ };
3216
+ var offsets = {
3217
+ cardShadow: {
3218
+ width: 0,
3219
+ height: 2
3220
+ }
3221
+ };
3222
+ var widths = {
3223
+ leadingStatus: 8
3224
+ };
3225
+ var opacity = {
3226
+ disabled: 0.38,
3227
+ enabled: 1,
3228
+ cardShadow: 1
3229
+ };
3230
+ return {
3231
+ colors: colors,
3232
+ space: space,
3233
+ radii: radii,
3234
+ offsets: offsets,
3235
+ widths: widths,
3236
+ opacity: opacity
3237
+ };
3238
+ };
3239
+
3240
+ var getPinInputTheme = function getPinInputTheme(theme) {
3241
+ var borderWidths = {
3242
+ "default": theme.borderWidths.base,
3243
+ focused: theme.borderWidths.medium
3244
+ };
3245
+ var colors = {
3246
+ "default": theme.colors.text,
3247
+ mask: theme.colors.subduedText,
3248
+ error: theme.colors.danger,
3249
+ disabled: theme.colors.archivedDark
3250
+ };
3251
+ var fonts = {
3252
+ cellText: theme.fonts.semiBold,
3253
+ errorMessage: theme.fonts.regular
3254
+ };
3255
+ var fontSizes = {
3256
+ cellText: theme.fontSizes.xxxxlarge,
3257
+ errorMessage: theme.fontSizes.small
3258
+ };
3259
+ var sizes = {
3260
+ cellWidth: theme.space.xxlarge,
3261
+ cellHeight: theme.space.xxxlarge,
3262
+ mask: theme.space.medium
3263
+ };
3264
+ var space = {
3265
+ spacer: theme.space.medium,
3266
+ errorMessagePadding: theme.space.xsmall
3267
+ };
3268
+ var radii = {
3269
+ cell: theme.radii.medium,
3270
+ mask: theme.radii.rounded
3271
+ };
3272
+ return {
3273
+ borderWidths: borderWidths,
3274
+ colors: colors,
3275
+ fonts: fonts,
3276
+ fontSizes: fontSizes,
3277
+ sizes: sizes,
3278
+ space: space,
3279
+ radii: radii
3280
+ };
3281
+ };
3282
+
3192
3283
  var getProgressTheme = function getProgressTheme(theme) {
3193
3284
  var colors = {
3194
3285
  primary: theme.colors.primary,
@@ -3574,13 +3665,15 @@ var getTypographyTheme = function getTypographyTheme(theme) {
3574
3665
  small: theme.fontSizes.small,
3575
3666
  medium: theme.fontSizes.medium,
3576
3667
  large: theme.fontSizes.large,
3577
- xlarge: theme.fontSizes.xlarge
3668
+ xlarge: theme.fontSizes.xlarge,
3669
+ xxxxxlarge: theme.fontSizes.xxxxxlarge
3578
3670
  };
3579
3671
  var lineHeights = {
3580
3672
  small: theme.lineHeights.small,
3581
3673
  medium: theme.lineHeights.medium,
3582
3674
  large: theme.lineHeights.large,
3583
- xlarge: theme.lineHeights.xlarge
3675
+ xlarge: theme.lineHeights.xlarge,
3676
+ xxxxxlarge: theme.lineHeights.xxxxxlarge
3584
3677
  };
3585
3678
  return {
3586
3679
  colors: colors,
@@ -3590,53 +3683,6 @@ var getTypographyTheme = function getTypographyTheme(theme) {
3590
3683
  };
3591
3684
  };
3592
3685
 
3593
- var getListTheme = function getListTheme(theme) {
3594
- var colors = {
3595
- checkedListItemContainerBackground: theme.colors.primaryBackground,
3596
- listItemContainerBackground: theme.colors.platformBackground,
3597
- leadingStatus: {
3598
- danger: theme.colors.danger,
3599
- info: theme.colors.infoLight,
3600
- success: theme.colors.successDark,
3601
- warning: theme.colors.warningLight,
3602
- archived: theme.colors.archived
3603
- }
3604
- };
3605
- var space = {
3606
- listItemContainerPadding: theme.space.medium,
3607
- leadingStatusMarginRight: theme.space.small,
3608
- prefixContainerMarginRight: theme.space.small,
3609
- suffixContainerMarginLeft: theme.space.small
3610
- };
3611
- var radii = {
3612
- card: theme.radii.medium,
3613
- cardShadow: theme.radii.base,
3614
- leadingStatus: theme.radii.rounded
3615
- };
3616
- var offsets = {
3617
- cardShadow: {
3618
- width: 0,
3619
- height: 2
3620
- }
3621
- };
3622
- var widths = {
3623
- leadingStatus: 8
3624
- };
3625
- var opacity = {
3626
- disabled: 0.38,
3627
- enabled: 1,
3628
- cardShadow: 1
3629
- };
3630
- return {
3631
- colors: colors,
3632
- space: space,
3633
- radii: radii,
3634
- offsets: offsets,
3635
- widths: widths,
3636
- opacity: opacity
3637
- };
3638
- };
3639
-
3640
3686
  var getTheme = function getTheme() {
3641
3687
  var scale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : scale$1;
3642
3688
  var systemPallete = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : systemPalette;
@@ -3656,6 +3702,8 @@ var getTheme = function getTheme() {
3656
3702
  drawer: getDrawerTheme(globalTheme),
3657
3703
  fab: getFABTheme(globalTheme),
3658
3704
  icon: getIconTheme(globalTheme),
3705
+ list: getListTheme(globalTheme),
3706
+ pinInput: getPinInputTheme(globalTheme),
3659
3707
  progress: getProgressTheme(globalTheme),
3660
3708
  radio: getRadioTheme(globalTheme),
3661
3709
  sectionHeading: getSectionHeadingTheme(globalTheme),
@@ -3667,8 +3715,7 @@ var getTheme = function getTheme() {
3667
3715
  textInput: getTextInputTheme(globalTheme),
3668
3716
  toast: getToastTheme(globalTheme),
3669
3717
  toolbar: getToolbarTheme(globalTheme),
3670
- typography: getTypographyTheme(globalTheme),
3671
- list: getListTheme(globalTheme)
3718
+ typography: getTypographyTheme(globalTheme)
3672
3719
  }
3673
3720
  });
3674
3721
  };
@@ -16129,7 +16176,7 @@ var Divider = function Divider(_ref) {
16129
16176
  };
16130
16177
 
16131
16178
  var AnimatedPressable$1 = ReactNative.Animated.createAnimatedComponent(ReactNative.Pressable);
16132
- var StyledWrapper$5 = index$5(ReactNative.View)(_objectSpread2(_objectSpread2({}, ReactNative.StyleSheet.absoluteFillObject), {}, {
16179
+ var StyledWrapper$6 = index$5(ReactNative.View)(_objectSpread2(_objectSpread2({}, ReactNative.StyleSheet.absoluteFillObject), {}, {
16133
16180
  flexDirection: 'column-reverse'
16134
16181
  }));
16135
16182
  var StyledBottomSheet = index$5(ReactNative.Animated.View)(function (_ref) {
@@ -16891,7 +16938,7 @@ var BottomSheet = function BottomSheet(_ref) {
16891
16938
  transparent: true,
16892
16939
  testID: testID,
16893
16940
  onShow: onOpen
16894
- }, /*#__PURE__*/React__default["default"].createElement(StyledWrapper$5, {
16941
+ }, /*#__PURE__*/React__default["default"].createElement(StyledWrapper$6, {
16895
16942
  pointerEvents: "box-none"
16896
16943
  }, /*#__PURE__*/React__default["default"].createElement(StyledBackdrop$2, {
16897
16944
  style: {
@@ -16999,7 +17046,7 @@ var index$4 = Object.assign(Card, {
16999
17046
  Data: DataCard
17000
17047
  });
17001
17048
 
17002
- var StyledWrapper$4 = index$5(ReactNative.Animated.View)(function () {
17049
+ var StyledWrapper$5 = index$5(ReactNative.Animated.View)(function () {
17003
17050
  return {
17004
17051
  margin: 0,
17005
17052
  padding: 0,
@@ -17059,7 +17106,7 @@ var Collapse = function Collapse(_ref) {
17059
17106
  var height = _ref2.height;
17060
17107
  setContentHeight(height);
17061
17108
  }, [contentHeight]);
17062
- return /*#__PURE__*/React__default["default"].createElement(StyledWrapper$4, {
17109
+ return /*#__PURE__*/React__default["default"].createElement(StyledWrapper$5, {
17063
17110
  style: [style, {
17064
17111
  height: collapseAnim
17065
17112
  }],
@@ -17071,7 +17118,7 @@ var Collapse = function Collapse(_ref) {
17071
17118
  }, children)));
17072
17119
  };
17073
17120
 
17074
- var StyledWrapper$3 = index$5(ReactNative.TouchableOpacity)(function (_ref) {
17121
+ var StyledWrapper$4 = index$5(ReactNative.TouchableOpacity)(function (_ref) {
17075
17122
  var theme = _ref.theme,
17076
17123
  disabled = _ref.disabled;
17077
17124
  return {
@@ -17093,7 +17140,7 @@ var CheckBox = function CheckBox(_ref) {
17093
17140
  onPress = _ref.onPress,
17094
17141
  style = _ref.style,
17095
17142
  testID = _ref.testID;
17096
- return /*#__PURE__*/React__default["default"].createElement(StyledWrapper$3, {
17143
+ return /*#__PURE__*/React__default["default"].createElement(StyledWrapper$4, {
17097
17144
  onPress: onPress,
17098
17145
  disabled: disabled,
17099
17146
  style: style,
@@ -17482,10 +17529,14 @@ var ActionGroup = function ActionGroup(_ref2) {
17482
17529
  inputRange: [0, 1],
17483
17530
  outputRange: [400, 0]
17484
17531
  });
17485
- var interpolatedOpacityAnimation = tranlateXAnimation.current.interpolate({
17532
+ var interpolatedBackdropOpacityAnimation = tranlateXAnimation.current.interpolate({
17486
17533
  inputRange: [0, 1],
17487
17534
  outputRange: [0, 0.9]
17488
17535
  });
17536
+ var interpolatedActionGroupOpacityAnimation = tranlateXAnimation.current.interpolate({
17537
+ inputRange: [0, 1],
17538
+ outputRange: [0, 1]
17539
+ });
17489
17540
  return /*#__PURE__*/React__default["default"].createElement(StyledContainer$1, {
17490
17541
  testID: testID,
17491
17542
  pointerEvents: "box-none",
@@ -17494,11 +17545,13 @@ var ActionGroup = function ActionGroup(_ref2) {
17494
17545
  pointerEvents: active ? 'auto' : 'box-none',
17495
17546
  testID: "back-drop",
17496
17547
  style: {
17497
- opacity: interpolatedOpacityAnimation
17548
+ opacity: interpolatedBackdropOpacityAnimation
17498
17549
  }
17499
17550
  }), /*#__PURE__*/React__default["default"].createElement(StyledActionGroupContainer, {
17551
+ pointerEvents: active ? 'auto' : 'none',
17500
17552
  testID: "action-group",
17501
17553
  style: {
17554
+ opacity: interpolatedActionGroupOpacityAnimation,
17502
17555
  transform: [{
17503
17556
  translateX: interpolatedTranlateXAnimation
17504
17557
  }]
@@ -17710,6 +17763,227 @@ var List = {
17710
17763
  BasicItem: BasicListItem
17711
17764
  };
17712
17765
 
17766
+ var StyledWrapper$3 = index$5(ReactNative.View)(function () {
17767
+ return {
17768
+ alignContent: 'flex-start'
17769
+ };
17770
+ });
17771
+ var StyledPinWrapper = index$5(ReactNative.View)(function () {
17772
+ return {
17773
+ flexDirection: 'row'
17774
+ };
17775
+ });
17776
+ var StyledCell = index$5(ReactNative.View)(function (_ref) {
17777
+ var theme = _ref.theme,
17778
+ themeFocused = _ref.themeFocused,
17779
+ themeState = _ref.themeState;
17780
+ return {
17781
+ justifyContent: 'center',
17782
+ alignItems: 'center',
17783
+ width: theme.__hd__.pinInput.sizes.cellWidth,
17784
+ height: theme.__hd__.pinInput.sizes.cellHeight,
17785
+ borderWidth: themeFocused ? theme.__hd__.pinInput.borderWidths.focused : theme.__hd__.pinInput.borderWidths["default"],
17786
+ borderRadius: theme.__hd__.pinInput.radii.cell,
17787
+ borderColor: theme.__hd__.pinInput.colors[themeState]
17788
+ };
17789
+ });
17790
+ var StyledCellText = index$5(ReactNative.Text)(function (_ref2) {
17791
+ var theme = _ref2.theme,
17792
+ themeState = _ref2.themeState;
17793
+ return {
17794
+ fontFamily: theme.__hd__.pinInput.fonts.cellText,
17795
+ fontSize: theme.__hd__.pinInput.fontSizes.cellText,
17796
+ color: theme.__hd__.pinInput.colors[themeState]
17797
+ };
17798
+ });
17799
+ var StyledSpacer = index$5(ReactNative.View)(function (_ref3) {
17800
+ var theme = _ref3.theme;
17801
+ return {
17802
+ marginLeft: theme.__hd__.pinInput.space.spacer
17803
+ };
17804
+ });
17805
+ var StyledMask = index$5(ReactNative.View)(function (_ref4) {
17806
+ var theme = _ref4.theme,
17807
+ themeState = _ref4.themeState;
17808
+ return {
17809
+ width: theme.__hd__.pinInput.sizes.mask,
17810
+ height: theme.__hd__.pinInput.sizes.mask,
17811
+ borderWidth: theme.__hd__.pinInput.borderWidths["default"],
17812
+ borderRadius: theme.__hd__.pinInput.radii.mask,
17813
+ borderColor: theme.__hd__.pinInput.colors[themeState]
17814
+ };
17815
+ });
17816
+ var StyledFilledMask = index$5(ReactNative.View)(function (_ref5) {
17817
+ var theme = _ref5.theme,
17818
+ themeState = _ref5.themeState;
17819
+ return {
17820
+ width: theme.__hd__.pinInput.sizes.mask,
17821
+ height: theme.__hd__.pinInput.sizes.mask,
17822
+ borderWidth: theme.__hd__.pinInput.borderWidths["default"],
17823
+ borderRadius: theme.__hd__.pinInput.radii.mask,
17824
+ borderColor: theme.__hd__.pinInput.colors[themeState],
17825
+ backgroundColor: theme.__hd__.pinInput.colors[themeState]
17826
+ };
17827
+ });
17828
+ var StyledHiddenInput = index$5(ReactNative.TextInput)(function (_ref6) {
17829
+ var themePinLength = _ref6.themePinLength,
17830
+ theme = _ref6.theme;
17831
+ var cellWidth = theme.__hd__.pinInput.sizes.cellWidth;
17832
+ var spacerWidth = theme.__hd__.pinInput.space.spacer;
17833
+ return {
17834
+ position: 'absolute',
17835
+ opacity: 0,
17836
+ left: 0,
17837
+ top: 0,
17838
+ width: themePinLength * cellWidth + (themePinLength - 1) * spacerWidth,
17839
+ height: '100%'
17840
+ };
17841
+ });
17842
+ var StyledErrorContainer$1 = index$5(ReactNative.View)(function (_ref7) {
17843
+ var theme = _ref7.theme;
17844
+ return {
17845
+ flexDirection: 'row',
17846
+ paddingTop: theme.__hd__.pinInput.space.errorMessagePadding
17847
+ };
17848
+ });
17849
+ var StyledErrorMessage = index$5(ReactNative.Text)(function (_ref8) {
17850
+ var theme = _ref8.theme;
17851
+ return {
17852
+ fontFamily: theme.__hd__.pinInput.fonts.errorMessage,
17853
+ fontSize: theme.__hd__.pinInput.fontSizes.errorMessage,
17854
+ color: theme.__hd__.pinInput.colors.error,
17855
+ paddingLeft: theme.__hd__.pinInput.space.errorMessagePadding
17856
+ };
17857
+ });
17858
+
17859
+ function PinCell(_ref) {
17860
+ var value = _ref.value,
17861
+ _ref$secure = _ref.secure,
17862
+ secure = _ref$secure === void 0 ? true : _ref$secure,
17863
+ _ref$focused = _ref.focused,
17864
+ focused = _ref$focused === void 0 ? false : _ref$focused,
17865
+ _ref$state = _ref.state,
17866
+ state = _ref$state === void 0 ? 'default' : _ref$state;
17867
+ return /*#__PURE__*/React__default["default"].createElement(StyledCell, {
17868
+ themeFocused: focused,
17869
+ themeState: state
17870
+ }, value === '' && /*#__PURE__*/React__default["default"].createElement(StyledMask, {
17871
+ themeState: state,
17872
+ testID: "pin-cell-mask"
17873
+ }), value !== '' && secure && /*#__PURE__*/React__default["default"].createElement(StyledFilledMask, {
17874
+ themeState: state,
17875
+ testID: "pin-cell-filled-mask"
17876
+ }), value !== '' && !secure && /*#__PURE__*/React__default["default"].createElement(StyledCellText, {
17877
+ themeState: state
17878
+ }, value));
17879
+ }
17880
+
17881
+ function getState(_ref) {
17882
+ var disabled = _ref.disabled,
17883
+ error = _ref.error;
17884
+
17885
+ if (disabled) {
17886
+ return 'disabled';
17887
+ }
17888
+
17889
+ if (error) {
17890
+ return 'error';
17891
+ }
17892
+
17893
+ return 'default';
17894
+ }
17895
+
17896
+ function PinInput(_ref2) {
17897
+ var _ref2$value = _ref2.value,
17898
+ value = _ref2$value === void 0 ? '' : _ref2$value,
17899
+ onChangeText = _ref2.onChangeText,
17900
+ onFulfill = _ref2.onFulfill,
17901
+ _ref2$length = _ref2.length,
17902
+ length = _ref2$length === void 0 ? 4 : _ref2$length,
17903
+ _ref2$disabled = _ref2.disabled,
17904
+ disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
17905
+ _ref2$secure = _ref2.secure,
17906
+ secure = _ref2$secure === void 0 ? true : _ref2$secure,
17907
+ _ref2$autoFocus = _ref2.autoFocus,
17908
+ autoFocus = _ref2$autoFocus === void 0 ? false : _ref2$autoFocus,
17909
+ error = _ref2.error,
17910
+ style = _ref2.style,
17911
+ testID = _ref2.testID;
17912
+ var inputRef = React.useRef(null);
17913
+
17914
+ var _useState = React.useState(autoFocus),
17915
+ _useState2 = _slicedToArray(_useState, 2),
17916
+ focused = _useState2[0],
17917
+ setFocused = _useState2[1];
17918
+
17919
+ var state = getState({
17920
+ disabled: disabled,
17921
+ error: error
17922
+ });
17923
+ var focus = React.useCallback(function () {
17924
+ if (inputRef !== null && inputRef !== void 0 && inputRef.current) {
17925
+ inputRef.current.focus();
17926
+ setFocused(true);
17927
+ }
17928
+ }, []);
17929
+ var blur = React.useCallback(function () {
17930
+ if (inputRef !== null && inputRef !== void 0 && inputRef.current) {
17931
+ inputRef.current.blur();
17932
+ setFocused(false);
17933
+ }
17934
+ }, []);
17935
+ var changeText = React.useCallback(function (text) {
17936
+ var pin = (text.match(/[0-9]/g) || []).join('');
17937
+
17938
+ if (onChangeText) {
17939
+ onChangeText(pin);
17940
+ }
17941
+
17942
+ if (pin.length === length && onFulfill) {
17943
+ onFulfill(pin);
17944
+ }
17945
+ }, []);
17946
+ React.useEffect(function () {
17947
+ // Must run after animations for keyboard to automatically open
17948
+ if (autoFocus) {
17949
+ ReactNative.InteractionManager.runAfterInteractions(focus);
17950
+ }
17951
+ }, [inputRef]);
17952
+ return /*#__PURE__*/React__default["default"].createElement(StyledWrapper$3, {
17953
+ style: style,
17954
+ testID: testID
17955
+ }, /*#__PURE__*/React__default["default"].createElement(StyledPinWrapper, null, _toConsumableArray$1(Array(length).keys()).map(function (index) {
17956
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, {
17957
+ key: index
17958
+ }, index !== 0 && /*#__PURE__*/React__default["default"].createElement(StyledSpacer, null), /*#__PURE__*/React__default["default"].createElement(PinCell, {
17959
+ value: value.charAt(index),
17960
+ secure: secure,
17961
+ focused: focused && index === value.length,
17962
+ state: state
17963
+ }));
17964
+ })), state === 'error' && /*#__PURE__*/React__default["default"].createElement(StyledErrorContainer$1, null, /*#__PURE__*/React__default["default"].createElement(Icon, {
17965
+ icon: "circle-info",
17966
+ size: "xsmall",
17967
+ intent: "danger",
17968
+ testID: "pin-error-icon"
17969
+ }), /*#__PURE__*/React__default["default"].createElement(StyledErrorMessage, null, error)), /*#__PURE__*/React__default["default"].createElement(StyledHiddenInput, {
17970
+ themePinLength: length,
17971
+ ref: inputRef,
17972
+ value: value,
17973
+ onChangeText: changeText,
17974
+ secureTextEntry: secure,
17975
+ editable: !disabled,
17976
+ autoFocus: autoFocus,
17977
+ onFocus: focus,
17978
+ onBlur: blur,
17979
+ maxLength: length,
17980
+ keyboardType: "numeric",
17981
+ contextMenuHidden: true,
17982
+ caretHidden: true,
17983
+ testID: "pin-hidden-input"
17984
+ }));
17985
+ }
17986
+
17713
17987
  var HalfCircleWrapper = index$5(ReactNative.View)(function (_ref) {
17714
17988
  var theme = _ref.theme;
17715
17989
  return {
@@ -18565,7 +18839,7 @@ var TextInput = function TextInput(_ref2) {
18565
18839
  }, required && /*#__PURE__*/React__default["default"].createElement(StyledAsteriskLabel, {
18566
18840
  themeVariant: variant,
18567
18841
  fontSize: "small"
18568
- }, "*"), /*#__PURE__*/React__default["default"].createElement(StyledLabel, {
18842
+ }, "*"), !!label && /*#__PURE__*/React__default["default"].createElement(StyledLabel, {
18569
18843
  nativeID: accessibilityLabelledBy,
18570
18844
  testID: "input-label",
18571
18845
  fontSize: "small",
@@ -18579,7 +18853,7 @@ var TextInput = function TextInput(_ref2) {
18579
18853
  pointerEvents: "none"
18580
18854
  }, required && /*#__PURE__*/React__default["default"].createElement(StyledAsteriskLabelInsideTextInput, {
18581
18855
  themeVariant: variant
18582
- }, "*"), /*#__PURE__*/React__default["default"].createElement(StyledLabelInsideTextInput, {
18856
+ }, "*"), !!label && /*#__PURE__*/React__default["default"].createElement(StyledLabelInsideTextInput, {
18583
18857
  nativeID: accessibilityLabelledBy,
18584
18858
  testID: "input-label",
18585
18859
  fontSize: "medium",
@@ -19957,6 +20231,7 @@ exports.Drawer = Drawer;
19957
20231
  exports.FAB = index$3;
19958
20232
  exports.Icon = Icon;
19959
20233
  exports.List = List;
20234
+ exports.PinInput = PinInput;
19960
20235
  exports.Progress = Progress;
19961
20236
  exports.Radio = CompoundRadio;
19962
20237
  exports.SectionHeading = SectionHeading;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hero-design/rn",
3
- "version": "7.10.2",
3
+ "version": "7.11.2",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -21,7 +21,7 @@
21
21
  "dependencies": {
22
22
  "@emotion/native": "^11.9.3",
23
23
  "@emotion/react": "^11.9.3",
24
- "@hero-design/colors": "7.10.2"
24
+ "@hero-design/colors": "7.11.2"
25
25
  },
26
26
  "peerDependencies": {
27
27
  "react": "17.0.2",
@@ -38,10 +38,12 @@ exports[`ActionGroup has active false 1`] = `
38
38
  <View
39
39
  collapsable={false}
40
40
  nativeID="animatedComponent"
41
+ pointerEvents="none"
41
42
  style={
42
43
  Object {
43
44
  "alignItems": "flex-end",
44
45
  "justifyContent": "flex-end",
46
+ "opacity": 0,
45
47
  "transform": Array [
46
48
  Object {
47
49
  "translateX": 400,
@@ -568,10 +570,12 @@ exports[`ActionGroup has active true 1`] = `
568
570
  <View
569
571
  collapsable={false}
570
572
  nativeID="animatedComponent"
573
+ pointerEvents="auto"
571
574
  style={
572
575
  Object {
573
576
  "alignItems": "flex-end",
574
577
  "justifyContent": "flex-end",
578
+ "opacity": 1,
575
579
  "transform": Array [
576
580
  Object {
577
581
  "translateX": 0,
@@ -88,21 +88,32 @@ const ActionGroup = ({
88
88
  outputRange: [400, 0],
89
89
  }
90
90
  );
91
- const interpolatedOpacityAnimation = tranlateXAnimation.current.interpolate({
92
- inputRange: [0, 1],
93
- outputRange: [0, 0.9],
94
- });
91
+ const interpolatedBackdropOpacityAnimation = tranlateXAnimation.current.interpolate(
92
+ {
93
+ inputRange: [0, 1],
94
+ outputRange: [0, 0.9],
95
+ }
96
+ );
97
+
98
+ const interpolatedActionGroupOpacityAnimation = tranlateXAnimation.current.interpolate(
99
+ {
100
+ inputRange: [0, 1],
101
+ outputRange: [0, 1],
102
+ }
103
+ );
95
104
 
96
105
  return (
97
106
  <StyledContainer testID={testID} pointerEvents="box-none" style={style}>
98
107
  <StyledBackdrop
99
108
  pointerEvents={active ? 'auto' : 'box-none'}
100
109
  testID="back-drop"
101
- style={{ opacity: interpolatedOpacityAnimation }}
110
+ style={{ opacity: interpolatedBackdropOpacityAnimation }}
102
111
  />
103
112
  <StyledActionGroupContainer
113
+ pointerEvents={active ? 'auto' : 'none'}
104
114
  testID="action-group"
105
115
  style={{
116
+ opacity: interpolatedActionGroupOpacityAnimation,
106
117
  transform: [{ translateX: interpolatedTranlateXAnimation }],
107
118
  }}
108
119
  >
@@ -0,0 +1,34 @@
1
+ import React from 'react';
2
+ import {
3
+ State,
4
+ StyledCell,
5
+ StyledCellText,
6
+ StyledFilledMask,
7
+ StyledMask,
8
+ } from './StyledPinInput';
9
+
10
+ function PinCell({
11
+ value,
12
+ secure = true,
13
+ focused = false,
14
+ state = 'default',
15
+ }: {
16
+ value: string;
17
+ secure?: boolean;
18
+ focused?: boolean;
19
+ state?: State;
20
+ }) {
21
+ return (
22
+ <StyledCell themeFocused={focused} themeState={state}>
23
+ {value === '' && <StyledMask themeState={state} testID="pin-cell-mask" />}
24
+ {value !== '' && secure && (
25
+ <StyledFilledMask themeState={state} testID="pin-cell-filled-mask" />
26
+ )}
27
+ {value !== '' && !secure && (
28
+ <StyledCellText themeState={state}>{value}</StyledCellText>
29
+ )}
30
+ </StyledCell>
31
+ );
32
+ }
33
+
34
+ export default PinCell;