@storybook/addon-onboarding 0.0.0-pr-28385-sha-9aab3bd7 → 0.0.0-pr-28415-sha-98c4ca6f
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,6 +1,6 @@
|
|
|
1
|
-
import { SyntaxHighlighter, IconButton } from '
|
|
2
|
-
import { SAVE_STORY_RESPONSE } from '
|
|
3
|
-
import { styled, keyframes, convert, ThemeProvider, themes, useTheme, color } from '
|
|
1
|
+
import { SyntaxHighlighter, IconButton } from 'storybook/internal/components';
|
|
2
|
+
import { SAVE_STORY_RESPONSE } from 'storybook/internal/core-events';
|
|
3
|
+
import { styled, keyframes, convert, ThemeProvider, themes, useTheme, color } from 'storybook/internal/theming';
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import React__default, { forwardRef, useState, useCallback, useEffect, isValidElement } from 'react';
|
|
6
6
|
import * as ReactDOM from 'react-dom';
|
|
@@ -125,13 +125,13 @@ Valid keys: `+JSON.stringify(Object.keys(shapeTypes),null," "));var error=check
|
|
|
125
125
|
box-shadow: rgba(2,156,253,1) 0 0 2px 1px, 0 0 0 0 rgba(2, 156, 253, 0), 0 0 0 0 rgba(2, 156, 253, 0);
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
|
-
`,style=document.createElement("style");style.id="sb-onboarding-pulsating-effect",style.innerHTML=keyframes2,document.head.appendChild(style);}else element.style.boxShadow="rgba(2,156,253,1) 0 0 2px 1px";return ()=>{let styleElement=document.querySelector("#sb-onboarding-pulsating-effect");styleElement&&styleElement.remove(),element&&(element.style.animation="",element.style.boxShadow="");}},[targetSelector,pulsating]),null}var fadeIn=keyframes({from:{opacity:0},to:{opacity:1}}),slideIn=keyframes({from:{transform:"translate(0,
|
|
128
|
+
`,style=document.createElement("style");style.id="sb-onboarding-pulsating-effect",style.innerHTML=keyframes2,document.head.appendChild(style);}else element.style.boxShadow="rgba(2,156,253,1) 0 0 2px 1px";return ()=>{let styleElement=document.querySelector("#sb-onboarding-pulsating-effect");styleElement&&styleElement.remove(),element&&(element.style.animation="",element.style.boxShadow="");}},[targetSelector,pulsating]),null}var fadeIn=keyframes({from:{opacity:0},to:{opacity:1}}),slideIn=keyframes({from:{transform:"translate(0, 20px)",opacity:0},to:{transform:"translate(0, 0)",opacity:1}}),scaleIn=keyframes({from:{opacity:0,transform:"scale(0.8)"},to:{opacity:1,transform:"scale(1)"}}),rotate=keyframes({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Wrapper3=styled.div(({visible})=>({position:"fixed",top:0,left:0,right:0,bottom:0,display:"flex",opacity:visible?1:0,alignItems:"center",justifyContent:"center",zIndex:1e3,transition:"opacity 1s 0.5s"})),Backdrop=styled.div({position:"absolute",top:0,left:0,right:0,bottom:0,animation:`${fadeIn} 2s`,background:`
|
|
129
129
|
radial-gradient(90% 90%, #ff4785 0%, #db5698 30%, #1ea7fdcc 100%),
|
|
130
130
|
radial-gradient(circle, #ff4785 0%, transparent 80%),
|
|
131
131
|
radial-gradient(circle at 30% 40%, #fc521f99 0%, #fc521f66 20%, transparent 40%),
|
|
132
132
|
radial-gradient(circle at 75% 75%, #fc521f99 0%, #fc521f77 18%, transparent 30%)`,"&::before":{opacity:.5,background:`
|
|
133
133
|
radial-gradient(circle at 30% 40%, #fc521f99 0%, #fc521f66 10%, transparent 20%),
|
|
134
|
-
radial-gradient(circle at 75% 75%, #fc521f99 0%, #fc521f77 8%, transparent 20%)`,content:'""',position:"absolute",top:"-50vw",left:"-50vh",transform:"translate(-50%, -50%)",width:"calc(100vw + 100vh)",height:"calc(100vw + 100vh)",animation:`${rotate} 12s linear infinite`}}),Content=styled.div(({visible})=>({position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:"white",textAlign:"center",maxWidth:
|
|
134
|
+
radial-gradient(circle at 75% 75%, #fc521f99 0%, #fc521f77 8%, transparent 20%)`,content:'""',position:"absolute",top:"-50vw",left:"-50vh",transform:"translate(-50%, -50%)",width:"calc(100vw + 100vh)",height:"calc(100vw + 100vh)",animation:`${rotate} 12s linear infinite`}}),Content=styled.div(({visible})=>({position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:"white",textAlign:"center",width:"90vw",minWidth:290,maxWidth:410,opacity:visible?1:0,transition:"opacity 0.5s",h1:{fontSize:45,fontWeight:"bold",animation:`${slideIn} 1.5s 1s backwards`}})),Features=styled.div({display:"flex",marginTop:40,div:{display:"flex",flexBasis:"33.33%",flexDirection:"column",alignItems:"center",animation:`${slideIn} 1s backwards`,"&:nth-child(1)":{animationDelay:"2s"},"&:nth-child(2)":{animationDelay:"2.5s"},"&:nth-child(3)":{animationDelay:"3s"}},svg:{marginBottom:10}}),RadialButton=styled.button({display:"inline-flex",position:"relative",alignItems:"center",justifyContent:"center",marginTop:40,width:48,height:48,padding:0,borderRadius:"50%",border:0,outline:"none",background:"rgba(255, 255, 255, 0.3)",cursor:"pointer",transition:"background 0.2s",animation:`${scaleIn} 1.5s 4s backwards`,"&:hover, &:focus":{background:"rgba(255, 255, 255, 0.4)"}}),ArrowIcon=styled(ArrowRightIcon)({width:30,color:"white"}),ProgressCircle=styled.svg(({progress})=>({position:"absolute",top:-1,left:-1,width:"50px!important",height:"50px!important",transform:"rotate(-90deg)",color:"white",circle:{r:"24",cx:"25",cy:"25",fill:"transparent",stroke:progress?"currentColor":"transparent",strokeWidth:"1",strokeLinecap:"round",strokeDasharray:Math.PI*48}})),SplashScreen=({onDismiss,duration=6e3})=>{let[progress,setProgress]=useState(-4e5/duration),[visible,setVisible]=useState(!0),ready=progress>=100,dismiss=useCallback(()=>{setVisible(!1);let timeout=setTimeout(onDismiss,1500);return ()=>clearTimeout(timeout)},[onDismiss]);return useEffect(()=>{if(!duration)return;let framelength=1e3/50,increment=100/(duration/framelength),interval=setInterval(()=>setProgress(prev=>prev+increment),framelength);return ()=>clearInterval(interval)},[duration]),useEffect(()=>{ready&&dismiss();},[ready,dismiss]),React__default.createElement(Wrapper3,{visible},React__default.createElement(Backdrop,null),React__default.createElement(Content,{visible},React__default.createElement("h1",null,"Meet your new frontend workshop"),React__default.createElement(Features,null,React__default.createElement("div",null,React__default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"33",height:"32"},React__default.createElement("path",{d:"M4.06 0H32.5v28.44h-3.56V32H.5V3.56h3.56V0Zm21.33 7.11H4.06v21.33h21.33V7.11Z",fill:"currentColor"})),"Development"),React__default.createElement("div",null,React__default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},React__default.createElement("path",{d:"M15.95 32c-1.85 0-3.1-1.55-3.1-3.54 0-1.1.45-2.78 1.35-5.03.9-2.3 1.35-4.51 1.35-6.81a22.21 22.21 0 0 0-5.1 3.67c-2.5 2.47-4.95 4.9-7.55 4.9-1.6 0-2.9-1.1-2.9-2.43 0-1.46 1.35-2.91 4.3-3.62 1.45-.36 3.1-.75 4.95-1.06 1.8-.31 3.8-1.02 5.9-2.08a23.77 23.77 0 0 0-6.1-2.12C5.3 13.18 2.3 12.6 1 11.28.35 10.6 0 9.9 0 9.14 0 7.82 1.2 6.8 2.95 6.8c2.65 0 5.75 3.1 7.95 5.3 1.1 1.1 2.65 2.21 4.65 3.27v-.57c0-1.77-.15-3.23-.55-4.3-.8-2.11-2.05-5.43-2.05-6.97 0-2.04 1.3-3.54 3.1-3.54 1.75 0 3.1 1.41 3.1 3.54 0 1.06-.45 2.78-1.35 5.12-.9 2.35-1.35 4.6-1.35 6.72 2.85-1.59 2.5-1.41 4.95-3.5 2.35-2.29 4-3.7 4.9-4.23.95-.58 1.9-.84 2.9-.84 1.6 0 2.8.97 2.8 2.34 0 1.5-1.25 2.78-4.15 3.62-1.4.4-3.05.75-4.9 1.1-1.9.36-3.9 1.07-6.1 2.13a23.3 23.3 0 0 0 5.95 2.08c3.65.7 6.75 1.32 8.15 2.6.7.67 1.05 1.33 1.05 2.08 0 1.33-1.2 2.43-2.95 2.43-2.95 0-6.75-4.15-8.2-5.61-.7-.7-2.2-1.72-4.4-2.96v.57c0 1.9.45 4.03 1.3 6.32.85 2.3 1.3 3.94 1.3 4.95 0 2.08-1.35 3.54-3.1 3.54Z",fill:"currentColor"})),"Testing"),React__default.createElement("div",null,React__default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"33",height:"32"},React__default.createElement("path",{d:"M.5 16a16 16 0 1 1 32 0 16 16 0 0 1-32 0Zm16 12.44A12.44 12.44 0 0 1 4.3 13.53a8 8 0 1 0 9.73-9.73 12.44 12.44 0 1 1 2.47 24.64ZM12.06 16a4.44 4.44 0 1 1 0-8.89 4.44 4.44 0 0 1 0 8.89Z",fill:"currentColor",fillRule:"evenodd"})),"Documentation")),React__default.createElement(RadialButton,{onClick:dismiss},React__default.createElement(ArrowIcon,null),React__default.createElement(ProgressCircle,{xmlns:"http://www.w3.org/2000/svg"},React__default.createElement("circle",null)),React__default.createElement(ProgressCircle,{xmlns:"http://www.w3.org/2000/svg",progress:!0},React__default.createElement("circle",{strokeDashoffset:Math.PI*48*(1-Math.max(0,Math.min(progress,100))/100)})))))};var SpanHighlight=styled.span(({theme:theme2})=>({display:"inline-flex",borderRadius:3,padding:"0 5px",marginBottom:-2,opacity:.8,fontFamily:theme2.typography.fonts.mono,fontSize:11,border:theme2.base==="dark"?theme2.color.darkest:theme2.color.lightest,color:theme2.base==="dark"?theme2.color.lightest:theme2.color.darkest,backgroundColor:theme2.base==="dark"?"black":theme2.color.light,boxSizing:"border-box",lineHeight:"17px"})),CodeWrapper=styled.div(({theme:theme2})=>({background:theme2.background.content,borderRadius:3,marginTop:15,padding:10,fontSize:theme2.typography.size.s1,".linenumber":{opacity:.5}})),theme=convert();function Onboarding({api}){let[enabled,setEnabled]=useState(!0),[showConfetti,setShowConfetti]=useState(!1),[step,setStep]=useState("1:Intro"),[primaryControl,setPrimaryControl]=useState(),[saveFromControls,setSaveFromControls]=useState(),[createNewStoryForm,setCreateNewStoryForm]=useState(),[createdStory,setCreatedStory]=useState(),selectStory=useCallback(storyId=>{try{let{id,refId}=api.getCurrentStoryData()||{};(id!==storyId||refId!==void 0)&&api.selectStory(storyId);}catch{}},[api]),disableOnboarding=useCallback(()=>{let url=new URL(window.location.href),path=decodeURIComponent(url.searchParams.get("path"));url.search=`?path=${path}&onboarding=false`,history.replaceState({},"",url.href),api.setQueryParams({onboarding:"false"}),setEnabled(!1);},[api,setEnabled]),completeOnboarding=useCallback(()=>{api.emit(STORYBOOK_ADDON_ONBOARDING_CHANNEL,{step:"6:FinishedOnboarding",type:"telemetry"}),selectStory("configure-your-project--docs"),disableOnboarding();},[api,selectStory,disableOnboarding]);if(useEffect(()=>{api.setQueryParams({onboarding:"true"}),selectStory("example-button--primary"),api.togglePanel(!0),api.togglePanelPosition("bottom"),api.setSelectedPanel("addon-controls");},[api,selectStory]),useEffect(()=>{let observer=new MutationObserver(()=>{setPrimaryControl(document.getElementById("control-primary")),setSaveFromControls(document.getElementById("save-from-controls")),setCreateNewStoryForm(document.getElementById("create-new-story-form"));});return observer.observe(document.body,{childList:!0,subtree:!0}),()=>observer.disconnect()},[]),useEffect(()=>{setStep(current=>["1:Intro","5:StoryCreated","6:FinishedOnboarding"].includes(current)?current:createNewStoryForm?"4:CreateStory":saveFromControls?"3:SaveFromControls":primaryControl?"2:Controls":"1:Intro");},[createNewStoryForm,primaryControl,saveFromControls]),useEffect(()=>api.on(SAVE_STORY_RESPONSE,({payload,success})=>{!success||!payload?.newStoryName||(setCreatedStory(payload),setShowConfetti(!0),setStep("5:StoryCreated"),setTimeout(()=>api.clearNotification("save-story-success")));}),[api]),useEffect(()=>api.emit(STORYBOOK_ADDON_ONBOARDING_CHANNEL,{step,type:"telemetry"}),[api,step]),!enabled)return null;let source=createdStory?.sourceFileContent,startIndex=source?.lastIndexOf(`export const ${createdStory?.newStoryName}`),snippet=source?.slice(startIndex),startingLineNumber=source?.slice(0,startIndex).split(`
|
|
135
135
|
`).length,steps=[{key:"2:Controls",target:"#control-primary",title:"Interactive story playground",content:React__default.createElement(React__default.Fragment,null,"See how a story renders with different data and state without touching code. Try it out by toggling this button.",React__default.createElement(HighlightElement,{targetSelector:"#control-primary",pulsating:!0})),offset:20,placement:"right",disableBeacon:!0,disableOverlay:!0,spotlightClicks:!0,onNextButtonClick:()=>{document.querySelector("#control-primary").click();}},{key:"3:SaveFromControls",target:'button[aria-label="Create new story with these settings"]',title:"Save your changes as a new story",content:React__default.createElement(React__default.Fragment,null,"Great! Storybook stories represent the key states of each of your components. After modifying a story, you can save your changes from here or reset it.",React__default.createElement(HighlightElement,{targetSelector:"button[aria-label='Create new story with these settings']"})),offset:6,placement:"top",disableBeacon:!0,disableOverlay:!0,spotlightClicks:!0,onNextButtonClick:()=>{document.querySelector('button[aria-label="Create new story with these settings"]').click();},styles:{tooltip:{width:400}}},{key:"5:StoryCreated",target:'#storybook-explorer-tree [data-selected="true"]',title:"You just added your first story!",content:React__default.createElement(React__default.Fragment,null,"Well done! You just created your first story from the Storybook manager. This automatically added a few lines of code in"," ",React__default.createElement(SpanHighlight,null,createdStory?.sourceFileName),".",snippet&&React__default.createElement(ThemeProvider,{theme:convert(themes.dark)},React__default.createElement(CodeWrapper,null,React__default.createElement(SyntaxHighlighter,{language:"jsx",showLineNumbers:!0,startingLineNumber},snippet)))),offset:12,placement:"right",disableBeacon:!0,disableOverlay:!0,styles:{tooltip:{width:400}}}];return React__default.createElement(ThemeProvider,{theme},showConfetti&&React__default.createElement(Confetti,{numberOfPieces:800,recycle:!1,tweenDuration:2e4,onConfettiComplete:confetti=>{confetti?.reset(),setShowConfetti(!1);}}),step==="1:Intro"?React__default.createElement(SplashScreen,{onDismiss:()=>setStep("2:Controls")}):React__default.createElement(GuidedTour,{step,steps,onClose:disableOnboarding,onComplete:completeOnboarding}))}
|
|
136
136
|
|
|
137
137
|
export { Onboarding as default };
|
package/dist/manager.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import ReactDOM from 'react-dom';
|
|
2
2
|
import React, { lazy, Suspense } from 'react';
|
|
3
|
-
import { addons } from '
|
|
4
|
-
import { STORY_SPECIFIED } from '
|
|
3
|
+
import { addons } from 'storybook/internal/manager-api';
|
|
4
|
+
import { STORY_SPECIFIED } from 'storybook/internal/core-events';
|
|
5
5
|
|
|
6
|
-
var Onboarding=lazy(()=>import('./Onboarding-
|
|
6
|
+
var Onboarding=lazy(()=>import('./Onboarding-ZRRJBDS3.js'));addons.register("@storybook/addon-onboarding",async api=>{let urlState=api.getUrlState(),isOnboarding=urlState.path==="/onboarding"||urlState.queryParams.onboarding==="true";api.once(STORY_SPECIFIED,()=>{if(!(!!api.getData("example-button--primary")||!!document.getElementById("example-button--primary"))){console.warn("[@storybook/addon-onboarding] It seems like you have finished the onboarding experience in Storybook! Therefore this addon is not necessary anymore and will not be loaded. You are free to remove it from your project. More info: https://github.com/storybookjs/storybook/tree/next/code/addons/onboarding#uninstalling");return}if(!isOnboarding||window.innerWidth<730)return;api.togglePanel(!0),api.togglePanelPosition("bottom"),api.setSelectedPanel("addon-controls");let domNode=document.createElement("div");domNode.id="storybook-addon-onboarding",document.body.appendChild(domNode),ReactDOM.render(React.createElement(Suspense,{fallback:React.createElement("div",null)},React.createElement(Onboarding,{api})),domNode);});});
|