@storybook/addon-onboarding 0.0.16--canary.e63d5de.0 → 0.0.16--canary.fbfd9b5.0

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/manager.js CHANGED
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
3
  var s = require('react');
4
- var gt = require('react-confetti');
4
+ var Ct = require('react-confetti');
5
5
  var theming = require('@storybook/theming');
6
- var Kt = require('react-dom');
7
- var Bt = require('react-joyride');
6
+ var _t = require('react-dom');
7
+ var Ot = require('react-joyride');
8
8
  var coreEvents = require('@storybook/core-events');
9
- var d = require('@radix-ui/react-dialog');
9
+ var m = require('@radix-ui/react-dialog');
10
10
  var components = require('@storybook/components');
11
11
  var managerApi = require('@storybook/manager-api');
12
12
 
@@ -31,12 +31,12 @@ function _interopNamespace(e) {
31
31
  }
32
32
 
33
33
  var s__default = /*#__PURE__*/_interopDefault(s);
34
- var gt__default = /*#__PURE__*/_interopDefault(gt);
35
- var Kt__default = /*#__PURE__*/_interopDefault(Kt);
36
- var Bt__default = /*#__PURE__*/_interopDefault(Bt);
37
- var d__namespace = /*#__PURE__*/_interopNamespace(d);
34
+ var Ct__default = /*#__PURE__*/_interopDefault(Ct);
35
+ var _t__default = /*#__PURE__*/_interopDefault(_t);
36
+ var Ot__default = /*#__PURE__*/_interopDefault(Ot);
37
+ var m__namespace = /*#__PURE__*/_interopNamespace(m);
38
38
 
