@storybook/addon-backgrounds 6.4.0-beta.24 → 6.4.0-beta.28

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 (69) hide show
  1. package/dist/cjs/components/ColorIcon.js +26 -0
  2. package/dist/cjs/constants.js +16 -0
  3. package/dist/cjs/containers/BackgroundSelector.js +174 -0
  4. package/dist/cjs/containers/GridSelector.js +95 -0
  5. package/dist/cjs/decorators/index.js +35 -0
  6. package/dist/cjs/decorators/withBackground.js +57 -0
  7. package/dist/cjs/decorators/withGrid.js +77 -0
  8. package/dist/cjs/helpers/index.js +134 -0
  9. package/dist/cjs/index.js +14 -0
  10. package/dist/cjs/preset/addDecorator.js +11 -0
  11. package/dist/cjs/preset/addParameter.js +23 -0
  12. package/dist/cjs/register.js +53 -0
  13. package/dist/cjs/types/index.js +1 -0
  14. package/dist/cjs/typings.d.js +1 -0
  15. package/dist/esm/components/ColorIcon.js +16 -0
  16. package/dist/esm/constants.js +6 -0
  17. package/dist/esm/containers/BackgroundSelector.js +133 -0
  18. package/dist/esm/containers/GridSelector.js +63 -0
  19. package/dist/esm/decorators/index.js +2 -0
  20. package/dist/esm/decorators/withBackground.js +41 -0
  21. package/dist/esm/decorators/withGrid.js +58 -0
  22. package/dist/esm/helpers/index.js +101 -0
  23. package/dist/esm/index.js +6 -0
  24. package/dist/esm/preset/addDecorator.js +2 -0
  25. package/dist/esm/preset/addParameter.js +16 -0
  26. package/dist/esm/register.js +20 -0
  27. package/dist/esm/types/index.js +0 -0
  28. package/dist/esm/typings.d.js +0 -0
  29. package/dist/modern/components/ColorIcon.js +14 -0
  30. package/dist/modern/constants.js +6 -0
  31. package/dist/modern/containers/BackgroundSelector.js +93 -0
  32. package/dist/modern/containers/GridSelector.js +34 -0
  33. package/dist/modern/decorators/index.js +2 -0
  34. package/dist/modern/decorators/withBackground.js +42 -0
  35. package/dist/modern/decorators/withGrid.js +67 -0
  36. package/dist/modern/helpers/index.js +86 -0
  37. package/dist/modern/index.js +6 -0
  38. package/dist/modern/preset/addDecorator.js +2 -0
  39. package/dist/modern/preset/addParameter.js +16 -0
  40. package/dist/modern/register.js +15 -0
  41. package/dist/modern/types/index.js +0 -0
  42. package/dist/modern/typings.d.js +0 -0
  43. package/dist/ts3.4/components/ColorIcon.d.ts +4 -0
  44. package/dist/ts3.4/constants.d.ts +6 -0
  45. package/dist/ts3.4/containers/BackgroundSelector.d.ts +2 -0
  46. package/dist/ts3.4/containers/GridSelector.d.ts +2 -0
  47. package/dist/ts3.4/decorators/index.d.ts +2 -0
  48. package/dist/ts3.4/decorators/withBackground.d.ts +2 -0
  49. package/dist/ts3.4/decorators/withGrid.d.ts +2 -0
  50. package/dist/ts3.4/helpers/index.d.ts +6 -0
  51. package/dist/ts3.4/index.d.ts +2 -0
  52. package/dist/ts3.4/preset/addDecorator.d.ts +1 -0
  53. package/dist/ts3.4/preset/addParameter.d.ts +13 -0
  54. package/dist/ts3.4/register.d.ts +1 -0
  55. package/dist/ts3.4/types/index.d.ts +28 -0
  56. package/dist/ts3.9/components/ColorIcon.d.ts +4 -0
  57. package/dist/ts3.9/constants.d.ts +6 -0
  58. package/dist/ts3.9/containers/BackgroundSelector.d.ts +2 -0
  59. package/dist/ts3.9/containers/GridSelector.d.ts +2 -0
  60. package/dist/ts3.9/decorators/index.d.ts +2 -0
  61. package/dist/ts3.9/decorators/withBackground.d.ts +2 -0
  62. package/dist/ts3.9/decorators/withGrid.d.ts +2 -0
  63. package/dist/ts3.9/helpers/index.d.ts +6 -0
  64. package/dist/ts3.9/index.d.ts +2 -0
  65. package/dist/ts3.9/preset/addDecorator.d.ts +1 -0
  66. package/dist/ts3.9/preset/addParameter.d.ts +13 -0
  67. package/dist/ts3.9/register.d.ts +1 -0
  68. package/dist/ts3.9/types/index.d.ts +28 -0
  69. package/package.json +8 -8
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ColorIcon = void 0;
7
+
8
+ var _theming = require("@storybook/theming");
9
+
10
+ var ColorIcon = _theming.styled.span(function (_ref) {
11
+ var background = _ref.background;
12
+ return {
13
+ borderRadius: '1rem',
14
+ display: 'block',
15
+ height: '1rem',
16
+ width: '1rem',
17
+ background: background
18
+ };
19
+ }, function (_ref2) {
20
+ var theme = _ref2.theme;
21
+ return {
22
+ boxShadow: "".concat(theme.appBorderColor, " 0 0 0 1px inset")
23
+ };
24
+ });
25
+
26
+ exports.ColorIcon = ColorIcon;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EVENTS = exports.GRID_PARAM_KEY = exports.PARAM_KEY = exports.ADDON_ID = void 0;
7
+ var ADDON_ID = 'storybook/background';
8
+ exports.ADDON_ID = ADDON_ID;
9
+ var PARAM_KEY = 'backgrounds';
10
+ exports.PARAM_KEY = PARAM_KEY;
11
+ var GRID_PARAM_KEY = 'grid';
12
+ exports.GRID_PARAM_KEY = GRID_PARAM_KEY;
13
+ var EVENTS = {
14
+ UPDATE: "".concat(ADDON_ID, "/update")
15
+ };
16
+ exports.EVENTS = EVENTS;
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ require("core-js/modules/es.symbol.js");
6
+
7
+ require("core-js/modules/es.symbol.description.js");
8
+
9
+ require("core-js/modules/es.symbol.iterator.js");
10
+
11
+ require("core-js/modules/es.string.iterator.js");
12
+
13
+ require("core-js/modules/es.array.from.js");
14
+
15
+ require("core-js/modules/es.array.slice.js");
16
+
17
+ require("core-js/modules/es.weak-map.js");
18
+
19
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
20
+
21
+ Object.defineProperty(exports, "__esModule", {
22
+ value: true
23
+ });
24
+ exports.BackgroundSelector = void 0;
25
+
26
+ require("core-js/modules/es.array.map.js");
27
+
28
+ require("core-js/modules/es.function.name.js");
29
+
30
+ require("core-js/modules/es.array.concat.js");
31
+
32
+ require("core-js/modules/es.object.to-string.js");
33
+
34
+ require("core-js/modules/es.array.iterator.js");
35
+
36
+ require("core-js/modules/web.dom-collections.iterator.js");
37
+
38
+ require("core-js/modules/es.object.assign.js");
39
+
40
+ var _react = _interopRequireWildcard(require("react"));
41
+
42
+ var _memoizerific = _interopRequireDefault(require("memoizerific"));
43
+
44
+ var _api = require("@storybook/api");
45
+
46
+ var _clientLogger = require("@storybook/client-logger");
47
+
48
+ var _components = require("@storybook/components");
49
+
50
+ var _constants = require("../constants");
51
+
52
+ var _ColorIcon = require("../components/ColorIcon");
53
+
54
+ var _helpers = require("../helpers");
55
+
56
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
57
+
58
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
59
+
60
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
61
+
62
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
63
+
64
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
65
+
66
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
67
+
68
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
69
+
70
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
71
+
72
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
73
+
74
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
75
+
76
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
77
+
78
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
79
+
80
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
81
+
82
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
83
+
84
+ var createBackgroundSelectorItem = (0, _memoizerific.default)(1000)(function (id, name, value, hasSwatch, change, active) {
85
+ return {
86
+ id: id || name,
87
+ title: name,
88
+ onClick: function onClick() {
89
+ change({
90
+ selected: value,
91
+ name: name
92
+ });
93
+ },
94
+ value: value,
95
+ right: hasSwatch ? /*#__PURE__*/_react.default.createElement(_ColorIcon.ColorIcon, {
96
+ background: value
97
+ }) : undefined,
98
+ active: active
99
+ };
100
+ });
101
+ var getDisplayedItems = (0, _memoizerific.default)(10)(function (backgrounds, selectedBackgroundColor, change) {
102
+ var backgroundSelectorItems = backgrounds.map(function (_ref) {
103
+ var name = _ref.name,
104
+ value = _ref.value;
105
+ return createBackgroundSelectorItem(null, name, value, true, change, value === selectedBackgroundColor);
106
+ });
107
+
108
+ if (selectedBackgroundColor !== 'transparent') {
109
+ return [createBackgroundSelectorItem('reset', 'Clear background', 'transparent', null, change, false)].concat(_toConsumableArray(backgroundSelectorItems));
110
+ }
111
+
112
+ return backgroundSelectorItems;
113
+ });
114
+ var DEFAULT_BACKGROUNDS_CONFIG = {
115
+ default: null,
116
+ disable: true,
117
+ values: []
118
+ };
119
+ var BackgroundSelector = /*#__PURE__*/(0, _react.memo)(function () {
120
+ var _globals$BACKGROUNDS_;
121
+
122
+ var backgroundsConfig = (0, _api.useParameter)(_constants.PARAM_KEY, DEFAULT_BACKGROUNDS_CONFIG);
123
+
124
+ var _useGlobals = (0, _api.useGlobals)(),
125
+ _useGlobals2 = _slicedToArray(_useGlobals, 2),
126
+ globals = _useGlobals2[0],
127
+ updateGlobals = _useGlobals2[1];
128
+
129
+ var globalsBackgroundColor = (_globals$BACKGROUNDS_ = globals[_constants.PARAM_KEY]) === null || _globals$BACKGROUNDS_ === void 0 ? void 0 : _globals$BACKGROUNDS_.value;
130
+ var selectedBackgroundColor = (0, _react.useMemo)(function () {
131
+ return (0, _helpers.getBackgroundColorByName)(globalsBackgroundColor, backgroundsConfig.values, backgroundsConfig.default);
132
+ }, [backgroundsConfig, globalsBackgroundColor]);
133
+
134
+ if (Array.isArray(backgroundsConfig)) {
135
+ _clientLogger.logger.warn('Addon Backgrounds api has changed in Storybook 6.0. Please refer to the migration guide: https://github.com/storybookjs/storybook/blob/next/MIGRATION.md');
136
+ }
137
+
138
+ var onBackgroundChange = (0, _react.useCallback)(function (value) {
139
+ updateGlobals(_defineProperty({}, _constants.PARAM_KEY, Object.assign({}, globals[_constants.PARAM_KEY], {
140
+ value: value
141
+ })));
142
+ }, [backgroundsConfig, globals, updateGlobals]);
143
+
144
+ if (backgroundsConfig.disable) {
145
+ return null;
146
+ }
147
+
148
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_components.WithTooltip, {
149
+ placement: "top",
150
+ trigger: "click",
151
+ closeOnClick: true,
152
+ tooltip: function tooltip(_ref2) {
153
+ var onHide = _ref2.onHide;
154
+ return /*#__PURE__*/_react.default.createElement(_components.TooltipLinkList, {
155
+ links: getDisplayedItems(backgroundsConfig.values, selectedBackgroundColor, function (_ref3) {
156
+ var selected = _ref3.selected;
157
+
158
+ if (selectedBackgroundColor !== selected) {
159
+ onBackgroundChange(selected);
160
+ }
161
+
162
+ onHide();
163
+ })
164
+ });
165
+ }
166
+ }, /*#__PURE__*/_react.default.createElement(_components.IconButton, {
167
+ key: "background",
168
+ title: "Change the background of the preview",
169
+ active: selectedBackgroundColor !== 'transparent'
170
+ }, /*#__PURE__*/_react.default.createElement(_components.Icons, {
171
+ icon: "photo"
172
+ }))));
173
+ });
174
+ exports.BackgroundSelector = BackgroundSelector;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ require("core-js/modules/es.symbol.js");
6
+
7
+ require("core-js/modules/es.symbol.description.js");
8
+
9
+ require("core-js/modules/es.object.to-string.js");
10
+
11
+ require("core-js/modules/es.symbol.iterator.js");
12
+
13
+ require("core-js/modules/es.string.iterator.js");
14
+
15
+ require("core-js/modules/es.array.iterator.js");
16
+
17
+ require("core-js/modules/web.dom-collections.iterator.js");
18
+
19
+ require("core-js/modules/es.array.slice.js");
20
+
21
+ require("core-js/modules/es.function.name.js");
22
+
23
+ require("core-js/modules/es.array.from.js");
24
+
25
+ require("core-js/modules/es.weak-map.js");
26
+
27
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
28
+
29
+ Object.defineProperty(exports, "__esModule", {
30
+ value: true
31
+ });
32
+ exports.GridSelector = void 0;
33
+
34
+ require("core-js/modules/es.object.assign.js");
35
+
36
+ var _react = _interopRequireWildcard(require("react"));
37
+
38
+ var _api = require("@storybook/api");
39
+
40
+ var _components = require("@storybook/components");
41
+
42
+ var _constants = require("../constants");
43
+
44
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
45
+
46
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
47
+
48
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
49
+
50
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
51
+
52
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
53
+
54
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
55
+
56
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
57
+
58
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
59
+
60
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
61
+
62
+ var GridSelector = /*#__PURE__*/(0, _react.memo)(function () {
63
+ var _globals$BACKGROUNDS_;
64
+
65
+ var _useGlobals = (0, _api.useGlobals)(),
66
+ _useGlobals2 = _slicedToArray(_useGlobals, 2),
67
+ globals = _useGlobals2[0],
68
+ updateGlobals = _useGlobals2[1];
69
+
70
+ var _useParameter = (0, _api.useParameter)(_constants.PARAM_KEY, {
71
+ grid: {
72
+ disable: false
73
+ }
74
+ }),
75
+ grid = _useParameter.grid;
76
+
77
+ if (grid !== null && grid !== void 0 && grid.disable) {
78
+ return null;
79
+ }
80
+
81
+ var isActive = ((_globals$BACKGROUNDS_ = globals[_constants.PARAM_KEY]) === null || _globals$BACKGROUNDS_ === void 0 ? void 0 : _globals$BACKGROUNDS_.grid) || false;
82
+ return /*#__PURE__*/_react.default.createElement(_components.IconButton, {
83
+ key: "background",
84
+ active: isActive,
85
+ title: "Apply a grid to the preview",
86
+ onClick: function onClick() {
87
+ return updateGlobals(_defineProperty({}, _constants.PARAM_KEY, Object.assign({}, globals[_constants.PARAM_KEY], {
88
+ grid: !isActive
89
+ })));
90
+ }
91
+ }, /*#__PURE__*/_react.default.createElement(_components.Icons, {
92
+ icon: "grid"
93
+ }));
94
+ });
95
+ exports.GridSelector = GridSelector;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/web.dom-collections.for-each.js");
4
+
5
+ require("core-js/modules/es.object.keys.js");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+
11
+ var _withBackground = require("./withBackground");
12
+
13
+ Object.keys(_withBackground).forEach(function (key) {
14
+ if (key === "default" || key === "__esModule") return;
15
+ if (key in exports && exports[key] === _withBackground[key]) return;
16
+ Object.defineProperty(exports, key, {
17
+ enumerable: true,
18
+ get: function get() {
19
+ return _withBackground[key];
20
+ }
21
+ });
22
+ });
23
+
24
+ var _withGrid = require("./withGrid");
25
+
26
+ Object.keys(_withGrid).forEach(function (key) {
27
+ if (key === "default" || key === "__esModule") return;
28
+ if (key in exports && exports[key] === _withGrid[key]) return;
29
+ Object.defineProperty(exports, key, {
30
+ enumerable: true,
31
+ get: function get() {
32
+ return _withGrid[key];
33
+ }
34
+ });
35
+ });
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.withBackground = void 0;
7
+
8
+ require("core-js/modules/es.object.to-string.js");
9
+
10
+ require("core-js/modules/es.array.iterator.js");
11
+
12
+ require("core-js/modules/web.dom-collections.iterator.js");
13
+
14
+ require("core-js/modules/es.array.concat.js");
15
+
16
+ var _addons = require("@storybook/addons");
17
+
18
+ var _constants = require("../constants");
19
+
20
+ var _helpers = require("../helpers");
21
+
22
+ var withBackground = function withBackground(StoryFn, context) {
23
+ var _globals$BACKGROUNDS_;
24
+
25
+ var globals = context.globals,
26
+ parameters = context.parameters;
27
+ var globalsBackgroundColor = (_globals$BACKGROUNDS_ = globals[_constants.PARAM_KEY]) === null || _globals$BACKGROUNDS_ === void 0 ? void 0 : _globals$BACKGROUNDS_.value;
28
+ var backgroundsConfig = parameters[_constants.PARAM_KEY];
29
+ var selectedBackgroundColor = (0, _addons.useMemo)(function () {
30
+ if (backgroundsConfig.disable) {
31
+ return 'transparent';
32
+ }
33
+
34
+ return (0, _helpers.getBackgroundColorByName)(globalsBackgroundColor, backgroundsConfig.values, backgroundsConfig.default);
35
+ }, [backgroundsConfig, globalsBackgroundColor]);
36
+ var isActive = (0, _addons.useMemo)(function () {
37
+ return selectedBackgroundColor && selectedBackgroundColor !== 'transparent';
38
+ }, [selectedBackgroundColor]);
39
+ var selector = context.viewMode === 'docs' ? "#anchor--".concat(context.id, " .docs-story") : '.sb-show-main';
40
+ var backgroundStyles = (0, _addons.useMemo)(function () {
41
+ var transitionStyle = 'transition: background-color 0.3s;';
42
+ return "\n ".concat(selector, " {\n background: ").concat(selectedBackgroundColor, " !important;\n ").concat((0, _helpers.isReduceMotionEnabled)() ? '' : transitionStyle, "\n }\n ");
43
+ }, [selectedBackgroundColor, selector]);
44
+ (0, _addons.useEffect)(function () {
45
+ var selectorId = context.viewMode === 'docs' ? "addon-backgrounds-docs-".concat(context.id) : "addon-backgrounds-color";
46
+
47
+ if (!isActive) {
48
+ (0, _helpers.clearStyles)(selectorId);
49
+ return;
50
+ }
51
+
52
+ (0, _helpers.addBackgroundStyle)(selectorId, backgroundStyles, context.viewMode === 'docs' ? context.id : null);
53
+ }, [isActive, backgroundStyles, context]);
54
+ return StoryFn();
55
+ };
56
+
57
+ exports.withBackground = withBackground;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.array.slice.js");
4
+
5
+ require("core-js/modules/es.object.freeze.js");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.withGrid = void 0;
11
+
12
+ require("core-js/modules/es.array.join.js");
13
+
14
+ require("core-js/modules/es.array.concat.js");
15
+
16
+ var _tsDedent = _interopRequireDefault(require("ts-dedent"));
17
+
18
+ var _utilDeprecate = _interopRequireDefault(require("util-deprecate"));
19
+
20
+ var _addons = require("@storybook/addons");
21
+
22
+ var _helpers = require("../helpers");
23
+
24
+ var _constants = require("../constants");
25
+
26
+ var _templateObject;
27
+
28
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
+
30
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
31
+
32
+ var deprecatedCellSizeWarning = (0, _utilDeprecate.default)(function () {}, (0, _tsDedent.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n Backgrounds Addon: The cell size parameter has been changed.\n\n - parameters.grid.cellSize should now be parameters.backgrounds.grid.cellSize\n See https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#deprecated-grid-parameter\n "]))));
33
+
34
+ var withGrid = function withGrid(StoryFn, context) {
35
+ var _globals$BACKGROUNDS_, _parameters$grid, _gridParameters$offse, _gridParameters$offse2;
36
+
37
+ var globals = context.globals,
38
+ parameters = context.parameters;
39
+ var gridParameters = parameters[_constants.PARAM_KEY].grid;
40
+ var isActive = ((_globals$BACKGROUNDS_ = globals[_constants.PARAM_KEY]) === null || _globals$BACKGROUNDS_ === void 0 ? void 0 : _globals$BACKGROUNDS_.grid) === true && gridParameters.disable !== true;
41
+ var cellAmount = gridParameters.cellAmount,
42
+ cellSize = gridParameters.cellSize,
43
+ opacity = gridParameters.opacity;
44
+ var isInDocs = context.viewMode === 'docs';
45
+ var gridSize;
46
+
47
+ if ((_parameters$grid = parameters.grid) !== null && _parameters$grid !== void 0 && _parameters$grid.cellSize) {
48
+ gridSize = parameters.grid.cellSize;
49
+ deprecatedCellSizeWarning();
50
+ } else {
51
+ gridSize = cellSize;
52
+ }
53
+
54
+ var isLayoutPadded = parameters.layout === undefined || parameters.layout === 'padded'; // 16px offset in the grid to account for padded layout
55
+
56
+ var defaultOffset = isLayoutPadded ? 16 : 0;
57
+ var offsetX = (_gridParameters$offse = gridParameters.offsetX) !== null && _gridParameters$offse !== void 0 ? _gridParameters$offse : isInDocs ? 20 : defaultOffset;
58
+ var offsetY = (_gridParameters$offse2 = gridParameters.offsetY) !== null && _gridParameters$offse2 !== void 0 ? _gridParameters$offse2 : isInDocs ? 20 : defaultOffset;
59
+ var gridStyles = (0, _addons.useMemo)(function () {
60
+ var selector = context.viewMode === 'docs' ? "#anchor--".concat(context.id, " .docs-story") : '.sb-show-main';
61
+ var backgroundSize = ["".concat(gridSize * cellAmount, "px ").concat(gridSize * cellAmount, "px"), "".concat(gridSize * cellAmount, "px ").concat(gridSize * cellAmount, "px"), "".concat(gridSize, "px ").concat(gridSize, "px"), "".concat(gridSize, "px ").concat(gridSize, "px")].join(', ');
62
+ return "\n ".concat(selector, " {\n background-size: ").concat(backgroundSize, " !important;\n background-position: ").concat(offsetX, "px ").concat(offsetY, "px, ").concat(offsetX, "px ").concat(offsetY, "px, ").concat(offsetX, "px ").concat(offsetY, "px, ").concat(offsetX, "px ").concat(offsetY, "px !important;\n background-blend-mode: difference !important;\n background-image: linear-gradient(rgba(130, 130, 130, ").concat(opacity, ") 1px, transparent 1px),\n linear-gradient(90deg, rgba(130, 130, 130, ").concat(opacity, ") 1px, transparent 1px),\n linear-gradient(rgba(130, 130, 130, ").concat(opacity / 2, ") 1px, transparent 1px),\n linear-gradient(90deg, rgba(130, 130, 130, ").concat(opacity / 2, ") 1px, transparent 1px) !important;\n }\n ");
63
+ }, [gridSize]);
64
+ (0, _addons.useEffect)(function () {
65
+ var selectorId = context.viewMode === 'docs' ? "addon-backgrounds-grid-docs-".concat(context.id) : "addon-backgrounds-grid";
66
+
67
+ if (!isActive) {
68
+ (0, _helpers.clearStyles)(selectorId);
69
+ return;
70
+ }
71
+
72
+ (0, _helpers.addGridStyle)(selectorId, gridStyles);
73
+ }, [isActive, gridStyles, context]);
74
+ return StoryFn();
75
+ };
76
+
77
+ exports.withGrid = withGrid;
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.array.slice.js");
4
+
5
+ require("core-js/modules/es.object.freeze.js");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.addBackgroundStyle = exports.addGridStyle = exports.clearStyles = exports.getBackgroundColorByName = exports.isReduceMotionEnabled = void 0;
11
+
12
+ require("core-js/modules/es.array.find.js");
13
+
14
+ require("core-js/modules/es.function.name.js");
15
+
16
+ require("core-js/modules/es.array.join.js");
17
+
18
+ require("core-js/modules/es.array.map.js");
19
+
20
+ require("core-js/modules/web.dom-collections.for-each.js");
21
+
22
+ var _global = _interopRequireDefault(require("global"));
23
+
24
+ var _tsDedent = _interopRequireDefault(require("ts-dedent"));
25
+
26
+ var _clientLogger = require("@storybook/client-logger");
27
+
28
+ var _templateObject;
29
+
30
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
+
32
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
33
+
34
+ var document = _global.default.document,
35
+ window = _global.default.window;
36
+
37
+ var isReduceMotionEnabled = function isReduceMotionEnabled() {
38
+ var prefersReduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)');
39
+ return prefersReduceMotion.matches;
40
+ };
41
+
42
+ exports.isReduceMotionEnabled = isReduceMotionEnabled;
43
+
44
+ var getBackgroundColorByName = function getBackgroundColorByName(currentSelectedValue) {
45
+ var backgrounds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
46
+ var defaultName = arguments.length > 2 ? arguments[2] : undefined;
47
+
48
+ if (currentSelectedValue === 'transparent') {
49
+ return 'transparent';
50
+ }
51
+
52
+ if (backgrounds.find(function (background) {
53
+ return background.value === currentSelectedValue;
54
+ })) {
55
+ return currentSelectedValue;
56
+ }
57
+
58
+ var defaultBackground = backgrounds.find(function (background) {
59
+ return background.name === defaultName;
60
+ });
61
+
62
+ if (defaultBackground) {
63
+ return defaultBackground.value;
64
+ }
65
+
66
+ if (defaultName) {
67
+ var availableColors = backgrounds.map(function (background) {
68
+ return background.name;
69
+ }).join(', ');
70
+
71
+ _clientLogger.logger.warn((0, _tsDedent.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n Backgrounds Addon: could not find the default color \"", "\".\n These are the available colors for your story based on your configuration:\n ", ".\n "])), defaultName, availableColors));
72
+ }
73
+
74
+ return 'transparent';
75
+ };
76
+
77
+ exports.getBackgroundColorByName = getBackgroundColorByName;
78
+
79
+ var clearStyles = function clearStyles(selector) {
80
+ var selectors = Array.isArray(selector) ? selector : [selector];
81
+ selectors.forEach(clearStyle);
82
+ };
83
+
84
+ exports.clearStyles = clearStyles;
85
+
86
+ var clearStyle = function clearStyle(selector) {
87
+ var element = document.getElementById(selector);
88
+
89
+ if (element) {
90
+ element.parentElement.removeChild(element);
91
+ }
92
+ };
93
+
94
+ var addGridStyle = function addGridStyle(selector, css) {
95
+ var existingStyle = document.getElementById(selector);
96
+
97
+ if (existingStyle) {
98
+ if (existingStyle.innerHTML !== css) {
99
+ existingStyle.innerHTML = css;
100
+ }
101
+ } else {
102
+ var style = document.createElement('style');
103
+ style.setAttribute('id', selector);
104
+ style.innerHTML = css;
105
+ document.head.appendChild(style);
106
+ }
107
+ };
108
+
109
+ exports.addGridStyle = addGridStyle;
110
+
111
+ var addBackgroundStyle = function addBackgroundStyle(selector, css, storyId) {
112
+ var existingStyle = document.getElementById(selector);
113
+
114
+ if (existingStyle) {
115
+ if (existingStyle.innerHTML !== css) {
116
+ existingStyle.innerHTML = css;
117
+ }
118
+ } else {
119
+ var style = document.createElement('style');
120
+ style.setAttribute('id', selector);
121
+ style.innerHTML = css;
122
+ var gridStyleSelector = "addon-backgrounds-grid".concat(storyId ? "-docs-".concat(storyId) : ''); // If grids already exist, we want to add the style tag BEFORE it so the background doesn't override grid
123
+
124
+ var existingGridStyle = document.getElementById(gridStyleSelector);
125
+
126
+ if (existingGridStyle) {
127
+ existingGridStyle.parentElement.insertBefore(style, existingGridStyle);
128
+ } else {
129
+ document.head.appendChild(style);
130
+ }
131
+ }
132
+ };
133
+
134
+ exports.addBackgroundStyle = addBackgroundStyle;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ if (module && module.hot && module.hot.decline) {
9
+ module.hot.decline();
10
+ } // make it work with --isolatedModules
11
+
12
+
13
+ var _default = {};
14
+ exports.default = _default;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.decorators = void 0;
7
+
8
+ var _decorators = require("../decorators");
9
+
10
+ var decorators = [_decorators.withGrid, _decorators.withBackground];
11
+ exports.decorators = decorators;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.parameters = void 0;
7
+ var parameters = {
8
+ backgrounds: {
9
+ grid: {
10
+ cellSize: 20,
11
+ opacity: 0.5,
12
+ cellAmount: 5
13
+ },
14
+ values: [{
15
+ name: 'light',
16
+ value: '#F8F8F8'
17
+ }, {
18
+ name: 'dark',
19
+ value: '#333333'
20
+ }]
21
+ }
22
+ };
23
+ exports.parameters = parameters;