@storybook/addon-ondevice-controls 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.
@@ -1,60 +1,108 @@
1
- import styled from '@emotion/native';
2
- import React, { useCallback, useState } from 'react';
3
- import { useArgs } from './hooks';
4
- import NoControlsWarning from './NoControlsWarning';
5
- import PropForm from './PropForm';
6
- const ButtonTouchable = styled.TouchableOpacity(({ theme }) => ({
7
- backgroundColor: theme.button.secondary.backgroundColor,
8
- borderRadius: theme.button.secondary.borderRadius,
9
- borderWidth: theme.button.secondary.borderWidth,
10
- borderColor: theme.button.secondary.borderColor,
11
- paddingVertical: theme.button.paddingVertical,
12
- paddingHorizontal: theme.button.paddingHorizontal,
13
- justifyContent: 'center',
14
- alignItems: 'center',
15
- }));
16
- const ButtonText = styled.Text(({ theme }) => ({
17
- color: theme.button.secondary.textColor,
18
- fontSize: theme.button.fontSize,
19
- fontWeight: theme.button.fontWeight,
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];
20
23
  }));
21
- const ControlsPanel = ({ api }) => {
22
- var _a;
23
- const store = api.store();
24
- const storyId = (_a = store.getSelection()) === null || _a === void 0 ? void 0 : _a.storyId;
25
- const [isPristine, setIsPristine] = useState(true);
26
- const [argsFromHook, updateArgs, resetArgs] = useArgs(storyId, store);
27
- const { argsObject, argTypes, parameters } = React.useMemo(() => {
28
- const { argTypes: storyArgTypes, parameters: storyParameters } = store.fromId(storyId);
29
- const storyArgsObject = Object.entries(storyArgTypes).reduce((prev, [key, argType]) => {
30
- var _a;
31
- const isControl = Boolean(argType === null || argType === void 0 ? void 0 : argType.control);
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
+ var native_1 = __importDefault(require("@emotion/native"));
41
+ var react_1 = __importStar(require("react"));
42
+ var hooks_1 = require("./hooks");
43
+ var NoControlsWarning_1 = __importDefault(require("./NoControlsWarning"));
44
+ var PropForm_1 = __importDefault(require("./PropForm"));
45
+ var ButtonTouchable = native_1.default.TouchableOpacity(function (_a) {
46
+ var theme = _a.theme;
47
+ return ({
48
+ backgroundColor: theme.button.secondary.backgroundColor,
49
+ borderRadius: theme.button.secondary.borderRadius,
50
+ borderWidth: theme.button.secondary.borderWidth,
51
+ borderColor: theme.button.secondary.borderColor,
52
+ paddingVertical: theme.button.paddingVertical,
53
+ paddingHorizontal: theme.button.paddingHorizontal,
54
+ justifyContent: 'center',
55
+ alignItems: 'center',
56
+ });
57
+ });
58
+ var ButtonText = native_1.default.Text(function (_a) {
59
+ var theme = _a.theme;
60
+ return ({
61
+ color: theme.button.secondary.textColor,
62
+ fontSize: theme.button.fontSize,
63
+ fontWeight: theme.button.fontWeight,
64
+ });
65
+ });
66
+ var ControlsPanel = function (_a) {
67
+ var _b;
68
+ var api = _a.api;
69
+ var store = api.store();
70
+ var storyId = (_b = store.getSelection()) === null || _b === void 0 ? void 0 : _b.storyId;
71
+ var _c = (0, react_1.useState)(true), isPristine = _c[0], setIsPristine = _c[1];
72
+ var _d = (0, hooks_1.useArgs)(storyId, store), argsFromHook = _d[0], updateArgs = _d[1], resetArgs = _d[2];
73
+ var _e = react_1.default.useMemo(function () {
74
+ var _a = store.fromId(storyId), storyArgTypes = _a.argTypes, storyParameters = _a.parameters;
75
+ var storyArgsObject = Object.entries(storyArgTypes).reduce(function (prev, _a) {
76
+ var _b;
77
+ var _c;
78
+ var key = _a[0], argType = _a[1];
79
+ var isControl = Boolean(argType === null || argType === void 0 ? void 0 : argType.control);
32
80
  return isControl
33
- ? Object.assign(Object.assign({}, prev), { [key]: Object.assign(Object.assign({}, argType), { name: key, type: (_a = argType === null || argType === void 0 ? void 0 : argType.control) === null || _a === void 0 ? void 0 : _a.type, value: argsFromHook[key] }) }) : prev;
81
+ ? __assign(__assign({}, prev), (_b = {}, _b[key] = __assign(__assign({}, argType), { name: key, type: (_c = argType === null || argType === void 0 ? void 0 : argType.control) === null || _c === void 0 ? void 0 : _c.type, value: argsFromHook[key] }), _b)) : prev;
34
82
  }, {});
35
83
  return {
36
84
  argTypes: storyArgTypes,
37
85
  parameters: storyParameters,
38
86
  argsObject: storyArgsObject,
39
87
  };
40
- }, [store, storyId, argsFromHook]);
41
- const hasControls = Object.keys(argTypes).length > 0;
42
- const isArgsStory = parameters.__isArgsStory;
43
- const showWarning = !(hasControls && isArgsStory);
44
- const updateArgsOnFieldChange = useCallback((args) => {
88
+ }, [store, storyId, argsFromHook]), argsObject = _e.argsObject, argTypes = _e.argTypes, parameters = _e.parameters;
89
+ var hasControls = Object.keys(argTypes).length > 0;
90
+ var isArgsStory = parameters.__isArgsStory;
91
+ var showWarning = !(hasControls && isArgsStory);
92
+ var updateArgsOnFieldChange = (0, react_1.useCallback)(function (args) {
45
93
  updateArgs(args);
46
94
  setIsPristine(false);
47
95
  }, [updateArgs]);
48
- const handleReset = useCallback(() => {
96
+ var handleReset = (0, react_1.useCallback)(function () {
49
97
  resetArgs();
50
98
  setIsPristine(true);
51
99
  }, [resetArgs]);
52
100
  if (showWarning) {
53
- return React.createElement(NoControlsWarning, null);
101
+ return react_1.default.createElement(NoControlsWarning_1.default, null);
54
102
  }
55
- return (React.createElement(React.Fragment, null,
56
- React.createElement(PropForm, { args: argsObject, isPristine: isPristine, onFieldChange: updateArgsOnFieldChange }),
57
- React.createElement(ButtonTouchable, { onPress: handleReset },
58
- React.createElement(ButtonText, null, "RESET"))));
103
+ return (react_1.default.createElement(react_1.default.Fragment, null,
104
+ react_1.default.createElement(PropForm_1.default, { args: argsObject, isPristine: isPristine, onFieldChange: updateArgsOnFieldChange }),
105
+ react_1.default.createElement(ButtonTouchable, { onPress: handleReset },
106
+ react_1.default.createElement(ButtonText, null, "RESET"))));
59
107
  };
60
- export default ControlsPanel;
108
+ exports.default = ControlsPanel;
@@ -1,21 +1,34 @@
1
- import styled from '@emotion/native';
2
- import React from 'react';
3
- import { Linking } from 'react-native';
4
- const Paragraph = styled.Text(({ theme }) => ({
5
- marginBottom: theme.tokens.spacing3,
6
- color: theme.text.primaryColor,
7
- }));
8
- const LinkText = styled.Text(({ theme }) => ({
9
- color: theme.text.linkColor,
10
- }));
11
- const NoControlsWarning = () => {
12
- return (React.createElement(React.Fragment, null,
13
- React.createElement(Paragraph, null, "This story is not configured to handle controls."),
14
- React.createElement(Paragraph, null,
15
- React.createElement(LinkText, { onPress: () => Linking.openURL('https://storybook.js.org/docs/react/essentials/controls') }, "Learn how to add controls"),
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 native_1 = __importDefault(require("@emotion/native"));
7
+ var react_1 = __importDefault(require("react"));
8
+ var react_native_1 = require("react-native");
9
+ var Paragraph = native_1.default.Text(function (_a) {
10
+ var theme = _a.theme;
11
+ return ({
12
+ marginBottom: theme.tokens.spacing3,
13
+ color: theme.text.primaryColor,
14
+ });
15
+ });
16
+ var LinkText = native_1.default.Text(function (_a) {
17
+ var theme = _a.theme;
18
+ return ({
19
+ color: theme.text.linkColor,
20
+ });
21
+ });
22
+ var NoControlsWarning = function () {
23
+ return (react_1.default.createElement(react_1.default.Fragment, null,
24
+ react_1.default.createElement(Paragraph, null, "This story is not configured to handle controls."),
25
+ react_1.default.createElement(Paragraph, null,
26
+ react_1.default.createElement(LinkText, { onPress: function () { return react_native_1.Linking.openURL('https://storybook.js.org/docs/react/essentials/controls'); } }, "Learn how to add controls"),
16
27
  ' ',
17
28
  "and see",
18
29
  ' ',
19
- React.createElement(LinkText, { onPress: () => Linking.openURL('https://github.com/storybookjs/react-native/tree/next-6.0/examples/expo-example/components/ControlExamples') }, "examples in the Storybook React Native repository."))));
30
+ react_1.default.createElement(LinkText, { onPress: function () {
31
+ return react_native_1.Linking.openURL('https://github.com/storybookjs/react-native/tree/next-6.0/examples/expo-example/components/ControlExamples');
32
+ } }, "examples in the Storybook React Native repository."))));
20
33
  };
21
- export default NoControlsWarning;
34
+ exports.default = NoControlsWarning;
package/dist/Panel.js CHANGED
@@ -1,8 +1,16 @@
1
- import React from 'react';
2
- export const AddonPanel = ({ active, children }) => {
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
+ exports.AddonPanel = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var AddonPanel = function (_a) {
9
+ var active = _a.active, children = _a.children;
3
10
  if (!active) {
4
11
  return null;
5
12
  }
6
- return React.createElement(React.Fragment, null, children);
13
+ return react_1.default.createElement(react_1.default.Fragment, null, children);
7
14
  };
8
- AddonPanel.displayName = 'AddonPanel';
15
+ exports.AddonPanel = AddonPanel;
16
+ exports.AddonPanel.displayName = 'AddonPanel';
package/dist/PropField.js CHANGED
@@ -1,26 +1,44 @@
1
- import React from 'react';
2
- import styled from '@emotion/native';
3
- import TypeMap from './types';
4
- const InvalidTypeText = styled.Text(({ theme }) => ({
5
- color: theme.inputs.errorTextColor,
6
- }));
7
- const InvalidType = ({ arg }) => (React.createElement(InvalidTypeText, null,
8
- "Invalid type: ",
9
- arg.type));
10
- const Label = styled.Text(({ theme }) => ({
11
- paddingBottom: theme.tokens.spacing1,
12
- fontSize: theme.inputs.labelFontSize,
13
- color: theme.inputs.labelTextColor,
14
- fontWeight: '500',
15
- }));
16
- const Container = styled.View(({ theme }) => ({
17
- paddingBottom: theme.tokens.spacing4,
18
- }));
19
- const InputContainer = styled.View();
20
- const PropField = ({ onChange, arg, isPristine }) => {
21
- const InputType = TypeMap[arg.type];
22
- return (React.createElement(Container, null,
23
- !arg.hideLabel ? React.createElement(Label, null, `${arg.label || arg.name}`) : null,
24
- React.createElement(InputContainer, null, InputType ? (React.createElement(InputType, { arg: arg, isPristine: isPristine, onChange: onChange })) : (React.createElement(InvalidType, { arg: arg })))));
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
25
4
  };
26
- export default PropField;
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var react_1 = __importDefault(require("react"));
7
+ var native_1 = __importDefault(require("@emotion/native"));
8
+ var types_1 = __importDefault(require("./types"));
9
+ var InvalidTypeText = native_1.default.Text(function (_a) {
10
+ var theme = _a.theme;
11
+ return ({
12
+ color: theme.inputs.errorTextColor,
13
+ });
14
+ });
15
+ var InvalidType = function (_a) {
16
+ var arg = _a.arg;
17
+ return (react_1.default.createElement(InvalidTypeText, null,
18
+ "Invalid type: ",
19
+ arg.type));
20
+ };
21
+ var Label = native_1.default.Text(function (_a) {
22
+ var theme = _a.theme;
23
+ return ({
24
+ paddingBottom: theme.tokens.spacing1,
25
+ fontSize: theme.inputs.labelFontSize,
26
+ color: theme.inputs.labelTextColor,
27
+ fontWeight: '500',
28
+ });
29
+ });
30
+ var Container = native_1.default.View(function (_a) {
31
+ var theme = _a.theme;
32
+ return ({
33
+ paddingBottom: theme.tokens.spacing4,
34
+ });
35
+ });
36
+ var InputContainer = native_1.default.View();
37
+ var PropField = function (_a) {
38
+ var onChange = _a.onChange, arg = _a.arg, isPristine = _a.isPristine;
39
+ var InputType = types_1.default[arg.type];
40
+ return (react_1.default.createElement(Container, null,
41
+ !arg.hideLabel ? react_1.default.createElement(Label, null, "".concat(arg.label || arg.name)) : null,
42
+ react_1.default.createElement(InputContainer, null, InputType ? (react_1.default.createElement(InputType, { arg: arg, isPristine: isPristine, onChange: onChange })) : (react_1.default.createElement(InvalidType, { arg: arg })))));
43
+ };
44
+ exports.default = PropField;
package/dist/PropForm.js CHANGED
@@ -1,16 +1,23 @@
1
- import styled from '@emotion/native';
2
- import React from 'react';
3
- import PropField from './PropField';
4
- const Container = styled.View(() => ({ paddingTop: 0 }));
5
- const PropForm = ({ args, isPristine, onFieldChange }) => {
6
- const makeChangeHandler = (name) => {
7
- return (value) => {
8
- onFieldChange({ [name]: value });
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 native_1 = __importDefault(require("@emotion/native"));
7
+ var react_1 = __importDefault(require("react"));
8
+ var PropField_1 = __importDefault(require("./PropField"));
9
+ var Container = native_1.default.View(function () { return ({ paddingTop: 0 }); });
10
+ var PropForm = function (_a) {
11
+ var args = _a.args, isPristine = _a.isPristine, onFieldChange = _a.onFieldChange;
12
+ var makeChangeHandler = function (name) {
13
+ return function (value) {
14
+ var _a;
15
+ onFieldChange((_a = {}, _a[name] = value, _a));
9
16
  };
10
17
  };
11
- return (React.createElement(Container, null, Object.values(args).map((arg) => {
12
- const changeHandler = makeChangeHandler(arg.name);
13
- return (React.createElement(PropField, { key: arg.name, arg: arg, isPristine: isPristine, onChange: changeHandler }));
18
+ return (react_1.default.createElement(Container, null, Object.values(args).map(function (arg) {
19
+ var changeHandler = makeChangeHandler(arg.name);
20
+ return (react_1.default.createElement(PropField_1.default, { key: arg.name, arg: arg, isPristine: isPristine, onChange: changeHandler }));
14
21
  })));
15
22
  };
16
- export default PropForm;
23
+ exports.default = PropForm;
@@ -1,44 +1,65 @@
1
- import styled from '@emotion/native';
2
- import React from 'react';
3
- const RadioContainer = styled.View(({ isInline }) => ({
4
- flexDirection: isInline ? 'row' : 'column',
5
- alignItems: isInline ? 'center' : 'flex-start',
6
- flexWrap: 'wrap',
7
- }));
8
- const RadioTouchable = styled.TouchableOpacity(({ theme }) => ({
9
- alignItems: 'center',
10
- flexDirection: 'row',
11
- paddingVertical: theme.inputs.radio.itemSpacing,
12
- }));
13
- const RadioCircle = styled.View(({ theme }) => ({
14
- width: theme.inputs.radio.height,
15
- height: theme.inputs.radio.height,
16
- borderWidth: theme.inputs.radio.borderWidth,
17
- borderColor: theme.inputs.radio.borderColor,
18
- borderRadius: theme.tokens.borderRadius.round,
19
- backgroundColor: theme.inputs.radio.backgroundColor,
20
- alignItems: 'center',
21
- justifyContent: 'center',
22
- paddingVertical: theme.inputs.radio.paddingVertical,
23
- paddingHorizontal: theme.inputs.radio.paddingHorizontal,
24
- }));
25
- const RadioInnerCircle = styled.View(({ theme, selected }) => ({
26
- height: '100%',
27
- width: '100%',
28
- borderRadius: theme.tokens.borderRadius.round,
29
- backgroundColor: selected ? theme.inputs.radio.activeBackgroundColor : 'transparent',
30
- }));
31
- const RadioLabel = styled.Text(({ theme }) => ({
32
- fontSize: theme.inputs.radio.fontSize,
33
- paddingStart: theme.inputs.radio.labelSpacing,
34
- color: theme.inputs.labelTextColor,
35
- }));
36
- const RadioSelect = ({ data = [], value = '', onChange, isInline }) => {
37
- return (React.createElement(RadioContainer, { isInline: isInline }, data.map((item) => (React.createElement(RadioTouchable, { key: item.label, activeOpacity: 0.7, onPress: () => {
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 native_1 = __importDefault(require("@emotion/native"));
7
+ var react_1 = __importDefault(require("react"));
8
+ var RadioContainer = native_1.default.View(function (_a) {
9
+ var isInline = _a.isInline;
10
+ return ({
11
+ flexDirection: isInline ? 'row' : 'column',
12
+ alignItems: isInline ? 'center' : 'flex-start',
13
+ flexWrap: 'wrap',
14
+ });
15
+ });
16
+ var RadioTouchable = native_1.default.TouchableOpacity(function (_a) {
17
+ var theme = _a.theme;
18
+ return ({
19
+ alignItems: 'center',
20
+ flexDirection: 'row',
21
+ paddingVertical: theme.inputs.radio.itemSpacing,
22
+ });
23
+ });
24
+ var RadioCircle = native_1.default.View(function (_a) {
25
+ var theme = _a.theme;
26
+ return ({
27
+ width: theme.inputs.radio.height,
28
+ height: theme.inputs.radio.height,
29
+ borderWidth: theme.inputs.radio.borderWidth,
30
+ borderColor: theme.inputs.radio.borderColor,
31
+ borderRadius: theme.tokens.borderRadius.round,
32
+ backgroundColor: theme.inputs.radio.backgroundColor,
33
+ alignItems: 'center',
34
+ justifyContent: 'center',
35
+ paddingVertical: theme.inputs.radio.paddingVertical,
36
+ paddingHorizontal: theme.inputs.radio.paddingHorizontal,
37
+ });
38
+ });
39
+ var RadioInnerCircle = native_1.default.View(function (_a) {
40
+ var theme = _a.theme, selected = _a.selected;
41
+ return ({
42
+ height: '100%',
43
+ width: '100%',
44
+ borderRadius: theme.tokens.borderRadius.round,
45
+ backgroundColor: selected ? theme.inputs.radio.activeBackgroundColor : 'transparent',
46
+ });
47
+ });
48
+ var RadioLabel = native_1.default.Text(function (_a) {
49
+ var theme = _a.theme;
50
+ return ({
51
+ fontSize: theme.inputs.radio.fontSize,
52
+ paddingStart: theme.inputs.radio.labelSpacing,
53
+ color: theme.inputs.labelTextColor,
54
+ });
55
+ });
56
+ var RadioSelect = function (_a) {
57
+ var _b = _a.data, data = _b === void 0 ? [] : _b, _c = _a.value, value = _c === void 0 ? '' : _c, onChange = _a.onChange, isInline = _a.isInline;
58
+ return (react_1.default.createElement(RadioContainer, { isInline: isInline }, data.map(function (item) { return (react_1.default.createElement(RadioTouchable, { key: item.label, activeOpacity: 0.7, onPress: function () {
38
59
  onChange(item);
39
60
  } },
40
- React.createElement(RadioCircle, null,
41
- React.createElement(RadioInnerCircle, { selected: value === item.key })),
42
- React.createElement(RadioLabel, null, item.label))))));
61
+ react_1.default.createElement(RadioCircle, null,
62
+ react_1.default.createElement(RadioInnerCircle, { selected: value === item.key })),
63
+ react_1.default.createElement(RadioLabel, null, item.label))); })));
43
64
  };
44
- export default RadioSelect;
65
+ exports.default = RadioSelect;