@hero-design/rn 7.2.2 → 7.3.0

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 (244) hide show
  1. package/.expo/packager-info.json +1 -1
  2. package/.expo/prebuild/cached-packages.json +4 -0
  3. package/.expo/xcodebuild-error.log +2 -0
  4. package/.expo/xcodebuild.log +11199 -0
  5. package/.turbo/turbo-build.log +8 -8
  6. package/.turbo/turbo-build:types.log +2 -0
  7. package/.turbo/turbo-test.log +131 -0
  8. package/.turbo/turbo-type-check.log +7 -0
  9. package/es/index.js +2409 -468
  10. package/jest.config.js +1 -1
  11. package/lib/index.js +2430 -484
  12. package/package.json +4 -2
  13. package/playground/components/Avatar.tsx +102 -0
  14. package/playground/components/Badge.tsx +146 -9
  15. package/playground/components/Button.tsx +138 -35
  16. package/playground/components/Card.tsx +36 -1
  17. package/playground/components/Collapse.tsx +99 -0
  18. package/playground/components/Drawer.tsx +32 -0
  19. package/playground/components/FAB.tsx +15 -0
  20. package/playground/components/IconButton.tsx +67 -0
  21. package/playground/components/Progress.tsx +95 -0
  22. package/playground/components/Tabs.tsx +106 -14
  23. package/playground/components/Tag.tsx +45 -0
  24. package/playground/index.tsx +18 -0
  25. package/src/components/Avatar/StyledAvatar.tsx +61 -0
  26. package/src/components/Avatar/__tests__/StyledAvatar.spec.tsx +48 -0
  27. package/src/components/Avatar/__tests__/__snapshots__/StyledAvatar.spec.tsx.snap +87 -0
  28. package/src/components/Avatar/__tests__/__snapshots__/index.spec.tsx.snap +88 -0
  29. package/src/components/Avatar/__tests__/index.spec.tsx +26 -0
  30. package/src/components/Avatar/index.tsx +71 -0
  31. package/src/components/Badge/Status.tsx +77 -0
  32. package/src/components/Badge/StyledBadge.tsx +38 -26
  33. package/src/components/Badge/__tests__/Badge.spec.tsx +16 -0
  34. package/src/components/Badge/__tests__/Status.spec.tsx +27 -0
  35. package/src/components/Badge/__tests__/__snapshots__/Badge.spec.tsx.snap +133 -52
  36. package/src/components/Badge/__tests__/__snapshots__/Status.spec.tsx.snap +89 -0
  37. package/src/components/Badge/index.tsx +77 -19
  38. package/src/components/Button/Button.tsx +163 -0
  39. package/src/components/Button/LoadingIndicator/StyledLoadingIndicator.tsx +58 -0
  40. package/src/components/Button/LoadingIndicator/__tests__/StyledLoadingIndicator.spec.tsx +20 -0
  41. package/src/components/Button/LoadingIndicator/__tests__/__snapshots__/StyledLoadingIndicator.spec.tsx.snap +101 -0
  42. package/src/components/Button/LoadingIndicator/__tests__/__snapshots__/index.spec.tsx.snap +606 -0
  43. package/src/components/Button/LoadingIndicator/__tests__/index.spec.tsx +24 -0
  44. package/src/components/Button/LoadingIndicator/index.tsx +140 -0
  45. package/src/components/Button/StyledButton.tsx +254 -0
  46. package/src/components/Button/__tests__/Button.spec.tsx +86 -0
  47. package/src/components/Button/__tests__/{index.spec.tsx → IconButton.spec.tsx} +0 -0
  48. package/src/components/Button/__tests__/StyledButton.spec.tsx +154 -0
  49. package/src/components/Button/__tests__/__snapshots__/{index.spec.tsx.snap → IconButton.spec.tsx.snap} +0 -0
  50. package/src/components/Button/__tests__/__snapshots__/StyledButton.spec.tsx.snap +895 -0
  51. package/src/components/Button/index.tsx +10 -2
  52. package/src/components/Card/StyledCard.tsx +27 -4
  53. package/src/components/Card/__tests__/StyledCard.spec.tsx +15 -3
  54. package/src/components/Card/__tests__/__snapshots__/StyledCard.spec.tsx.snap +34 -1
  55. package/src/components/Card/__tests__/index.spec.tsx +16 -21
  56. package/src/components/Card/index.tsx +15 -2
  57. package/src/components/Collapse/StyledCollapse.tsx +15 -0
  58. package/src/components/Collapse/__tests__/StyledCollapse.spec.tsx +26 -0
  59. package/src/components/Collapse/__tests__/__snapshots__/StyledCollapse.spec.tsx.snap +37 -0
  60. package/src/components/Collapse/__tests__/__snapshots__/index.spec.tsx.snap +84 -0
  61. package/src/components/Collapse/__tests__/index.spec.tsx +42 -0
  62. package/src/components/Collapse/index.tsx +109 -0
  63. package/src/components/Divider/index.tsx +1 -1
  64. package/src/components/Drawer/StyledDrawer.tsx +39 -0
  65. package/src/components/Drawer/__tests__/__snapshots__/index.spec.tsx.snap +244 -0
  66. package/src/components/Drawer/__tests__/index.spec.tsx +37 -0
  67. package/src/components/Drawer/index.tsx +93 -0
  68. package/src/components/FAB/ActionGroup/__tests__/__snapshots__/index.spec.tsx.snap +78 -62
  69. package/src/components/FAB/ActionGroup/__tests__/index.spec.tsx +2 -0
  70. package/src/components/FAB/ActionGroup/index.tsx +13 -0
  71. package/src/components/FAB/FAB.tsx +63 -13
  72. package/src/components/FAB/StyledFAB.tsx +25 -6
  73. package/src/components/FAB/__tests__/__snapshots__/AnimatedFABIcon.spec.tsx.snap +6 -2
  74. package/src/components/FAB/__tests__/__snapshots__/StyledFAB.spec.tsx.snap +7 -3
  75. package/src/components/FAB/__tests__/__snapshots__/index.spec.tsx.snap +88 -6
  76. package/src/components/FAB/__tests__/index.spec.tsx +16 -0
  77. package/src/components/Progress/ProgressBar.tsx +73 -0
  78. package/src/components/Progress/ProgressCircle.tsx +165 -0
  79. package/src/components/Progress/StyledProgressBar.tsx +21 -0
  80. package/src/components/Progress/StyledProgressCircle.tsx +66 -0
  81. package/src/components/Progress/__tests__/__snapshots__/index.spec.js.snap +641 -0
  82. package/src/components/Progress/__tests__/index.spec.js +46 -0
  83. package/src/components/Progress/index.tsx +6 -0
  84. package/src/components/Progress/types.ts +1 -0
  85. package/src/components/Tabs/ActiveTabIndicator.tsx +37 -0
  86. package/src/components/Tabs/ScrollableTabs.tsx +216 -0
  87. package/src/components/Tabs/StyledScrollableTabs.tsx +60 -0
  88. package/src/components/Tabs/StyledTabs.tsx +30 -44
  89. package/src/components/Tabs/__tests__/ScrollableTabs.spec.tsx +84 -0
  90. package/src/components/Tabs/__tests__/__snapshots__/ScrollableTabs.spec.tsx.snap +591 -0
  91. package/src/components/Tabs/__tests__/__snapshots__/index.spec.tsx.snap +317 -224
  92. package/src/components/Tabs/__tests__/index.spec.tsx +22 -21
  93. package/src/components/Tabs/index.tsx +155 -114
  94. package/src/components/Tabs/utils.ts +13 -0
  95. package/src/components/Tag/StyledTag.tsx +35 -0
  96. package/src/components/Tag/__tests__/Tag.spec.tsx +41 -0
  97. package/src/components/Tag/__tests__/__snapshots__/Tag.spec.tsx.snap +153 -0
  98. package/src/components/Tag/index.tsx +41 -0
  99. package/src/components/Typography/Text/index.tsx +1 -1
  100. package/src/index.ts +10 -0
  101. package/src/theme/__tests__/__snapshots__/index.spec.ts.snap +182 -20
  102. package/src/theme/components/avatar.ts +40 -0
  103. package/src/theme/components/badge.ts +14 -16
  104. package/src/theme/components/button.ts +57 -0
  105. package/src/theme/components/card.ts +8 -2
  106. package/src/theme/components/drawer.ts +24 -0
  107. package/src/theme/components/fab.ts +9 -2
  108. package/src/theme/components/progress.ts +27 -0
  109. package/src/theme/components/tabs.ts +22 -7
  110. package/src/theme/components/tag.ts +39 -0
  111. package/src/theme/global/borders.ts +13 -1
  112. package/src/theme/global/colors.ts +6 -1
  113. package/src/theme/global/index.ts +3 -1
  114. package/src/theme/global/scale.ts +3 -0
  115. package/src/theme/index.ts +16 -1
  116. package/src/utils/hooks.ts +10 -0
  117. package/testUtils/setup.tsx +43 -0
  118. package/types/playground/components/Avatar.d.ts +2 -0
  119. package/types/playground/components/Badge.d.ts +0 -0
  120. package/types/playground/components/BottomNavigation.d.ts +0 -0
  121. package/types/playground/components/Button.d.ts +0 -0
  122. package/types/playground/components/Card.d.ts +0 -0
  123. package/types/playground/components/Collapse.d.ts +2 -0
  124. package/types/playground/components/Divider.d.ts +0 -0
  125. package/types/playground/components/Drawer.d.ts +2 -0
  126. package/types/playground/components/FAB.d.ts +0 -0
  127. package/types/playground/components/Icon.d.ts +0 -0
  128. package/types/playground/components/IconButton.d.ts +2 -0
  129. package/types/playground/components/Progress.d.ts +2 -0
  130. package/types/playground/components/Tabs.d.ts +0 -0
  131. package/types/playground/components/Tag.d.ts +2 -0
  132. package/types/playground/components/Typography.d.ts +0 -0
  133. package/types/playground/index.d.ts +0 -0
  134. package/types/src/components/Avatar/StyledAvatar.d.ts +46 -0
  135. package/types/src/components/{BottomNavigation/__tests__/BottomNavigation.spec.d.ts → Avatar/__tests__/StyledAvatar.spec.d.ts} +0 -0
  136. package/types/src/components/{Card/__tests__/Card.spec.d.ts → Avatar/__tests__/index.spec.d.ts} +0 -0
  137. package/types/src/components/Avatar/index.d.ts +25 -0
  138. package/types/src/components/Badge/Status.d.ts +24 -0
  139. package/types/src/components/Badge/StyledBadge.d.ts +17 -9
  140. package/types/src/components/Badge/__tests__/Badge.spec.d.ts +0 -0
  141. package/types/src/components/{FAB/__tests__/StyledFABContainer.spec.d.ts → Badge/__tests__/Status.spec.d.ts} +0 -0
  142. package/types/src/components/Badge/index.d.ts +17 -7
  143. package/types/src/components/BottomNavigation/StyledBottomNavigation.d.ts +0 -0
  144. package/types/src/components/BottomNavigation/__tests__/index.spec.d.ts +0 -0
  145. package/types/src/components/BottomNavigation/index.d.ts +0 -0
  146. package/types/src/components/Button/Button.d.ts +57 -0
  147. package/types/src/components/Button/IconButton.d.ts +0 -0
  148. package/types/src/components/Button/LoadingIndicator/StyledLoadingIndicator.d.ts +20 -0
  149. package/types/src/components/{FAB/__tests__/StyledFABIcon.spec.d.ts → Button/LoadingIndicator/__tests__/StyledLoadingIndicator.spec.d.ts} +0 -0
  150. package/types/src/components/{Icon/__tests__/Icon.spec.d.ts → Button/LoadingIndicator/__tests__/index.spec.d.ts} +0 -0
  151. package/types/src/components/Button/LoadingIndicator/index.d.ts +26 -0
  152. package/types/src/components/Button/StyledButton.d.ts +40 -0
  153. package/types/src/components/{Tabs/__tests__/Tabs.spec.d.ts → Button/__tests__/Button.spec.d.ts} +0 -0
  154. package/types/src/components/Button/__tests__/IconButton.spec.d.ts +1 -0
  155. package/types/src/components/Button/__tests__/StyledButton.spec.d.ts +1 -0
  156. package/types/src/components/Button/__tests__/index.spec.d.ts +0 -0
  157. package/types/src/components/Button/index.d.ts +8 -4
  158. package/types/src/components/Card/StyledCard.d.ts +9 -1
  159. package/types/src/components/Card/__tests__/StyledCard.spec.d.ts +0 -0
  160. package/types/src/components/Card/__tests__/index.spec.d.ts +0 -0
  161. package/types/src/components/Card/index.d.ts +5 -1
  162. package/types/src/components/Collapse/StyledCollapse.d.ts +15 -0
  163. package/types/src/components/Collapse/__tests__/StyledCollapse.spec.d.ts +1 -0
  164. package/types/src/components/Collapse/__tests__/index.spec.d.ts +1 -0
  165. package/types/src/components/Collapse/index.d.ts +23 -0
  166. package/types/src/components/Divider/StyledDivider.d.ts +0 -0
  167. package/types/src/components/Divider/__tests__/StyledDivider.spec.d.ts +0 -0
  168. package/types/src/components/Divider/index.d.ts +0 -0
  169. package/types/src/components/Drawer/StyledDrawer.d.ts +25 -0
  170. package/types/src/components/Drawer/__tests__/index.spec.d.ts +1 -0
  171. package/types/src/components/Drawer/index.d.ts +25 -0
  172. package/types/src/components/FAB/ActionGroup/ActionItem.d.ts +0 -0
  173. package/types/src/components/FAB/ActionGroup/StyledActionGroup.d.ts +0 -0
  174. package/types/src/components/FAB/ActionGroup/StyledActionItem.d.ts +0 -0
  175. package/types/src/components/FAB/ActionGroup/__tests__/index.spec.d.ts +0 -0
  176. package/types/src/components/FAB/ActionGroup/index.d.ts +5 -1
  177. package/types/src/components/FAB/AnimatedFABIcon.d.ts +0 -0
  178. package/types/src/components/FAB/FAB.d.ts +5 -1
  179. package/types/src/components/FAB/StyledFAB.d.ts +8 -2
  180. package/types/src/components/FAB/__tests__/AnimatedFABIcon.spec.d.ts +0 -0
  181. package/types/src/components/FAB/__tests__/StyledFAB.spec.d.ts +0 -0
  182. package/types/src/components/FAB/__tests__/index.spec.d.ts +0 -0
  183. package/types/src/components/FAB/index.d.ts +2 -2
  184. package/types/src/components/Icon/HeroIcon/index.d.ts +0 -0
  185. package/types/src/components/Icon/IconList.d.ts +0 -0
  186. package/types/src/components/Icon/__tests__/index.spec.d.ts +0 -0
  187. package/types/src/components/Icon/index.d.ts +0 -0
  188. package/types/src/components/Icon/utils.d.ts +1 -1
  189. package/types/src/components/Progress/ProgressBar.d.ts +18 -0
  190. package/types/src/components/Progress/ProgressCircle.d.ts +18 -0
  191. package/types/src/components/Progress/StyledProgressBar.d.ts +18 -0
  192. package/types/src/components/Progress/StyledProgressCircle.d.ts +38 -0
  193. package/types/src/components/Progress/__tests__/index.spec.d.ts +1 -0
  194. package/types/src/components/Progress/index.d.ts +5 -0
  195. package/types/src/components/Progress/types.d.ts +1 -0
  196. package/types/src/components/Tabs/ActiveTabIndicator.d.ts +8 -0
  197. package/types/src/components/Tabs/ScrollableTabs.d.ts +3 -0
  198. package/types/src/components/Tabs/StyledScrollableTabs.d.ts +61 -0
  199. package/types/src/components/Tabs/StyledTabs.d.ts +22 -22
  200. package/types/src/components/Tabs/__tests__/ScrollableTabs.spec.d.ts +1 -0
  201. package/types/src/components/Tabs/__tests__/index.spec.d.ts +0 -0
  202. package/types/src/components/Tabs/index.d.ts +28 -19
  203. package/types/src/components/Tabs/utils.d.ts +2 -0
  204. package/types/src/components/Tag/StyledTag.d.ts +20 -0
  205. package/types/src/components/Tag/__tests__/Tag.spec.d.ts +1 -0
  206. package/types/src/components/Tag/index.d.ts +21 -0
  207. package/types/src/components/Typography/Text/StyledText.d.ts +0 -0
  208. package/types/src/components/Typography/Text/__tests__/StyledText.spec.d.ts +0 -0
  209. package/types/src/components/Typography/Text/__tests__/index.spec.d.ts +0 -0
  210. package/types/src/components/Typography/Text/index.d.ts +0 -0
  211. package/types/src/components/Typography/index.d.ts +0 -0
  212. package/types/src/index.d.ts +6 -1
  213. package/types/src/testHelpers/renderWithTheme.d.ts +0 -0
  214. package/types/src/theme/__tests__/index.spec.d.ts +0 -0
  215. package/types/src/theme/components/avatar.d.ts +32 -0
  216. package/types/src/theme/components/badge.d.ts +12 -13
  217. package/types/src/theme/components/bottomNavigation.d.ts +0 -0
  218. package/types/src/theme/components/button.d.ts +37 -0
  219. package/types/src/theme/components/card.d.ts +5 -1
  220. package/types/src/theme/components/divider.d.ts +0 -0
  221. package/types/src/theme/components/drawer.d.ts +21 -0
  222. package/types/src/theme/components/fab.d.ts +8 -1
  223. package/types/src/theme/components/icon.d.ts +0 -0
  224. package/types/src/theme/components/progress.d.ts +21 -0
  225. package/types/src/theme/components/tabs.d.ts +14 -2
  226. package/types/src/theme/components/tag.d.ts +30 -0
  227. package/types/src/theme/components/typography.d.ts +0 -0
  228. package/types/src/theme/global/borders.d.ts +7 -1
  229. package/types/src/theme/global/colors.d.ts +6 -1
  230. package/types/src/theme/global/index.d.ts +7 -1
  231. package/types/src/theme/global/scale.d.ts +1 -0
  232. package/types/src/theme/global/space.d.ts +0 -0
  233. package/types/src/theme/global/typography.d.ts +0 -0
  234. package/types/src/theme/index.d.ts +10 -0
  235. package/types/src/types.d.ts +0 -0
  236. package/types/src/utils/__tests__/scale.spec.d.ts +0 -0
  237. package/types/src/utils/helpers.d.ts +0 -0
  238. package/types/src/utils/hooks.d.ts +1 -0
  239. package/types/src/utils/scale.d.ts +0 -0
  240. package/src/components/Card/__tests__/__snapshots__/index.spec.tsx.snap +0 -33
  241. package/testUtils/setup.ts +0 -18
  242. package/types/src/components/FAB/StyledFABContainer.d.ts +0 -3
  243. package/types/src/components/FAB/StyledFABIcon.d.ts +0 -3
  244. package/types/src/styled-components.d.ts +0 -6
package/lib/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var reactNative = require('react-native');
5
+ var ReactNative = require('react-native');
6
6
  var React = require('react');
7
7
  var reactNativeSafeAreaContext = require('react-native-safe-area-context');
8
8
 
@@ -26,8 +26,8 @@ function _interopNamespace(e) {
26
26
  return Object.freeze(n);
27
27
  }
28
28
 
29
- var reactNative__namespace = /*#__PURE__*/_interopNamespace(reactNative);
30
- var reactNative__default = /*#__PURE__*/_interopDefaultLegacy(reactNative);
29
+ var ReactNative__namespace = /*#__PURE__*/_interopNamespace(ReactNative);
30
+ var ReactNative__default = /*#__PURE__*/_interopDefaultLegacy(ReactNative);
31
31
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
32
32
 
33
33
  function ownKeys(object, enumerableOnly) {
@@ -47,7 +47,7 @@ function _objectSpread2(target) {
47
47
  for (var i = 1; i < arguments.length; i++) {
48
48
  var source = null != arguments[i] ? arguments[i] : {};
49
49
  i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
50
- _defineProperty$1(target, key, source[key]);
50
+ _defineProperty$2(target, key, source[key]);
51
51
  }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
52
52
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
53
53
  });
@@ -66,7 +66,32 @@ function _typeof$2(obj) {
66
66
  }, _typeof$2(obj);
67
67
  }
68
68
 