39
- var ct=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var ut=(t,o)=>{for(var e in o)ct(t,e,{get:o[e],enumerable:!0});};function z({targetSelector:t}){return s.useEffect(()=>{let o=document.querySelector(t);if(o){o.style.animation="pulsate 3s infinite",o.style.transformOrigin="center",o.style.animationTimingFunction="ease-in-out";let e=`
39
+ var ht=Object.defineProperty;var l=(t,o)=>()=>(t&&(o=t(t=0)),o);var xt=(t,o)=>{for(var e in o)ht(t,e,{get:o[e],enumerable:!0});};function Y({targetSelector:t}){return s.useEffect(()=>{let o=document.querySelector(t);if(o){o.style.animation="pulsate 3s infinite",o.style.transformOrigin="center",o.style.animationTimingFunction="ease-in-out";let e=`
40
40
  @keyframes pulsate {
41
41
  0% {
42
42
  box-shadow: 0 0 0 0 rgba(2, 156, 253, 0.7), 0 0 0 0 rgba(2, 156, 253, 0.4);
@@ -48,61 +48,25 @@ var ct=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var ut=(t,o)=>{f
48
48
  box-shadow: 0 0 0 0 rgba(2, 156, 253, 0), 0 0 0 0 rgba(2, 156, 253, 0);
49
49
  }
50
50
  }
51
- `,r=document.createElement("style");r.id="sb-onboarding-pulsating-effect",r.innerHTML=e,document.head.appendChild(r);}return ()=>{document.querySelector("#sb-onboarding-pulsating-effect")?.remove();}},[t]),null}var N=a(()=>{});function b({top:t=0,left:o=0,width:e=window.innerWidth,height:r=window.innerHeight,...l}){let[n]=s.useState(()=>{let p=document.createElement("div");return p.setAttribute("id","confetti-container"),p.setAttribute("style","position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 9999;"),p});return s.useEffect(()=>(document.body.appendChild(n),()=>{document.body.removeChild(n);}),[]),Kt.createPortal(s__default.default.createElement(Ct,{top:t,left:o,width:e,height:r},s__default.default.createElement(gt__default.default,{...l})),n)}var Ct,D=a(()=>{Ct=theming.styled.div(({width:t,height:o,left:e,top:r})=>({width:`${t}px`,height:`${o}px`,left:`${e}px`,top:`${r}px`,position:"relative",overflow:"hidden"}));});var kt,g,C=a(()=>{kt=theming.styled.button`
52
- all: unset;
53
- border: 0;
54
- border-radius: 0.25rem;
55
- cursor: pointer;
56
- display: inline-flex;
57
- align-items: center;
58
- justify-content: center;
59
- padding: 0 0.75rem;
60
- background: ${({theme:t})=>t.color.secondary};
61
- color: ${({theme:t})=>t.color.lightest};
62
- height: 32px;
63
- font-size: 0.8125rem;
64
- font-weight: 700;
65
- font-family: ${({theme:t})=>t.typography.fonts.base};
66
- transition: all 0.16s ease-in-out;
67
- text-decoration: none;
68
-
69
- &:hover {
70
- background-color: #0b94eb;
71
- }
72
-
73
- &:focus {
74
- box-shadow: inset 0 0 0 2px rgba(0, 0, 0, 0.1);
75
- }
76
- `,g=({children:t,onClick:o,...e})=>s__default.default.createElement(kt,{onClick:o,...e},t);});var vt,Tt,Pt,Dt,Et,j,H=a(()=>{C();vt=theming.styled.div`
77
- background: #fff;
78
- width: 260px;
79
- padding: 15px;
80
- border-radius: 5px;
81
- `,Tt=theming.styled.div`
51
+ `,r=document.createElement("style");r.id="sb-onboarding-pulsating-effect",r.innerHTML=e,document.head.appendChild(r);}return ()=>{document.querySelector("#sb-onboarding-pulsating-effect")?.remove();}},[t]),null}var j=l(()=>{});function h({top:t=0,left:o=0,width:e=window.innerWidth,height:r=window.innerHeight,...n}){let[i]=s.useState(()=>{let d=document.createElement("div");return d.setAttribute("id","confetti-container"),d.setAttribute("style","position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 9999;"),d});return s.useEffect(()=>(document.body.appendChild(i),()=>{document.body.removeChild(i);}),[]),_t.createPortal(s__default.default.createElement(Pt,{top:t,left:o,width:e,height:r},s__default.default.createElement(Ct__default.default,{...n})),i)}var Pt,T=l(()=>{Pt=theming.styled.div(({width:t,height:o,left:e,top:r})=>({width:`${t}px`,height:`${o}px`,left:`${e}px`,top:`${r}px`,position:"relative",overflow:"hidden"}));});var U,_,G,K=l(()=>{U=theming.styled.div`
82
52
  display: flex;
83
53
  flex-direction: column;
84
54
  align-items: flex-start;
85
- `,Pt=theming.styled.div`
55
+ `,_=theming.styled.strong`
86
56
  font-size: 13px;
87
- font-weight: 700;
88
- color: ${({theme:t})=>t.color.darkest};
89
- `,Dt=theming.styled.p`
57
+ `,G=theming.styled.p`
90
58
  font-size: 13px;
91
59
  text-align: start;
92
- color: ${({theme:t})=>t.color.mediumdark};
60
+ color: #798186;
93
61
  margin: 0;
94
- margin-top: 5px;
95
- `,Et=theming.styled.div`
96
- display: flex;
97
- justify-content: flex-end;
98
- margin-top: 15px;
99
- `,j=({step:t,primaryProps:o,tooltipProps:e})=>(console.log(t),s__default.default.createElement(vt,{...e},s__default.default.createElement(Tt,null,t.title&&s__default.default.createElement(Pt,null,t.title),s__default.default.createElement(Dt,null,t.content)),(t.title!=="Interactive story playground"||t.title!=="Continue setting up your project")&&s__default.default.createElement(Et,{id:"buttonNext"},s__default.default.createElement(g,{...o},"Next"))));});function U({api:t,isFinalStep:o,onFirstTourDone:e}){let[r,l]=s.useState();return s.useEffect(()=>{t.on(coreEvents.STORY_ARGS_UPDATED,()=>{E=E+1,E===2&&l(3);});},[]),s__default.default.createElement(Bt__default.default,{steps:o?[{target:"#configure-your-project--docs",title:"Continue setting up your project",content:"You nailed the basics. Now get started writing stories for your own components.",placement:"right",disableOverlay:!0,disableBeacon:!0,floaterProps:{disableAnimation:!0}}]:[{target:"#storybook-explorer-tree > div",title:"Storybook is built from stories",content:"Storybook uses stories to represent the key states supported by each of your components. For example: this Button component has four stories.",placement:"right",disableBeacon:!0,styles:{spotlight:{transform:"translateY(30px)"}},floaterProps:{disableAnimation:!0}},{target:"#storybook-preview-iframe",title:"Storybook previews are interactive",content:"Whenever you modify code or stories, Storybook automatically updates how it previews your components.",placement:"bottom"},{target:"#root div[role=main]",title:"Interactive story playground",content:s__default.default.createElement(s__default.default.Fragment,null,"See how a story renders with different data and state without touching code.",s__default.default.createElement("br",null),s__default.default.createElement("br",null),"Try it out by pressing this button.",s__default.default.createElement(z,{targetSelector:"#control-primary"})),placement:"right",spotlightClicks:!0,floaterProps:{target:"#control-primary"}},{target:"#control-primary",title:"Congratulations!",content:s__default.default.createElement(s__default.default.Fragment,null,"You've learned how to control your stories interactively. Now: let's explore how to write your first story.",s__default.default.createElement(b,{numberOfPieces:100})),placement:"right",disableOverlay:!0,locale:{last:"Next"}}],continuous:!0,stepIndex:r,spotlightPadding:0,hideBackButton:!0,disableCloseOnEsc:!0,disableOverlayClose:!0,disableScrolling:!0,hideCloseButton:!0,callback:p=>{!o&&p.status===Bt.STATUS.FINISHED&&e();},floaterProps:{styles:{floater:{padding:0,paddingLeft:8,paddingTop:8,filter:"drop-shadow(0px 5px 5px rgba(0,0,0,0.05)) drop-shadow(0 1px 3px rgba(0,0,0,0.1))"}}},tooltipComponent:j,styles:{spotlight:{border:"solid 2px #004c7c"},overlay:{backgroundColor:"rgba(0, 0, 0, 0.48)"},options:{zIndex:1e4,primaryColor:"#029CFD"}}})}var E,_=a(()=>{N();D();H();E=0;});var K,Ft,V,Z=a(()=>{K=theming.styled(d__namespace.Overlay)`
62
+ margin-top: 4px;
63
+ `;});function g({prefix:t,title:o,body:e}){return s__default.default.createElement(U,null,t,s__default.default.createElement(_,null,o),s__default.default.createElement(G,null,e))}var V=l(()=>{K();});function x(t){let o={...O,...t.style||{}};return s__default.default.createElement("button",{type:"button",...t,style:o})}var O,b=l(()=>{O={border:0,cursor:"pointer",fontSize:13,lineHeight:1,padding:"9px 12px",backgroundColor:"#029CFD",borderRadius:4,color:"#fff",fontWeight:700};});function q({api:t,isFinalStep:o,onFirstTourDone:e}){let[r,n]=s.useState();return s.useEffect(()=>{t.on(coreEvents.STORY_ARGS_UPDATED,()=>{B=B+1,B===2&&n(3);});},[]),s__default.default.createElement(Ot__default.default,{steps:o?[{target:"#configure-your-project--docs",content:s__default.default.createElement(g,{title:"Continue setting up your project",body:"You nailed the basics. Now get started writing stories for your own components."}),placement:"right",disableOverlay:!0,disableBeacon:!0,styles:{buttonNext:{display:"none"}},floaterProps:{disableAnimation:!0}}]:[{target:"#storybook-explorer-tree > div",content:s__default.default.createElement(g,{title:"Storybook is built from stories",body:"Storybook uses stories to represent the key states supported by each of your components. For example: this Button component has four stories."}),placement:"right",disableBeacon:!0,styles:{spotlight:{transform:"translateY(30px)"}},floaterProps:{disableAnimation:!0}},{target:"#storybook-preview-iframe",content:s__default.default.createElement(g,{title:"Storybook previews are interactive",body:"Whenever you modify code or stories, Storybook automatically updates how it previews your components."}),placement:"bottom"},{target:"#root div[role=main]",content:s__default.default.createElement(s__default.default.Fragment,null,s__default.default.createElement(g,{title:"Interactive story playground",body:s__default.default.createElement(s__default.default.Fragment,null,"See how a story renders with different data and state without touching code.",s__default.default.createElement("br",null),"Try it out by pressing this button.")}),s__default.default.createElement(Y,{targetSelector:"#control-primary"})),placement:"right",spotlightClicks:!0,floaterProps:{target:"#control-primary"},styles:{buttonNext:{display:"none"}}},{target:"#control-primary",content:s__default.default.createElement(s__default.default.Fragment,null,s__default.default.createElement(h,{numberOfPieces:100}),s__default.default.createElement(g,{title:"Congratulations!",body:"You've learned how to control your stories interactively. Now: let's explore how to write your first story."})),placement:"right",disableOverlay:!0,locale:{last:"Next"}}],continuous:!0,stepIndex:r,spotlightPadding:0,hideBackButton:!0,disableCloseOnEsc:!0,disableOverlayClose:!0,disableScrolling:!0,hideCloseButton:!0,callback:d=>{!o&&d.status===Ot.STATUS.FINISHED&&e();},floaterProps:{styles:{floater:{padding:0,paddingLeft:8,paddingTop:8,filter:"drop-shadow(0px 5px 5px rgba(0,0,0,0.05)) drop-shadow(0 1px 3px rgba(0,0,0,0.1))"}}},styles:{spotlight:{border:"solid 2px #004c7c"},tooltip:{maxWidth:260,borderRadius:4,padding:15},overlay:{backgroundColor:"rgba(0, 0, 0, 0.48)"},buttonNext:{...O,marginTop:5},tooltipContent:{paddingTop:4,padding:0},options:{zIndex:1e4,primaryColor:"#029CFD"}}})}var B,Z=l(()=>{j();T();V();b();B=0;});var Q,It,X,R=l(()=>{Q=theming.styled(m__namespace.Overlay)`
100
64
  background-color: rgba(27, 28, 29, 0.48);
101
65
  position: fixed;
102
66
  inset: 0px;
103
67
  width: 100%;
104
68
  height: 100%;
105
- `,Ft=theming.styled.div(({width:t,height:o})=>theming.css`
69
+ `,It=theming.styled.div(({width:t,height:o})=>theming.css`
106
70
  background-color: white;
107
71
  border-radius: 6px;
108
72
  box-shadow: rgba(14, 18, 22, 0.35) 0px 10px 38px -10px;
@@ -114,20 +78,20 @@ var ct=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var ut=(t,o)=>{f
114
78
  height: ${o?`${o}px`:"auto"};
115
79
  max-width: calc(100% - 40px);
116
80
  max-height: 85vh;
117
- `),V=s__default.default.forwardRef(({width:t,height:o,children:e,...r},l)=>s__default.default.createElement(d__namespace.Content,{ref:l,asChild:!0,...r},s__default.default.createElement(Ft,{width:t,height:o},e)));});function k({children:t,width:o,height:e,onEscapeKeyDown:r,onInteractOutside:l=p=>p.preventDefault(),...n}){return s__default.default.createElement(d__namespace.Root,{...n},s__default.default.createElement(d__namespace.Portal,null,s__default.default.createElement(K,null),s__default.default.createElement(V,{width:o,height:e,onInteractOutside:l,onEscapeKeyDown:r},t({Title:d__namespace.Title,Description:d__namespace.Description,Close:d__namespace.Close}))))}var W=a(()=>{Z();});function v(){return s__default.default.createElement("svg",{width:"32px",height:"40px",viewBox:"0 0 256 319",preserveAspectRatio:"xMidYMid"},s__default.default.createElement("defs",null,s__default.default.createElement("path",{d:"M9.87245893,293.324145 L0.0114611411,30.5732167 C-0.314208957,21.8955842 6.33948896,14.5413918 15.0063196,13.9997149 L238.494389,0.0317105427 C247.316188,-0.519651867 254.914637,6.18486163 255.466,15.0066607 C255.486773,15.339032 255.497167,15.6719708 255.497167,16.0049907 L255.497167,302.318596 C255.497167,311.157608 248.331732,318.323043 239.492719,318.323043 C239.253266,318.323043 239.013844,318.317669 238.774632,318.306926 L25.1475605,308.712253 C16.8276309,308.338578 10.1847994,301.646603 9.87245893,293.324145 L9.87245893,293.324145 Z",id:"path-1"})),s__default.default.createElement("g",null,s__default.default.createElement("mask",{id:"mask-2",fill:"white"},s__default.default.createElement("use",{xlinkHref:"#path-1"})),s__default.default.createElement("use",{fill:"#FF4785",fillRule:"nonzero",xlinkHref:"#path-1"}),s__default.default.createElement("path",{d:"M188.665358,39.126973 L190.191903,2.41148534 L220.883535,0 L222.205755,37.8634126 C222.251771,39.1811466 221.22084,40.2866846 219.903106,40.3327009 C219.338869,40.3524045 218.785907,40.1715096 218.342409,39.8221376 L206.506729,30.4984116 L192.493574,41.1282444 C191.443077,41.9251106 189.945493,41.7195021 189.148627,40.6690048 C188.813185,40.2267976 188.6423,39.6815326 188.665358,39.126973 Z M149.413703,119.980309 C149.413703,126.206975 191.355678,123.222696 196.986019,118.848893 C196.986019,76.4467826 174.234041,54.1651411 132.57133,54.1651411 C90.9086182,54.1651411 67.5656805,76.7934542 67.5656805,110.735941 C67.5656805,169.85244 147.345341,170.983856 147.345341,203.229219 C147.345341,212.280549 142.913138,217.654777 133.162291,217.654777 C120.456641,217.654777 115.433477,211.165914 116.024438,189.103298 C116.024438,184.317101 67.5656805,182.824962 66.0882793,189.103298 C62.3262146,242.56887 95.6363019,257.990394 133.753251,257.990394 C170.688279,257.990394 199.645341,238.303123 199.645341,202.663511 C199.645341,139.304202 118.683759,141.001326 118.683759,109.604526 C118.683759,96.8760922 128.139127,95.178968 133.753251,95.178968 C139.662855,95.178968 150.300143,96.2205679 149.413703,119.980309 Z",fill:"#FFFFFF",fillRule:"nonzero",mask:"url(#mask-2)"})))}var B=a(()=>{});var T,q,J,X,Q,R,tt,At,ot,zt,et,Nt,rt,$=a(()=>{T=theming.styled.div`
81
+ `),X=s__default.default.forwardRef(({width:t,height:o,children:e,...r},n)=>s__default.default.createElement(m__namespace.Content,{ref:n,asChild:!0,...r},s__default.default.createElement(It,{width:t,height:o},e)));});function S({children:t,width:o,height:e,onEscapeKeyDown:r,onInteractOutside:n=d=>d.preventDefault(),...i}){return s__default.default.createElement(m__namespace.Root,{...i},s__default.default.createElement(m__namespace.Portal,null,s__default.default.createElement(Q,null),s__default.default.createElement(X,{width:o,height:e,onInteractOutside:n,onEscapeKeyDown:r},t({Title:m__namespace.Title,Description:m__namespace.Description,Close:m__namespace.Close}))))}var M=l(()=>{R();});function k(){return s__default.default.createElement("svg",{width:"32px",height:"40px",viewBox:"0 0 256 319",preserveAspectRatio:"xMidYMid"},s__default.default.createElement("defs",null,s__default.default.createElement("path",{d:"M9.87245893,293.324145 L0.0114611411,30.5732167 C-0.314208957,21.8955842 6.33948896,14.5413918 15.0063196,13.9997149 L238.494389,0.0317105427 C247.316188,-0.519651867 254.914637,6.18486163 255.466,15.0066607 C255.486773,15.339032 255.497167,15.6719708 255.497167,16.0049907 L255.497167,302.318596 C255.497167,311.157608 248.331732,318.323043 239.492719,318.323043 C239.253266,318.323043 239.013844,318.317669 238.774632,318.306926 L25.1475605,308.712253 C16.8276309,308.338578 10.1847994,301.646603 9.87245893,293.324145 L9.87245893,293.324145 Z",id:"path-1"})),s__default.default.createElement("g",null,s__default.default.createElement("mask",{id:"mask-2",fill:"white"},s__default.default.createElement("use",{xlinkHref:"#path-1"})),s__default.default.createElement("use",{fill:"#FF4785",fillRule:"nonzero",xlinkHref:"#path-1"}),s__default.default.createElement("path",{d:"M188.665358,39.126973 L190.191903,2.41148534 L220.883535,0 L222.205755,37.8634126 C222.251771,39.1811466 221.22084,40.2866846 219.903106,40.3327009 C219.338869,40.3524045 218.785907,40.1715096 218.342409,39.8221376 L206.506729,30.4984116 L192.493574,41.1282444 C191.443077,41.9251106 189.945493,41.7195021 189.148627,40.6690048 C188.813185,40.2267976 188.6423,39.6815326 188.665358,39.126973 Z M149.413703,119.980309 C149.413703,126.206975 191.355678,123.222696 196.986019,118.848893 C196.986019,76.4467826 174.234041,54.1651411 132.57133,54.1651411 C90.9086182,54.1651411 67.5656805,76.7934542 67.5656805,110.735941 C67.5656805,169.85244 147.345341,170.983856 147.345341,203.229219 C147.345341,212.280549 142.913138,217.654777 133.162291,217.654777 C120.456641,217.654777 115.433477,211.165914 116.024438,189.103298 C116.024438,184.317101 67.5656805,182.824962 66.0882793,189.103298 C62.3262146,242.56887 95.6363019,257.990394 133.753251,257.990394 C170.688279,257.990394 199.645341,238.303123 199.645341,202.663511 C199.645341,139.304202 118.683759,141.001326 118.683759,109.604526 C118.683759,96.8760922 128.139127,95.178968 133.753251,95.178968 C139.662855,95.178968 150.300143,96.2205679 149.413703,119.980309 Z",fill:"#FFFFFF",fillRule:"nonzero",mask:"url(#mask-2)"})))}var I=l(()=>{});var v,tt,ot,et,rt,nt,it,At,st,Lt,pt,zt,at,A=l(()=>{v=theming.styled.div`
118
82
  border-radius: 5px;
119
83
  display: flex;
120
84
  flex-direction: column;
121
85
  align-items: center;
122
86
  height: 100%;
123
87
  justify-content: space-between;
124
- `,q=theming.styled.div`
88
+ `,tt=theming.styled.div`
125
89
  display: flex;
126
90
  flex: 1;
127
91
  flex-direction: column;
128
92
  align-items: center;
129
93
  justify-content: center;
130
- `,J=theming.styled.h1`
94
+ `,ot=theming.styled.h1`
131
95
  margin: 0;
132
96
  margin-top: 20px;
133
97
  margin-bottom: 5px;
@@ -135,7 +99,7 @@ var ct=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var ut=(t,o)=>{f
135
99
  font-weight: ${({theme:t})=>t.typography.weight.bold};
136
100
  font-size: ${({theme:t})=>t.typography.size.m1}px;
137
101
  line-height: ${({theme:t})=>t.typography.size.m3}px;
138
- `,X=theming.styled.p`
102
+ `,et=theming.styled.p`
139
103
  margin: 0;
140
104
  margin-bottom: 20px;
141
105
  max-width: 320px;
@@ -144,7 +108,7 @@ var ct=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var ut=(t,o)=>{f
144
108
  font-weight: ${({theme:t})=>t.typography.weight.regular};
145
109
  line-height: ${({theme:t})=>t.typography.size.m1}px;
146
110
  color: ${({theme:t})=>t.color.darker};
147
- `,Q=theming.styled.button`
111
+ `,rt=theming.styled.button`
148
112
  all: unset;
149
113
  cursor: pointer;
150
114
  font-size: 13px;
@@ -154,10 +118,10 @@ var ct=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var ut=(t,o)=>{f
154
118
  &:focus-visible {
155
119
  outline: auto;
156
120
  }
157
- `,R=theming.styled(components.Icons)`
121
+ `,nt=theming.styled(components.Icons)`
158
122
  margin-left: 2px;
159
123
  height: 10px;
160
- `,tt=theming.styled.div`
124
+ `,it=theming.styled.div`
161
125
  position: absolute;
162
126
  top: 0;
163
127
  left: 0;
@@ -169,7 +133,7 @@ var ct=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var ut=(t,o)=>{f
169
133
  0% { transform: translate(0px, 0px) }
170
134
  50% { transform: translate(-200px, 0px) }
171
135
  100% { transform: translate(0px, 0px) }
172
- `,ot=theming.styled.div`
136
+ `,st=theming.styled.div`
173
137
  position: absolute;
174
138
  width: 1200px;
175
139
  height: 1200px;
@@ -183,11 +147,11 @@ var ct=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var ut=(t,o)=>{f
183
147
  animation: ${At} 4s linear infinite;
184
148
  animation-timing-function: ease-in-out;
185
149
  z-index: 3;
186
- `,zt=theming.keyframes`
150
+ `,Lt=theming.keyframes`
187
151
  0% { transform: translate(0px, 0px) }
188
152
  50% { transform: translate(400px, 0px) }
189
153
  100% { transform: translate(0px, 0px) }
190
- `,et=theming.styled.div`
154
+ `,pt=theming.styled.div`
191
155
  position: absolute;
192
156
  width: 1200px;
193
157
  height: 1200px;
@@ -198,14 +162,14 @@ var ct=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var ut=(t,o)=>{f
198
162
  rgba(255, 119, 119, 1) 0%,
199
163
  rgba(255, 119, 119, 0) 70%
200
164
  );
201
- animation: ${zt} 6s linear infinite;
165
+ animation: ${Lt} 6s linear infinite;
202
166
  animation-timing-function: ease-in-out;
203
167
  z-index: 2;
204
- `,Nt=theming.keyframes`
168
+ `,zt=theming.keyframes`
205
169
  0% { transform: translate(600px, -40px) }
206
170
  50% { transform: translate(600px, -200px) }
207
171
  100% { transform: translate(600px, -40px) }
208
- `,rt=theming.styled.div`
172
+ `,at=theming.styled.div`
209
173
  position: absolute;
210
174
  width: 1200px;
211
175
  height: 1200px;
@@ -216,9 +180,9 @@ var ct=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var ut=(t,o)=>{f
216
180
  rgba(119, 255, 247, 0.8) 0%,
217
181
  rgba(119, 255, 247, 0) 70%
218
182
  );
219
- animation: ${Nt} 4s linear infinite;
183
+ animation: ${zt} 4s linear infinite;
220
184
  animation-timing-function: ease-in-out;
221
185
  z-index: 4;
222
- `;});var nt,it=a(()=>{C();W();B();$();nt=({onSkip:t,onProceed:o})=>s__default.default.createElement(k,{width:540,height:430,defaultOpen:!0},({Close:e})=>s__default.default.createElement(T,{"data-chromatic":"ignore"},s__default.default.createElement(q,null,s__default.default.createElement(v,null),s__default.default.createElement(J,null,"Welcome to Storybook"),s__default.default.createElement(X,null,"Storybook helps you develop UI components. Learn the basics in a few simple steps."),s__default.default.createElement(g,{style:{marginTop:4},onClick:o},"Start your 3 minute tour")),s__default.default.createElement(e,{asChild:!0},s__default.default.createElement(Q,{onClick:t},"Skip tour",s__default.default.createElement(R,{icon:"arrowright"}))),s__default.default.createElement(tt,null,s__default.default.createElement(ot,null),s__default.default.createElement(et,null),s__default.default.createElement(rt,null))));});function st({onFinish:t}){return s__default.default.createElement(k,{width:540,defaultOpen:!0},({Title:o,Description:e})=>s__default.default.createElement(T,{"data-chromatic":"ignore"},s__default.default.createElement(v,null),s__default.default.createElement(o,{style:{marginTop:20}},"Create your first story (WORK IN PROGRESS)"),s__default.default.createElement(e,null,"Now it's your turn. ",s__default.default.createElement("br",null),"See how easy it is to create your first story by following these steps below."),s__default.default.createElement(g,{style:{marginTop:4},onClick:t},"Go to story")))}var pt=a(()=>{C();W();B();$();});var dt={};ut(dt,{default:()=>lt});function lt({api:t}){let[o,e]=s.useState(!0),[r,l]=s.useState(!1),[n,p]=s.useState("1:Welcome"),A=s.useCallback(()=>{let i=new URL(window.location.href);i.searchParams.delete("onboarding");let P=decodeURIComponent(i.searchParams.get("path"));i.search=`?path=${P}`,history.replaceState({},"",i.href),e(!1);},[e]);return s.useEffect(()=>{let i;return n==="4:VisitNewStory"&&(i=window.setTimeout(()=>{l(!0),p("5:ConfigureYourProject");},2e3)),()=>{clearTimeout(i);}},[n]),s.useEffect(()=>{t.once(coreEvents.CURRENT_STORY_WAS_SET,({storyId:i})=>{i!=="example-button--primary"&&t.selectStory("example-button--primary",void 0,{ref:void 0}),t.togglePanel(!0),t.togglePanelPosition("bottom"),t.setSelectedPanel("addon-controls");});},[]),s.useEffect(()=>{let i=P=>{P==="configure-your-project--docs"&&A();};return t.on(coreEvents.STORY_CHANGED,i),()=>{t.off(coreEvents.STORY_CHANGED,i);}},[]),o?s__default.default.createElement(theming.ThemeProvider,{theme:Gt},r&&s__default.default.createElement(b,{numberOfPieces:1e3,initialVelocityY:3,recycle:!1,onConfettiComplete:i=>{i.reset(),l(!1);}}),n==="1:Welcome"&&s__default.default.createElement(nt,{onProceed:()=>{p("2:StorybookTour");},onSkip:A}),(n==="2:StorybookTour"||n==="5:ConfigureYourProject")&&s__default.default.createElement(U,{api:t,isFinalStep:n==="5:ConfigureYourProject",onFirstTourDone:()=>{p("3:WriteYourStory");}}),n==="3:WriteYourStory"&&s__default.default.createElement(st,{onFinish:()=>{p("4:VisitNewStory");}})):null}var Gt,mt=a(()=>{_();it();pt();D();Gt=theming.ensure(theming.themes.light);});var Jt=s.lazy(()=>Promise.resolve().then(()=>(mt(),dt)));managerApi.addons.register("@storybook/addon-onboarding",async t=>{if(!(t.getUrlState().path==="/onboarding"))return;let e=!1;try{e=!!(await(await fetch("./index.json")).json()).entries["example-button--primary"];}catch{}if(e){let r=document.createElement("div");r.id="addon-onboarding",document.body.appendChild(r),Kt__default.default.render(s__default.default.createElement(s.Suspense,{fallback:s__default.default.createElement("div",null,"Loading...")},s__default.default.createElement(Jt,{api:t})),r);}});
186
+ `;});var lt,dt=l(()=>{b();M();I();A();lt=({onSkip:t,onProceed:o})=>s__default.default.createElement(S,{width:540,height:430,defaultOpen:!0},({Close:e})=>s__default.default.createElement(v,{"data-chromatic":"ignore"},s__default.default.createElement(tt,null,s__default.default.createElement(k,null),s__default.default.createElement(ot,null,"Welcome to Storybook"),s__default.default.createElement(et,null,"Storybook helps you develop UI components. Learn the basics in a few simple steps."),s__default.default.createElement(x,{style:{marginTop:4},onClick:o},"Start your 3 minute tour")),s__default.default.createElement(e,{asChild:!0},s__default.default.createElement(rt,{onClick:t},"Skip tour",s__default.default.createElement(nt,{icon:"arrowright"}))),s__default.default.createElement(it,null,s__default.default.createElement(st,null),s__default.default.createElement(pt,null),s__default.default.createElement(at,null))));});function mt({onFinish:t}){return s__default.default.createElement(S,{width:540,defaultOpen:!0},({Title:o,Description:e})=>s__default.default.createElement(v,{"data-chromatic":"ignore"},s__default.default.createElement(k,null),s__default.default.createElement(o,{style:{marginTop:20}},"Create your first story (WORK IN PROGRESS)"),s__default.default.createElement(e,null,"Now it's your turn. ",s__default.default.createElement("br",null),"See how easy it is to create your first story by following these steps below."),s__default.default.createElement(x,{style:{marginTop:4},onClick:t},"Go to story")))}var ut=l(()=>{b();M();I();A();});var gt={};xt(gt,{default:()=>ft});function ft({api:t}){let[o,e]=s.useState(!0),[r,n]=s.useState(!1),[i,d]=s.useState("1:Welcome"),F=s.useCallback(()=>{let p=new URL(window.location.href);p.searchParams.delete("onboarding");let P=decodeURIComponent(p.searchParams.get("path"));p.search=`?path=${P}`,history.replaceState({},"",p.href),e(!1);},[e]);return s.useEffect(()=>{let p;return i==="4:VisitNewStory"&&(p=window.setTimeout(()=>{n(!0),d("5:ConfigureYourProject");},2e3)),()=>{clearTimeout(p);}},[i]),s.useEffect(()=>{t.once(coreEvents.CURRENT_STORY_WAS_SET,({storyId:p})=>{t.setQueryParams({onboarding:"true"}),p!=="example-button--primary"&&t.selectStory("example-button--primary",void 0,{ref:void 0}),t.togglePanel(!0),t.togglePanelPosition("bottom"),t.setSelectedPanel("addon-controls");});},[]),s.useEffect(()=>{let p=P=>{P==="configure-your-project--docs"&&F();};return t.on(coreEvents.STORY_CHANGED,p),()=>{t.off(coreEvents.STORY_CHANGED,p);}},[]),o?s__default.default.createElement(theming.ThemeProvider,{theme:Ut},r&&s__default.default.createElement(h,{numberOfPieces:1e3,initialVelocityY:3,recycle:!1,onConfettiComplete:p=>{p.reset(),n(!1);}}),i==="1:Welcome"&&s__default.default.createElement(lt,{onProceed:()=>{d("2:StorybookTour");},onSkip:F}),(i==="2:StorybookTour"||i==="5:ConfigureYourProject")&&s__default.default.createElement(q,{api:t,isFinalStep:i==="5:ConfigureYourProject",onFirstTourDone:()=>{d("3:WriteYourStory");}}),i==="3:WriteYourStory"&&s__default.default.createElement(mt,{onFinish:()=>{d("4:VisitNewStory");}})):null}var Ut,yt=l(()=>{Z();dt();ut();T();Ut=theming.ensure(theming.themes.light);});var qt=s.lazy(()=>Promise.resolve().then(()=>(yt(),gt)));managerApi.addons.register("@storybook/addon-onboarding",async t=>{let o=t.getUrlState();if(!(o.path==="/onboarding"||o.queryParams.onboarding==="true"))return;let r=!1;try{r=!!(await(await fetch("./index.json")).json()).entries["example-button--primary"];}catch{}if(r){let n=document.createElement("div");n.id="addon-onboarding",document.body.appendChild(n),_t__default.default.render(s__default.default.createElement(s.Suspense,{fallback:s__default.default.createElement("div",null,"Loading...")},s__default.default.createElement(qt,{api:t})),n);}});
223
187
  //# sourceMappingURL=out.js.map
224
188
  //# sourceMappingURL=manager.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/PulsatingEffect/PulsatingEffect.tsx","../src/components/Confetti/Confetti.tsx","../src/components/Button/Button.tsx","../src/features/GuidedTour/Tooltip.tsx","../src/features/GuidedTour/GuidedTour.tsx","../src/components/Modal/Modal.styled.tsx","../src/components/Modal/Modal.tsx","../src/features/WelcomeModal/StorybookLogo.tsx","../src/features/WelcomeModal/WelcomeModal.styled.tsx","../src/features/WelcomeModal/WelcomeModal.tsx","../src/features/WriteStoriesModal/WriteStoriesModal.tsx","../src/App.tsx","../src/manager.tsx"],"names":["useEffect","PulsatingEffect","targetSelector","element","keyframes","style","init_PulsatingEffect","__esmMin","ReactConfetti","React","styled","createPortal","useState","Confetti","top","left","width","height","confettiProps","confettiContainer","container","Wrapper","init_Confetti","Container","Button","init_Button","theme","children","onClick","rest","TooltipBody","TooltipTitle","TooltipContent","TooltipFooter","Tooltip","init_Tooltip","step","primaryProps","tooltipProps","Joyride","STATUS","STORY_ARGS_UPDATED","GuidedTour","api","isFinalStep","onFirstTourDone","stepIndex","setStepIndex","INTERACTIONS_COUNT","data","init_GuidedTour","css","Dialog","StyledOverlay","StyledContent","ContentWrapper","init_Modal_styled","contentProps","ref","Modal","onEscapeKeyDown","onInteractOutside","ev","rootProps","init_Modal","StorybookLogo","init_StorybookLogo","Icons","ModalContentWrapper","TopContent","Title","Description","SkipButton","StyledIcon","Background","circle1Anim","Circle1","circle2Anim","Circle2","circle3Anim","Circle3","init_WelcomeModal_styled","WelcomeModal","init_WelcomeModal","onSkip","onProceed","Close","WriteStoriesModal","onFinish","init_WriteStoriesModal","App_exports","__export","App","useCallback","ThemeProvider","ensure","themes","STORY_CHANGED","CURRENT_STORY_WAS_SET","enabled","setEnabled","showConfetti","setShowConfetti","setStep","skipTour","url","path","stepTimeout","storyId","onStoryChanged","confetti","init_App","ReactDOM","lazy","Suspense","addons","hasButtonStories","domNode"],"mappings":"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","sourcesContent":["import { useEffect } from \"react\";\n\nexport function PulsatingEffect({\n targetSelector,\n}: {\n targetSelector: string;\n}): JSX.Element {\n useEffect(() => {\n const element = document.querySelector<HTMLElement>(targetSelector);\n if (element) {\n element.style.animation = \"pulsate 3s infinite\";\n element.style.transformOrigin = \"center\";\n element.style.animationTimingFunction = \"ease-in-out\";\n\n const keyframes = `\n @keyframes pulsate {\n 0% {\n box-shadow: 0 0 0 0 rgba(2, 156, 253, 0.7), 0 0 0 0 rgba(2, 156, 253, 0.4);\n }\n 50% {\n box-shadow: 0 0 0 20px rgba(2, 156, 253, 0), 0 0 0 40px rgba(2, 156, 253, 0);\n }\n 100% {\n box-shadow: 0 0 0 0 rgba(2, 156, 253, 0), 0 0 0 0 rgba(2, 156, 253, 0);\n }\n }\n `;\n const style = document.createElement(\"style\");\n style.id = \"sb-onboarding-pulsating-effect\";\n style.innerHTML = keyframes;\n document.head.appendChild(style);\n }\n\n return () => {\n const styleElement = document.querySelector(\n \"#sb-onboarding-pulsating-effect\"\n );\n styleElement?.remove();\n };\n }, [targetSelector]);\n\n return null;\n}\n","import ReactConfetti from \"react-confetti\";\nimport React, { useEffect } from \"react\";\nimport { styled } from \"@storybook/theming\";\nimport { createPortal } from \"react-dom\";\nimport { useState } from \"react\";\n\ninterface ConfettiProps\n extends Omit<React.ComponentProps<typeof ReactConfetti>, \"drawShape\"> {\n top?: number;\n left?: number;\n width?: number;\n height?: number;\n}\n\nconst Wrapper = styled.div<{\n width: number;\n height: number;\n top: number;\n left: number;\n}>(({ width, height, left, top }) => ({\n width: `${width}px`,\n height: `${height}px`,\n left: `${left}px`,\n top: `${top}px`,\n position: \"relative\",\n overflow: \"hidden\",\n}));\n\nexport function Confetti({\n top = 0,\n left = 0,\n width = window.innerWidth,\n height = window.innerHeight,\n ...confettiProps\n}: ConfettiProps): React.ReactPortal {\n const [confettiContainer] = useState(() => {\n const container = document.createElement(\"div\");\n container.setAttribute(\"id\", \"confetti-container\");\n container.setAttribute(\n \"style\",\n \"position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 9999;\"\n );\n\n return container;\n });\n\n useEffect(() => {\n document.body.appendChild(confettiContainer);\n\n return () => {\n document.body.removeChild(confettiContainer);\n };\n }, []);\n\n return createPortal(\n <Wrapper top={top} left={left} width={width} height={height}>\n <ReactConfetti {...confettiProps} />\n </Wrapper>,\n confettiContainer\n );\n}\n","import { styled } from \"@storybook/theming\";\nimport React, { FC } from \"react\";\n\nexport interface ButtonProps {\n children: string;\n onClick?: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n}\n\nconst Container = styled.button`\n all: unset;\n border: 0;\n border-radius: 0.25rem;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0 0.75rem;\n background: ${({ theme }) => theme.color.secondary};\n color: ${({ theme }) => theme.color.lightest};\n height: 32px;\n font-size: 0.8125rem;\n font-weight: 700;\n font-family: ${({ theme }) => theme.typography.fonts.base};\n transition: all 0.16s ease-in-out;\n text-decoration: none;\n\n &:hover {\n background-color: #0b94eb;\n }\n\n &:focus {\n box-shadow: inset 0 0 0 2px rgba(0, 0, 0, 0.1);\n }\n`;\n\nexport const Button: FC<ButtonProps> = ({ children, onClick, ...rest }) => {\n return (\n <Container onClick={onClick} {...rest}>\n {children}\n </Container>\n );\n};\n","import { styled } from \"@storybook/theming\";\nimport React from \"react\";\nimport { Button } from \"src/components/Button/Button\";\nimport { TooltipRenderProps } from \"react-joyride\";\n\nconst TooltipBody = styled.div`\n background: #fff;\n width: 260px;\n padding: 15px;\n border-radius: 5px;\n`;\n\nconst Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n`;\n\nconst TooltipTitle = styled.div`\n font-size: 13px;\n font-weight: 700;\n color: ${({ theme }) => theme.color.darkest};\n`;\n\nconst TooltipContent = styled.p`\n font-size: 13px;\n text-align: start;\n color: ${({ theme }) => theme.color.mediumdark};\n margin: 0;\n margin-top: 5px;\n`;\n\nconst TooltipFooter = styled.div`\n display: flex;\n justify-content: flex-end;\n margin-top: 15px;\n`;\n\nexport const Tooltip = ({\n step,\n primaryProps,\n tooltipProps,\n}: TooltipRenderProps) => {\n console.log(step);\n return (\n <TooltipBody {...tooltipProps}>\n <Wrapper>\n {step.title && <TooltipTitle>{step.title}</TooltipTitle>}\n <TooltipContent>{step.content}</TooltipContent>\n </Wrapper>\n {(step.title !== \"Interactive story playground\" ||\n step.title !== \"Continue setting up your project\") && (\n <TooltipFooter id=\"buttonNext\">\n <Button {...primaryProps}>Next</Button>\n </TooltipFooter>\n )}\n </TooltipBody>\n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport Joyride, { CallBackProps, STATUS, Step } from \"react-joyride\";\n\nimport { PulsatingEffect } from \"../../components/PulsatingEffect/PulsatingEffect\";\nimport { Confetti } from \"../../components/Confetti/Confetti\";\nimport { API } from \"@storybook/manager-api\";\nimport { STORY_ARGS_UPDATED } from \"@storybook/core-events\";\nimport { Tooltip } from \"./Tooltip\";\n\nlet INTERACTIONS_COUNT = 0;\n\nexport function GuidedTour({\n api,\n isFinalStep,\n onFirstTourDone,\n}: {\n api: API;\n isFinalStep?: boolean;\n onFirstTourDone: () => void;\n}) {\n const [stepIndex, setStepIndex] = useState<number>();\n\n useEffect(() => {\n api.on(STORY_ARGS_UPDATED, () => {\n INTERACTIONS_COUNT = INTERACTIONS_COUNT + 1;\n if (INTERACTIONS_COUNT === 2) {\n setStepIndex(3);\n }\n });\n }, []);\n\n const steps: Step[] = isFinalStep\n ? [\n {\n target: \"#configure-your-project--docs\",\n title: \"Continue setting up your project\",\n content:\n \"You nailed the basics. Now get started writing stories for your own components.\",\n placement: \"right\",\n disableOverlay: true,\n disableBeacon: true,\n floaterProps: {\n disableAnimation: true,\n },\n },\n ]\n : [\n {\n target: \"#storybook-explorer-tree > div\",\n title: \"Storybook is built from stories\",\n content:\n \"Storybook uses stories to represent the key states supported by each of your components. For example: this Button component has four stories.\",\n placement: \"right\",\n disableBeacon: true,\n styles: {\n spotlight: {\n transform: \"translateY(30px)\",\n },\n },\n floaterProps: {\n disableAnimation: true,\n },\n },\n {\n target: \"#storybook-preview-iframe\",\n title: \"Storybook previews are interactive\",\n content:\n \"Whenever you modify code or stories, Storybook automatically updates how it previews your components.\",\n placement: \"bottom\",\n },\n {\n target: \"#root div[role=main]\",\n title: \"Interactive story playground\",\n content: (\n <>\n See how a story renders with different data and state without\n touching code.\n <br />\n <br />\n Try it out by pressing this button.\n <PulsatingEffect targetSelector=\"#control-primary\" />\n </>\n ),\n placement: \"right\",\n spotlightClicks: true,\n floaterProps: {\n target: \"#control-primary\",\n },\n },\n {\n target: \"#control-primary\",\n title: \"Congratulations!\",\n content: (\n <>\n You've learned how to control your stories interactively. Now:\n let's explore how to write your first story.\n <Confetti numberOfPieces={100} />\n </>\n ),\n placement: \"right\",\n disableOverlay: true,\n locale: {\n last: \"Next\",\n },\n },\n ];\n\n return (\n <Joyride\n steps={steps}\n continuous\n stepIndex={stepIndex}\n spotlightPadding={0}\n hideBackButton\n disableCloseOnEsc\n disableOverlayClose\n disableScrolling\n hideCloseButton\n callback={(data: CallBackProps) => {\n if (!isFinalStep && data.status === STATUS.FINISHED) {\n onFirstTourDone();\n }\n }}\n floaterProps={{\n styles: {\n floater: {\n padding: 0,\n paddingLeft: 8,\n paddingTop: 8,\n filter:\n \"drop-shadow(0px 5px 5px rgba(0,0,0,0.05)) drop-shadow(0 1px 3px rgba(0,0,0,0.1))\",\n },\n },\n }}\n tooltipComponent={Tooltip}\n styles={{\n spotlight: {\n border: \"solid 2px #004c7c\",\n },\n overlay: {\n backgroundColor: \"rgba(0, 0, 0, 0.48)\",\n },\n options: {\n zIndex: 10000,\n primaryColor: \"#029CFD\",\n },\n }}\n />\n );\n}\n","import { css, styled } from \"@storybook/theming\";\nimport * as Dialog from \"@radix-ui/react-dialog\";\nimport React from \"react\";\n\nexport const StyledOverlay = styled(Dialog.Overlay)`\n background-color: rgba(27, 28, 29, 0.48);\n position: fixed;\n inset: 0px;\n width: 100%;\n height: 100%;\n`;\n\nexport const StyledContent = styled.div<{ width: number; height: number }>(\n ({ width, height }) => css`\n background-color: white;\n border-radius: 6px;\n box-shadow: rgba(14, 18, 22, 0.35) 0px 10px 38px -10px;\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: ${width ?? 740}px;\n height: ${height ? `${height}px` : \"auto\"};\n max-width: calc(100% - 40px);\n max-height: 85vh;\n `\n);\n\nexport const ContentWrapper = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof StyledContent> &\n React.ComponentProps<typeof Dialog.Content>\n>(({ width, height, children, ...contentProps }, ref) => (\n <Dialog.Content ref={ref} asChild {...contentProps}>\n <StyledContent width={width} height={height}>\n {children}\n </StyledContent>\n </Dialog.Content>\n));\n","import React from \"react\";\nimport * as Dialog from \"@radix-ui/react-dialog\";\nimport { ContentWrapper, StyledOverlay } from \"./Modal.styled\";\n\ntype ContentProps = React.ComponentProps<typeof ContentWrapper>;\n\ninterface ModalProps\n extends Omit<React.ComponentProps<typeof Dialog.Root>, \"children\"> {\n width?: number;\n height?: number;\n children: (props: {\n Title: typeof Dialog.Title;\n Description: typeof Dialog.Description;\n Close: typeof Dialog.Close;\n }) => React.ReactNode;\n onEscapeKeyDown?: ContentProps[\"onEscapeKeyDown\"];\n onInteractOutside?: ContentProps[\"onInteractOutside\"];\n}\n\nexport function Modal({\n children,\n width,\n height,\n onEscapeKeyDown,\n onInteractOutside = (ev) => ev.preventDefault(),\n ...rootProps\n}: ModalProps) {\n return (\n <Dialog.Root {...rootProps}>\n <Dialog.Portal>\n <StyledOverlay />\n <ContentWrapper\n width={width}\n height={height}\n onInteractOutside={onInteractOutside}\n onEscapeKeyDown={onEscapeKeyDown}\n >\n {children({\n Title: Dialog.Title,\n Description: Dialog.Description,\n Close: Dialog.Close,\n })}\n </ContentWrapper>\n </Dialog.Portal>\n </Dialog.Root>\n );\n}\n","import React from \"react\";\n\nexport function StorybookLogo() {\n return (\n <svg\n width=\"32px\"\n height=\"40px\"\n viewBox=\"0 0 256 319\"\n preserveAspectRatio=\"xMidYMid\"\n >\n <defs>\n <path\n d=\"M9.87245893,293.324145 L0.0114611411,30.5732167 C-0.314208957,21.8955842 6.33948896,14.5413918 15.0063196,13.9997149 L238.494389,0.0317105427 C247.316188,-0.519651867 254.914637,6.18486163 255.466,15.0066607 C255.486773,15.339032 255.497167,15.6719708 255.497167,16.0049907 L255.497167,302.318596 C255.497167,311.157608 248.331732,318.323043 239.492719,318.323043 C239.253266,318.323043 239.013844,318.317669 238.774632,318.306926 L25.1475605,308.712253 C16.8276309,308.338578 10.1847994,301.646603 9.87245893,293.324145 L9.87245893,293.324145 Z\"\n id=\"path-1\"\n ></path>\n </defs>\n <g>\n <mask id=\"mask-2\" fill=\"white\">\n <use xlinkHref=\"#path-1\"></use>\n </mask>\n <use fill=\"#FF4785\" fillRule=\"nonzero\" xlinkHref=\"#path-1\"></use>\n <path\n d=\"M188.665358,39.126973 L190.191903,2.41148534 L220.883535,0 L222.205755,37.8634126 C222.251771,39.1811466 221.22084,40.2866846 219.903106,40.3327009 C219.338869,40.3524045 218.785907,40.1715096 218.342409,39.8221376 L206.506729,30.4984116 L192.493574,41.1282444 C191.443077,41.9251106 189.945493,41.7195021 189.148627,40.6690048 C188.813185,40.2267976 188.6423,39.6815326 188.665358,39.126973 Z M149.413703,119.980309 C149.413703,126.206975 191.355678,123.222696 196.986019,118.848893 C196.986019,76.4467826 174.234041,54.1651411 132.57133,54.1651411 C90.9086182,54.1651411 67.5656805,76.7934542 67.5656805,110.735941 C67.5656805,169.85244 147.345341,170.983856 147.345341,203.229219 C147.345341,212.280549 142.913138,217.654777 133.162291,217.654777 C120.456641,217.654777 115.433477,211.165914 116.024438,189.103298 C116.024438,184.317101 67.5656805,182.824962 66.0882793,189.103298 C62.3262146,242.56887 95.6363019,257.990394 133.753251,257.990394 C170.688279,257.990394 199.645341,238.303123 199.645341,202.663511 C199.645341,139.304202 118.683759,141.001326 118.683759,109.604526 C118.683759,96.8760922 128.139127,95.178968 133.753251,95.178968 C139.662855,95.178968 150.300143,96.2205679 149.413703,119.980309 Z\"\n fill=\"#FFFFFF\"\n fillRule=\"nonzero\"\n mask=\"url(#mask-2)\"\n ></path>\n </g>\n </svg>\n );\n}\n","import { Icons } from \"@storybook/components\";\nimport { keyframes, styled } from \"@storybook/theming\";\n\nexport const ModalContentWrapper = styled.div`\n border-radius: 5px;\n display: flex;\n flex-direction: column;\n align-items: center;\n height: 100%;\n justify-content: space-between;\n`;\n\nexport const TopContent = styled.div`\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`;\n\nexport const Title = styled.h1`\n margin: 0;\n margin-top: 20px;\n margin-bottom: 5px;\n color: ${({ theme }) => theme.color.darkest};\n font-weight: ${({ theme }) => theme.typography.weight.bold};\n font-size: ${({ theme }) => theme.typography.size.m1}px;\n line-height: ${({ theme }) => theme.typography.size.m3}px;\n`;\n\nexport const Description = styled.p`\n margin: 0;\n margin-bottom: 20px;\n max-width: 320px;\n text-align: center;\n font-size: ${({ theme }) => theme.typography.size.s2}px;\n font-weight: ${({ theme }) => theme.typography.weight.regular};\n line-height: ${({ theme }) => theme.typography.size.m1}px;\n color: ${({ theme }) => theme.color.darker};\n`;\n\nexport const SkipButton = styled.button`\n all: unset;\n cursor: pointer;\n font-size: 13px;\n color: #798186;\n padding-bottom: 20px;\n\n &:focus-visible {\n outline: auto;\n }\n`;\n\nexport const StyledIcon = styled(Icons)`\n margin-left: 2px;\n height: 10px;\n`;\n\nexport const Background = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n overflow: hidden;\n`;\n\nexport const circle1Anim = keyframes`\n 0% { transform: translate(0px, 0px) }\n 50% { transform: translate(-200px, 0px) }\n 100% { transform: translate(0px, 0px) }\n`;\n\nexport const Circle1 = styled.div`\n position: absolute;\n width: 1200px;\n height: 1200px;\n left: -200px;\n top: -900px;\n background: radial-gradient(\n circle at center,\n rgba(253, 255, 147, 1) 0%,\n rgba(253, 255, 147, 0) 70%\n );\n animation: ${circle1Anim} 4s linear infinite;\n animation-timing-function: ease-in-out;\n z-index: 3;\n`;\n\nexport const circle2Anim = keyframes`\n 0% { transform: translate(0px, 0px) }\n 50% { transform: translate(400px, 0px) }\n 100% { transform: translate(0px, 0px) }\n`;\n\nexport const Circle2 = styled.div`\n position: absolute;\n width: 1200px;\n height: 1200px;\n left: -600px;\n top: -840px;\n background: radial-gradient(\n circle at center,\n rgba(255, 119, 119, 1) 0%,\n rgba(255, 119, 119, 0) 70%\n );\n animation: ${circle2Anim} 6s linear infinite;\n animation-timing-function: ease-in-out;\n z-index: 2;\n`;\n\nexport const circle3Anim = keyframes`\n 0% { transform: translate(600px, -40px) }\n 50% { transform: translate(600px, -200px) }\n 100% { transform: translate(600px, -40px) }\n`;\n\nexport const Circle3 = styled.div`\n position: absolute;\n width: 1200px;\n height: 1200px;\n left: -600px;\n top: -840px;\n background: radial-gradient(\n circle at center,\n rgba(119, 255, 247, 0.8) 0%,\n rgba(119, 255, 247, 0) 70%\n );\n animation: ${circle3Anim} 4s linear infinite;\n animation-timing-function: ease-in-out;\n z-index: 4;\n`;\n","import React from \"react\";\n\nimport { Button } from \"../../components/Button/Button\";\nimport { Modal } from \"../../components/Modal/Modal\";\nimport { StorybookLogo } from \"./StorybookLogo\";\nimport {\n ModalContentWrapper,\n SkipButton,\n StyledIcon,\n Title,\n Description,\n Background,\n Circle1,\n Circle2,\n Circle3,\n TopContent,\n} from \"./WelcomeModal.styled\";\n\nexport const WelcomeModal = ({\n onSkip,\n onProceed,\n}: {\n onSkip: () => void;\n onProceed: () => void;\n}) => {\n return (\n <Modal width={540} height={430} defaultOpen>\n {({ Close }) => (\n <ModalContentWrapper data-chromatic=\"ignore\">\n <TopContent>\n <StorybookLogo />\n <Title>Welcome to Storybook</Title>\n <Description>\n Storybook helps you develop UI components. Learn the basics in a\n few simple steps.\n </Description>\n <Button style={{ marginTop: 4 }} onClick={onProceed}>\n Start your 3 minute tour\n </Button>\n </TopContent>\n <Close asChild>\n <SkipButton onClick={onSkip}>\n Skip tour\n <StyledIcon icon=\"arrowright\" />\n </SkipButton>\n </Close>\n <Background>\n <Circle1 />\n <Circle2 />\n <Circle3 />\n </Background>\n </ModalContentWrapper>\n )}\n </Modal>\n );\n};\n","import React from \"react\";\nimport { Button } from \"../../components/Button/Button\";\n\nimport { Modal } from \"../../components/Modal/Modal\";\nimport { StorybookLogo } from \"../WelcomeModal/StorybookLogo\";\nimport { ModalContentWrapper } from \"../WelcomeModal/WelcomeModal.styled\";\n\nexport function WriteStoriesModal({ onFinish }: { onFinish: () => void }) {\n return (\n <Modal width={540} defaultOpen>\n {({ Title, Description }) => (\n <ModalContentWrapper data-chromatic=\"ignore\">\n <StorybookLogo />\n <Title style={{ marginTop: 20 }}>\n Create your first story (WORK IN PROGRESS)\n </Title>\n <Description>\n Now it's your turn. <br />\n See how easy it is to create your first story by following these\n steps below.\n </Description>\n <Button style={{ marginTop: 4 }} onClick={onFinish}>\n Go to story\n </Button>\n </ModalContentWrapper>\n )}\n </Modal>\n );\n}\n","import React, { useCallback, useEffect, useState } from \"react\";\nimport { ThemeProvider, ensure, themes } from \"@storybook/theming\";\nimport { STORY_CHANGED, CURRENT_STORY_WAS_SET } from \"@storybook/core-events\";\nimport { type API } from \"@storybook/manager-api\";\n\nimport { GuidedTour } from \"./features/GuidedTour/GuidedTour\";\nimport { WelcomeModal } from \"./features/WelcomeModal/WelcomeModal\";\nimport { WriteStoriesModal } from \"./features/WriteStoriesModal/WriteStoriesModal\";\nimport { Confetti } from \"./components/Confetti/Confetti\";\n\ntype Step =\n | \"1:Welcome\"\n | \"2:StorybookTour\"\n | \"3:WriteYourStory\"\n | \"4:VisitNewStory\"\n | \"5:ConfigureYourProject\";\n\nconst theme = ensure(themes.light);\n\nexport default function App({ api }: { api: API }) {\n const [enabled, setEnabled] = useState(true);\n const [showConfetti, setShowConfetti] = useState(false);\n const [step, setStep] = useState<Step>(\"1:Welcome\");\n\n const skipTour = useCallback(() => {\n // remove onboarding query parameter from current url\n const url = new URL(window.location.href);\n url.searchParams.delete(\"onboarding\");\n const path = decodeURIComponent(url.searchParams.get(\"path\"));\n url.search = `?path=${path}`;\n history.replaceState({}, \"\", url.href);\n setEnabled(false);\n }, [setEnabled]);\n\n useEffect(() => {\n let stepTimeout: number;\n if (step === \"4:VisitNewStory\") {\n stepTimeout = window.setTimeout(() => {\n setShowConfetti(true);\n setStep(\"5:ConfigureYourProject\");\n }, 2000);\n }\n\n return () => {\n clearTimeout(stepTimeout);\n };\n }, [step]);\n\n useEffect(() => {\n api.once(CURRENT_STORY_WAS_SET, ({ storyId }) => {\n // make sure the initial state is set correctly:\n // 1. Selected story is primary button\n // 2. The addon panel is opened, in the bottom and the controls tab is selected\n if (storyId !== \"example-button--primary\") {\n api.selectStory(\"example-button--primary\", undefined, {\n ref: undefined,\n });\n }\n api.togglePanel(true);\n api.togglePanelPosition(\"bottom\");\n api.setSelectedPanel(\"addon-controls\");\n });\n }, []);\n\n useEffect(() => {\n const onStoryChanged = (storyId: string) => {\n if (storyId === \"configure-your-project--docs\") {\n skipTour();\n }\n };\n\n api.on(STORY_CHANGED, onStoryChanged);\n\n return () => {\n api.off(STORY_CHANGED, onStoryChanged);\n };\n }, []);\n\n if (!enabled) {\n return null;\n }\n\n return (\n <ThemeProvider theme={theme}>\n {showConfetti && (\n <Confetti\n numberOfPieces={1000}\n initialVelocityY={3}\n recycle={false}\n onConfettiComplete={(confetti) => {\n confetti.reset();\n setShowConfetti(false);\n }}\n />\n )}\n {step === \"1:Welcome\" && (\n <WelcomeModal\n onProceed={() => {\n setStep(\"2:StorybookTour\");\n }}\n onSkip={skipTour}\n />\n )}\n {(step === \"2:StorybookTour\" || step === \"5:ConfigureYourProject\") && (\n <GuidedTour\n api={api}\n isFinalStep={step === \"5:ConfigureYourProject\"}\n onFirstTourDone={() => {\n setStep(\"3:WriteYourStory\");\n }}\n />\n )}\n {step === \"3:WriteYourStory\" && (\n <WriteStoriesModal\n onFinish={() => {\n // TODO: enable this\n // api.selectStory(\"example-button--warning\");\n setStep(\"4:VisitNewStory\");\n }}\n />\n )}\n </ThemeProvider>\n );\n}\n","import ReactDOM from \"react-dom\";\nimport React, { lazy, Suspense } from \"react\";\nimport { addons } from \"@storybook/manager-api\";\n\nconst App = lazy(() => import(\"./App\"));\n\n// The addon is enabled only when:\n// 1. The onboarding query parameter is present\n// 2. The example button stories are present\naddons.register(\"@storybook/addon-onboarding\", async (api) => {\n const isOnboarding = api.getUrlState().path === '/onboarding';\n\n if (!isOnboarding) {\n return;\n }\n\n let hasButtonStories = false;\n try {\n const response = await fetch(\"./index.json\");\n const index = await response.json();\n hasButtonStories = !!index.entries[\"example-button--primary\"];\n } catch (e) {}\n\n if (hasButtonStories) {\n // Add a new DOM element to document.body, where we will bootstrap our React app\n const domNode = document.createElement(\"div\");\n\n domNode.id = \"addon-onboarding\";\n // Append the new DOM element to document.body\n document.body.appendChild(domNode);\n\n // Render the React app\n ReactDOM.render(\n <Suspense fallback={<div>Loading...</div>}>\n <App api={api} />\n </Suspense>,\n domNode\n );\n }\n});\n"]}
1
+ {"version":3,"sources":["../src/components/PulsatingEffect/PulsatingEffect.tsx","../src/components/Confetti/Confetti.tsx","../src/components/TitleBody/TitleBody.styled.tsx","../src/components/TitleBody/TitleBody.tsx","../src/components/Button/Button.tsx","../src/features/GuidedTour/GuidedTour.tsx","../src/components/Modal/Modal.styled.tsx","../src/components/Modal/Modal.tsx","../src/features/WelcomeModal/StorybookLogo.tsx","../src/features/WelcomeModal/WelcomeModal.styled.tsx","../src/features/WelcomeModal/WelcomeModal.tsx","../src/features/WriteStoriesModal/WriteStoriesModal.tsx","../src/App.tsx","../src/manager.tsx"],"names":["useEffect","PulsatingEffect","targetSelector","element","keyframes","style","init_PulsatingEffect","__esmMin","ReactConfetti","React","styled","createPortal","useState","Confetti","top","left","width","height","confettiProps","confettiContainer","container","Wrapper","init_Confetti","Title","Body","init_TitleBody_styled","TitleBody","prefix","title","body","init_TitleBody","Button","props","buttonStyles","init_Button","Joyride","STATUS","STORY_ARGS_UPDATED","GuidedTour","api","isFinalStep","onFirstTourDone","stepIndex","setStepIndex","INTERACTIONS_COUNT","data","init_GuidedTour","css","Dialog","StyledOverlay","StyledContent","ContentWrapper","init_Modal_styled","children","contentProps","ref","Modal","onEscapeKeyDown","onInteractOutside","ev","rootProps","init_Modal","StorybookLogo","init_StorybookLogo","Icons","ModalContentWrapper","TopContent","Description","SkipButton","StyledIcon","Background","circle1Anim","Circle1","circle2Anim","Circle2","circle3Anim","Circle3","init_WelcomeModal_styled","theme","WelcomeModal","init_WelcomeModal","onSkip","onProceed","Close","WriteStoriesModal","onFinish","init_WriteStoriesModal","App_exports","__export","App","useCallback","ThemeProvider","ensure","themes","STORY_CHANGED","CURRENT_STORY_WAS_SET","enabled","setEnabled","showConfetti","setShowConfetti","step","setStep","skipTour","url","path","stepTimeout","storyId","onStoryChanged","confetti","init_App","ReactDOM","lazy","Suspense","addons","urlState","hasButtonStories","domNode"],"mappings":"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","sourcesContent":["import { useEffect } from \"react\";\n\nexport function PulsatingEffect({\n targetSelector,\n}: {\n targetSelector: string;\n}): JSX.Element {\n useEffect(() => {\n const element = document.querySelector<HTMLElement>(targetSelector);\n if (element) {\n element.style.animation = \"pulsate 3s infinite\";\n element.style.transformOrigin = \"center\";\n element.style.animationTimingFunction = \"ease-in-out\";\n\n const keyframes = `\n @keyframes pulsate {\n 0% {\n box-shadow: 0 0 0 0 rgba(2, 156, 253, 0.7), 0 0 0 0 rgba(2, 156, 253, 0.4);\n }\n 50% {\n box-shadow: 0 0 0 20px rgba(2, 156, 253, 0), 0 0 0 40px rgba(2, 156, 253, 0);\n }\n 100% {\n box-shadow: 0 0 0 0 rgba(2, 156, 253, 0), 0 0 0 0 rgba(2, 156, 253, 0);\n }\n }\n `;\n const style = document.createElement(\"style\");\n style.id = \"sb-onboarding-pulsating-effect\";\n style.innerHTML = keyframes;\n document.head.appendChild(style);\n }\n\n return () => {\n const styleElement = document.querySelector(\n \"#sb-onboarding-pulsating-effect\"\n );\n styleElement?.remove();\n };\n }, [targetSelector]);\n\n return null;\n}\n","import ReactConfetti from \"react-confetti\";\nimport React, { useEffect } from \"react\";\nimport { styled } from \"@storybook/theming\";\nimport { createPortal } from \"react-dom\";\nimport { useState } from \"react\";\n\ninterface ConfettiProps\n extends Omit<React.ComponentProps<typeof ReactConfetti>, \"drawShape\"> {\n top?: number;\n left?: number;\n width?: number;\n height?: number;\n}\n\nconst Wrapper = styled.div<{\n width: number;\n height: number;\n top: number;\n left: number;\n}>(({ width, height, left, top }) => ({\n width: `${width}px`,\n height: `${height}px`,\n left: `${left}px`,\n top: `${top}px`,\n position: \"relative\",\n overflow: \"hidden\",\n}));\n\nexport function Confetti({\n top = 0,\n left = 0,\n width = window.innerWidth,\n height = window.innerHeight,\n ...confettiProps\n}: ConfettiProps): React.ReactPortal {\n const [confettiContainer] = useState(() => {\n const container = document.createElement(\"div\");\n container.setAttribute(\"id\", \"confetti-container\");\n container.setAttribute(\n \"style\",\n \"position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 9999;\"\n );\n\n return container;\n });\n\n useEffect(() => {\n document.body.appendChild(confettiContainer);\n\n return () => {\n document.body.removeChild(confettiContainer);\n };\n }, []);\n\n return createPortal(\n <Wrapper top={top} left={left} width={width} height={height}>\n <ReactConfetti {...confettiProps} />\n </Wrapper>,\n confettiContainer\n );\n}\n","import { styled } from \"@storybook/theming\";\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n`;\n\nexport const Title = styled.strong`\n font-size: 13px;\n`;\n\nexport const Body = styled.p`\n font-size: 13px;\n text-align: start;\n color: #798186;\n margin: 0;\n margin-top: 4px;\n`;\n","import React from \"react\";\nimport { Body, Title, Wrapper } from \"./TitleBody.styled\";\n\nexport function TitleBody({\n prefix,\n title,\n body,\n}: {\n prefix?: React.ReactNode;\n title: React.ReactNode;\n body: React.ReactNode;\n}) {\n return (\n <Wrapper>\n {prefix}\n <Title>{title}</Title>\n <Body>{body}</Body>\n </Wrapper>\n );\n}\n","import React from \"react\";\n\nexport const buttonStyles: React.ComponentProps<\"button\">[\"style\"] = {\n border: 0,\n cursor: \"pointer\",\n fontSize: 13,\n lineHeight: 1,\n padding: \"9px 12px\",\n backgroundColor: \"#029CFD\",\n borderRadius: 4,\n color: \"#fff\",\n fontWeight: 700,\n};\n\nexport function Button(props: React.ComponentProps<\"button\">) {\n const style = {\n ...buttonStyles,\n ...(props.style || {}),\n };\n\n return <button type=\"button\" {...props} style={style} />;\n}\n","import React, { useEffect, useState } from \"react\";\nimport Joyride, { CallBackProps, STATUS, Step } from \"react-joyride\";\n\nimport { PulsatingEffect } from \"../../components/PulsatingEffect/PulsatingEffect\";\nimport { Confetti } from \"../../components/Confetti/Confetti\";\nimport { TitleBody } from \"../../components/TitleBody/TitleBody\";\nimport { API } from \"@storybook/manager-api\";\nimport { STORY_ARGS_UPDATED } from \"@storybook/core-events\";\nimport { buttonStyles } from \"src/components/Button/Button\";\n\nlet INTERACTIONS_COUNT = 0;\n\nexport function GuidedTour({\n api,\n isFinalStep,\n onFirstTourDone,\n}: {\n api: API;\n isFinalStep?: boolean;\n onFirstTourDone: () => void;\n}) {\n const [stepIndex, setStepIndex] = useState<number>();\n\n useEffect(() => {\n api.on(STORY_ARGS_UPDATED, () => {\n INTERACTIONS_COUNT = INTERACTIONS_COUNT + 1;\n if (INTERACTIONS_COUNT === 2) {\n setStepIndex(3);\n }\n });\n }, []);\n\n const steps: Step[] = isFinalStep\n ? [\n {\n target: \"#configure-your-project--docs\",\n content: (\n <TitleBody\n title=\"Continue setting up your project\"\n body=\"You nailed the basics. Now get started writing stories for your own components.\"\n />\n ),\n placement: \"right\",\n disableOverlay: true,\n disableBeacon: true,\n styles: {\n buttonNext: {\n display: \"none\",\n },\n },\n floaterProps: {\n disableAnimation: true,\n },\n },\n ]\n : [\n {\n target: \"#storybook-explorer-tree > div\",\n content: (\n <TitleBody\n title=\"Storybook is built from stories\"\n body=\"Storybook uses stories to represent the key states supported by each of your components. For example: this Button component has four stories.\"\n />\n ),\n placement: \"right\",\n disableBeacon: true,\n styles: {\n spotlight: {\n transform: 'translateY(30px)',\n },\n },\n floaterProps: {\n disableAnimation: true,\n },\n },\n {\n target: \"#storybook-preview-iframe\",\n content: (\n <TitleBody\n title=\"Storybook previews are interactive\"\n body=\"Whenever you modify code or stories, Storybook automatically updates how it previews your components.\"\n />\n ),\n placement: \"bottom\",\n },\n {\n target: \"#root div[role=main]\",\n content: (\n <>\n <TitleBody\n title=\"Interactive story playground\"\n body={\n <>\n See how a story renders with different data and state\n without touching code.\n <br />\n Try it out by pressing this button.\n </>\n }\n />\n <PulsatingEffect targetSelector=\"#control-primary\" />\n </>\n ),\n placement: \"right\",\n spotlightClicks: true,\n floaterProps: {\n target: \"#control-primary\",\n },\n styles: {\n buttonNext: {\n display: \"none\",\n },\n },\n },\n {\n target: \"#control-primary\",\n content: (\n <>\n <Confetti numberOfPieces={100} />\n <TitleBody\n title=\"Congratulations!\"\n body=\"You've learned how to control your stories interactively. Now: let's explore how to write your first story.\"\n />\n </>\n ),\n placement: \"right\",\n disableOverlay: true,\n locale: {\n last: \"Next\",\n },\n },\n ];\n\n return (\n <Joyride\n steps={steps}\n continuous\n stepIndex={stepIndex}\n spotlightPadding={0}\n hideBackButton\n disableCloseOnEsc\n disableOverlayClose\n disableScrolling\n hideCloseButton\n callback={(data: CallBackProps) => {\n if (!isFinalStep && data.status === STATUS.FINISHED) {\n onFirstTourDone();\n }\n }}\n floaterProps={{\n styles: {\n floater: {\n padding: 0,\n paddingLeft: 8,\n paddingTop: 8,\n filter:\n \"drop-shadow(0px 5px 5px rgba(0,0,0,0.05)) drop-shadow(0 1px 3px rgba(0,0,0,0.1))\",\n },\n },\n }}\n styles={{\n spotlight: {\n border: \"solid 2px #004c7c\",\n },\n tooltip: {\n maxWidth: 260,\n borderRadius: 4,\n padding: 15,\n },\n overlay: {\n backgroundColor: \"rgba(0, 0, 0, 0.48)\",\n },\n buttonNext: {\n ...buttonStyles,\n marginTop: 5,\n },\n tooltipContent: {\n paddingTop: 4,\n padding: 0,\n },\n options: {\n zIndex: 10000,\n primaryColor: \"#029CFD\",\n },\n }}\n />\n );\n}\n","import { css, styled } from \"@storybook/theming\";\nimport * as Dialog from \"@radix-ui/react-dialog\";\nimport React from \"react\";\n\nexport const StyledOverlay = styled(Dialog.Overlay)`\n background-color: rgba(27, 28, 29, 0.48);\n position: fixed;\n inset: 0px;\n width: 100%;\n height: 100%;\n`;\n\nexport const StyledContent = styled.div<{ width: number; height: number }>(\n ({ width, height }) => css`\n background-color: white;\n border-radius: 6px;\n box-shadow: rgba(14, 18, 22, 0.35) 0px 10px 38px -10px;\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: ${width ?? 740}px;\n height: ${height ? `${height}px` : \"auto\"};\n max-width: calc(100% - 40px);\n max-height: 85vh;\n `\n);\n\nexport const ContentWrapper = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof StyledContent> &\n React.ComponentProps<typeof Dialog.Content>\n>(({ width, height, children, ...contentProps }, ref) => (\n <Dialog.Content ref={ref} asChild {...contentProps}>\n <StyledContent width={width} height={height}>\n {children}\n </StyledContent>\n </Dialog.Content>\n));\n","import React from \"react\";\nimport * as Dialog from \"@radix-ui/react-dialog\";\nimport { ContentWrapper, StyledOverlay } from \"./Modal.styled\";\n\ntype ContentProps = React.ComponentProps<typeof ContentWrapper>;\n\ninterface ModalProps\n extends Omit<React.ComponentProps<typeof Dialog.Root>, \"children\"> {\n width?: number;\n height?: number;\n children: (props: {\n Title: typeof Dialog.Title;\n Description: typeof Dialog.Description;\n Close: typeof Dialog.Close;\n }) => React.ReactNode;\n onEscapeKeyDown?: ContentProps[\"onEscapeKeyDown\"];\n onInteractOutside?: ContentProps[\"onInteractOutside\"];\n}\n\nexport function Modal({\n children,\n width,\n height,\n onEscapeKeyDown,\n onInteractOutside = (ev) => ev.preventDefault(),\n ...rootProps\n}: ModalProps) {\n return (\n <Dialog.Root {...rootProps}>\n <Dialog.Portal>\n <StyledOverlay />\n <ContentWrapper\n width={width}\n height={height}\n onInteractOutside={onInteractOutside}\n onEscapeKeyDown={onEscapeKeyDown}\n >\n {children({\n Title: Dialog.Title,\n Description: Dialog.Description,\n Close: Dialog.Close,\n })}\n </ContentWrapper>\n </Dialog.Portal>\n </Dialog.Root>\n );\n}\n","import React from \"react\";\n\nexport function StorybookLogo() {\n return (\n <svg\n width=\"32px\"\n height=\"40px\"\n viewBox=\"0 0 256 319\"\n preserveAspectRatio=\"xMidYMid\"\n >\n <defs>\n <path\n d=\"M9.87245893,293.324145 L0.0114611411,30.5732167 C-0.314208957,21.8955842 6.33948896,14.5413918 15.0063196,13.9997149 L238.494389,0.0317105427 C247.316188,-0.519651867 254.914637,6.18486163 255.466,15.0066607 C255.486773,15.339032 255.497167,15.6719708 255.497167,16.0049907 L255.497167,302.318596 C255.497167,311.157608 248.331732,318.323043 239.492719,318.323043 C239.253266,318.323043 239.013844,318.317669 238.774632,318.306926 L25.1475605,308.712253 C16.8276309,308.338578 10.1847994,301.646603 9.87245893,293.324145 L9.87245893,293.324145 Z\"\n id=\"path-1\"\n ></path>\n </defs>\n <g>\n <mask id=\"mask-2\" fill=\"white\">\n <use xlinkHref=\"#path-1\"></use>\n </mask>\n <use fill=\"#FF4785\" fillRule=\"nonzero\" xlinkHref=\"#path-1\"></use>\n <path\n d=\"M188.665358,39.126973 L190.191903,2.41148534 L220.883535,0 L222.205755,37.8634126 C222.251771,39.1811466 221.22084,40.2866846 219.903106,40.3327009 C219.338869,40.3524045 218.785907,40.1715096 218.342409,39.8221376 L206.506729,30.4984116 L192.493574,41.1282444 C191.443077,41.9251106 189.945493,41.7195021 189.148627,40.6690048 C188.813185,40.2267976 188.6423,39.6815326 188.665358,39.126973 Z M149.413703,119.980309 C149.413703,126.206975 191.355678,123.222696 196.986019,118.848893 C196.986019,76.4467826 174.234041,54.1651411 132.57133,54.1651411 C90.9086182,54.1651411 67.5656805,76.7934542 67.5656805,110.735941 C67.5656805,169.85244 147.345341,170.983856 147.345341,203.229219 C147.345341,212.280549 142.913138,217.654777 133.162291,217.654777 C120.456641,217.654777 115.433477,211.165914 116.024438,189.103298 C116.024438,184.317101 67.5656805,182.824962 66.0882793,189.103298 C62.3262146,242.56887 95.6363019,257.990394 133.753251,257.990394 C170.688279,257.990394 199.645341,238.303123 199.645341,202.663511 C199.645341,139.304202 118.683759,141.001326 118.683759,109.604526 C118.683759,96.8760922 128.139127,95.178968 133.753251,95.178968 C139.662855,95.178968 150.300143,96.2205679 149.413703,119.980309 Z\"\n fill=\"#FFFFFF\"\n fillRule=\"nonzero\"\n mask=\"url(#mask-2)\"\n ></path>\n </g>\n </svg>\n );\n}\n","import { Icons } from \"@storybook/components\";\nimport { keyframes, styled } from \"@storybook/theming\";\n\nexport const ModalContentWrapper = styled.div`\n border-radius: 5px;\n display: flex;\n flex-direction: column;\n align-items: center;\n height: 100%;\n justify-content: space-between;\n`;\n\nexport const TopContent = styled.div`\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`;\n\nexport const Title = styled.h1`\n margin: 0;\n margin-top: 20px;\n margin-bottom: 5px;\n color: ${({ theme }) => theme.color.darkest};\n font-weight: ${({ theme }) => theme.typography.weight.bold};\n font-size: ${({ theme }) => theme.typography.size.m1}px;\n line-height: ${({ theme }) => theme.typography.size.m3}px;\n`;\n\nexport const Description = styled.p`\n margin: 0;\n margin-bottom: 20px;\n max-width: 320px;\n text-align: center;\n font-size: ${({ theme }) => theme.typography.size.s2}px;\n font-weight: ${({ theme }) => theme.typography.weight.regular};\n line-height: ${({ theme }) => theme.typography.size.m1}px;\n color: ${({ theme }) => theme.color.darker};\n`;\n\nexport const SkipButton = styled.button`\n all: unset;\n cursor: pointer;\n font-size: 13px;\n color: #798186;\n padding-bottom: 20px;\n\n &:focus-visible {\n outline: auto;\n }\n`;\n\nexport const StyledIcon = styled(Icons)`\n margin-left: 2px;\n height: 10px;\n`;\n\nexport const Background = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n overflow: hidden;\n`;\n\nexport const circle1Anim = keyframes`\n 0% { transform: translate(0px, 0px) }\n 50% { transform: translate(-200px, 0px) }\n 100% { transform: translate(0px, 0px) }\n`;\n\nexport const Circle1 = styled.div`\n position: absolute;\n width: 1200px;\n height: 1200px;\n left: -200px;\n top: -900px;\n background: radial-gradient(\n circle at center,\n rgba(253, 255, 147, 1) 0%,\n rgba(253, 255, 147, 0) 70%\n );\n animation: ${circle1Anim} 4s linear infinite;\n animation-timing-function: ease-in-out;\n z-index: 3;\n`;\n\nexport const circle2Anim = keyframes`\n 0% { transform: translate(0px, 0px) }\n 50% { transform: translate(400px, 0px) }\n 100% { transform: translate(0px, 0px) }\n`;\n\nexport const Circle2 = styled.div`\n position: absolute;\n width: 1200px;\n height: 1200px;\n left: -600px;\n top: -840px;\n background: radial-gradient(\n circle at center,\n rgba(255, 119, 119, 1) 0%,\n rgba(255, 119, 119, 0) 70%\n );\n animation: ${circle2Anim} 6s linear infinite;\n animation-timing-function: ease-in-out;\n z-index: 2;\n`;\n\nexport const circle3Anim = keyframes`\n 0% { transform: translate(600px, -40px) }\n 50% { transform: translate(600px, -200px) }\n 100% { transform: translate(600px, -40px) }\n`;\n\nexport const Circle3 = styled.div`\n position: absolute;\n width: 1200px;\n height: 1200px;\n left: -600px;\n top: -840px;\n background: radial-gradient(\n circle at center,\n rgba(119, 255, 247, 0.8) 0%,\n rgba(119, 255, 247, 0) 70%\n );\n animation: ${circle3Anim} 4s linear infinite;\n animation-timing-function: ease-in-out;\n z-index: 4;\n`;\n","import React from \"react\";\n\nimport { Button } from \"../../components/Button/Button\";\nimport { Modal } from \"../../components/Modal/Modal\";\nimport { StorybookLogo } from \"./StorybookLogo\";\nimport {\n ModalContentWrapper,\n SkipButton,\n StyledIcon,\n Title,\n Description,\n Background,\n Circle1,\n Circle2,\n Circle3,\n TopContent,\n} from \"./WelcomeModal.styled\";\n\nexport const WelcomeModal = ({\n onSkip,\n onProceed,\n}: {\n onSkip: () => void;\n onProceed: () => void;\n}) => {\n return (\n <Modal width={540} height={430} defaultOpen>\n {({ Close }) => (\n <ModalContentWrapper data-chromatic=\"ignore\">\n <TopContent>\n <StorybookLogo />\n <Title>Welcome to Storybook</Title>\n <Description>\n Storybook helps you develop UI components. Learn the basics in a\n few simple steps.\n </Description>\n <Button style={{ marginTop: 4 }} onClick={onProceed}>\n Start your 3 minute tour\n </Button>\n </TopContent>\n <Close asChild>\n <SkipButton onClick={onSkip}>\n Skip tour\n <StyledIcon icon=\"arrowright\" />\n </SkipButton>\n </Close>\n <Background>\n <Circle1 />\n <Circle2 />\n <Circle3 />\n </Background>\n </ModalContentWrapper>\n )}\n </Modal>\n );\n};\n","import React from \"react\";\nimport { Button } from \"../../components/Button/Button\";\n\nimport { Modal } from \"../../components/Modal/Modal\";\nimport { StorybookLogo } from \"../WelcomeModal/StorybookLogo\";\nimport { ModalContentWrapper } from \"../WelcomeModal/WelcomeModal.styled\";\n\nexport function WriteStoriesModal({ onFinish }: { onFinish: () => void }) {\n return (\n <Modal width={540} defaultOpen>\n {({ Title, Description }) => (\n <ModalContentWrapper data-chromatic=\"ignore\">\n <StorybookLogo />\n <Title style={{ marginTop: 20 }}>\n Create your first story (WORK IN PROGRESS)\n </Title>\n <Description>\n Now it's your turn. <br />\n See how easy it is to create your first story by following these\n steps below.\n </Description>\n <Button style={{ marginTop: 4 }} onClick={onFinish}>\n Go to story\n </Button>\n </ModalContentWrapper>\n )}\n </Modal>\n );\n}\n","import React, { useCallback, useEffect, useState } from \"react\";\nimport { ThemeProvider, ensure, themes } from \"@storybook/theming\";\nimport { STORY_CHANGED, CURRENT_STORY_WAS_SET } from \"@storybook/core-events\";\nimport { type API } from \"@storybook/manager-api\";\n\nimport { GuidedTour } from \"./features/GuidedTour/GuidedTour\";\nimport { WelcomeModal } from \"./features/WelcomeModal/WelcomeModal\";\nimport { WriteStoriesModal } from \"./features/WriteStoriesModal/WriteStoriesModal\";\nimport { Confetti } from \"./components/Confetti/Confetti\";\n\ntype Step =\n | \"1:Welcome\"\n | \"2:StorybookTour\"\n | \"3:WriteYourStory\"\n | \"4:VisitNewStory\"\n | \"5:ConfigureYourProject\";\n\nconst theme = ensure(themes.light);\n\nexport default function App({ api }: { api: API }) {\n const [enabled, setEnabled] = useState(true);\n const [showConfetti, setShowConfetti] = useState(false);\n const [step, setStep] = useState<Step>(\"1:Welcome\");\n\n const skipTour = useCallback(() => {\n // remove onboarding query parameter from current url\n const url = new URL(window.location.href);\n url.searchParams.delete(\"onboarding\");\n const path = decodeURIComponent(url.searchParams.get(\"path\"));\n url.search = `?path=${path}`;\n history.replaceState({}, \"\", url.href);\n setEnabled(false);\n }, [setEnabled]);\n\n useEffect(() => {\n let stepTimeout: number;\n if (step === \"4:VisitNewStory\") {\n stepTimeout = window.setTimeout(() => {\n setShowConfetti(true);\n setStep(\"5:ConfigureYourProject\");\n }, 2000);\n }\n\n return () => {\n clearTimeout(stepTimeout);\n };\n }, [step]);\n\n useEffect(() => {\n api.once(CURRENT_STORY_WAS_SET, ({ storyId }) => {\n api.setQueryParams({ onboarding: \"true\" });\n // make sure the initial state is set correctly:\n // 1. Selected story is primary button\n // 2. The addon panel is opened, in the bottom and the controls tab is selected\n if (storyId !== \"example-button--primary\") {\n api.selectStory(\"example-button--primary\", undefined, {\n ref: undefined,\n });\n }\n api.togglePanel(true);\n api.togglePanelPosition(\"bottom\");\n api.setSelectedPanel(\"addon-controls\");\n });\n }, []);\n\n useEffect(() => {\n const onStoryChanged = (storyId: string) => {\n if (storyId === \"configure-your-project--docs\") {\n skipTour();\n }\n };\n\n api.on(STORY_CHANGED, onStoryChanged);\n\n return () => {\n api.off(STORY_CHANGED, onStoryChanged);\n };\n }, []);\n\n if (!enabled) {\n return null;\n }\n\n return (\n <ThemeProvider theme={theme}>\n {showConfetti && (\n <Confetti\n numberOfPieces={1000}\n initialVelocityY={3}\n recycle={false}\n onConfettiComplete={(confetti) => {\n confetti.reset();\n setShowConfetti(false);\n }}\n />\n )}\n {step === \"1:Welcome\" && (\n <WelcomeModal\n onProceed={() => {\n setStep(\"2:StorybookTour\");\n }}\n onSkip={skipTour}\n />\n )}\n {(step === \"2:StorybookTour\" || step === \"5:ConfigureYourProject\") && (\n <GuidedTour\n api={api}\n isFinalStep={step === \"5:ConfigureYourProject\"}\n onFirstTourDone={() => {\n setStep(\"3:WriteYourStory\");\n }}\n />\n )}\n {step === \"3:WriteYourStory\" && (\n <WriteStoriesModal\n onFinish={() => {\n // TODO: enable this\n // api.selectStory(\"example-button--warning\");\n setStep(\"4:VisitNewStory\");\n }}\n />\n )}\n </ThemeProvider>\n );\n}\n","import ReactDOM from \"react-dom\";\nimport React, { lazy, Suspense } from \"react\";\nimport { addons } from \"@storybook/manager-api\";\n\nconst App = lazy(() => import(\"./App\"));\n\n// The addon is enabled only when:\n// 1. The onboarding query parameter is present\n// 2. The example button stories are present\naddons.register(\"@storybook/addon-onboarding\", async (api) => {\n const urlState = api.getUrlState();\n const isOnboarding = urlState.path === '/onboarding' || urlState.queryParams.onboarding === 'true';\n\n if (!isOnboarding) {\n return;\n }\n\n let hasButtonStories = false;\n try {\n const response = await fetch(\"./index.json\");\n const index = await response.json();\n hasButtonStories = !!index.entries[\"example-button--primary\"];\n } catch (e) {}\n\n if (hasButtonStories) {\n // Add a new DOM element to document.body, where we will bootstrap our React app\n const domNode = document.createElement(\"div\");\n\n domNode.id = \"addon-onboarding\";\n // Append the new DOM element to document.body\n document.body.appendChild(domNode);\n\n // Render the React app\n ReactDOM.render(\n <Suspense fallback={<div>Loading...</div>}>\n <App api={api} />\n </Suspense>,\n domNode\n );\n }\n});\n"]}
package/dist/manager.mjs CHANGED
@@ -1,14 +1,14 @@
1
1
  import s, { lazy, Suspense, useState, useCallback, useEffect } from 'react';
2
- import gt from 'react-confetti';
2
+ import Ct from 'react-confetti';
3
3
  import { ThemeProvider, ensure, themes, styled, keyframes, css } from '@storybook/theming';
4
- import Kt, { createPortal } from 'react-dom';
5
- import Bt, { STATUS } from 'react-joyride';
4
+ import _t, { createPortal } from 'react-dom';
5
+ import Ot, { STATUS } from 'react-joyride';
6
6
  import { CURRENT_STORY_WAS_SET, STORY_CHANGED, STORY_ARGS_UPDATED } from '@storybook/core-events';
7
- import * as d from '@radix-ui/react-dialog';
7
+ import * as m from '@radix-ui/react-dialog';
8
8
  import { Icons } from '@storybook/components';
9
9
  import { addons } from '@storybook/manager-api';
10
10
 
11
- var ct=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var ut=(t,o)=>{for(var e in o)ct(t,e,{get:o[e],enumerable:!0});};function z({targetSelector:t}){return useEffect(()=>{let o=document.querySelector(t);if(o){o.style.animation="pulsate 3s infinite",o.style.transformOrigin="center",o.style.animationTimingFunction="ease-in-out";let e=`
11
+ var ht=Object.defineProperty;var l=(t,o)=>()=>(t&&(o=t(t=0)),o);var xt=(t,o)=>{for(var e in o)ht(t,e,{get:o[e],enumerable:!0});};function Y({targetSelector:t}){return useEffect(()=>{let o=document.querySelector(t);if(o){o.style.animation="pulsate 3s infinite",o.style.transformOrigin="center",o.style.animationTimingFunction="ease-in-out";let e=`
12
12
  @keyframes pulsate {
13
13
  0% {
14
14
  box-shadow: 0 0 0 0 rgba(2, 156, 253, 0.7), 0 0 0 0 rgba(2, 156, 253, 0.4);
@@ -20,61 +20,25 @@ var ct=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var ut=(t,o)=>{f
20
20
  box-shadow: 0 0 0 0 rgba(2, 156, 253, 0), 0 0 0 0 rgba(2, 156, 253, 0);
21
21
  }
22
22
  }
23
- `,r=document.createElement("style");r.id="sb-onboarding-pulsating-effect",r.innerHTML=e,document.head.appendChild(r);}return ()=>{document.querySelector("#sb-onboarding-pulsating-effect")?.remove();}},[t]),null}var N=a(()=>{});function b({top:t=0,left:o=0,width:e=window.innerWidth,height:r=window.innerHeight,...l}){let[n]=useState(()=>{let p=document.createElement("div");return p.setAttribute("id","confetti-container"),p.setAttribute("style","position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 9999;"),p});return useEffect(()=>(document.body.appendChild(n),()=>{document.body.removeChild(n);}),[]),createPortal(s.createElement(Ct,{top:t,left:o,width:e,height:r},s.createElement(gt,{...l})),n)}var Ct,D=a(()=>{Ct=styled.div(({width:t,height:o,left:e,top:r})=>({width:`${t}px`,height:`${o}px`,left:`${e}px`,top:`${r}px`,position:"relative",overflow:"hidden"}));});var kt,g,C=a(()=>{kt=styled.button`
24
- all: unset;
25
- border: 0;
26
- border-radius: 0.25rem;
27
- cursor: pointer;
28
- display: inline-flex;
29
- align-items: center;
30
- justify-content: center;
31
- padding: 0 0.75rem;
32
- background: ${({theme:t})=>t.color.secondary};
33
- color: ${({theme:t})=>t.color.lightest};
34
- height: 32px;
35
- font-size: 0.8125rem;
36
- font-weight: 700;
37
- font-family: ${({theme:t})=>t.typography.fonts.base};
38
- transition: all 0.16s ease-in-out;
39
- text-decoration: none;
40
-
41
- &:hover {
42
- background-color: #0b94eb;
43
- }
44
-
45
- &:focus {
46
- box-shadow: inset 0 0 0 2px rgba(0, 0, 0, 0.1);
47
- }
48
- `,g=({children:t,onClick:o,...e})=>s.createElement(kt,{onClick:o,...e},t);});var vt,Tt,Pt,Dt,Et,j,H=a(()=>{C();vt=styled.div`
49
- background: #fff;
50
- width: 260px;
51
- padding: 15px;
52
- border-radius: 5px;
53
- `,Tt=styled.div`
23
+ `,r=document.createElement("style");r.id="sb-onboarding-pulsating-effect",r.innerHTML=e,document.head.appendChild(r);}return ()=>{document.querySelector("#sb-onboarding-pulsating-effect")?.remove();}},[t]),null}var j=l(()=>{});function h({top:t=0,left:o=0,width:e=window.innerWidth,height:r=window.innerHeight,...n}){let[i]=useState(()=>{let d=document.createElement("div");return d.setAttribute("id","confetti-container"),d.setAttribute("style","position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 9999;"),d});return useEffect(()=>(document.body.appendChild(i),()=>{document.body.removeChild(i);}),[]),createPortal(s.createElement(Pt,{top:t,left:o,width:e,height:r},s.createElement(Ct,{...n})),i)}var Pt,T=l(()=>{Pt=styled.div(({width:t,height:o,left:e,top:r})=>({width:`${t}px`,height:`${o}px`,left:`${e}px`,top:`${r}px`,position:"relative",overflow:"hidden"}));});var U,_,G,K=l(()=>{U=styled.div`
54
24
  display: flex;
55
25
  flex-direction: column;
56
26
  align-items: flex-start;
57
- `,Pt=styled.div`
27
+ `,_=styled.strong`
58
28
  font-size: 13px;
59
- font-weight: 700;
60
- color: ${({theme:t})=>t.color.darkest};
61
- `,Dt=styled.p`
29
+ `,G=styled.p`
62
30
  font-size: 13px;
63
31
  text-align: start;
64
- color: ${({theme:t})=>t.color.mediumdark};
32
+ color: #798186;
65
33
  margin: 0;
66
- margin-top: 5px;
67
- `,Et=styled.div`
68
- display: flex;
69
- justify-content: flex-end;
70
- margin-top: 15px;
71
- `,j=({step:t,primaryProps:o,tooltipProps:e})=>(console.log(t),s.createElement(vt,{...e},s.createElement(Tt,null,t.title&&s.createElement(Pt,null,t.title),s.createElement(Dt,null,t.content)),(t.title!=="Interactive story playground"||t.title!=="Continue setting up your project")&&s.createElement(Et,{id:"buttonNext"},s.createElement(g,{...o},"Next"))));});function U({api:t,isFinalStep:o,onFirstTourDone:e}){let[r,l]=useState();return useEffect(()=>{t.on(STORY_ARGS_UPDATED,()=>{E=E+1,E===2&&l(3);});},[]),s.createElement(Bt,{steps:o?[{target:"#configure-your-project--docs",title:"Continue setting up your project",content:"You nailed the basics. Now get started writing stories for your own components.",placement:"right",disableOverlay:!0,disableBeacon:!0,floaterProps:{disableAnimation:!0}}]:[{target:"#storybook-explorer-tree > div",title:"Storybook is built from stories",content:"Storybook uses stories to represent the key states supported by each of your components. For example: this Button component has four stories.",placement:"right",disableBeacon:!0,styles:{spotlight:{transform:"translateY(30px)"}},floaterProps:{disableAnimation:!0}},{target:"#storybook-preview-iframe",title:"Storybook previews are interactive",content:"Whenever you modify code or stories, Storybook automatically updates how it previews your components.",placement:"bottom"},{target:"#root div[role=main]",title:"Interactive story playground",content:s.createElement(s.Fragment,null,"See how a story renders with different data and state without touching code.",s.createElement("br",null),s.createElement("br",null),"Try it out by pressing this button.",s.createElement(z,{targetSelector:"#control-primary"})),placement:"right",spotlightClicks:!0,floaterProps:{target:"#control-primary"}},{target:"#control-primary",title:"Congratulations!",content:s.createElement(s.Fragment,null,"You've learned how to control your stories interactively. Now: let's explore how to write your first story.",s.createElement(b,{numberOfPieces:100})),placement:"right",disableOverlay:!0,locale:{last:"Next"}}],continuous:!0,stepIndex:r,spotlightPadding:0,hideBackButton:!0,disableCloseOnEsc:!0,disableOverlayClose:!0,disableScrolling:!0,hideCloseButton:!0,callback:p=>{!o&&p.status===STATUS.FINISHED&&e();},floaterProps:{styles:{floater:{padding:0,paddingLeft:8,paddingTop:8,filter:"drop-shadow(0px 5px 5px rgba(0,0,0,0.05)) drop-shadow(0 1px 3px rgba(0,0,0,0.1))"}}},tooltipComponent:j,styles:{spotlight:{border:"solid 2px #004c7c"},overlay:{backgroundColor:"rgba(0, 0, 0, 0.48)"},options:{zIndex:1e4,primaryColor:"#029CFD"}}})}var E,_=a(()=>{N();D();H();E=0;});var K,Ft,V,Z=a(()=>{K=styled(d.Overlay)`
34
+ margin-top: 4px;
35
+ `;});function g({prefix:t,title:o,body:e}){return s.createElement(U,null,t,s.createElement(_,null,o),s.createElement(G,null,e))}var V=l(()=>{K();});function x(t){let o={...O,...t.style||{}};return s.createElement("button",{type:"button",...t,style:o})}var O,b=l(()=>{O={border:0,cursor:"pointer",fontSize:13,lineHeight:1,padding:"9px 12px",backgroundColor:"#029CFD",borderRadius:4,color:"#fff",fontWeight:700};});function q({api:t,isFinalStep:o,onFirstTourDone:e}){let[r,n]=useState();return useEffect(()=>{t.on(STORY_ARGS_UPDATED,()=>{B=B+1,B===2&&n(3);});},[]),s.createElement(Ot,{steps:o?[{target:"#configure-your-project--docs",content:s.createElement(g,{title:"Continue setting up your project",body:"You nailed the basics. Now get started writing stories for your own components."}),placement:"right",disableOverlay:!0,disableBeacon:!0,styles:{buttonNext:{display:"none"}},floaterProps:{disableAnimation:!0}}]:[{target:"#storybook-explorer-tree > div",content:s.createElement(g,{title:"Storybook is built from stories",body:"Storybook uses stories to represent the key states supported by each of your components. For example: this Button component has four stories."}),placement:"right",disableBeacon:!0,styles:{spotlight:{transform:"translateY(30px)"}},floaterProps:{disableAnimation:!0}},{target:"#storybook-preview-iframe",content:s.createElement(g,{title:"Storybook previews are interactive",body:"Whenever you modify code or stories, Storybook automatically updates how it previews your components."}),placement:"bottom"},{target:"#root div[role=main]",content:s.createElement(s.Fragment,null,s.createElement(g,{title:"Interactive story playground",body:s.createElement(s.Fragment,null,"See how a story renders with different data and state without touching code.",s.createElement("br",null),"Try it out by pressing this button.")}),s.createElement(Y,{targetSelector:"#control-primary"})),placement:"right",spotlightClicks:!0,floaterProps:{target:"#control-primary"},styles:{buttonNext:{display:"none"}}},{target:"#control-primary",content:s.createElement(s.Fragment,null,s.createElement(h,{numberOfPieces:100}),s.createElement(g,{title:"Congratulations!",body:"You've learned how to control your stories interactively. Now: let's explore how to write your first story."})),placement:"right",disableOverlay:!0,locale:{last:"Next"}}],continuous:!0,stepIndex:r,spotlightPadding:0,hideBackButton:!0,disableCloseOnEsc:!0,disableOverlayClose:!0,disableScrolling:!0,hideCloseButton:!0,callback:d=>{!o&&d.status===STATUS.FINISHED&&e();},floaterProps:{styles:{floater:{padding:0,paddingLeft:8,paddingTop:8,filter:"drop-shadow(0px 5px 5px rgba(0,0,0,0.05)) drop-shadow(0 1px 3px rgba(0,0,0,0.1))"}}},styles:{spotlight:{border:"solid 2px #004c7c"},tooltip:{maxWidth:260,borderRadius:4,padding:15},overlay:{backgroundColor:"rgba(0, 0, 0, 0.48)"},buttonNext:{...O,marginTop:5},tooltipContent:{paddingTop:4,padding:0},options:{zIndex:1e4,primaryColor:"#029CFD"}}})}var B,Z=l(()=>{j();T();V();b();B=0;});var Q,It,X,R=l(()=>{Q=styled(m.Overlay)`
72
36
  background-color: rgba(27, 28, 29, 0.48);
73
37
  position: fixed;
74
38
  inset: 0px;
75
39
  width: 100%;
76
40
  height: 100%;
77
- `,Ft=styled.div(({width:t,height:o})=>css`
41
+ `,It=styled.div(({width:t,height:o})=>css`
78
42
  background-color: white;
79
43
  border-radius: 6px;
80
44
  box-shadow: rgba(14, 18, 22, 0.35) 0px 10px 38px -10px;
@@ -86,20 +50,20 @@ var ct=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var ut=(t,o)=>{f
86
50
  height: ${o?`${o}px`:"auto"};
87
51
  max-width: calc(100% - 40px);
88
52
  max-height: 85vh;
89
- `),V=s.forwardRef(({width:t,height:o,children:e,...r},l)=>s.createElement(d.Content,{ref:l,asChild:!0,...r},s.createElement(Ft,{width:t,height:o},e)));});function k({children:t,width:o,height:e,onEscapeKeyDown:r,onInteractOutside:l=p=>p.preventDefault(),...n}){return s.createElement(d.Root,{...n},s.createElement(d.Portal,null,s.createElement(K,null),s.createElement(V,{width:o,height:e,onInteractOutside:l,onEscapeKeyDown:r},t({Title:d.Title,Description:d.Description,Close:d.Close}))))}var W=a(()=>{Z();});function v(){return s.createElement("svg",{width:"32px",height:"40px",viewBox:"0 0 256 319",preserveAspectRatio:"xMidYMid"},s.createElement("defs",null,s.createElement("path",{d:"M9.87245893,293.324145 L0.0114611411,30.5732167 C-0.314208957,21.8955842 6.33948896,14.5413918 15.0063196,13.9997149 L238.494389,0.0317105427 C247.316188,-0.519651867 254.914637,6.18486163 255.466,15.0066607 C255.486773,15.339032 255.497167,15.6719708 255.497167,16.0049907 L255.497167,302.318596 C255.497167,311.157608 248.331732,318.323043 239.492719,318.323043 C239.253266,318.323043 239.013844,318.317669 238.774632,318.306926 L25.1475605,308.712253 C16.8276309,308.338578 10.1847994,301.646603 9.87245893,293.324145 L9.87245893,293.324145 Z",id:"path-1"})),s.createElement("g",null,s.createElement("mask",{id:"mask-2",fill:"white"},s.createElement("use",{xlinkHref:"#path-1"})),s.createElement("use",{fill:"#FF4785",fillRule:"nonzero",xlinkHref:"#path-1"}),s.createElement("path",{d:"M188.665358,39.126973 L190.191903,2.41148534 L220.883535,0 L222.205755,37.8634126 C222.251771,39.1811466 221.22084,40.2866846 219.903106,40.3327009 C219.338869,40.3524045 218.785907,40.1715096 218.342409,39.8221376 L206.506729,30.4984116 L192.493574,41.1282444 C191.443077,41.9251106 189.945493,41.7195021 189.148627,40.6690048 C188.813185,40.2267976 188.6423,39.6815326 188.665358,39.126973 Z M149.413703,119.980309 C149.413703,126.206975 191.355678,123.222696 196.986019,118.848893 C196.986019,76.4467826 174.234041,54.1651411 132.57133,54.1651411 C90.9086182,54.1651411 67.5656805,76.7934542 67.5656805,110.735941 C67.5656805,169.85244 147.345341,170.983856 147.345341,203.229219 C147.345341,212.280549 142.913138,217.654777 133.162291,217.654777 C120.456641,217.654777 115.433477,211.165914 116.024438,189.103298 C116.024438,184.317101 67.5656805,182.824962 66.0882793,189.103298 C62.3262146,242.56887 95.6363019,257.990394 133.753251,257.990394 C170.688279,257.990394 199.645341,238.303123 199.645341,202.663511 C199.645341,139.304202 118.683759,141.001326 118.683759,109.604526 C118.683759,96.8760922 128.139127,95.178968 133.753251,95.178968 C139.662855,95.178968 150.300143,96.2205679 149.413703,119.980309 Z",fill:"#FFFFFF",fillRule:"nonzero",mask:"url(#mask-2)"})))}var B=a(()=>{});var T,q,J,X,Q,R,tt,At,ot,zt,et,Nt,rt,$=a(()=>{T=styled.div`
53
+ `),X=s.forwardRef(({width:t,height:o,children:e,...r},n)=>s.createElement(m.Content,{ref:n,asChild:!0,...r},s.createElement(It,{width:t,height:o},e)));});function S({children:t,width:o,height:e,onEscapeKeyDown:r,onInteractOutside:n=d=>d.preventDefault(),...i}){return s.createElement(m.Root,{...i},s.createElement(m.Portal,null,s.createElement(Q,null),s.createElement(X,{width:o,height:e,onInteractOutside:n,onEscapeKeyDown:r},t({Title:m.Title,Description:m.Description,Close:m.Close}))))}var M=l(()=>{R();});function k(){return s.createElement("svg",{width:"32px",height:"40px",viewBox:"0 0 256 319",preserveAspectRatio:"xMidYMid"},s.createElement("defs",null,s.createElement("path",{d:"M9.87245893,293.324145 L0.0114611411,30.5732167 C-0.314208957,21.8955842 6.33948896,14.5413918 15.0063196,13.9997149 L238.494389,0.0317105427 C247.316188,-0.519651867 254.914637,6.18486163 255.466,15.0066607 C255.486773,15.339032 255.497167,15.6719708 255.497167,16.0049907 L255.497167,302.318596 C255.497167,311.157608 248.331732,318.323043 239.492719,318.323043 C239.253266,318.323043 239.013844,318.317669 238.774632,318.306926 L25.1475605,308.712253 C16.8276309,308.338578 10.1847994,301.646603 9.87245893,293.324145 L9.87245893,293.324145 Z",id:"path-1"})),s.createElement("g",null,s.createElement("mask",{id:"mask-2",fill:"white"},s.createElement("use",{xlinkHref:"#path-1"})),s.createElement("use",{fill:"#FF4785",fillRule:"nonzero",xlinkHref:"#path-1"}),s.createElement("path",{d:"M188.665358,39.126973 L190.191903,2.41148534 L220.883535,0 L222.205755,37.8634126 C222.251771,39.1811466 221.22084,40.2866846 219.903106,40.3327009 C219.338869,40.3524045 218.785907,40.1715096 218.342409,39.8221376 L206.506729,30.4984116 L192.493574,41.1282444 C191.443077,41.9251106 189.945493,41.7195021 189.148627,40.6690048 C188.813185,40.2267976 188.6423,39.6815326 188.665358,39.126973 Z M149.413703,119.980309 C149.413703,126.206975 191.355678,123.222696 196.986019,118.848893 C196.986019,76.4467826 174.234041,54.1651411 132.57133,54.1651411 C90.9086182,54.1651411 67.5656805,76.7934542 67.5656805,110.735941 C67.5656805,169.85244 147.345341,170.983856 147.345341,203.229219 C147.345341,212.280549 142.913138,217.654777 133.162291,217.654777 C120.456641,217.654777 115.433477,211.165914 116.024438,189.103298 C116.024438,184.317101 67.5656805,182.824962 66.0882793,189.103298 C62.3262146,242.56887 95.6363019,257.990394 133.753251,257.990394 C170.688279,257.990394 199.645341,238.303123 199.645341,202.663511 C199.645341,139.304202 118.683759,141.001326 118.683759,109.604526 C118.683759,96.8760922 128.139127,95.178968 133.753251,95.178968 C139.662855,95.178968 150.300143,96.2205679 149.413703,119.980309 Z",fill:"#FFFFFF",fillRule:"nonzero",mask:"url(#mask-2)"})))}var I=l(()=>{});var v,tt,ot,et,rt,nt,it,At,st,Lt,pt,zt,at,A=l(()=>{v=styled.div`
90
54
  border-radius: 5px;
91
55
  display: flex;
92
56
  flex-direction: column;
93
57
  align-items: center;
94
58
  height: 100%;
95
59
  justify-content: space-between;
96
- `,q=styled.div`
60
+ `,tt=styled.div`
97
61
  display: flex;
98
62
  flex: 1;
99
63
  flex-direction: column;
100
64
  align-items: center;
101
65
  justify-content: center;
102
- `,J=styled.h1`
66
+ `,ot=styled.h1`
103
67
  margin: 0;
104
68
  margin-top: 20px;
105
69
  margin-bottom: 5px;
@@ -107,7 +71,7 @@ var ct=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var ut=(t,o)=>{f
107
71
  font-weight: ${({theme:t})=>t.typography.weight.bold};
108
72
  font-size: ${({theme:t})=>t.typography.size.m1}px;
109
73
  line-height: ${({theme:t})=>t.typography.size.m3}px;
110
- `,X=styled.p`
74
+ `,et=styled.p`
111
75
  margin: 0;
112
76
  margin-bottom: 20px;
113
77
  max-width: 320px;
@@ -116,7 +80,7 @@ var ct=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var ut=(t,o)=>{f
116
80
  font-weight: ${({theme:t})=>t.typography.weight.regular};
117
81
  line-height: ${({theme:t})=>t.typography.size.m1}px;
118
82
  color: ${({theme:t})=>t.color.darker};
119
- `,Q=styled.button`
83
+ `,rt=styled.button`
120
84
  all: unset;
121
85
  cursor: pointer;
122
86
  font-size: 13px;
@@ -126,10 +90,10 @@ var ct=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var ut=(t,o)=>{f
126
90
  &:focus-visible {
127
91
  outline: auto;
128
92
  }
129
- `,R=styled(Icons)`
93
+ `,nt=styled(Icons)`
130
94
  margin-left: 2px;
131
95
  height: 10px;
132
- `,tt=styled.div`
96
+ `,it=styled.div`
133
97
  position: absolute;
134
98
  top: 0;
135
99
  left: 0;
@@ -141,7 +105,7 @@ var ct=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var ut=(t,o)=>{f
141
105
  0% { transform: translate(0px, 0px) }
142
106
  50% { transform: translate(-200px, 0px) }
143
107
  100% { transform: translate(0px, 0px) }
144
- `,ot=styled.div`
108
+ `,st=styled.div`
145
109
  position: absolute;
146
110
  width: 1200px;
147
111
  height: 1200px;
@@ -155,11 +119,11 @@ var ct=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var ut=(t,o)=>{f
155
119
  animation: ${At} 4s linear infinite;
156
120
  animation-timing-function: ease-in-out;
157
121
  z-index: 3;
158
- `,zt=keyframes`
122
+ `,Lt=keyframes`
159
123
  0% { transform: translate(0px, 0px) }
160
124
  50% { transform: translate(400px, 0px) }
161
125
  100% { transform: translate(0px, 0px) }
162
- `,et=styled.div`
126
+ `,pt=styled.div`
163
127
  position: absolute;
164
128
  width: 1200px;
165
129
  height: 1200px;
@@ -170,14 +134,14 @@ var ct=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var ut=(t,o)=>{f
170
134
  rgba(255, 119, 119, 1) 0%,
171
135
  rgba(255, 119, 119, 0) 70%
172
136
  );
173
- animation: ${zt} 6s linear infinite;
137
+ animation: ${Lt} 6s linear infinite;
174
138
  animation-timing-function: ease-in-out;
175
139
  z-index: 2;
176
- `,Nt=keyframes`
140
+ `,zt=keyframes`
177
141
  0% { transform: translate(600px, -40px) }
178
142
  50% { transform: translate(600px, -200px) }
179
143
  100% { transform: translate(600px, -40px) }
180
- `,rt=styled.div`
144
+ `,at=styled.div`
181
145
  position: absolute;
182
146
  width: 1200px;
183
147
  height: 1200px;
@@ -188,9 +152,9 @@ var ct=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var ut=(t,o)=>{f
188
152
  rgba(119, 255, 247, 0.8) 0%,
189
153
  rgba(119, 255, 247, 0) 70%
190
154
  );
191
- animation: ${Nt} 4s linear infinite;
155
+ animation: ${zt} 4s linear infinite;
192
156
  animation-timing-function: ease-in-out;
193
157
  z-index: 4;
194
- `;});var nt,it=a(()=>{C();W();B();$();nt=({onSkip:t,onProceed:o})=>s.createElement(k,{width:540,height:430,defaultOpen:!0},({Close:e})=>s.createElement(T,{"data-chromatic":"ignore"},s.createElement(q,null,s.createElement(v,null),s.createElement(J,null,"Welcome to Storybook"),s.createElement(X,null,"Storybook helps you develop UI components. Learn the basics in a few simple steps."),s.createElement(g,{style:{marginTop:4},onClick:o},"Start your 3 minute tour")),s.createElement(e,{asChild:!0},s.createElement(Q,{onClick:t},"Skip tour",s.createElement(R,{icon:"arrowright"}))),s.createElement(tt,null,s.createElement(ot,null),s.createElement(et,null),s.createElement(rt,null))));});function st({onFinish:t}){return s.createElement(k,{width:540,defaultOpen:!0},({Title:o,Description:e})=>s.createElement(T,{"data-chromatic":"ignore"},s.createElement(v,null),s.createElement(o,{style:{marginTop:20}},"Create your first story (WORK IN PROGRESS)"),s.createElement(e,null,"Now it's your turn. ",s.createElement("br",null),"See how easy it is to create your first story by following these steps below."),s.createElement(g,{style:{marginTop:4},onClick:t},"Go to story")))}var pt=a(()=>{C();W();B();$();});var dt={};ut(dt,{default:()=>lt});function lt({api:t}){let[o,e]=useState(!0),[r,l]=useState(!1),[n,p]=useState("1:Welcome"),A=useCallback(()=>{let i=new URL(window.location.href);i.searchParams.delete("onboarding");let P=decodeURIComponent(i.searchParams.get("path"));i.search=`?path=${P}`,history.replaceState({},"",i.href),e(!1);},[e]);return useEffect(()=>{let i;return n==="4:VisitNewStory"&&(i=window.setTimeout(()=>{l(!0),p("5:ConfigureYourProject");},2e3)),()=>{clearTimeout(i);}},[n]),useEffect(()=>{t.once(CURRENT_STORY_WAS_SET,({storyId:i})=>{i!=="example-button--primary"&&t.selectStory("example-button--primary",void 0,{ref:void 0}),t.togglePanel(!0),t.togglePanelPosition("bottom"),t.setSelectedPanel("addon-controls");});},[]),useEffect(()=>{let i=P=>{P==="configure-your-project--docs"&&A();};return t.on(STORY_CHANGED,i),()=>{t.off(STORY_CHANGED,i);}},[]),o?s.createElement(ThemeProvider,{theme:Gt},r&&s.createElement(b,{numberOfPieces:1e3,initialVelocityY:3,recycle:!1,onConfettiComplete:i=>{i.reset(),l(!1);}}),n==="1:Welcome"&&s.createElement(nt,{onProceed:()=>{p("2:StorybookTour");},onSkip:A}),(n==="2:StorybookTour"||n==="5:ConfigureYourProject")&&s.createElement(U,{api:t,isFinalStep:n==="5:ConfigureYourProject",onFirstTourDone:()=>{p("3:WriteYourStory");}}),n==="3:WriteYourStory"&&s.createElement(st,{onFinish:()=>{p("4:VisitNewStory");}})):null}var Gt,mt=a(()=>{_();it();pt();D();Gt=ensure(themes.light);});var Jt=lazy(()=>Promise.resolve().then(()=>(mt(),dt)));addons.register("@storybook/addon-onboarding",async t=>{if(!(t.getUrlState().path==="/onboarding"))return;let e=!1;try{e=!!(await(await fetch("./index.json")).json()).entries["example-button--primary"];}catch{}if(e){let r=document.createElement("div");r.id="addon-onboarding",document.body.appendChild(r),Kt.render(s.createElement(Suspense,{fallback:s.createElement("div",null,"Loading...")},s.createElement(Jt,{api:t})),r);}});
158
+ `;});var lt,dt=l(()=>{b();M();I();A();lt=({onSkip:t,onProceed:o})=>s.createElement(S,{width:540,height:430,defaultOpen:!0},({Close:e})=>s.createElement(v,{"data-chromatic":"ignore"},s.createElement(tt,null,s.createElement(k,null),s.createElement(ot,null,"Welcome to Storybook"),s.createElement(et,null,"Storybook helps you develop UI components. Learn the basics in a few simple steps."),s.createElement(x,{style:{marginTop:4},onClick:o},"Start your 3 minute tour")),s.createElement(e,{asChild:!0},s.createElement(rt,{onClick:t},"Skip tour",s.createElement(nt,{icon:"arrowright"}))),s.createElement(it,null,s.createElement(st,null),s.createElement(pt,null),s.createElement(at,null))));});function mt({onFinish:t}){return s.createElement(S,{width:540,defaultOpen:!0},({Title:o,Description:e})=>s.createElement(v,{"data-chromatic":"ignore"},s.createElement(k,null),s.createElement(o,{style:{marginTop:20}},"Create your first story (WORK IN PROGRESS)"),s.createElement(e,null,"Now it's your turn. ",s.createElement("br",null),"See how easy it is to create your first story by following these steps below."),s.createElement(x,{style:{marginTop:4},onClick:t},"Go to story")))}var ut=l(()=>{b();M();I();A();});var gt={};xt(gt,{default:()=>ft});function ft({api:t}){let[o,e]=useState(!0),[r,n]=useState(!1),[i,d]=useState("1:Welcome"),F=useCallback(()=>{let p=new URL(window.location.href);p.searchParams.delete("onboarding");let P=decodeURIComponent(p.searchParams.get("path"));p.search=`?path=${P}`,history.replaceState({},"",p.href),e(!1);},[e]);return useEffect(()=>{let p;return i==="4:VisitNewStory"&&(p=window.setTimeout(()=>{n(!0),d("5:ConfigureYourProject");},2e3)),()=>{clearTimeout(p);}},[i]),useEffect(()=>{t.once(CURRENT_STORY_WAS_SET,({storyId:p})=>{t.setQueryParams({onboarding:"true"}),p!=="example-button--primary"&&t.selectStory("example-button--primary",void 0,{ref:void 0}),t.togglePanel(!0),t.togglePanelPosition("bottom"),t.setSelectedPanel("addon-controls");});},[]),useEffect(()=>{let p=P=>{P==="configure-your-project--docs"&&F();};return t.on(STORY_CHANGED,p),()=>{t.off(STORY_CHANGED,p);}},[]),o?s.createElement(ThemeProvider,{theme:Ut},r&&s.createElement(h,{numberOfPieces:1e3,initialVelocityY:3,recycle:!1,onConfettiComplete:p=>{p.reset(),n(!1);}}),i==="1:Welcome"&&s.createElement(lt,{onProceed:()=>{d("2:StorybookTour");},onSkip:F}),(i==="2:StorybookTour"||i==="5:ConfigureYourProject")&&s.createElement(q,{api:t,isFinalStep:i==="5:ConfigureYourProject",onFirstTourDone:()=>{d("3:WriteYourStory");}}),i==="3:WriteYourStory"&&s.createElement(mt,{onFinish:()=>{d("4:VisitNewStory");}})):null}var Ut,yt=l(()=>{Z();dt();ut();T();Ut=ensure(themes.light);});var qt=lazy(()=>Promise.resolve().then(()=>(yt(),gt)));addons.register("@storybook/addon-onboarding",async t=>{let o=t.getUrlState();if(!(o.path==="/onboarding"||o.queryParams.onboarding==="true"))return;let r=!1;try{r=!!(await(await fetch("./index.json")).json()).entries["example-button--primary"];}catch{}if(r){let n=document.createElement("div");n.id="addon-onboarding",document.body.appendChild(n),_t.render(s.createElement(Suspense,{fallback:s.createElement("div",null,"Loading...")},s.createElement(qt,{api:t})),n);}});
195
159
  //# sourceMappingURL=out.js.map
196
160
  //# sourceMappingURL=manager.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/PulsatingEffect/PulsatingEffect.tsx","../src/components/Confetti/Confetti.tsx","../src/components/Button/Button.tsx","../src/features/GuidedTour/Tooltip.tsx","../src/features/GuidedTour/GuidedTour.tsx","../src/components/Modal/Modal.styled.tsx","../src/components/Modal/Modal.tsx","../src/features/WelcomeModal/StorybookLogo.tsx","../src/features/WelcomeModal/WelcomeModal.styled.tsx","../src/features/WelcomeModal/WelcomeModal.tsx","../src/features/WriteStoriesModal/WriteStoriesModal.tsx","../src/App.tsx","../src/manager.tsx"],"names":["useEffect","PulsatingEffect","targetSelector","element","keyframes","style","init_PulsatingEffect","__esmMin","ReactConfetti","React","styled","createPortal","useState","Confetti","top","left","width","height","confettiProps","confettiContainer","container","Wrapper","init_Confetti","Container","Button","init_Button","theme","children","onClick","rest","TooltipBody","TooltipTitle","TooltipContent","TooltipFooter","Tooltip","init_Tooltip","step","primaryProps","tooltipProps","Joyride","STATUS","STORY_ARGS_UPDATED","GuidedTour","api","isFinalStep","onFirstTourDone","stepIndex","setStepIndex","INTERACTIONS_COUNT","data","init_GuidedTour","css","Dialog","StyledOverlay","StyledContent","ContentWrapper","init_Modal_styled","contentProps","ref","Modal","onEscapeKeyDown","onInteractOutside","ev","rootProps","init_Modal","StorybookLogo","init_StorybookLogo","Icons","ModalContentWrapper","TopContent","Title","Description","SkipButton","StyledIcon","Background","circle1Anim","Circle1","circle2Anim","Circle2","circle3Anim","Circle3","init_WelcomeModal_styled","WelcomeModal","init_WelcomeModal","onSkip","onProceed","Close","WriteStoriesModal","onFinish","init_WriteStoriesModal","App_exports","__export","App","useCallback","ThemeProvider","ensure","themes","STORY_CHANGED","CURRENT_STORY_WAS_SET","enabled","setEnabled","showConfetti","setShowConfetti","setStep","skipTour","url","path","stepTimeout","storyId","onStoryChanged","confetti","init_App","ReactDOM","lazy","Suspense","addons","hasButtonStories","domNode"],"mappings":"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","sourcesContent":["import { useEffect } from \"react\";\n\nexport function PulsatingEffect({\n targetSelector,\n}: {\n targetSelector: string;\n}): JSX.Element {\n useEffect(() => {\n const element = document.querySelector<HTMLElement>(targetSelector);\n if (element) {\n element.style.animation = \"pulsate 3s infinite\";\n element.style.transformOrigin = \"center\";\n element.style.animationTimingFunction = \"ease-in-out\";\n\n const keyframes = `\n @keyframes pulsate {\n 0% {\n box-shadow: 0 0 0 0 rgba(2, 156, 253, 0.7), 0 0 0 0 rgba(2, 156, 253, 0.4);\n }\n 50% {\n box-shadow: 0 0 0 20px rgba(2, 156, 253, 0), 0 0 0 40px rgba(2, 156, 253, 0);\n }\n 100% {\n box-shadow: 0 0 0 0 rgba(2, 156, 253, 0), 0 0 0 0 rgba(2, 156, 253, 0);\n }\n }\n `;\n const style = document.createElement(\"style\");\n style.id = \"sb-onboarding-pulsating-effect\";\n style.innerHTML = keyframes;\n document.head.appendChild(style);\n }\n\n return () => {\n const styleElement = document.querySelector(\n \"#sb-onboarding-pulsating-effect\"\n );\n styleElement?.remove();\n };\n }, [targetSelector]);\n\n return null;\n}\n","import ReactConfetti from \"react-confetti\";\nimport React, { useEffect } from \"react\";\nimport { styled } from \"@storybook/theming\";\nimport { createPortal } from \"react-dom\";\nimport { useState } from \"react\";\n\ninterface ConfettiProps\n extends Omit<React.ComponentProps<typeof ReactConfetti>, \"drawShape\"> {\n top?: number;\n left?: number;\n width?: number;\n height?: number;\n}\n\nconst Wrapper = styled.div<{\n width: number;\n height: number;\n top: number;\n left: number;\n}>(({ width, height, left, top }) => ({\n width: `${width}px`,\n height: `${height}px`,\n left: `${left}px`,\n top: `${top}px`,\n position: \"relative\",\n overflow: \"hidden\",\n}));\n\nexport function Confetti({\n top = 0,\n left = 0,\n width = window.innerWidth,\n height = window.innerHeight,\n ...confettiProps\n}: ConfettiProps): React.ReactPortal {\n const [confettiContainer] = useState(() => {\n const container = document.createElement(\"div\");\n container.setAttribute(\"id\", \"confetti-container\");\n container.setAttribute(\n \"style\",\n \"position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 9999;\"\n );\n\n return container;\n });\n\n useEffect(() => {\n document.body.appendChild(confettiContainer);\n\n return () => {\n document.body.removeChild(confettiContainer);\n };\n }, []);\n\n return createPortal(\n <Wrapper top={top} left={left} width={width} height={height}>\n <ReactConfetti {...confettiProps} />\n </Wrapper>,\n confettiContainer\n );\n}\n","import { styled } from \"@storybook/theming\";\nimport React, { FC } from \"react\";\n\nexport interface ButtonProps {\n children: string;\n onClick?: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n}\n\nconst Container = styled.button`\n all: unset;\n border: 0;\n border-radius: 0.25rem;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0 0.75rem;\n background: ${({ theme }) => theme.color.secondary};\n color: ${({ theme }) => theme.color.lightest};\n height: 32px;\n font-size: 0.8125rem;\n font-weight: 700;\n font-family: ${({ theme }) => theme.typography.fonts.base};\n transition: all 0.16s ease-in-out;\n text-decoration: none;\n\n &:hover {\n background-color: #0b94eb;\n }\n\n &:focus {\n box-shadow: inset 0 0 0 2px rgba(0, 0, 0, 0.1);\n }\n`;\n\nexport const Button: FC<ButtonProps> = ({ children, onClick, ...rest }) => {\n return (\n <Container onClick={onClick} {...rest}>\n {children}\n </Container>\n );\n};\n","import { styled } from \"@storybook/theming\";\nimport React from \"react\";\nimport { Button } from \"src/components/Button/Button\";\nimport { TooltipRenderProps } from \"react-joyride\";\n\nconst TooltipBody = styled.div`\n background: #fff;\n width: 260px;\n padding: 15px;\n border-radius: 5px;\n`;\n\nconst Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n`;\n\nconst TooltipTitle = styled.div`\n font-size: 13px;\n font-weight: 700;\n color: ${({ theme }) => theme.color.darkest};\n`;\n\nconst TooltipContent = styled.p`\n font-size: 13px;\n text-align: start;\n color: ${({ theme }) => theme.color.mediumdark};\n margin: 0;\n margin-top: 5px;\n`;\n\nconst TooltipFooter = styled.div`\n display: flex;\n justify-content: flex-end;\n margin-top: 15px;\n`;\n\nexport const Tooltip = ({\n step,\n primaryProps,\n tooltipProps,\n}: TooltipRenderProps) => {\n console.log(step);\n return (\n <TooltipBody {...tooltipProps}>\n <Wrapper>\n {step.title && <TooltipTitle>{step.title}</TooltipTitle>}\n <TooltipContent>{step.content}</TooltipContent>\n </Wrapper>\n {(step.title !== \"Interactive story playground\" ||\n step.title !== \"Continue setting up your project\") && (\n <TooltipFooter id=\"buttonNext\">\n <Button {...primaryProps}>Next</Button>\n </TooltipFooter>\n )}\n </TooltipBody>\n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport Joyride, { CallBackProps, STATUS, Step } from \"react-joyride\";\n\nimport { PulsatingEffect } from \"../../components/PulsatingEffect/PulsatingEffect\";\nimport { Confetti } from \"../../components/Confetti/Confetti\";\nimport { API } from \"@storybook/manager-api\";\nimport { STORY_ARGS_UPDATED } from \"@storybook/core-events\";\nimport { Tooltip } from \"./Tooltip\";\n\nlet INTERACTIONS_COUNT = 0;\n\nexport function GuidedTour({\n api,\n isFinalStep,\n onFirstTourDone,\n}: {\n api: API;\n isFinalStep?: boolean;\n onFirstTourDone: () => void;\n}) {\n const [stepIndex, setStepIndex] = useState<number>();\n\n useEffect(() => {\n api.on(STORY_ARGS_UPDATED, () => {\n INTERACTIONS_COUNT = INTERACTIONS_COUNT + 1;\n if (INTERACTIONS_COUNT === 2) {\n setStepIndex(3);\n }\n });\n }, []);\n\n const steps: Step[] = isFinalStep\n ? [\n {\n target: \"#configure-your-project--docs\",\n title: \"Continue setting up your project\",\n content:\n \"You nailed the basics. Now get started writing stories for your own components.\",\n placement: \"right\",\n disableOverlay: true,\n disableBeacon: true,\n floaterProps: {\n disableAnimation: true,\n },\n },\n ]\n : [\n {\n target: \"#storybook-explorer-tree > div\",\n title: \"Storybook is built from stories\",\n content:\n \"Storybook uses stories to represent the key states supported by each of your components. For example: this Button component has four stories.\",\n placement: \"right\",\n disableBeacon: true,\n styles: {\n spotlight: {\n transform: \"translateY(30px)\",\n },\n },\n floaterProps: {\n disableAnimation: true,\n },\n },\n {\n target: \"#storybook-preview-iframe\",\n title: \"Storybook previews are interactive\",\n content:\n \"Whenever you modify code or stories, Storybook automatically updates how it previews your components.\",\n placement: \"bottom\",\n },\n {\n target: \"#root div[role=main]\",\n title: \"Interactive story playground\",\n content: (\n <>\n See how a story renders with different data and state without\n touching code.\n <br />\n <br />\n Try it out by pressing this button.\n <PulsatingEffect targetSelector=\"#control-primary\" />\n </>\n ),\n placement: \"right\",\n spotlightClicks: true,\n floaterProps: {\n target: \"#control-primary\",\n },\n },\n {\n target: \"#control-primary\",\n title: \"Congratulations!\",\n content: (\n <>\n You've learned how to control your stories interactively. Now:\n let's explore how to write your first story.\n <Confetti numberOfPieces={100} />\n </>\n ),\n placement: \"right\",\n disableOverlay: true,\n locale: {\n last: \"Next\",\n },\n },\n ];\n\n return (\n <Joyride\n steps={steps}\n continuous\n stepIndex={stepIndex}\n spotlightPadding={0}\n hideBackButton\n disableCloseOnEsc\n disableOverlayClose\n disableScrolling\n hideCloseButton\n callback={(data: CallBackProps) => {\n if (!isFinalStep && data.status === STATUS.FINISHED) {\n onFirstTourDone();\n }\n }}\n floaterProps={{\n styles: {\n floater: {\n padding: 0,\n paddingLeft: 8,\n paddingTop: 8,\n filter:\n \"drop-shadow(0px 5px 5px rgba(0,0,0,0.05)) drop-shadow(0 1px 3px rgba(0,0,0,0.1))\",\n },\n },\n }}\n tooltipComponent={Tooltip}\n styles={{\n spotlight: {\n border: \"solid 2px #004c7c\",\n },\n overlay: {\n backgroundColor: \"rgba(0, 0, 0, 0.48)\",\n },\n options: {\n zIndex: 10000,\n primaryColor: \"#029CFD\",\n },\n }}\n />\n );\n}\n","import { css, styled } from \"@storybook/theming\";\nimport * as Dialog from \"@radix-ui/react-dialog\";\nimport React from \"react\";\n\nexport const StyledOverlay = styled(Dialog.Overlay)`\n background-color: rgba(27, 28, 29, 0.48);\n position: fixed;\n inset: 0px;\n width: 100%;\n height: 100%;\n`;\n\nexport const StyledContent = styled.div<{ width: number; height: number }>(\n ({ width, height }) => css`\n background-color: white;\n border-radius: 6px;\n box-shadow: rgba(14, 18, 22, 0.35) 0px 10px 38px -10px;\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: ${width ?? 740}px;\n height: ${height ? `${height}px` : \"auto\"};\n max-width: calc(100% - 40px);\n max-height: 85vh;\n `\n);\n\nexport const ContentWrapper = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof StyledContent> &\n React.ComponentProps<typeof Dialog.Content>\n>(({ width, height, children, ...contentProps }, ref) => (\n <Dialog.Content ref={ref} asChild {...contentProps}>\n <StyledContent width={width} height={height}>\n {children}\n </StyledContent>\n </Dialog.Content>\n));\n","import React from \"react\";\nimport * as Dialog from \"@radix-ui/react-dialog\";\nimport { ContentWrapper, StyledOverlay } from \"./Modal.styled\";\n\ntype ContentProps = React.ComponentProps<typeof ContentWrapper>;\n\ninterface ModalProps\n extends Omit<React.ComponentProps<typeof Dialog.Root>, \"children\"> {\n width?: number;\n height?: number;\n children: (props: {\n Title: typeof Dialog.Title;\n Description: typeof Dialog.Description;\n Close: typeof Dialog.Close;\n }) => React.ReactNode;\n onEscapeKeyDown?: ContentProps[\"onEscapeKeyDown\"];\n onInteractOutside?: ContentProps[\"onInteractOutside\"];\n}\n\nexport function Modal({\n children,\n width,\n height,\n onEscapeKeyDown,\n onInteractOutside = (ev) => ev.preventDefault(),\n ...rootProps\n}: ModalProps) {\n return (\n <Dialog.Root {...rootProps}>\n <Dialog.Portal>\n <StyledOverlay />\n <ContentWrapper\n width={width}\n height={height}\n onInteractOutside={onInteractOutside}\n onEscapeKeyDown={onEscapeKeyDown}\n >\n {children({\n Title: Dialog.Title,\n Description: Dialog.Description,\n Close: Dialog.Close,\n })}\n </ContentWrapper>\n </Dialog.Portal>\n </Dialog.Root>\n );\n}\n","import React from \"react\";\n\nexport function StorybookLogo() {\n return (\n <svg\n width=\"32px\"\n height=\"40px\"\n viewBox=\"0 0 256 319\"\n preserveAspectRatio=\"xMidYMid\"\n >\n <defs>\n <path\n d=\"M9.87245893,293.324145 L0.0114611411,30.5732167 C-0.314208957,21.8955842 6.33948896,14.5413918 15.0063196,13.9997149 L238.494389,0.0317105427 C247.316188,-0.519651867 254.914637,6.18486163 255.466,15.0066607 C255.486773,15.339032 255.497167,15.6719708 255.497167,16.0049907 L255.497167,302.318596 C255.497167,311.157608 248.331732,318.323043 239.492719,318.323043 C239.253266,318.323043 239.013844,318.317669 238.774632,318.306926 L25.1475605,308.712253 C16.8276309,308.338578 10.1847994,301.646603 9.87245893,293.324145 L9.87245893,293.324145 Z\"\n id=\"path-1\"\n ></path>\n </defs>\n <g>\n <mask id=\"mask-2\" fill=\"white\">\n <use xlinkHref=\"#path-1\"></use>\n </mask>\n <use fill=\"#FF4785\" fillRule=\"nonzero\" xlinkHref=\"#path-1\"></use>\n <path\n d=\"M188.665358,39.126973 L190.191903,2.41148534 L220.883535,0 L222.205755,37.8634126 C222.251771,39.1811466 221.22084,40.2866846 219.903106,40.3327009 C219.338869,40.3524045 218.785907,40.1715096 218.342409,39.8221376 L206.506729,30.4984116 L192.493574,41.1282444 C191.443077,41.9251106 189.945493,41.7195021 189.148627,40.6690048 C188.813185,40.2267976 188.6423,39.6815326 188.665358,39.126973 Z M149.413703,119.980309 C149.413703,126.206975 191.355678,123.222696 196.986019,118.848893 C196.986019,76.4467826 174.234041,54.1651411 132.57133,54.1651411 C90.9086182,54.1651411 67.5656805,76.7934542 67.5656805,110.735941 C67.5656805,169.85244 147.345341,170.983856 147.345341,203.229219 C147.345341,212.280549 142.913138,217.654777 133.162291,217.654777 C120.456641,217.654777 115.433477,211.165914 116.024438,189.103298 C116.024438,184.317101 67.5656805,182.824962 66.0882793,189.103298 C62.3262146,242.56887 95.6363019,257.990394 133.753251,257.990394 C170.688279,257.990394 199.645341,238.303123 199.645341,202.663511 C199.645341,139.304202 118.683759,141.001326 118.683759,109.604526 C118.683759,96.8760922 128.139127,95.178968 133.753251,95.178968 C139.662855,95.178968 150.300143,96.2205679 149.413703,119.980309 Z\"\n fill=\"#FFFFFF\"\n fillRule=\"nonzero\"\n mask=\"url(#mask-2)\"\n ></path>\n </g>\n </svg>\n );\n}\n","import { Icons } from \"@storybook/components\";\nimport { keyframes, styled } from \"@storybook/theming\";\n\nexport const ModalContentWrapper = styled.div`\n border-radius: 5px;\n display: flex;\n flex-direction: column;\n align-items: center;\n height: 100%;\n justify-content: space-between;\n`;\n\nexport const TopContent = styled.div`\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`;\n\nexport const Title = styled.h1`\n margin: 0;\n margin-top: 20px;\n margin-bottom: 5px;\n color: ${({ theme }) => theme.color.darkest};\n font-weight: ${({ theme }) => theme.typography.weight.bold};\n font-size: ${({ theme }) => theme.typography.size.m1}px;\n line-height: ${({ theme }) => theme.typography.size.m3}px;\n`;\n\nexport const Description = styled.p`\n margin: 0;\n margin-bottom: 20px;\n max-width: 320px;\n text-align: center;\n font-size: ${({ theme }) => theme.typography.size.s2}px;\n font-weight: ${({ theme }) => theme.typography.weight.regular};\n line-height: ${({ theme }) => theme.typography.size.m1}px;\n color: ${({ theme }) => theme.color.darker};\n`;\n\nexport const SkipButton = styled.button`\n all: unset;\n cursor: pointer;\n font-size: 13px;\n color: #798186;\n padding-bottom: 20px;\n\n &:focus-visible {\n outline: auto;\n }\n`;\n\nexport const StyledIcon = styled(Icons)`\n margin-left: 2px;\n height: 10px;\n`;\n\nexport const Background = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n overflow: hidden;\n`;\n\nexport const circle1Anim = keyframes`\n 0% { transform: translate(0px, 0px) }\n 50% { transform: translate(-200px, 0px) }\n 100% { transform: translate(0px, 0px) }\n`;\n\nexport const Circle1 = styled.div`\n position: absolute;\n width: 1200px;\n height: 1200px;\n left: -200px;\n top: -900px;\n background: radial-gradient(\n circle at center,\n rgba(253, 255, 147, 1) 0%,\n rgba(253, 255, 147, 0) 70%\n );\n animation: ${circle1Anim} 4s linear infinite;\n animation-timing-function: ease-in-out;\n z-index: 3;\n`;\n\nexport const circle2Anim = keyframes`\n 0% { transform: translate(0px, 0px) }\n 50% { transform: translate(400px, 0px) }\n 100% { transform: translate(0px, 0px) }\n`;\n\nexport const Circle2 = styled.div`\n position: absolute;\n width: 1200px;\n height: 1200px;\n left: -600px;\n top: -840px;\n background: radial-gradient(\n circle at center,\n rgba(255, 119, 119, 1) 0%,\n rgba(255, 119, 119, 0) 70%\n );\n animation: ${circle2Anim} 6s linear infinite;\n animation-timing-function: ease-in-out;\n z-index: 2;\n`;\n\nexport const circle3Anim = keyframes`\n 0% { transform: translate(600px, -40px) }\n 50% { transform: translate(600px, -200px) }\n 100% { transform: translate(600px, -40px) }\n`;\n\nexport const Circle3 = styled.div`\n position: absolute;\n width: 1200px;\n height: 1200px;\n left: -600px;\n top: -840px;\n background: radial-gradient(\n circle at center,\n rgba(119, 255, 247, 0.8) 0%,\n rgba(119, 255, 247, 0) 70%\n );\n animation: ${circle3Anim} 4s linear infinite;\n animation-timing-function: ease-in-out;\n z-index: 4;\n`;\n","import React from \"react\";\n\nimport { Button } from \"../../components/Button/Button\";\nimport { Modal } from \"../../components/Modal/Modal\";\nimport { StorybookLogo } from \"./StorybookLogo\";\nimport {\n ModalContentWrapper,\n SkipButton,\n StyledIcon,\n Title,\n Description,\n Background,\n Circle1,\n Circle2,\n Circle3,\n TopContent,\n} from \"./WelcomeModal.styled\";\n\nexport const WelcomeModal = ({\n onSkip,\n onProceed,\n}: {\n onSkip: () => void;\n onProceed: () => void;\n}) => {\n return (\n <Modal width={540} height={430} defaultOpen>\n {({ Close }) => (\n <ModalContentWrapper data-chromatic=\"ignore\">\n <TopContent>\n <StorybookLogo />\n <Title>Welcome to Storybook</Title>\n <Description>\n Storybook helps you develop UI components. Learn the basics in a\n few simple steps.\n </Description>\n <Button style={{ marginTop: 4 }} onClick={onProceed}>\n Start your 3 minute tour\n </Button>\n </TopContent>\n <Close asChild>\n <SkipButton onClick={onSkip}>\n Skip tour\n <StyledIcon icon=\"arrowright\" />\n </SkipButton>\n </Close>\n <Background>\n <Circle1 />\n <Circle2 />\n <Circle3 />\n </Background>\n </ModalContentWrapper>\n )}\n </Modal>\n );\n};\n","import React from \"react\";\nimport { Button } from \"../../components/Button/Button\";\n\nimport { Modal } from \"../../components/Modal/Modal\";\nimport { StorybookLogo } from \"../WelcomeModal/StorybookLogo\";\nimport { ModalContentWrapper } from \"../WelcomeModal/WelcomeModal.styled\";\n\nexport function WriteStoriesModal({ onFinish }: { onFinish: () => void }) {\n return (\n <Modal width={540} defaultOpen>\n {({ Title, Description }) => (\n <ModalContentWrapper data-chromatic=\"ignore\">\n <StorybookLogo />\n <Title style={{ marginTop: 20 }}>\n Create your first story (WORK IN PROGRESS)\n </Title>\n <Description>\n Now it's your turn. <br />\n See how easy it is to create your first story by following these\n steps below.\n </Description>\n <Button style={{ marginTop: 4 }} onClick={onFinish}>\n Go to story\n </Button>\n </ModalContentWrapper>\n )}\n </Modal>\n );\n}\n","import React, { useCallback, useEffect, useState } from \"react\";\nimport { ThemeProvider, ensure, themes } from \"@storybook/theming\";\nimport { STORY_CHANGED, CURRENT_STORY_WAS_SET } from \"@storybook/core-events\";\nimport { type API } from \"@storybook/manager-api\";\n\nimport { GuidedTour } from \"./features/GuidedTour/GuidedTour\";\nimport { WelcomeModal } from \"./features/WelcomeModal/WelcomeModal\";\nimport { WriteStoriesModal } from \"./features/WriteStoriesModal/WriteStoriesModal\";\nimport { Confetti } from \"./components/Confetti/Confetti\";\n\ntype Step =\n | \"1:Welcome\"\n | \"2:StorybookTour\"\n | \"3:WriteYourStory\"\n | \"4:VisitNewStory\"\n | \"5:ConfigureYourProject\";\n\nconst theme = ensure(themes.light);\n\nexport default function App({ api }: { api: API }) {\n const [enabled, setEnabled] = useState(true);\n const [showConfetti, setShowConfetti] = useState(false);\n const [step, setStep] = useState<Step>(\"1:Welcome\");\n\n const skipTour = useCallback(() => {\n // remove onboarding query parameter from current url\n const url = new URL(window.location.href);\n url.searchParams.delete(\"onboarding\");\n const path = decodeURIComponent(url.searchParams.get(\"path\"));\n url.search = `?path=${path}`;\n history.replaceState({}, \"\", url.href);\n setEnabled(false);\n }, [setEnabled]);\n\n useEffect(() => {\n let stepTimeout: number;\n if (step === \"4:VisitNewStory\") {\n stepTimeout = window.setTimeout(() => {\n setShowConfetti(true);\n setStep(\"5:ConfigureYourProject\");\n }, 2000);\n }\n\n return () => {\n clearTimeout(stepTimeout);\n };\n }, [step]);\n\n useEffect(() => {\n api.once(CURRENT_STORY_WAS_SET, ({ storyId }) => {\n // make sure the initial state is set correctly:\n // 1. Selected story is primary button\n // 2. The addon panel is opened, in the bottom and the controls tab is selected\n if (storyId !== \"example-button--primary\") {\n api.selectStory(\"example-button--primary\", undefined, {\n ref: undefined,\n });\n }\n api.togglePanel(true);\n api.togglePanelPosition(\"bottom\");\n api.setSelectedPanel(\"addon-controls\");\n });\n }, []);\n\n useEffect(() => {\n const onStoryChanged = (storyId: string) => {\n if (storyId === \"configure-your-project--docs\") {\n skipTour();\n }\n };\n\n api.on(STORY_CHANGED, onStoryChanged);\n\n return () => {\n api.off(STORY_CHANGED, onStoryChanged);\n };\n }, []);\n\n if (!enabled) {\n return null;\n }\n\n return (\n <ThemeProvider theme={theme}>\n {showConfetti && (\n <Confetti\n numberOfPieces={1000}\n initialVelocityY={3}\n recycle={false}\n onConfettiComplete={(confetti) => {\n confetti.reset();\n setShowConfetti(false);\n }}\n />\n )}\n {step === \"1:Welcome\" && (\n <WelcomeModal\n onProceed={() => {\n setStep(\"2:StorybookTour\");\n }}\n onSkip={skipTour}\n />\n )}\n {(step === \"2:StorybookTour\" || step === \"5:ConfigureYourProject\") && (\n <GuidedTour\n api={api}\n isFinalStep={step === \"5:ConfigureYourProject\"}\n onFirstTourDone={() => {\n setStep(\"3:WriteYourStory\");\n }}\n />\n )}\n {step === \"3:WriteYourStory\" && (\n <WriteStoriesModal\n onFinish={() => {\n // TODO: enable this\n // api.selectStory(\"example-button--warning\");\n setStep(\"4:VisitNewStory\");\n }}\n />\n )}\n </ThemeProvider>\n );\n}\n","import ReactDOM from \"react-dom\";\nimport React, { lazy, Suspense } from \"react\";\nimport { addons } from \"@storybook/manager-api\";\n\nconst App = lazy(() => import(\"./App\"));\n\n// The addon is enabled only when:\n// 1. The onboarding query parameter is present\n// 2. The example button stories are present\naddons.register(\"@storybook/addon-onboarding\", async (api) => {\n const isOnboarding = api.getUrlState().path === '/onboarding';\n\n if (!isOnboarding) {\n return;\n }\n\n let hasButtonStories = false;\n try {\n const response = await fetch(\"./index.json\");\n const index = await response.json();\n hasButtonStories = !!index.entries[\"example-button--primary\"];\n } catch (e) {}\n\n if (hasButtonStories) {\n // Add a new DOM element to document.body, where we will bootstrap our React app\n const domNode = document.createElement(\"div\");\n\n domNode.id = \"addon-onboarding\";\n // Append the new DOM element to document.body\n document.body.appendChild(domNode);\n\n // Render the React app\n ReactDOM.render(\n <Suspense fallback={<div>Loading...</div>}>\n <App api={api} />\n </Suspense>,\n domNode\n );\n }\n});\n"]}
1
+ {"version":3,"sources":["../src/components/PulsatingEffect/PulsatingEffect.tsx","../src/components/Confetti/Confetti.tsx","../src/components/TitleBody/TitleBody.styled.tsx","../src/components/TitleBody/TitleBody.tsx","../src/components/Button/Button.tsx","../src/features/GuidedTour/GuidedTour.tsx","../src/components/Modal/Modal.styled.tsx","../src/components/Modal/Modal.tsx","../src/features/WelcomeModal/StorybookLogo.tsx","../src/features/WelcomeModal/WelcomeModal.styled.tsx","../src/features/WelcomeModal/WelcomeModal.tsx","../src/features/WriteStoriesModal/WriteStoriesModal.tsx","../src/App.tsx","../src/manager.tsx"],"names":["useEffect","PulsatingEffect","targetSelector","element","keyframes","style","init_PulsatingEffect","__esmMin","ReactConfetti","React","styled","createPortal","useState","Confetti","top","left","width","height","confettiProps","confettiContainer","container","Wrapper","init_Confetti","Title","Body","init_TitleBody_styled","TitleBody","prefix","title","body","init_TitleBody","Button","props","buttonStyles","init_Button","Joyride","STATUS","STORY_ARGS_UPDATED","GuidedTour","api","isFinalStep","onFirstTourDone","stepIndex","setStepIndex","INTERACTIONS_COUNT","data","init_GuidedTour","css","Dialog","StyledOverlay","StyledContent","ContentWrapper","init_Modal_styled","children","contentProps","ref","Modal","onEscapeKeyDown","onInteractOutside","ev","rootProps","init_Modal","StorybookLogo","init_StorybookLogo","Icons","ModalContentWrapper","TopContent","Description","SkipButton","StyledIcon","Background","circle1Anim","Circle1","circle2Anim","Circle2","circle3Anim","Circle3","init_WelcomeModal_styled","theme","WelcomeModal","init_WelcomeModal","onSkip","onProceed","Close","WriteStoriesModal","onFinish","init_WriteStoriesModal","App_exports","__export","App","useCallback","ThemeProvider","ensure","themes","STORY_CHANGED","CURRENT_STORY_WAS_SET","enabled","setEnabled","showConfetti","setShowConfetti","step","setStep","skipTour","url","path","stepTimeout","storyId","onStoryChanged","confetti","init_App","ReactDOM","lazy","Suspense","addons","urlState","hasButtonStories","domNode"],"mappings":"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","sourcesContent":["import { useEffect } from \"react\";\n\nexport function PulsatingEffect({\n targetSelector,\n}: {\n targetSelector: string;\n}): JSX.Element {\n useEffect(() => {\n const element = document.querySelector<HTMLElement>(targetSelector);\n if (element) {\n element.style.animation = \"pulsate 3s infinite\";\n element.style.transformOrigin = \"center\";\n element.style.animationTimingFunction = \"ease-in-out\";\n\n const keyframes = `\n @keyframes pulsate {\n 0% {\n box-shadow: 0 0 0 0 rgba(2, 156, 253, 0.7), 0 0 0 0 rgba(2, 156, 253, 0.4);\n }\n 50% {\n box-shadow: 0 0 0 20px rgba(2, 156, 253, 0), 0 0 0 40px rgba(2, 156, 253, 0);\n }\n 100% {\n box-shadow: 0 0 0 0 rgba(2, 156, 253, 0), 0 0 0 0 rgba(2, 156, 253, 0);\n }\n }\n `;\n const style = document.createElement(\"style\");\n style.id = \"sb-onboarding-pulsating-effect\";\n style.innerHTML = keyframes;\n document.head.appendChild(style);\n }\n\n return () => {\n const styleElement = document.querySelector(\n \"#sb-onboarding-pulsating-effect\"\n );\n styleElement?.remove();\n };\n }, [targetSelector]);\n\n return null;\n}\n","import ReactConfetti from \"react-confetti\";\nimport React, { useEffect } from \"react\";\nimport { styled } from \"@storybook/theming\";\nimport { createPortal } from \"react-dom\";\nimport { useState } from \"react\";\n\ninterface ConfettiProps\n extends Omit<React.ComponentProps<typeof ReactConfetti>, \"drawShape\"> {\n top?: number;\n left?: number;\n width?: number;\n height?: number;\n}\n\nconst Wrapper = styled.div<{\n width: number;\n height: number;\n top: number;\n left: number;\n}>(({ width, height, left, top }) => ({\n width: `${width}px`,\n height: `${height}px`,\n left: `${left}px`,\n top: `${top}px`,\n position: \"relative\",\n overflow: \"hidden\",\n}));\n\nexport function Confetti({\n top = 0,\n left = 0,\n width = window.innerWidth,\n height = window.innerHeight,\n ...confettiProps\n}: ConfettiProps): React.ReactPortal {\n const [confettiContainer] = useState(() => {\n const container = document.createElement(\"div\");\n container.setAttribute(\"id\", \"confetti-container\");\n container.setAttribute(\n \"style\",\n \"position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 9999;\"\n );\n\n return container;\n });\n\n useEffect(() => {\n document.body.appendChild(confettiContainer);\n\n return () => {\n document.body.removeChild(confettiContainer);\n };\n }, []);\n\n return createPortal(\n <Wrapper top={top} left={left} width={width} height={height}>\n <ReactConfetti {...confettiProps} />\n </Wrapper>,\n confettiContainer\n );\n}\n","import { styled } from \"@storybook/theming\";\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n`;\n\nexport const Title = styled.strong`\n font-size: 13px;\n`;\n\nexport const Body = styled.p`\n font-size: 13px;\n text-align: start;\n color: #798186;\n margin: 0;\n margin-top: 4px;\n`;\n","import React from \"react\";\nimport { Body, Title, Wrapper } from \"./TitleBody.styled\";\n\nexport function TitleBody({\n prefix,\n title,\n body,\n}: {\n prefix?: React.ReactNode;\n title: React.ReactNode;\n body: React.ReactNode;\n}) {\n return (\n <Wrapper>\n {prefix}\n <Title>{title}</Title>\n <Body>{body}</Body>\n </Wrapper>\n );\n}\n","import React from \"react\";\n\nexport const buttonStyles: React.ComponentProps<\"button\">[\"style\"] = {\n border: 0,\n cursor: \"pointer\",\n fontSize: 13,\n lineHeight: 1,\n padding: \"9px 12px\",\n backgroundColor: \"#029CFD\",\n borderRadius: 4,\n color: \"#fff\",\n fontWeight: 700,\n};\n\nexport function Button(props: React.ComponentProps<\"button\">) {\n const style = {\n ...buttonStyles,\n ...(props.style || {}),\n };\n\n return <button type=\"button\" {...props} style={style} />;\n}\n","import React, { useEffect, useState } from \"react\";\nimport Joyride, { CallBackProps, STATUS, Step } from \"react-joyride\";\n\nimport { PulsatingEffect } from \"../../components/PulsatingEffect/PulsatingEffect\";\nimport { Confetti } from \"../../components/Confetti/Confetti\";\nimport { TitleBody } from \"../../components/TitleBody/TitleBody\";\nimport { API } from \"@storybook/manager-api\";\nimport { STORY_ARGS_UPDATED } from \"@storybook/core-events\";\nimport { buttonStyles } from \"src/components/Button/Button\";\n\nlet INTERACTIONS_COUNT = 0;\n\nexport function GuidedTour({\n api,\n isFinalStep,\n onFirstTourDone,\n}: {\n api: API;\n isFinalStep?: boolean;\n onFirstTourDone: () => void;\n}) {\n const [stepIndex, setStepIndex] = useState<number>();\n\n useEffect(() => {\n api.on(STORY_ARGS_UPDATED, () => {\n INTERACTIONS_COUNT = INTERACTIONS_COUNT + 1;\n if (INTERACTIONS_COUNT === 2) {\n setStepIndex(3);\n }\n });\n }, []);\n\n const steps: Step[] = isFinalStep\n ? [\n {\n target: \"#configure-your-project--docs\",\n content: (\n <TitleBody\n title=\"Continue setting up your project\"\n body=\"You nailed the basics. Now get started writing stories for your own components.\"\n />\n ),\n placement: \"right\",\n disableOverlay: true,\n disableBeacon: true,\n styles: {\n buttonNext: {\n display: \"none\",\n },\n },\n floaterProps: {\n disableAnimation: true,\n },\n },\n ]\n : [\n {\n target: \"#storybook-explorer-tree > div\",\n content: (\n <TitleBody\n title=\"Storybook is built from stories\"\n body=\"Storybook uses stories to represent the key states supported by each of your components. For example: this Button component has four stories.\"\n />\n ),\n placement: \"right\",\n disableBeacon: true,\n styles: {\n spotlight: {\n transform: 'translateY(30px)',\n },\n },\n floaterProps: {\n disableAnimation: true,\n },\n },\n {\n target: \"#storybook-preview-iframe\",\n content: (\n <TitleBody\n title=\"Storybook previews are interactive\"\n body=\"Whenever you modify code or stories, Storybook automatically updates how it previews your components.\"\n />\n ),\n placement: \"bottom\",\n },\n {\n target: \"#root div[role=main]\",\n content: (\n <>\n <TitleBody\n title=\"Interactive story playground\"\n body={\n <>\n See how a story renders with different data and state\n without touching code.\n <br />\n Try it out by pressing this button.\n </>\n }\n />\n <PulsatingEffect targetSelector=\"#control-primary\" />\n </>\n ),\n placement: \"right\",\n spotlightClicks: true,\n floaterProps: {\n target: \"#control-primary\",\n },\n styles: {\n buttonNext: {\n display: \"none\",\n },\n },\n },\n {\n target: \"#control-primary\",\n content: (\n <>\n <Confetti numberOfPieces={100} />\n <TitleBody\n title=\"Congratulations!\"\n body=\"You've learned how to control your stories interactively. Now: let's explore how to write your first story.\"\n />\n </>\n ),\n placement: \"right\",\n disableOverlay: true,\n locale: {\n last: \"Next\",\n },\n },\n ];\n\n return (\n <Joyride\n steps={steps}\n continuous\n stepIndex={stepIndex}\n spotlightPadding={0}\n hideBackButton\n disableCloseOnEsc\n disableOverlayClose\n disableScrolling\n hideCloseButton\n callback={(data: CallBackProps) => {\n if (!isFinalStep && data.status === STATUS.FINISHED) {\n onFirstTourDone();\n }\n }}\n floaterProps={{\n styles: {\n floater: {\n padding: 0,\n paddingLeft: 8,\n paddingTop: 8,\n filter:\n \"drop-shadow(0px 5px 5px rgba(0,0,0,0.05)) drop-shadow(0 1px 3px rgba(0,0,0,0.1))\",\n },\n },\n }}\n styles={{\n spotlight: {\n border: \"solid 2px #004c7c\",\n },\n tooltip: {\n maxWidth: 260,\n borderRadius: 4,\n padding: 15,\n },\n overlay: {\n backgroundColor: \"rgba(0, 0, 0, 0.48)\",\n },\n buttonNext: {\n ...buttonStyles,\n marginTop: 5,\n },\n tooltipContent: {\n paddingTop: 4,\n padding: 0,\n },\n options: {\n zIndex: 10000,\n primaryColor: \"#029CFD\",\n },\n }}\n />\n );\n}\n","import { css, styled } from \"@storybook/theming\";\nimport * as Dialog from \"@radix-ui/react-dialog\";\nimport React from \"react\";\n\nexport const StyledOverlay = styled(Dialog.Overlay)`\n background-color: rgba(27, 28, 29, 0.48);\n position: fixed;\n inset: 0px;\n width: 100%;\n height: 100%;\n`;\n\nexport const StyledContent = styled.div<{ width: number; height: number }>(\n ({ width, height }) => css`\n background-color: white;\n border-radius: 6px;\n box-shadow: rgba(14, 18, 22, 0.35) 0px 10px 38px -10px;\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: ${width ?? 740}px;\n height: ${height ? `${height}px` : \"auto\"};\n max-width: calc(100% - 40px);\n max-height: 85vh;\n `\n);\n\nexport const ContentWrapper = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof StyledContent> &\n React.ComponentProps<typeof Dialog.Content>\n>(({ width, height, children, ...contentProps }, ref) => (\n <Dialog.Content ref={ref} asChild {...contentProps}>\n <StyledContent width={width} height={height}>\n {children}\n </StyledContent>\n </Dialog.Content>\n));\n","import React from \"react\";\nimport * as Dialog from \"@radix-ui/react-dialog\";\nimport { ContentWrapper, StyledOverlay } from \"./Modal.styled\";\n\ntype ContentProps = React.ComponentProps<typeof ContentWrapper>;\n\ninterface ModalProps\n extends Omit<React.ComponentProps<typeof Dialog.Root>, \"children\"> {\n width?: number;\n height?: number;\n children: (props: {\n Title: typeof Dialog.Title;\n Description: typeof Dialog.Description;\n Close: typeof Dialog.Close;\n }) => React.ReactNode;\n onEscapeKeyDown?: ContentProps[\"onEscapeKeyDown\"];\n onInteractOutside?: ContentProps[\"onInteractOutside\"];\n}\n\nexport function Modal({\n children,\n width,\n height,\n onEscapeKeyDown,\n onInteractOutside = (ev) => ev.preventDefault(),\n ...rootProps\n}: ModalProps) {\n return (\n <Dialog.Root {...rootProps}>\n <Dialog.Portal>\n <StyledOverlay />\n <ContentWrapper\n width={width}\n height={height}\n onInteractOutside={onInteractOutside}\n onEscapeKeyDown={onEscapeKeyDown}\n >\n {children({\n Title: Dialog.Title,\n Description: Dialog.Description,\n Close: Dialog.Close,\n })}\n </ContentWrapper>\n </Dialog.Portal>\n </Dialog.Root>\n );\n}\n","import React from \"react\";\n\nexport function StorybookLogo() {\n return (\n <svg\n width=\"32px\"\n height=\"40px\"\n viewBox=\"0 0 256 319\"\n preserveAspectRatio=\"xMidYMid\"\n >\n <defs>\n <path\n d=\"M9.87245893,293.324145 L0.0114611411,30.5732167 C-0.314208957,21.8955842 6.33948896,14.5413918 15.0063196,13.9997149 L238.494389,0.0317105427 C247.316188,-0.519651867 254.914637,6.18486163 255.466,15.0066607 C255.486773,15.339032 255.497167,15.6719708 255.497167,16.0049907 L255.497167,302.318596 C255.497167,311.157608 248.331732,318.323043 239.492719,318.323043 C239.253266,318.323043 239.013844,318.317669 238.774632,318.306926 L25.1475605,308.712253 C16.8276309,308.338578 10.1847994,301.646603 9.87245893,293.324145 L9.87245893,293.324145 Z\"\n id=\"path-1\"\n ></path>\n </defs>\n <g>\n <mask id=\"mask-2\" fill=\"white\">\n <use xlinkHref=\"#path-1\"></use>\n </mask>\n <use fill=\"#FF4785\" fillRule=\"nonzero\" xlinkHref=\"#path-1\"></use>\n <path\n d=\"M188.665358,39.126973 L190.191903,2.41148534 L220.883535,0 L222.205755,37.8634126 C222.251771,39.1811466 221.22084,40.2866846 219.903106,40.3327009 C219.338869,40.3524045 218.785907,40.1715096 218.342409,39.8221376 L206.506729,30.4984116 L192.493574,41.1282444 C191.443077,41.9251106 189.945493,41.7195021 189.148627,40.6690048 C188.813185,40.2267976 188.6423,39.6815326 188.665358,39.126973 Z M149.413703,119.980309 C149.413703,126.206975 191.355678,123.222696 196.986019,118.848893 C196.986019,76.4467826 174.234041,54.1651411 132.57133,54.1651411 C90.9086182,54.1651411 67.5656805,76.7934542 67.5656805,110.735941 C67.5656805,169.85244 147.345341,170.983856 147.345341,203.229219 C147.345341,212.280549 142.913138,217.654777 133.162291,217.654777 C120.456641,217.654777 115.433477,211.165914 116.024438,189.103298 C116.024438,184.317101 67.5656805,182.824962 66.0882793,189.103298 C62.3262146,242.56887 95.6363019,257.990394 133.753251,257.990394 C170.688279,257.990394 199.645341,238.303123 199.645341,202.663511 C199.645341,139.304202 118.683759,141.001326 118.683759,109.604526 C118.683759,96.8760922 128.139127,95.178968 133.753251,95.178968 C139.662855,95.178968 150.300143,96.2205679 149.413703,119.980309 Z\"\n fill=\"#FFFFFF\"\n fillRule=\"nonzero\"\n mask=\"url(#mask-2)\"\n ></path>\n </g>\n </svg>\n );\n}\n","import { Icons } from \"@storybook/components\";\nimport { keyframes, styled } from \"@storybook/theming\";\n\nexport const ModalContentWrapper = styled.div`\n border-radius: 5px;\n display: flex;\n flex-direction: column;\n align-items: center;\n height: 100%;\n justify-content: space-between;\n`;\n\nexport const TopContent = styled.div`\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`;\n\nexport const Title = styled.h1`\n margin: 0;\n margin-top: 20px;\n margin-bottom: 5px;\n color: ${({ theme }) => theme.color.darkest};\n font-weight: ${({ theme }) => theme.typography.weight.bold};\n font-size: ${({ theme }) => theme.typography.size.m1}px;\n line-height: ${({ theme }) => theme.typography.size.m3}px;\n`;\n\nexport const Description = styled.p`\n margin: 0;\n margin-bottom: 20px;\n max-width: 320px;\n text-align: center;\n font-size: ${({ theme }) => theme.typography.size.s2}px;\n font-weight: ${({ theme }) => theme.typography.weight.regular};\n line-height: ${({ theme }) => theme.typography.size.m1}px;\n color: ${({ theme }) => theme.color.darker};\n`;\n\nexport const SkipButton = styled.button`\n all: unset;\n cursor: pointer;\n font-size: 13px;\n color: #798186;\n padding-bottom: 20px;\n\n &:focus-visible {\n outline: auto;\n }\n`;\n\nexport const StyledIcon = styled(Icons)`\n margin-left: 2px;\n height: 10px;\n`;\n\nexport const Background = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n overflow: hidden;\n`;\n\nexport const circle1Anim = keyframes`\n 0% { transform: translate(0px, 0px) }\n 50% { transform: translate(-200px, 0px) }\n 100% { transform: translate(0px, 0px) }\n`;\n\nexport const Circle1 = styled.div`\n position: absolute;\n width: 1200px;\n height: 1200px;\n left: -200px;\n top: -900px;\n background: radial-gradient(\n circle at center,\n rgba(253, 255, 147, 1) 0%,\n rgba(253, 255, 147, 0) 70%\n );\n animation: ${circle1Anim} 4s linear infinite;\n animation-timing-function: ease-in-out;\n z-index: 3;\n`;\n\nexport const circle2Anim = keyframes`\n 0% { transform: translate(0px, 0px) }\n 50% { transform: translate(400px, 0px) }\n 100% { transform: translate(0px, 0px) }\n`;\n\nexport const Circle2 = styled.div`\n position: absolute;\n width: 1200px;\n height: 1200px;\n left: -600px;\n top: -840px;\n background: radial-gradient(\n circle at center,\n rgba(255, 119, 119, 1) 0%,\n rgba(255, 119, 119, 0) 70%\n );\n animation: ${circle2Anim} 6s linear infinite;\n animation-timing-function: ease-in-out;\n z-index: 2;\n`;\n\nexport const circle3Anim = keyframes`\n 0% { transform: translate(600px, -40px) }\n 50% { transform: translate(600px, -200px) }\n 100% { transform: translate(600px, -40px) }\n`;\n\nexport const Circle3 = styled.div`\n position: absolute;\n width: 1200px;\n height: 1200px;\n left: -600px;\n top: -840px;\n background: radial-gradient(\n circle at center,\n rgba(119, 255, 247, 0.8) 0%,\n rgba(119, 255, 247, 0) 70%\n );\n animation: ${circle3Anim} 4s linear infinite;\n animation-timing-function: ease-in-out;\n z-index: 4;\n`;\n","import React from \"react\";\n\nimport { Button } from \"../../components/Button/Button\";\nimport { Modal } from \"../../components/Modal/Modal\";\nimport { StorybookLogo } from \"./StorybookLogo\";\nimport {\n ModalContentWrapper,\n SkipButton,\n StyledIcon,\n Title,\n Description,\n Background,\n Circle1,\n Circle2,\n Circle3,\n TopContent,\n} from \"./WelcomeModal.styled\";\n\nexport const WelcomeModal = ({\n onSkip,\n onProceed,\n}: {\n onSkip: () => void;\n onProceed: () => void;\n}) => {\n return (\n <Modal width={540} height={430} defaultOpen>\n {({ Close }) => (\n <ModalContentWrapper data-chromatic=\"ignore\">\n <TopContent>\n <StorybookLogo />\n <Title>Welcome to Storybook</Title>\n <Description>\n Storybook helps you develop UI components. Learn the basics in a\n few simple steps.\n </Description>\n <Button style={{ marginTop: 4 }} onClick={onProceed}>\n Start your 3 minute tour\n </Button>\n </TopContent>\n <Close asChild>\n <SkipButton onClick={onSkip}>\n Skip tour\n <StyledIcon icon=\"arrowright\" />\n </SkipButton>\n </Close>\n <Background>\n <Circle1 />\n <Circle2 />\n <Circle3 />\n </Background>\n </ModalContentWrapper>\n )}\n </Modal>\n );\n};\n","import React from \"react\";\nimport { Button } from \"../../components/Button/Button\";\n\nimport { Modal } from \"../../components/Modal/Modal\";\nimport { StorybookLogo } from \"../WelcomeModal/StorybookLogo\";\nimport { ModalContentWrapper } from \"../WelcomeModal/WelcomeModal.styled\";\n\nexport function WriteStoriesModal({ onFinish }: { onFinish: () => void }) {\n return (\n <Modal width={540} defaultOpen>\n {({ Title, Description }) => (\n <ModalContentWrapper data-chromatic=\"ignore\">\n <StorybookLogo />\n <Title style={{ marginTop: 20 }}>\n Create your first story (WORK IN PROGRESS)\n </Title>\n <Description>\n Now it's your turn. <br />\n See how easy it is to create your first story by following these\n steps below.\n </Description>\n <Button style={{ marginTop: 4 }} onClick={onFinish}>\n Go to story\n </Button>\n </ModalContentWrapper>\n )}\n </Modal>\n );\n}\n","import React, { useCallback, useEffect, useState } from \"react\";\nimport { ThemeProvider, ensure, themes } from \"@storybook/theming\";\nimport { STORY_CHANGED, CURRENT_STORY_WAS_SET } from \"@storybook/core-events\";\nimport { type API } from \"@storybook/manager-api\";\n\nimport { GuidedTour } from \"./features/GuidedTour/GuidedTour\";\nimport { WelcomeModal } from \"./features/WelcomeModal/WelcomeModal\";\nimport { WriteStoriesModal } from \"./features/WriteStoriesModal/WriteStoriesModal\";\nimport { Confetti } from \"./components/Confetti/Confetti\";\n\ntype Step =\n | \"1:Welcome\"\n | \"2:StorybookTour\"\n | \"3:WriteYourStory\"\n | \"4:VisitNewStory\"\n | \"5:ConfigureYourProject\";\n\nconst theme = ensure(themes.light);\n\nexport default function App({ api }: { api: API }) {\n const [enabled, setEnabled] = useState(true);\n const [showConfetti, setShowConfetti] = useState(false);\n const [step, setStep] = useState<Step>(\"1:Welcome\");\n\n const skipTour = useCallback(() => {\n // remove onboarding query parameter from current url\n const url = new URL(window.location.href);\n url.searchParams.delete(\"onboarding\");\n const path = decodeURIComponent(url.searchParams.get(\"path\"));\n url.search = `?path=${path}`;\n history.replaceState({}, \"\", url.href);\n setEnabled(false);\n }, [setEnabled]);\n\n useEffect(() => {\n let stepTimeout: number;\n if (step === \"4:VisitNewStory\") {\n stepTimeout = window.setTimeout(() => {\n setShowConfetti(true);\n setStep(\"5:ConfigureYourProject\");\n }, 2000);\n }\n\n return () => {\n clearTimeout(stepTimeout);\n };\n }, [step]);\n\n useEffect(() => {\n api.once(CURRENT_STORY_WAS_SET, ({ storyId }) => {\n api.setQueryParams({ onboarding: \"true\" });\n // make sure the initial state is set correctly:\n // 1. Selected story is primary button\n // 2. The addon panel is opened, in the bottom and the controls tab is selected\n if (storyId !== \"example-button--primary\") {\n api.selectStory(\"example-button--primary\", undefined, {\n ref: undefined,\n });\n }\n api.togglePanel(true);\n api.togglePanelPosition(\"bottom\");\n api.setSelectedPanel(\"addon-controls\");\n });\n }, []);\n\n useEffect(() => {\n const onStoryChanged = (storyId: string) => {\n if (storyId === \"configure-your-project--docs\") {\n skipTour();\n }\n };\n\n api.on(STORY_CHANGED, onStoryChanged);\n\n return () => {\n api.off(STORY_CHANGED, onStoryChanged);\n };\n }, []);\n\n if (!enabled) {\n return null;\n }\n\n return (\n <ThemeProvider theme={theme}>\n {showConfetti && (\n <Confetti\n numberOfPieces={1000}\n initialVelocityY={3}\n recycle={false}\n onConfettiComplete={(confetti) => {\n confetti.reset();\n setShowConfetti(false);\n }}\n />\n )}\n {step === \"1:Welcome\" && (\n <WelcomeModal\n onProceed={() => {\n setStep(\"2:StorybookTour\");\n }}\n onSkip={skipTour}\n />\n )}\n {(step === \"2:StorybookTour\" || step === \"5:ConfigureYourProject\") && (\n <GuidedTour\n api={api}\n isFinalStep={step === \"5:ConfigureYourProject\"}\n onFirstTourDone={() => {\n setStep(\"3:WriteYourStory\");\n }}\n />\n )}\n {step === \"3:WriteYourStory\" && (\n <WriteStoriesModal\n onFinish={() => {\n // TODO: enable this\n // api.selectStory(\"example-button--warning\");\n setStep(\"4:VisitNewStory\");\n }}\n />\n )}\n </ThemeProvider>\n );\n}\n","import ReactDOM from \"react-dom\";\nimport React, { lazy, Suspense } from \"react\";\nimport { addons } from \"@storybook/manager-api\";\n\nconst App = lazy(() => import(\"./App\"));\n\n// The addon is enabled only when:\n// 1. The onboarding query parameter is present\n// 2. The example button stories are present\naddons.register(\"@storybook/addon-onboarding\", async (api) => {\n const urlState = api.getUrlState();\n const isOnboarding = urlState.path === '/onboarding' || urlState.queryParams.onboarding === 'true';\n\n if (!isOnboarding) {\n return;\n }\n\n let hasButtonStories = false;\n try {\n const response = await fetch(\"./index.json\");\n const index = await response.json();\n hasButtonStories = !!index.entries[\"example-button--primary\"];\n } catch (e) {}\n\n if (hasButtonStories) {\n // Add a new DOM element to document.body, where we will bootstrap our React app\n const domNode = document.createElement(\"div\");\n\n domNode.id = \"addon-onboarding\";\n // Append the new DOM element to document.body\n document.body.appendChild(domNode);\n\n // Render the React app\n ReactDOM.render(\n <Suspense fallback={<div>Loading...</div>}>\n <App api={api} />\n </Suspense>,\n domNode\n );\n }\n});\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/addon-onboarding",
3
- "version": "0.0.16--canary.e63d5de.0",
3
+ "version": "0.0.16--canary.fbfd9b5.0",
4
4
  "description": "Storybook Addon Onboarding - Introduces a new onboarding experience",
5
5
  "keywords": [
6
6
  "storybook-addons",
@@ -65,7 +65,7 @@
65
65
  "vite.config.ts"
66
66
  ],
67
67
  "ext": "js,jsx,ts,tsx",
68
- "exec": "yarn storybook --ci"
68
+ "exec": "yarn storybook"
69
69
  },
70
70
  "devDependencies": {
71
71
  "@storybook/addon-essentials": "^7.0.0",