@storybook/addon-onboarding 0.0.16--canary.36c6db4.0 → 0.0.16--canary.e63d5de.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
- var i = require('react');
4
- var wt = require('react-confetti');
3
+ var s = require('react');
4
+ var gt = require('react-confetti');
5
5
  var theming = require('@storybook/theming');
6
- var Zt = require('react-dom');
6
+ var Kt = require('react-dom');
7
7
  var Bt = require('react-joyride');
8
8
  var coreEvents = require('@storybook/core-events');
9
- var m = require('@radix-ui/react-dialog');
9
+ var d = require('@radix-ui/react-dialog');
10
10
  var components = require('@storybook/components');
11
11
  var managerApi = require('@storybook/manager-api');
12
12
 
@@ -30,13 +30,13 @@ function _interopNamespace(e) {
30
30
  return Object.freeze(n);
31
31
  }
32
32
 
33
- var i__default = /*#__PURE__*/_interopDefault(i);
34
- var wt__default = /*#__PURE__*/_interopDefault(wt);
35
- var Zt__default = /*#__PURE__*/_interopDefault(Zt);
33
+ var s__default = /*#__PURE__*/_interopDefault(s);
34
+ var gt__default = /*#__PURE__*/_interopDefault(gt);
35
+ var Kt__default = /*#__PURE__*/_interopDefault(Kt);
36
36
  var Bt__default = /*#__PURE__*/_interopDefault(Bt);
37
- var m__namespace = /*#__PURE__*/_interopNamespace(m);
37
+ var d__namespace = /*#__PURE__*/_interopNamespace(d);
38
38
 
