@artsy/palette-mobile 23.14.0 → 24.0.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 (220) hide show
  1. package/dist/Theme.js +16 -11
  2. package/dist/animation/CssTransition.js +71 -26
  3. package/dist/animation/index.js +17 -1
  4. package/dist/constants.js +12 -8
  5. package/dist/elements/ArtsyKeyboardAvoidingView/ArtsyKeyboardAvoidingView.js +116 -69
  6. package/dist/elements/ArtsyKeyboardAvoidingView/index.js +17 -1
  7. package/dist/elements/Autocomplete/Autocomplete.js +32 -23
  8. package/dist/elements/Autocomplete/Autocomplete.tests.js +128 -56
  9. package/dist/elements/Autocomplete/index.js +17 -1
  10. package/dist/elements/Avatar/Avatar.js +20 -15
  11. package/dist/elements/Avatar/Avatar.stories.js +29 -15
  12. package/dist/elements/Avatar/Avatar.tests.js +12 -10
  13. package/dist/elements/Avatar/index.js +17 -1
  14. package/dist/elements/BackButton/BackButton.js +16 -9
  15. package/dist/elements/BackButton/BackButton.stories.js +12 -8
  16. package/dist/elements/BackButton/index.js +17 -1
  17. package/dist/elements/Banner/Banner.js +45 -18
  18. package/dist/elements/Banner/Banner.stories.js +12 -8
  19. package/dist/elements/Banner/index.js +17 -1
  20. package/dist/elements/BorderBox/BorderBox.js +16 -11
  21. package/dist/elements/BorderBox/index.js +17 -1
  22. package/dist/elements/Box/Box.js +16 -14
  23. package/dist/elements/Box/Box.stories.js +21 -15
  24. package/dist/elements/Box/index.js +17 -1
  25. package/dist/elements/Button/Button.js +85 -64
  26. package/dist/elements/Button/Button.stories.js +48 -23
  27. package/dist/elements/Button/CTAButton.js +18 -3
  28. package/dist/elements/Button/FollowButton.js +38 -11
  29. package/dist/elements/Button/LinkButton.js +19 -4
  30. package/dist/elements/Button/colors.js +7 -3
  31. package/dist/elements/Button/index.js +20 -4
  32. package/dist/elements/ButtonNew/Button.js +114 -49
  33. package/dist/elements/ButtonNew/Button.stories.js +64 -38
  34. package/dist/elements/ButtonNew/Button.tests.js +23 -21
  35. package/dist/elements/ButtonNew/CTAButton.js +18 -3
  36. package/dist/elements/ButtonNew/FollowButton.js +36 -9
  37. package/dist/elements/ButtonNew/LinkButton.js +19 -4
  38. package/dist/elements/ButtonNew/colors.js +7 -3
  39. package/dist/elements/ButtonNew/index.js +20 -4
  40. package/dist/elements/Checkbox/Check.js +83 -46
  41. package/dist/elements/Checkbox/Checkbox.js +83 -47
  42. package/dist/elements/Checkbox/Checkbox.stories.js +10 -9
  43. package/dist/elements/Checkbox/index.js +18 -2
  44. package/dist/elements/Chip/Chip.js +23 -18
  45. package/dist/elements/Chip/Chip.stories.js +12 -8
  46. package/dist/elements/Chip/index.js +17 -1
  47. package/dist/elements/ClassTheme/ClassTheme.js +10 -5
  48. package/dist/elements/ClassTheme/index.js +17 -1
  49. package/dist/elements/Collapse/Collapse.js +9 -4
  50. package/dist/elements/Collapse/Collapse.stories.js +13 -9
  51. package/dist/elements/Collapse/index.js +17 -1
  52. package/dist/elements/CollapsibleMenuItem/CollapsibleMenuItem.js +32 -27
  53. package/dist/elements/CollapsibleMenuItem/CollapsibleMenuItem.stories.js +62 -37
  54. package/dist/elements/CollapsibleMenuItem/index.js +17 -1
  55. package/dist/elements/Dialog/Dialog.js +52 -26
  56. package/dist/elements/Dialog/Dialog.stories.js +41 -22
  57. package/dist/elements/Dialog/Dialog.tests.js +33 -31
  58. package/dist/elements/Dialog/index.js +17 -1
  59. package/dist/elements/EntityHeader/EntityHeader.js +42 -15
  60. package/dist/elements/EntityHeader/EntityHeader.stories.js +26 -18
  61. package/dist/elements/EntityHeader/index.js +17 -1
  62. package/dist/elements/Flex/Flex.js +32 -4
  63. package/dist/elements/Flex/index.js +17 -1
  64. package/dist/elements/Header/ArtsyLogoHeader.js +15 -8
  65. package/dist/elements/Header/index.js +17 -1
  66. package/dist/elements/Histogram/Histogram.js +19 -14
  67. package/dist/elements/Histogram/index.js +17 -1
  68. package/dist/elements/Image/Image.js +60 -28
  69. package/dist/elements/Image/Image.stories.js +35 -23
  70. package/dist/elements/Image/__tests__/getImageURL.tests.js +10 -8
  71. package/dist/elements/Image/helpers/getImageURL.js +13 -8
  72. package/dist/elements/Image/index.js +17 -1
  73. package/dist/elements/Input/Input.js +216 -168
  74. package/dist/elements/Input/Input.stories.js +15 -11
  75. package/dist/elements/Input/Input.tests.js +85 -39
  76. package/dist/elements/Input/InputTitle.js +9 -4
  77. package/dist/elements/Input/helpers.js +35 -27
  78. package/dist/elements/Input/index.js +19 -3
  79. package/dist/elements/Input/maskValue.js +25 -9
  80. package/dist/elements/Input/maskValue.tests.js +19 -17
  81. package/dist/elements/Join/Join.js +14 -9
  82. package/dist/elements/Join/index.js +17 -1
  83. package/dist/elements/LazyFlatlist/LazyFlatlist.js +11 -8
  84. package/dist/elements/LazyFlatlist/index.js +18 -2
  85. package/dist/elements/LazyFlatlist/useHasSeenItem.js +19 -12
  86. package/dist/elements/LegacyScreen/LegacyScreen.js +124 -83
  87. package/dist/elements/LegacyScreen/index.js +17 -1
  88. package/dist/elements/LegacyTabs/ContentTabs.js +18 -12
  89. package/dist/elements/LegacyTabs/NavigationalTabs.js +21 -15
  90. package/dist/elements/LegacyTabs/StepTabs.js +25 -19
  91. package/dist/elements/LegacyTabs/Tab.js +31 -19
  92. package/dist/elements/LegacyTabs/TabBarContainer.js +48 -39
  93. package/dist/elements/LegacyTabs/index.js +38 -9
  94. package/dist/elements/List/BulletedItem.js +34 -7
  95. package/dist/elements/List/List.stories.js +12 -8
  96. package/dist/elements/List/index.js +17 -1
  97. package/dist/elements/MeasuredView/MeasuredView.js +18 -12
  98. package/dist/elements/MeasuredView/index.js +17 -1
  99. package/dist/elements/MenuItem/MenuItem.js +14 -9
  100. package/dist/elements/MenuItem/MenuItem.stories.js +9 -5
  101. package/dist/elements/MenuItem/index.js +17 -1
  102. package/dist/elements/Message/Message.js +35 -19
  103. package/dist/elements/Message/Message.stories.d.ts +1 -1
  104. package/dist/elements/Message/Message.stories.js +23 -17
  105. package/dist/elements/Message/Message.tests.js +38 -36
  106. package/dist/elements/Message/index.js +17 -1
  107. package/dist/elements/Pill/Pill.js +116 -138
  108. package/dist/elements/Pill/Pill.stories.js +28 -20
  109. package/dist/elements/Pill/Pill.tests.js +15 -13
  110. package/dist/elements/Pill/index.js +17 -1
  111. package/dist/elements/PopIn/PopIn.js +13 -8
  112. package/dist/elements/PopIn/index.js +17 -1
  113. package/dist/elements/Popover/Popover.js +45 -15
  114. package/dist/elements/Popover/Popover.stories.js +25 -19
  115. package/dist/elements/Popover/index.js +17 -1
  116. package/dist/elements/ProgressBar/ProgressBar.js +68 -23
  117. package/dist/elements/ProgressBar/ProgressBar.stories.js +11 -7
  118. package/dist/elements/ProgressBar/ProgressBar.tests.js +48 -23
  119. package/dist/elements/ProgressBar/index.js +17 -1
  120. package/dist/elements/Radio/RadioButton.js +80 -44
  121. package/dist/elements/Radio/RadioButton.stories.js +17 -13
  122. package/dist/elements/Radio/RadioDot.js +31 -15
  123. package/dist/elements/Radio/index.js +7 -2
  124. package/dist/elements/Screen/Background.js +10 -3
  125. package/dist/elements/Screen/Body.js +37 -10
  126. package/dist/elements/Screen/BottomView.js +17 -9
  127. package/dist/elements/Screen/FloatingHeader.js +36 -9
  128. package/dist/elements/Screen/FullWidthDivider.js +20 -5
  129. package/dist/elements/Screen/FullWidthItem.js +20 -5
  130. package/dist/elements/Screen/Header.js +79 -26
  131. package/dist/elements/Screen/Screen.stories.js +46 -30
  132. package/dist/elements/Screen/ScreenBase.js +39 -11
  133. package/dist/elements/Screen/ScreenFlatList.js +26 -9
  134. package/dist/elements/Screen/ScreenScrollContext.js +21 -15
  135. package/dist/elements/Screen/ScreenScrollView.js +27 -9
  136. package/dist/elements/Screen/StickySubHeader.js +62 -23
  137. package/dist/elements/Screen/constants.js +8 -5
  138. package/dist/elements/Screen/hooks/useListenForScreenScroll.js +13 -9
  139. package/dist/elements/Screen/hooks/useShowLargeTitle.js +19 -14
  140. package/dist/elements/Screen/hooks/useTitleStyles.js +14 -10
  141. package/dist/elements/Screen/index.js +48 -31
  142. package/dist/elements/SearchInput/RoundSearchInput.js +79 -46
  143. package/dist/elements/SearchInput/SearchInput.js +43 -14
  144. package/dist/elements/SearchInput/index.js +18 -2
  145. package/dist/elements/Separator/Separator.js +20 -12
  146. package/dist/elements/Separator/Separator.stories.js +10 -6
  147. package/dist/elements/Separator/ShadowSeparator.js +14 -7
  148. package/dist/elements/Separator/index.js +18 -2
  149. package/dist/elements/SimpleMessage/SimpleMessage.js +47 -11
  150. package/dist/elements/SimpleMessage/index.js +17 -1
  151. package/dist/elements/Skeleton/Skeleton.js +50 -19
  152. package/dist/elements/Skeleton/Skeleton.stories.js +14 -10
  153. package/dist/elements/Skeleton/index.js +17 -1
  154. package/dist/elements/Spacer/Spacer.js +32 -3
  155. package/dist/elements/Spacer/Spacer.stories.js +35 -19
  156. package/dist/elements/Spacer/index.js +17 -1
  157. package/dist/elements/Spinner/Spinner.js +62 -33
  158. package/dist/elements/Spinner/index.js +17 -1
  159. package/dist/elements/Switch/Switch.js +50 -17
  160. package/dist/elements/Switch/Switch.stories.js +31 -14
  161. package/dist/elements/Switch/index.js +17 -1
  162. package/dist/elements/Tabs/SubTabBar.js +29 -20
  163. package/dist/elements/Tabs/TabFlashList.js +24 -12
  164. package/dist/elements/Tabs/TabFlatList.js +24 -12
  165. package/dist/elements/Tabs/TabMasonry.js +24 -12
  166. package/dist/elements/Tabs/TabScrollView.js +27 -14
  167. package/dist/elements/Tabs/Tabs.js +27 -24
  168. package/dist/elements/Tabs/Tabs.stories.js +93 -46
  169. package/dist/elements/Tabs/TabsContainer.js +62 -38
  170. package/dist/elements/Tabs/TabsWithHeader.js +41 -13
  171. package/dist/elements/Tabs/hooks/useListenForTabContentScroll.js +13 -9
  172. package/dist/elements/Tabs/index.js +17 -1
  173. package/dist/elements/Text/LinkText.js +32 -3
  174. package/dist/elements/Text/Text.js +61 -23
  175. package/dist/elements/Text/Text.stories.js +37 -28
  176. package/dist/elements/Text/Text.tests.js +7 -5
  177. package/dist/elements/Text/helpers.js +13 -7
  178. package/dist/elements/Text/index.js +19 -3
  179. package/dist/elements/ToolTip/ToolTip.js +67 -53
  180. package/dist/elements/ToolTip/ToolTip.stories.js +21 -14
  181. package/dist/elements/ToolTip/ToolTip.tests.js +15 -13
  182. package/dist/elements/ToolTip/ToolTipFlyout.js +68 -28
  183. package/dist/elements/ToolTip/index.js +17 -1
  184. package/dist/elements/Touchable/Touchable.js +41 -13
  185. package/dist/elements/Touchable/Touchable.stories.js +13 -9
  186. package/dist/elements/Touchable/TouchableHighlightColor.js +38 -12
  187. package/dist/elements/Touchable/TouchableWithScale.js +38 -11
  188. package/dist/elements/Touchable/index.js +19 -3
  189. package/dist/elements/VisualClue/VisualClue.stories.js +11 -7
  190. package/dist/elements/VisualClue/VisualClueDot.js +24 -14
  191. package/dist/elements/VisualClue/VisualClueText.js +26 -15
  192. package/dist/elements/VisualClue/index.js +18 -2
  193. package/dist/elements/index.js +62 -46
  194. package/dist/index.js +24 -8
  195. package/dist/setupJest.js +11 -6
  196. package/dist/storybook/decorators.js +36 -27
  197. package/dist/storybook/helpers.js +40 -22
  198. package/dist/tokens.js +28 -67
  199. package/dist/types.js +10 -5
  200. package/dist/utils/Wrap.js +16 -8
  201. package/dist/utils/colors.stories.js +31 -25
  202. package/dist/utils/createGeminiUrl.js +28 -22
  203. package/dist/utils/flattenChildren.js +20 -7
  204. package/dist/utils/formatLargeNumber.js +8 -4
  205. package/dist/utils/formatLargeNumbers.tests.js +15 -13
  206. package/dist/utils/hooks/index.js +20 -4
  207. package/dist/utils/hooks/useColor.js +6 -2
  208. package/dist/utils/hooks/useMeasure.js +40 -14
  209. package/dist/utils/hooks/useScreenDimensions.js +31 -20
  210. package/dist/utils/hooks/useSpace.js +6 -2
  211. package/dist/utils/hooks/useTheme.js +31 -23
  212. package/dist/utils/normalizeText.js +11 -6
  213. package/dist/utils/space.stories.js +15 -10
  214. package/dist/utils/tests/flattenChildren.tests.js +8 -6
  215. package/dist/utils/tests/isTestEnvironment.js +5 -1
  216. package/dist/utils/tests/renderWithWrappers.js +15 -7
  217. package/dist/utils/text.js +13 -9
  218. package/dist/utils/types.js +2 -0
  219. package/dist/utils/webTokensToMobile.js +16 -10
  220. package/package.json +30 -36
