@hero-design/rn 7.1.3-alpha7 → 7.1.3-alpha8

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "devToolsPort": 19002,
3
3
  "expoServerPort": null,
4
- "packagerPort": null,
4
+ "packagerPort": 19000,
5
5
  "packagerPid": null,
6
6
  "expoServerNgrokUrl": null,
7
7
  "packagerNgrokUrl": null,
package/es/index.js CHANGED
@@ -1485,6 +1485,17 @@ var ThemeProvider = function ThemeProvider(props) {
1485
1485
  }, props.children);
1486
1486
  };
1487
1487
 
1488
+ var BASE_BORDER_WIDTH = 1;
1489
+ var BASE_SPACE = 8;
1490
+ var BASE_FONT = 'BeVietnamPro';
1491
+ var BASE_FONT_SIZE = 10;
1492
+ var scale$1 = {
1493
+ borderWidth: BASE_BORDER_WIDTH,
1494
+ space: BASE_SPACE,
1495
+ font: BASE_FONT,
1496
+ fontSize: BASE_FONT_SIZE
1497
+ };
1498
+
1488
1499
  var palette = {
1489
1500
  black: '#000000',
1490
1501
  blue: '#1dbeee',
@@ -1610,60 +1621,94 @@ var scale = function scale(size) {
1610
1621
  return size + (horizontalScale(size) - size) * factor;
1611
1622
  };
1612
1623
 
1613
- var BASE$1 = 8;
1614
- var space = {
1615
- xxsmall: scale(BASE$1 * 0.25),
1616
- xsmall: scale(BASE$1 * 0.5),
1617
- small: scale(BASE$1),
1618
- medium: scale(BASE$1 * 2),
1619
- large: scale(BASE$1 * 3),
1620
- xlarge: scale(BASE$1 * 4),
1621
- xxlarge: scale(BASE$1 * 5),
1622
- xxxlarge: scale(BASE$1 * 6),
1623
- xxxxlarge: scale(BASE$1 * 7)
1624
+ // https://www.ibm.com/design/language/typography/type-specs-ui#scales
1625
+
1626
+ var genFontSize = function genFontSize(prev, at) {
1627
+ return prev + Math.floor(Math.abs((at - 2) / 4) + 1) * 2;
1628
+ };
1629
+
1630
+ var getFonts = function getFonts(baseFont) {
1631
+ return {
1632
+ light: "".concat(baseFont, "-Light"),
1633
+ regular: "".concat(baseFont, "-Regular"),
1634
+ semiBold: "".concat(baseFont, "-SemiBold")
1635
+ };
1624
1636
  };
1625
1637
 
1626
- var BASE = 16;
1627
- var fonts = {
1628
- light: 'BeVietnamPro-Light',
1629
- regular: 'BeVietnamPro-Regular',
1630
- semiBold: 'BeVietnamPro-SemiBold'
1638
+ var getFontSizes = function getFontSizes(baseFontSize) {
1639
+ var fontSizes = Array.from(new Array(9));
1640
+ fontSizes.forEach(function (_, index) {
1641
+ if (index === 0) {
1642
+ fontSizes[0] = baseFontSize;
1643
+ } else {
1644
+ fontSizes[index] = genFontSize(fontSizes[index - 1], index);
1645
+ }
1646
+
1647
+ return undefined;
1648
+ });
1649
+ return {
1650
+ xxxxxlarge: scale(fontSizes[8]),
1651
+ xxxxlarge: scale(fontSizes[7]),
1652
+ xxxlarge: scale(fontSizes[6]),
1653
+ xxlarge: scale(fontSizes[5]),
1654
+ xlarge: scale(fontSizes[4]),
1655
+ large: scale(fontSizes[3]),
1656
+ medium: scale(fontSizes[2]),
1657
+ small: scale(fontSizes[1]),
1658
+ xsmall: scale(fontSizes[0]) // 10
1659
+
1660
+ };
1631
1661
  };
1632
- var fontSizes = {
1633
- xxxxxlarge: scale(BASE * 2),
1634
- xxxxlarge: scale(BASE * 1.75),
1635
- xxxlarge: scale(BASE * 1.5),
1636
- xxlarge: scale(BASE * 1.25),
1637
- xlarge: scale(BASE * 1.125),
1638
- large: scale(BASE),
1639
- medium: scale(BASE * 0.875),
1640
- small: scale(BASE * 0.75),
1641
- xsmall: scale(BASE * 0.625) // 10
1642
1662
 
1663
+ var getLineHeights = function getLineHeights(fontSizes) {
1664
+ var additionalSpace = 8;
1665
+ return {
1666
+ xxxxxlarge: fontSizes.xxxxxlarge + additionalSpace,
1667
+ xxxxlarge: fontSizes.xxxxlarge + additionalSpace,
1668
+ xxxlarge: fontSizes.xxxlarge + additionalSpace,
1669
+ xxlarge: fontSizes.xxlarge + additionalSpace,
1670
+ xlarge: fontSizes.xlarge + additionalSpace,
1671
+ large: fontSizes.large + additionalSpace,
1672
+ medium: fontSizes.medium + additionalSpace,
1673
+ small: fontSizes.small + additionalSpace,
1674
+ xsmall: fontSizes.xsmall + additionalSpace
1675
+ };
1643
1676
  };
1644
- var lineHeights = {
1645
- xxxxxlarge: fontSizes.xxxxxlarge + 8,
1646
- xxxxlarge: fontSizes.xxxxlarge + 8,
1647
- xxxlarge: fontSizes.xxxlarge + 8,
1648
- xxlarge: fontSizes.xxlarge + 8,
1649
- xlarge: fontSizes.xlarge + 8,
1650
- large: fontSizes.large + 8,
1651
- medium: fontSizes.medium + 8,
1652
- small: fontSizes.small + 8,
1653
- xsmall: fontSizes.xsmall + 8
1677
+
1678
+ var getSpace = function getSpace(baseSpace) {
1679
+ return {
1680
+ xxsmall: scale(baseSpace * 0.25),
1681
+ xsmall: scale(baseSpace * 0.5),
1682
+ small: scale(baseSpace),
1683
+ medium: scale(baseSpace * 2),
1684
+ large: scale(baseSpace * 3),
1685
+ xlarge: scale(baseSpace * 4),
1686
+ xxlarge: scale(baseSpace * 5),
1687
+ xxxlarge: scale(baseSpace * 6),
1688
+ xxxxlarge: scale(baseSpace * 7)
1689
+ };
1654
1690
  };
1655
1691
 
1656
- var borderWidths = {
1657
- base: 1
1692
+ var getBorderWidths = function getBorderWidths(baseBorderWidth) {
1693
+ return {
1694
+ base: baseBorderWidth
1695
+ };
1658
1696
  };
1659
1697
 
1660
- var globalTheme = {
1661
- colors: _objectSpread2({}, systemPalette),
1662
- space: space,
1663
- fonts: fonts,
1664
- fontSizes: fontSizes,
1665
- lineHeights: lineHeights,
1666
- borderWidths: borderWidths
1698
+ var getGlobalTheme = function getGlobalTheme(scale, systemPalette) {
1699
+ var fonts = getFonts(scale.font);
1700
+ var fontSizes = getFontSizes(scale.fontSize);
1701
+ var lineHeights = getLineHeights(fontSizes);
1702
+ var borderWidths = getBorderWidths(scale.borderWidth);
1703
+ var space = getSpace(scale.space);
1704
+ return {
1705
+ colors: _objectSpread2({}, systemPalette),
1706
+ fonts: fonts,
1707
+ fontSizes: fontSizes,
1708
+ lineHeights: lineHeights,
1709
+ borderWidths: borderWidths,
1710
+ space: space
1711
+ };
1667
1712
  };
1668
1713
 
1669
1714
  var getBadgeTheme = function getBadgeTheme(theme) {
@@ -1889,17 +1934,19 @@ var getFABTheme = function getFABTheme(theme) {
1889
1934
  };
1890
1935
 
1891
1936
  var getTheme = function getTheme() {
1892
- var theme = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : globalTheme;
1893
- return _objectSpread2(_objectSpread2({}, theme), {}, {
1937
+ var scale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : scale$1;
1938
+ var systemPallete = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : systemPalette;
1939
+ var globalTheme = getGlobalTheme(scale, systemPallete);
1940
+ return _objectSpread2(_objectSpread2({}, globalTheme), {}, {
1894
1941
  __hd__: {
1895
- badge: getBadgeTheme(theme),
1896
- bottomNavigation: getBottomNavigationTheme(theme),
1897
- card: getCardTheme(theme),
1898
- divider: getDividerTheme(theme),
1899
- icon: getIconTheme(theme),
1900
- tabs: getTabsTheme(theme),
1901
- typography: getTypographyTheme(theme),
1902
- fab: getFABTheme(theme)
1942
+ badge: getBadgeTheme(globalTheme),
1943
+ bottomNavigation: getBottomNavigationTheme(globalTheme),
1944
+ card: getCardTheme(globalTheme),
1945
+ divider: getDividerTheme(globalTheme),
1946
+ icon: getIconTheme(globalTheme),
1947
+ tabs: getTabsTheme(globalTheme),
1948
+ typography: getTypographyTheme(globalTheme),
1949
+ fab: getFABTheme(globalTheme)
1903
1950
  }
1904
1951
  });
1905
1952
  };
@@ -13639,7 +13686,7 @@ var StyledBottomBarText = index$1(Typography.Text)(function (_ref3) {
13639
13686
  var isIOS = Platform.OS === 'ios';
13640
13687
  Platform.OS === 'android';
13641
13688
 
13642
- var _excluded$3 = ["onChange", "renderActiveTabOnly", "selectedTabKey", "tabs"];
13689
+ var _excluded$3 = ["onTabPress", "renderActiveTabOnly", "selectedTabKey", "tabs"];
13643
13690
 
13644
13691
  var getInactiveIcon = function getInactiveIcon(icon) {
13645
13692
  var inactiveIcon = "".concat(icon, "-outlined");
@@ -13647,7 +13694,7 @@ var getInactiveIcon = function getInactiveIcon(icon) {
13647
13694
  };
13648
13695
 
13649
13696
  var BottomNavigation = function BottomNavigation(_ref) {
13650
- var onChange = _ref.onChange,
13697
+ var onTabPress = _ref.onTabPress,
13651
13698
  _ref$renderActiveTabO = _ref.renderActiveTabOnly,
13652
13699
  renderActiveTabOnly = _ref$renderActiveTabO === void 0 ? false : _ref$renderActiveTabO,
13653
13700
  selectedTabKey = _ref.selectedTabKey,
@@ -13673,7 +13720,8 @@ var BottomNavigation = function BottomNavigation(_ref) {
13673
13720
 
13674
13721
  return /*#__PURE__*/React.createElement(BottomNavigationContainer, nativeProps, /*#__PURE__*/React.createElement(ContentWrapper$1, null, tabs.map(function (tab) {
13675
13722
  var key = tab.key,
13676
- component = tab.component;
13723
+ component = tab.component,
13724
+ testID = tab.testID;
13677
13725
  var active = selectedTabKey === key;
13678
13726
 
13679
13727
  if (renderActiveTabOnly && !active) {
@@ -13687,7 +13735,7 @@ var BottomNavigation = function BottomNavigation(_ref) {
13687
13735
 
13688
13736
  return /*#__PURE__*/React.createElement(BottomNavigationTab, {
13689
13737
  key: key,
13690
- testID: "route-screen-".concat(selectedTabKey),
13738
+ testID: testID ? "route-screen-".concat(testID) : undefined,
13691
13739
  pointerEvents: active ? 'auto' : 'none',
13692
13740
  accessibilityElementsHidden: !active,
13693
13741
  importantForAccessibility: active ? 'auto' : 'no-hide-descendants',
@@ -13709,9 +13757,7 @@ var BottomNavigation = function BottomNavigation(_ref) {
13709
13757
  return /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {
13710
13758
  key: key,
13711
13759
  onPress: function onPress() {
13712
- if (key !== selectedTabKey) {
13713
- onChange(key);
13714
- }
13760
+ return onTabPress(key);
13715
13761
  },
13716
13762
  testID: testID
13717
13763
  }, /*#__PURE__*/React.createElement(BottomBarItem, null, /*#__PURE__*/React.createElement(Icon, {
@@ -14084,10 +14130,10 @@ var StyledHeaderTabText = index$1(Typography.Text)(function (_ref6) {
14084
14130
  };
14085
14131
  });
14086
14132
 
14087
- var _excluded = ["onChange", "renderActiveTabOnly", "selectedTabKey", "tabs"];
14133
+ var _excluded = ["onTabPress", "renderActiveTabOnly", "selectedTabKey", "tabs"];
14088
14134
 
14089
14135
  var Tabs = function Tabs(_ref) {
14090
- var onChange = _ref.onChange,
14136
+ var onTabPress = _ref.onTabPress,
14091
14137
  _ref$renderActiveTabO = _ref.renderActiveTabOnly,
14092
14138
  renderActiveTabOnly = _ref$renderActiveTabO === void 0 ? false : _ref$renderActiveTabO,
14093
14139
  selectedTabKey = _ref.selectedTabKey,
@@ -14105,6 +14151,21 @@ var Tabs = function Tabs(_ref) {
14105
14151
  loaded = _React$useState2[0],
14106
14152
  setLoaded = _React$useState2[1];
14107
14153
 
14154
+ React.useEffect(function () {
14155
+ var selectedTabIndex = tabs.findIndex(function (item) {
14156
+ return item.key === selectedTabKey;
14157
+ });
14158
+
14159
+ if (selectedTabIndex !== -1) {
14160
+ var _flatListRef$current;
14161
+
14162
+ (_flatListRef$current = flatListRef.current) === null || _flatListRef$current === void 0 ? void 0 : _flatListRef$current.scrollToIndex({
14163
+ index: selectedTabIndex,
14164
+ viewPosition: 0.5
14165
+ });
14166
+ }
14167
+ }, [selectedTabKey, tabs]);
14168
+
14108
14169
  if (!loaded.includes(selectedTabKey)) {
14109
14170
  // Set the current tab to be loaded if it was not loaded before
14110
14171
  setLoaded(function (loadedState) {
@@ -14125,17 +14186,16 @@ var Tabs = function Tabs(_ref) {
14125
14186
  onScrollToIndexFailed: function onScrollToIndexFailed(_ref2) {
14126
14187
  var index = _ref2.index;
14127
14188
  setTimeout(function () {
14128
- var _flatListRef$current;
14189
+ var _flatListRef$current2;
14129
14190
 
14130
- return (_flatListRef$current = flatListRef.current) === null || _flatListRef$current === void 0 ? void 0 : _flatListRef$current.scrollToIndex({
14191
+ return (_flatListRef$current2 = flatListRef.current) === null || _flatListRef$current2 === void 0 ? void 0 : _flatListRef$current2.scrollToIndex({
14131
14192
  index: index,
14132
14193
  viewPosition: 0.5
14133
14194
  });
14134
14195
  }, 100);
14135
14196
  },
14136
14197
  renderItem: function renderItem(_ref3) {
14137
- var tab = _ref3.item,
14138
- index = _ref3.index;
14198
+ var tab = _ref3.item;
14139
14199
  var key = tab.key,
14140
14200
  icon = tab.icon,
14141
14201
  title = tab.title,
@@ -14144,15 +14204,7 @@ var Tabs = function Tabs(_ref) {
14144
14204
  return /*#__PURE__*/React.createElement(TouchableOpacity, {
14145
14205
  key: key,
14146
14206
  onPress: function onPress() {
14147
- if (key !== selectedTabKey) {
14148
- var _flatListRef$current2;
14149
-
14150
- onChange(key);
14151
- (_flatListRef$current2 = flatListRef.current) === null || _flatListRef$current2 === void 0 ? void 0 : _flatListRef$current2.scrollToIndex({
14152
- index: index,
14153
- viewPosition: 0.5
14154
- });
14155
- }
14207
+ return onTabPress(key);
14156
14208
  },
14157
14209
  testID: testID
14158
14210
  }, /*#__PURE__*/React.createElement(HeaderTabItem, null, /*#__PURE__*/React.createElement(StyledHeaderTabIcon, {
@@ -14167,7 +14219,8 @@ var Tabs = function Tabs(_ref) {
14167
14219
  }
14168
14220
  })), /*#__PURE__*/React.createElement(ContentWrapper, null, tabs.map(function (tab) {
14169
14221
  var key = tab.key,
14170
- component = tab.component;
14222
+ component = tab.component,
14223
+ testID = tab.testID;
14171
14224
  var active = selectedTabKey === key;
14172
14225
 
14173
14226
  if (renderActiveTabOnly && !active) {
@@ -14181,7 +14234,7 @@ var Tabs = function Tabs(_ref) {
14181
14234
 
14182
14235
  return /*#__PURE__*/React.createElement(TabScreen, {
14183
14236
  key: key,
14184
- testID: "tab-screen-".concat(selectedTabKey),
14237
+ testID: testID ? "tab-screen-".concat(testID) : undefined,
14185
14238
  pointerEvents: active ? 'auto' : 'none',
14186
14239
  accessibilityElementsHidden: !active,
14187
14240
  importantForAccessibility: active ? 'auto' : 'no-hide-descendants',
package/lib/index.js CHANGED
@@ -1512,6 +1512,17 @@ var ThemeProvider = function ThemeProvider(props) {
1512
1512
  }, props.children);
1513
1513
  };
1514
1514
 
1515
+ var BASE_BORDER_WIDTH = 1;
1516
+ var BASE_SPACE = 8;
1517
+ var BASE_FONT = 'BeVietnamPro';
1518
+ var BASE_FONT_SIZE = 10;
1519
+ var scale$1 = {
1520
+ borderWidth: BASE_BORDER_WIDTH,
1521
+ space: BASE_SPACE,
1522
+ font: BASE_FONT,
1523
+ fontSize: BASE_FONT_SIZE
1524
+ };
1525
+
1515
1526
  var palette = {
1516
1527
  black: '#000000',
1517
1528
  blue: '#1dbeee',
@@ -1637,60 +1648,94 @@ var scale = function scale(size) {
1637
1648
  return size + (horizontalScale(size) - size) * factor;
1638
1649
  };
1639
1650
 
1640
- var BASE$1 = 8;
1641
- var space = {
1642
- xxsmall: scale(BASE$1 * 0.25),
1643
- xsmall: scale(BASE$1 * 0.5),
1644
- small: scale(BASE$1),
1645
- medium: scale(BASE$1 * 2),
1646
- large: scale(BASE$1 * 3),
1647
- xlarge: scale(BASE$1 * 4),
1648
- xxlarge: scale(BASE$1 * 5),
1649
- xxxlarge: scale(BASE$1 * 6),
1650
- xxxxlarge: scale(BASE$1 * 7)
1651
+ // https://www.ibm.com/design/language/typography/type-specs-ui#scales
1652
+
1653
+ var genFontSize = function genFontSize(prev, at) {
1654
+ return prev + Math.floor(Math.abs((at - 2) / 4) + 1) * 2;
1655
+ };
1656
+
1657
+ var getFonts = function getFonts(baseFont) {
1658
+ return {
1659
+ light: "".concat(baseFont, "-Light"),
1660
+ regular: "".concat(baseFont, "-Regular"),
1661
+ semiBold: "".concat(baseFont, "-SemiBold")
1662
+ };
1651
1663
  };
1652
1664
 
1653
- var BASE = 16;
1654
- var fonts = {
1655
- light: 'BeVietnamPro-Light',
1656
- regular: 'BeVietnamPro-Regular',
1657
- semiBold: 'BeVietnamPro-SemiBold'
1665
+ var getFontSizes = function getFontSizes(baseFontSize) {
1666
+ var fontSizes = Array.from(new Array(9));
1667
+ fontSizes.forEach(function (_, index) {
1668
+ if (index === 0) {
1669
+ fontSizes[0] = baseFontSize;
1670
+ } else {
1671
+ fontSizes[index] = genFontSize(fontSizes[index - 1], index);
1672
+ }
1673
+
1674
+ return undefined;
1675
+ });
1676
+ return {
1677
+ xxxxxlarge: scale(fontSizes[8]),
1678
+ xxxxlarge: scale(fontSizes[7]),
1679
+ xxxlarge: scale(fontSizes[6]),
1680
+ xxlarge: scale(fontSizes[5]),
1681
+ xlarge: scale(fontSizes[4]),
1682
+ large: scale(fontSizes[3]),
1683
+ medium: scale(fontSizes[2]),
1684
+ small: scale(fontSizes[1]),
1685
+ xsmall: scale(fontSizes[0]) // 10
1686
+
1687
+ };
1658
1688
  };
1659
- var fontSizes = {
1660
- xxxxxlarge: scale(BASE * 2),
1661
- xxxxlarge: scale(BASE * 1.75),
1662
- xxxlarge: scale(BASE * 1.5),
1663
- xxlarge: scale(BASE * 1.25),
1664
- xlarge: scale(BASE * 1.125),
1665
- large: scale(BASE),
1666
- medium: scale(BASE * 0.875),
1667
- small: scale(BASE * 0.75),
1668
- xsmall: scale(BASE * 0.625) // 10
1669
1689
 
1690
+ var getLineHeights = function getLineHeights(fontSizes) {
1691
+ var additionalSpace = 8;
1692
+ return {
1693
+ xxxxxlarge: fontSizes.xxxxxlarge + additionalSpace,
1694
+ xxxxlarge: fontSizes.xxxxlarge + additionalSpace,
1695
+ xxxlarge: fontSizes.xxxlarge + additionalSpace,
1696
+ xxlarge: fontSizes.xxlarge + additionalSpace,
1697
+ xlarge: fontSizes.xlarge + additionalSpace,
1698
+ large: fontSizes.large + additionalSpace,
1699
+ medium: fontSizes.medium + additionalSpace,
1700
+ small: fontSizes.small + additionalSpace,
1701
+ xsmall: fontSizes.xsmall + additionalSpace
1702
+ };
1670
1703
  };
1671
- var lineHeights = {
1672
- xxxxxlarge: fontSizes.xxxxxlarge + 8,
1673
- xxxxlarge: fontSizes.xxxxlarge + 8,
1674
- xxxlarge: fontSizes.xxxlarge + 8,
1675
- xxlarge: fontSizes.xxlarge + 8,
1676
- xlarge: fontSizes.xlarge + 8,
1677
- large: fontSizes.large + 8,
1678
- medium: fontSizes.medium + 8,
1679
- small: fontSizes.small + 8,
1680
- xsmall: fontSizes.xsmall + 8
1704
+
1705
+ var getSpace = function getSpace(baseSpace) {
1706
+ return {
1707
+ xxsmall: scale(baseSpace * 0.25),
1708
+ xsmall: scale(baseSpace * 0.5),
1709
+ small: scale(baseSpace),
1710
+ medium: scale(baseSpace * 2),
1711
+ large: scale(baseSpace * 3),
1712
+ xlarge: scale(baseSpace * 4),
1713
+ xxlarge: scale(baseSpace * 5),
1714
+ xxxlarge: scale(baseSpace * 6),
1715
+ xxxxlarge: scale(baseSpace * 7)
1716
+ };
1681
1717
  };
1682
1718
 
1683
- var borderWidths = {
1684
- base: 1
1719
+ var getBorderWidths = function getBorderWidths(baseBorderWidth) {
1720
+ return {
1721
+ base: baseBorderWidth
1722
+ };
1685
1723
  };
1686
1724
 
1687
- var globalTheme = {
1688
- colors: _objectSpread2({}, systemPalette),
1689
- space: space,
1690
- fonts: fonts,
1691
- fontSizes: fontSizes,
1692
- lineHeights: lineHeights,
1693
- borderWidths: borderWidths
1725
+ var getGlobalTheme = function getGlobalTheme(scale, systemPalette) {
1726
+ var fonts = getFonts(scale.font);
1727
+ var fontSizes = getFontSizes(scale.fontSize);
1728
+ var lineHeights = getLineHeights(fontSizes);
1729
+ var borderWidths = getBorderWidths(scale.borderWidth);
1730
+ var space = getSpace(scale.space);
1731
+ return {
1732
+ colors: _objectSpread2({}, systemPalette),
1733
+ fonts: fonts,
1734
+ fontSizes: fontSizes,
1735
+ lineHeights: lineHeights,
1736
+ borderWidths: borderWidths,
1737
+ space: space
1738
+ };
1694
1739
  };
1695
1740
 
1696
1741
  var getBadgeTheme = function getBadgeTheme(theme) {
@@ -1916,17 +1961,19 @@ var getFABTheme = function getFABTheme(theme) {
1916
1961
  };
1917
1962
 
1918
1963
  var getTheme = function getTheme() {
1919
- var theme = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : globalTheme;
1920
- return _objectSpread2(_objectSpread2({}, theme), {}, {
1964
+ var scale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : scale$1;
1965
+ var systemPallete = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : systemPalette;
1966
+ var globalTheme = getGlobalTheme(scale, systemPallete);
1967
+ return _objectSpread2(_objectSpread2({}, globalTheme), {}, {
1921
1968
  __hd__: {
1922
- badge: getBadgeTheme(theme),
1923
- bottomNavigation: getBottomNavigationTheme(theme),
1924
- card: getCardTheme(theme),
1925
- divider: getDividerTheme(theme),
1926
- icon: getIconTheme(theme),
1927
- tabs: getTabsTheme(theme),
1928
- typography: getTypographyTheme(theme),
1929
- fab: getFABTheme(theme)
1969
+ badge: getBadgeTheme(globalTheme),
1970
+ bottomNavigation: getBottomNavigationTheme(globalTheme),
1971
+ card: getCardTheme(globalTheme),
1972
+ divider: getDividerTheme(globalTheme),
1973
+ icon: getIconTheme(globalTheme),
1974
+ tabs: getTabsTheme(globalTheme),
1975
+ typography: getTypographyTheme(globalTheme),
1976
+ fab: getFABTheme(globalTheme)
1930
1977
  }
1931
1978
  });
1932
1979
  };
@@ -13666,7 +13713,7 @@ var StyledBottomBarText = index$1(Typography.Text)(function (_ref3) {
13666
13713
  var isIOS = reactNative.Platform.OS === 'ios';
13667
13714
  reactNative.Platform.OS === 'android';
13668
13715
 
13669
- var _excluded$3 = ["onChange", "renderActiveTabOnly", "selectedTabKey", "tabs"];
13716
+ var _excluded$3 = ["onTabPress", "renderActiveTabOnly", "selectedTabKey", "tabs"];
13670
13717
 
13671
13718
  var getInactiveIcon = function getInactiveIcon(icon) {
13672
13719
  var inactiveIcon = "".concat(icon, "-outlined");
@@ -13674,7 +13721,7 @@ var getInactiveIcon = function getInactiveIcon(icon) {
13674
13721
  };
13675
13722
 
13676
13723
  var BottomNavigation = function BottomNavigation(_ref) {
13677
- var onChange = _ref.onChange,
13724
+ var onTabPress = _ref.onTabPress,
13678
13725
  _ref$renderActiveTabO = _ref.renderActiveTabOnly,
13679
13726
  renderActiveTabOnly = _ref$renderActiveTabO === void 0 ? false : _ref$renderActiveTabO,
13680
13727
  selectedTabKey = _ref.selectedTabKey,
@@ -13700,7 +13747,8 @@ var BottomNavigation = function BottomNavigation(_ref) {
13700
13747
 
13701
13748
  return /*#__PURE__*/React__default["default"].createElement(BottomNavigationContainer, nativeProps, /*#__PURE__*/React__default["default"].createElement(ContentWrapper$1, null, tabs.map(function (tab) {
13702
13749
  var key = tab.key,
13703
- component = tab.component;
13750
+ component = tab.component,
13751
+ testID = tab.testID;
13704
13752
  var active = selectedTabKey === key;
13705
13753
 
13706
13754
  if (renderActiveTabOnly && !active) {
@@ -13714,7 +13762,7 @@ var BottomNavigation = function BottomNavigation(_ref) {
13714
13762
 
13715
13763
  return /*#__PURE__*/React__default["default"].createElement(BottomNavigationTab, {
13716
13764
  key: key,
13717
- testID: "route-screen-".concat(selectedTabKey),
13765
+ testID: testID ? "route-screen-".concat(testID) : undefined,
13718
13766
  pointerEvents: active ? 'auto' : 'none',
13719
13767
  accessibilityElementsHidden: !active,
13720
13768
  importantForAccessibility: active ? 'auto' : 'no-hide-descendants',
@@ -13736,9 +13784,7 @@ var BottomNavigation = function BottomNavigation(_ref) {
13736
13784
  return /*#__PURE__*/React__default["default"].createElement(reactNative.TouchableWithoutFeedback, {
13737
13785
  key: key,
13738
13786
  onPress: function onPress() {
13739
- if (key !== selectedTabKey) {
13740
- onChange(key);
13741
- }
13787
+ return onTabPress(key);
13742
13788
  },
13743
13789
  testID: testID
13744
13790
  }, /*#__PURE__*/React__default["default"].createElement(BottomBarItem, null, /*#__PURE__*/React__default["default"].createElement(Icon, {
@@ -14111,10 +14157,10 @@ var StyledHeaderTabText = index$1(Typography.Text)(function (_ref6) {
14111
14157
  };
14112
14158
  });
14113
14159
 
14114
- var _excluded = ["onChange", "renderActiveTabOnly", "selectedTabKey", "tabs"];
14160
+ var _excluded = ["onTabPress", "renderActiveTabOnly", "selectedTabKey", "tabs"];
14115
14161
 
14116
14162
  var Tabs = function Tabs(_ref) {
14117
- var onChange = _ref.onChange,
14163
+ var onTabPress = _ref.onTabPress,
14118
14164
  _ref$renderActiveTabO = _ref.renderActiveTabOnly,
14119
14165
  renderActiveTabOnly = _ref$renderActiveTabO === void 0 ? false : _ref$renderActiveTabO,
14120
14166
  selectedTabKey = _ref.selectedTabKey,
@@ -14132,6 +14178,21 @@ var Tabs = function Tabs(_ref) {
14132
14178
  loaded = _React$useState2[0],
14133
14179
  setLoaded = _React$useState2[1];
14134
14180
 
14181
+ React__default["default"].useEffect(function () {
14182
+ var selectedTabIndex = tabs.findIndex(function (item) {
14183
+ return item.key === selectedTabKey;
14184
+ });
14185
+
14186
+ if (selectedTabIndex !== -1) {
14187
+ var _flatListRef$current;
14188
+
14189
+ (_flatListRef$current = flatListRef.current) === null || _flatListRef$current === void 0 ? void 0 : _flatListRef$current.scrollToIndex({
14190
+ index: selectedTabIndex,
14191
+ viewPosition: 0.5
14192
+ });
14193
+ }
14194
+ }, [selectedTabKey, tabs]);
14195
+
14135
14196
  if (!loaded.includes(selectedTabKey)) {
14136
14197
  // Set the current tab to be loaded if it was not loaded before
14137
14198
  setLoaded(function (loadedState) {
@@ -14152,17 +14213,16 @@ var Tabs = function Tabs(_ref) {
14152
14213
  onScrollToIndexFailed: function onScrollToIndexFailed(_ref2) {
14153
14214
  var index = _ref2.index;
14154
14215
  setTimeout(function () {
14155
- var _flatListRef$current;
14216
+ var _flatListRef$current2;
14156
14217
 
14157
- return (_flatListRef$current = flatListRef.current) === null || _flatListRef$current === void 0 ? void 0 : _flatListRef$current.scrollToIndex({
14218
+ return (_flatListRef$current2 = flatListRef.current) === null || _flatListRef$current2 === void 0 ? void 0 : _flatListRef$current2.scrollToIndex({
14158
14219
  index: index,
14159
14220
  viewPosition: 0.5
14160
14221
  });
14161
14222
  }, 100);
14162
14223
  },
14163
14224
  renderItem: function renderItem(_ref3) {
14164
- var tab = _ref3.item,
14165
- index = _ref3.index;
14225
+ var tab = _ref3.item;
14166
14226
  var key = tab.key,
14167
14227
  icon = tab.icon,
14168
14228
  title = tab.title,
@@ -14171,15 +14231,7 @@ var Tabs = function Tabs(_ref) {
14171
14231
  return /*#__PURE__*/React__default["default"].createElement(reactNative.TouchableOpacity, {
14172
14232
  key: key,
14173
14233
  onPress: function onPress() {
14174
- if (key !== selectedTabKey) {
14175
- var _flatListRef$current2;
14176
-
14177
- onChange(key);
14178
- (_flatListRef$current2 = flatListRef.current) === null || _flatListRef$current2 === void 0 ? void 0 : _flatListRef$current2.scrollToIndex({
14179
- index: index,
14180
- viewPosition: 0.5
14181
- });
14182
- }
14234
+ return onTabPress(key);
14183
14235
  },
14184
14236
  testID: testID
14185
14237
  }, /*#__PURE__*/React__default["default"].createElement(HeaderTabItem, null, /*#__PURE__*/React__default["default"].createElement(StyledHeaderTabIcon, {
@@ -14194,7 +14246,8 @@ var Tabs = function Tabs(_ref) {
14194
14246
  }
14195
14247
  })), /*#__PURE__*/React__default["default"].createElement(ContentWrapper, null, tabs.map(function (tab) {
14196
14248
  var key = tab.key,
14197
- component = tab.component;
14249
+ component = tab.component,
14250
+ testID = tab.testID;
14198
14251
  var active = selectedTabKey === key;
14199
14252
 
14200
14253
  if (renderActiveTabOnly && !active) {
@@ -14208,7 +14261,7 @@ var Tabs = function Tabs(_ref) {
14208
14261
 
14209
14262
  return /*#__PURE__*/React__default["default"].createElement(TabScreen, {
14210
14263
  key: key,
14211
- testID: "tab-screen-".concat(selectedTabKey),
14264
+ testID: testID ? "tab-screen-".concat(testID) : undefined,
14212
14265
  pointerEvents: active ? 'auto' : 'none',
14213
14266
  accessibilityElementsHidden: !active,
14214
14267
  importantForAccessibility: active ? 'auto' : 'no-hide-descendants',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hero-design/rn",
3
- "version": "7.1.3-alpha7",
3
+ "version": "7.1.3-alpha8",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",