39
- var xt=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var bt=(t,o)=>{for(var e in o)xt(t,e,{get:o[e],enumerable:!0});};function L({targetSelector:t}){return i.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 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=`
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,19 +48,7 @@ var xt=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var bt=(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 Y=a(()=>{});function x({top:t=0,left:o=0,width:e=window.innerWidth,height:r=window.innerHeight,...l}){let[n]=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 i.useEffect(()=>(document.body.appendChild(n),()=>{document.body.removeChild(n);}),[]),Zt.createPortal(i__default.default.createElement(Pt,{top:t,left:o,width:e,height:r},i__default.default.createElement(wt__default.default,{...l})),n)}var Pt,P=a(()=>{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 H,U,_,G=a(()=>{H=theming.styled.div`
52
- display: flex;
53
- flex-direction: column;
54
- align-items: flex-start;
55
- `,U=theming.styled.strong`
56
- font-size: 13px;
57
- `,_=theming.styled.p`
58
- font-size: 13px;
59
- text-align: start;
60
- color: #798186;
61
- margin: 0;
62
- margin-top: 4px;
63
- `;});function g({prefix:t,title:o,body:e}){return i__default.default.createElement(H,null,t,i__default.default.createElement(U,null,o),i__default.default.createElement(_,null,e))}var K=a(()=>{G();});var V,Z=a(()=>{V=t=>({border:0,borderRadius:"0.25rem",cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",padding:"0 0.75rem",background:t.color.secondary,color:"#FFF",height:32,fontSize:"0.8125rem",fontWeight:700,fontFamily:t.typography.fonts.base,transition:"all 0.16s ease-in-out",textDecoration:"none",outline:"none"});});function q({api:t,isFinalStep:o,onFirstTourDone:e}){let[r,l]=i.useState(),n=theming.useTheme();return i.useEffect(()=>{t.on(coreEvents.STORY_ARGS_UPDATED,()=>{B=B+1,B===2&&l(3);});},[]),i__default.default.createElement(Bt__default.default,{steps:o?[{target:"#configure-your-project--docs",content:i__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:i__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:i__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:i__default.default.createElement(i__default.default.Fragment,null,i__default.default.createElement(g,{title:"Interactive story playground",body:i__default.default.createElement(i__default.default.Fragment,null,"See how a story renders with different data and state without touching code.",i__default.default.createElement("br",null),"Try it out by pressing this button.")}),i__default.default.createElement(L,{targetSelector:"#control-primary"})),placement:"right",spotlightClicks:!0,floaterProps:{target:"#control-primary"},styles:{buttonNext:{display:"none"}}},{target:"#control-primary",content:i__default.default.createElement(i__default.default.Fragment,null,i__default.default.createElement(x,{numberOfPieces:100}),i__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:y=>{!o&&y.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))"}}},styles:{spotlight:{border:"solid 2px #004c7c"},tooltip:{maxWidth:260,borderRadius:4,padding:15},overlay:{backgroundColor:"rgba(0, 0, 0, 0.48)"},buttonNext:{...V(n),marginTop:5},tooltipContent:{paddingTop:4,padding:0},options:{zIndex:1e4,primaryColor:"#029CFD"}}})}var B,J=a(()=>{Y();P();K();Z();B=0;});var It,b,O=a(()=>{It=theming.styled.button`
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`
64
52
  all: unset;
65
53
  border: 0;
66
54
  border-radius: 0.25rem;
@@ -85,13 +73,36 @@ var xt=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var bt=(t,o)=>{f
85
73
  &:focus {
86
74
  box-shadow: inset 0 0 0 2px rgba(0, 0, 0, 0.1);
87
75
  }
88
- `,b=({children:t,onClick:o,...e})=>i__default.default.createElement(It,{onClick:o,...e},t);});var Q,zt,R,tt=a(()=>{Q=theming.styled(m__namespace.Overlay)`
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`
82
+ display: flex;
83
+ flex-direction: column;
84
+ align-items: flex-start;
85
+ `,Pt=theming.styled.div`
86
+ font-size: 13px;
87
+ font-weight: 700;
88
+ color: ${({theme:t})=>t.color.darkest};
89
+ `,Dt=theming.styled.p`
90
+ font-size: 13px;
91
+ text-align: start;
92
+ color: ${({theme:t})=>t.color.mediumdark};
93
+ 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)`
89
100
  background-color: rgba(27, 28, 29, 0.48);
90
101
  position: fixed;
91
102
  inset: 0px;
92
103
  width: 100%;
93
104
  height: 100%;
94
- `,zt=theming.styled.div(({width:t,height:o})=>theming.css`
105
+ `,Ft=theming.styled.div(({width:t,height:o})=>theming.css`
95
106
  background-color: white;
96
107
  border-radius: 6px;
97
108
  box-shadow: rgba(14, 18, 22, 0.35) 0px 10px 38px -10px;
@@ -103,20 +114,20 @@ var xt=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var bt=(t,o)=>{f
103
114
  height: ${o?`${o}px`:"auto"};
104
115
  max-width: calc(100% - 40px);
105
116
  max-height: 85vh;
106
- `),R=i__default.default.forwardRef(({width:t,height:o,children:e,...r},l)=>i__default.default.createElement(m__namespace.Content,{ref:l,asChild:!0,...r},i__default.default.createElement(zt,{width:t,height:o},e)));});function S({children:t,width:o,height:e,onEscapeKeyDown:r,onInteractOutside:l=d=>d.preventDefault(),...n}){return i__default.default.createElement(m__namespace.Root,{...n},i__default.default.createElement(m__namespace.Portal,null,i__default.default.createElement(Q,null),i__default.default.createElement(R,{width:o,height:e,onInteractOutside:l,onEscapeKeyDown:r},t({Title:m__namespace.Title,Description:m__namespace.Description,Close:m__namespace.Close}))))}var M=a(()=>{tt();});function k(){return i__default.default.createElement("svg",{width:"32px",height:"40px",viewBox:"0 0 256 319",preserveAspectRatio:"xMidYMid"},i__default.default.createElement("defs",null,i__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"})),i__default.default.createElement("g",null,i__default.default.createElement("mask",{id:"mask-2",fill:"white"},i__default.default.createElement("use",{xlinkHref:"#path-1"})),i__default.default.createElement("use",{fill:"#FF4785",fillRule:"nonzero",xlinkHref:"#path-1"}),i__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 $=a(()=>{});var T,ot,et,rt,nt,it,st,Lt,at,Yt,pt,jt,lt,I=a(()=>{T=theming.styled.div`
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`
107
118
  border-radius: 5px;
108
119
  display: flex;
109
120
  flex-direction: column;
110
121
  align-items: center;
111
122
  height: 100%;
112
123
  justify-content: space-between;
113
- `,ot=theming.styled.div`
124
+ `,q=theming.styled.div`
114
125
  display: flex;
115
126
  flex: 1;
116
127
  flex-direction: column;
117
128
  align-items: center;
118
129
  justify-content: center;
119
- `,et=theming.styled.h1`
130
+ `,J=theming.styled.h1`
120
131
  margin: 0;
121
132
  margin-top: 20px;
122
133
  margin-bottom: 5px;
@@ -124,7 +135,7 @@ var xt=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var bt=(t,o)=>{f
124
135
  font-weight: ${({theme:t})=>t.typography.weight.bold};
125
136
  font-size: ${({theme:t})=>t.typography.size.m1}px;
126
137
  line-height: ${({theme:t})=>t.typography.size.m3}px;
127
- `,rt=theming.styled.p`
138
+ `,X=theming.styled.p`
128
139
  margin: 0;
129
140
  margin-bottom: 20px;
130
141
  max-width: 320px;
@@ -133,7 +144,7 @@ var xt=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var bt=(t,o)=>{f
133
144
  font-weight: ${({theme:t})=>t.typography.weight.regular};
134
145
  line-height: ${({theme:t})=>t.typography.size.m1}px;
135
146
  color: ${({theme:t})=>t.color.darker};
136
- `,nt=theming.styled.button`
147
+ `,Q=theming.styled.button`
137
148
  all: unset;
138
149
  cursor: pointer;
139
150
  font-size: 13px;
@@ -143,10 +154,10 @@ var xt=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var bt=(t,o)=>{f
143
154
  &:focus-visible {
144
155
  outline: auto;
145
156
  }
146
- `,it=theming.styled(components.Icons)`
157
+ `,R=theming.styled(components.Icons)`
147
158
  margin-left: 2px;
148
159
  height: 10px;
149
- `,st=theming.styled.div`
160
+ `,tt=theming.styled.div`
150
161
  position: absolute;
151
162
  top: 0;
152
163
  left: 0;
@@ -154,11 +165,11 @@ var xt=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var bt=(t,o)=>{f
154
165
  height: 100%;
155
166
  z-index: -1;
156
167
  overflow: hidden;
157
- `,Lt=theming.keyframes`
168
+ `,At=theming.keyframes`
158
169
  0% { transform: translate(0px, 0px) }
159
170
  50% { transform: translate(-200px, 0px) }
160
171
  100% { transform: translate(0px, 0px) }
161
- `,at=theming.styled.div`
172
+ `,ot=theming.styled.div`
162
173
  position: absolute;
163
174
  width: 1200px;
164
175
  height: 1200px;
@@ -169,14 +180,14 @@ var xt=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var bt=(t,o)=>{f
169
180
  rgba(253, 255, 147, 1) 0%,
170
181
  rgba(253, 255, 147, 0) 70%
171
182
  );
172
- animation: ${Lt} 4s linear infinite;
183
+ animation: ${At} 4s linear infinite;
173
184
  animation-timing-function: ease-in-out;
174
185
  z-index: 3;
175
- `,Yt=theming.keyframes`
186
+ `,zt=theming.keyframes`
176
187
  0% { transform: translate(0px, 0px) }
177
188
  50% { transform: translate(400px, 0px) }
178
189
  100% { transform: translate(0px, 0px) }
179
- `,pt=theming.styled.div`
190
+ `,et=theming.styled.div`
180
191
  position: absolute;
181
192
  width: 1200px;
182
193
  height: 1200px;
@@ -187,14 +198,14 @@ var xt=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var bt=(t,o)=>{f
187
198
  rgba(255, 119, 119, 1) 0%,
188
199
  rgba(255, 119, 119, 0) 70%
189
200
  );
190
- animation: ${Yt} 6s linear infinite;
201
+ animation: ${zt} 6s linear infinite;
191
202
  animation-timing-function: ease-in-out;
192
203
  z-index: 2;
193
- `,jt=theming.keyframes`
204
+ `,Nt=theming.keyframes`
194
205
  0% { transform: translate(600px, -40px) }
195
206
  50% { transform: translate(600px, -200px) }
196
207
  100% { transform: translate(600px, -40px) }
197
- `,lt=theming.styled.div`
208
+ `,rt=theming.styled.div`
198
209
  position: absolute;
199
210
  width: 1200px;
200
211
  height: 1200px;
@@ -205,9 +216,9 @@ var xt=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var bt=(t,o)=>{f
205
216
  rgba(119, 255, 247, 0.8) 0%,
206
217
  rgba(119, 255, 247, 0) 70%
207
218
  );
208
- animation: ${jt} 4s linear infinite;
219
+ animation: ${Nt} 4s linear infinite;
209
220
  animation-timing-function: ease-in-out;
210
221
  z-index: 4;
211
- `;});var dt,mt=a(()=>{O();M();$();I();dt=({onSkip:t,onProceed:o})=>i__default.default.createElement(S,{width:540,height:430,defaultOpen:!0},({Close:e})=>i__default.default.createElement(T,{"data-chromatic":"ignore"},i__default.default.createElement(ot,null,i__default.default.createElement(k,null),i__default.default.createElement(et,null,"Welcome to Storybook"),i__default.default.createElement(rt,null,"Storybook helps you develop UI components. Learn the basics in a few simple steps."),i__default.default.createElement(b,{style:{marginTop:4},onClick:o},"Start your 3 minute tour")),i__default.default.createElement(e,{asChild:!0},i__default.default.createElement(nt,{onClick:t},"Skip tour",i__default.default.createElement(it,{icon:"arrowright"}))),i__default.default.createElement(st,null,i__default.default.createElement(at,null),i__default.default.createElement(pt,null),i__default.default.createElement(lt,null))));});function ct({onFinish:t}){return i__default.default.createElement(S,{width:540,defaultOpen:!0},({Title:o,Description:e})=>i__default.default.createElement(T,{"data-chromatic":"ignore"},i__default.default.createElement(k,null),i__default.default.createElement(o,{style:{marginTop:20}},"Create your first story (WORK IN PROGRESS)"),i__default.default.createElement(e,null,"Now it's your turn. ",i__default.default.createElement("br",null),"See how easy it is to create your first story by following these steps below."),i__default.default.createElement(b,{style:{marginTop:4},onClick:t},"Go to story")))}var ft=a(()=>{O();M();$();I();});var ht={};bt(ht,{default:()=>gt});function gt({api:t}){let[o,e]=i.useState(!0),[r,l]=i.useState(!1),[n,d]=i.useState("1:Welcome"),y=i.useCallback(()=>{let s=new URL(window.location.href);s.searchParams.delete("onboarding");let v=decodeURIComponent(s.searchParams.get("path"));s.search=`?path=${v}`,history.replaceState({},"",s.href),e(!1);},[e]);return i.useEffect(()=>{let s;return n==="4:VisitNewStory"&&(s=window.setTimeout(()=>{l(!0),d("5:ConfigureYourProject");},2e3)),()=>{clearTimeout(s);}},[n]),i.useEffect(()=>{t.once(coreEvents.CURRENT_STORY_WAS_SET,({storyId:s})=>{s!=="example-button--primary"&&t.selectStory("example-button--primary",void 0,{ref:void 0}),t.togglePanel(!0),t.togglePanelPosition("bottom"),t.setSelectedPanel("addon-controls");});},[]),i.useEffect(()=>{let s=v=>{v==="configure-your-project--docs"&&y();};return t.on(coreEvents.STORY_CHANGED,s),()=>{t.off(coreEvents.STORY_CHANGED,s);}},[]),o?i__default.default.createElement(theming.ThemeProvider,{theme:Vt},r&&i__default.default.createElement(x,{numberOfPieces:1e3,initialVelocityY:3,recycle:!1,onConfettiComplete:s=>{s.reset(),l(!1);}}),n==="1:Welcome"&&i__default.default.createElement(dt,{onProceed:()=>{d("2:StorybookTour");},onSkip:y}),(n==="2:StorybookTour"||n==="5:ConfigureYourProject")&&i__default.default.createElement(q,{api:t,isFinalStep:n==="5:ConfigureYourProject",onFirstTourDone:()=>{d("3:WriteYourStory");}}),n==="3:WriteYourStory"&&i__default.default.createElement(ct,{onFinish:()=>{d("4:VisitNewStory");}})):null}var Vt,yt=a(()=>{J();mt();ft();P();Vt=theming.ensure(theming.themes.light);});var Qt=i.lazy(()=>Promise.resolve().then(()=>(yt(),ht)));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),Zt__default.default.render(i__default.default.createElement(i.Suspense,{fallback:i__default.default.createElement("div",null,"Loading...")},i__default.default.createElement(Qt,{api:t})),r);}});
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);}});
212
223
  //# sourceMappingURL=out.js.map