69
- function _defineProperty$1(obj, key, value) {
69
+ function _classCallCheck$1(instance, Constructor) {
70
+ if (!(instance instanceof Constructor)) {
71
+ throw new TypeError("Cannot call a class as a function");
72
+ }
73
+ }
74
+
75
+ function _defineProperties$1(target, props) {
76
+ for (var i = 0; i < props.length; i++) {
77
+ var descriptor = props[i];
78
+ descriptor.enumerable = descriptor.enumerable || false;
79
+ descriptor.configurable = true;
80
+ if ("value" in descriptor) descriptor.writable = true;
81
+ Object.defineProperty(target, descriptor.key, descriptor);
82
+ }
83
+ }
84
+
85
+ function _createClass$1(Constructor, protoProps, staticProps) {
86
+ if (protoProps) _defineProperties$1(Constructor.prototype, protoProps);
87
+ if (staticProps) _defineProperties$1(Constructor, staticProps);
88
+ Object.defineProperty(Constructor, "prototype", {
89
+ writable: false
90
+ });
91
+ return Constructor;
92
+ }
93
+
94
+ function _defineProperty$2(obj, key, value) {
70
95
  if (key in obj) {
71
96
  Object.defineProperty(obj, key, {
72
97
  value: value,
@@ -81,8 +106,8 @@ function _defineProperty$1(obj, key, value) {
81
106
  return obj;
82
107
  }
83
108
 
84
- function _extends$2() {
85
- _extends$2 = Object.assign || function (target) {
109
+ function _extends$3() {
110
+ _extends$3 = Object.assign || function (target) {
86
111
  for (var i = 1; i < arguments.length; i++) {
87
112
  var source = arguments[i];
88
113
 
@@ -96,7 +121,54 @@ function _extends$2() {
96
121
  return target;
97
122
  };
98
123
 
99
- return _extends$2.apply(this, arguments);
124
+ return _extends$3.apply(this, arguments);
125
+ }
126
+
127
+ function _inherits$1(subClass, superClass) {
128
+ if (typeof superClass !== "function" && superClass !== null) {
129
+ throw new TypeError("Super expression must either be null or a function");
130
+ }
131
+
132
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
133
+ constructor: {
134
+ value: subClass,
135
+ writable: true,
136
+ configurable: true
137
+ }
138
+ });
139
+ Object.defineProperty(subClass, "prototype", {
140
+ writable: false
141
+ });
142
+ if (superClass) _setPrototypeOf$1(subClass, superClass);
143
+ }
144
+
145
+ function _getPrototypeOf$1(o) {
146
+ _getPrototypeOf$1 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
147
+ return o.__proto__ || Object.getPrototypeOf(o);
148
+ };
149
+ return _getPrototypeOf$1(o);
150
+ }
151
+
152
+ function _setPrototypeOf$1(o, p) {
153
+ _setPrototypeOf$1 = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
154
+ o.__proto__ = p;
155
+ return o;
156
+ };
157
+
158
+ return _setPrototypeOf$1(o, p);
159
+ }
160
+
161
+ function _isNativeReflectConstruct() {
162
+ if (typeof Reflect === "undefined" || !Reflect.construct) return false;
163
+ if (Reflect.construct.sham) return false;
164
+ if (typeof Proxy === "function") return true;
165
+
166
+ try {
167
+ Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
168
+ return true;
169
+ } catch (e) {
170
+ return false;
171
+ }
100
172
  }
101
173
 
102
174
  function _objectWithoutPropertiesLoose$1(source, excluded) {
@@ -135,6 +207,43 @@ function _objectWithoutProperties$1(source, excluded) {
135
207
  return target;
136
208
  }
137
209
 
210
+ function _assertThisInitialized$1(self) {
211
+ if (self === void 0) {
212
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
213
+ }
214
+
215
+ return self;
216
+ }
217
+
218
+ function _possibleConstructorReturn$1(self, call) {
219
+ if (call && (typeof call === "object" || typeof call === "function")) {
220
+ return call;
221
+ } else if (call !== void 0) {
222
+ throw new TypeError("Derived constructors may only return object or undefined");
223
+ }
224
+
225
+ return _assertThisInitialized$1(self);
226
+ }
227
+
228
+ function _createSuper(Derived) {
229
+ var hasNativeReflectConstruct = _isNativeReflectConstruct();
230
+
231
+ return function _createSuperInternal() {
232
+ var Super = _getPrototypeOf$1(Derived),
233
+ result;
234
+
235
+ if (hasNativeReflectConstruct) {
236
+ var NewTarget = _getPrototypeOf$1(this).constructor;
237
+
238
+ result = Reflect.construct(Super, arguments, NewTarget);
239
+ } else {
240
+ result = Super.apply(this, arguments);
241
+ }
242
+
243
+ return _possibleConstructorReturn$1(this, result);
244
+ };
245
+ }
246
+
138
247
  function _slicedToArray(arr, i) {
139
248
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
140
249
  }
@@ -1214,6 +1323,21 @@ function prefixer(element, index, children, callback) {
1214
1323
  }
1215
1324
  }
1216
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
+
1217
1341
  var identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {
1218
1342
  var previous = 0;
1219
1343
  var character = 0;
@@ -1434,8 +1558,8 @@ var createCache = function createCache(options) {
1434
1558
  return cache;
1435
1559
  };
1436
1560
 
1437
- function _extends$1() {
1438
- _extends$1 = Object.assign ? Object.assign.bind() : function (target) {
1561
+ function _extends$2() {
1562
+ _extends$2 = Object.assign ? Object.assign.bind() : function (target) {
1439
1563
  for (var i = 1; i < arguments.length; i++) {
1440
1564
  var source = arguments[i];
1441
1565
 
@@ -1448,24 +1572,9 @@ function _extends$1() {
1448
1572
 
1449
1573
  return target;
1450
1574
  };
1451
- return _extends$1.apply(this, arguments);
1575
+ return _extends$2.apply(this, arguments);
1452
1576
  }
1453
1577
 
1454
- var weakMemoize = function weakMemoize(func) {
1455
- // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps
1456
- var cache = new WeakMap();
1457
- return function (arg) {
1458
- if (cache.has(arg)) {
1459
- // $FlowFixMe
1460
- return cache.get(arg);
1461
- }
1462
-
1463
- var ret = func(arg);
1464
- cache.set(arg, ret);
1465
- return ret;
1466
- };
1467
- };
1468
-
1469
1578
  var EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case
1470
1579
  // because this module is primarily intended for the browser and node
1471
1580
  // but it's also required in react native and similar environments sometimes
@@ -1491,7 +1600,7 @@ var getTheme$1 = function getTheme(outerTheme, theme) {
1491
1600
  return mergedTheme;
1492
1601
  }
1493
1602
 
1494
- return _extends$1({}, outerTheme, theme);
1603
+ return _extends$2({}, outerTheme, theme);
1495
1604
  };
1496
1605
 
1497
1606
  var createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {
@@ -1516,11 +1625,13 @@ var BASE_BORDER_WIDTH = 1;
1516
1625
  var BASE_SPACE = 8;
1517
1626
  var BASE_FONT = 'BeVietnamPro';
1518
1627
  var BASE_FONT_SIZE = 10;
1628
+ var BASE_RADIUS = 4;
1519
1629
  var scale$1 = {
1520
1630
  borderWidth: BASE_BORDER_WIDTH,
1521
1631
  space: BASE_SPACE,
1522
1632
  font: BASE_FONT,
1523
- fontSize: BASE_FONT_SIZE
1633
+ fontSize: BASE_FONT_SIZE,
1634
+ radius: BASE_RADIUS
1524
1635
  };
1525
1636
 
1526
1637
  var palette = {
@@ -1577,6 +1688,7 @@ var palette = {
1577
1688
  pinkLight75: '#fcd5ea',
1578
1689
  pinkLight90: '#ffeef7',
1579
1690
  purple: '#be83cf',
1691
+ purpleDark15: '#a26fb0',
1580
1692
  red: '#de350b',
1581
1693
  redDark15: '#bd2d09',
1582
1694
  redDark30: '#9b2508',
@@ -1612,12 +1724,15 @@ var palette = {
1612
1724
  var systemPalette = {
1613
1725
  primary: palette.violet,
1614
1726
  primaryLight: palette.violetLight60,
1727
+ primaryDark: palette.purpleDark15,
1728
+ primaryBackground: palette.violetLight90,
1729
+ secondary: palette.dodgerBlue,
1730
+ secondaryLight: palette.dodgerBlueLight75,
1615
1731
  info: palette.dodgerBlue,
1616
1732
  infoLight: palette.dodgerBlueLight75,
1617
1733
  infoBackground: palette.dodgerBlueLight90,
1618
1734
  success: palette.green,
1619
1735
  successDark: palette.greenDark30,
1620
- successLight: palette.greenDark75,
1621
1736
  successBackground: palette.grotesqueGreenLight90,
1622
1737
  danger: palette.red,
1623
1738
  dangerLight: palette.redLight60,
@@ -1630,14 +1745,16 @@ var systemPalette = {
1630
1745
  backgroundDark: palette.greyDark75,
1631
1746
  text: palette.greyDark75,
1632
1747
  disabledText: palette.greyDark15,
1748
+ disabledLightText: palette.greyLight45,
1633
1749
  invertedText: palette.white,
1634
- outline: palette.greyLight60
1750
+ outline: palette.greyLight60,
1751
+ archived: palette.greyLight45
1635
1752
  };
1636
1753
 
1637
1754
  var BASE_WIDTH = 390; // Based on iPhone 13's viewport size
1638
1755
 
1639
1756
  var horizontalScale = function horizontalScale(size) {
1640
- var _Dimensions$get = reactNative.Dimensions.get('window'),
1757
+ var _Dimensions$get = ReactNative.Dimensions.get('window'),
1641
1758
  width = _Dimensions$get.width,
1642
1759
  height = _Dimensions$get.height;
1643
1760
 
@@ -1723,56 +1840,64 @@ var getBorderWidths = function getBorderWidths(baseBorderWidth) {
1723
1840
  };
1724
1841
  };
1725
1842
 
1843
+ var getRadii = function getRadii(baseRadius) {
1844
+ return {
1845
+ rounded: 999,
1846
+ base: baseRadius,
1847
+ medium: baseRadius * 2
1848
+ };
1849
+ };
1850
+
1726
1851
  var getGlobalTheme = function getGlobalTheme(scale, systemPalette) {
1727
1852
  var fonts = getFonts(scale.font);
1728
1853
  var fontSizes = getFontSizes(scale.fontSize);
1729
1854
  var lineHeights = getLineHeights(fontSizes);
1730
1855
  var borderWidths = getBorderWidths(scale.borderWidth);
1731
1856
  var space = getSpace(scale.space);
1857
+ var radii = getRadii(scale.radius);
1732
1858
  return {
1733
1859
  colors: _objectSpread2({}, systemPalette),
1734
1860
  fonts: fonts,
1735
1861
  fontSizes: fontSizes,
1736
1862
  lineHeights: lineHeights,
1737
1863
  borderWidths: borderWidths,
1738
- space: space
1864
+ space: space,
1865
+ radii: radii
1739
1866
  };
1740
1867
  };
1741
1868
 
1742
1869
  var getBadgeTheme = function getBadgeTheme(theme) {
1743
- var borderWidths = {
1744
- "default": theme.borderWidths.base
1745
- };
1746
1870
  var colors = {
1747
1871
  danger: theme.colors.danger,
1748
- dangerBackground: theme.colors.dangerBackground,
1749
1872
  info: theme.colors.info,
1750
- infoBackground: theme.colors.infoBackground,
1751
1873
  success: theme.colors.successDark,
1752
- successBackground: theme.colors.successBackground,
1753
1874
  warning: theme.colors.warningDark,
1754
- warningBackground: theme.colors.warningBackground
1875
+ archived: theme.colors.archived,
1876
+ text: theme.colors.invertedText
1755
1877
  };
1756
- var font = {
1878
+ var fonts = {
1757
1879
  "default": theme.fonts.semiBold
1758
1880
  };
1759
- var fontSize = {
1881
+ var fontSizes = {
1760
1882
  "default": theme.fontSizes.small
1761
1883
  };
1884
+ var sizes = {
1885
+ height: theme.fontSizes.small + theme.space.small,
1886
+ minWidth: theme.fontSizes.small + theme.space.small,
1887
+ statusHeight: theme.space.small,
1888
+ statusWidth: theme.space.small
1889
+ };
1762
1890
  var space = {
1763
1891
  horizontalPadding: theme.space.small,
1764
- verticalPadding: theme.space.xxsmall
1765
- };
1766
- var radii = {
1767
- "default": 4
1892
+ statusPositionTop: -theme.space.xxsmall,
1893
+ statusPositionRight: -theme.space.xxsmall
1768
1894
  };
1769
1895
  return {
1770
- borderWidths: borderWidths,
1771
1896
  colors: colors,
1772
- font: font,
1773
- fontSize: fontSize,
1774
- space: space,
1775
- radii: radii
1897
+ fonts: fonts,
1898
+ fontSizes: fontSizes,
1899
+ sizes: sizes,
1900
+ space: space
1776
1901
  };
1777
1902
  };
1778
1903
 
@@ -1804,11 +1929,61 @@ var getBottomNavigationTheme = function getBottomNavigationTheme(theme) {
1804
1929
  };
1805
1930
  };
1806
1931
 
1807
- var getCardTheme = function getCardTheme() {
1932
+ var getButtonTheme = function getButtonTheme(theme) {
1933
+ var fonts = {
1934
+ "default": theme.fonts.semiBold
1935
+ };
1936
+ var fontSize = {
1937
+ "default": theme.fontSizes.xlarge
1938
+ };
1939
+ var lineHeight = {
1940
+ "default": theme.lineHeights.large
1941
+ };
1942
+ var borderWidth = {
1943
+ "default": theme.space.xxsmall
1944
+ };
1945
+ var space = {
1946
+ buttonPadding: theme.space.medium,
1947
+ iconPadding: theme.space.small
1948
+ };
1949
+ var sizes = {
1950
+ iconSize: theme.fontSizes.xxlarge
1951
+ };
1952
+ var radii = {
1953
+ "default": theme.space.xlarge
1954
+ };
1955
+ var colors = {
1956
+ primary: theme.colors.primary,
1957
+ pressedPrimary: theme.colors.primaryLight,
1958
+ secondary: theme.colors.secondary,
1959
+ pressedSecondary: theme.colors.secondaryLight,
1960
+ defaultText: theme.colors.text,
1961
+ disabledText: theme.colors.disabledLightText,
1962
+ disabledBorder: theme.colors.disabledLightText,
1963
+ disabledBackground: theme.colors.disabledLightText,
1964
+ invertedText: theme.colors.invertedText
1965
+ };
1966
+ return {
1967
+ borderWidth: borderWidth,
1968
+ fonts: fonts,
1969
+ fontSize: fontSize,
1970
+ sizes: sizes,
1971
+ radii: radii,
1972
+ colors: colors,
1973
+ lineHeight: lineHeight,
1974
+ space: space
1975
+ };
1976
+ };
1977
+
1978
+ var getCardTheme = function getCardTheme(theme) {
1979
+ var colors = {
1980
+ dataCardIndicator: theme.colors.primaryDark
1981
+ };
1808
1982
  var radii = {
1809
1983
  "default": 12
1810
1984
  };
1811
1985
  return {
1986
+ colors: colors,
1812
1987
  radii: radii
1813
1988
  };
1814
1989
  };
@@ -1834,21 +2009,98 @@ var getDividerTheme = function getDividerTheme(theme) {
1834
2009
  };
1835
2010
  };
1836
2011
 
2012
+ var getDrawerTheme = function getDrawerTheme(theme) {
2013
+ var colors = {
2014
+ shadow: theme.colors.backgroundDark,
2015
+ background: theme.colors.platformBackground,
2016
+ backdrop: theme.colors.backgroundDark
2017
+ };
2018
+ var radii = {
2019
+ "default": 16
2020
+ };
2021
+ var shadows = {
2022
+ offset: {
2023
+ width: 0,
2024
+ height: 3
2025
+ },
2026
+ opacity: 0.27,
2027
+ radius: 4.65,
2028
+ elevation: 10
2029
+ };
2030
+ return {
2031
+ colors: colors,
2032
+ radii: radii,
2033
+ shadows: shadows
2034
+ };
2035
+ };
2036
+
1837
2037
  var getTabsTheme = function getTabsTheme(theme) {
1838
2038
  var colors = {
1839
- background: theme.colors.primary,
1840
- active: theme.colors.invertedText,
1841
- inactive: "".concat(theme.colors.invertedText, "50")
2039
+ active: theme.colors.primary,
2040
+ inactive: theme.colors.text,
2041
+ activeBackground: theme.colors.primaryBackground,
2042
+ headerBottom: theme.colors.outline,
2043
+ text: theme.colors.text
1842
2044
  };
1843
2045
  var space = {
1844
2046
  flatListHorizontalPadding: theme.space.small,
1845
- titleMarginLeft: theme.space.small,
1846
- itemHorizontalPadding: theme.space.medium,
1847
- itemVerticalPadding: theme.space.large
2047
+ itemHorizontalPadding: theme.space.small,
2048
+ itemVerticalPadding: theme.space.small,
2049
+ outlineHorizontalPadding: theme.space.small,
2050
+ outlineVerticalPadding: theme.space.xsmall
2051
+ };
2052
+ var radii = {
2053
+ outline: theme.radii.medium
2054
+ };
2055
+ var borderWidths = {
2056
+ headerBottom: theme.borderWidths.base
2057
+ };
2058
+ var sizes = {
2059
+ indicator: theme.space.xxsmall
1848
2060
  };
1849
2061
  return {
2062
+ borderWidths: borderWidths,
1850
2063
  colors: colors,
1851
- space: space
2064
+ space: space,
2065
+ radii: radii,
2066
+ sizes: sizes
2067
+ };
2068
+ };
2069
+
2070
+ var getTagTheme = function getTagTheme(theme) {
2071
+ var borderWidths = {
2072
+ "default": theme.borderWidths.base
2073
+ };
2074
+ var colors = {
2075
+ danger: theme.colors.danger,
2076
+ dangerBackground: theme.colors.dangerBackground,
2077
+ info: theme.colors.info,
2078
+ infoBackground: theme.colors.infoBackground,
2079
+ success: theme.colors.successDark,
2080
+ successBackground: theme.colors.successBackground,
2081
+ warning: theme.colors.warningDark,
2082
+ warningBackground: theme.colors.warningBackground
2083
+ };
2084
+ var fonts = {
2085
+ "default": theme.fonts.semiBold
2086
+ };
2087
+ var fontSizes = {
2088
+ "default": theme.fontSizes.small
2089
+ };
2090
+ var space = {
2091
+ horizontalPadding: theme.space.small,
2092
+ verticalPadding: theme.space.xxsmall
2093
+ };
2094
+ var radii = {
2095
+ "default": theme.radii.base
2096
+ };
2097
+ return {
2098
+ borderWidths: borderWidths,
2099
+ colors: colors,
2100
+ fonts: fonts,
2101
+ fontSizes: fontSizes,
2102
+ space: space,
2103
+ radii: radii
1852
2104
  };
1853
2105
  };
1854
2106
 
@@ -1874,6 +2126,31 @@ var getIconTheme = function getIconTheme(theme) {
1874
2126
  };
1875
2127
  };
1876
2128
 
2129
+ var getProgressTheme = function getProgressTheme(theme) {
2130
+ var colors = {
2131
+ primary: theme.colors.primary,
2132
+ success: theme.colors.success,
2133
+ warning: theme.colors.warning,
2134
+ danger: theme.colors.danger,
2135
+ info: theme.colors.info,
2136
+ background: theme.colors.outline,
2137
+ innerBackground: theme.colors.platformBackground
2138
+ };
2139
+ var sizes = {
2140
+ radius: theme.space.xxxlarge,
2141
+ strokeWidth: theme.space.small,
2142
+ barHeight: theme.space.xsmall
2143
+ };
2144
+ var radii = {
2145
+ "default": theme.radii.rounded
2146
+ };
2147
+ return {
2148
+ colors: colors,
2149
+ sizes: sizes,
2150
+ radii: radii
2151
+ };
2152
+ };
2153
+
1877
2154
  var getTypographyTheme = function getTypographyTheme(theme) {
1878
2155
  var colors = {
1879
2156
  body: theme.colors.text,
@@ -1911,7 +2188,8 @@ var getFABTheme = function getFABTheme(theme) {
1911
2188
  icon: theme.colors.invertedText,
1912
2189
  headerText: theme.colors.text,
1913
2190
  actionItemBackground: theme.colors.infoLight,
1914
- backdropBackground: theme.colors.platformBackground
2191
+ backdropBackground: theme.colors.platformBackground,
2192
+ titleText: theme.colors.invertedText
1915
2193
  };
1916
2194
  var sizes = {
1917
2195
  width: 64,
@@ -1919,16 +2197,19 @@ var getFABTheme = function getFABTheme(theme) {
1919
2197
  };
1920
2198
  var fonts = {
1921
2199
  header: theme.fonts.semiBold,
1922
- actionItemText: theme.fonts.regular
2200
+ actionItemText: theme.fonts.regular,
2201
+ title: theme.fonts.semiBold
1923
2202
  };
1924
2203
  var fontSizes = {
1925
2204
  header: theme.fontSizes.xxxlarge,
1926
- buttonIcon: theme.fontSizes.xxxlarge,
1927
- actionItemText: theme.fontSizes.medium
2205
+ actionItemText: theme.fontSizes.medium,
2206
+ title: theme.fontSizes.large
1928
2207
  };
1929
2208
  var lineHeights = {
1930
2209
  header: theme.lineHeights.xxxlarge,
1931
- actionItemText: theme.lineHeights.medium
2210
+ actionItemText: theme.lineHeights.medium,
2211
+ title: theme.lineHeights.large,
2212
+ icon: theme.lineHeights.large
1932
2213
  };
1933
2214
  var space = {
1934
2215
  actionItemPaddingLeft: theme.space.medium,
@@ -1941,10 +2222,13 @@ var getFABTheme = function getFABTheme(theme) {
1941
2222
  buttonMarginTop: theme.space.large,
1942
2223
  buttonMarginRight: theme.space.large,
1943
2224
  headerTextMarginRight: theme.space.large,
1944
- headerTextMarginBottom: theme.space.large
2225
+ headerTextMarginBottom: theme.space.large,
2226
+ containerPaddingHorizontal: theme.space.medium,
2227
+ containerPaddingVertical: theme.space.medium,
2228
+ titleMarginHorizontal: theme.space.small
1945
2229
  };
1946
2230
  var radii = {
1947
- actionItem: 999
2231
+ actionItem: theme.radii.rounded
1948
2232
  };
1949
2233
  return {
1950
2234
  radii: radii,
@@ -1957,18 +2241,61 @@ var getFABTheme = function getFABTheme(theme) {
1957
2241
  };
1958
2242
  };
1959
2243
 
1960
- var getTheme = function getTheme() {
1961
- var scale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : scale$1;
1962
- var systemPallete = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : systemPalette;
1963
- var globalTheme = getGlobalTheme(scale, systemPallete);
1964
- return _objectSpread2(_objectSpread2({}, globalTheme), {}, {
2244
+ var getAvatarTheme = function getAvatarTheme(theme) {
2245
+ var colors = {
2246
+ primary: theme.colors.primary,
2247
+ info: theme.colors.info,
2248
+ danger: theme.colors.danger,
2249
+ success: theme.colors.success,
2250
+ warning: theme.colors.warning
2251
+ };
2252
+ var sizes = {
2253
+ small: theme.space.xlarge,
2254
+ medium: theme.space.xxlarge,
2255
+ large: theme.space.xxxlarge,
2256
+ xlarge: theme.space.xxxxlarge
2257
+ };
2258
+ var fontSizes = {
2259
+ small: theme.fontSizes.large,
2260
+ medium: theme.fontSizes.xlarge,
2261
+ large: theme.fontSizes.xxlarge,
2262
+ xlarge: theme.fontSizes.xxxlarge
2263
+ };
2264
+ var radii = {
2265
+ small: theme.space.xlarge / 2,
2266
+ medium: theme.space.xxlarge / 2,
2267
+ large: theme.space.xxxlarge / 2,
2268
+ xlarge: theme.space.xxxxlarge / 2
2269
+ };
2270
+ var borderWidths = {
2271
+ "default": theme.borderWidths.base
2272
+ };
2273
+ return {
2274
+ colors: colors,
2275
+ sizes: sizes,
2276
+ radii: radii,
2277
+ borderWidths: borderWidths,
2278
+ fontSizes: fontSizes
2279
+ };
2280
+ };
2281
+
2282
+ var getTheme = function getTheme() {
2283
+ var scale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : scale$1;
2284
+ var systemPallete = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : systemPalette;
2285
+ var globalTheme = getGlobalTheme(scale, systemPallete);
2286
+ return _objectSpread2(_objectSpread2({}, globalTheme), {}, {
1965
2287
  __hd__: {
2288
+ avatar: getAvatarTheme(globalTheme),
1966
2289
  badge: getBadgeTheme(globalTheme),
1967
2290
  bottomNavigation: getBottomNavigationTheme(globalTheme),
1968
- card: getCardTheme(),
2291
+ button: getButtonTheme(globalTheme),
2292
+ card: getCardTheme(globalTheme),
1969
2293
  divider: getDividerTheme(globalTheme),
2294
+ drawer: getDrawerTheme(globalTheme),
2295
+ progress: getProgressTheme(globalTheme),
1970
2296
  icon: getIconTheme(globalTheme),
1971
2297
  tabs: getTabsTheme(globalTheme),
2298
+ tag: getTagTheme(globalTheme),
1972
2299
  typography: getTypographyTheme(globalTheme),
1973
2300
  fab: getFABTheme(globalTheme)
1974
2301
  }
@@ -3895,65 +4222,241 @@ var getDisplayName = function getDisplayName(primitive) {
3895
4222
  * a function that returns a styled component which render styles in React Native
3896
4223
  */
3897
4224
 
3898
- var styled = createStyled(reactNative.StyleSheet);
4225
+ var styled = createStyled(ReactNative.StyleSheet);
3899
4226
  var components = ['ActivityIndicator', 'Button', 'DatePickerIOS', 'DrawerLayoutAndroid', 'FlatList', 'Image', 'ImageBackground', 'KeyboardAvoidingView', 'ListView', 'Modal', 'NavigatorIOS', 'Picker', 'PickerIOS', 'Pressable', 'ProgressBarAndroid', 'ProgressViewIOS', 'RecyclerViewBackedScrollView', 'RefreshControl', 'SafeAreaView', 'ScrollView', 'SectionList', 'SegmentedControlIOS', 'Slider', 'SnapshotViewIOS', 'StatusBar', 'SwipeableListView', 'Switch', 'SwitchIOS', 'TabBarIOS', 'Text', 'TextInput', 'ToolbarAndroid', 'TouchableHighlight', 'TouchableNativeFeedback', 'TouchableOpacity', 'TouchableWithoutFeedback', 'View', 'ViewPagerAndroid'];
3900
- var index$1 = components.reduce(function (acc, comp) {
4227
+ var index$2 = components.reduce(function (acc, comp) {
3901
4228
  return Object.defineProperty(acc, comp, {
3902
4229
  enumerable: true,
3903
4230
  configurable: false,
3904
4231
  get: function get() {
3905
- return styled(reactNative__namespace[comp]);
4232
+ return styled(ReactNative__namespace[comp]);
3906
4233
  }
3907
4234
  });
3908
4235
  }, styled);
3909
4236
 
3910
- var BACKGROUND_INTENTS = {
3911
- success: 'successBackground',
3912
- warning: 'warningBackground',
3913
- danger: 'dangerBackground',
3914
- info: 'infoBackground'
4237
+ var StyledPressable = index$2(ReactNative.TouchableOpacity)(function (_ref) {
4238
+ var themeSize = _ref.themeSize,
4239
+ themeIntent = _ref.themeIntent,
4240
+ theme = _ref.theme;
4241
+ return {
4242
+ borderWidth: theme.__hd__.avatar.borderWidths["default"],
4243
+ borderRadius: theme.__hd__.avatar.radii[themeSize],
4244
+ borderColor: theme.__hd__.avatar.colors[themeIntent],
4245
+ width: theme.__hd__.avatar.sizes[themeSize],
4246
+ height: theme.__hd__.avatar.sizes[themeSize],
4247
+ overflow: 'hidden'
4248
+ };
4249
+ });
4250
+ var StyledView$2 = index$2(ReactNative.View)(function (_ref2) {
4251
+ var themeSize = _ref2.themeSize,
4252
+ themeIntent = _ref2.themeIntent,
4253
+ theme = _ref2.theme;
4254
+ return {
4255
+ borderWidth: theme.__hd__.avatar.borderWidths["default"],
4256
+ borderRadius: theme.__hd__.avatar.radii[themeSize],
4257
+ borderColor: theme.__hd__.avatar.colors[themeIntent],
4258
+ width: theme.__hd__.avatar.sizes[themeSize],
4259
+ height: theme.__hd__.avatar.sizes[themeSize],
4260
+ overflow: 'hidden'
4261
+ };
4262
+ });
4263
+ var StyledTextWrapper = index$2(ReactNative.View)(function () {
4264
+ return {
4265
+ alignItems: 'center',
4266
+ justifyContent: 'center',
4267
+ display: 'flex',
4268
+ width: '100%',
4269
+ height: '100%'
4270
+ };
4271
+ });
4272
+ var StyledText$3 = index$2(ReactNative.Text)(function (_ref3) {
4273
+ var themeSize = _ref3.themeSize,
4274
+ themeIntent = _ref3.themeIntent,
4275
+ theme = _ref3.theme;
4276
+ return {
4277
+ fontSize: theme.__hd__.avatar.fontSizes[themeSize],
4278
+ color: theme.__hd__.avatar.colors[themeIntent],
4279
+ overflow: 'hidden'
4280
+ };
4281
+ });
4282
+ var StyledImage = index$2(ReactNative.Image)(function (_ref4) {
4283
+ var themeSize = _ref4.themeSize,
4284
+ theme = _ref4.theme;
4285
+ return {
4286
+ width: theme.__hd__.avatar.sizes[themeSize],
4287
+ height: theme.__hd__.avatar.sizes[themeSize]
4288
+ };
4289
+ });
4290
+
4291
+ var Avatar = function Avatar(_ref) {
4292
+ var onPress = _ref.onPress,
4293
+ source = _ref.source,
4294
+ testID = _ref.testID,
4295
+ style = _ref.style,
4296
+ title = _ref.title,
4297
+ _ref$size = _ref.size,
4298
+ size = _ref$size === void 0 ? 'small' : _ref$size,
4299
+ _ref$intent = _ref.intent,
4300
+ intent = _ref$intent === void 0 ? 'primary' : _ref$intent;
4301
+ var Wrapper = onPress ? StyledPressable : StyledView$2;
4302
+ return title !== undefined || source !== undefined ? /*#__PURE__*/React__default["default"].createElement(Wrapper, {
4303
+ testID: testID,
4304
+ onPress: onPress,
4305
+ themeIntent: intent,
4306
+ themeSize: size,
4307
+ style: style
4308
+ }, title !== undefined && source === undefined && /*#__PURE__*/React__default["default"].createElement(StyledTextWrapper, null, /*#__PURE__*/React__default["default"].createElement(StyledText$3, {
4309
+ themeIntent: intent,
4310
+ themeSize: size
4311
+ }, title)), source !== undefined && /*#__PURE__*/React__default["default"].createElement(StyledImage, {
4312
+ resizeMode: "cover",
4313
+ source: source,
4314
+ themeSize: size
4315
+ })) : null;
3915
4316
  };
3916
- var StyledView = index$1(reactNative.View)(function (_ref) {
4317
+
4318
+ var StyledView$1 = index$2(ReactNative.Animated.View)(function (_ref) {
3917
4319
  var themeIntent = _ref.themeIntent,
4320
+ themePadding = _ref.themePadding,
3918
4321
  theme = _ref.theme;
3919
4322
  return {
3920
- borderWidth: theme.__hd__.badge.borderWidths["default"],
3921
- borderRadius: theme.__hd__.badge.radii["default"],
3922
- paddingVertical: theme.__hd__.badge.space.verticalPadding,
3923
- paddingHorizontal: theme.__hd__.badge.space.horizontalPadding,
3924
- borderColor: theme.__hd__.badge.colors[themeIntent],
3925
- backgroundColor: theme.__hd__.badge.colors[BACKGROUND_INTENTS[themeIntent]]
4323
+ height: theme.__hd__.badge.sizes.height,
4324
+ minWidth: theme.__hd__.badge.sizes.minWidth,
4325
+ alignItems: 'center',
4326
+ justifyContent: 'center',
4327
+ backgroundColor: theme.__hd__.badge.colors[themeIntent],
4328
+ borderRadius: theme.radii.rounded,
4329
+ paddingHorizontal: themePadding === 'wideContent' ? theme.__hd__.badge.space.horizontalPadding : undefined
4330
+ };
4331
+ });
4332
+ var StyledText$2 = index$2(ReactNative.Text)(function (_ref2) {
4333
+ var theme = _ref2.theme;
4334
+ return {
4335
+ fontFamily: theme.__hd__.badge.fonts["default"],
4336
+ fontSize: theme.__hd__.badge.fontSizes["default"],
4337
+ color: theme.__hd__.badge.colors.text,
4338
+ includeFontPadding: false,
4339
+ textAlignVertical: 'center',
4340
+ textAlign: 'center'
3926
4341
  };
3927
4342
  });
3928
- var StyledText$1 = index$1(reactNative.Text)(function (_ref2) {
3929
- var themeIntent = _ref2.themeIntent,
3930
- theme = _ref2.theme;
4343
+ var StyledStatus = index$2(ReactNative.Animated.View)(function (_ref3) {
4344
+ var themeIntent = _ref3.themeIntent,
4345
+ theme = _ref3.theme;
3931
4346
  return {
3932
- fontFamily: theme.__hd__.badge.font["default"],
3933
- fontSize: theme.__hd__.badge.fontSize["default"],
3934
- color: theme.__hd__.badge.colors[themeIntent]
4347
+ position: 'absolute',
4348
+ top: theme.__hd__.badge.space.statusPositionTop,
4349
+ right: theme.__hd__.badge.space.statusPositionRight,
4350
+ height: theme.__hd__.badge.sizes.statusHeight,
4351
+ width: theme.__hd__.badge.sizes.statusWidth,
4352
+ backgroundColor: theme.__hd__.badge.colors[themeIntent],
4353
+ borderRadius: theme.radii.rounded
3935
4354
  };
3936
4355
  });
3937
4356
 
3938
- var _excluded$5 = ["content", "intent", "style", "testID"];
4357
+ var _excluded$a = ["children", "visible", "intent", "style", "testID"];
3939
4358
 
3940
- var Badge = function Badge(_ref) {
3941
- var content = _ref.content,
4359
+ var Status = function Status(_ref) {
4360
+ var children = _ref.children,
4361
+ _ref$visible = _ref.visible,
4362
+ visible = _ref$visible === void 0 ? true : _ref$visible,
3942
4363
  _ref$intent = _ref.intent,
3943
- intent = _ref$intent === void 0 ? 'info' : _ref$intent,
4364
+ intent = _ref$intent === void 0 ? 'danger' : _ref$intent,
3944
4365
  style = _ref.style,
3945
4366
  testID = _ref.testID,
3946
- nativeProps = _objectWithoutProperties$1(_ref, _excluded$5);
4367
+ nativeProps = _objectWithoutProperties$1(_ref, _excluded$a);
3947
4368
 
3948
- return /*#__PURE__*/React__default["default"].createElement(StyledView, _extends$2({
3949
- themeIntent: intent,
4369
+ var _React$useRef = React__default["default"].useRef(new ReactNative.Animated.Value(visible ? 1 : 0)),
4370
+ opacity = _React$useRef.current;
4371
+
4372
+ var isFirstRendering = React__default["default"].useRef(true);
4373
+ React__default["default"].useEffect(function () {
4374
+ // Do not run animation on very first rendering
4375
+ if (isFirstRendering.current) {
4376
+ isFirstRendering.current = false;
4377
+ return;
4378
+ }
4379
+
4380
+ ReactNative.Animated.timing(opacity, {
4381
+ toValue: visible ? 1 : 0,
4382
+ duration: 150,
4383
+ useNativeDriver: true
4384
+ }).start();
4385
+ }, [visible, opacity]);
4386
+ return /*#__PURE__*/React__default["default"].createElement(ReactNative.View, _extends$3({}, nativeProps, {
3950
4387
  style: style,
3951
4388
  testID: testID
3952
- }, nativeProps), /*#__PURE__*/React__default["default"].createElement(StyledText$1, {
4389
+ }), children, /*#__PURE__*/React__default["default"].createElement(StyledStatus, {
4390
+ style: {
4391
+ opacity: opacity,
4392
+ transform: [{
4393
+ scale: opacity.interpolate({
4394
+ inputRange: [0, 1],
4395
+ outputRange: [0.5, 1]
4396
+ })
4397
+ }]
4398
+ },
3953
4399
  themeIntent: intent
3954
- }, content));
4400
+ }));
4401
+ };
4402
+
4403
+ var _excluded$9 = ["content", "visible", "max", "intent", "style", "testID"];
4404
+ var DEFAULT_MAX_NUMBER = 99;
4405
+
4406
+ var getPaddingState = function getPaddingState(content) {
4407
+ return content.length > 1 ? 'wideContent' : 'narrowContent';
4408
+ };
4409
+
4410
+ var Badge = function Badge(_ref) {
4411
+ var originalContent = _ref.content,
4412
+ _ref$visible = _ref.visible,
4413
+ visible = _ref$visible === void 0 ? true : _ref$visible,
4414
+ _ref$max = _ref.max,
4415
+ max = _ref$max === void 0 ? DEFAULT_MAX_NUMBER : _ref$max,
4416
+ _ref$intent = _ref.intent,
4417
+ intent = _ref$intent === void 0 ? 'danger' : _ref$intent,
4418
+ style = _ref.style,
4419
+ testID = _ref.testID,
4420
+ nativeProps = _objectWithoutProperties$1(_ref, _excluded$9);
4421
+
4422
+ var _React$useRef = React__default["default"].useRef(new ReactNative.Animated.Value(visible ? 1 : 0)),
4423
+ opacity = _React$useRef.current;
4424
+
4425
+ var isFirstRendering = React__default["default"].useRef(true);
4426
+ React__default["default"].useEffect(function () {
4427
+ // Do not run animation on very first rendering
4428
+ if (isFirstRendering.current) {
4429
+ isFirstRendering.current = false;
4430
+ return;
4431
+ }
4432
+
4433
+ ReactNative.Animated.timing(opacity, {
4434
+ toValue: visible ? 1 : 0,
4435
+ duration: 150,
4436
+ useNativeDriver: true
4437
+ }).start();
4438
+ }, [visible, opacity]);
4439
+ var content = typeof originalContent === 'number' && originalContent > max ? "".concat(max, "+") : String(originalContent);
4440
+ return /*#__PURE__*/React__default["default"].createElement(StyledView$1, _extends$3({}, nativeProps, {
4441
+ themeIntent: intent,
4442
+ themePadding: getPaddingState(content),
4443
+ style: [{
4444
+ opacity: opacity,
4445
+ transform: [{
4446
+ scale: opacity.interpolate({
4447
+ inputRange: [0, 1],
4448
+ outputRange: [0.5, 1]
4449
+ })
4450
+ }]
4451
+ }, style],
4452
+ testID: testID
4453
+ }), /*#__PURE__*/React__default["default"].createElement(StyledText$2, null, content));
3955
4454
  };
3956
4455
 
4456
+ var Badge$1 = Object.assign(Badge, {
4457
+ Status: Status
4458
+ });
4459
+
3957
4460
  var dist = {};
3958
4461
 
3959
4462
  function _interopRequireDefault$5(obj) {
@@ -4705,8 +5208,8 @@ var runtime = {exports: {}};
4705
5208
 
4706
5209
  var regenerator = runtime.exports;
4707
5210
 
4708
- function _extends() {
4709
- _extends_1 = _extends = Object.assign || function (target) {
5211
+ function _extends$1() {
5212
+ _extends_1 = _extends$1 = Object.assign || function (target) {
4710
5213
  for (var i = 1; i < arguments.length; i++) {
4711
5214
  var source = arguments[i];
4712
5215
 
@@ -4720,10 +5223,10 @@ function _extends() {
4720
5223
  return target;
4721
5224
  };
4722
5225
 
4723
- return _extends.apply(this, arguments);
5226
+ return _extends$1.apply(this, arguments);
4724
5227
  }
4725
5228
 
4726
- var _extends_1 = _extends;
5229
+ var _extends_1 = _extends$1;
4727
5230
 
4728
5231
  function _objectWithoutPropertiesLoose(source, excluded) {
4729
5232
  if (source == null) return {};
@@ -4975,7 +5478,7 @@ Object.defineProperty(ensureNativeModuleAvailable$1, "__esModule", {
4975
5478
 
4976
5479
  ensureNativeModuleAvailable$1["default"] = ensureNativeModuleAvailable;
4977
5480
 
4978
- var _reactNative$2 = reactNative__default["default"];
5481
+ var _reactNative$2 = ReactNative__default["default"];
4979
5482
  var NativeIconAPI$1 = _reactNative$2.NativeModules.RNVectorIconsManager || _reactNative$2.NativeModules.RNVectorIconsModule;
4980
5483
 
4981
5484
  function ensureNativeModuleAvailable() {
@@ -5103,7 +5606,7 @@ var _react$2 = _interopRequireWildcard$2(React__default["default"]);
5103
5606
 
5104
5607
  var _propTypes$2 = _interopRequireDefault$4(propTypes.exports);
5105
5608
 
5106
- var _reactNative$1 = reactNative__default["default"];
5609
+ var _reactNative$1 = ReactNative__default["default"];
5107
5610
  var _objectUtils = objectUtils;
5108
5611
  var _jsxFileName$2 = "/home/runner/work/react-native-vector-icons/react-native-vector-icons/lib/icon-button.js";
5109
5612
 
@@ -5285,7 +5788,7 @@ var _react$1 = _interopRequireWildcard$1(React__default["default"]);
5285
5788
 
5286
5789
  var _propTypes$1 = _interopRequireDefault$3(propTypes.exports);
5287
5790
 
5288
- var _reactNative = reactNative__default["default"];
5791
+ var _reactNative = ReactNative__default["default"];
5289
5792
 
5290
5793
  var _ensureNativeModuleAvailable = _interopRequireDefault$3(ensureNativeModuleAvailable$1);
5291
5794
 
@@ -5600,7 +6103,7 @@ function createIconSet(glyphMap, fontFamily, fontFile, fontStyle) {
5600
6103
 
5601
6104
  var createMultiStyleIconSet$1 = {};
5602
6105
 
5603
- function _defineProperty(obj, key, value) {
6106
+ function _defineProperty$1(obj, key, value) {
5604
6107
  if (key in obj) {
5605
6108
  Object.defineProperty(obj, key, {
5606
6109
  value: value,
@@ -5615,7 +6118,7 @@ function _defineProperty(obj, key, value) {
5615
6118
  return obj;
5616
6119
  }
5617
6120
 
5618
- var defineProperty = _defineProperty;
6121
+ var defineProperty = _defineProperty$1;
5619
6122
 
5620
6123
  var _interopRequireDefault$2 = interopRequireDefault;
5621
6124
  Object.defineProperty(createMultiStyleIconSet$1, "__esModule", {
@@ -13583,7 +14086,7 @@ var heroIconConfig = {
13583
14086
  };
13584
14087
 
13585
14088
  var HeroIcon = dist.createIconSetFromIcoMoon(heroIconConfig, 'hero-icons', 'hero-icons.ttf');
13586
- var StyledHeroIcon = index$1(HeroIcon)(function (_ref) {
14089
+ var StyledHeroIcon = index$2(HeroIcon)(function (_ref) {
13587
14090
  var themeIntent = _ref.themeIntent,
13588
14091
  themeSize = _ref.themeSize,
13589
14092
  theme = _ref.theme;
@@ -13621,7 +14124,7 @@ var FONTWEIGHT_MAP = {
13621
14124
  regular: 'regular',
13622
14125
  'semi-bold': 'semiBold'
13623
14126
  };
13624
- var StyledText = index$1(reactNative.Text)(function (_ref) {
14127
+ var StyledText$1 = index$2(ReactNative.Text)(function (_ref) {
13625
14128
  var themeFontSize = _ref.themeFontSize,
13626
14129
  themeFontWeight = _ref.themeFontWeight,
13627
14130
  themeIntent = _ref.themeIntent,
@@ -13637,7 +14140,7 @@ var StyledText = index$1(reactNative.Text)(function (_ref) {
13637
14140
  });
13638
14141
  });
13639
14142
 
13640
- var _excluded$4 = ["children", "fontSize", "fontWeight", "intent"];
14143
+ var _excluded$8 = ["children", "fontSize", "fontWeight", "intent"];
13641
14144
 
13642
14145
  var Text = function Text(_ref) {
13643
14146
  var children = _ref.children,
@@ -13647,34 +14150,34 @@ var Text = function Text(_ref) {
13647
14150
  fontWeight = _ref$fontWeight === void 0 ? 'regular' : _ref$fontWeight,
13648
14151
  _ref$intent = _ref.intent,
13649
14152
  intent = _ref$intent === void 0 ? 'body' : _ref$intent,
13650
- nativeProps = _objectWithoutProperties$1(_ref, _excluded$4);
14153
+ nativeProps = _objectWithoutProperties$1(_ref, _excluded$8);
13651
14154
 
13652
- return /*#__PURE__*/React__default["default"].createElement(StyledText, _extends$2({
14155
+ return /*#__PURE__*/React__default["default"].createElement(StyledText$1, _extends$3({}, nativeProps, {
13653
14156
  themeFontSize: fontSize,
13654
14157
  themeFontWeight: fontWeight,
13655
14158
  themeIntent: intent
13656
- }, nativeProps), children);
14159
+ }), children);
13657
14160
  };
13658
14161
 
13659
14162
  var Typography = {
13660
14163
  Text: Text
13661
14164
  };
13662
14165
 
13663
- var BottomNavigationTab = index$1(reactNative.View)(function (_ref) {
14166
+ var BottomNavigationTab = index$2(ReactNative.View)(function (_ref) {
13664
14167
  var themeVisibility = _ref.themeVisibility;
13665
14168
  return {
13666
14169
  flex: 1,
13667
14170
  display: themeVisibility === false ? 'none' : 'flex'
13668
14171
  };
13669
14172
  });
13670
- var BottomNavigationContainer = index$1(reactNative.View)({
14173
+ var BottomNavigationContainer = index$2(ReactNative.View)({
13671
14174
  flex: 1,
13672
14175
  overflow: 'hidden'
13673
14176
  });
13674
- var ContentWrapper$1 = index$1(reactNative.View)({
14177
+ var ContentWrapper$2 = index$2(ReactNative.View)({
13675
14178
  flex: 1
13676
14179
  });
13677
- var BottomBarWrapper = index$1(reactNative.View)(function (_ref2) {
14180
+ var BottomBarWrapper = index$2(ReactNative.View)(function (_ref2) {
13678
14181
  var themeInsets = _ref2.themeInsets,
13679
14182
  theme = _ref2.theme;
13680
14183
  return {
@@ -13690,27 +14193,27 @@ var BottomBarWrapper = index$1(reactNative.View)(function (_ref2) {
13690
14193
  elevation: theme.__hd__.bottomNavigation.shadows.elevation
13691
14194
  };
13692
14195
  });
13693
- var BottomBar = index$1(reactNative.View)({
14196
+ var BottomBar = index$2(ReactNative.View)({
13694
14197
  flex: 1,
13695
14198
  flexDirection: 'row',
13696
14199
  overflow: 'hidden',
13697
14200
  alignItems: 'center'
13698
14201
  });
13699
- var BottomBarItem = index$1(reactNative.View)({
14202
+ var BottomBarItem = index$2(ReactNative.View)({
13700
14203
  flex: 1,
13701
14204
  alignItems: 'center'
13702
14205
  });
13703
- var StyledBottomBarText = index$1(Typography.Text)(function (_ref3) {
14206
+ var StyledBottomBarText = index$2(Typography.Text)(function (_ref3) {
13704
14207
  var theme = _ref3.theme;
13705
14208
  return {
13706
14209
  marginTop: theme.__hd__.bottomNavigation.space.titleMarginTop
13707
14210
  };
13708
14211
  });
13709
14212
 
13710
- var isIOS = reactNative.Platform.OS === 'ios';
13711
- reactNative.Platform.OS === 'android';
14213
+ var isIOS = ReactNative.Platform.OS === 'ios';
14214
+ ReactNative.Platform.OS === 'android';
13712
14215
 
13713
- var _excluded$3 = ["onTabPress", "renderActiveTabOnly", "selectedTabKey", "tabs"];
14216
+ var _excluded$7 = ["onTabPress", "renderActiveTabOnly", "selectedTabKey", "tabs"];
13714
14217
 
13715
14218
  var getInactiveIcon = function getInactiveIcon(icon) {
13716
14219
  var inactiveIcon = "".concat(icon, "-outlined");
@@ -13723,7 +14226,7 @@ var BottomNavigation = function BottomNavigation(_ref) {
13723
14226
  renderActiveTabOnly = _ref$renderActiveTabO === void 0 ? false : _ref$renderActiveTabO,
13724
14227
  selectedTabKey = _ref.selectedTabKey,
13725
14228
  tabs = _ref.tabs,
13726
- nativeProps = _objectWithoutProperties$1(_ref, _excluded$3);
14229
+ nativeProps = _objectWithoutProperties$1(_ref, _excluded$7);
13727
14230
 
13728
14231
  var insets = reactNativeSafeAreaContext.useSafeAreaInsets();
13729
14232
  /**
@@ -13742,7 +14245,7 @@ var BottomNavigation = function BottomNavigation(_ref) {
13742
14245
  });
13743
14246
  }
13744
14247
 
13745
- return /*#__PURE__*/React__default["default"].createElement(BottomNavigationContainer, nativeProps, /*#__PURE__*/React__default["default"].createElement(ContentWrapper$1, null, tabs.map(function (tab) {
14248
+ return /*#__PURE__*/React__default["default"].createElement(BottomNavigationContainer, nativeProps, /*#__PURE__*/React__default["default"].createElement(ContentWrapper$2, null, tabs.map(function (tab) {
13746
14249
  var key = tab.key,
13747
14250
  component = tab.component,
13748
14251
  testID = tab.testID;
@@ -13778,7 +14281,7 @@ var BottomNavigation = function BottomNavigation(_ref) {
13778
14281
  testID = tab.testID;
13779
14282
  var active = selectedTabKey === key;
13780
14283
  var inactiveIcon = getInactiveIcon(icon);
13781
- return /*#__PURE__*/React__default["default"].createElement(reactNative.TouchableWithoutFeedback, {
14284
+ return /*#__PURE__*/React__default["default"].createElement(ReactNative.TouchableWithoutFeedback, {
13782
14285
  key: key,
13783
14286
  onPress: function onPress() {
13784
14287
  return onTabPress(key);
@@ -13797,388 +14300,1621 @@ var BottomNavigation = function BottomNavigation(_ref) {
13797
14300
  }))));
13798
14301
  };
13799
14302
 
13800
- var IconButton = function IconButton(_ref) {
13801
- var hitSlop = _ref.hitSlop,
13802
- onPress = _ref.onPress,
13803
- icon = _ref.icon,
13804
- testID = _ref.testID,
13805
- style = _ref.style,
13806
- size = _ref.size,
13807
- intent = _ref.intent;
13808
- return /*#__PURE__*/React__default["default"].createElement(reactNative.TouchableOpacity, {
13809
- style: style,
13810
- onPress: onPress,
13811
- testID: testID,
13812
- hitSlop: hitSlop
13813
- }, /*#__PURE__*/React__default["default"].createElement(Icon, {
13814
- icon: icon,
13815
- size: size,
13816
- intent: intent
13817
- }));
13818
- };
13819
-
13820
- var Button = {
13821
- Icon: IconButton
13822
- };
13823
-
13824
- var StyledCard = index$1(reactNative.View)(function (_ref) {
13825
- var theme = _ref.theme;
14303
+ var genLoadingIndicatorStyles = function genLoadingIndicatorStyles(theme, intent) {
13826
14304
  return {
13827
- borderRadius: theme.__hd__.card.radii["default"],
13828
- overflow: 'hidden'
14305
+ backgroundColor: theme.__hd__.button.colors[intent]
13829
14306
  };
13830
- });
13831
-
13832
- var Card = function Card(props) {
13833
- return /*#__PURE__*/React__default["default"].createElement(StyledCard, props);
13834
- };
13835
-
13836
- var StyledDivider = index$1(reactNative.View)(function (_ref) {
13837
- var themeMarginHorizontal = _ref.themeMarginHorizontal,
13838
- themeMarginVertical = _ref.themeMarginVertical,
13839
- theme = _ref.theme;
13840
- var horizontalMargin = themeMarginHorizontal !== undefined ? {
13841
- marginHorizontal: theme.__hd__.divider.space[themeMarginHorizontal]
13842
- } : {};
13843
- var verticalMargin = themeMarginVertical !== undefined ? {
13844
- marginVertical: theme.__hd__.divider.space[themeMarginVertical]
13845
- } : {};
13846
- return _objectSpread2(_objectSpread2({
13847
- maxWidth: '100%',
13848
- borderBottomColor: theme.__hd__.divider.colors["default"],
13849
- borderBottomWidth: theme.__hd__.divider.borderWidths["default"]
13850
- }, horizontalMargin), verticalMargin);
13851
- });
13852
-
13853
- var _excluded$2 = ["marginHorizontal", "marginVertical", "style", "testID"];
13854
-
13855
- var Divider = function Divider(_ref) {
13856
- var marginHorizontal = _ref.marginHorizontal,
13857
- marginVertical = _ref.marginVertical,
13858
- style = _ref.style,
13859
- testID = _ref.testID,
13860
- nativeProps = _objectWithoutProperties$1(_ref, _excluded$2);
13861
-
13862
- return /*#__PURE__*/React__default["default"].createElement(StyledDivider, _extends$2({
13863
- themeMarginHorizontal: marginHorizontal,
13864
- themeMarginVertical: marginVertical,
13865
- style: style,
13866
- testID: testID
13867
- }, nativeProps));
13868
14307
  };
13869
14308
 
13870
- var StyledFABContainer = index$1(reactNative.TouchableHighlight)(function (_ref) {
14309
+ var StyledLoadingIndicatorWrapper = index$2(ReactNative.View)(function (_ref) {
13871
14310
  var theme = _ref.theme;
13872
14311
  return {
13873
- height: theme.__hd__.fab.sizes.height,
13874
- width: theme.__hd__.fab.sizes.width,
13875
- backgroundColor: theme.__hd__.fab.colors.buttonBackground,
13876
- borderRadius: 999,
13877
- alignItems: 'center',
14312
+ flexDirection: 'row',
13878
14313
  justifyContent: 'center',
13879
- overflow: 'hidden'
14314
+ alignItems: 'center',
14315
+ paddingVertical: theme.space.xxsmall
13880
14316
  };
13881
14317
  });
13882
- var StyledFABIcon = index$1(Icon)(function (_ref2) {
13883
- var theme = _ref2.theme;
13884
- return {
13885
- color: theme.__hd__.fab.colors.icon,
13886
- fontSize: theme.__hd__.fab.fontSizes.buttonIcon
14318
+ var StyledLoadingDot = index$2(ReactNative.View)(function (_ref2) {
14319
+ var _ref2$size = _ref2.size,
14320
+ size = _ref2$size === void 0 ? 12 : _ref2$size,
14321
+ themeVariant = _ref2.themeVariant,
14322
+ theme = _ref2.theme;
14323
+
14324
+ var themeStyling = function themeStyling() {
14325
+ switch (themeVariant) {
14326
+ case 'basic-transparent':
14327
+ case 'filled-primary':
14328
+ case 'filled-secondary':
14329
+ return {
14330
+ backgroundColor: theme.__hd__.button.colors.invertedText
14331
+ };
14332
+
14333
+ case 'outlined-primary':
14334
+ return genLoadingIndicatorStyles(theme, 'primary');
14335
+
14336
+ case 'outlined-secondary':
14337
+ return genLoadingIndicatorStyles(theme, 'secondary');
14338
+ }
13887
14339
  };
14340
+
14341
+ return _objectSpread2({
14342
+ width: size,
14343
+ height: size,
14344
+ marginTop: theme.space.xsmall,
14345
+ marginBottom: theme.space.xsmall,
14346
+ marginHorizontal: theme.space.small,
14347
+ borderRadius: theme.space.small
14348
+ }, themeStyling());
13888
14349
  });
13889
14350
 
13890
- var _excluded$1 = ["active"];
13891
- var AnimatedIcons = reactNative.Animated.createAnimatedComponent(StyledFABIcon);
14351
+ var _excluded$6 = ["count", "size", "testID", "themeVariant"];
14352
+ var AnimatedLoadingIndicatorWrapper = ReactNative.Animated.createAnimatedComponent(StyledLoadingIndicatorWrapper);
14353
+ var AnimatedLoadingDot = ReactNative.Animated.createAnimatedComponent(StyledLoadingDot);
13892
14354
 
13893
- var AnimatedFABIcon = function AnimatedFABIcon(_ref) {
13894
- var active = _ref.active,
13895
- iconProps = _objectWithoutProperties$1(_ref, _excluded$1);
14355
+ var renderDotComponent = function renderDotComponent(_ref) {
14356
+ var index = _ref.index,
14357
+ size = _ref.size,
14358
+ count = _ref.count,
14359
+ animation = _ref.animation,
14360
+ themeVariant = _ref.themeVariant;
14361
+ var interpolatedProgressAnimation = animation.current.interpolate({
14362
+ inputRange: [0.0, (index + 0.5) / (count + 1), (index + 1.0) / (count + 1), (index + 1.5) / (count + 1), 1.0],
14363
+ outputRange: [1.0, 1.36, 1.56, 1.06, 1.0]
14364
+ });
14365
+ return /*#__PURE__*/React__default["default"].createElement(ReactNative.Animated.View, {
14366
+ style: ReactNative.StyleSheet.flatten([{
14367
+ transform: [{
14368
+ scale: interpolatedProgressAnimation
14369
+ }]
14370
+ }]),
14371
+ key: index
14372
+ }, /*#__PURE__*/React__default["default"].createElement(AnimatedLoadingDot, {
14373
+ size: size,
14374
+ themeVariant: themeVariant
14375
+ }));
14376
+ };
14377
+
14378
+ var LoadingIndicator = function LoadingIndicator(_ref2) {
14379
+ var _ref2$count = _ref2.count,
14380
+ count = _ref2$count === void 0 ? 3 : _ref2$count,
14381
+ _ref2$size = _ref2.size,
14382
+ size = _ref2$size === void 0 ? 12 : _ref2$size,
14383
+ testID = _ref2.testID,
14384
+ themeVariant = _ref2.themeVariant,
14385
+ nativeProps = _objectWithoutProperties$1(_ref2, _excluded$6);
13896
14386
 
13897
- var rotateAnimation = React.useRef(new reactNative.Animated.Value(active ? 1 : 0));
14387
+ var progressAnimation = React.useRef(new ReactNative.Animated.Value(0));
13898
14388
  React.useEffect(function () {
13899
- var animation = reactNative.Animated.timing(rotateAnimation.current, {
13900
- toValue: active ? 1 : 0,
14389
+ var animation = ReactNative.Animated.loop(ReactNative.Animated.timing(progressAnimation.current, {
14390
+ toValue: 1,
14391
+ duration: 1200,
14392
+ easing: ReactNative.Easing.linear,
13901
14393
  useNativeDriver: true
13902
- });
14394
+ }));
13903
14395
  animation.start();
13904
14396
  return function () {
13905
14397
  animation.stop();
13906
14398
  };
13907
- }, [active]);
13908
- var interpolatedRotateAnimation = rotateAnimation.current.interpolate({
13909
- inputRange: [0, 1],
13910
- outputRange: ['0deg', '-45deg']
13911
- });
13912
- return /*#__PURE__*/React__default["default"].createElement(reactNative.Animated.View, {
13913
- style: reactNative.StyleSheet.flatten([{
13914
- transform: [{
13915
- rotate: interpolatedRotateAnimation
13916
- }]
13917
- }])
13918
- }, /*#__PURE__*/React__default["default"].createElement(AnimatedIcons, iconProps));
14399
+ }, []);
14400
+
14401
+ var renderLoadingDot = function renderLoadingDot(item, index) {
14402
+ if (typeof renderDotComponent === 'function') {
14403
+ return renderDotComponent({
14404
+ index: index,
14405
+ count: count,
14406
+ size: size,
14407
+ animation: progressAnimation,
14408
+ themeVariant: themeVariant
14409
+ });
14410
+ }
14411
+
14412
+ return null;
14413
+ };
14414
+
14415
+ return /*#__PURE__*/React__default["default"].createElement(AnimatedLoadingIndicatorWrapper, _extends$3({
14416
+ testID: testID
14417
+ }, nativeProps), Array.from(new Array(count), renderLoadingDot, themeVariant));
13919
14418
  };
13920
14419
 
13921
- var FAB = function FAB(_ref) {
13922
- var onPress = _ref.onPress,
13923
- icon = _ref.icon,
13924
- animated = _ref.animated,
13925
- testID = _ref.testID,
13926
- active = _ref.active,
13927
- style = _ref.style;
13928
- return /*#__PURE__*/React__default["default"].createElement(StyledFABContainer, {
13929
- testID: testID,
13930
- onPress: onPress,
13931
- activeOpacity: 0.6,
13932
- style: style
13933
- }, animated ? /*#__PURE__*/React__default["default"].createElement(AnimatedFABIcon, {
13934
- active: active,
13935
- icon: icon,
13936
- testID: "animated-fab-icon"
13937
- }) : /*#__PURE__*/React__default["default"].createElement(StyledFABIcon, {
13938
- icon: icon,
13939
- testID: "styled-fab-icon"
13940
- }));
14420
+ var PRESSED_COLORS = {
14421
+ primary: 'pressedPrimary',
14422
+ secondary: 'pressedSecondary'
13941
14423
  };
13942
14424
 
13943
- var StyledActionItem = index$1(reactNative.TouchableOpacity)(function (_ref) {
13944
- var theme = _ref.theme;
13945
- return {
13946
- paddingLeft: theme.__hd__.fab.space.actionItemPaddingLeft,
13947
- paddingRight: theme.__hd__.fab.space.actionItemPaddingRight,
13948
- paddingTop: theme.__hd__.fab.space.actionItemPaddingTop,
13949
- paddingBottom: theme.__hd__.fab.space.actionItemPaddingBottom,
13950
- margin: theme.__hd__.fab.space.actionItemMargin,
13951
- marginRight: theme.__hd__.fab.space.actionItemMarginRight,
13952
- backgroundColor: theme.__hd__.fab.colors.actionItemBackground,
13953
- borderRadius: theme.__hd__.fab.radii.actionItem,
13954
- flexDirection: 'row',
13955
- alignItems: 'center',
13956
- alignSelf: 'flex-end',
13957
- overflow: 'hidden'
13958
- };
14425
+ var genBasicTransparentContainerStyles = function genBasicTransparentContainerStyles(theme, pressed, disabled) {
14426
+ var borderColorStyling = function borderColorStyling() {
14427
+ if (disabled) {
14428
+ return {
14429
+ borderColor: theme.__hd__.button.colors.disabledBorder
14430
+ };
14431
+ }
14432
+
14433
+ return {
14434
+ borderColor: theme.__hd__.button.colors.invertedText
14435
+ };
14436
+ };
14437
+
14438
+ return _objectSpread2({
14439
+ width: '100%',
14440
+ flexDirection: 'row',
14441
+ justifyContent: 'center',
14442
+ alignItems: 'center',
14443
+ padding: theme.__hd__.button.space.buttonPadding - theme.__hd__.button.borderWidth["default"],
14444
+ borderWidth: theme.__hd__.button.borderWidth["default"],
14445
+ borderRadius: theme.__hd__.button.radii["default"],
14446
+ backgroundColor: 'transparent',
14447
+ opacity: pressed ? 0.6 : 1
14448
+ }, borderColorStyling());
14449
+ };
14450
+
14451
+ var genFilledContainerStyles = function genFilledContainerStyles(theme, intent, pressed, disabled) {
14452
+ var backgroundColorStyling = function backgroundColorStyling() {
14453
+ if (disabled) {
14454
+ return {
14455
+ backgroundColor: theme.__hd__.button.colors.disabledBorder
14456
+ };
14457
+ }
14458
+
14459
+ if (pressed) {
14460
+ return {
14461
+ backgroundColor: theme.__hd__.button.colors[PRESSED_COLORS[intent]]
14462
+ };
14463
+ }
14464
+
14465
+ return {
14466
+ backgroundColor: theme.__hd__.button.colors[intent]
14467
+ };
14468
+ };
14469
+
14470
+ return _objectSpread2({
14471
+ width: '100%',
14472
+ flexDirection: 'row',
14473
+ justifyContent: 'center',
14474
+ alignItems: 'center',
14475
+ padding: theme.__hd__.button.space.buttonPadding,
14476
+ borderRadius: theme.__hd__.button.radii["default"]
14477
+ }, backgroundColorStyling());
14478
+ };
14479
+
14480
+ var genOutlineContainerStyles = function genOutlineContainerStyles(theme, intent, pressed, disabled) {
14481
+ var borderColorStyling = function borderColorStyling() {
14482
+ if (disabled) {
14483
+ return {
14484
+ borderColor: theme.__hd__.button.colors.disabledBorder
14485
+ };
14486
+ }
14487
+
14488
+ if (pressed) {
14489
+ return {
14490
+ borderColor: theme.__hd__.button.colors[PRESSED_COLORS[intent]]
14491
+ };
14492
+ }
14493
+
14494
+ return {
14495
+ borderColor: theme.__hd__.button.colors[intent]
14496
+ };
14497
+ };
14498
+
14499
+ return _objectSpread2({
14500
+ width: '100%',
14501
+ flexDirection: 'row',
14502
+ justifyContent: 'center',
14503
+ alignItems: 'center',
14504
+ padding: theme.__hd__.button.space.buttonPadding - theme.__hd__.button.borderWidth["default"],
14505
+ borderWidth: theme.__hd__.button.borderWidth["default"],
14506
+ borderRadius: theme.__hd__.button.radii["default"],
14507
+ backgroundColor: 'transparent'
14508
+ }, borderColorStyling());
14509
+ };
14510
+
14511
+ var genOutlineTextStyles = function genOutlineTextStyles(theme, intent, pressed, disabled) {
14512
+ var textColorStyling = function textColorStyling() {
14513
+ if (disabled) {
14514
+ return {
14515
+ color: theme.__hd__.button.colors.disabledText
14516
+ };
14517
+ }
14518
+
14519
+ if (pressed) {
14520
+ return {
14521
+ color: theme.__hd__.button.colors[PRESSED_COLORS[intent]]
14522
+ };
14523
+ }
14524
+
14525
+ return {
14526
+ color: theme.__hd__.button.colors[intent]
14527
+ };
14528
+ };
14529
+
14530
+ return _objectSpread2({
14531
+ fontSize: theme.__hd__.button.fontSize["default"],
14532
+ lineHeight: theme.__hd__.button.lineHeight["default"]
14533
+ }, textColorStyling());
14534
+ };
14535
+
14536
+ var StyledButtonContainer = index$2(ReactNative.View)(function (_ref) {
14537
+ var _ref$disabled = _ref.disabled,
14538
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
14539
+ _ref$pressed = _ref.pressed,
14540
+ pressed = _ref$pressed === void 0 ? false : _ref$pressed,
14541
+ themeVariant = _ref.themeVariant,
14542
+ theme = _ref.theme;
14543
+
14544
+ switch (themeVariant) {
14545
+ case 'basic-transparent':
14546
+ return genBasicTransparentContainerStyles(theme, pressed, disabled);
14547
+
14548
+ case 'filled-primary':
14549
+ return genFilledContainerStyles(theme, 'primary', pressed, disabled);
14550
+
14551
+ case 'filled-secondary':
14552
+ return genFilledContainerStyles(theme, 'secondary', pressed, disabled);
14553
+
14554
+ case 'outlined-primary':
14555
+ return genOutlineContainerStyles(theme, 'primary', pressed, disabled);
14556
+
14557
+ case 'outlined-secondary':
14558
+ return genOutlineContainerStyles(theme, 'secondary', pressed, disabled);
14559
+ }
14560
+ });
14561
+ var StyledButtonText = index$2(Typography.Text)(function (_ref2) {
14562
+ var disabled = _ref2.disabled,
14563
+ pressed = _ref2.pressed,
14564
+ themeVariant = _ref2.themeVariant,
14565
+ theme = _ref2.theme;
14566
+
14567
+ var themeStyling = function themeStyling() {
14568
+ switch (themeVariant) {
14569
+ case 'basic-transparent':
14570
+ return {
14571
+ fontSize: theme.__hd__.button.fontSize["default"],
14572
+ lineHeight: theme.__hd__.button.lineHeight["default"],
14573
+ color: disabled ? theme.__hd__.button.colors.disabledText : theme.__hd__.button.colors.invertedText
14574
+ };
14575
+
14576
+ case 'filled-primary':
14577
+ case 'filled-secondary':
14578
+ return {
14579
+ fontSize: theme.__hd__.button.fontSize["default"],
14580
+ lineHeight: theme.__hd__.button.lineHeight["default"],
14581
+ color: theme.__hd__.button.colors.invertedText
14582
+ };
14583
+
14584
+ case 'outlined-primary':
14585
+ return genOutlineTextStyles(theme, 'primary', pressed, disabled);
14586
+
14587
+ case 'outlined-secondary':
14588
+ return genOutlineTextStyles(theme, 'secondary', pressed, disabled);
14589
+ }
14590
+ };
14591
+
14592
+ return _objectSpread2({
14593
+ flexShrink: 1,
14594
+ textAlign: 'center',
14595
+ fontFamily: theme.__hd__.button.fonts["default"]
14596
+ }, themeStyling());
14597
+ });
14598
+ var StyledButtonIconWrapper = index$2(ReactNative.View)(function (_ref3) {
14599
+ var themePosition = _ref3.themePosition,
14600
+ theme = _ref3.theme;
14601
+
14602
+ switch (themePosition) {
14603
+ case 'left':
14604
+ return {
14605
+ paddingRight: theme.__hd__.button.space.iconPadding
14606
+ };
14607
+
14608
+ case 'right':
14609
+ return {
14610
+ paddingLeft: theme.__hd__.button.space.iconPadding
14611
+ };
14612
+ }
14613
+ });
14614
+ var StyledButtonIcon = index$2(Icon)(function (_ref4) {
14615
+ var disabled = _ref4.disabled,
14616
+ pressed = _ref4.pressed,
14617
+ themeVariant = _ref4.themeVariant,
14618
+ theme = _ref4.theme;
14619
+
14620
+ var themeStyling = function themeStyling() {
14621
+ switch (themeVariant) {
14622
+ case 'basic-transparent':
14623
+ return {
14624
+ color: disabled ? theme.__hd__.button.colors.disabledText : theme.__hd__.button.colors.invertedText
14625
+ };
14626
+
14627
+ case 'filled-primary':
14628
+ case 'filled-secondary':
14629
+ return {
14630
+ color: theme.__hd__.button.colors.invertedText
14631
+ };
14632
+
14633
+ case 'outlined-primary':
14634
+ return genOutlineTextStyles(theme, 'primary', pressed, disabled);
14635
+
14636
+ case 'outlined-secondary':
14637
+ return genOutlineTextStyles(theme, 'secondary', pressed, disabled);
14638
+ }
14639
+ };
14640
+
14641
+ return _objectSpread2({
14642
+ fontSize: theme.__hd__.button.sizes.iconSize
14643
+ }, themeStyling());
14644
+ });
14645
+
14646
+ var FILLED_VARIANTS = {
14647
+ primary: 'filled-primary',
14648
+ secondary: 'filled-secondary'
14649
+ };
14650
+ var OUTLINED_VARIANTS = {
14651
+ primary: 'outlined-primary',
14652
+ secondary: 'outlined-secondary'
14653
+ };
14654
+ var getThemeVariant = function getThemeVariant(variant, intent) {
14655
+ switch (variant) {
14656
+ case 'basic-transparent':
14657
+ return variant;
14658
+
14659
+ case 'filled':
14660
+ return FILLED_VARIANTS[intent];
14661
+
14662
+ case 'outlined':
14663
+ return OUTLINED_VARIANTS[intent];
14664
+ }
14665
+ };
14666
+
14667
+ var Button = function Button(_ref) {
14668
+ var accessibilityHint = _ref.accessibilityHint,
14669
+ accessibilityLabel = _ref.accessibilityLabel,
14670
+ _ref$disabled = _ref.disabled,
14671
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
14672
+ icon = _ref.icon,
14673
+ _ref$intent = _ref.intent,
14674
+ intent = _ref$intent === void 0 ? 'primary' : _ref$intent,
14675
+ _ref$loading = _ref.loading,
14676
+ loading = _ref$loading === void 0 ? false : _ref$loading,
14677
+ onPress = _ref.onPress,
14678
+ rightIcon = _ref.rightIcon,
14679
+ style = _ref.style,
14680
+ testID = _ref.testID,
14681
+ text = _ref.text,
14682
+ _ref$variant = _ref.variant,
14683
+ variant = _ref$variant === void 0 ? 'filled' : _ref$variant;
14684
+ return /*#__PURE__*/React__default["default"].createElement(ReactNative.Pressable, {
14685
+ accessibilityHint: accessibilityHint,
14686
+ accessibilityLabel: accessibilityLabel,
14687
+ disabled: disabled || loading,
14688
+ onPress: onPress,
14689
+ testID: testID
14690
+ }, function (_ref2) {
14691
+ var pressed = _ref2.pressed;
14692
+ return /*#__PURE__*/React__default["default"].createElement(StyledButtonContainer, {
14693
+ disabled: disabled,
14694
+ pressed: pressed,
14695
+ style: style,
14696
+ themeVariant: getThemeVariant(variant, intent)
14697
+ }, loading === true ? /*#__PURE__*/React__default["default"].createElement(LoadingIndicator, {
14698
+ testID: "".concat(testID, "-loading-indicator"),
14699
+ themeVariant: getThemeVariant(variant, intent)
14700
+ }) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, icon !== undefined && /*#__PURE__*/React__default["default"].createElement(StyledButtonIconWrapper, {
14701
+ themePosition: "left"
14702
+ }, /*#__PURE__*/React__default["default"].createElement(StyledButtonIcon, {
14703
+ disabled: disabled,
14704
+ icon: icon,
14705
+ pressed: pressed,
14706
+ testID: "".concat(testID, "-left-icon"),
14707
+ themeVariant: getThemeVariant(variant, intent)
14708
+ })), /*#__PURE__*/React__default["default"].createElement(StyledButtonText, {
14709
+ disabled: disabled,
14710
+ ellipsizeMode: "tail",
14711
+ numberOfLines: 1,
14712
+ pressed: pressed,
14713
+ themeVariant: getThemeVariant(variant, intent)
14714
+ }, text), rightIcon !== undefined && /*#__PURE__*/React__default["default"].createElement(StyledButtonIconWrapper, {
14715
+ themePosition: "right"
14716
+ }, /*#__PURE__*/React__default["default"].createElement(StyledButtonIcon, {
14717
+ disabled: disabled,
14718
+ icon: rightIcon,
14719
+ pressed: pressed,
14720
+ testID: "".concat(testID, "-right-icon"),
14721
+ themeVariant: getThemeVariant(variant, intent)
14722
+ }))));
14723
+ });
14724
+ };
14725
+
14726
+ var IconButton = function IconButton(_ref) {
14727
+ var hitSlop = _ref.hitSlop,
14728
+ onPress = _ref.onPress,
14729
+ icon = _ref.icon,
14730
+ testID = _ref.testID,
14731
+ style = _ref.style,
14732
+ size = _ref.size,
14733
+ intent = _ref.intent;
14734
+ return /*#__PURE__*/React__default["default"].createElement(ReactNative.TouchableOpacity, {
14735
+ style: style,
14736
+ onPress: onPress,
14737
+ testID: testID,
14738
+ hitSlop: hitSlop
14739
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
14740
+ icon: icon,
14741
+ size: size,
14742
+ intent: intent
14743
+ }));
14744
+ };
14745
+
14746
+ var CompoundButton = Button;
14747
+ CompoundButton.Icon = IconButton;
14748
+
14749
+ var StyledCard = index$2(ReactNative.View)(function (_ref) {
14750
+ var themeVariant = _ref.themeVariant,
14751
+ theme = _ref.theme;
14752
+ var sharedStyles = {
14753
+ borderRadius: theme.__hd__.card.radii["default"],
14754
+ overflow: 'hidden'
14755
+ };
14756
+ var dataStyles = {
14757
+ flex: 1,
14758
+ flexDirection: 'row'
14759
+ };
14760
+
14761
+ switch (themeVariant) {
14762
+ case 'basic':
14763
+ return sharedStyles;
14764
+
14765
+ case 'data':
14766
+ return _objectSpread2(_objectSpread2({}, sharedStyles), dataStyles);
14767
+ }
13959
14768
  });
13960
- var StyledActionItemText = index$1(Typography.Text)(function (_ref2) {
14769
+ var LeftDataCard = index$2(ReactNative.View)(function (_ref2) {
13961
14770
  var theme = _ref2.theme;
13962
14771
  return {
13963
- paddingLeft: theme.__hd__.fab.space.actionItemTextPaddingLeft,
13964
- fontSize: theme.__hd__.fab.fontSizes.actionItemText,
13965
- lineHeight: theme.__hd__.fab.lineHeights.actionItemText,
13966
- fontFamily: theme.__hd__.fab.fonts.actionItemText
14772
+ backgroundColor: theme.__hd__.card.colors.dataCardIndicator,
14773
+ width: scale(16),
14774
+ height: '100%'
14775
+ };
14776
+ });
14777
+
14778
+ var _excluded$5 = ["variant", "children"];
14779
+
14780
+ var Card = function Card(_ref) {
14781
+ var _ref$variant = _ref.variant,
14782
+ variant = _ref$variant === void 0 ? 'basic' : _ref$variant,
14783
+ children = _ref.children,
14784
+ nativeProps = _objectWithoutProperties$1(_ref, _excluded$5);
14785
+
14786
+ return /*#__PURE__*/React__default["default"].createElement(StyledCard, _extends$3({}, nativeProps, {
14787
+ testID: "card",
14788
+ themeVariant: variant
14789
+ }), variant === 'data' && /*#__PURE__*/React__default["default"].createElement(LeftDataCard, {
14790
+ testID: "data-card-indicator"
14791
+ }), children);
14792
+ };
14793
+
14794
+ var StyledWrapper$1 = index$2(ReactNative.Animated.View)(function () {
14795
+ return {
14796
+ margin: 0,
14797
+ padding: 0,
14798
+ overflow: 'hidden'
14799
+ };
14800
+ });
14801
+ var StyledChildWrapper = index$2(ReactNative.View)(function () {
14802
+ return {
14803
+ margin: 0,
14804
+ padding: 0
14805
+ };
14806
+ });
14807
+
14808
+ var usePrevious = function usePrevious(value) {
14809
+ var ref = React__default["default"].useRef();
14810
+ React__default["default"].useEffect(function () {
14811
+ ref.current = value;
14812
+ }, [value]);
14813
+ return ref.current;
14814
+ };
14815
+
14816
+ var Collapse = function Collapse(_ref) {
14817
+ var _ref$open = _ref.open,
14818
+ open = _ref$open === void 0 ? false : _ref$open,
14819
+ _ref$keepChildrenMoun = _ref.keepChildrenMounted,
14820
+ keepChildrenMounted = _ref$keepChildrenMoun === void 0 ? false : _ref$keepChildrenMoun,
14821
+ children = _ref.children,
14822
+ testID = _ref.testID,
14823
+ style = _ref.style;
14824
+ var collapseAnim = React__default["default"].useRef(new ReactNative.Animated.Value(0)).current;
14825
+ var innerRef = React__default["default"].useRef(null);
14826
+
14827
+ var _React$useState = React__default["default"].useState(0),
14828
+ _React$useState2 = _slicedToArray(_React$useState, 2),
14829
+ contentHeight = _React$useState2[0],
14830
+ setContentHeight = _React$useState2[1];
14831
+
14832
+ var _React$useState3 = React__default["default"].useState(0),
14833
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
14834
+ maxHeight = _React$useState4[0],
14835
+ setMaxHeight = _React$useState4[1];
14836
+
14837
+ var _useState = React.useState(false),
14838
+ _useState2 = _slicedToArray(_useState, 2),
14839
+ isWaitingToClose = _useState2[0],
14840
+ setIsWaitingToClose = _useState2[1];
14841
+
14842
+ var _useState3 = React.useState('percent'),
14843
+ _useState4 = _slicedToArray(_useState3, 2),
14844
+ heightSource = _useState4[0],
14845
+ setHeightSource = _useState4[1];
14846
+
14847
+ var previousOpenState = usePrevious(open);
14848
+ var animatedCallback = React.useCallback(function () {
14849
+ if (open === true) {
14850
+ setIsWaitingToClose(true);
14851
+ setMaxHeight(contentHeight);
14852
+ } else {
14853
+ setIsWaitingToClose(false);
14854
+ }
14855
+ }, [open, contentHeight]);
14856
+ React.useEffect(function () {
14857
+ if (open !== previousOpenState && previousOpenState !== undefined) {
14858
+ var useHeightValue = maxHeight || 100;
14859
+ setHeightSource(useHeightValue > 100 ? 'container' : 'percent');
14860
+ ReactNative.Animated.timing(collapseAnim, {
14861
+ toValue: open ? useHeightValue : 0,
14862
+ easing: ReactNative.Easing.inOut(ReactNative.Easing.ease),
14863
+ useNativeDriver: false
14864
+ }).start(animatedCallback);
14865
+ }
14866
+ }, [open, previousOpenState, maxHeight]);
14867
+ var checkMaxHeight = React.useCallback(function (_ref2) {
14868
+ var height = _ref2.height;
14869
+
14870
+ if (height > contentHeight) {
14871
+ setContentHeight(height);
14872
+ }
14873
+ }, [contentHeight]);
14874
+ return /*#__PURE__*/React__default["default"].createElement(StyledWrapper$1, {
14875
+ onLayout: function onLayout(event) {
14876
+ return checkMaxHeight(event.nativeEvent.layout);
14877
+ },
14878
+ style: [style, {
14879
+ maxHeight: heightSource === 'container' ? collapseAnim : collapseAnim.interpolate({
14880
+ inputRange: [0, 100],
14881
+ outputRange: ['0%', '100%']
14882
+ })
14883
+ }],
14884
+ testID: testID
14885
+ }, (keepChildrenMounted === true || open === true || open === false && isWaitingToClose === true) && /*#__PURE__*/React__default["default"].createElement(StyledChildWrapper, {
14886
+ ref: innerRef
14887
+ }, children));
14888
+ };
14889
+
14890
+ var StyledDivider = index$2(ReactNative.View)(function (_ref) {
14891
+ var themeMarginHorizontal = _ref.themeMarginHorizontal,
14892
+ themeMarginVertical = _ref.themeMarginVertical,
14893
+ theme = _ref.theme;
14894
+ var horizontalMargin = themeMarginHorizontal !== undefined ? {
14895
+ marginHorizontal: theme.__hd__.divider.space[themeMarginHorizontal]
14896
+ } : {};
14897
+ var verticalMargin = themeMarginVertical !== undefined ? {
14898
+ marginVertical: theme.__hd__.divider.space[themeMarginVertical]
14899
+ } : {};
14900
+ return _objectSpread2(_objectSpread2({
14901
+ maxWidth: '100%',
14902
+ borderBottomColor: theme.__hd__.divider.colors["default"],
14903
+ borderBottomWidth: theme.__hd__.divider.borderWidths["default"]
14904
+ }, horizontalMargin), verticalMargin);
14905
+ });
14906
+
14907
+ var _excluded$4 = ["marginHorizontal", "marginVertical", "style", "testID"];
14908
+
14909
+ var Divider = function Divider(_ref) {
14910
+ var marginHorizontal = _ref.marginHorizontal,
14911
+ marginVertical = _ref.marginVertical,
14912
+ style = _ref.style,
14913
+ testID = _ref.testID,
14914
+ nativeProps = _objectWithoutProperties$1(_ref, _excluded$4);
14915
+
14916
+ return /*#__PURE__*/React__default["default"].createElement(StyledDivider, _extends$3({}, nativeProps, {
14917
+ themeMarginHorizontal: marginHorizontal,
14918
+ themeMarginVertical: marginVertical,
14919
+ style: style,
14920
+ testID: testID
14921
+ }));
14922
+ };
14923
+
14924
+ var AnimatedPressable = ReactNative.Animated.createAnimatedComponent(ReactNative.Pressable);
14925
+ var StyledContainer$1 = index$2(ReactNative.View)(function (_ref) {
14926
+ var theme = _ref.theme,
14927
+ enableShadow = _ref.enableShadow;
14928
+ return _objectSpread2(_objectSpread2({}, ReactNative.StyleSheet.absoluteFillObject), {}, {
14929
+ shadowColor: enableShadow ? theme.__hd__.drawer.colors.shadow : 'transparent',
14930
+ shadowOffset: theme.__hd__.drawer.shadows.offset,
14931
+ shadowOpacity: theme.__hd__.drawer.shadows.opacity,
14932
+ shadowRadius: theme.__hd__.drawer.shadows.radius,
14933
+ overflow: 'hidden',
14934
+ zIndex: 9999,
14935
+ elevation: 9999
14936
+ });
14937
+ });
14938
+ var StyledBackdrop$1 = index$2(AnimatedPressable)(function (_ref2) {
14939
+ var theme = _ref2.theme;
14940
+ return _objectSpread2(_objectSpread2({}, ReactNative.StyleSheet.absoluteFillObject), {}, {
14941
+ backgroundColor: theme.__hd__.drawer.colors.backdrop
14942
+ });
14943
+ });
14944
+ var StyledDrawerContainer = index$2(ReactNative.Animated.View)(function (_ref3) {
14945
+ var theme = _ref3.theme,
14946
+ enableShadow = _ref3.enableShadow;
14947
+ return {
14948
+ borderBottomLeftRadius: theme.__hd__.drawer.radii["default"],
14949
+ borderBottomRightRadius: theme.__hd__.drawer.radii["default"],
14950
+ backgroundColor: theme.__hd__.drawer.colors.background,
14951
+ elevation: enableShadow ? theme.__hd__.drawer.shadows.elevation : undefined,
14952
+ overflow: 'hidden'
13967
14953
  };
13968
14954
  });
13969
14955
 
13970
- var ActionItem = function ActionItem(_ref) {
13971
- var icon = _ref.icon,
13972
- title = _ref.title,
13973
- onPress = _ref.onPress,
13974
- style = _ref.style,
13975
- testID = _ref.testID;
13976
- return /*#__PURE__*/React__default["default"].createElement(StyledActionItem, {
13977
- style: style,
13978
- onPress: onPress,
13979
- testID: testID
13980
- }, /*#__PURE__*/React__default["default"].createElement(Icon, {
13981
- icon: icon
13982
- }), /*#__PURE__*/React__default["default"].createElement(StyledActionItemText, null, title));
13983
- };
14956
+ var Drawer = function Drawer(_ref) {
14957
+ var visible = _ref.visible,
14958
+ children = _ref.children,
14959
+ _ref$hasBackdrop = _ref.hasBackdrop,
14960
+ hasBackdrop = _ref$hasBackdrop === void 0 ? true : _ref$hasBackdrop,
14961
+ onDismiss = _ref.onDismiss,
14962
+ testID = _ref.testID;
14963
+ var animatedValue = React.useRef(new ReactNative.Animated.Value(visible ? 1 : 0)).current;
14964
+
14965
+ var _useState = React.useState(0),
14966
+ _useState2 = _slicedToArray(_useState, 2),
14967
+ height = _useState2[0],
14968
+ setHeight = _useState2[1];
14969
+
14970
+ var enableShadow = visible && !hasBackdrop;
14971
+ var interpolateTranslateY = animatedValue.interpolate({
14972
+ inputRange: [0, 1],
14973
+ outputRange: [-height, 0]
14974
+ });
14975
+ var interpolateBackdropOpacity = hasBackdrop ? animatedValue.interpolate({
14976
+ inputRange: [0, 1],
14977
+ outputRange: [0, 0.35]
14978
+ }) : 0;
14979
+ React.useEffect(function () {
14980
+ var animation = ReactNative.Animated.timing(animatedValue, {
14981
+ toValue: visible ? 1 : 0,
14982
+ easing: ReactNative.Easing.inOut(ReactNative.Easing.cubic),
14983
+ useNativeDriver: true
14984
+ });
14985
+ animation.start();
14986
+ return function () {
14987
+ return animation.stop();
14988
+ };
14989
+ }, [visible]);
14990
+ return /*#__PURE__*/React__default["default"].createElement(StyledContainer$1, {
14991
+ testID: testID,
14992
+ enableShadow: enableShadow,
14993
+ pointerEvents: "box-none"
14994
+ }, /*#__PURE__*/React__default["default"].createElement(StyledBackdrop$1, {
14995
+ pointerEvents: visible ? 'auto' : 'box-none',
14996
+ onPress: onDismiss,
14997
+ style: {
14998
+ opacity: interpolateBackdropOpacity
14999
+ }
15000
+ }), /*#__PURE__*/React__default["default"].createElement(StyledDrawerContainer, {
15001
+ enableShadow: enableShadow,
15002
+ onLayout: function onLayout(_ref2) {
15003
+ var nativeEvent = _ref2.nativeEvent;
15004
+ return setHeight(nativeEvent.layout.height);
15005
+ },
15006
+ style: {
15007
+ transform: [{
15008
+ translateY: interpolateTranslateY
15009
+ }]
15010
+ }
15011
+ }, children));
15012
+ };
15013
+
15014
+ var StyledFABContainer = index$2(ReactNative.TouchableHighlight)(function (_ref) {
15015
+ var theme = _ref.theme;
15016
+ return {
15017
+ backgroundColor: theme.__hd__.fab.colors.buttonBackground,
15018
+ borderRadius: theme.radii.rounded,
15019
+ alignItems: 'center',
15020
+ justifyContent: 'center',
15021
+ overflow: 'hidden',
15022
+ alignSelf: 'flex-start',
15023
+ paddingHorizontal: theme.__hd__.fab.space.containerPaddingHorizontal,
15024
+ paddingVertical: theme.__hd__.fab.space.containerPaddingVertical,
15025
+ flexDirection: 'row'
15026
+ };
15027
+ });
15028
+ var StyledFABIcon = index$2(Icon)(function (_ref2) {
15029
+ var theme = _ref2.theme;
15030
+ return {
15031
+ color: theme.__hd__.fab.colors.icon,
15032
+ lineHeight: theme.__hd__.fab.lineHeights.icon,
15033
+ textAlignVertical: 'center',
15034
+ textAlign: 'center'
15035
+ };
15036
+ });
15037
+ var StyledFABText = index$2(ReactNative.Text)(function (_ref3) {
15038
+ var theme = _ref3.theme;
15039
+ return {
15040
+ fontFamily: theme.__hd__.fab.fonts.title,
15041
+ fontSize: theme.__hd__.fab.fontSizes.title,
15042
+ lineHeight: theme.__hd__.fab.lineHeights.title,
15043
+ color: theme.__hd__.fab.colors.titleText,
15044
+ textAlignVertical: 'center',
15045
+ textAlign: 'center',
15046
+ marginHorizontal: theme.__hd__.fab.space.titleMarginHorizontal
15047
+ };
15048
+ });
15049
+
15050
+ var _excluded$3 = ["active"];
15051
+ var AnimatedIcons = ReactNative.Animated.createAnimatedComponent(StyledFABIcon);
15052
+
15053
+ var AnimatedFABIcon = function AnimatedFABIcon(_ref) {
15054
+ var active = _ref.active,
15055
+ iconProps = _objectWithoutProperties$1(_ref, _excluded$3);
15056
+
15057
+ var rotateAnimation = React.useRef(new ReactNative.Animated.Value(active ? 1 : 0));
15058
+ React.useEffect(function () {
15059
+ var animation = ReactNative.Animated.timing(rotateAnimation.current, {
15060
+ toValue: active ? 1 : 0,
15061
+ useNativeDriver: true
15062
+ });
15063
+ animation.start();
15064
+ return function () {
15065
+ animation.stop();
15066
+ };
15067
+ }, [active]);
15068
+ var interpolatedRotateAnimation = rotateAnimation.current.interpolate({
15069
+ inputRange: [0, 1],
15070
+ outputRange: ['0deg', '-45deg']
15071
+ });
15072
+ return /*#__PURE__*/React__default["default"].createElement(ReactNative.Animated.View, {
15073
+ style: ReactNative.StyleSheet.flatten([{
15074
+ transform: [{
15075
+ rotate: interpolatedRotateAnimation
15076
+ }]
15077
+ }])
15078
+ }, /*#__PURE__*/React__default["default"].createElement(AnimatedIcons, iconProps));
15079
+ };
15080
+
15081
+ var IconOnlyContent = function IconOnlyContent(_ref) {
15082
+ var icon = _ref.icon,
15083
+ animated = _ref.animated,
15084
+ active = _ref.active;
15085
+
15086
+ if (animated) {
15087
+ return /*#__PURE__*/React__default["default"].createElement(AnimatedFABIcon, {
15088
+ active: active,
15089
+ icon: icon,
15090
+ testID: "animated-fab-icon"
15091
+ });
15092
+ }
15093
+
15094
+ return /*#__PURE__*/React__default["default"].createElement(StyledFABIcon, {
15095
+ icon: icon,
15096
+ testID: "styled-fab-icon"
15097
+ });
15098
+ };
15099
+
15100
+ var IconWithTextContent = function IconWithTextContent(_ref2) {
15101
+ var icon = _ref2.icon,
15102
+ title = _ref2.title;
15103
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(StyledFABIcon, {
15104
+ size: "xsmall",
15105
+ icon: icon,
15106
+ testID: "styled-fab-icon"
15107
+ }), /*#__PURE__*/React__default["default"].createElement(StyledFABText, null, title));
15108
+ };
15109
+
15110
+ var FAB = function FAB(_ref3) {
15111
+ var onPress = _ref3.onPress,
15112
+ title = _ref3.title,
15113
+ icon = _ref3.icon,
15114
+ animated = _ref3.animated,
15115
+ testID = _ref3.testID,
15116
+ active = _ref3.active,
15117
+ style = _ref3.style;
15118
+ var isIconOnly = !title;
15119
+ return /*#__PURE__*/React__default["default"].createElement(StyledFABContainer, {
15120
+ testID: testID,
15121
+ style: style,
15122
+ onPress: onPress,
15123
+ activeOpacity: 0.6
15124
+ }, isIconOnly ? /*#__PURE__*/React__default["default"].createElement(IconOnlyContent, {
15125
+ animated: animated,
15126
+ active: active,
15127
+ icon: icon
15128
+ }) : /*#__PURE__*/React__default["default"].createElement(IconWithTextContent, {
15129
+ icon: icon,
15130
+ title: title
15131
+ }));
15132
+ };
15133
+
15134
+ var StyledActionItem = index$2(ReactNative.TouchableOpacity)(function (_ref) {
15135
+ var theme = _ref.theme;
15136
+ return {
15137
+ paddingLeft: theme.__hd__.fab.space.actionItemPaddingLeft,
15138
+ paddingRight: theme.__hd__.fab.space.actionItemPaddingRight,
15139
+ paddingTop: theme.__hd__.fab.space.actionItemPaddingTop,
15140
+ paddingBottom: theme.__hd__.fab.space.actionItemPaddingBottom,
15141
+ margin: theme.__hd__.fab.space.actionItemMargin,
15142
+ marginRight: theme.__hd__.fab.space.actionItemMarginRight,
15143
+ backgroundColor: theme.__hd__.fab.colors.actionItemBackground,
15144
+ borderRadius: theme.__hd__.fab.radii.actionItem,
15145
+ flexDirection: 'row',
15146
+ alignItems: 'center',
15147
+ alignSelf: 'flex-end',
15148
+ overflow: 'hidden'
15149
+ };
15150
+ });
15151
+ var StyledActionItemText = index$2(Typography.Text)(function (_ref2) {
15152
+ var theme = _ref2.theme;
15153
+ return {
15154
+ paddingLeft: theme.__hd__.fab.space.actionItemTextPaddingLeft,
15155
+ fontSize: theme.__hd__.fab.fontSizes.actionItemText,
15156
+ lineHeight: theme.__hd__.fab.lineHeights.actionItemText,
15157
+ fontFamily: theme.__hd__.fab.fonts.actionItemText
15158
+ };
15159
+ });
15160
+
15161
+ var ActionItem = function ActionItem(_ref) {
15162
+ var icon = _ref.icon,
15163
+ title = _ref.title,
15164
+ onPress = _ref.onPress,
15165
+ style = _ref.style,
15166
+ testID = _ref.testID;
15167
+ return /*#__PURE__*/React__default["default"].createElement(StyledActionItem, {
15168
+ style: style,
15169
+ onPress: onPress,
15170
+ testID: testID
15171
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
15172
+ icon: icon
15173
+ }), /*#__PURE__*/React__default["default"].createElement(StyledActionItemText, null, title));
15174
+ };
15175
+
15176
+ var StyledContainer = index$2(ReactNative.View)({
15177
+ position: 'absolute',
15178
+ left: 0,
15179
+ right: 0,
15180
+ top: 0,
15181
+ bottom: 0,
15182
+ alignItems: 'flex-end',
15183
+ justifyContent: 'flex-end'
15184
+ });
15185
+ var StyledActionGroupContainer = index$2(ReactNative.Animated.View)({
15186
+ alignItems: 'flex-end',
15187
+ justifyContent: 'flex-end',
15188
+ width: '70%'
15189
+ });
15190
+ var StyledFAB = index$2(FAB)(function (_ref) {
15191
+ var theme = _ref.theme;
15192
+ return {
15193
+ marginRight: theme.__hd__.fab.space.buttonMarginRight,
15194
+ marginTop: theme.__hd__.fab.space.buttonMarginTop,
15195
+ alignSelf: 'flex-end'
15196
+ };
15197
+ });
15198
+ var StyledBackdrop = index$2(ReactNative.Animated.View)(function (_ref2) {
15199
+ var theme = _ref2.theme;
15200
+ return {
15201
+ position: 'absolute',
15202
+ left: 0,
15203
+ right: 0,
15204
+ top: 0,
15205
+ bottom: 0,
15206
+ backgroundColor: theme.__hd__.fab.colors.backdropBackground
15207
+ };
15208
+ });
15209
+ var StyledHeaderText = index$2(Typography.Text)(function (_ref3) {
15210
+ var theme = _ref3.theme;
15211
+ return {
15212
+ fontSize: theme.__hd__.fab.fontSizes.header,
15213
+ lineHeight: theme.__hd__.fab.lineHeights.header,
15214
+ fontFamily: theme.__hd__.fab.fonts.header,
15215
+ marginRight: theme.__hd__.fab.space.headerTextMarginRight,
15216
+ marginBottom: theme.__hd__.fab.space.headerTextMarginBottom,
15217
+ textAlign: 'right'
15218
+ };
15219
+ });
15220
+
15221
+ var ActionItemsListComponent = function ActionItemsListComponent(_ref) {
15222
+ var style = _ref.style,
15223
+ items = _ref.items;
15224
+ return /*#__PURE__*/React__default["default"].createElement(ReactNative.View, {
15225
+ style: style
15226
+ }, items === null || items === void 0 ? void 0 : items.map(function (itemProp) {
15227
+ return /*#__PURE__*/React__default["default"].createElement(ActionItem, _extends$3({
15228
+ key: itemProp.icon
15229
+ }, itemProp));
15230
+ }));
15231
+ };
15232
+
15233
+ var ActionGroup = function ActionGroup(_ref2) {
15234
+ var headerTitle = _ref2.headerTitle,
15235
+ onPress = _ref2.onPress,
15236
+ active = _ref2.active,
15237
+ style = _ref2.style,
15238
+ items = _ref2.items,
15239
+ testID = _ref2.testID,
15240
+ fabTitle = _ref2.fabTitle;
15241
+ var tranlateXAnimation = React.useRef(new ReactNative.Animated.Value(active ? 1 : 0));
15242
+ React.useEffect(function () {
15243
+ var animation = ReactNative.Animated.timing(tranlateXAnimation.current, {
15244
+ toValue: active ? 1 : 0,
15245
+ useNativeDriver: true
15246
+ });
15247
+ animation.start();
15248
+ }, [active]);
15249
+ var interpolatedTranlateXAnimation = tranlateXAnimation.current.interpolate({
15250
+ inputRange: [0, 1],
15251
+ outputRange: [400, 0]
15252
+ });
15253
+ var interpolatedOpacityAnimation = tranlateXAnimation.current.interpolate({
15254
+ inputRange: [0, 1],
15255
+ outputRange: [0, 0.9]
15256
+ });
15257
+ return /*#__PURE__*/React__default["default"].createElement(StyledContainer, {
15258
+ testID: testID,
15259
+ pointerEvents: "box-none",
15260
+ style: style
15261
+ }, /*#__PURE__*/React__default["default"].createElement(StyledBackdrop, {
15262
+ pointerEvents: active ? 'auto' : 'box-none',
15263
+ testID: "back-drop",
15264
+ style: {
15265
+ opacity: interpolatedOpacityAnimation
15266
+ }
15267
+ }), /*#__PURE__*/React__default["default"].createElement(StyledActionGroupContainer, {
15268
+ testID: "action-group",
15269
+ style: {
15270
+ transform: [{
15271
+ translateX: interpolatedTranlateXAnimation
15272
+ }]
15273
+ }
15274
+ }, headerTitle && /*#__PURE__*/React__default["default"].createElement(StyledHeaderText, {
15275
+ testID: "header-text"
15276
+ }, headerTitle), /*#__PURE__*/React__default["default"].createElement(ActionItemsListComponent, {
15277
+ items: items
15278
+ })), /*#__PURE__*/React__default["default"].createElement(StyledFAB, {
15279
+ testID: "fab",
15280
+ icon: "add",
15281
+ onPress: onPress,
15282
+ animated: true,
15283
+ active: active,
15284
+ title: fabTitle
15285
+ }));
15286
+ };
15287
+
15288
+ var index$1 = Object.assign(FAB, {
15289
+ ActionGroup: ActionGroup
15290
+ });
15291
+
15292
+ var HalfCircleWrapper = index$2(ReactNative.View)(function (_ref) {
15293
+ var theme = _ref.theme;
15294
+ return {
15295
+ width: theme.__hd__.progress.sizes.radius,
15296
+ height: theme.__hd__.progress.sizes.radius * 2,
15297
+ overflow: 'hidden'
15298
+ };
15299
+ });
15300
+ var HalfCircleInnerFG = index$2(ReactNative.View)(function (_ref2) {
15301
+ var theme = _ref2.theme,
15302
+ themeIntent = _ref2.themeIntent;
15303
+ return {
15304
+ width: theme.__hd__.progress.sizes.radius * 2,
15305
+ height: theme.__hd__.progress.sizes.radius * 2,
15306
+ backgroundColor: theme.__hd__.progress.colors[themeIntent],
15307
+ borderRadius: theme.__hd__.progress.radii["default"]
15308
+ };
15309
+ });
15310
+ var HalfCircleInnerBG = index$2(ReactNative.View)(function (_ref3) {
15311
+ var theme = _ref3.theme;
15312
+ return {
15313
+ width: theme.__hd__.progress.sizes.radius * 2,
15314
+ height: theme.__hd__.progress.sizes.radius * 2,
15315
+ backgroundColor: theme.__hd__.progress.colors.background,
15316
+ borderRadius: theme.__hd__.progress.radii["default"]
15317
+ };
15318
+ });
15319
+ var DonutCircle = index$2(ReactNative.View)(function (_ref4) {
15320
+ var theme = _ref4.theme;
15321
+ return {
15322
+ position: 'absolute',
15323
+ top: theme.__hd__.progress.sizes.strokeWidth,
15324
+ left: theme.__hd__.progress.sizes.strokeWidth,
15325
+ width: theme.__hd__.progress.sizes.radius * 2 - theme.__hd__.progress.sizes.strokeWidth * 2,
15326
+ height: theme.__hd__.progress.sizes.radius * 2 - theme.__hd__.progress.sizes.strokeWidth * 2,
15327
+ zIndex: 3,
15328
+ backgroundColor: theme.__hd__.progress.colors.innerBackground,
15329
+ borderRadius: theme.__hd__.progress.radii["default"],
15330
+ alignItems: 'center',
15331
+ justifyContent: 'center'
15332
+ };
15333
+ });
15334
+ var StrokeEnd = index$2(ReactNative.View)(function (_ref5) {
15335
+ var theme = _ref5.theme,
15336
+ themeIntent = _ref5.themeIntent;
15337
+ return {
15338
+ position: 'absolute',
15339
+ top: 0,
15340
+ left: theme.__hd__.progress.sizes.radius - theme.__hd__.progress.sizes.strokeWidth / 2,
15341
+ width: theme.__hd__.progress.sizes.strokeWidth,
15342
+ height: theme.__hd__.progress.sizes.strokeWidth,
15343
+ borderRadius: theme.__hd__.progress.radii["default"],
15344
+ backgroundColor: theme.__hd__.progress.colors[themeIntent],
15345
+ zIndex: 2
15346
+ };
15347
+ });
15348
+
15349
+ var _excluded$2 = ["value", "intent", "style", "testID"];
15350
+
15351
+ var HalfCircle = function HalfCircle(_ref) {
15352
+ var type = _ref.type,
15353
+ _ref$themeIntent = _ref.themeIntent,
15354
+ themeIntent = _ref$themeIntent === void 0 ? 'primary' : _ref$themeIntent;
15355
+ return /*#__PURE__*/React__default["default"].createElement(HalfCircleWrapper, null, type === 'background' ? /*#__PURE__*/React__default["default"].createElement(HalfCircleInnerBG, null) : /*#__PURE__*/React__default["default"].createElement(HalfCircleInnerFG, {
15356
+ themeIntent: themeIntent
15357
+ }));
15358
+ };
15359
+
15360
+ var ProgressCircle = function ProgressCircle(_ref2) {
15361
+ var value = _ref2.value,
15362
+ _ref2$intent = _ref2.intent,
15363
+ intent = _ref2$intent === void 0 ? 'primary' : _ref2$intent,
15364
+ style = _ref2.style,
15365
+ testID = _ref2.testID,
15366
+ nativeProps = _objectWithoutProperties$1(_ref2, _excluded$2);
15367
+
15368
+ var theme = useTheme();
15369
+ var radius = theme.__hd__.progress.sizes.radius;
15370
+ var progressAnimatedValue = React.useRef(new ReactNative.Animated.Value(0));
15371
+ React.useEffect(function () {
15372
+ var animation = ReactNative.Animated.timing(progressAnimatedValue.current, {
15373
+ toValue: value,
15374
+ useNativeDriver: true
15375
+ });
15376
+ animation.start();
15377
+ return function () {
15378
+ return animation.stop();
15379
+ };
15380
+ }, [value]); // Animate progress circle: 0% => 50%
15381
+
15382
+ var interpolateRotateRightHalf = progressAnimatedValue.current.interpolate({
15383
+ inputRange: [0, 50],
15384
+ outputRange: ['0deg', '180deg'],
15385
+ extrapolate: 'clamp'
15386
+ });
15387
+ var interpolateOpacityRightHalf = progressAnimatedValue.current.interpolate({
15388
+ inputRange: [50, 51],
15389
+ outputRange: [1, 0],
15390
+ extrapolate: 'clamp'
15391
+ }); // Animate progress circle: 50% => 100%
15392
+
15393
+ var interpolateRotateSecondHalf = progressAnimatedValue.current.interpolate({
15394
+ inputRange: [50, 100],
15395
+ outputRange: ['0deg', '180deg'],
15396
+ extrapolate: 'clamp'
15397
+ }); // Curve at the end of progress stroke
15398
+
15399
+ var interpolateDotRotate = progressAnimatedValue.current.interpolate({
15400
+ inputRange: [0, 100],
15401
+ outputRange: ['0deg', '360deg'],
15402
+ extrapolate: 'clamp'
15403
+ });
15404
+ return /*#__PURE__*/React__default["default"].createElement(ReactNative.View, _extends$3({}, nativeProps, {
15405
+ testID: testID,
15406
+ style: style
15407
+ }), /*#__PURE__*/React__default["default"].createElement(ReactNative.View, {
15408
+ style: {
15409
+ flexDirection: 'row'
15410
+ }
15411
+ }, /*#__PURE__*/React__default["default"].createElement(ReactNative.View, null, /*#__PURE__*/React__default["default"].createElement(HalfCircle, {
15412
+ type: "foreground",
15413
+ themeIntent: intent
15414
+ }), /*#__PURE__*/React__default["default"].createElement(ReactNative.Animated.View, {
15415
+ style: _objectSpread2(_objectSpread2({}, ReactNative.StyleSheet.absoluteFillObject), {}, {
15416
+ transform: [{
15417
+ translateX: radius / 2
15418
+ }, {
15419
+ rotate: interpolateRotateSecondHalf
15420
+ }, {
15421
+ translateX: -radius / 2
15422
+ }]
15423
+ })
15424
+ }, /*#__PURE__*/React__default["default"].createElement(HalfCircle, {
15425
+ type: "background"
15426
+ }))), /*#__PURE__*/React__default["default"].createElement(ReactNative.View, {
15427
+ style: {
15428
+ transform: [{
15429
+ rotate: '180deg'
15430
+ }],
15431
+ zIndex: 1
15432
+ }
15433
+ }, /*#__PURE__*/React__default["default"].createElement(HalfCircle, {
15434
+ type: "foreground",
15435
+ themeIntent: intent
15436
+ }), /*#__PURE__*/React__default["default"].createElement(ReactNative.Animated.View, {
15437
+ style: _objectSpread2(_objectSpread2({}, ReactNative.StyleSheet.absoluteFillObject), {}, {
15438
+ transform: [{
15439
+ translateX: radius / 2
15440
+ }, {
15441
+ rotate: interpolateRotateRightHalf
15442
+ }, {
15443
+ translateX: -radius / 2
15444
+ }],
15445
+ opacity: interpolateOpacityRightHalf
15446
+ })
15447
+ }, /*#__PURE__*/React__default["default"].createElement(HalfCircle, {
15448
+ type: "background"
15449
+ }))), /*#__PURE__*/React__default["default"].createElement(StrokeEnd, {
15450
+ themeIntent: intent
15451
+ }), /*#__PURE__*/React__default["default"].createElement(ReactNative.Animated.View, {
15452
+ style: _objectSpread2(_objectSpread2({}, ReactNative.StyleSheet.absoluteFillObject), {}, {
15453
+ zIndex: 2,
15454
+ transform: [{
15455
+ rotate: interpolateDotRotate
15456
+ }]
15457
+ })
15458
+ }, /*#__PURE__*/React__default["default"].createElement(StrokeEnd, {
15459
+ themeIntent: intent
15460
+ })), /*#__PURE__*/React__default["default"].createElement(DonutCircle, null, /*#__PURE__*/React__default["default"].createElement(Typography.Text, {
15461
+ fontSize: "xlarge"
15462
+ }, "".concat(value, "%")))));
15463
+ };
15464
+
15465
+ var StyledWrapper = index$2(ReactNative.View)(function (_ref) {
15466
+ var theme = _ref.theme;
15467
+ return {
15468
+ height: theme.__hd__.progress.sizes.barHeight,
15469
+ alignSelf: 'stretch',
15470
+ backgroundColor: theme.__hd__.progress.colors.background,
15471
+ overflow: 'hidden'
15472
+ };
15473
+ });
15474
+ var StyledInner = index$2(ReactNative.Animated.View)(function (_ref2) {
15475
+ var theme = _ref2.theme,
15476
+ themeIntent = _ref2.themeIntent;
15477
+ return {
15478
+ flex: 1,
15479
+ alignSelf: 'stretch',
15480
+ backgroundColor: theme.__hd__.progress.colors[themeIntent]
15481
+ };
15482
+ });
15483
+
15484
+ var _excluded$1 = ["value", "intent", "style", "testID"];
15485
+
15486
+ var ProgressBar = function ProgressBar(_ref) {
15487
+ var value = _ref.value,
15488
+ _ref$intent = _ref.intent,
15489
+ intent = _ref$intent === void 0 ? 'primary' : _ref$intent,
15490
+ style = _ref.style,
15491
+ testID = _ref.testID,
15492
+ nativeProps = _objectWithoutProperties$1(_ref, _excluded$1);
15493
+
15494
+ var _useState = React.useState(0),
15495
+ _useState2 = _slicedToArray(_useState, 2),
15496
+ width = _useState2[0],
15497
+ setWidth = _useState2[1];
15498
+
15499
+ var progressAnimatedValue = React.useRef(new ReactNative.Animated.Value(0));
15500
+ React.useEffect(function () {
15501
+ var animation = ReactNative.Animated.timing(progressAnimatedValue.current, {
15502
+ toValue: value,
15503
+ useNativeDriver: true
15504
+ });
15505
+ animation.start();
15506
+ return function () {
15507
+ return animation.stop();
15508
+ };
15509
+ }, [value]);
15510
+ var interpolateTranslateX = progressAnimatedValue.current.interpolate({
15511
+ inputRange: [0, 100],
15512
+ outputRange: [-width, 0],
15513
+ extrapolate: 'clamp'
15514
+ });
15515
+ var interpolateBorderRadius = progressAnimatedValue.current.interpolate({
15516
+ inputRange: [99, 100],
15517
+ outputRange: [999, 0],
15518
+ extrapolate: 'clamp'
15519
+ });
15520
+ return /*#__PURE__*/React__default["default"].createElement(StyledWrapper, _extends$3({}, nativeProps, {
15521
+ testID: testID,
15522
+ style: style
15523
+ }), /*#__PURE__*/React__default["default"].createElement(StyledInner, {
15524
+ themeIntent: intent,
15525
+ onLayout: function onLayout(_ref2) {
15526
+ var nativeEvent = _ref2.nativeEvent;
15527
+ return setWidth(nativeEvent.layout.width);
15528
+ },
15529
+ style: {
15530
+ transform: [{
15531
+ translateX: interpolateTranslateX
15532
+ }],
15533
+ borderTopRightRadius: interpolateBorderRadius,
15534
+ borderBottomRightRadius: interpolateBorderRadius
15535
+ }
15536
+ }));
15537
+ };
15538
+
15539
+ var Progress = {
15540
+ Circle: ProgressCircle,
15541
+ Bar: ProgressBar
15542
+ };
15543
+
15544
+ var childrenWithOverriddenStyle = function childrenWithOverriddenStyle(children) {
15545
+ return React.Children.map(children, function (child) {
15546
+ var element = child;
15547
+ return (
15548
+ /*#__PURE__*/
15549
+ // Add a wrapper to ensure layout is calculated correctly
15550
+ React__default["default"].createElement(ReactNative.View, {
15551
+ style: ReactNative.StyleSheet.absoluteFill,
15552
+ collapsable: false
15553
+ }, /*#__PURE__*/React__default["default"].cloneElement(element, _objectSpread2(_objectSpread2({}, element.props), {}, {
15554
+ // Override styles so that each page will fill the parent.
15555
+ style: [element.props.style, ReactNative.StyleSheet.absoluteFill]
15556
+ })))
15557
+ );
15558
+ });
15559
+ };
15560
+
15561
+ var VIEW_MANAGER_NAME = 'RNCViewPager';
15562
+ var PagerViewViewManager = ReactNative.requireNativeComponent(VIEW_MANAGER_NAME);
15563
+ function getViewManagerConfig() {
15564
+ var viewManagerName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : VIEW_MANAGER_NAME;
15565
+ return ReactNative.UIManager.getViewManagerConfig(viewManagerName);
15566
+ }
15567
+
15568
+ function _extends() {
15569
+ _extends = Object.assign || function (target) {
15570
+ for (var i = 1; i < arguments.length; i++) {
15571
+ var source = arguments[i];
15572
+
15573
+ for (var key in source) {
15574
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
15575
+ target[key] = source[key];
15576
+ }
15577
+ }
15578
+ }
15579
+
15580
+ return target;
15581
+ };
15582
+
15583
+ return _extends.apply(this, arguments);
15584
+ }
15585
+
15586
+ function _defineProperty(obj, key, value) {
15587
+ if (key in obj) {
15588
+ Object.defineProperty(obj, key, {
15589
+ value: value,
15590
+ enumerable: true,
15591
+ configurable: true,
15592
+ writable: true
15593
+ });
15594
+ } else {
15595
+ obj[key] = value;
15596
+ }
15597
+
15598
+ return obj;
15599
+ }
15600
+ /**
15601
+ * Container that allows to flip left and right between child views. Each
15602
+ * child view of the `PagerView` will be treated as a separate page
15603
+ * and will be stretched to fill the `PagerView`.
15604
+ *
15605
+ * It is important all children are `<View>`s and not composite components.
15606
+ * You can set style properties like `padding` or `backgroundColor` for each
15607
+ * child. It is also important that each child have a `key` prop.
15608
+ *
15609
+ * Example:
15610
+ *
15611
+ * ```
15612
+ * render: function() {
15613
+ * return (
15614
+ * <PagerView
15615
+ * style={styles.PagerView}
15616
+ * initialPage={0}>
15617
+ * <View style={styles.pageStyle} key="1">
15618
+ * <Text>First page</Text>
15619
+ * </View>
15620
+ * <View style={styles.pageStyle} key="2">
15621
+ * <Text>Second page</Text>
15622
+ * </View>
15623
+ * </PagerView>
15624
+ * );
15625
+ * }
15626
+ *
15627
+ * ...
15628
+ *
15629
+ * var styles = {
15630
+ * ...
15631
+ * PagerView: {
15632
+ * flex: 1
15633
+ * },
15634
+ * pageStyle: {
15635
+ * alignItems: 'center',
15636
+ * padding: 20,
15637
+ * }
15638
+ * }
15639
+ * ```
15640
+ */
15641
+
15642
+ var PagerView = /*#__PURE__*/function (_React$Component) {
15643
+ _inherits$1(PagerView, _React$Component);
15644
+
15645
+ var _super = _createSuper(PagerView);
15646
+
15647
+ function PagerView() {
15648
+ var _this;
15649
+
15650
+ _classCallCheck$1(this, PagerView);
15651
+
15652
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
15653
+ args[_key] = arguments[_key];
15654
+ }
15655
+
15656
+ _this = _super.call.apply(_super, [this].concat(args));
15657
+
15658
+ _defineProperty(_assertThisInitialized$1(_this), "isScrolling", false);
15659
+
15660
+ _defineProperty(_assertThisInitialized$1(_this), "PagerView", /*#__PURE__*/React__default["default"].createRef());
15661
+
15662
+ _defineProperty(_assertThisInitialized$1(_this), "getInnerViewNode", function () {
15663
+ return _this.PagerView.current.getInnerViewNode();
15664
+ });
15665
+
15666
+ _defineProperty(_assertThisInitialized$1(_this), "_onPageScroll", function (e) {
15667
+ if (_this.props.onPageScroll) {
15668
+ _this.props.onPageScroll(e);
15669
+ } // Not implemented on iOS yet
15670
+
15671
+
15672
+ if (ReactNative.Platform.OS === 'android') {
15673
+ if (_this.props.keyboardDismissMode === 'on-drag') {
15674
+ ReactNative.Keyboard.dismiss();
15675
+ }
15676
+ }
15677
+ });
15678
+
15679
+ _defineProperty(_assertThisInitialized$1(_this), "_onPageScrollStateChanged", function (e) {
15680
+ if (_this.props.onPageScrollStateChanged) {
15681
+ _this.props.onPageScrollStateChanged(e);
15682
+ }
15683
+
15684
+ _this.isScrolling = e.nativeEvent.pageScrollState === 'dragging';
15685
+ });
15686
+
15687
+ _defineProperty(_assertThisInitialized$1(_this), "_onPageSelected", function (e) {
15688
+ if (_this.props.onPageSelected) {
15689
+ _this.props.onPageSelected(e);
15690
+ }
15691
+ });
15692
+
15693
+ _defineProperty(_assertThisInitialized$1(_this), "setPage", function (selectedPage) {
15694
+ ReactNative.UIManager.dispatchViewManagerCommand(ReactNative__default["default"].findNodeHandle(_assertThisInitialized$1(_this)), getViewManagerConfig().Commands.setPage, [selectedPage]);
15695
+ });
15696
+
15697
+ _defineProperty(_assertThisInitialized$1(_this), "setPageWithoutAnimation", function (selectedPage) {
15698
+ ReactNative.UIManager.dispatchViewManagerCommand(ReactNative__default["default"].findNodeHandle(_assertThisInitialized$1(_this)), getViewManagerConfig().Commands.setPageWithoutAnimation, [selectedPage]);
15699
+ });
15700
+
15701
+ _defineProperty(_assertThisInitialized$1(_this), "setScrollEnabled", function (scrollEnabled) {
15702
+ ReactNative.UIManager.dispatchViewManagerCommand(ReactNative__default["default"].findNodeHandle(_assertThisInitialized$1(_this)), getViewManagerConfig().Commands.setScrollEnabled, [scrollEnabled]);
15703
+ });
15704
+
15705
+ _defineProperty(_assertThisInitialized$1(_this), "_onMoveShouldSetResponderCapture", function () {
15706
+ return _this.isScrolling;
15707
+ });
15708
+
15709
+ return _this;
15710
+ }
15711
+
15712
+ _createClass$1(PagerView, [{
15713
+ key: "deducedLayoutDirection",
15714
+ get: function get() {
15715
+ var shouldUseDeviceRtlSetup = !this.props.layoutDirection || this.props.layoutDirection === 'locale';
15716
+
15717
+ if (shouldUseDeviceRtlSetup) {
15718
+ return ReactNative.I18nManager.isRTL ? 'rtl' : 'ltr';
15719
+ } else {
15720
+ return this.props.layoutDirection;
15721
+ }
15722
+ }
15723
+ }, {
15724
+ key: "render",
15725
+ value: function render() {
15726
+ return /*#__PURE__*/React__default["default"].createElement(PagerViewViewManager, _extends({}, this.props, {
15727
+ ref: this.PagerView
15728
+ /** TODO: Fix ref type */
15729
+ ,
15730
+ style: this.props.style,
15731
+ layoutDirection: this.deducedLayoutDirection,
15732
+ onPageScroll: this._onPageScroll,
15733
+ onPageScrollStateChanged: this._onPageScrollStateChanged,
15734
+ onPageSelected: this._onPageSelected,
15735
+ onMoveShouldSetResponderCapture: this._onMoveShouldSetResponderCapture,
15736
+ children: childrenWithOverriddenStyle(this.props.children)
15737
+ }));
15738
+ }
15739
+ }]);
15740
+
15741
+ return PagerView;
15742
+ }(React__default["default"].Component);
13984
15743
 
13985
- var StyledContainer = index$1(reactNative.View)({
13986
- position: 'absolute',
13987
- left: 0,
13988
- right: 0,
13989
- top: 0,
13990
- bottom: 0,
13991
- alignItems: 'flex-end',
13992
- justifyContent: 'flex-end'
13993
- });
13994
- var StyledActionGroupContainer = index$1(reactNative.Animated.View)({
13995
- alignItems: 'flex-end',
13996
- justifyContent: 'flex-end',
13997
- width: '70%'
15744
+ var AnimatedPagerView = ReactNative.Animated.createAnimatedComponent(PagerView);
15745
+ var TabContainer$1 = index$2(ReactNative.View)({
15746
+ flex: 1,
15747
+ overflow: 'hidden'
13998
15748
  });
13999
- var StyledFAB = index$1(FAB)(function (_ref) {
14000
- var theme = _ref.theme;
15749
+ var HeaderTabWrapper$1 = index$2(ReactNative.View)(function (_ref) {
15750
+ var theme = _ref.theme,
15751
+ themeInsets = _ref.themeInsets;
14001
15752
  return {
14002
- marginRight: theme.__hd__.fab.space.buttonMarginRight,
14003
- marginTop: theme.__hd__.fab.space.buttonMarginTop,
14004
- alignSelf: 'flex-end'
15753
+ paddingHorizontal: Math.max(themeInsets.left, themeInsets.right),
15754
+ borderBottomColor: theme.__hd__.tabs.colors.headerBottom,
15755
+ borderBottomWidth: theme.__hd__.tabs.borderWidths.headerBottom
14005
15756
  };
14006
15757
  });
14007
- var StyledBackdrop = index$1(reactNative.Animated.View)(function (_ref2) {
15758
+ var HeaderTab = index$2(ReactNative.View)({
15759
+ flexDirection: 'row'
15760
+ });
15761
+ var HeaderTabItem$1 = index$2(ReactNative.View)(function (_ref2) {
14008
15762
  var theme = _ref2.theme;
14009
15763
  return {
14010
- position: 'absolute',
14011
- left: 0,
14012
- right: 0,
14013
- top: 0,
14014
- bottom: 0,
14015
- backgroundColor: theme.__hd__.fab.colors.backdropBackground
15764
+ flex: 1,
15765
+ alignItems: 'center',
15766
+ paddingVertical: theme.__hd__.tabs.space.itemVerticalPadding
14016
15767
  };
14017
15768
  });
14018
- var StyledHeaderText = index$1(Typography.Text)(function (_ref3) {
14019
- var theme = _ref3.theme;
15769
+ var ContentWrapper$1 = index$2(AnimatedPagerView)({
15770
+ flex: 1
15771
+ });
15772
+ var TabScreen$1 = index$2(ReactNative.View)({
15773
+ flex: 1
15774
+ });
15775
+ var StyledIndicator = index$2(ReactNative.Animated.View)(function (_ref3) {
15776
+ var theme = _ref3.theme,
15777
+ themeWidth = _ref3.themeWidth;
14020
15778
  return {
14021
- fontSize: theme.__hd__.fab.fontSizes.header,
14022
- lineHeight: theme.__hd__.fab.lineHeights.header,
14023
- fontFamily: theme.__hd__.fab.fonts.header,
14024
- marginRight: theme.__hd__.fab.space.headerTextMarginRight,
14025
- marginBottom: theme.__hd__.fab.space.headerTextMarginBottom,
14026
- textAlign: 'right'
15779
+ width: themeWidth,
15780
+ height: theme.__hd__.tabs.sizes.indicator,
15781
+ backgroundColor: theme.__hd__.tabs.colors.text,
15782
+ position: 'absolute',
15783
+ bottom: 0
14027
15784
  };
14028
15785
  });
14029
15786
 
14030
- var ActionItemsListComponent = function ActionItemsListComponent(_ref) {
14031
- var style = _ref.style,
14032
- items = _ref.items;
14033
- return /*#__PURE__*/React__default["default"].createElement(reactNative.View, {
14034
- style: style
14035
- }, items === null || items === void 0 ? void 0 : items.map(function (itemProp) {
14036
- return /*#__PURE__*/React__default["default"].createElement(ActionItem, _extends$2({
14037
- key: itemProp.icon
14038
- }, itemProp));
14039
- }));
14040
- };
14041
-
14042
- var ActionGroup = function ActionGroup(_ref2) {
14043
- var headerTitle = _ref2.headerTitle,
14044
- onPress = _ref2.onPress,
14045
- active = _ref2.active,
14046
- style = _ref2.style,
14047
- items = _ref2.items,
14048
- testID = _ref2.testID;
14049
- var tranlateXAnimation = React.useRef(new reactNative.Animated.Value(active ? 1 : 0));
14050
- React.useEffect(function () {
14051
- var animation = reactNative.Animated.timing(tranlateXAnimation.current, {
14052
- toValue: active ? 1 : 0,
14053
- useNativeDriver: true
14054
- });
14055
- animation.start();
14056
- }, [active]);
14057
- var interpolatedTranlateXAnimation = tranlateXAnimation.current.interpolate({
14058
- inputRange: [0, 1],
14059
- outputRange: [400, 0]
14060
- });
14061
- var interpolatedOpacityAnimation = tranlateXAnimation.current.interpolate({
14062
- inputRange: [0, 1],
14063
- outputRange: [0, 0.9]
15787
+ var ActiveTabIndicator = function ActiveTabIndicator(_ref) {
15788
+ var scrollOffsetAnimatedValue = _ref.scrollOffsetAnimatedValue,
15789
+ positionAnimatedValue = _ref.positionAnimatedValue,
15790
+ tabsLength = _ref.tabsLength,
15791
+ tabsWidth = _ref.tabsWidth;
15792
+ var inputRange = [0, tabsLength];
15793
+ var indicatorWidth = tabsWidth / tabsLength;
15794
+ var translateX = ReactNative.Animated.add(scrollOffsetAnimatedValue, positionAnimatedValue).interpolate({
15795
+ inputRange: inputRange,
15796
+ outputRange: [0, tabsLength * indicatorWidth]
14064
15797
  });
14065
- return /*#__PURE__*/React__default["default"].createElement(StyledContainer, {
14066
- testID: testID,
14067
- pointerEvents: "box-none",
14068
- style: style
14069
- }, /*#__PURE__*/React__default["default"].createElement(StyledBackdrop, {
14070
- pointerEvents: active ? 'auto' : 'box-none',
14071
- testID: "back-drop",
14072
- style: {
14073
- opacity: interpolatedOpacityAnimation
14074
- }
14075
- }), /*#__PURE__*/React__default["default"].createElement(StyledActionGroupContainer, {
14076
- testID: "action-group",
15798
+ return /*#__PURE__*/React__default["default"].createElement(StyledIndicator, {
15799
+ themeWidth: indicatorWidth,
14077
15800
  style: {
14078
15801
  transform: [{
14079
- translateX: interpolatedTranlateXAnimation
15802
+ translateX: translateX
14080
15803
  }]
14081
15804
  }
14082
- }, headerTitle && /*#__PURE__*/React__default["default"].createElement(StyledHeaderText, {
14083
- testID: "header-text"
14084
- }, headerTitle), /*#__PURE__*/React__default["default"].createElement(ActionItemsListComponent, {
14085
- items: items
14086
- })), /*#__PURE__*/React__default["default"].createElement(StyledFAB, {
14087
- testID: "fab",
14088
- icon: "add",
14089
- onPress: onPress,
14090
- animated: true,
14091
- active: active
14092
- }));
15805
+ });
14093
15806
  };
14094
15807
 
14095
- var index = Object.assign(FAB, {
14096
- ActionGroup: ActionGroup
14097
- });
14098
-
14099
- var TabScreen = index$1(reactNative.View)(function (_ref) {
14100
- var themeVisibility = _ref.themeVisibility;
14101
- return {
14102
- flex: 1,
14103
- display: themeVisibility === false ? 'none' : 'flex'
14104
- };
15808
+ var TabScreen = index$2(ReactNative.View)({
15809
+ flex: 1
14105
15810
  });
14106
- var TabContainer = index$1(reactNative.View)({
15811
+ var TabContainer = index$2(ReactNative.View)({
14107
15812
  flex: 1,
14108
15813
  overflow: 'hidden'
14109
15814
  });
14110
- var ContentWrapper = index$1(reactNative.View)({
15815
+ var ContentWrapper = index$2(PagerView)({
14111
15816
  flex: 1
14112
15817
  });
14113
- var HeaderTabWrapper = index$1(reactNative.View)(function (_ref2) {
14114
- var themeInsets = _ref2.themeInsets,
14115
- theme = _ref2.theme;
15818
+ var HeaderTabWrapper = index$2(ReactNative.View)(function (_ref) {
15819
+ var theme = _ref.theme,
15820
+ themeInsets = _ref.themeInsets;
14116
15821
  return {
14117
- paddingLeft: Math.max(themeInsets.left, themeInsets.right),
14118
- paddingRight: Math.max(themeInsets.left, themeInsets.right),
14119
- backgroundColor: theme.__hd__.tabs.colors.background
15822
+ paddingHorizontal: Math.max(themeInsets.left, themeInsets.right),
15823
+ borderBottomColor: theme.__hd__.tabs.colors.headerBottom,
15824
+ borderBottomWidth: theme.__hd__.tabs.borderWidths.headerBottom
14120
15825
  };
14121
15826
  });
14122
- var StyledFlatList = index$1(reactNative.FlatList)(function (_ref3) {
14123
- var theme = _ref3.theme;
15827
+ var HeaderTabItem = index$2(ReactNative.Animated.View)(function (_ref2) {
15828
+ var theme = _ref2.theme;
14124
15829
  return {
14125
- paddingLeft: theme.__hd__.tabs.space.flatListHorizontalPadding,
14126
- paddingRight: theme.__hd__.tabs.space.flatListHorizontalPadding
15830
+ paddingHorizontal: theme.__hd__.tabs.space.itemHorizontalPadding,
15831
+ paddingVertical: theme.__hd__.tabs.space.itemVerticalPadding
14127
15832
  };
14128
15833
  });
14129
- var HeaderTabItem = index$1(reactNative.View)(function (_ref4) {
14130
- var theme = _ref4.theme;
14131
- return {
14132
- flexDirection: 'row',
14133
- alignItems: 'center',
14134
- paddingLeft: theme.__hd__.tabs.space.itemHorizontalPadding,
14135
- paddingRight: theme.__hd__.tabs.space.itemHorizontalPadding,
14136
- paddingTop: theme.__hd__.tabs.space.itemVerticalPadding,
14137
- paddingBottom: theme.__hd__.tabs.space.itemVerticalPadding
14138
- };
15834
+ var HeaderTabItemOutlineWrapper = index$2(ReactNative.View)(function (_ref3) {
15835
+ var theme = _ref3.theme;
15836
+ return _objectSpread2({
15837
+ paddingHorizontal: theme.__hd__.tabs.space.itemHorizontalPadding,
15838
+ paddingVertical: theme.__hd__.tabs.space.itemVerticalPadding
15839
+ }, ReactNative.StyleSheet.absoluteFillObject);
14139
15840
  });
14140
- var StyledHeaderTabIcon = index$1(Icon)(function (_ref5) {
14141
- var themeActive = _ref5.themeActive,
14142
- theme = _ref5.theme;
15841
+ var HeaderTabItemOutline = index$2(ReactNative.Animated.View)(function (_ref4) {
15842
+ var theme = _ref4.theme,
15843
+ themeActive = _ref4.themeActive;
14143
15844
  return {
14144
- color: themeActive ? theme.__hd__.tabs.colors.active : theme.__hd__.tabs.colors.inactive
15845
+ borderRadius: theme.__hd__.tabs.radii.outline,
15846
+ backgroundColor: themeActive ? theme.__hd__.tabs.colors.activeBackground : undefined
14145
15847
  };
14146
15848
  });
14147
- var StyledHeaderTabText = index$1(Typography.Text)(function (_ref6) {
14148
- var themeActive = _ref6.themeActive,
14149
- theme = _ref6.theme;
15849
+ var HeaderTabItemWrapper = index$2(ReactNative.View)(function (_ref5) {
15850
+ var theme = _ref5.theme;
14150
15851
  return {
14151
- marginLeft: theme.__hd__.tabs.space.titleMarginLeft,
14152
- color: themeActive ? theme.__hd__.tabs.colors.active : theme.__hd__.tabs.colors.inactive
15852
+ paddingHorizontal: theme.__hd__.tabs.space.outlineHorizontalPadding,
15853
+ paddingVertical: theme.__hd__.tabs.space.outlineVerticalPadding
14153
15854
  };
14154
15855
  });
14155
15856
 
14156
- var _excluded = ["onTabPress", "renderActiveTabOnly", "selectedTabKey", "tabs"];
15857
+ var useAnimatedValueArray = function useAnimatedValueArray(initialValues) {
15858
+ var refs = React__default["default"].useRef([]);
15859
+ refs.current.length = initialValues.length;
15860
+ initialValues.forEach(function (initialValue, i) {
15861
+ var _refs$current$i;
14157
15862
 
14158
- var Tabs = function Tabs(_ref) {
14159
- var onTabPress = _ref.onTabPress,
14160
- _ref$renderActiveTabO = _ref.renderActiveTabOnly,
14161
- renderActiveTabOnly = _ref$renderActiveTabO === void 0 ? false : _ref$renderActiveTabO,
14162
- selectedTabKey = _ref.selectedTabKey,
14163
- tabs = _ref.tabs,
14164
- nativeProps = _objectWithoutProperties$1(_ref, _excluded);
15863
+ refs.current[i] = (_refs$current$i = refs.current[i]) !== null && _refs$current$i !== void 0 ? _refs$current$i : new ReactNative.Animated.Value(initialValue);
15864
+ });
15865
+ return refs.current;
15866
+ };
14165
15867
 
14166
- var flatListRef = React__default["default"].useRef(null);
14167
- var insets = reactNativeSafeAreaContext.useSafeAreaInsets();
14168
- /**
14169
- * List of loaded tabs, tabs will be loaded when navigated to.
14170
- */
15868
+ var getTabItem$1 = function getTabItem(_ref) {
15869
+ var item = _ref.item,
15870
+ color = _ref.color,
15871
+ active = _ref.active;
15872
+
15873
+ if (isHeroIcon(item)) {
15874
+ return /*#__PURE__*/React__default["default"].createElement(Icon, {
15875
+ icon: item,
15876
+ testID: "hero-icon-".concat(item),
15877
+ size: "small",
15878
+ intent: active ? 'info' : 'text'
15879
+ });
15880
+ }
14171
15881
 
14172
- var _React$useState = React__default["default"].useState([selectedTabKey]),
14173
- _React$useState2 = _slicedToArray(_React$useState, 2),
14174
- loaded = _React$useState2[0],
14175
- setLoaded = _React$useState2[1];
15882
+ if (typeof item === 'string') {
15883
+ return /*#__PURE__*/React__default["default"].createElement(Typography.Text, {
15884
+ fontWeight: active ? 'semi-bold' : 'regular',
15885
+ numberOfLines: 1,
15886
+ style: {
15887
+ color: color
15888
+ }
15889
+ }, item);
15890
+ }
14176
15891
 
14177
- React__default["default"].useEffect(function () {
14178
- var selectedTabIndex = tabs.findIndex(function (item) {
14179
- return item.key === selectedTabKey;
14180
- });
15892
+ return item({
15893
+ color: color
15894
+ });
15895
+ };
14181
15896
 
15897
+ var ScrollableTab = function ScrollableTab(_ref2) {
15898
+ var onTabPress = _ref2.onTabPress,
15899
+ selectedTabKey = _ref2.selectedTabKey,
15900
+ tabs = _ref2.tabs,
15901
+ containerStyle = _ref2.containerStyle,
15902
+ barStyle = _ref2.barStyle,
15903
+ _ref2$lazy = _ref2.lazy,
15904
+ lazy = _ref2$lazy === void 0 ? false : _ref2$lazy,
15905
+ _ref2$lazyPreloadDist = _ref2.lazyPreloadDistance,
15906
+ lazyPreloadDistance = _ref2$lazyPreloadDist === void 0 ? 1 : _ref2$lazyPreloadDist;
15907
+ var flatListRef = React__default["default"].useRef(null);
15908
+ var pagerViewRef = React__default["default"].useRef(null);
15909
+ var insets = reactNativeSafeAreaContext.useSafeAreaInsets();
15910
+ var theme = useTheme();
15911
+ var selectedTabIndex = tabs.findIndex(function (item) {
15912
+ return item.key === selectedTabKey;
15913
+ });
15914
+ var tabsAnims = useAnimatedValueArray(tabs.map(function (_, i) {
15915
+ return i === selectedTabIndex ? 1 : 0;
15916
+ }));
15917
+ React__default["default"].useEffect(function () {
14182
15918
  if (selectedTabIndex !== -1) {
14183
15919
  var _flatListRef$current;
14184
15920
 
@@ -14187,18 +15923,25 @@ var Tabs = function Tabs(_ref) {
14187
15923
  viewPosition: 0.5
14188
15924
  });
14189
15925
  }
14190
- }, [selectedTabKey, tabs]);
14191
-
14192
- if (!loaded.includes(selectedTabKey)) {
14193
- // Set the current tab to be loaded if it was not loaded before
14194
- setLoaded(function (loadedState) {
14195
- return [].concat(_toConsumableArray$1(loadedState), [selectedTabKey]);
14196
- });
14197
- }
14198
15926
 
14199
- return /*#__PURE__*/React__default["default"].createElement(TabContainer, nativeProps, /*#__PURE__*/React__default["default"].createElement(HeaderTabWrapper, {
14200
- themeInsets: insets
14201
- }, /*#__PURE__*/React__default["default"].createElement(StyledFlatList, {
15927
+ var animation = ReactNative.Animated.parallel(_toConsumableArray$1(tabs.map(function (_, i) {
15928
+ return ReactNative.Animated.timing(tabsAnims[i], {
15929
+ toValue: i === selectedTabIndex ? 1 : 0,
15930
+ duration: 150,
15931
+ useNativeDriver: true
15932
+ });
15933
+ })));
15934
+ animation.start();
15935
+ return function () {
15936
+ return animation.stop();
15937
+ };
15938
+ }, [selectedTabIndex]);
15939
+ return /*#__PURE__*/React__default["default"].createElement(TabContainer, {
15940
+ style: containerStyle
15941
+ }, /*#__PURE__*/React__default["default"].createElement(HeaderTabWrapper, {
15942
+ themeInsets: insets,
15943
+ style: barStyle
15944
+ }, /*#__PURE__*/React__default["default"].createElement(ReactNative.FlatList, {
14202
15945
  ref: flatListRef,
14203
15946
  horizontal: true,
14204
15947
  data: tabs,
@@ -14206,8 +15949,8 @@ var Tabs = function Tabs(_ref) {
14206
15949
  return String(tab.key);
14207
15950
  },
14208
15951
  showsHorizontalScrollIndicator: false,
14209
- onScrollToIndexFailed: function onScrollToIndexFailed(_ref2) {
14210
- var index = _ref2.index;
15952
+ onScrollToIndexFailed: function onScrollToIndexFailed(_ref3) {
15953
+ var index = _ref3.index;
14211
15954
  setTimeout(function () {
14212
15955
  var _flatListRef$current2;
14213
15956
 
@@ -14217,67 +15960,270 @@ var Tabs = function Tabs(_ref) {
14217
15960
  });
14218
15961
  }, 100);
14219
15962
  },
14220
- renderItem: function renderItem(_ref3) {
14221
- var tab = _ref3.item;
15963
+ contentContainerStyle: {
15964
+ paddingHorizontal: theme.__hd__.tabs.space.flatListHorizontalPadding
15965
+ },
15966
+ renderItem: function renderItem(_ref4) {
15967
+ var tab = _ref4.item,
15968
+ index = _ref4.index;
14222
15969
  var key = tab.key,
14223
- icon = tab.icon,
14224
- title = tab.title,
14225
- testID = tab.testID;
15970
+ testID = tab.testID,
15971
+ activeItem = tab.activeItem,
15972
+ originalInactiveItem = tab.inactiveItem,
15973
+ _tab$showBadge = tab.showBadge,
15974
+ showBadge = _tab$showBadge === void 0 ? false : _tab$showBadge;
14226
15975
  var active = selectedTabKey === key;
14227
- return /*#__PURE__*/React__default["default"].createElement(reactNative.TouchableOpacity, {
15976
+ var activeAnimated = tabsAnims[index];
15977
+ var outlineScale = active ? activeAnimated.interpolate({
15978
+ inputRange: [0, 1],
15979
+ outputRange: [0.5, 1]
15980
+ }) : 0;
15981
+ var inactiveItem = originalInactiveItem !== null && originalInactiveItem !== void 0 ? originalInactiveItem : activeItem;
15982
+ var tabItem = getTabItem$1({
15983
+ item: active ? activeItem : inactiveItem,
15984
+ color: active ? theme.__hd__.tabs.colors.active : theme.__hd__.tabs.colors.inactive,
15985
+ active: active
15986
+ });
15987
+ return /*#__PURE__*/React__default["default"].createElement(ReactNative.TouchableWithoutFeedback, {
14228
15988
  key: key,
14229
15989
  onPress: function onPress() {
14230
- return onTabPress(key);
15990
+ var _pagerViewRef$current;
15991
+
15992
+ onTabPress(key);
15993
+ (_pagerViewRef$current = pagerViewRef.current) === null || _pagerViewRef$current === void 0 ? void 0 : _pagerViewRef$current.setPage(index);
14231
15994
  },
14232
15995
  testID: testID
14233
- }, /*#__PURE__*/React__default["default"].createElement(HeaderTabItem, null, /*#__PURE__*/React__default["default"].createElement(StyledHeaderTabIcon, {
14234
- icon: icon,
14235
- testID: "hero-icon-".concat(icon),
14236
- themeActive: active
14237
- }), /*#__PURE__*/React__default["default"].createElement(StyledHeaderTabText, {
14238
- fontWeight: "semi-bold",
14239
- numberOfLines: 1,
14240
- themeActive: active
14241
- }, title)));
14242
- }
14243
- })), /*#__PURE__*/React__default["default"].createElement(ContentWrapper, null, tabs.map(function (tab) {
15996
+ }, /*#__PURE__*/React__default["default"].createElement(HeaderTabItem, null, /*#__PURE__*/React__default["default"].createElement(HeaderTabItemOutlineWrapper, null, /*#__PURE__*/React__default["default"].createElement(HeaderTabItemOutline, {
15997
+ themeActive: active,
15998
+ style: {
15999
+ flex: 1,
16000
+ transform: [{
16001
+ scaleX: outlineScale
16002
+ }]
16003
+ }
16004
+ })), /*#__PURE__*/React__default["default"].createElement(HeaderTabItemWrapper, null, /*#__PURE__*/React__default["default"].createElement(Badge$1.Status, {
16005
+ visible: showBadge
16006
+ }, tabItem))));
16007
+ }
16008
+ })), /*#__PURE__*/React__default["default"].createElement(ContentWrapper, {
16009
+ initialPage: selectedTabIndex,
16010
+ ref: pagerViewRef,
16011
+ onPageSelected: function onPageSelected(e) {
16012
+ var index = e.nativeEvent.position;
16013
+ var selectedItem = tabs[index];
16014
+
16015
+ if (selectedItem) {
16016
+ onTabPress(selectedItem.key);
16017
+ }
16018
+ }
16019
+ }, tabs.map(function (tab, index) {
14244
16020
  var key = tab.key,
14245
16021
  component = tab.component,
14246
16022
  testID = tab.testID;
14247
16023
  var active = selectedTabKey === key;
16024
+ var isLazyScreen = lazy && Math.abs(selectedTabIndex - index) > lazyPreloadDistance;
16025
+ return /*#__PURE__*/React__default["default"].createElement(TabScreen, {
16026
+ key: key,
16027
+ testID: testID ? "tab-screen-".concat(testID) : undefined,
16028
+ pointerEvents: active ? 'auto' : 'none',
16029
+ accessibilityElementsHidden: !active,
16030
+ importantForAccessibility: active ? 'auto' : 'no-hide-descendants',
16031
+ collapsable: false
16032
+ }, isLazyScreen ? null : component);
16033
+ })));
16034
+ };
14248
16035
 
14249
- if (renderActiveTabOnly && !active) {
14250
- return null;
14251
- }
16036
+ var getTabItem = function getTabItem(_ref) {
16037
+ var item = _ref.item,
16038
+ color = _ref.color,
16039
+ active = _ref.active;
16040
+
16041
+ if (typeof item === 'string') {
16042
+ return /*#__PURE__*/React__default["default"].createElement(Typography.Text, {
16043
+ fontWeight: active ? 'semi-bold' : 'regular',
16044
+ numberOfLines: 1,
16045
+ style: {
16046
+ color: color
16047
+ }
16048
+ }, item);
16049
+ }
14252
16050
 
14253
- if (!loaded.includes(key)) {
14254
- // Don't render a screen if we've never navigated to it
14255
- return null;
16051
+ return item({
16052
+ color: color
16053
+ });
16054
+ };
16055
+
16056
+ var Tabs = function Tabs(_ref2) {
16057
+ var onTabPress = _ref2.onTabPress,
16058
+ selectedTabKey = _ref2.selectedTabKey,
16059
+ tabs = _ref2.tabs,
16060
+ containerStyle = _ref2.containerStyle,
16061
+ barStyle = _ref2.barStyle,
16062
+ _ref2$lazy = _ref2.lazy,
16063
+ lazy = _ref2$lazy === void 0 ? false : _ref2$lazy,
16064
+ _ref2$lazyPreloadDist = _ref2.lazyPreloadDistance,
16065
+ lazyPreloadDistance = _ref2$lazyPreloadDist === void 0 ? 1 : _ref2$lazyPreloadDist;
16066
+ var theme = useTheme();
16067
+ var insets = reactNativeSafeAreaContext.useSafeAreaInsets();
16068
+ var pagerViewRef = React__default["default"].useRef(null);
16069
+ var selectedTabIndex = tabs.findIndex(function (item) {
16070
+ return item.key === selectedTabKey;
16071
+ });
16072
+ var scrollOffsetAnimatedValue = React__default["default"].useRef(new ReactNative.Animated.Value(0)).current;
16073
+ var positionAnimatedValue = React__default["default"].useRef(new ReactNative.Animated.Value(0)).current;
16074
+
16075
+ var _React$useState = React__default["default"].useState(0),
16076
+ _React$useState2 = _slicedToArray(_React$useState, 2),
16077
+ tabsWidth = _React$useState2[0],
16078
+ setTabsWidth = _React$useState2[1];
16079
+
16080
+ return /*#__PURE__*/React__default["default"].createElement(TabContainer$1, {
16081
+ style: containerStyle
16082
+ }, /*#__PURE__*/React__default["default"].createElement(HeaderTabWrapper$1, {
16083
+ themeInsets: insets,
16084
+ style: barStyle
16085
+ }, /*#__PURE__*/React__default["default"].createElement(ReactNative.View, null, /*#__PURE__*/React__default["default"].createElement(HeaderTab, {
16086
+ onLayout: function onLayout(e) {
16087
+ var width = e.nativeEvent.layout.width;
16088
+
16089
+ if (tabsWidth !== width) {
16090
+ setTabsWidth(width);
16091
+ }
14256
16092
  }
16093
+ }, tabs.map(function (tab, index) {
16094
+ var key = tab.key,
16095
+ testID = tab.testID,
16096
+ activeItem = tab.activeItem,
16097
+ originalInactiveItem = tab.inactiveItem,
16098
+ _tab$showBadge = tab.showBadge,
16099
+ showBadge = _tab$showBadge === void 0 ? false : _tab$showBadge;
16100
+ var active = selectedTabKey === key;
16101
+ var inactiveItem = originalInactiveItem !== null && originalInactiveItem !== void 0 ? originalInactiveItem : activeItem;
16102
+ var tabItem = getTabItem({
16103
+ item: active ? activeItem : inactiveItem,
16104
+ color: theme.__hd__.tabs.colors.text,
16105
+ active: active
16106
+ });
16107
+ return /*#__PURE__*/React__default["default"].createElement(ReactNative.TouchableWithoutFeedback, {
16108
+ key: key,
16109
+ onPress: function onPress() {
16110
+ var _pagerViewRef$current;
14257
16111
 
14258
- return /*#__PURE__*/React__default["default"].createElement(TabScreen, {
16112
+ onTabPress(key);
16113
+ (_pagerViewRef$current = pagerViewRef.current) === null || _pagerViewRef$current === void 0 ? void 0 : _pagerViewRef$current.setPage(index);
16114
+ },
16115
+ testID: testID
16116
+ }, /*#__PURE__*/React__default["default"].createElement(HeaderTabItem$1, null, /*#__PURE__*/React__default["default"].createElement(Badge$1.Status, {
16117
+ visible: showBadge
16118
+ }, tabItem)));
16119
+ })), /*#__PURE__*/React__default["default"].createElement(ActiveTabIndicator, {
16120
+ positionAnimatedValue: positionAnimatedValue,
16121
+ scrollOffsetAnimatedValue: scrollOffsetAnimatedValue,
16122
+ tabsLength: tabs.length,
16123
+ tabsWidth: tabsWidth
16124
+ }))), /*#__PURE__*/React__default["default"].createElement(ContentWrapper$1, {
16125
+ initialPage: selectedTabIndex,
16126
+ ref: pagerViewRef,
16127
+ onPageSelected: function onPageSelected(e) {
16128
+ var index = e.nativeEvent.position;
16129
+ var selectedItem = tabs[index];
16130
+
16131
+ if (selectedItem) {
16132
+ onTabPress(selectedItem.key);
16133
+ }
16134
+ },
16135
+ onPageScroll: ReactNative.Animated.event([{
16136
+ nativeEvent: {
16137
+ offset: scrollOffsetAnimatedValue,
16138
+ position: positionAnimatedValue
16139
+ }
16140
+ }], {
16141
+ useNativeDriver: true
16142
+ })
16143
+ }, tabs.map(function (tab, index) {
16144
+ var key = tab.key,
16145
+ component = tab.component,
16146
+ testID = tab.testID;
16147
+ var active = selectedTabKey === key;
16148
+ var isLazyScreen = lazy && Math.abs(selectedTabIndex - index) > lazyPreloadDistance;
16149
+ return /*#__PURE__*/React__default["default"].createElement(TabScreen$1, {
14259
16150
  key: key,
14260
16151
  testID: testID ? "tab-screen-".concat(testID) : undefined,
14261
16152
  pointerEvents: active ? 'auto' : 'none',
14262
16153
  accessibilityElementsHidden: !active,
14263
16154
  importantForAccessibility: active ? 'auto' : 'no-hide-descendants',
14264
- collapsable: false,
14265
- removeClippedSubviews: // On iOS, set removeClippedSubviews to true only when not focused
14266
- // This is an workaround for a bug where the clipped view never re-appears.
14267
- isIOS ? selectedTabKey !== key : true,
14268
- themeVisibility: active
14269
- }, component);
16155
+ collapsable: false
16156
+ }, isLazyScreen ? null : component);
14270
16157
  })));
14271
16158
  };
14272
16159
 
14273
- exports.Badge = Badge;
16160
+ var index = Object.assign(Tabs, {
16161
+ Scroll: ScrollableTab
16162
+ });
16163
+
16164
+ var BACKGROUND_INTENTS = {
16165
+ success: 'successBackground',
16166
+ warning: 'warningBackground',
16167
+ danger: 'dangerBackground',
16168
+ info: 'infoBackground'
16169
+ };
16170
+ var StyledView = index$2(ReactNative.View)(function (_ref) {
16171
+ var themeIntent = _ref.themeIntent,
16172
+ theme = _ref.theme;
16173
+ return {
16174
+ borderWidth: theme.__hd__.tag.borderWidths["default"],
16175
+ borderRadius: theme.__hd__.tag.radii["default"],
16176
+ paddingVertical: theme.__hd__.tag.space.verticalPadding,
16177
+ paddingHorizontal: theme.__hd__.tag.space.horizontalPadding,
16178
+ borderColor: theme.__hd__.tag.colors[themeIntent],
16179
+ backgroundColor: theme.__hd__.tag.colors[BACKGROUND_INTENTS[themeIntent]]
16180
+ };
16181
+ });
16182
+ var StyledText = index$2(ReactNative.Text)(function (_ref2) {
16183
+ var themeIntent = _ref2.themeIntent,
16184
+ theme = _ref2.theme;
16185
+ return {
16186
+ fontFamily: theme.__hd__.tag.fonts["default"],
16187
+ fontSize: theme.__hd__.tag.fontSizes["default"],
16188
+ color: theme.__hd__.tag.colors[themeIntent],
16189
+ includeFontPadding: false,
16190
+ textAlignVertical: 'center',
16191
+ textAlign: 'center'
16192
+ };
16193
+ });
16194
+
16195
+ var _excluded = ["content", "intent", "style", "testID"];
16196
+
16197
+ var Tag = function Tag(_ref) {
16198
+ var content = _ref.content,
16199
+ _ref$intent = _ref.intent,
16200
+ intent = _ref$intent === void 0 ? 'info' : _ref$intent,
16201
+ style = _ref.style,
16202
+ testID = _ref.testID,
16203
+ nativeProps = _objectWithoutProperties$1(_ref, _excluded);
16204
+
16205
+ return /*#__PURE__*/React__default["default"].createElement(StyledView, _extends$3({}, nativeProps, {
16206
+ themeIntent: intent,
16207
+ style: style,
16208
+ testID: testID
16209
+ }), /*#__PURE__*/React__default["default"].createElement(StyledText, {
16210
+ themeIntent: intent
16211
+ }, content));
16212
+ };
16213
+
16214
+ exports.Avatar = Avatar;
16215
+ exports.Badge = Badge$1;
14274
16216
  exports.BottomNavigation = BottomNavigation;
14275
- exports.Button = Button;
16217
+ exports.Button = CompoundButton;
14276
16218
  exports.Card = Card;
16219
+ exports.Collapse = Collapse;
14277
16220
  exports.Divider = Divider;
14278
- exports.FAB = index;
16221
+ exports.Drawer = Drawer;
16222
+ exports.FAB = index$1;
14279
16223
  exports.Icon = Icon;
14280
- exports.Tabs = Tabs;
16224
+ exports.Progress = Progress;
16225
+ exports.Tabs = index;
16226
+ exports.Tag = Tag;
14281
16227
  exports.ThemeProvider = ThemeProvider;
14282
16228
  exports.Typography = Typography;
14283
16229
  exports.getTheme = getTheme;