@storybook/addon-backgrounds 7.0.7 → 7.0.8
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/chunk-GRJZJKJ4.mjs +8 -2
- package/dist/index.mjs +3 -1
- package/dist/manager.mjs +9 -1
- package/dist/preview.d.ts +2 -2
- package/dist/preview.mjs +8 -3
- package/package.json +18 -18
package/dist/chunk-GRJZJKJ4.mjs
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
import { global } from '@storybook/global';
|
|
2
|
+
import { dedent } from 'ts-dedent';
|
|
3
|
+
import { logger } from '@storybook/client-logger';
|
|
4
|
+
|
|
5
|
+
var ADDON_ID="storybook/background",PARAM_KEY="backgrounds";var {document,window}=global,isReduceMotionEnabled=()=>window.matchMedia("(prefers-reduced-motion: reduce)").matches,getBackgroundColorByName=(currentSelectedValue,backgrounds=[],defaultName)=>{if(currentSelectedValue==="transparent")return "transparent";if(backgrounds.find(background=>background.value===currentSelectedValue))return currentSelectedValue;let defaultBackground=backgrounds.find(background=>background.name===defaultName);if(defaultBackground)return defaultBackground.value;if(defaultName){let availableColors=backgrounds.map(background=>background.name).join(", ");logger.warn(dedent`
|
|
2
6
|
Backgrounds Addon: could not find the default color "${defaultName}".
|
|
3
7
|
These are the available colors for your story based on your configuration:
|
|
4
8
|
${availableColors}.
|
|
5
|
-
`)}return"transparent"},clearStyles=selector=>{(Array.isArray(selector)?selector:[selector]).forEach(clearStyle)},clearStyle=selector=>{let element=document.getElementById(selector);element&&element.parentElement.removeChild(element)},addGridStyle=(selector,css)=>{let existingStyle=document.getElementById(selector);if(existingStyle)existingStyle.innerHTML!==css&&(existingStyle.innerHTML=css);else{let style=document.createElement("style");style.setAttribute("id",selector),style.innerHTML=css,document.head.appendChild(style)}},addBackgroundStyle=(selector,css,storyId)=>{let existingStyle=document.getElementById(selector);if(existingStyle)existingStyle.innerHTML!==css&&(existingStyle.innerHTML=css);else{let style=document.createElement("style");style.setAttribute("id",selector),style.innerHTML=css;let gridStyleSelector=`addon-backgrounds-grid${storyId?`-docs-${storyId}`:""}`,existingGridStyle=document.getElementById(gridStyleSelector);existingGridStyle?existingGridStyle.parentElement.insertBefore(style,existingGridStyle):document.head.appendChild(style)}};
|
|
9
|
+
`);}return "transparent"},clearStyles=selector=>{(Array.isArray(selector)?selector:[selector]).forEach(clearStyle);},clearStyle=selector=>{let element=document.getElementById(selector);element&&element.parentElement.removeChild(element);},addGridStyle=(selector,css)=>{let existingStyle=document.getElementById(selector);if(existingStyle)existingStyle.innerHTML!==css&&(existingStyle.innerHTML=css);else {let style=document.createElement("style");style.setAttribute("id",selector),style.innerHTML=css,document.head.appendChild(style);}},addBackgroundStyle=(selector,css,storyId)=>{let existingStyle=document.getElementById(selector);if(existingStyle)existingStyle.innerHTML!==css&&(existingStyle.innerHTML=css);else {let style=document.createElement("style");style.setAttribute("id",selector),style.innerHTML=css;let gridStyleSelector=`addon-backgrounds-grid${storyId?`-docs-${storyId}`:""}`,existingGridStyle=document.getElementById(gridStyleSelector);existingGridStyle?existingGridStyle.parentElement.insertBefore(style,existingGridStyle):document.head.appendChild(style);}};
|
|
10
|
+
|
|
11
|
+
export { ADDON_ID, PARAM_KEY, addBackgroundStyle, addGridStyle, clearStyles, getBackgroundColorByName, isReduceMotionEnabled };
|
package/dist/index.mjs
CHANGED
package/dist/manager.mjs
CHANGED
|
@@ -1 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { PARAM_KEY, getBackgroundColorByName, ADDON_ID } from './chunk-GRJZJKJ4.mjs';
|
|
2
|
+
import React, { memo, useState, useMemo, useCallback, Fragment } from 'react';
|
|
3
|
+
import { useParameter, useGlobals, addons, types } from '@storybook/manager-api';
|
|
4
|
+
import memoize from 'memoizerific';
|
|
5
|
+
import { logger } from '@storybook/client-logger';
|
|
6
|
+
import { WithTooltip, TooltipLinkList, IconButton, Icons } from '@storybook/components';
|
|
7
|
+
import { styled } from '@storybook/theming';
|
|
8
|
+
|
|
9
|
+
var ColorIcon=styled.span(({background})=>({borderRadius:"1rem",display:"block",height:"1rem",width:"1rem",background}),({theme})=>({boxShadow:`${theme.appBorderColor} 0 0 0 1px inset`}));var createBackgroundSelectorItem=memoize(1e3)((id,name,value,hasSwatch,change,active)=>({id:id||name,title:name,onClick:()=>{change({selected:value,name});},value,right:hasSwatch?React.createElement(ColorIcon,{background:value}):void 0,active})),getDisplayedItems=memoize(10)((backgrounds,selectedBackgroundColor,change)=>{let backgroundSelectorItems=backgrounds.map(({name,value})=>createBackgroundSelectorItem(null,name,value,!0,change,value===selectedBackgroundColor));return selectedBackgroundColor!=="transparent"?[createBackgroundSelectorItem("reset","Clear background","transparent",null,change,!1),...backgroundSelectorItems]:backgroundSelectorItems}),DEFAULT_BACKGROUNDS_CONFIG={default:null,disable:!0,values:[]},BackgroundSelector=memo(function(){let backgroundsConfig=useParameter(PARAM_KEY,DEFAULT_BACKGROUNDS_CONFIG),[isTooltipVisible,setIsTooltipVisible]=useState(!1),[globals,updateGlobals]=useGlobals(),globalsBackgroundColor=globals[PARAM_KEY]?.value,selectedBackgroundColor=useMemo(()=>getBackgroundColorByName(globalsBackgroundColor,backgroundsConfig.values,backgroundsConfig.default),[backgroundsConfig,globalsBackgroundColor]);Array.isArray(backgroundsConfig)&&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");let onBackgroundChange=useCallback(value=>{updateGlobals({[PARAM_KEY]:{...globals[PARAM_KEY],value}});},[backgroundsConfig,globals,updateGlobals]);return backgroundsConfig.disable?null:React.createElement(Fragment,null,React.createElement(WithTooltip,{placement:"top",closeOnOutsideClick:!0,tooltip:({onHide})=>React.createElement(TooltipLinkList,{links:getDisplayedItems(backgroundsConfig.values,selectedBackgroundColor,({selected})=>{selectedBackgroundColor!==selected&&onBackgroundChange(selected),onHide();})}),onVisibleChange:setIsTooltipVisible},React.createElement(IconButton,{key:"background",title:"Change the background of the preview",active:selectedBackgroundColor!=="transparent"||isTooltipVisible},React.createElement(Icons,{icon:"photo"}))))});var GridSelector=memo(function(){let[globals,updateGlobals]=useGlobals(),{grid}=useParameter(PARAM_KEY,{grid:{disable:!1}});if(grid?.disable)return null;let isActive=globals[PARAM_KEY]?.grid||!1;return React.createElement(IconButton,{key:"background",active:isActive,title:"Apply a grid to the preview",onClick:()=>updateGlobals({[PARAM_KEY]:{...globals[PARAM_KEY],grid:!isActive}})},React.createElement(Icons,{icon:"grid"}))});addons.register(ADDON_ID,()=>{addons.add(ADDON_ID,{title:"Backgrounds",id:"backgrounds",type:types.TOOL,match:({viewMode})=>!!(viewMode&&viewMode.match(/^(story|docs)$/)),render:()=>React.createElement(Fragment,null,React.createElement(BackgroundSelector,null),React.createElement(GridSelector,null))});});
|
package/dist/preview.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Addon_DecoratorFunction } from '@storybook/types';
|
|
2
2
|
|
|
3
|
-
declare const decorators:
|
|
3
|
+
declare const decorators: Addon_DecoratorFunction[];
|
|
4
4
|
declare const parameters: {
|
|
5
5
|
backgrounds: {
|
|
6
6
|
grid: {
|
package/dist/preview.mjs
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import{PARAM_KEY,
|
|
1
|
+
import { PARAM_KEY, getBackgroundColorByName, isReduceMotionEnabled, clearStyles, addBackgroundStyle, addGridStyle } from './chunk-GRJZJKJ4.mjs';
|
|
2
|
+
import { useMemo, useEffect } from '@storybook/preview-api';
|
|
3
|
+
|
|
4
|
+
var withBackground=(StoryFn,context)=>{let{globals:globals2,parameters:parameters2}=context,globalsBackgroundColor=globals2[PARAM_KEY]?.value,backgroundsConfig=parameters2[PARAM_KEY],selectedBackgroundColor=useMemo(()=>backgroundsConfig.disable?"transparent":getBackgroundColorByName(globalsBackgroundColor,backgroundsConfig.values,backgroundsConfig.default),[backgroundsConfig,globalsBackgroundColor]),isActive=useMemo(()=>selectedBackgroundColor&&selectedBackgroundColor!=="transparent",[selectedBackgroundColor]),selector=context.viewMode==="docs"?`#anchor--${context.id} .docs-story`:".sb-show-main",backgroundStyles=useMemo(()=>{let transitionStyle="transition: background-color 0.3s;";return `
|
|
2
5
|
${selector} {
|
|
3
6
|
background: ${selectedBackgroundColor} !important;
|
|
4
7
|
${isReduceMotionEnabled()?"":transitionStyle}
|
|
5
8
|
}
|
|
6
|
-
`},[selectedBackgroundColor,selector]);return useEffect(()=>{let selectorId=context.viewMode==="docs"?`addon-backgrounds-docs-${context.id}`:"addon-backgrounds-color";if(!isActive){clearStyles(selectorId);return}addBackgroundStyle(selectorId,backgroundStyles,context.viewMode==="docs"?context.id:null)},[isActive,backgroundStyles,context]),StoryFn()};
|
|
9
|
+
`},[selectedBackgroundColor,selector]);return useEffect(()=>{let selectorId=context.viewMode==="docs"?`addon-backgrounds-docs-${context.id}`:"addon-backgrounds-color";if(!isActive){clearStyles(selectorId);return}addBackgroundStyle(selectorId,backgroundStyles,context.viewMode==="docs"?context.id:null);},[isActive,backgroundStyles,context]),StoryFn()};var withGrid=(StoryFn,context)=>{let{globals:globals2,parameters:parameters2}=context,gridParameters=parameters2[PARAM_KEY].grid,isActive=globals2[PARAM_KEY]?.grid===!0&&gridParameters.disable!==!0,{cellAmount,cellSize,opacity}=gridParameters,isInDocs=context.viewMode==="docs",defaultOffset=parameters2.layout===void 0||parameters2.layout==="padded"?16:0,offsetX=gridParameters.offsetX??(isInDocs?20:defaultOffset),offsetY=gridParameters.offsetY??(isInDocs?20:defaultOffset),gridStyles=useMemo(()=>{let selector=context.viewMode==="docs"?`#anchor--${context.id} .docs-story`:".sb-show-main",backgroundSize=[`${cellSize*cellAmount}px ${cellSize*cellAmount}px`,`${cellSize*cellAmount}px ${cellSize*cellAmount}px`,`${cellSize}px ${cellSize}px`,`${cellSize}px ${cellSize}px`].join(", ");return `
|
|
7
10
|
${selector} {
|
|
8
11
|
background-size: ${backgroundSize} !important;
|
|
9
12
|
background-position: ${offsetX}px ${offsetY}px, ${offsetX}px ${offsetY}px, ${offsetX}px ${offsetY}px, ${offsetX}px ${offsetY}px !important;
|
|
@@ -13,4 +16,6 @@ import{PARAM_KEY,addBackgroundStyle,addGridStyle,clearStyles,getBackgroundColorB
|
|
|
13
16
|
linear-gradient(rgba(130, 130, 130, ${opacity/2}) 1px, transparent 1px),
|
|
14
17
|
linear-gradient(90deg, rgba(130, 130, 130, ${opacity/2}) 1px, transparent 1px) !important;
|
|
15
18
|
}
|
|
16
|
-
`},[cellSize]);return
|
|
19
|
+
`},[cellSize]);return useEffect(()=>{let selectorId=context.viewMode==="docs"?`addon-backgrounds-grid-docs-${context.id}`:"addon-backgrounds-grid";if(!isActive){clearStyles(selectorId);return}addGridStyle(selectorId,gridStyles);},[isActive,gridStyles,context]),StoryFn()};var decorators=[withGrid,withBackground],parameters={[PARAM_KEY]:{grid:{cellSize:20,opacity:.5,cellAmount:5},values:[{name:"light",value:"#F8F8F8"},{name:"dark",value:"#333333"}]}},globals={[PARAM_KEY]:null};
|
|
20
|
+
|
|
21
|
+
export { decorators, globals, parameters };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storybook/addon-backgrounds",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.8",
|
|
4
4
|
"description": "Switch backgrounds to view components in different settings",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"addon",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"repository": {
|
|
18
18
|
"type": "git",
|
|
19
19
|
"url": "https://github.com/storybookjs/storybook.git",
|
|
20
|
-
"directory": "addons/backgrounds"
|
|
20
|
+
"directory": "code/addons/backgrounds"
|
|
21
21
|
},
|
|
22
22
|
"funding": {
|
|
23
23
|
"type": "opencollective",
|
|
@@ -27,25 +27,25 @@
|
|
|
27
27
|
"author": "jbaxleyiii",
|
|
28
28
|
"exports": {
|
|
29
29
|
".": {
|
|
30
|
+
"types": "./dist/index.d.ts",
|
|
30
31
|
"node": "./dist/index.js",
|
|
31
32
|
"require": "./dist/index.js",
|
|
32
|
-
"import": "./dist/index.mjs"
|
|
33
|
-
"types": "./dist/index.d.ts"
|
|
33
|
+
"import": "./dist/index.mjs"
|
|
34
34
|
},
|
|
35
35
|
"./manager": {
|
|
36
|
+
"types": "./dist/manager.d.ts",
|
|
36
37
|
"require": "./dist/manager.js",
|
|
37
|
-
"import": "./dist/manager.mjs"
|
|
38
|
-
"types": "./dist/manager.d.ts"
|
|
38
|
+
"import": "./dist/manager.mjs"
|
|
39
39
|
},
|
|
40
40
|
"./preview": {
|
|
41
|
+
"types": "./dist/preview.d.ts",
|
|
41
42
|
"require": "./dist/preview.js",
|
|
42
|
-
"import": "./dist/preview.mjs"
|
|
43
|
-
"types": "./dist/preview.d.ts"
|
|
43
|
+
"import": "./dist/preview.mjs"
|
|
44
44
|
},
|
|
45
45
|
"./register": {
|
|
46
|
+
"types": "./dist/manager.d.ts",
|
|
46
47
|
"require": "./dist/manager.js",
|
|
47
|
-
"import": "./dist/manager.mjs"
|
|
48
|
-
"types": "./dist/manager.d.ts"
|
|
48
|
+
"import": "./dist/manager.mjs"
|
|
49
49
|
},
|
|
50
50
|
"./package.json": "./package.json"
|
|
51
51
|
},
|
|
@@ -76,14 +76,14 @@
|
|
|
76
76
|
"prep": "../../../scripts/prepare/bundle.ts"
|
|
77
77
|
},
|
|
78
78
|
"dependencies": {
|
|
79
|
-
"@storybook/client-logger": "7.0.
|
|
80
|
-
"@storybook/components": "7.0.
|
|
81
|
-
"@storybook/core-events": "7.0.
|
|
79
|
+
"@storybook/client-logger": "7.0.8",
|
|
80
|
+
"@storybook/components": "7.0.8",
|
|
81
|
+
"@storybook/core-events": "7.0.8",
|
|
82
82
|
"@storybook/global": "^5.0.0",
|
|
83
|
-
"@storybook/manager-api": "7.0.
|
|
84
|
-
"@storybook/preview-api": "7.0.
|
|
85
|
-
"@storybook/theming": "7.0.
|
|
86
|
-
"@storybook/types": "7.0.
|
|
83
|
+
"@storybook/manager-api": "7.0.8",
|
|
84
|
+
"@storybook/preview-api": "7.0.8",
|
|
85
|
+
"@storybook/theming": "7.0.8",
|
|
86
|
+
"@storybook/types": "7.0.8",
|
|
87
87
|
"memoizerific": "^1.11.3",
|
|
88
88
|
"ts-dedent": "^2.0.0"
|
|
89
89
|
},
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
"./src/preview.tsx"
|
|
113
113
|
]
|
|
114
114
|
},
|
|
115
|
-
"gitHead": "
|
|
115
|
+
"gitHead": "9991b68c7d0cd1543c974f358cae9e0d02b29e7e",
|
|
116
116
|
"storybook": {
|
|
117
117
|
"displayName": "Backgrounds",
|
|
118
118
|
"icon": "https://user-images.githubusercontent.com/263385/101991667-479cc600-3c7c-11eb-96d3-410e936252e7.png",
|