213
224
  //# sourceMappingURL=manager.js.map
@@ -1 +1 @@
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/features/GuidedTour/GuidedTour.styled.tsx","../src/features/GuidedTour/GuidedTour.tsx","../src/components/Button/Button.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","getStyles","init_GuidedTour_styled","theme","Joyride","STATUS","STORY_ARGS_UPDATED","useTheme","GuidedTour","api","isFinalStep","onFirstTourDone","stepIndex","setStepIndex","INTERACTIONS_COUNT","data","init_GuidedTour","css","Container","Button","init_Button","children","onClick","rest","Dialog","StyledOverlay","StyledContent","ContentWrapper","init_Modal_styled","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","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","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 { type Theme } from \"@storybook/theming\";\n\nexport const getStyles = (theme: Theme) => ({\n border: 0,\n borderRadius: \"0.25rem\",\n cursor: \"pointer\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: \"0 0.75rem\",\n background: theme.color.secondary,\n color: \"#FFF\",\n height: 32,\n fontSize: \"0.8125rem\",\n fontWeight: 700,\n fontFamily: theme.typography.fonts.base,\n transition: \"all 0.16s ease-in-out\",\n textDecoration: \"none\",\n outline: \"none\",\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 { useTheme } from \"@storybook/theming\";\nimport { getStyles } from \"./GuidedTour.styled\";\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 const theme = useTheme();\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 // tooltipComponent={Tooltip}\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 ...getStyles(theme),\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 React, { FC } from \"react\";\n\nexport interface ButtonProps {\n children: string;\n onClick?: () => 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 getStyles = (theme: any) => css`\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.color.secondary}; */\n background: red;\n color: ${theme.color.lightest};\n height: 32px;\n font-size: 0.8125rem;\n font-weight: 700;\n font-family: ${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 { 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/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"]}
package/dist/manager.mjs CHANGED
@@ -1,14 +1,14 @@
1
- import i, { lazy, Suspense, useState, useCallback, useEffect } from 'react';
2
- import wt from 'react-confetti';
3
- import { ThemeProvider, useTheme, ensure, themes, styled, keyframes, css } from '@storybook/theming';
4
- import Zt, { createPortal } from 'react-dom';
1
+ import s, { lazy, Suspense, useState, useCallback, useEffect } from 'react';
2
+ import gt from 'react-confetti';
3
+ import { ThemeProvider, ensure, themes, styled, keyframes, css } from '@storybook/theming';
4
+ import Kt, { createPortal } from 'react-dom';
5
5
  import Bt, { STATUS } from 'react-joyride';
