@storybook/react-native 6.5.3 → 6.5.4

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 (35) hide show
  1. package/dist/constants.js +4 -1
  2. package/dist/hooks.js +75 -36
  3. package/dist/index.js +40 -18
  4. package/dist/preview/View.js +165 -88
  5. package/dist/preview/components/OnDeviceUI/OnDeviceUI.js +127 -81
  6. package/dist/preview/components/OnDeviceUI/Panel.js +24 -15
  7. package/dist/preview/components/OnDeviceUI/absolute-positioned-keyboard-aware-view.js +17 -10
  8. package/dist/preview/components/OnDeviceUI/addons/Addons.js +32 -23
  9. package/dist/preview/components/OnDeviceUI/addons/AddonsSkeleton.js +69 -41
  10. package/dist/preview/components/OnDeviceUI/addons/List.js +15 -9
  11. package/dist/preview/components/OnDeviceUI/addons/Wrapper.js +27 -18
  12. package/dist/preview/components/OnDeviceUI/addons/index.js +8 -1
  13. package/dist/preview/components/OnDeviceUI/animation.js +37 -29
  14. package/dist/preview/components/OnDeviceUI/index.js +8 -1
  15. package/dist/preview/components/OnDeviceUI/navigation/Navigation.js +31 -24
  16. package/dist/preview/components/OnDeviceUI/navigation/NavigationBar.js +26 -14
  17. package/dist/preview/components/OnDeviceUI/navigation/NavigationButton.js +26 -17
  18. package/dist/preview/components/OnDeviceUI/navigation/constants.js +6 -3
  19. package/dist/preview/components/OnDeviceUI/navigation/index.js +8 -1
  20. package/dist/preview/components/Shared/icons.js +28 -10
  21. package/dist/preview/components/Shared/layout.js +21 -4
  22. package/dist/preview/components/Shared/tabs.js +41 -27
  23. package/dist/preview/components/Shared/theme.js +11 -8
  24. package/dist/preview/components/StoryListView/StoryListView.js +161 -97
  25. package/dist/preview/components/StoryListView/index.js +8 -1
  26. package/dist/preview/components/StoryView/StoryView.js +30 -14
  27. package/dist/preview/components/StoryView/index.js +8 -1
  28. package/dist/preview/executeLoadable.d.ts +4 -1
  29. package/dist/preview/executeLoadable.js +43 -23
  30. package/dist/preview/rn-host-detect.js +3 -1
  31. package/dist/preview/start.js +81 -56
  32. package/dist/types/types-6.0.js +2 -1
  33. package/dist/types/types.js +2 -1
  34. package/package.json +3 -3
  35. package/readme.md +97 -55
@@ -1,83 +1,129 @@
1
- import styled from '@emotion/native';
2
- import React, { useState, useRef } from 'react';
3
- import { Animated, Dimensions, Easing, Keyboard, KeyboardAvoidingView, Platform, TouchableOpacity, StatusBar, StyleSheet, View, } from 'react-native';
4
- import { useIsSplitPanelVisible, useIsUIVisible, useStoryContextParam, useTheme, } from '../../../hooks';
5
- import { ANIMATION_DURATION_TRANSITION } from '../../../constants';
6
- import StoryListView from '../StoryListView';
7
- import StoryView from '../StoryView';
8
- import AbsolutePositionedKeyboardAwareView from './absolute-positioned-keyboard-aware-view';
9
- import Addons from './addons/Addons';
10
- import { AddonsSkeleton } from './addons/AddonsSkeleton';
11
- import { getAddonPanelPosition, getSidebarPanelPosition, getPreviewShadowStyle, getPreviewStyle, } from './animation';
12
- import Navigation from './navigation';
13
- import { CANVAS, ADDONS } from './navigation/constants';
14
- import Panel from './Panel';
15
- import { useWindowDimensions } from 'react-native';
16
- import { useSafeAreaInsets } from 'react-native-safe-area-context';
17
- const IS_IOS = Platform.OS === 'ios';
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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.IS_EXPO = void 0;
41
+ var native_1 = __importDefault(require("@emotion/native"));
42
+ var react_1 = __importStar(require("react"));
43
+ var react_native_1 = require("react-native");
44
+ var hooks_1 = require("../../../hooks");
45
+ var constants_1 = require("../../../constants");
46
+ var StoryListView_1 = __importDefault(require("../StoryListView"));
47
+ var StoryView_1 = __importDefault(require("../StoryView"));
48
+ var absolute_positioned_keyboard_aware_view_1 = __importDefault(require("./absolute-positioned-keyboard-aware-view"));
49
+ var Addons_1 = __importDefault(require("./addons/Addons"));
50
+ var AddonsSkeleton_1 = require("./addons/AddonsSkeleton");
51
+ var animation_1 = require("./animation");
52
+ var navigation_1 = __importDefault(require("./navigation"));
53
+ var constants_2 = require("./navigation/constants");
54
+ var Panel_1 = __importDefault(require("./Panel"));
55
+ var react_native_2 = require("react-native");
56
+ var react_native_safe_area_context_1 = require("react-native-safe-area-context");
57
+ var IS_IOS = react_native_1.Platform.OS === 'ios';
18
58
  // @ts-ignore: Property 'Expo' does not exist on type 'Global'
