@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.
- package/dist/Theme.js +16 -11
- package/dist/animation/CssTransition.js +71 -26
- package/dist/animation/index.js +17 -1
- package/dist/constants.js +12 -8
- package/dist/elements/ArtsyKeyboardAvoidingView/ArtsyKeyboardAvoidingView.js +116 -69
- package/dist/elements/ArtsyKeyboardAvoidingView/index.js +17 -1
- package/dist/elements/Autocomplete/Autocomplete.js +32 -23
- package/dist/elements/Autocomplete/Autocomplete.tests.js +128 -56
- package/dist/elements/Autocomplete/index.js +17 -1
- package/dist/elements/Avatar/Avatar.js +20 -15
- package/dist/elements/Avatar/Avatar.stories.js +29 -15
- package/dist/elements/Avatar/Avatar.tests.js +12 -10
- package/dist/elements/Avatar/index.js +17 -1
- package/dist/elements/BackButton/BackButton.js +16 -9
- package/dist/elements/BackButton/BackButton.stories.js +12 -8
- package/dist/elements/BackButton/index.js +17 -1
- package/dist/elements/Banner/Banner.js +45 -18
- package/dist/elements/Banner/Banner.stories.js +12 -8
- package/dist/elements/Banner/index.js +17 -1
- package/dist/elements/BorderBox/BorderBox.js +16 -11
- package/dist/elements/BorderBox/index.js +17 -1
- package/dist/elements/Box/Box.js +16 -14
- package/dist/elements/Box/Box.stories.js +21 -15
- package/dist/elements/Box/index.js +17 -1
- package/dist/elements/Button/Button.js +85 -64
- package/dist/elements/Button/Button.stories.js +48 -23
- package/dist/elements/Button/CTAButton.js +18 -3
- package/dist/elements/Button/FollowButton.js +38 -11
- package/dist/elements/Button/LinkButton.js +19 -4
- package/dist/elements/Button/colors.js +7 -3
- package/dist/elements/Button/index.js +20 -4
- package/dist/elements/ButtonNew/Button.js +114 -49
- package/dist/elements/ButtonNew/Button.stories.js +64 -38
- package/dist/elements/ButtonNew/Button.tests.js +23 -21
- package/dist/elements/ButtonNew/CTAButton.js +18 -3
- package/dist/elements/ButtonNew/FollowButton.js +36 -9
- package/dist/elements/ButtonNew/LinkButton.js +19 -4
- package/dist/elements/ButtonNew/colors.js +7 -3
- package/dist/elements/ButtonNew/index.js +20 -4
- package/dist/elements/Checkbox/Check.js +83 -46
- package/dist/elements/Checkbox/Checkbox.js +83 -47
- package/dist/elements/Checkbox/Checkbox.stories.js +10 -9
- package/dist/elements/Checkbox/index.js +18 -2
- package/dist/elements/Chip/Chip.js +23 -18
- package/dist/elements/Chip/Chip.stories.js +12 -8
- package/dist/elements/Chip/index.js +17 -1
- package/dist/elements/ClassTheme/ClassTheme.js +10 -5
- package/dist/elements/ClassTheme/index.js +17 -1
- package/dist/elements/Collapse/Collapse.js +9 -4
- package/dist/elements/Collapse/Collapse.stories.js +13 -9
- package/dist/elements/Collapse/index.js +17 -1
- package/dist/elements/CollapsibleMenuItem/CollapsibleMenuItem.js +32 -27
- package/dist/elements/CollapsibleMenuItem/CollapsibleMenuItem.stories.js +62 -37
- package/dist/elements/CollapsibleMenuItem/index.js +17 -1
- package/dist/elements/Dialog/Dialog.js +52 -26
- package/dist/elements/Dialog/Dialog.stories.js +41 -22
- package/dist/elements/Dialog/Dialog.tests.js +33 -31
- package/dist/elements/Dialog/index.js +17 -1
- package/dist/elements/EntityHeader/EntityHeader.js +42 -15
- package/dist/elements/EntityHeader/EntityHeader.stories.js +26 -18
- package/dist/elements/EntityHeader/index.js +17 -1
- package/dist/elements/Flex/Flex.js +32 -4
- package/dist/elements/Flex/index.js +17 -1
- package/dist/elements/Header/ArtsyLogoHeader.js +15 -8
- package/dist/elements/Header/index.js +17 -1
- package/dist/elements/Histogram/Histogram.js +19 -14
- package/dist/elements/Histogram/index.js +17 -1
- package/dist/elements/Image/Image.js +60 -28
- package/dist/elements/Image/Image.stories.js +35 -23
- package/dist/elements/Image/__tests__/getImageURL.tests.js +10 -8
- package/dist/elements/Image/helpers/getImageURL.js +13 -8
- package/dist/elements/Image/index.js +17 -1
- package/dist/elements/Input/Input.js +216 -168
- package/dist/elements/Input/Input.stories.js +15 -11
- package/dist/elements/Input/Input.tests.js +85 -39
- package/dist/elements/Input/InputTitle.js +9 -4
- package/dist/elements/Input/helpers.js +35 -27
- package/dist/elements/Input/index.js +19 -3
- package/dist/elements/Input/maskValue.js +25 -9
- package/dist/elements/Input/maskValue.tests.js +19 -17
- package/dist/elements/Join/Join.js +14 -9
- package/dist/elements/Join/index.js +17 -1
- package/dist/elements/LazyFlatlist/LazyFlatlist.js +11 -8
- package/dist/elements/LazyFlatlist/index.js +18 -2
- package/dist/elements/LazyFlatlist/useHasSeenItem.js +19 -12
- package/dist/elements/LegacyScreen/LegacyScreen.js +124 -83
- package/dist/elements/LegacyScreen/index.js +17 -1
- package/dist/elements/LegacyTabs/ContentTabs.js +18 -12
- package/dist/elements/LegacyTabs/NavigationalTabs.js +21 -15
- package/dist/elements/LegacyTabs/StepTabs.js +25 -19
- package/dist/elements/LegacyTabs/Tab.js +31 -19
- package/dist/elements/LegacyTabs/TabBarContainer.js +48 -39
- package/dist/elements/LegacyTabs/index.js +38 -9
- package/dist/elements/List/BulletedItem.js +34 -7
- package/dist/elements/List/List.stories.js +12 -8
- package/dist/elements/List/index.js +17 -1
- package/dist/elements/MeasuredView/MeasuredView.js +18 -12
- package/dist/elements/MeasuredView/index.js +17 -1
- package/dist/elements/MenuItem/MenuItem.js +14 -9
- package/dist/elements/MenuItem/MenuItem.stories.js +9 -5
- package/dist/elements/MenuItem/index.js +17 -1
- package/dist/elements/Message/Message.js +35 -19
- package/dist/elements/Message/Message.stories.d.ts +1 -1
- package/dist/elements/Message/Message.stories.js +23 -17
- package/dist/elements/Message/Message.tests.js +38 -36
- package/dist/elements/Message/index.js +17 -1
- package/dist/elements/Pill/Pill.js +116 -138
- package/dist/elements/Pill/Pill.stories.js +28 -20
- package/dist/elements/Pill/Pill.tests.js +15 -13
- package/dist/elements/Pill/index.js +17 -1
- package/dist/elements/PopIn/PopIn.js +13 -8
- package/dist/elements/PopIn/index.js +17 -1
- package/dist/elements/Popover/Popover.js +45 -15
- package/dist/elements/Popover/Popover.stories.js +25 -19
- package/dist/elements/Popover/index.js +17 -1
- package/dist/elements/ProgressBar/ProgressBar.js +68 -23
- package/dist/elements/ProgressBar/ProgressBar.stories.js +11 -7
- package/dist/elements/ProgressBar/ProgressBar.tests.js +48 -23
- package/dist/elements/ProgressBar/index.js +17 -1
- package/dist/elements/Radio/RadioButton.js +80 -44
- package/dist/elements/Radio/RadioButton.stories.js +17 -13
- package/dist/elements/Radio/RadioDot.js +31 -15
- package/dist/elements/Radio/index.js +7 -2
- package/dist/elements/Screen/Background.js +10 -3
- package/dist/elements/Screen/Body.js +37 -10
- package/dist/elements/Screen/BottomView.js +17 -9
- package/dist/elements/Screen/FloatingHeader.js +36 -9
- package/dist/elements/Screen/FullWidthDivider.js +20 -5
- package/dist/elements/Screen/FullWidthItem.js +20 -5
- package/dist/elements/Screen/Header.js +79 -26
- package/dist/elements/Screen/Screen.stories.js +46 -30
- package/dist/elements/Screen/ScreenBase.js +39 -11
- package/dist/elements/Screen/ScreenFlatList.js +26 -9
- package/dist/elements/Screen/ScreenScrollContext.js +21 -15
- package/dist/elements/Screen/ScreenScrollView.js +27 -9
- package/dist/elements/Screen/StickySubHeader.js +62 -23
- package/dist/elements/Screen/constants.js +8 -5
- package/dist/elements/Screen/hooks/useListenForScreenScroll.js +13 -9
- package/dist/elements/Screen/hooks/useShowLargeTitle.js +19 -14
- package/dist/elements/Screen/hooks/useTitleStyles.js +14 -10
- package/dist/elements/Screen/index.js +48 -31
- package/dist/elements/SearchInput/RoundSearchInput.js +79 -46
- package/dist/elements/SearchInput/SearchInput.js +43 -14
- package/dist/elements/SearchInput/index.js +18 -2
- package/dist/elements/Separator/Separator.js +20 -12
- package/dist/elements/Separator/Separator.stories.js +10 -6
- package/dist/elements/Separator/ShadowSeparator.js +14 -7
- package/dist/elements/Separator/index.js +18 -2
- package/dist/elements/SimpleMessage/SimpleMessage.js +47 -11
- package/dist/elements/SimpleMessage/index.js +17 -1
- package/dist/elements/Skeleton/Skeleton.js +50 -19
- package/dist/elements/Skeleton/Skeleton.stories.js +14 -10
- package/dist/elements/Skeleton/index.js +17 -1
- package/dist/elements/Spacer/Spacer.js +32 -3
- package/dist/elements/Spacer/Spacer.stories.js +35 -19
- package/dist/elements/Spacer/index.js +17 -1
- package/dist/elements/Spinner/Spinner.js +62 -33
- package/dist/elements/Spinner/index.js +17 -1
- package/dist/elements/Switch/Switch.js +50 -17
- package/dist/elements/Switch/Switch.stories.js +31 -14
- package/dist/elements/Switch/index.js +17 -1
- package/dist/elements/Tabs/SubTabBar.js +29 -20
- package/dist/elements/Tabs/TabFlashList.js +24 -12
- package/dist/elements/Tabs/TabFlatList.js +24 -12
- package/dist/elements/Tabs/TabMasonry.js +24 -12
- package/dist/elements/Tabs/TabScrollView.js +27 -14
- package/dist/elements/Tabs/Tabs.js +27 -24
- package/dist/elements/Tabs/Tabs.stories.js +93 -46
- package/dist/elements/Tabs/TabsContainer.js +62 -38
- package/dist/elements/Tabs/TabsWithHeader.js +41 -13
- package/dist/elements/Tabs/hooks/useListenForTabContentScroll.js +13 -9
- package/dist/elements/Tabs/index.js +17 -1
- package/dist/elements/Text/LinkText.js +32 -3
- package/dist/elements/Text/Text.js +61 -23
- package/dist/elements/Text/Text.stories.js +37 -28
- package/dist/elements/Text/Text.tests.js +7 -5
- package/dist/elements/Text/helpers.js +13 -7
- package/dist/elements/Text/index.js +19 -3
- package/dist/elements/ToolTip/ToolTip.js +67 -53
- package/dist/elements/ToolTip/ToolTip.stories.js +21 -14
- package/dist/elements/ToolTip/ToolTip.tests.js +15 -13
- package/dist/elements/ToolTip/ToolTipFlyout.js +68 -28
- package/dist/elements/ToolTip/index.js +17 -1
- package/dist/elements/Touchable/Touchable.js +41 -13
- package/dist/elements/Touchable/Touchable.stories.js +13 -9
- package/dist/elements/Touchable/TouchableHighlightColor.js +38 -12
- package/dist/elements/Touchable/TouchableWithScale.js +38 -11
- package/dist/elements/Touchable/index.js +19 -3
- package/dist/elements/VisualClue/VisualClue.stories.js +11 -7
- package/dist/elements/VisualClue/VisualClueDot.js +24 -14
- package/dist/elements/VisualClue/VisualClueText.js +26 -15
- package/dist/elements/VisualClue/index.js +18 -2
- package/dist/elements/index.js +62 -46
- package/dist/index.js +24 -8
- package/dist/setupJest.js +11 -6
- package/dist/storybook/decorators.js +36 -27
- package/dist/storybook/helpers.js +40 -22
- package/dist/tokens.js +28 -67
- package/dist/types.js +10 -5
- package/dist/utils/Wrap.js +16 -8
- package/dist/utils/colors.stories.js +31 -25
- package/dist/utils/createGeminiUrl.js +28 -22
- package/dist/utils/flattenChildren.js +20 -7
- package/dist/utils/formatLargeNumber.js +8 -4
- package/dist/utils/formatLargeNumbers.tests.js +15 -13
- package/dist/utils/hooks/index.js +20 -4
- package/dist/utils/hooks/useColor.js +6 -2
- package/dist/utils/hooks/useMeasure.js +40 -14
- package/dist/utils/hooks/useScreenDimensions.js +31 -20
- package/dist/utils/hooks/useSpace.js +6 -2
- package/dist/utils/hooks/useTheme.js +31 -23
- package/dist/utils/normalizeText.js +11 -6
- package/dist/utils/space.stories.js +15 -10
- package/dist/utils/tests/flattenChildren.tests.js +8 -6
- package/dist/utils/tests/isTestEnvironment.js +5 -1
- package/dist/utils/tests/renderWithWrappers.js +15 -7
- package/dist/utils/text.js +13 -9
- package/dist/utils/types.js +2 -0
- package/dist/utils/webTokensToMobile.js +16 -10
- package/package.json +30 -36
|
@@ -1,2 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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
|
-
|
|
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
viewableItems
|
|
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
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
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
|
-
|
|
23
|
-
|
|
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 (
|
|
28
|
-
options,
|
|
29
|
-
setOptions: (opts)
|
|
30
|
-
}, 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
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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
|
-
|
|
46
|
-
|
|
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
|
-
|
|
49
|
-
return (
|
|
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
|
-
|
|
87
|
+
var FloatingHeader = function (_a) {
|
|
88
|
+
var onBack = _a.onBack;
|
|
55
89
|
useUpdateScreenContext({ header: "floating" });
|
|
56
|
-
|
|
90
|
+
var insets = (0, react_native_safe_area_context_1.useSafeAreaInsets)();
|
|
57
91
|
if (onBack) {
|
|
58
|
-
return (
|
|
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
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
useLayoutEffect(()
|
|
80
|
-
|
|
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
|
-
|
|
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
|
-
()
|
|
100
|
-
listeners.push(Keyboard.addListener("keyboardDidHide", // android event
|
|
101
|
-
()
|
|
102
|
-
return ()
|
|
103
|
-
listeners.map((l)
|
|
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 (
|
|
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: [
|
|
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" }),
|
|
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
|
-
|
|
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
|
-
|
|
131
|
-
|
|
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
|
|
176
|
+
return (0, jsx_runtime_1.jsx)(Spacer_1.Spacer, { y: 2 });
|
|
136
177
|
};
|
|
137
|
-
|
|
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
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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 (
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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: [
|
|
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 &&
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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;
|