6
6
  import { CURRENT_STORY_WAS_SET, STORY_CHANGED, STORY_ARGS_UPDATED } from '@storybook/core-events';
7
- import * as m from '@radix-ui/react-dialog';
7
+ import * as d from '@radix-ui/react-dialog';
8
8
  import { Icons } from '@storybook/components';
9
9
  import { addons } from '@storybook/manager-api';
10
10
 
11
- var xt=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var bt=(t,o)=>{for(var e in o)xt(t,e,{get:o[e],enumerable:!0});};function L({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 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=`
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,19 +20,7 @@ var xt=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var bt=(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 Y=a(()=>{});function x({top:t=0,left:o=0,width:e=window.innerWidth,height:r=window.innerHeight,...l}){let[n]=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(n),()=>{document.body.removeChild(n);}),[]),createPortal(i.createElement(Pt,{top:t,left:o,width:e,height:r},i.createElement(wt,{...l})),n)}var Pt,P=a(()=>{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 H,U,_,G=a(()=>{H=styled.div`
24
- display: flex;
25
- flex-direction: column;
26
- align-items: flex-start;
27
- `,U=styled.strong`
28
- font-size: 13px;
29
- `,_=styled.p`
30
- font-size: 13px;
31
- text-align: start;
32
- color: #798186;
33
- margin: 0;
34
- margin-top: 4px;
35
- `;});function g({prefix:t,title:o,body:e}){return i.createElement(H,null,t,i.createElement(U,null,o),i.createElement(_,null,e))}var K=a(()=>{G();});var V,Z=a(()=>{V=t=>({border:0,borderRadius:"0.25rem",cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",padding:"0 0.75rem",background:t.color.secondary,color:"#FFF",height:32,fontSize:"0.8125rem",fontWeight:700,fontFamily:t.typography.fonts.base,transition:"all 0.16s ease-in-out",textDecoration:"none",outline:"none"});});function q({api:t,isFinalStep:o,onFirstTourDone:e}){let[r,l]=useState(),n=useTheme();return useEffect(()=>{t.on(STORY_ARGS_UPDATED,()=>{B=B+1,B===2&&l(3);});},[]),i.createElement(Bt,{steps:o?[{target:"#configure-your-project--docs",content:i.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:i.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:i.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:i.createElement(i.Fragment,null,i.createElement(g,{title:"Interactive story playground",body:i.createElement(i.Fragment,null,"See how a story renders with different data and state without touching code.",i.createElement("br",null),"Try it out by pressing this button.")}),i.createElement(L,{targetSelector:"#control-primary"})),placement:"right",spotlightClicks:!0,floaterProps:{target:"#control-primary"},styles:{buttonNext:{display:"none"}}},{target:"#control-primary",content:i.createElement(i.Fragment,null,i.createElement(x,{numberOfPieces:100}),i.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:y=>{!o&&y.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:{...V(n),marginTop:5},tooltipContent:{paddingTop:4,padding:0},options:{zIndex:1e4,primaryColor:"#029CFD"}}})}var B,J=a(()=>{Y();P();K();Z();B=0;});var It,b,O=a(()=>{It=styled.button`
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`
36
24
  all: unset;
37
25
  border: 0;
38
26
  border-radius: 0.25rem;
@@ -57,13 +45,36 @@ var xt=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var bt=(t,o)=>{f
57
45
  &:focus {
58
46
  box-shadow: inset 0 0 0 2px rgba(0, 0, 0, 0.1);
59
47
  }
60
- `,b=({children:t,onClick:o,...e})=>i.createElement(It,{onClick:o,...e},t);});var Q,zt,R,tt=a(()=>{Q=styled(m.Overlay)`
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`
54
+ display: flex;
55
+ flex-direction: column;
56
+ align-items: flex-start;
57
+ `,Pt=styled.div`
58
+ font-size: 13px;
59
+ font-weight: 700;
60
+ color: ${({theme:t})=>t.color.darkest};
61
+ `,Dt=styled.p`
62
+ font-size: 13px;
63
+ text-align: start;
64
+ color: ${({theme:t})=>t.color.mediumdark};
65
+ 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)`
61
72
  background-color: rgba(27, 28, 29, 0.48);
62
73
  position: fixed;
63
74
  inset: 0px;
64
75
  width: 100%;
65
76
  height: 100%;
66
- `,zt=styled.div(({width:t,height:o})=>css`
77
+ `,Ft=styled.div(({width:t,height:o})=>css`
67
78
  background-color: white;
68
79
  border-radius: 6px;
69
80
  box-shadow: rgba(14, 18, 22, 0.35) 0px 10px 38px -10px;
@@ -75,20 +86,20 @@ var xt=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var bt=(t,o)=>{f
75
86
  height: ${o?`${o}px`:"auto"};
76
87
  max-width: calc(100% - 40px);
77
88
  max-height: 85vh;
78
- `),R=i.forwardRef(({width:t,height:o,children:e,...r},l)=>i.createElement(m.Content,{ref:l,asChild:!0,...r},i.createElement(zt,{width:t,height:o},e)));});function S({children:t,width:o,height:e,onEscapeKeyDown:r,onInteractOutside:l=d=>d.preventDefault(),...n}){return i.createElement(m.Root,{...n},i.createElement(m.Portal,null,i.createElement(Q,null),i.createElement(R,{width:o,height:e,onInteractOutside:l,onEscapeKeyDown:r},t({Title:m.Title,Description:m.Description,Close:m.Close}))))}var M=a(()=>{tt();});function k(){return i.createElement("svg",{width:"32px",height:"40px",viewBox:"0 0 256 319",preserveAspectRatio:"xMidYMid"},i.createElement("defs",null,i.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"})),i.createElement("g",null,i.createElement("mask",{id:"mask-2",fill:"white"},i.createElement("use",{xlinkHref:"#path-1"})),i.createElement("use",{fill:"#FF4785",fillRule:"nonzero",xlinkHref:"#path-1"}),i.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 $=a(()=>{});var T,ot,et,rt,nt,it,st,Lt,at,Yt,pt,jt,lt,I=a(()=>{T=styled.div`
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`
79
90
  border-radius: 5px;
80
91
  display: flex;
81
92
  flex-direction: column;
82
93
  align-items: center;
83
94
  height: 100%;
84
95
  justify-content: space-between;
85
- `,ot=styled.div`
96
+ `,q=styled.div`
86
97
  display: flex;
87
98
  flex: 1;
88
99
  flex-direction: column;
89
100
  align-items: center;
90
101
  justify-content: center;
91
- `,et=styled.h1`
102
+ `,J=styled.h1`
92
103
  margin: 0;
93
104
  margin-top: 20px;
94
105
  margin-bottom: 5px;
@@ -96,7 +107,7 @@ var xt=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var bt=(t,o)=>{f
96
107
  font-weight: ${({theme:t})=>t.typography.weight.bold};
97
108
  font-size: ${({theme:t})=>t.typography.size.m1}px;
98
109
  line-height: ${({theme:t})=>t.typography.size.m3}px;
99
- `,rt=styled.p`
110
+ `,X=styled.p`
100
111
  margin: 0;
101
112
  margin-bottom: 20px;
102
113
  max-width: 320px;
@@ -105,7 +116,7 @@ var xt=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var bt=(t,o)=>{f
105
116
  font-weight: ${({theme:t})=>t.typography.weight.regular};
106
117
  line-height: ${({theme:t})=>t.typography.size.m1}px;
107
118
  color: ${({theme:t})=>t.color.darker};
108
- `,nt=styled.button`
119
+ `,Q=styled.button`
109
120
  all: unset;
110
121
  cursor: pointer;
111
122
  font-size: 13px;
@@ -115,10 +126,10 @@ var xt=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var bt=(t,o)=>{f
115
126
  &:focus-visible {
116
127
  outline: auto;
117
128
  }
118
- `,it=styled(Icons)`
129
+ `,R=styled(Icons)`
119
130
  margin-left: 2px;
120
131
  height: 10px;
121
- `,st=styled.div`
132
+ `,tt=styled.div`
122
133
  position: absolute;
123
134
  top: 0;
124
135
  left: 0;
@@ -126,11 +137,11 @@ var xt=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var bt=(t,o)=>{f
126
137
  height: 100%;
127
138
  z-index: -1;
128
139
  overflow: hidden;
129
- `,Lt=keyframes`
140
+ `,At=keyframes`
130
141
  0% { transform: translate(0px, 0px) }
131
142
  50% { transform: translate(-200px, 0px) }
132
143
  100% { transform: translate(0px, 0px) }
133
- `,at=styled.div`
144
+ `,ot=styled.div`
134
145
  position: absolute;
135
146
  width: 1200px;
136
147
  height: 1200px;
@@ -141,14 +152,14 @@ var xt=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var bt=(t,o)=>{f
141
152
  rgba(253, 255, 147, 1) 0%,
142
153
  rgba(253, 255, 147, 0) 70%
143
154
  );
144
- animation: ${Lt} 4s linear infinite;
155
+ animation: ${At} 4s linear infinite;
145
156
  animation-timing-function: ease-in-out;
146
157
  z-index: 3;
147
- `,Yt=keyframes`
158
+ `,zt=keyframes`
148
159
  0% { transform: translate(0px, 0px) }
149
160
  50% { transform: translate(400px, 0px) }
150
161
  100% { transform: translate(0px, 0px) }
151
- `,pt=styled.div`
162
+ `,et=styled.div`
152
163
  position: absolute;
153
164
  width: 1200px;
154
165
  height: 1200px;
@@ -159,14 +170,14 @@ var xt=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var bt=(t,o)=>{f
159
170
  rgba(255, 119, 119, 1) 0%,
160
171
  rgba(255, 119, 119, 0) 70%
161
172
  );
162
- animation: ${Yt} 6s linear infinite;
173
+ animation: ${zt} 6s linear infinite;
163
174
  animation-timing-function: ease-in-out;
164
175
  z-index: 2;
165
- `,jt=keyframes`
176
+ `,Nt=keyframes`
166
177
  0% { transform: translate(600px, -40px) }
167
178
  50% { transform: translate(600px, -200px) }
168
179
  100% { transform: translate(600px, -40px) }
169
- `,lt=styled.div`
180
+ `,rt=styled.div`
170
181
  position: absolute;
171
182
  width: 1200px;
172
183
  height: 1200px;
@@ -177,9 +188,9 @@ var xt=Object.defineProperty;var a=(t,o)=>()=>(t&&(o=t(t=0)),o);var bt=(t,o)=>{f
177
188
  rgba(119, 255, 247, 0.8) 0%,
178
189
  rgba(119, 255, 247, 0) 70%
179
190
  );
180
- animation: ${jt} 4s linear infinite;
191
+ animation: ${Nt} 4s linear infinite;
181
192
  animation-timing-function: ease-in-out;
182
193
  z-index: 4;
183
- `;});var dt,mt=a(()=>{O();M();$();I();dt=({onSkip:t,onProceed:o})=>i.createElement(S,{width:540,height:430,defaultOpen:!0},({Close:e})=>i.createElement(T,{"data-chromatic":"ignore"},i.createElement(ot,null,i.createElement(k,null),i.createElement(et,null,"Welcome to Storybook"),i.createElement(rt,null,"Storybook helps you develop UI components. Learn the basics in a few simple steps."),i.createElement(b,{style:{marginTop:4},onClick:o},"Start your 3 minute tour")),i.createElement(e,{asChild:!0},i.createElement(nt,{onClick:t},"Skip tour",i.createElement(it,{icon:"arrowright"}))),i.createElement(st,null,i.createElement(at,null),i.createElement(pt,null),i.createElement(lt,null))));});function ct({onFinish:t}){return i.createElement(S,{width:540,defaultOpen:!0},({Title:o,Description:e})=>i.createElement(T,{"data-chromatic":"ignore"},i.createElement(k,null),i.createElement(o,{style:{marginTop:20}},"Create your first story (WORK IN PROGRESS)"),i.createElement(e,null,"Now it's your turn. ",i.createElement("br",null),"See how easy it is to create your first story by following these steps below."),i.createElement(b,{style:{marginTop:4},onClick:t},"Go to story")))}var ft=a(()=>{O();M();$();I();});var ht={};bt(ht,{default:()=>gt});function gt({api:t}){let[o,e]=useState(!0),[r,l]=useState(!1),[n,d]=useState("1:Welcome"),y=useCallback(()=>{let s=new URL(window.location.href);s.searchParams.delete("onboarding");let v=decodeURIComponent(s.searchParams.get("path"));s.search=`?path=${v}`,history.replaceState({},"",s.href),e(!1);},[e]);return useEffect(()=>{let s;return n==="4:VisitNewStory"&&(s=window.setTimeout(()=>{l(!0),d("5:ConfigureYourProject");},2e3)),()=>{clearTimeout(s);}},[n]),useEffect(()=>{t.once(CURRENT_STORY_WAS_SET,({storyId:s})=>{s!=="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 s=v=>{v==="configure-your-project--docs"&&y();};return t.on(STORY_CHANGED,s),()=>{t.off(STORY_CHANGED,s);}},[]),o?i.createElement(ThemeProvider,{theme:Vt},r&&i.createElement(x,{numberOfPieces:1e3,initialVelocityY:3,recycle:!1,onConfettiComplete:s=>{s.reset(),l(!1);}}),n==="1:Welcome"&&i.createElement(dt,{onProceed:()=>{d("2:StorybookTour");},onSkip:y}),(n==="2:StorybookTour"||n==="5:ConfigureYourProject")&&i.createElement(q,{api:t,isFinalStep:n==="5:ConfigureYourProject",onFirstTourDone:()=>{d("3:WriteYourStory");}}),n==="3:WriteYourStory"&&i.createElement(ct,{onFinish:()=>{d("4:VisitNewStory");}})):null}var Vt,yt=a(()=>{J();mt();ft();P();Vt=ensure(themes.light);});var Qt=lazy(()=>Promise.resolve().then(()=>(yt(),ht)));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),Zt.render(i.createElement(Suspense,{fallback:i.createElement("div",null,"Loading...")},i.createElement(Qt,{api:t})),r);}});
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);}});
184
195
  //# sourceMappingURL=out.js.map
185
196
  //# sourceMappingURL=manager.mjs.map
@@ -1 +1 @@
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/features/GuidedTour/GuidedTour.styled.tsx","../src/features/GuidedTour/GuidedTour.tsx","../src/components/Button/Button.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","getStyles","init_GuidedTour_styled","theme","Joyride","STATUS","STORY_ARGS_UPDATED","useTheme","GuidedTour","api","isFinalStep","onFirstTourDone","stepIndex","setStepIndex","INTERACTIONS_COUNT","data","init_GuidedTour","css","Container","Button","init_Button","children","onClick","rest","Dialog","StyledOverlay","StyledContent","ContentWrapper","init_Modal_styled","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","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","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 { type Theme } from \"@storybook/theming\";\n\nexport const getStyles = (theme: Theme) => ({\n border: 0,\n borderRadius: \"0.25rem\",\n cursor: \"pointer\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: \"0 0.75rem\",\n background: theme.color.secondary,\n color: \"#FFF\",\n height: 32,\n fontSize: \"0.8125rem\",\n fontWeight: 700,\n fontFamily: theme.typography.fonts.base,\n transition: \"all 0.16s ease-in-out\",\n textDecoration: \"none\",\n outline: \"none\",\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 { useTheme } from \"@storybook/theming\";\nimport { getStyles } from \"./GuidedTour.styled\";\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 const theme = useTheme();\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 // tooltipComponent={Tooltip}\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 ...getStyles(theme),\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 React, { FC } from \"react\";\n\nexport interface ButtonProps {\n children: string;\n onClick?: () => 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 getStyles = (theme: any) => css`\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.color.secondary}; */\n background: red;\n color: ${theme.color.lightest};\n height: 32px;\n font-size: 0.8125rem;\n font-weight: 700;\n font-family: ${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 { 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/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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/addon-onboarding",
3
- "version": "0.0.16--canary.36c6db4.0",
3
+ "version": "0.0.16--canary.e63d5de.0",
4
4
  "description": "Storybook Addon Onboarding - Introduces a new onboarding experience",
5
5
  "keywords": [
6
6
  "storybook-addons",