19
- const getExpoRoot = () => global.Expo || global.__expo || global.__exponent;
20
- export const IS_EXPO = getExpoRoot() !== undefined;
21
- const IS_ANDROID = Platform.OS === 'android';
22
- const BREAKPOINT = 1024;
23
- const flex = { flex: 1 };
59
+ var getExpoRoot = function () { return global.Expo || global.__expo || global.__exponent; };
60
+ exports.IS_EXPO = getExpoRoot() !== undefined;
61
+ var IS_ANDROID = react_native_1.Platform.OS === 'android';
62
+ var BREAKPOINT = 1024;
63
+ var flex = { flex: 1 };
24
64
  /**
25
65
  * Story preview container.
26
66
  */
27
- function Preview({ animatedValue, style, children }) {
28
- const theme = useTheme();
29
- const containerStyle = Object.assign({ backgroundColor: theme.preview.backgroundColor }, getPreviewShadowStyle(animatedValue));
30
- return (React.createElement(Animated.View, { style: [flex, containerStyle] },
31
- React.createElement(View, { style: [flex, style] }, children)));
67
+ function Preview(_a) {
68
+ var animatedValue = _a.animatedValue, style = _a.style, children = _a.children;
69
+ var theme = (0, hooks_1.useTheme)();
70
+ var containerStyle = __assign({ backgroundColor: theme.preview.backgroundColor }, (0, animation_1.getPreviewShadowStyle)(animatedValue));
71
+ return (react_1.default.createElement(react_native_1.Animated.View, { style: [flex, containerStyle] },
72
+ react_1.default.createElement(react_native_1.View, { style: [flex, style] }, children)));
32
73
  }
33
- const styles = StyleSheet.create({
34
- expoAndroidContainer: { paddingTop: StatusBar.currentHeight },
74
+ var styles = react_native_1.StyleSheet.create({
75
+ expoAndroidContainer: { paddingTop: react_native_1.StatusBar.currentHeight },
76
+ });
77
+ var Container = native_1.default.View(function (_a) {
78
+ var theme = _a.theme;
79
+ return (__assign(__assign({ flex: 1, backgroundColor: theme.preview.containerBackgroundColor }, (IS_ANDROID && exports.IS_EXPO ? styles.expoAndroidContainer : undefined)), react_native_1.Platform.select({ web: { overflow: 'hidden' } })));
35
80
  });
36
- const Container = styled.View(({ theme }) => (Object.assign(Object.assign({ flex: 1, backgroundColor: theme.preview.containerBackgroundColor }, (IS_ANDROID && IS_EXPO ? styles.expoAndroidContainer : undefined)), Platform.select({ web: { overflow: 'hidden' } }))));
37
- const OnDeviceUI = ({ storyIndex, shouldDisableKeyboardAvoidingView, keyboardAvoidingViewVerticalOffset, tabOpen: initialTabOpen, }) => {
38
- const [tabOpen, setTabOpen] = useState(initialTabOpen || CANVAS);
39
- const lastTabOpen = React.useRef(tabOpen);
40
- const [previewDimensions, setPreviewDimensions] = useState(() => ({
41
- width: Dimensions.get('window').width,
42
- height: Dimensions.get('window').height,
43
- }));
44
- const animatedValue = useRef(new Animated.Value(tabOpen));
45
- const wide = useWindowDimensions().width >= BREAKPOINT;
46
- const insets = useSafeAreaInsets();
47
- const handleToggleTab = React.useCallback((newTabOpen) => {
81
+ var OnDeviceUI = function (_a) {
82
+ var storyIndex = _a.storyIndex, shouldDisableKeyboardAvoidingView = _a.shouldDisableKeyboardAvoidingView, keyboardAvoidingViewVerticalOffset = _a.keyboardAvoidingViewVerticalOffset, initialTabOpen = _a.tabOpen;
83
+ var _b = (0, react_1.useState)(initialTabOpen || constants_2.CANVAS), tabOpen = _b[0], setTabOpen = _b[1];
84
+ var lastTabOpen = react_1.default.useRef(tabOpen);
85
+ var _c = (0, react_1.useState)(function () { return ({
86
+ width: react_native_1.Dimensions.get('window').width,
87
+ height: react_native_1.Dimensions.get('window').height,
88
+ }); }), previewDimensions = _c[0], setPreviewDimensions = _c[1];
89
+ var animatedValue = (0, react_1.useRef)(new react_native_1.Animated.Value(tabOpen));
90
+ var wide = (0, react_native_2.useWindowDimensions)().width >= BREAKPOINT;
91
+ var insets = (0, react_native_safe_area_context_1.useSafeAreaInsets)();
92
+ var handleToggleTab = react_1.default.useCallback(function (newTabOpen) {
48
93
  if (newTabOpen === tabOpen) {
49
94
  return;
50
95
  }
51
96
  lastTabOpen.current = tabOpen;
52
- Animated.timing(animatedValue.current, {
97
+ react_native_1.Animated.timing(animatedValue.current, {
53
98
  toValue: newTabOpen,
54
- duration: ANIMATION_DURATION_TRANSITION,
55
- easing: Easing.inOut(Easing.cubic),
99
+ duration: constants_1.ANIMATION_DURATION_TRANSITION,
100
+ easing: react_native_1.Easing.inOut(react_native_1.Easing.cubic),
56
101
  useNativeDriver: true,
57
102
  }).start();
58
103
  setTabOpen(newTabOpen);
59
104
  // close the keyboard opened from a TextInput from story list or knobs
60
- if (newTabOpen === CANVAS) {
61
- Keyboard.dismiss();
105
+ if (newTabOpen === constants_2.CANVAS) {
106
+ react_native_1.Keyboard.dismiss();
62
107
  }
63
108
  }, [tabOpen]);
64
- const noSafeArea = useStoryContextParam('noSafeArea', false);
65
- const previewWrapperStyles = [
109
+ var noSafeArea = (0, hooks_1.useStoryContextParam)('noSafeArea', false);
110
+ var previewWrapperStyles = [
66
111
  flex,
67
- getPreviewStyle({
112
+ (0, animation_1.getPreviewStyle)({
68
113
  animatedValue: animatedValue.current,
69
- previewDimensions,
70
- wide,
71
- insets,
72
- tabOpen,
114
+ previewDimensions: previewDimensions,
115
+ wide: wide,
116
+ insets: insets,
117
+ tabOpen: tabOpen,
73
118
  lastTabOpen: lastTabOpen.current,
74
119
  }),
75
120
  ];
76
- const [isUIVisible] = useIsUIVisible();
121
+ var isUIVisible = (0, hooks_1.useIsUIVisible)()[0];
77
122
  // The initial value is just a guess until the layout calculation has been done.
78
- const [navBarHeight, setNavBarHeight] = React.useState(insets.bottom + 40);
79
- const measureNavigation = React.useCallback(({ nativeEvent }) => {
80
- const inset = insets.bottom;
123
+ var _d = react_1.default.useState(insets.bottom + 40), navBarHeight = _d[0], setNavBarHeight = _d[1];
124
+ var measureNavigation = react_1.default.useCallback(function (_a) {
125
+ var nativeEvent = _a.nativeEvent;
126
+ var inset = insets.bottom;
81
127
  setNavBarHeight(isUIVisible ? nativeEvent.layout.height - inset : 0);
82
128
  }, [isUIVisible, insets]);
83
129
  // There are 4 cases for the additional UI margin:
@@ -91,42 +137,42 @@ const OnDeviceUI = ({ storyIndex, shouldDisableKeyboardAvoidingView, keyboardAvo
91
137
  // bottom safe area inset and the navigation bar height.
92
138
  //
93
139
  // 4. Storybook UI is not visible, and `noSafeArea` is true: No margin.
94
- const safeAreaMargins = {
140
+ var safeAreaMargins = {
95
141
  paddingBottom: isUIVisible ? insets.bottom + navBarHeight : noSafeArea ? 0 : insets.bottom,
96
142
  paddingTop: !noSafeArea ? insets.top : 0,
97
143
  overflow: 'hidden',
98
144
  };
99
145
  // The panels always apply the safe area, regardless of the story parameters.
100
- const panelSafeAreaMargins = {
146
+ var panelSafeAreaMargins = {
101
147
  paddingBottom: insets.bottom + navBarHeight,
102
148
  paddingTop: insets.top,
103
149
  };
104
150
  // Adjust the keyboard offset (possibly in a negative direction) to account
105
151
  // for the safe area and navigation bar.
106
- const keyboardVerticalOffset = -panelSafeAreaMargins.paddingBottom + (keyboardAvoidingViewVerticalOffset !== null && keyboardAvoidingViewVerticalOffset !== void 0 ? keyboardAvoidingViewVerticalOffset : 0);
107
- const [isSplitPanelVisible] = useIsSplitPanelVisible();
108
- const isPreviewInactive = tabOpen !== CANVAS;
109
- return (React.createElement(React.Fragment, null,
110
- React.createElement(Container, null,
111
- React.createElement(KeyboardAvoidingView, { enabled: !shouldDisableKeyboardAvoidingView || isPreviewInactive, behavior: IS_IOS ? 'padding' : null, keyboardVerticalOffset: keyboardVerticalOffset, style: flex },
112
- React.createElement(AbsolutePositionedKeyboardAwareView, { onLayout: setPreviewDimensions, previewDimensions: previewDimensions },
113
- React.createElement(Animated.View, { style: previewWrapperStyles },
114
- React.createElement(Preview, { style: safeAreaMargins, animatedValue: animatedValue.current },
115
- React.createElement(StoryView, null),
116
- isSplitPanelVisible ? (React.createElement(Panel, { edge: "top", style: { flex: 1 } },
117
- React.createElement(Addons, { active: true }),
118
- React.createElement(AddonsSkeleton, { visible: isPreviewInactive }))) : null),
119
- isPreviewInactive ? (React.createElement(TouchableOpacity, { style: StyleSheet.absoluteFillObject, onPress: () => handleToggleTab(CANVAS) })) : null),
120
- React.createElement(Panel, { edge: "right", style: [
121
- getSidebarPanelPosition(animatedValue.current, previewDimensions.width, wide),
152
+ var keyboardVerticalOffset = -panelSafeAreaMargins.paddingBottom + (keyboardAvoidingViewVerticalOffset !== null && keyboardAvoidingViewVerticalOffset !== void 0 ? keyboardAvoidingViewVerticalOffset : 0);
153
+ var isSplitPanelVisible = (0, hooks_1.useIsSplitPanelVisible)()[0];
154
+ var isPreviewInactive = tabOpen !== constants_2.CANVAS;
155
+ return (react_1.default.createElement(react_1.default.Fragment, null,
156
+ react_1.default.createElement(Container, null,
157
+ react_1.default.createElement(react_native_1.KeyboardAvoidingView, { enabled: !shouldDisableKeyboardAvoidingView || isPreviewInactive, behavior: IS_IOS ? 'padding' : null, keyboardVerticalOffset: keyboardVerticalOffset, style: flex },
158
+ react_1.default.createElement(absolute_positioned_keyboard_aware_view_1.default, { onLayout: setPreviewDimensions, previewDimensions: previewDimensions },
159
+ react_1.default.createElement(react_native_1.Animated.View, { style: previewWrapperStyles },
160
+ react_1.default.createElement(Preview, { style: safeAreaMargins, animatedValue: animatedValue.current },
161
+ react_1.default.createElement(StoryView_1.default, null),
162
+ isSplitPanelVisible ? (react_1.default.createElement(Panel_1.default, { edge: "top", style: { flex: 1 } },
163
+ react_1.default.createElement(Addons_1.default, { active: true }),
164
+ react_1.default.createElement(AddonsSkeleton_1.AddonsSkeleton, { visible: isPreviewInactive }))) : null),
165
+ isPreviewInactive ? (react_1.default.createElement(react_native_1.TouchableOpacity, { style: react_native_1.StyleSheet.absoluteFillObject, onPress: function () { return handleToggleTab(constants_2.CANVAS); } })) : null),
166
+ react_1.default.createElement(Panel_1.default, { edge: "right", style: [
167
+ (0, animation_1.getSidebarPanelPosition)(animatedValue.current, previewDimensions.width, wide),
122
168
  panelSafeAreaMargins,
123
169
  ] },
124
- React.createElement(StoryListView, { storyIndex: storyIndex })),
125
- React.createElement(Panel, { edge: "left", style: [
126
- getAddonPanelPosition(animatedValue.current, previewDimensions.width, wide),
170
+ react_1.default.createElement(StoryListView_1.default, { storyIndex: storyIndex })),
171
+ react_1.default.createElement(Panel_1.default, { edge: "left", style: [
172
+ (0, animation_1.getAddonPanelPosition)(animatedValue.current, previewDimensions.width, wide),
127
173
  panelSafeAreaMargins,
128
174
  ] },
129
- React.createElement(Addons, { active: tabOpen === ADDONS })))),
130
- React.createElement(Navigation, { onLayout: measureNavigation, tabOpen: tabOpen, onChangeTab: handleToggleTab }))));
175
+ react_1.default.createElement(Addons_1.default, { active: tabOpen === constants_2.ADDONS })))),
176
+ react_1.default.createElement(navigation_1.default, { onLayout: measureNavigation, tabOpen: tabOpen, onChangeTab: handleToggleTab }))));
131
177
  };
132
- export default React.memo(OnDeviceUI);
178
+ exports.default = react_1.default.memo(OnDeviceUI);
@@ -1,18 +1,27 @@
1
- import React from 'react';
2
- import { StyleSheet, Animated } from 'react-native';
3
- import styled from '@emotion/native';
4
- const Container = styled(Animated.View)(({ theme, edge }) => ({
5
- backgroundColor: theme.panel.backgroundColor,
6
- borderTopWidth: edge === 'top' ? theme.panel.borderWidth : undefined,
7
- borderStartWidth: edge === 'left' ? theme.panel.borderWidth : undefined,
8
- borderEndWidth: edge === 'right' ? theme.panel.borderWidth : undefined,
9
- borderColor: theme.panel.borderColor,
10
- }));
11
- const Panel = ({ edge, children, style }) => {
12
- const containerStyle = StyleSheet.flatten([
13
- edge === 'top' ? undefined : StyleSheet.absoluteFillObject,
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var react_1 = __importDefault(require("react"));
7
+ var react_native_1 = require("react-native");
8
+ var native_1 = __importDefault(require("@emotion/native"));
9
+ var Container = (0, native_1.default)(react_native_1.Animated.View)(function (_a) {
10
+ var theme = _a.theme, edge = _a.edge;
11
+ return ({
12
+ backgroundColor: theme.panel.backgroundColor,
13
+ borderTopWidth: edge === 'top' ? theme.panel.borderWidth : undefined,
14
+ borderStartWidth: edge === 'left' ? theme.panel.borderWidth : undefined,
15
+ borderEndWidth: edge === 'right' ? theme.panel.borderWidth : undefined,
16
+ borderColor: theme.panel.borderColor,
17
+ });
18
+ });
19
+ var Panel = function (_a) {
20
+ var edge = _a.edge, children = _a.children, style = _a.style;
21
+ var containerStyle = react_native_1.StyleSheet.flatten([
22
+ edge === 'top' ? undefined : react_native_1.StyleSheet.absoluteFillObject,
14
23
  style,
15
24
  ]);
16
- return (React.createElement(Container, { edge: edge, style: containerStyle }, children));
25
+ return (react_1.default.createElement(Container, { edge: edge, style: containerStyle }, children));
17
26
  };
18
- export default React.memo(Panel);
27
+ exports.default = react_1.default.memo(Panel);
@@ -1,10 +1,17 @@
1
- import React from 'react';
2
- import { View, StyleSheet } from 'react-native';
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var react_1 = __importDefault(require("react"));
7
+ var react_native_1 = require("react-native");
3
8
  // Android changes screen size when keyboard opens.
4
9
  // To avoid issues we use absolute positioned element with predefined screen size
5
- const AbsolutePositionedKeyboardAwareView = ({ onLayout, previewDimensions: { width, height }, children, }) => {
6
- const onLayoutHandler = ({ nativeEvent }) => {
7
- const { height: layoutHeight, width: layoutWidth } = nativeEvent.layout;
10
+ var AbsolutePositionedKeyboardAwareView = function (_a) {
11
+ var onLayout = _a.onLayout, _b = _a.previewDimensions, width = _b.width, height = _b.height, children = _a.children;
12
+ var onLayoutHandler = function (_a) {
13
+ var nativeEvent = _a.nativeEvent;
14
+ var _b = nativeEvent.layout, layoutHeight = _b.height, layoutWidth = _b.width;
8
15
  if (layoutHeight !== height || layoutWidth !== width) {
9
16
  onLayout({
10
17
  height: layoutHeight,
@@ -12,13 +19,13 @@ const AbsolutePositionedKeyboardAwareView = ({ onLayout, previewDimensions: { wi
12
19
  });
13
20
  }
14
21
  };
15
- return (React.createElement(View, { style: styles.container, onLayout: onLayoutHandler },
16
- React.createElement(View, { style: width === 0
22
+ return (react_1.default.createElement(react_native_1.View, { style: styles.container, onLayout: onLayoutHandler },
23
+ react_1.default.createElement(react_native_1.View, { style: width === 0
17
24
  ? styles.container
18
- : [styles.absolute, { position: 'absolute', width, height }] }, children)));
25
+ : [styles.absolute, { position: 'absolute', width: width, height: height }] }, children)));
19
26
  };
20
- const styles = StyleSheet.create({
27
+ var styles = react_native_1.StyleSheet.create({
21
28
  absolute: { position: 'absolute' },
22
29
  container: { flex: 1 },
23
30
  });
24
- export default React.memo(AbsolutePositionedKeyboardAwareView);
31
+ exports.default = react_1.default.memo(AbsolutePositionedKeyboardAwareView);
@@ -1,28 +1,37 @@
1
- import React from 'react';
2
- import { addons } from '@storybook/addons';
3
- import { useSelectedAddon, useStoryContext } from '../../../../hooks';
4
- import AddonsList from './List';
5
- import AddonWrapper from './Wrapper';
6
- import { Box } from '../../Shared/layout';
7
- import styled from '@emotion/native';
8
- const Text = styled.Text(({ theme }) => ({
9
- marginTop: theme.tokens.spacing4,
10
- }));
11
- const Addons = ({ active }) => {
12
- const panels = addons.getElements('panel');
13
- const [addonSelected, setAddonSelected] = useSelectedAddon(Object.keys(panels)[0]);
14
- const context = useStoryContext();
15
- const id = context === null || context === void 0 ? void 0 : context.id;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var react_1 = __importDefault(require("react"));
7
+ var addons_1 = require("@storybook/addons");
8
+ var hooks_1 = require("../../../../hooks");
9
+ var List_1 = __importDefault(require("./List"));
10
+ var Wrapper_1 = __importDefault(require("./Wrapper"));
11
+ var layout_1 = require("../../Shared/layout");
12
+ var native_1 = __importDefault(require("@emotion/native"));
13
+ var Text = native_1.default.Text(function (_a) {
14
+ var theme = _a.theme;
15
+ return ({
16
+ marginTop: theme.tokens.spacing4,
17
+ });
18
+ });
19
+ var Addons = function (_a) {
20
+ var active = _a.active;
21
+ var panels = addons_1.addons.getElements('panel');
22
+ var _b = (0, hooks_1.useSelectedAddon)(Object.keys(panels)[0]), addonSelected = _b[0], setAddonSelected = _b[1];
23
+ var context = (0, hooks_1.useStoryContext)();
24
+ var id = context === null || context === void 0 ? void 0 : context.id;
16
25
  if (!id) {
17
- return (React.createElement(Box, { alignItems: "center", justifyContent: "center" },
18
- React.createElement(Text, null, "No Story Selected")));
26
+ return (react_1.default.createElement(layout_1.Box, { alignItems: "center", justifyContent: "center" },
27
+ react_1.default.createElement(Text, null, "No Story Selected")));
19
28
  }
20
29
  if (Object.keys(panels).length === 0) {
21
- return (React.createElement(Box, { alignItems: "center", justifyContent: "center" },
22
- React.createElement(Text, null, "No addons loaded.")));
30
+ return (react_1.default.createElement(layout_1.Box, { alignItems: "center", justifyContent: "center" },
31
+ react_1.default.createElement(Text, null, "No addons loaded.")));
23
32
  }
24
- return (React.createElement(Box, { flex: true },
25
- React.createElement(AddonsList, { onPressAddon: setAddonSelected, panels: panels, addonSelected: active ? addonSelected : null }),
26
- React.createElement(AddonWrapper, { addonSelected: active ? addonSelected : null, panels: panels })));
33
+ return (react_1.default.createElement(layout_1.Box, { flex: true },
34
+ react_1.default.createElement(List_1.default, { onPressAddon: setAddonSelected, panels: panels, addonSelected: active ? addonSelected : null }),
35
+ react_1.default.createElement(Wrapper_1.default, { addonSelected: active ? addonSelected : null, panels: panels })));
27
36
  };
28
- export default React.memo(Addons);
37
+ exports.default = react_1.default.memo(Addons);
@@ -1,7 +1,24 @@
1
- import React from 'react';
2
- import styled from '@emotion/native';
3
- import { Animated, Easing, StyleSheet, View } from 'react-native';
4
- import { ANIMATION_DURATION_TRANSITION } from '../../../../constants';
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 __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.AddonsSkeleton = void 0;
18
+ var react_1 = __importDefault(require("react"));
19
+ var native_1 = __importDefault(require("@emotion/native"));
20
+ var react_native_1 = require("react-native");
21
+ var constants_1 = require("../../../../constants");
5
22
  /**
6
23
  * Component that mimics the addons panel.
7
24
  *
@@ -10,50 +27,61 @@ import { ANIMATION_DURATION_TRANSITION } from '../../../../constants';
10
27
  * on the story content rather than become distracted by the addons UI in an
11
28
  * already small view.
12
29
  */
13
- export const AddonsSkeleton = React.memo(function AddonsSkeleton({ visible }) {
14
- const progress = React.useRef(new Animated.Value(visible ? 1 : 0));
15
- React.useEffect(() => {
16
- Animated.timing(progress.current, {
30
+ exports.AddonsSkeleton = react_1.default.memo(function AddonsSkeleton(_a) {
31
+ var visible = _a.visible;
32
+ var progress = react_1.default.useRef(new react_native_1.Animated.Value(visible ? 1 : 0));
33
+ react_1.default.useEffect(function () {
34
+ react_native_1.Animated.timing(progress.current, {
17
35
  toValue: visible ? 1 : 0,
18
- duration: ANIMATION_DURATION_TRANSITION,
36
+ duration: constants_1.ANIMATION_DURATION_TRANSITION,
19
37
  useNativeDriver: true,
20
- easing: Easing.inOut(Easing.cubic),
38
+ easing: react_native_1.Easing.inOut(react_native_1.Easing.cubic),
21
39
  }).start();
22
40
  }, [visible]);
23
- return (React.createElement(AddonsSkeletonContainer, { pointerEvents: "none", opacity: progress.current },
24
- React.createElement(TabsSkeleton, null),
25
- React.createElement(AddonsContentSkeleton, null)));
41
+ return (react_1.default.createElement(AddonsSkeletonContainer, { pointerEvents: "none", opacity: progress.current },
42
+ react_1.default.createElement(TabsSkeleton, null),
43
+ react_1.default.createElement(AddonsContentSkeleton, null)));
26
44
  });
27
- const TabSkeleton = styled.View(({ theme, active }) => ({
28
- opacity: active ? 1 : 0.5,
29
- backgroundColor: active ? theme.tabs.activeBackgroundColor : theme.tokens.color.grey200,
30
- borderRadius: theme.tokens.borderRadius.round,
31
- width: active ? 100 : 70,
32
- height: 30,
33
- marginRight: 12,
34
- }));
35
- const BoxSkeleton = styled.View(({ theme, width, height }) => ({
36
- backgroundColor: theme.tokens.color.blue200,
37
- borderRadius: theme.tokens.borderRadius.large,
38
- height,
39
- width,
40
- }));
41
- function AddonsFieldSkeleton({ long = false }) {
42
- return (React.createElement(View, { style: { marginBottom: 32 } },
43
- React.createElement(BoxSkeleton, { width: 75, height: 10, marginBottom: 12 }),
44
- React.createElement(BoxSkeleton, { width: long ? 200 : 120, height: 15 })));
45
+ var TabSkeleton = native_1.default.View(function (_a) {
46
+ var theme = _a.theme, active = _a.active;
47
+ return ({
48
+ opacity: active ? 1 : 0.5,
49
+ backgroundColor: active ? theme.tabs.activeBackgroundColor : theme.tokens.color.grey200,
50
+ borderRadius: theme.tokens.borderRadius.round,
51
+ width: active ? 100 : 70,
52
+ height: 30,
53
+ marginRight: 12,
54
+ });
55
+ });
56
+ var BoxSkeleton = native_1.default.View(function (_a) {
57
+ var theme = _a.theme, width = _a.width, height = _a.height;
58
+ return ({
59
+ backgroundColor: theme.tokens.color.blue200,
60
+ borderRadius: theme.tokens.borderRadius.large,
61
+ height: height,
62
+ width: width,
63
+ });
64
+ });
65
+ function AddonsFieldSkeleton(_a) {
66
+ var _b = _a.long, long = _b === void 0 ? false : _b;
67
+ return (react_1.default.createElement(react_native_1.View, { style: { marginBottom: 32 } },
68
+ react_1.default.createElement(BoxSkeleton, { width: 75, height: 10, marginBottom: 12 }),
69
+ react_1.default.createElement(BoxSkeleton, { width: long ? 200 : 120, height: 15 })));
45
70
  }
46
71
  function AddonsContentSkeleton() {
47
- return (React.createElement(React.Fragment, null,
48
- React.createElement(AddonsFieldSkeleton, { long: true }),
49
- React.createElement(AddonsFieldSkeleton, { long: true }),
50
- React.createElement(AddonsFieldSkeleton, null),
51
- React.createElement(AddonsFieldSkeleton, null)));
72
+ return (react_1.default.createElement(react_1.default.Fragment, null,
73
+ react_1.default.createElement(AddonsFieldSkeleton, { long: true }),
74
+ react_1.default.createElement(AddonsFieldSkeleton, { long: true }),
75
+ react_1.default.createElement(AddonsFieldSkeleton, null),
76
+ react_1.default.createElement(AddonsFieldSkeleton, null)));
52
77
  }
53
78
  function TabsSkeleton() {
54
- return (React.createElement(View, { style: { flexDirection: 'row', marginBottom: 16 } },
55
- React.createElement(TabSkeleton, null),
56
- React.createElement(TabSkeleton, { active: true }),
57
- React.createElement(TabSkeleton, null)));
79
+ return (react_1.default.createElement(react_native_1.View, { style: { flexDirection: 'row', marginBottom: 16 } },
80
+ react_1.default.createElement(TabSkeleton, null),
81
+ react_1.default.createElement(TabSkeleton, { active: true }),
82
+ react_1.default.createElement(TabSkeleton, null)));
58
83
  }
59
- const AddonsSkeletonContainer = styled(Animated.View)(({ theme }) => (Object.assign(Object.assign({}, StyleSheet.absoluteFillObject), { flex: 1, backgroundColor: theme.panel.backgroundColor, borderTopWidth: theme.panel.borderWidth, borderColor: theme.panel.borderColor, padding: theme.panel.paddingHorizontal, overflow: 'hidden' })));
84
+ var AddonsSkeletonContainer = (0, native_1.default)(react_native_1.Animated.View)(function (_a) {
85
+ var theme = _a.theme;
86
+ return (__assign(__assign({}, react_native_1.StyleSheet.absoluteFillObject), { flex: 1, backgroundColor: theme.panel.backgroundColor, borderTopWidth: theme.panel.borderWidth, borderColor: theme.panel.borderColor, padding: theme.panel.paddingHorizontal, overflow: 'hidden' }));
87
+ });
@@ -1,11 +1,17 @@
1
- import React from 'react';
2
- import { TabBar, TabButton } from '../../Shared/tabs';
3
- const AddonList = ({ panels, addonSelected, onPressAddon }) => {
4
- const addonKeys = Object.keys(panels);
5
- return (React.createElement(TabBar, { scrollable: true }, addonKeys.map((id) => {
6
- const { title } = panels[id];
7
- const resolvedTitle = typeof title === 'function' ? title() : title;
8
- return (React.createElement(TabButton, { active: id === addonSelected, key: id, id: id, onPress: () => onPressAddon(id) }, resolvedTitle.toUpperCase()));
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var react_1 = __importDefault(require("react"));
7
+ var tabs_1 = require("../../Shared/tabs");
8
+ var AddonList = function (_a) {
9
+ var panels = _a.panels, addonSelected = _a.addonSelected, onPressAddon = _a.onPressAddon;
10
+ var addonKeys = Object.keys(panels);
11
+ return (react_1.default.createElement(tabs_1.TabBar, { scrollable: true }, addonKeys.map(function (id) {
12
+ var title = panels[id].title;
13
+ var resolvedTitle = typeof title === 'function' ? title() : title;
14
+ return (react_1.default.createElement(tabs_1.TabButton, { active: id === addonSelected, key: id, id: id, onPress: function () { return onPressAddon(id); } }, resolvedTitle.toUpperCase()));
9
15
  })));
10
16
  };
11
- export default React.memo(AddonList);
17
+ exports.default = react_1.default.memo(AddonList);
@@ -1,22 +1,31 @@
1
- import React from 'react';
2
- import { ScrollView } from 'react-native';
3
- import styled from '@emotion/native';
4
- import { useTheme, useUpdateOnStoryChanged } from '../../../../hooks';
5
- const Container = styled.View(({ selected }) => ({
6
- display: selected ? 'flex' : 'none',
7
- flex: 1,
8
- }));
9
- const Wrapper = ({ panels, addonSelected }) => {
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var react_1 = __importDefault(require("react"));
7
+ var react_native_1 = require("react-native");
8
+ var native_1 = __importDefault(require("@emotion/native"));
9
+ var hooks_1 = require("../../../../hooks");
10
+ var Container = native_1.default.View(function (_a) {
11
+ var selected = _a.selected;
12
+ return ({
13
+ display: selected ? 'flex' : 'none',
14
+ flex: 1,
15
+ });
16
+ });
17
+ var Wrapper = function (_a) {
18
+ var panels = _a.panels, addonSelected = _a.addonSelected;
10
19
  // Force a re-render when the current story changes, to ensure that the addon
11
20
  // panels state is not desynced.
12
- useUpdateOnStoryChanged();
13
- const theme = useTheme();
14
- const addonKeys = Object.keys(panels);
15
- const content = addonKeys.map((id) => {
16
- const selected = addonSelected === id;
17
- return (React.createElement(Container, { key: id, selected: selected },
18
- React.createElement(ScrollView, { contentContainerStyle: { padding: theme.panel.paddingHorizontal } }, panels[id].render({ active: selected, key: id }))));
21
+ (0, hooks_1.useUpdateOnStoryChanged)();
22
+ var theme = (0, hooks_1.useTheme)();
23
+ var addonKeys = Object.keys(panels);
24
+ var content = addonKeys.map(function (id) {
25
+ var selected = addonSelected === id;
26
+ return (react_1.default.createElement(Container, { key: id, selected: selected },
27
+ react_1.default.createElement(react_native_1.ScrollView, { contentContainerStyle: { padding: theme.panel.paddingHorizontal } }, panels[id].render({ active: selected, key: id }))));
19
28
  });
20
- return React.createElement(React.Fragment, null, content);
29
+ return react_1.default.createElement(react_1.default.Fragment, null, content);
21
30
  };
22
- export default React.memo(Wrapper);
31
+ exports.default = react_1.default.memo(Wrapper);