@@ -1,2 +1,18 @@
1
- export * from "./LazyFlatlist";
2
- export * from "./useHasSeenItem";
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./LazyFlatlist"), exports);
18
+ __exportStar(require("./useHasSeenItem"), exports);
@@ -1,27 +1,34 @@
1
- import { useRef, useState } from "react";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useHasSeenItem = void 0;
4
+ var react_1 = require("react");
2
5
  // This is a custom hook that is used to determine if a user has seen an item in a list or not
3
- export const useHasSeenItem = ({ keyExtractor }) => {
4
- const [viewedItems, setViewedItems] = useState(new Set());
5
- const viewabilityConfig = useRef({
6
+ var useHasSeenItem = function (_a) {
7
+ var keyExtractor = _a.keyExtractor;
8
+ var _b = (0, react_1.useState)(new Set()), viewedItems = _b[0], setViewedItems = _b[1];
9
+ var viewabilityConfig = (0, react_1.useRef)({
6
10
  // Percent of of the item that is visible for a partially occluded item to count as "viewable"
7
11
  itemVisiblePercentThreshold: 20,
8
12
  minimumViewTime: 300,
9
13
  waitForInteraction: false,
10
14
  }).current;
11
- const viewedItemsRef = useRef(new Set()).current;
12
- const onViewableItemsChanged = useRef(({ viewableItems }) => {
13
- viewableItems.forEach(({ item }) => {
15
+ var viewedItemsRef = (0, react_1.useRef)(new Set()).current;
16
+ var onViewableItemsChanged = (0, react_1.useRef)(function (_a) {
17
+ var viewableItems = _a.viewableItems;
18
+ viewableItems.forEach(function (_a) {
19
+ var item = _a.item;
14
20
  viewedItemsRef.add(keyExtractor(item));
15
21
  });
16
22
  setViewedItems(new Set(viewedItemsRef));
17
23
  }).current;
18
- const hasSeenItem = (item) => {
24
+ var hasSeenItem = function (item) {
19
25
  return viewedItems.has(keyExtractor(item));
20
26
  };
21
27
  return {
22
- onViewableItemsChanged,
23
- viewabilityConfig,
24
- hasSeenItem,
25
- viewedItems,
28
+ onViewableItemsChanged: onViewableItemsChanged,
29
+ viewabilityConfig: viewabilityConfig,
30
+ hasSeenItem: hasSeenItem,
31
+ viewedItems: viewedItems,
26
32
  };
27
33
  };
34
+ exports.useHasSeenItem = useHasSeenItem;
@@ -1,117 +1,158 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { createContext, useContext, useEffect, useLayoutEffect, useRef, useState, } from "react";
3
- import { getChildByType, getChildrenByType, getChildrenByTypeDeep, removeChildrenByType, } from "react-nanny";
4
- import { Keyboard, ScrollView, View } from "react-native";
5
- import LinearGradient from "react-native-linear-gradient";
6
- import { useSafeAreaInsets } from "react-native-safe-area-context";
7
- import { Wrap } from "../../utils/Wrap";
8
- import { ArtsyKeyboardAvoidingView } from "../ArtsyKeyboardAvoidingView";
9
- import { BackButton, BackButtonWithBackground } from "../BackButton";
10
- import { Flex } from "../Flex";
11
- import { Spacer } from "../Spacer";
12
- import { Text } from "../Text";
13
- import { Touchable } from "../Touchable";
14
- const ScreenContext = createContext(null);
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.LegacyScreen = exports.FloatingHeader = exports.Header = void 0;
29
+ var jsx_runtime_1 = require("react/jsx-runtime");
30
+ var react_1 = require("react");
31
+ var react_nanny_1 = require("react-nanny");
32
+ var react_native_1 = require("react-native");
33
+ var react_native_linear_gradient_1 = __importDefault(require("react-native-linear-gradient"));
34
+ var react_native_safe_area_context_1 = require("react-native-safe-area-context");
35
+ var Wrap_1 = require("../../utils/Wrap");
36
+ var ArtsyKeyboardAvoidingView_1 = require("../ArtsyKeyboardAvoidingView");
37
+ var BackButton_1 = require("../BackButton");
38
+ var Flex_1 = require("../Flex");
39
+ var Spacer_1 = require("../Spacer");
40
+ var Text_1 = require("../Text");
41
+ var Touchable_1 = require("../Touchable");
42
+ var ScreenContext = (0, react_1.createContext)(null);
15
43
  function useScreenContext() {
16
- const context = useContext(ScreenContext);
44
+ var context = (0, react_1.useContext)(ScreenContext);
17
45
  if (!context) {
18
46
  throw new Error("useScreenContext must be used within a Screen");
19
47
  }
20
48
  return context;
21
49
  }
22
- const ScreenWrapper = ({ children }) => {
23
- const [options, setStateOptions] = useState({
50
+ var ScreenWrapper = function (_a) {
51
+ var children = _a.children;
52
+ var _b = (0, react_1.useState)({
24
53
  handleTopSafeArea: true,
25
54
  bottomViewHeight: 0,
26
- });
27
- return (_jsx(ScreenContext.Provider, { value: {
28
- options,
29
- setOptions: (opts) => setStateOptions((prevOpts) => ({ ...prevOpts, ...opts })),
30
- }, children: _jsx(ScreenRoot, { children: children }) }));
55
+ }), options = _b[0], setStateOptions = _b[1];
56
+ return ((0, jsx_runtime_1.jsx)(ScreenContext.Provider, { value: {
57
+ options: options,
58
+ setOptions: function (opts) { return setStateOptions(function (prevOpts) { return (__assign(__assign({}, prevOpts), opts)); }); },
59
+ }, children: (0, jsx_runtime_1.jsx)(ScreenRoot, { children: children }) }));
31
60
  };
32
- const ScreenRoot = ({ children }) => {
33
- const header = getChildByType(children, LegacyScreen.Header);
34
- const headerFloating = getChildByType(children, LegacyScreen.FloatingHeader);
35
- const background = getChildByType(children, LegacyScreen.Background);
36
- const bodyChildren = getChildrenByTypeDeep(children, LegacyScreen.Body);
37
- return (_jsxs(Flex, { flex: 1, backgroundColor: "mono0", children: [background /* fullscreen */, header, bodyChildren, headerFloating /* floating, so keep close to the bottom */] }));
61
+ var ScreenRoot = function (_a) {
62
+ var children = _a.children;
63
+ var header = (0, react_nanny_1.getChildByType)(children, exports.LegacyScreen.Header);
64
+ var headerFloating = (0, react_nanny_1.getChildByType)(children, exports.LegacyScreen.FloatingHeader);
65
+ var background = (0, react_nanny_1.getChildByType)(children, exports.LegacyScreen.Background);
66
+ var bodyChildren = (0, react_nanny_1.getChildrenByTypeDeep)(children, exports.LegacyScreen.Body);
67
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flex: 1, backgroundColor: "mono0", children: [background /* fullscreen */, header, bodyChildren, headerFloating /* floating, so keep close to the bottom */] }));
38
68
  };
39
- const useUpdateScreenContext = ({ header }) => {
40
- const { setOptions } = useScreenContext();
41
- useEffect(() => void setOptions({ handleTopSafeArea: header === "none" || header === "floating" }),
69
+ var useUpdateScreenContext = function (_a) {
70
+ var header = _a.header;
71
+ var setOptions = useScreenContext().setOptions;
72
+ (0, react_1.useEffect)(function () { return void setOptions({ handleTopSafeArea: header === "none" || header === "floating" }); },
42
73
  // eslint-disable-next-line react-hooks/exhaustive-deps
43
74
  [header]);
44
75
  };
45
- const NAVBAR_HEIGHT = 44;
46
- export const Header = ({ onBack, title, onSkip }) => {
76
+ var NAVBAR_HEIGHT = 44;
77
+ var Header = function (_a) {
78
+ var onBack = _a.onBack, title = _a.title, onSkip = _a.onSkip;
47
79
  useUpdateScreenContext({ header: "regular" });
48
- const insets = useSafeAreaInsets();
49
- return (_jsxs(Flex, { mt: `${insets.top}px`, height: NAVBAR_HEIGHT, flexDirection: "row", alignItems: "center", justifyContent: "space-between", px: SCREEN_HORIZONTAL_PADDING, children: [_jsx(Flex, { children: !!onBack && (_jsx(BackButton, { onPress: onBack, style: { flex: 1, justifyContent: "center" }, hitSlop: { left: 20, right: 20 } })) }), !!title && _jsx(Text, { children: title }), !!onSkip && (_jsx(Touchable, { accessibilityRole: "button", haptic: "impactLight", onPress: onSkip, children: _jsx(Flex, { height: "100%", justifyContent: "center", children: _jsx(Text, { textAlign: "right", variant: "xs", children: "Skip" }) }) }))] }));
80
+ var insets = (0, react_native_safe_area_context_1.useSafeAreaInsets)();
81
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { mt: "".concat(insets.top, "px"), height: NAVBAR_HEIGHT, flexDirection: "row", alignItems: "center", justifyContent: "space-between", px: SCREEN_HORIZONTAL_PADDING, children: [(0, jsx_runtime_1.jsx)(Flex_1.Flex, { children: !!onBack && ((0, jsx_runtime_1.jsx)(BackButton_1.BackButton, { onPress: onBack, style: { flex: 1, justifyContent: "center" }, hitSlop: { left: 20, right: 20 } })) }), !!title && (0, jsx_runtime_1.jsx)(Text_1.Text, { children: title }), !!onSkip && ((0, jsx_runtime_1.jsx)(Touchable_1.Touchable, { accessibilityRole: "button", haptic: "impactLight", onPress: onSkip, children: (0, jsx_runtime_1.jsx)(Flex_1.Flex, { height: "100%", justifyContent: "center", children: (0, jsx_runtime_1.jsx)(Text_1.Text, { textAlign: "right", variant: "xs", children: "Skip" }) }) }))] }));
50
82
  };
83
+ exports.Header = Header;
51
84
  /**
52
85
  * @deprecated Use `Screen.Header` instead.
53
86
  */
54
- export const FloatingHeader = ({ onBack }) => {
87
+ var FloatingHeader = function (_a) {
88
+ var onBack = _a.onBack;
55
89
  useUpdateScreenContext({ header: "floating" });
56
- const insets = useSafeAreaInsets();
90
+ var insets = (0, react_native_safe_area_context_1.useSafeAreaInsets)();
57
91
  if (onBack) {
58
- return (_jsx(Flex, { position: "absolute", top: insets.top, left: 0, right: 0, height: NAVBAR_HEIGHT, px: 1, flexDirection: "row", alignItems: "center", children: _jsx(BackButtonWithBackground, { onPress: onBack }) }));
92
+ return ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { position: "absolute", top: insets.top, left: 0, right: 0, height: NAVBAR_HEIGHT, px: 1, flexDirection: "row", alignItems: "center", children: (0, jsx_runtime_1.jsx)(BackButton_1.BackButtonWithBackground, { onPress: onBack }) }));
59
93
  }
60
94
  return null;
61
95
  };
62
- const SCREEN_HORIZONTAL_PADDING = 2;
63
- const Body = ({ scroll = false, noTopSafe = false, noBottomSafe = false, fullwidth = false, children, ...restFlexProps }) => {
64
- const childrenExceptBottomView = removeChildrenByType(children, LegacyScreen.BottomView);
65
- const bottomView = getChildrenByType(children, LegacyScreen.BottomView);
66
- const { options } = useScreenContext();
67
- const insets = useSafeAreaInsets();
68
- const withTopSafeArea = options.handleTopSafeArea && !noTopSafe;
69
- const withBottomSafeArea = !noBottomSafe;
70
- return (_jsx(_Fragment, { children: _jsx(Flex, { flex: 1, mt: withTopSafeArea ? `${insets.top}px` : undefined, mb: withBottomSafeArea ? `${insets.bottom}px` : undefined, ...restFlexProps, children: _jsx(Wrap, { if: scroll, children: _jsxs(ArtsyKeyboardAvoidingView, { children: [_jsx(ScrollView, { keyboardShouldPersistTaps: "handled", contentInset: { bottom: options.bottomViewHeight - insets.bottom }, children: _jsx(Wrap.Content, { children: _jsx(Flex, { flex: 1, px: fullwidth ? undefined : SCREEN_HORIZONTAL_PADDING, children: childrenExceptBottomView }) }) }), bottomView] }) }) }) }));
96
+ exports.FloatingHeader = FloatingHeader;
97
+ var SCREEN_HORIZONTAL_PADDING = 2;
98
+ var Body = function (_a) {
99
+ var _b = _a.scroll, scroll = _b === void 0 ? false : _b, _c = _a.noTopSafe, noTopSafe = _c === void 0 ? false : _c, _d = _a.noBottomSafe, noBottomSafe = _d === void 0 ? false : _d, _e = _a.fullwidth, fullwidth = _e === void 0 ? false : _e, children = _a.children, restFlexProps = __rest(_a, ["scroll", "noTopSafe", "noBottomSafe", "fullwidth", "children"]);
100
+ var childrenExceptBottomView = (0, react_nanny_1.removeChildrenByType)(children, exports.LegacyScreen.BottomView);
101
+ var bottomView = (0, react_nanny_1.getChildrenByType)(children, exports.LegacyScreen.BottomView);
102
+ var options = useScreenContext().options;
103
+ var insets = (0, react_native_safe_area_context_1.useSafeAreaInsets)();
104
+ var withTopSafeArea = options.handleTopSafeArea && !noTopSafe;
105
+ var withBottomSafeArea = !noBottomSafe;
106
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(Flex_1.Flex, __assign({ flex: 1, mt: withTopSafeArea ? "".concat(insets.top, "px") : undefined, mb: withBottomSafeArea ? "".concat(insets.bottom, "px") : undefined }, restFlexProps, { children: (0, jsx_runtime_1.jsx)(Wrap_1.Wrap, { if: scroll, children: (0, jsx_runtime_1.jsxs)(ArtsyKeyboardAvoidingView_1.ArtsyKeyboardAvoidingView, { children: [(0, jsx_runtime_1.jsx)(react_native_1.ScrollView, { keyboardShouldPersistTaps: "handled", contentInset: { bottom: options.bottomViewHeight - insets.bottom }, children: (0, jsx_runtime_1.jsx)(Wrap_1.Wrap.Content, { children: (0, jsx_runtime_1.jsx)(Flex_1.Flex, { flex: 1, px: fullwidth ? undefined : SCREEN_HORIZONTAL_PADDING, children: childrenExceptBottomView }) }) }), bottomView] }) }) })) }));
107
+ };
108
+ var Background = function (_a) {
109
+ var children = _a.children;
110
+ return ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { position: "absolute", top: 0, bottom: 0, left: 0, right: 0, children: children }));
71
111
  };
72
- const Background = ({ children }) => (_jsx(Flex, { position: "absolute", top: 0, bottom: 0, left: 0, right: 0, children: children }));
73
- const BottomView = ({ children }) => {
74
- const { setOptions } = useScreenContext();
75
- const insets = useSafeAreaInsets();
76
- const containerRef = useRef(null);
77
- const [keyboardShowing, setKeyboardShowing] = useState(false);
78
- const [keyboardHeight, setKeyboardHeight] = useState(0);
79
- useLayoutEffect(() => {
80
- containerRef.current?.measureInWindow((_x, _y, _width, height) => {
112
+ var BottomView = function (_a) {
113
+ var children = _a.children;
114
+ var setOptions = useScreenContext().setOptions;
115
+ var insets = (0, react_native_safe_area_context_1.useSafeAreaInsets)();
116
+ var containerRef = (0, react_1.useRef)(null);
117
+ var _b = (0, react_1.useState)(false), keyboardShowing = _b[0], setKeyboardShowing = _b[1];
118
+ var _c = (0, react_1.useState)(0), keyboardHeight = _c[0], setKeyboardHeight = _c[1];
119
+ (0, react_1.useLayoutEffect)(function () {
120
+ var _a;
121
+ (_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.measureInWindow(function (_x, _y, _width, height) {
81
122
  if (height > 0) {
82
123
  setOptions({ bottomViewHeight: height });
83
124
  }
84
125
  });
85
126
  }, [setOptions]);
86
- useEffect(() => {
87
- const listeners = [];
88
- listeners.push(Keyboard.addListener("keyboardWillShow", // ios only event
89
- (e) => {
127
+ (0, react_1.useEffect)(function () {
128
+ var listeners = [];
129
+ listeners.push(react_native_1.Keyboard.addListener("keyboardWillShow", // ios only event
130
+ function (e) {
90
131
  setKeyboardHeight(e.endCoordinates.height);
91
132
  setKeyboardShowing(true);
92
133
  }));
93
- listeners.push(Keyboard.addListener("keyboardDidShow", // android event
94
- (e) => {
134
+ listeners.push(react_native_1.Keyboard.addListener("keyboardDidShow", // android event
135
+ function (e) {
95
136
  setKeyboardHeight(e.endCoordinates.height);
96
137
  setKeyboardShowing(true);
97
138
  }));
98
- listeners.push(Keyboard.addListener("keyboardWillHide", // ios only event
99
- () => setKeyboardShowing(false)));
100
- listeners.push(Keyboard.addListener("keyboardDidHide", // android event
101
- () => setKeyboardShowing(false)));
102
- return () => {
103
- listeners.map((l) => l.remove());
139
+ listeners.push(react_native_1.Keyboard.addListener("keyboardWillHide", // ios only event
140
+ function () { return setKeyboardShowing(false); }));
141
+ listeners.push(react_native_1.Keyboard.addListener("keyboardDidHide", // android event
142
+ function () { return setKeyboardShowing(false); }));
143
+ return function () {
144
+ listeners.map(function (l) { return l.remove(); });
104
145
  };
105
146
  }, []);
106
- return (_jsxs(View, { ref: containerRef, style: {
147
+ return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { ref: containerRef, style: {
107
148
  position: "absolute",
108
149
  bottom: keyboardShowing ? keyboardHeight - insets.bottom : 0,
109
150
  left: 0,
110
151
  right: 0,
111
- }, children: [_jsx(LinearGradient, { colors: ["rgba(255,255,255,0)", "rgba(255,255,255,1)"], start: { x: 0, y: 0 }, end: { x: 0, y: 1 }, style: {
152
+ }, children: [(0, jsx_runtime_1.jsx)(react_native_linear_gradient_1.default, { colors: ["rgba(255,255,255,0)", "rgba(255,255,255,1)"], start: { x: 0, y: 0 }, end: { x: 0, y: 1 }, style: {
112
153
  width: "100%",
113
154
  height: 30,
114
- }, pointerEvents: "none" }), _jsx(Flex, { px: SCREEN_HORIZONTAL_PADDING, py: keyboardShowing ? 1 : undefined, backgroundColor: "mono0", children: children }), keyboardShowing ? null : _jsx(SafeBottomPadding, {})] }));
155
+ }, pointerEvents: "none" }), (0, jsx_runtime_1.jsx)(Flex_1.Flex, { px: SCREEN_HORIZONTAL_PADDING, py: keyboardShowing ? 1 : undefined, backgroundColor: "mono0", children: children }), keyboardShowing ? null : (0, jsx_runtime_1.jsx)(SafeBottomPadding, {})] }));
115
156
  };
116
157
  /**
117
158
  * Only use with `<Screen.Body fullwidth>`.
@@ -119,7 +160,7 @@ const BottomView = ({ children }) => {
119
160
  * One use case might be if you need to put an image background or something in the body,
120
161
  * but you also need some content with the right padding.
121
162
  */
122
- const BodyXPadding = (props) => (_jsx(Flex, { px: SCREEN_HORIZONTAL_PADDING, ...props }));
163
+ var BodyXPadding = function (props) { return ((0, jsx_runtime_1.jsx)(Flex_1.Flex, __assign({ px: SCREEN_HORIZONTAL_PADDING }, props))); };
123
164
  /**
124
165
  * If there is a bottom safe area, this will render nothing.
125
166
  * If there is no bottom safe area, this will render a small padding.
@@ -127,19 +168,19 @@ const BodyXPadding = (props) => (_jsx(Flex, { px: SCREEN_HORIZONTAL_PADDING, ...
127
168
  * This is useful for texts/buttons that are at the bottom, and with safe area they seem like they
128
169
  * have enough space underneath, but with no safe area they look stuck at the bottom.
129
170
  */
130
- const SafeBottomPadding = () => {
131
- const insets = useSafeAreaInsets();
171
+ var SafeBottomPadding = function () {
172
+ var insets = (0, react_native_safe_area_context_1.useSafeAreaInsets)();
132
173
  if (insets.bottom > 0) {
133
174
  return null;
134
175
  }
135
- return _jsx(Spacer, { y: 2 });
176
+ return (0, jsx_runtime_1.jsx)(Spacer_1.Spacer, { y: 2 });
136
177
  };
137
- export const LegacyScreen = Object.assign(ScreenWrapper, {
138
- Body,
139
- Header,
140
- FloatingHeader,
141
- Background,
142
- BottomView,
143
- BodyXPadding,
144
- SafeBottomPadding,
178
+ exports.LegacyScreen = Object.assign(ScreenWrapper, {
179
+ Body: Body,
180
+ Header: exports.Header,
181
+ FloatingHeader: exports.FloatingHeader,
182
+ Background: Background,
183
+ BottomView: BottomView,
184
+ BodyXPadding: BodyXPadding,
185
+ SafeBottomPadding: SafeBottomPadding,
145
186
  });
@@ -1 +1,17 @@
1
- export * from "./LegacyScreen";
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./LegacyScreen"), exports);
@@ -1,22 +1,28 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useState } from "react";
3
- import { TabBarContainer } from "./TabBarContainer";
4
- import { Tab } from "../LegacyTabs";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContentTabs = void 0;
4
+ var jsx_runtime_1 = require("react/jsx-runtime");
5
+ var react_1 = require("react");
6
+ var TabBarContainer_1 = require("./TabBarContainer");
7
+ var LegacyTabs_1 = require("../LegacyTabs");
5
8
  /**
6
9
  * Renders a scrollable list of tabs. Tabs are not evenly spaced across screen
7
10
  */
8
- export const ContentTabs = ({ onTabPress, activeTab, tabs }) => {
9
- const [tabLayouts, setTabLayouts] = useState(tabs.map(() => null));
10
- return (_jsx(TabBarContainer, { scrollEnabled: true, activeTabIndex: activeTab, tabLayouts: tabLayouts, children: tabs.map(({ label }, index) => {
11
- return (_jsx(Tab, { label: label, active: index === activeTab, onLayout: (e) => {
12
- const layout = e.nativeEvent.layout;
13
- setTabLayouts((layouts) => {
14
- const result = layouts.slice(0);
11
+ var ContentTabs = function (_a) {
12
+ var onTabPress = _a.onTabPress, activeTab = _a.activeTab, tabs = _a.tabs;
13
+ var _b = (0, react_1.useState)(tabs.map(function () { return null; })), tabLayouts = _b[0], setTabLayouts = _b[1];
14
+ return ((0, jsx_runtime_1.jsx)(TabBarContainer_1.TabBarContainer, { scrollEnabled: true, activeTabIndex: activeTab, tabLayouts: tabLayouts, children: tabs.map(function (_a, index) {
15
+ var label = _a.label;
16
+ return ((0, jsx_runtime_1.jsx)(LegacyTabs_1.Tab, { label: label, active: index === activeTab, onLayout: function (e) {
17
+ var layout = e.nativeEvent.layout;
18
+ setTabLayouts(function (layouts) {
19
+ var result = layouts.slice(0);
15
20
  result[index] = layout;
16
21
  return result;
17
22
  });
18
- }, onPress: () => {
23
+ }, onPress: function () {
19
24
  onTabPress(label, index);
20
25
  } }, index));
21
26
  }) }));
22
27
  };
28
+ exports.ContentTabs = ContentTabs;
@@ -1,25 +1,31 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useState } from "react";
3
- import { TabBarContainer } from "./TabBarContainer";
4
- import { useScreenDimensions } from "../../utils/hooks/useScreenDimensions";
5
- import { Box } from "../Box";
6
- import { Tab } from "../LegacyTabs";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NavigationalTabs = void 0;
4
+ var jsx_runtime_1 = require("react/jsx-runtime");
5
+ var react_1 = require("react");
6
+ var TabBarContainer_1 = require("./TabBarContainer");
7
+ var useScreenDimensions_1 = require("../../utils/hooks/useScreenDimensions");
8
+ var Box_1 = require("../Box");
9
+ var LegacyTabs_1 = require("../LegacyTabs");
7
10
  /**
8
11
  * Renders a list of tabs. Evenly-spaces them across the screen with
9
12
  * each tab label centered on the tab
10
13
  */
11
- export const NavigationalTabs = ({ onTabPress, activeTab, tabs }) => {
12
- const [tabLayouts, setTabLayouts] = useState(tabs.map(() => null));
13
- const screenWidth = useScreenDimensions().width;
14
- const tabWidth = screenWidth / tabs.length;
15
- return (_jsx(TabBarContainer, { scrollEnabled: true, activeTabIndex: activeTab, tabLayouts: tabLayouts, children: tabs.map(({ label, superscript }, index) => {
16
- return (_jsx(Box, { minWidth: tabWidth, children: _jsx(Tab, { label: label, superscript: superscript, onPress: () => onTabPress(label, index), active: activeTab === index, onLayout: (e) => {
17
- const layout = e.nativeEvent.layout;
18
- setTabLayouts((layouts) => {
19
- const result = layouts.slice(0);
14
+ var NavigationalTabs = function (_a) {
15
+ var onTabPress = _a.onTabPress, activeTab = _a.activeTab, tabs = _a.tabs;
16
+ var _b = (0, react_1.useState)(tabs.map(function () { return null; })), tabLayouts = _b[0], setTabLayouts = _b[1];
17
+ var screenWidth = (0, useScreenDimensions_1.useScreenDimensions)().width;
18
+ var tabWidth = screenWidth / tabs.length;
19
+ return ((0, jsx_runtime_1.jsx)(TabBarContainer_1.TabBarContainer, { scrollEnabled: true, activeTabIndex: activeTab, tabLayouts: tabLayouts, children: tabs.map(function (_a, index) {
20
+ var label = _a.label, superscript = _a.superscript;
21
+ return ((0, jsx_runtime_1.jsx)(Box_1.Box, { minWidth: tabWidth, children: (0, jsx_runtime_1.jsx)(LegacyTabs_1.Tab, { label: label, superscript: superscript, onPress: function () { return onTabPress(label, index); }, active: activeTab === index, onLayout: function (e) {
22
+ var layout = e.nativeEvent.layout;
23
+ setTabLayouts(function (layouts) {
24
+ var result = layouts.slice(0);
20
25
  result[index] = layout;
21
26
  return result;
22
27
  });
23
28
  } }) }, label + index));
24
29
  }) }));
25
30
  };
31
+ exports.NavigationalTabs = NavigationalTabs;
@@ -1,34 +1,40 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { CheckmarkIcon, ChevronSmallRightIcon } from "@artsy/icons/native";
3
- import { useState } from "react";
4
- import { TouchableOpacity } from "react-native";
5
- import { TabBarContainer } from "./TabBarContainer";
6
- import { useScreenDimensions } from "../../utils/hooks/useScreenDimensions";
7
- import { Box } from "../Box";
8
- import { Tab } from "../LegacyTabs";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StepTabs = void 0;
4
+ var jsx_runtime_1 = require("react/jsx-runtime");
5
+ var native_1 = require("@artsy/icons/native");
6
+ var react_1 = require("react");
7
+ var react_native_1 = require("react-native");
8
+ var TabBarContainer_1 = require("./TabBarContainer");
9
+ var useScreenDimensions_1 = require("../../utils/hooks/useScreenDimensions");
10
+ var Box_1 = require("../Box");
11
+ var LegacyTabs_1 = require("../LegacyTabs");
9
12
  /**
10
13
  * Renders a list of tabs. Evenly-spaces them across the screen with
11
14
  * each tab label and chevron evenly spaced
12
15
  */
13
- export const StepTabs = ({ onTabPress, activeTab, tabs }) => {
14
- const [tabLayouts, setTabLayouts] = useState(tabs.map(() => null));
15
- const tabWidth = useScreenDimensions().width / tabs.length;
16
- const onTabSelect = (label, index) => {
16
+ var StepTabs = function (_a) {
17
+ var onTabPress = _a.onTabPress, activeTab = _a.activeTab, tabs = _a.tabs;
18
+ var _b = (0, react_1.useState)(tabs.map(function () { return null; })), tabLayouts = _b[0], setTabLayouts = _b[1];
19
+ var tabWidth = (0, useScreenDimensions_1.useScreenDimensions)().width / tabs.length;
20
+ var onTabSelect = function (label, index) {
17
21
  if (index > 0 && !tabs[index - 1].completed) {
18
22
  return;
19
23
  }
20
24
  onTabPress(label, index);
21
25
  };
22
- return (_jsx(TabBarContainer, { scrollEnabled: false, activeTabIndex: activeTab, tabLayouts: tabLayouts, children: tabs.map(({ label, completed }, index) => {
23
- return (_jsx(TouchableOpacity, { accessibilityRole: "button", onPress: () => onTabSelect(label, index), children: _jsxs(Box, { width: tabWidth, justifyContent: "space-between", flexDirection: "row", alignItems: "center", onLayout: (e) => {
24
- const layout = e.nativeEvent.layout;
25
- setTabLayouts((layouts) => {
26
- const result = layouts.slice(0);
26
+ return ((0, jsx_runtime_1.jsx)(TabBarContainer_1.TabBarContainer, { scrollEnabled: false, activeTabIndex: activeTab, tabLayouts: tabLayouts, children: tabs.map(function (_a, index) {
27
+ var label = _a.label, completed = _a.completed;
28
+ return ((0, jsx_runtime_1.jsx)(react_native_1.TouchableOpacity, { accessibilityRole: "button", onPress: function () { return onTabSelect(label, index); }, children: (0, jsx_runtime_1.jsxs)(Box_1.Box, { width: tabWidth, justifyContent: "space-between", flexDirection: "row", alignItems: "center", onLayout: function (e) {
29
+ var layout = e.nativeEvent.layout;
30
+ setTabLayouts(function (layouts) {
31
+ var result = layouts.slice(0);
27
32
  result[index] = layout;
28
33
  return result;
29
34
  });
30
- }, children: [_jsxs(Box, { flexDirection: "row", alignItems: "center", children: [_jsx(Tab, { label: label, onPress: () => onTabSelect(label, index), active: activeTab === index, style: { paddingHorizontal: 0, paddingLeft: 8, paddingRight: 5 }, onLayout: () => {
35
+ }, children: [(0, jsx_runtime_1.jsxs)(Box_1.Box, { flexDirection: "row", alignItems: "center", children: [(0, jsx_runtime_1.jsx)(LegacyTabs_1.Tab, { label: label, onPress: function () { return onTabSelect(label, index); }, active: activeTab === index, style: { paddingHorizontal: 0, paddingLeft: 8, paddingRight: 5 }, onLayout: function () {
31
36
  // noop
32
- } }), !!completed && _jsx(CheckmarkIcon, { fill: "green100", height: 15, width: 15 })] }), _jsx(ChevronSmallRightIcon, { fill: "mono60", height: 10, width: 10 })] }) }, label + index));
37
+ } }), !!completed && (0, jsx_runtime_1.jsx)(native_1.CheckmarkIcon, { fill: "green100", height: 15, width: 15 })] }), (0, jsx_runtime_1.jsx)(native_1.ChevronSmallRightIcon, { fill: "mono60", height: 10, width: 10 })] }) }, label + index));
33
38
  }) }));
34
39
  };
40
+ exports.StepTabs = StepTabs;
@@ -1,20 +1,32 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Pressable, View } from "react-native";
3
- import { useColor } from "../../utils/hooks";
4
- import { Text } from "../Text";
5
- export const TabV3 = ({ label, superscript, active, onLayout, onPress, style }) => {
6
- const color = useColor();
7
- return (_jsx(Pressable, { accessibilityRole: "button", onPress: onPress, children: ({ pressed }) => (_jsxs(View, { onLayout: onLayout, style: {
8
- alignItems: "center",
9
- justifyContent: "center",
10
- paddingHorizontal: 15,
11
- paddingVertical: 10,
12
- flexDirection: "row",
13
- ...style,
14
- }, children: [_jsx(Text, { fontSize: 16, color: active ? color("mono100") : pressed ? color("blue100") : color("mono60"), style: {
15
- textDecorationLine: pressed ? "underline" : "none",
16
- }, children: label }), !!superscript && (_jsx(Text, { fontSize: 12, color: color("blue100"), style: {
17
- textDecorationLine: pressed ? "underline" : "none",
18
- top: -3,
19
- }, children: superscript }))] })) }));
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
20
12
  };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.TabV3 = void 0;
15
+ var jsx_runtime_1 = require("react/jsx-runtime");
16
+ var react_native_1 = require("react-native");
17
+ var hooks_1 = require("../../utils/hooks");
18
+ var Text_1 = require("../Text");
19
+ var TabV3 = function (_a) {
20
+ var label = _a.label, superscript = _a.superscript, active = _a.active, onLayout = _a.onLayout, onPress = _a.onPress, style = _a.style;
21
+ var color = (0, hooks_1.useColor)();
22
+ return ((0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityRole: "button", onPress: onPress, children: function (_a) {
23
+ var pressed = _a.pressed;
24
+ return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { onLayout: onLayout, style: __assign({ alignItems: "center", justifyContent: "center", paddingHorizontal: 15, paddingVertical: 10, flexDirection: "row" }, style), children: [(0, jsx_runtime_1.jsx)(Text_1.Text, { fontSize: 16, color: active ? color("mono100") : pressed ? color("blue100") : color("mono60"), style: {
25
+ textDecorationLine: pressed ? "underline" : "none",
26
+ }, children: label }), !!superscript && ((0, jsx_runtime_1.jsx)(Text_1.Text, { fontSize: 12, color: color("blue100"), style: {
27
+ textDecorationLine: pressed ? "underline" : "none",
28
+ top: -3,
29
+ }, children: superscript }))] }));
30
+ } }));
31
+ };
32
+ exports.TabV3 = TabV3;