@storybook/addon-onboarding 0.0.14--canary.21.648a737.0 → 0.0.14--canary.54dae24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/manager.js CHANGED
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
3
  var n = require('react');
4
- var ut = require('react-confetti');
4
+ var go = require('react-confetti');
5
5
  var theming = require('@storybook/theming');
6
- var Ut = require('react-dom');
7
- var kt = require('react-joyride');
6
+ var Yo = require('react-dom');
7
+ var Po = require('react-joyride');
8
8
  var coreEvents = require('@storybook/core-events');
9
- var C = 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
 
@@ -31,12 +31,12 @@ function _interopNamespace(e) {
31
31
  }
32
32
 
33
33
  var n__default = /*#__PURE__*/_interopDefault(n);
34
- var ut__default = /*#__PURE__*/_interopDefault(ut);
35
- var Ut__default = /*#__PURE__*/_interopDefault(Ut);
36
- var kt__default = /*#__PURE__*/_interopDefault(kt);
37
- var C__namespace = /*#__PURE__*/_interopNamespace(C);
34
+ var go__default = /*#__PURE__*/_interopDefault(go);
35
+ var Yo__default = /*#__PURE__*/_interopDefault(Yo);
36
+ var Po__default = /*#__PURE__*/_interopDefault(Po);
37
+ var d__namespace = /*#__PURE__*/_interopNamespace(d);
38
38
 
39
- var ft=Object.defineProperty;var p=(t,o)=>()=>(t&&(o=t(t=0)),o);var mt=(t,o)=>{for(var e in o)ft(t,e,{get:o[e],enumerable:!0});};function z({targetSelector:t}){return n.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 mo=Object.defineProperty;var p=(o,t)=>()=>(o&&(t=o(o=0)),t);var uo=(o,t)=>{for(var e in t)mo(o,e,{get:t[e],enumerable:!0});};function z({targetSelector:o}){return n.useEffect(()=>{let t=document.querySelector(o);if(t){t.style.animation="pulsate 3s infinite",t.style.transformOrigin="center",t.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,25 +48,25 @@ var ft=Object.defineProperty;var p=(t,o)=>()=>(t&&(o=t(t=0)),o);var mt=(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 j=p(()=>{});function g({top:t=0,left:o=0,width:e=window.innerWidth,height:r=window.innerHeight,...l}){let[i]=n.useState(()=>{let a=document.createElement("div");return a.setAttribute("id","confetti-container"),a.setAttribute("style","position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 9999;"),a});return n.useEffect(()=>(document.body.appendChild(i),()=>{document.body.removeChild(i);}),[]),Ut.createPortal(n__default.default.createElement(xt,{top:t,left:o,width:e,height:r},n__default.default.createElement(ut__default.default,{...l})),i)}var xt,T=p(()=>{xt=theming.styled.div(({width:t,height:o,left:e,top:r})=>({width:`${t}px`,height:`${o}px`,left:`${e}px`,top:`${r}px`,position:"relative",overflow:"hidden"}));});var U,_,$,G=p(()=>{U=theming.styled.div`
51
+ `,r=document.createElement("style");r.id="sb-onboarding-pulsating-effect",r.innerHTML=e,document.head.appendChild(r);}return ()=>{document.querySelector("#sb-onboarding-pulsating-effect")?.remove();}},[o]),null}var j=p(()=>{});function b({top:o=0,left:t=0,width:e=window.innerWidth,height:r=window.innerHeight,...l}){let[i]=n.useState(()=>{let a=document.createElement("div");return a.setAttribute("id","confetti-container"),a.setAttribute("style","position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 9999;"),a});return n.useEffect(()=>(document.body.appendChild(i),()=>{document.body.removeChild(i);}),[]),Yo.createPortal(n__default.default.createElement(Co,{top:o,left:t,width:e,height:r},n__default.default.createElement(go__default.default,{...l})),i)}var Co,v=p(()=>{Co=theming.styled.div(({width:o,height:t,left:e,top:r})=>({width:`${o}px`,height:`${t}px`,left:`${e}px`,top:`${r}px`,position:"relative",overflow:"hidden"}));});var $,U,_,G=p(()=>{$=theming.styled.div`
52
52
  display: flex;
53
53
  flex-direction: column;
54
54
  align-items: flex-start;
55
- `,_=theming.styled.strong`
55
+ `,U=theming.styled.strong`
56
56
  font-size: 13px;
57
- `,$=theming.styled.p`
57
+ `,_=theming.styled.p`
58
58
  font-size: 13px;
59
59
  text-align: start;
60
60
  color: #798186;
61
61
  margin: 0;
62
62
  margin-top: 4px;
63
- `;});function c({prefix:t,title:o,body:e}){return n__default.default.createElement(U,null,t,n__default.default.createElement(_,null,o),n__default.default.createElement($,null,e))}var K=p(()=>{G();});function b(t){let o={...D,...t.style||{}};return n__default.default.createElement("button",{type:"button",...t,style:o})}var D,h=p(()=>{D={border:0,cursor:"pointer",fontSize:13,lineHeight:1,padding:"9px 12px",backgroundColor:"#029CFD",borderRadius:4,color:"#fff",fontWeight:700};});function V({api:t,isFinalStep:o,onFirstTourDone:e}){let[r,l]=n.useState();return n.useEffect(()=>{t.on(coreEvents.STORY_ARGS_UPDATED,()=>{O=O+1,O===2&&l(3);});},[]),n__default.default.createElement(kt__default.default,{steps:o?[{target:"#configure-your-project--docs",content:n__default.default.createElement(c,{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:n__default.default.createElement(c,{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:n__default.default.createElement(c,{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:n__default.default.createElement(n__default.default.Fragment,null,n__default.default.createElement(c,{title:"Interactive story playground",body:n__default.default.createElement(n__default.default.Fragment,null,"See how a story renders with different data and state without touching code.",n__default.default.createElement("br",null),"Try it out by pressing this button.")}),n__default.default.createElement(z,{targetSelector:"#control-primary"})),placement:"right",spotlightClicks:!0,floaterProps:{target:"#control-primary"},styles:{buttonNext:{display:"none"}}},{target:"#control-primary",content:n__default.default.createElement(n__default.default.Fragment,null,n__default.default.createElement(g,{numberOfPieces:100}),n__default.default.createElement(c,{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:a=>{!o&&a.status===kt.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:{...D,marginTop:5},tooltipContent:{paddingTop:4,padding:0},options:{zIndex:1e4,primaryColor:"#029CFD"}}})}var O,Z=p(()=>{j();T();K();h();O=0;});var q,Bt,J,X,Q,R,tt=p(()=>{q=theming.styled(C.Overlay)`
64
- background-color: rgba(0, 0, 0, 0.25);
63
+ `;});function c({prefix:o,title:t,body:e}){return n__default.default.createElement($,null,o,n__default.default.createElement(U,null,t),n__default.default.createElement(_,null,e))}var K=p(()=>{G();});function h(o){let t={...O,...o.style||{}};return n__default.default.createElement("button",{type:"button",...o,style:t})}var O,x=p(()=>{O={border:0,cursor:"pointer",fontSize:13,lineHeight:1,padding:"9px 12px",backgroundColor:"#029CFD",borderRadius:4,color:"#fff",fontWeight:700};});function V({api:o,isFinalStep:t,onFirstTourDone:e}){let[r,l]=n.useState();return n.useEffect(()=>{o.on(coreEvents.STORY_ARGS_UPDATED,()=>{E=E+1,E===2&&l(3);});},[]),n__default.default.createElement(Po__default.default,{steps:t?[{target:"#configure-your-project--docs",content:n__default.default.createElement(c,{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:n__default.default.createElement(c,{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:n__default.default.createElement(c,{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:n__default.default.createElement(n__default.default.Fragment,null,n__default.default.createElement(c,{title:"Interactive story playground",body:n__default.default.createElement(n__default.default.Fragment,null,"See how a story renders with different data and state without touching code.",n__default.default.createElement("br",null),"Try it out by pressing this button.")}),n__default.default.createElement(z,{targetSelector:"#control-primary"})),placement:"right",spotlightClicks:!0,floaterProps:{target:"#control-primary"},styles:{buttonNext:{display:"none"}}},{target:"#control-primary",content:n__default.default.createElement(n__default.default.Fragment,null,n__default.default.createElement(b,{numberOfPieces:100}),n__default.default.createElement(c,{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:a=>{!t&&a.status===Po.STATUS.FINISHED&&e();},floaterProps:{styles:{floater:{padding:0,paddingLeft:8,paddingTop:8,filter:"drop-shadow(0px 5px 5px rgba(0,0,0,0.05)) drop-shadow(0 1px 3px rgba(0,0,0,0.1))"}}},styles:{spotlight:{border:"solid 2px #004c7c"},tooltip:{maxWidth:260,borderRadius:4,padding:15},overlay:{backgroundColor:"rgba(0, 0, 0, 0.48)"},buttonNext:{...O,marginTop:5},tooltipContent:{paddingTop:4,padding:0},options:{zIndex:1e4,primaryColor:"#029CFD"}}})}var E,q=p(()=>{j();v();K();x();E=0;});var J,Wo,X,Q=p(()=>{J=theming.styled(d__namespace.Overlay)`
64
+ background-color: rgba(27, 28, 29, 0.48);
65
65
  position: fixed;
66
66
  inset: 0px;
67
67
  width: 100%;
68
68
  height: 100%;
69
- })`,Bt=theming.styled.div(({width:t})=>theming.css`
69
+ `,Wo=theming.styled.div(({width:o,height:t})=>theming.css`
70
70
  background-color: white;
71
71
  border-radius: 6px;
72
72
  box-shadow: rgba(14, 18, 22, 0.35) 0px 10px 38px -10px;
@@ -74,20 +74,22 @@ var ft=Object.defineProperty;var p=(t,o)=>()=>(t&&(o=t(t=0)),o);var mt=(t,o)=>{f
74
74
  top: 50%;
75
75
  left: 50%;
76
76
  transform: translate(-50%, -50%);
77
- width: ${t??"calc(100% - 40px)"};
77
+ width: ${o??740}px;
78
+ height: ${t?`${t}px`:"auto"};
78
79
  max-width: calc(100% - 40px);
79
80
  max-height: 85vh;
80
- `),J=n__default.default.forwardRef(({width:t,children:o,...e},r)=>n__default.default.createElement(C.Content,{ref:r,asChild:!0,...e},n__default.default.createElement(Bt,{width:t},o))),X=theming.styled(C.Title)`
81
- color: #000;
81
+ `),X=n__default.default.forwardRef(({width:o,height:t,children:e,...r},l)=>n__default.default.createElement(d__namespace.Content,{ref:l,asChild:!0,...r},n__default.default.createElement(Wo,{width:o,height:t},e)));});function w({children:o,width:t,height:e,onEscapeKeyDown:r,onInteractOutside:l=a=>a.preventDefault(),...i}){return n__default.default.createElement(d__namespace.Root,{...i},n__default.default.createElement(d__namespace.Portal,null,n__default.default.createElement(J,null),n__default.default.createElement(X,{width:t,height:e,onInteractOutside:l,onEscapeKeyDown:r},o({Title:d__namespace.Title,Description:d__namespace.Description,Close:d__namespace.Close}))))}var B=p(()=>{Q();});function k(){return n__default.default.createElement("svg",{width:"32px",height:"40px",viewBox:"0 0 256 319",preserveAspectRatio:"xMidYMid"},n__default.default.createElement("defs",null,n__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"})),n__default.default.createElement("g",null,n__default.default.createElement("mask",{id:"mask-2",fill:"white"},n__default.default.createElement("use",{xlinkHref:"#path-1"})),n__default.default.createElement("use",{fill:"#FF4785",fillRule:"nonzero",xlinkHref:"#path-1"}),n__default.default.createElement("path",{d:"M188.665358,39.126973 L190.191903,2.41148534 L220.883535,0 L222.205755,37.8634126 C222.251771,39.1811466 221.22084,40.2866846 219.903106,40.3327009 C219.338869,40.3524045 218.785907,40.1715096 218.342409,39.8221376 L206.506729,30.4984116 L192.493574,41.1282444 C191.443077,41.9251106 189.945493,41.7195021 189.148627,40.6690048 C188.813185,40.2267976 188.6423,39.6815326 188.665358,39.126973 Z M149.413703,119.980309 C149.413703,126.206975 191.355678,123.222696 196.986019,118.848893 C196.986019,76.4467826 174.234041,54.1651411 132.57133,54.1651411 C90.9086182,54.1651411 67.5656805,76.7934542 67.5656805,110.735941 C67.5656805,169.85244 147.345341,170.983856 147.345341,203.229219 C147.345341,212.280549 142.913138,217.654777 133.162291,217.654777 C120.456641,217.654777 115.433477,211.165914 116.024438,189.103298 C116.024438,184.317101 67.5656805,182.824962 66.0882793,189.103298 C62.3262146,242.56887 95.6363019,257.990394 133.753251,257.990394 C170.688279,257.990394 199.645341,238.303123 199.645341,202.663511 C199.645341,139.304202 118.683759,141.001326 118.683759,109.604526 C118.683759,96.8760922 128.139127,95.178968 133.753251,95.178968 C139.662855,95.178968 150.300143,96.2205679 149.413703,119.980309 Z",fill:"#FFFFFF",fillRule:"nonzero",mask:"url(#mask-2)"})))}var I=p(()=>{});var R,oo,Mo,P,to,eo,N=p(()=>{R=theming.styled.h1`
82
+ color: #2e3438;
82
83
  font-weight: 700;
83
84
  font-size: 20px;
84
85
  line-height: 20px;
85
- `,Q=theming.styled(C.Description)`
86
+ `,oo=theming.styled.p`
87
+ text-align: center;
86
88
  font-size: 14px;
87
89
  font-weight: 400;
88
90
  line-height: 20px;
89
91
  color: #454e54;
90
- `,R=theming.styled(C.Close)``;});function S({children:t,width:o,onEscapeKeyDown:e,onInteractOutside:r=i=>i.preventDefault(),...l}){return n__default.default.createElement(C__namespace.Root,{...l},n__default.default.createElement(C__namespace.Portal,null,n__default.default.createElement(q,null),n__default.default.createElement(J,{width:o,onInteractOutside:r,onEscapeKeyDown:e},t({Title:X,Description:Q,Close:R}))))}var M=p(()=>{tt();});function w(){return n__default.default.createElement("svg",{width:"32px",height:"40px",viewBox:"0 0 256 319",preserveAspectRatio:"xMidYMid"},n__default.default.createElement("defs",null,n__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"})),n__default.default.createElement("g",null,n__default.default.createElement("mask",{id:"mask-2",fill:"white"},n__default.default.createElement("use",{xlinkHref:"#path-1"})),n__default.default.createElement("use",{fill:"#FF4785",fillRule:"nonzero",xlinkHref:"#path-1"}),n__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=p(()=>{});var Lt,k,ot,et,N=p(()=>{Lt=theming.keyframes`
92
+ `,Mo=theming.keyframes`
91
93
  0% {
92
94
  background-position: 0% 50%;
93
95
  }
@@ -97,7 +99,7 @@ var ft=Object.defineProperty;var p=(t,o)=>()=>(t&&(o=t(t=0)),o);var mt=(t,o)=>{f
97
99
  100% {
98
100
  background-position: 0% 50%;
99
101
  }
100
- `,k=theming.styled.div`
102
+ `,P=theming.styled.div`
101
103
  background: radial-gradient(
102
104
  circle at left,
103
105
  #ffccd2,
@@ -138,17 +140,17 @@ var ft=Object.defineProperty;var p=(t,o)=>()=>(t&&(o=t(t=0)),o);var mt=(t,o)=>{f
138
140
  );
139
141
  background-size: 300% 300%;
140
142
  background-repeat: no-repeat;
141
- animation: ${Lt} 10s linear infinite;
143
+ animation: ${Mo} 10s linear infinite;
142
144
  border-radius: 5px;
143
145
  display: flex;
144
146
  flex-direction: column;
145
147
  align-items: center;
146
148
  padding-top: 100px;
147
149
  padding-bottom: 20px;
148
- `,ot=theming.styled(components.Icons)`
150
+ `,to=theming.styled(components.Icons)`
149
151
  margin-left: 2px;
150
152
  height: 10px;
151
- `,et=theming.styled.button`
153
+ `,eo=theming.styled.button`
152
154
  all: unset;
153
155
  margin-top: 90px;
154
156
  cursor: pointer;
@@ -157,6 +159,6 @@ var ft=Object.defineProperty;var p=(t,o)=>()=>(t&&(o=t(t=0)),o);var mt=(t,o)=>{f
157
159
  :focus-visible {
158
160
  outline: auto;
159
161
  }
160
- `;});var rt,nt=p(()=>{h();M();B();N();rt=({onSkip:t,onProceed:o})=>n__default.default.createElement(S,{width:"540px",defaultOpen:!0},({Title:e,Description:r,Close:l})=>n__default.default.createElement(k,{"data-chromatic":"ignore"},n__default.default.createElement(w,null),n__default.default.createElement(e,{style:{marginTop:20}},"Welcome to Storybook"),n__default.default.createElement(r,null,"Storybook helps you develop UI components.",n__default.default.createElement("br",null),"Learn the basics in a few simple steps."),n__default.default.createElement(b,{style:{marginTop:4},onClick:o},"Start your 3 minute tour"),n__default.default.createElement(l,{asChild:!0},n__default.default.createElement(et,{onClick:t},"Skip tour",n__default.default.createElement(ot,{icon:"arrowright"})))));});function it({onFinish:t}){return n__default.default.createElement(S,{width:"540px",defaultOpen:!0},({Title:o,Description:e})=>n__default.default.createElement(k,{"data-chromatic":"ignore"},n__default.default.createElement(w,null),n__default.default.createElement(o,{style:{marginTop:20}},"Create your first story (WORK IN PROGRESS)"),n__default.default.createElement(e,null,"Now it's your turn. ",n__default.default.createElement("br",null),"See how easy it is to create your first story by following these steps below."),n__default.default.createElement(b,{style:{marginTop:4},onClick:t},"Go to story")))}var st=p(()=>{h();M();B();N();});var at={};mt(at,{default:()=>lt});function lt({api:t}){let[o,e]=n.useState(!0),[r,l]=n.useState(!1),[i,a]=n.useState("1:Welcome"),Y=n.useCallback(()=>{let s=new URL(window.location.href);s.searchParams.delete("onboarding");let P=decodeURIComponent(s.searchParams.get("path"));s.search=`?path=${P}`,history.replaceState({},"",s.href),e(!1);},[e]);return n.useEffect(()=>{let s;return i==="4:VisitNewStory"&&(s=window.setTimeout(()=>{l(!0),a("5:ConfigureYourProject");},2e3)),()=>{clearTimeout(s);}},[i]),n.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");});},[]),n.useEffect(()=>{let s=P=>{P==="configure-your-project--docs"&&Y();};return t.on(coreEvents.STORY_CHANGED,s),()=>{t.off(coreEvents.STORY_CHANGED,s);}},[]),o?n__default.default.createElement(theming.ThemeProvider,{theme:Ht},r&&n__default.default.createElement(g,{numberOfPieces:1e3,initialVelocityY:3,recycle:!1,onConfettiComplete:s=>{s.reset(),l(!1);}}),i==="1:Welcome"&&n__default.default.createElement(rt,{onProceed:()=>{a("2:StorybookTour");},onSkip:Y}),(i==="2:StorybookTour"||i==="5:ConfigureYourProject")&&n__default.default.createElement(V,{api:t,isFinalStep:i==="5:ConfigureYourProject",onFirstTourDone:()=>{a("3:WriteYourStory");}}),i==="3:WriteYourStory"&&n__default.default.createElement(it,{onFinish:()=>{a("4:VisitNewStory");}})):null}var Ht,dt=p(()=>{Z();nt();st();T();Ht=theming.ensure(theming.themes.light);});var Kt=n.lazy(()=>Promise.resolve().then(()=>(dt(),at)));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),Ut__default.default.render(n__default.default.createElement(n.Suspense,{fallback:n__default.default.createElement("div",null,"Loading...")},n__default.default.createElement(Kt,{api:t})),r);}});
162
+ `;});var ro,no=p(()=>{x();B();I();N();ro=({onSkip:o,onProceed:t})=>n__default.default.createElement(w,{width:"540px",defaultOpen:!0},({Close:e})=>n__default.default.createElement(P,{"data-chromatic":"ignore"},n__default.default.createElement(k,null),n__default.default.createElement(R,{style:{marginTop:20}},"Welcome to Storybook"),n__default.default.createElement(oo,null,"Storybook helps you develop UI components.",n__default.default.createElement("br",null),"Learn the basics in a few simple steps."),n__default.default.createElement(h,{style:{marginTop:4},onClick:t},"Start your 3 minute tour"),n__default.default.createElement(e,{asChild:!0},n__default.default.createElement(eo,{onClick:o},"Skip tour",n__default.default.createElement(to,{icon:"arrowright"})))));});function io({onFinish:o}){return n__default.default.createElement(w,{width:"540px",defaultOpen:!0},({Title:t,Description:e})=>n__default.default.createElement(P,{"data-chromatic":"ignore"},n__default.default.createElement(k,null),n__default.default.createElement(t,{style:{marginTop:20}},"Create your first story (WORK IN PROGRESS)"),n__default.default.createElement(e,null,"Now it's your turn. ",n__default.default.createElement("br",null),"See how easy it is to create your first story by following these steps below."),n__default.default.createElement(h,{style:{marginTop:4},onClick:o},"Go to story")))}var so=p(()=>{x();B();I();N();});var lo={};uo(lo,{default:()=>ao});function ao({api:o}){let[t,e]=n.useState(!0),[r,l]=n.useState(!1),[i,a]=n.useState("1:Welcome"),Y=n.useCallback(()=>{let s=new URL(window.location.href);s.searchParams.delete("onboarding");let T=decodeURIComponent(s.searchParams.get("path"));s.search=`?path=${T}`,history.replaceState({},"",s.href),e(!1);},[e]);return n.useEffect(()=>{let s;return i==="4:VisitNewStory"&&(s=window.setTimeout(()=>{l(!0),a("5:ConfigureYourProject");},2e3)),()=>{clearTimeout(s);}},[i]),n.useEffect(()=>{o.once(coreEvents.CURRENT_STORY_WAS_SET,({storyId:s})=>{s!=="example-button--primary"&&o.selectStory("example-button--primary",void 0,{ref:void 0}),o.togglePanel(!0),o.togglePanelPosition("bottom"),o.setSelectedPanel("addon-controls");});},[]),n.useEffect(()=>{let s=T=>{T==="configure-your-project--docs"&&Y();};return o.on(coreEvents.STORY_CHANGED,s),()=>{o.off(coreEvents.STORY_CHANGED,s);}},[]),t?n__default.default.createElement(theming.ThemeProvider,{theme:Fo},r&&n__default.default.createElement(b,{numberOfPieces:1e3,initialVelocityY:3,recycle:!1,onConfettiComplete:s=>{s.reset(),l(!1);}}),i==="1:Welcome"&&n__default.default.createElement(ro,{onProceed:()=>{a("2:StorybookTour");},onSkip:Y}),(i==="2:StorybookTour"||i==="5:ConfigureYourProject")&&n__default.default.createElement(V,{api:o,isFinalStep:i==="5:ConfigureYourProject",onFirstTourDone:()=>{a("3:WriteYourStory");}}),i==="3:WriteYourStory"&&n__default.default.createElement(io,{onFinish:()=>{a("4:VisitNewStory");}})):null}var Fo,fo=p(()=>{q();no();so();v();Fo=theming.ensure(theming.themes.light);});var $o=n.lazy(()=>Promise.resolve().then(()=>(fo(),lo)));managerApi.addons.register("@storybook/addon-onboarding",async o=>{if(!o.getUrlState().queryParams.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),Yo__default.default.render(n__default.default.createElement(n.Suspense,{fallback:n__default.default.createElement("div",null,"Loading...")},n__default.default.createElement($o,{api:o})),r);}});
161
163
  //# sourceMappingURL=out.js.map
162
164
  //# 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/components/Button/Button.tsx","../src/features/GuidedTour/GuidedTour.tsx","../src/components/Modal/Modal.styled.tsx","../src/components/Modal/Modal.tsx","../src/components/Icons/StorybookLogo.tsx","../src/features/WelcomeModal/WelcomeModal.styled.tsx","../src/features/WelcomeModal/WelcomeModal.tsx","../src/features/WriteStoriesModal/WriteStoriesModal.tsx","../src/App.tsx","../src/manager.tsx"],"names":["useEffect","PulsatingEffect","targetSelector","element","keyframes","style","init_PulsatingEffect","__esmMin","ReactConfetti","React","styled","createPortal","useState","Confetti","top","left","width","height","confettiProps","confettiContainer","container","Wrapper","init_Confetti","Title","Body","init_TitleBody_styled","TitleBody","prefix","title","body","init_TitleBody","Button","props","buttonStyles","init_Button","Joyride","STATUS","STORY_ARGS_UPDATED","GuidedTour","api","isFinalStep","onFirstTourDone","stepIndex","setStepIndex","INTERACTIONS_COUNT","data","init_GuidedTour","css","Overlay","Content","Description","Close","StyledOverlay","StyledContent","ContentWrapper","StyledTitle","StyledDescription","StyledClose","init_Modal_styled","children","contentProps","ref","Dialog","Modal","onEscapeKeyDown","onInteractOutside","ev","rootProps","init_Modal","StorybookLogo","init_StorybookLogo","Icons","rainbowAnimation","ModalContentWrapper","StyledIcon","SkipButton","init_WelcomeModal_styled","WelcomeModal","init_WelcomeModal","onSkip","onProceed","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","theme","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 React from \"react\";\n\nexport const buttonStyles: React.ComponentProps<\"button\">[\"style\"] = {\n border: 0,\n cursor: \"pointer\",\n fontSize: 13,\n lineHeight: 1,\n padding: \"9px 12px\",\n backgroundColor: \"#029CFD\",\n borderRadius: 4,\n color: \"#fff\",\n fontWeight: 700,\n};\n\nexport function Button(props: React.ComponentProps<\"button\">) {\n const style = {\n ...buttonStyles,\n ...(props.style || {}),\n };\n\n return <button type=\"button\" {...props} style={style} />;\n}\n","import React, { useEffect, useState } from \"react\";\nimport Joyride, { CallBackProps, STATUS, Step } from \"react-joyride\";\n\nimport { PulsatingEffect } from \"../../components/PulsatingEffect/PulsatingEffect\";\nimport { Confetti } from \"../../components/Confetti/Confetti\";\nimport { TitleBody } from \"../../components/TitleBody/TitleBody\";\nimport { API } from \"@storybook/manager-api\";\nimport { STORY_ARGS_UPDATED } from \"@storybook/core-events\";\nimport { buttonStyles } from \"src/components/Button/Button\";\n\nlet INTERACTIONS_COUNT = 0;\n\nexport function GuidedTour({\n api,\n isFinalStep,\n onFirstTourDone,\n}: {\n api: API;\n isFinalStep?: boolean;\n onFirstTourDone: () => void;\n}) {\n const [stepIndex, setStepIndex] = useState<number>();\n\n useEffect(() => {\n api.on(STORY_ARGS_UPDATED, () => {\n INTERACTIONS_COUNT = INTERACTIONS_COUNT + 1;\n if (INTERACTIONS_COUNT === 2) {\n setStepIndex(3);\n }\n });\n }, []);\n\n const steps: Step[] = isFinalStep\n ? [\n {\n target: \"#configure-your-project--docs\",\n content: (\n <TitleBody\n title=\"Continue setting up your project\"\n body=\"You nailed the basics. Now get started writing stories for your own components.\"\n />\n ),\n placement: \"right\",\n disableOverlay: true,\n disableBeacon: true,\n styles: {\n buttonNext: {\n display: \"none\",\n },\n },\n floaterProps: {\n disableAnimation: true,\n },\n },\n ]\n : [\n {\n target: \"#storybook-explorer-tree > div\",\n content: (\n <TitleBody\n title=\"Storybook is built from stories\"\n body=\"Storybook uses stories to represent the key states supported by each of your components. For example: this Button component has four stories.\"\n />\n ),\n placement: \"right\",\n disableBeacon: true,\n styles: {\n spotlight: {\n transform: 'translateY(30px)',\n },\n },\n floaterProps: {\n disableAnimation: true,\n },\n },\n {\n target: \"#storybook-preview-iframe\",\n content: (\n <TitleBody\n title=\"Storybook previews are interactive\"\n body=\"Whenever you modify code or stories, Storybook automatically updates how it previews your components.\"\n />\n ),\n placement: \"bottom\",\n },\n {\n target: \"#root div[role=main]\",\n content: (\n <>\n <TitleBody\n title=\"Interactive story playground\"\n body={\n <>\n See how a story renders with different data and state\n without touching code.\n <br />\n Try it out by pressing this button.\n </>\n }\n />\n <PulsatingEffect targetSelector=\"#control-primary\" />\n </>\n ),\n placement: \"right\",\n spotlightClicks: true,\n floaterProps: {\n target: \"#control-primary\",\n },\n styles: {\n buttonNext: {\n display: \"none\",\n },\n },\n },\n {\n target: \"#control-primary\",\n content: (\n <>\n <Confetti numberOfPieces={100} />\n <TitleBody\n title=\"Congratulations!\"\n body=\"You've learned how to control your stories interactively. Now: let's explore how to write your first story.\"\n />\n </>\n ),\n placement: \"right\",\n disableOverlay: true,\n locale: {\n last: \"Next\",\n },\n },\n ];\n\n return (\n <Joyride\n steps={steps}\n continuous\n stepIndex={stepIndex}\n spotlightPadding={0}\n hideBackButton\n disableCloseOnEsc\n disableOverlayClose\n disableScrolling\n hideCloseButton\n callback={(data: CallBackProps) => {\n if (!isFinalStep && data.status === STATUS.FINISHED) {\n onFirstTourDone();\n }\n }}\n floaterProps={{\n styles: {\n floater: {\n padding: 0,\n paddingLeft: 8,\n paddingTop: 8,\n filter:\n \"drop-shadow(0px 5px 5px rgba(0,0,0,0.05)) drop-shadow(0 1px 3px rgba(0,0,0,0.1))\",\n },\n },\n }}\n styles={{\n spotlight: {\n border: \"solid 2px #004c7c\",\n },\n tooltip: {\n maxWidth: 260,\n borderRadius: 4,\n padding: 15,\n },\n overlay: {\n backgroundColor: \"rgba(0, 0, 0, 0.48)\",\n },\n buttonNext: {\n ...buttonStyles,\n marginTop: 5,\n },\n tooltipContent: {\n paddingTop: 4,\n padding: 0,\n },\n options: {\n zIndex: 10000,\n primaryColor: \"#029CFD\",\n },\n }}\n />\n );\n}\n","import { css, styled } from \"@storybook/theming\";\nimport {\n Overlay,\n Content,\n Title,\n Description,\n Close,\n} from \"@radix-ui/react-dialog\";\nimport React from \"react\";\n\nexport const StyledOverlay = styled(Overlay)`\n background-color: rgba(0, 0, 0, 0.25);\n position: fixed;\n inset: 0px;\n width: 100%;\n height: 100%;\n})`;\n\nexport const StyledContent = styled.div<{ width: string }>(\n ({ width }) => 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 ?? \"calc(100% - 40px)\"};\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 Content>\n>(({ width, children, ...contentProps }, ref) => (\n <Content ref={ref} asChild {...contentProps}>\n <StyledContent width={width}>{children}</StyledContent>\n </Content>\n));\n\nexport const StyledTitle = styled(Title)`\n color: #000;\n font-weight: 700;\n font-size: 20px;\n line-height: 20px;\n`;\nexport const StyledDescription = styled(Description)`\n font-size: 14px;\n font-weight: 400;\n line-height: 20px;\n color: #454e54;\n`;\n\nexport const StyledClose = styled(Close)``;\n","import React from \"react\";\n\nimport * as Dialog from \"@radix-ui/react-dialog\";\nimport {\n ContentWrapper,\n StyledClose,\n StyledDescription,\n StyledOverlay,\n StyledTitle,\n} from \"./Modal.styled\";\n\ntype ContentProps = React.ComponentProps<typeof ContentWrapper>;\n\ninterface ModalProps\n extends Omit<React.ComponentProps<typeof Dialog.Root>, \"children\"> {\n width?: string;\n children: (props: {\n Title: typeof StyledTitle;\n Description: typeof StyledDescription;\n Close: typeof StyledClose;\n }) => React.ReactNode;\n onEscapeKeyDown?: ContentProps[\"onEscapeKeyDown\"];\n onInteractOutside?: ContentProps[\"onInteractOutside\"];\n}\n\nexport function Modal({\n children,\n width,\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 onInteractOutside={onInteractOutside}\n onEscapeKeyDown={onEscapeKeyDown}\n >\n {children({\n Title: StyledTitle,\n Description: StyledDescription,\n Close: StyledClose,\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 rainbowAnimation = keyframes`\n 0% {\n background-position: 0% 50%;\n }\n 50% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n`;\n\nexport const ModalContentWrapper = styled.div`\n background: radial-gradient(\n circle at left,\n #ffccd2,\n #ffdbcb,\n #ffe9c5,\n #fff8c0,\n #f2ffd8,\n #d2f8e5,\n #b3f0f1,\n #a1e6f0,\n #9fd8df\n )\n left,\n radial-gradient(\n circle at right,\n #ffccd2,\n #ffdbcb,\n #ffe9c5,\n #fff8c0,\n #f2ffd8,\n #d2f8e5,\n #b3f0f1,\n #a1e6f0,\n #9fd8df\n )\n right,\n linear-gradient(\n 45deg,\n #ffccd2,\n #ffdbcb,\n #ffe9c5,\n #fff8c0,\n #f2ffd8,\n #d2f8e5,\n #b3f0f1,\n #a1e6f0,\n #9fd8df\n );\n background-size: 300% 300%;\n background-repeat: no-repeat;\n animation: ${rainbowAnimation} 10s linear infinite;\n border-radius: 5px;\n display: flex;\n flex-direction: column;\n align-items: center;\n padding-top: 100px;\n padding-bottom: 20px;\n`;\n\nexport const StyledIcon = styled(Icons)`\n margin-left: 2px;\n height: 10px;\n`;\n\nexport const SkipButton = styled.button`\n all: unset;\n margin-top: 90px;\n cursor: pointer;\n font-size: 13px;\n color: #798186;\n :focus-visible {\n outline: auto;\n }\n`;\n","import React from \"react\";\n\nimport { Button } from \"../../components/Button/Button\";\nimport { Modal } from \"../../components/Modal/Modal\";\nimport { StorybookLogo } from \"../../components/Icons/StorybookLogo\";\nimport {\n ModalContentWrapper,\n SkipButton,\n StyledIcon,\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=\"540px\" defaultOpen>\n {({ Title, Description, Close }) => (\n <ModalContentWrapper data-chromatic=\"ignore\">\n <StorybookLogo />\n <Title style={{ marginTop: 20 }}>Welcome to Storybook</Title>\n <Description>\n Storybook helps you develop UI components.\n <br />\n Learn the basics in a few simple steps.\n </Description>\n <Button style={{ marginTop: 4 }} onClick={onProceed}>\n Start your 3 minute tour\n </Button>\n <Close asChild>\n <SkipButton onClick={onSkip}>\n Skip tour\n <StyledIcon icon=\"arrowright\" />\n </SkipButton>\n </Close>\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 \"../../components/Icons/StorybookLogo\";\nimport { ModalContentWrapper } from \"../WelcomeModal/WelcomeModal.styled\";\n\nexport function WriteStoriesModal({ onFinish }: { onFinish: () => void }) {\n return (\n <Modal width=\"540px\" defaultOpen>\n {({ Title, Description }) => (\n <ModalContentWrapper data-chromatic=\"ignore\">\n <StorybookLogo />\n <Title style={{ marginTop: 20 }}>\n Create your first story (WORK IN PROGRESS)\n </Title>\n <Description>\n Now it's your turn. <br />\n See how easy it is to create your first story by following these\n steps below.\n </Description>\n <Button style={{ marginTop: 4 }} onClick={onFinish}>\n Go to story\n </Button>\n </ModalContentWrapper>\n )}\n </Modal>\n );\n}\n","import React, { useCallback, useEffect, useState } from \"react\";\nimport { ThemeProvider, ensure, themes } from \"@storybook/theming\";\nimport { STORY_CHANGED, CURRENT_STORY_WAS_SET } from \"@storybook/core-events\";\nimport { type API } from \"@storybook/manager-api\";\n\nimport { GuidedTour } from \"./features/GuidedTour/GuidedTour\";\nimport { WelcomeModal } from \"./features/WelcomeModal/WelcomeModal\";\nimport { WriteStoriesModal } from \"./features/WriteStoriesModal/WriteStoriesModal\";\nimport { Confetti } from \"./components/Confetti/Confetti\";\n\ntype Step =\n | \"1:Welcome\"\n | \"2:StorybookTour\"\n | \"3:WriteYourStory\"\n | \"4:VisitNewStory\"\n | \"5:ConfigureYourProject\";\n\nconst theme = ensure(themes.light);\n\nexport default function App({ api }: { api: API }) {\n const [enabled, setEnabled] = useState(true);\n const [showConfetti, setShowConfetti] = useState(false);\n const [step, setStep] = useState<Step>(\"1:Welcome\");\n\n const skipTour = useCallback(() => {\n // remove onboarding query parameter from current url\n const url = new URL(window.location.href);\n url.searchParams.delete(\"onboarding\");\n const path = decodeURIComponent(url.searchParams.get(\"path\"));\n url.search = `?path=${path}`;\n history.replaceState({}, \"\", url.href);\n setEnabled(false);\n }, [setEnabled]);\n\n useEffect(() => {\n let stepTimeout: number;\n if (step === \"4:VisitNewStory\") {\n stepTimeout = window.setTimeout(() => {\n setShowConfetti(true);\n setStep(\"5:ConfigureYourProject\");\n }, 2000);\n }\n\n return () => {\n clearTimeout(stepTimeout);\n };\n }, [step]);\n\n useEffect(() => {\n api.once(CURRENT_STORY_WAS_SET, ({ storyId }) => {\n // make sure the initial state is set correctly:\n // 1. Selected story is primary button\n // 2. The addon panel is opened, in the bottom and the controls tab is selected\n if (storyId !== \"example-button--primary\") {\n api.selectStory(\"example-button--primary\", undefined, {\n ref: undefined,\n });\n }\n api.togglePanel(true);\n api.togglePanelPosition(\"bottom\");\n api.setSelectedPanel(\"addon-controls\");\n });\n }, []);\n\n useEffect(() => {\n const onStoryChanged = (storyId: string) => {\n if (storyId === \"configure-your-project--docs\") {\n skipTour();\n }\n };\n\n api.on(STORY_CHANGED, onStoryChanged);\n\n return () => {\n api.off(STORY_CHANGED, onStoryChanged);\n };\n }, []);\n\n if (!enabled) {\n return null;\n }\n\n return (\n <ThemeProvider theme={theme}>\n {showConfetti && (\n <Confetti\n numberOfPieces={1000}\n initialVelocityY={3}\n recycle={false}\n onConfettiComplete={(confetti) => {\n confetti.reset();\n setShowConfetti(false);\n }}\n />\n )}\n {step === \"1:Welcome\" && (\n <WelcomeModal\n onProceed={() => {\n setStep(\"2:StorybookTour\");\n }}\n onSkip={skipTour}\n />\n )}\n {(step === \"2:StorybookTour\" || step === \"5:ConfigureYourProject\") && (\n <GuidedTour\n api={api}\n isFinalStep={step === \"5:ConfigureYourProject\"}\n onFirstTourDone={() => {\n setStep(\"3:WriteYourStory\");\n }}\n />\n )}\n {step === \"3:WriteYourStory\" && (\n <WriteStoriesModal\n onFinish={() => {\n // TODO: enable this\n // api.selectStory(\"example-button--warning\");\n setStep(\"4:VisitNewStory\");\n }}\n />\n )}\n </ThemeProvider>\n );\n}\n","import ReactDOM from \"react-dom\";\nimport React, { lazy, Suspense } from \"react\";\nimport { addons } from \"@storybook/manager-api\";\n\nconst App = lazy(() => import(\"./App\"));\n\n// The addon is enabled only when:\n// 1. The onboarding query parameter is present\n// 2. The example button stories are present\naddons.register(\"@storybook/addon-onboarding\", async (api) => {\n const isOnboarding = api.getUrlState().path === '/onboarding';\n\n if (!isOnboarding) {\n return;\n }\n\n let hasButtonStories = false;\n try {\n const response = await fetch(\"./index.json\");\n const index = await response.json();\n hasButtonStories = !!index.entries[\"example-button--primary\"];\n } catch (e) {}\n\n if (hasButtonStories) {\n // Add a new DOM element to document.body, where we will bootstrap our React app\n const domNode = document.createElement(\"div\");\n\n domNode.id = \"addon-onboarding\";\n // Append the new DOM element to document.body\n document.body.appendChild(domNode);\n\n // Render the React app\n ReactDOM.render(\n <Suspense fallback={<div>Loading...</div>}>\n <App api={api} />\n </Suspense>,\n domNode\n );\n }\n});\n"]}
1
+ {"version":3,"sources":["../src/components/PulsatingEffect/PulsatingEffect.tsx","../src/components/Confetti/Confetti.tsx","../src/components/TitleBody/TitleBody.styled.tsx","../src/components/TitleBody/TitleBody.tsx","../src/components/Button/Button.tsx","../src/features/GuidedTour/GuidedTour.tsx","../src/components/Modal/Modal.styled.tsx","../src/components/Modal/Modal.tsx","../src/components/Icons/StorybookLogo.tsx","../src/features/WelcomeModal/WelcomeModal.styled.tsx","../src/features/WelcomeModal/WelcomeModal.tsx","../src/features/WriteStoriesModal/WriteStoriesModal.tsx","../src/App.tsx","../src/manager.tsx"],"names":["useEffect","PulsatingEffect","targetSelector","element","keyframes","style","init_PulsatingEffect","__esmMin","ReactConfetti","React","styled","createPortal","useState","Confetti","top","left","width","height","confettiProps","confettiContainer","container","Wrapper","init_Confetti","Title","Body","init_TitleBody_styled","TitleBody","prefix","title","body","init_TitleBody","Button","props","buttonStyles","init_Button","Joyride","STATUS","STORY_ARGS_UPDATED","GuidedTour","api","isFinalStep","onFirstTourDone","stepIndex","setStepIndex","INTERACTIONS_COUNT","data","init_GuidedTour","css","Dialog","StyledOverlay","StyledContent","ContentWrapper","init_Modal_styled","children","contentProps","ref","Modal","onEscapeKeyDown","onInteractOutside","ev","rootProps","init_Modal","StorybookLogo","init_StorybookLogo","Icons","Description","rainbowAnimation","ModalContentWrapper","StyledIcon","SkipButton","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","theme","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 React from \"react\";\n\nexport const buttonStyles: React.ComponentProps<\"button\">[\"style\"] = {\n border: 0,\n cursor: \"pointer\",\n fontSize: 13,\n lineHeight: 1,\n padding: \"9px 12px\",\n backgroundColor: \"#029CFD\",\n borderRadius: 4,\n color: \"#fff\",\n fontWeight: 700,\n};\n\nexport function Button(props: React.ComponentProps<\"button\">) {\n const style = {\n ...buttonStyles,\n ...(props.style || {}),\n };\n\n return <button type=\"button\" {...props} style={style} />;\n}\n","import React, { useEffect, useState } from \"react\";\nimport Joyride, { CallBackProps, STATUS, Step } from \"react-joyride\";\n\nimport { PulsatingEffect } from \"../../components/PulsatingEffect/PulsatingEffect\";\nimport { Confetti } from \"../../components/Confetti/Confetti\";\nimport { TitleBody } from \"../../components/TitleBody/TitleBody\";\nimport { API } from \"@storybook/manager-api\";\nimport { STORY_ARGS_UPDATED } from \"@storybook/core-events\";\nimport { buttonStyles } from \"src/components/Button/Button\";\n\nlet INTERACTIONS_COUNT = 0;\n\nexport function GuidedTour({\n api,\n isFinalStep,\n onFirstTourDone,\n}: {\n api: API;\n isFinalStep?: boolean;\n onFirstTourDone: () => void;\n}) {\n const [stepIndex, setStepIndex] = useState<number>();\n\n useEffect(() => {\n api.on(STORY_ARGS_UPDATED, () => {\n INTERACTIONS_COUNT = INTERACTIONS_COUNT + 1;\n if (INTERACTIONS_COUNT === 2) {\n setStepIndex(3);\n }\n });\n }, []);\n\n const steps: Step[] = isFinalStep\n ? [\n {\n target: \"#configure-your-project--docs\",\n content: (\n <TitleBody\n title=\"Continue setting up your project\"\n body=\"You nailed the basics. Now get started writing stories for your own components.\"\n />\n ),\n placement: \"right\",\n disableOverlay: true,\n disableBeacon: true,\n styles: {\n buttonNext: {\n display: \"none\",\n },\n },\n floaterProps: {\n disableAnimation: true,\n },\n },\n ]\n : [\n {\n target: \"#storybook-explorer-tree > div\",\n content: (\n <TitleBody\n title=\"Storybook is built from stories\"\n body=\"Storybook uses stories to represent the key states supported by each of your components. For example: this Button component has four stories.\"\n />\n ),\n placement: \"right\",\n disableBeacon: true,\n styles: {\n spotlight: {\n transform: 'translateY(30px)',\n },\n },\n floaterProps: {\n disableAnimation: true,\n },\n },\n {\n target: \"#storybook-preview-iframe\",\n content: (\n <TitleBody\n title=\"Storybook previews are interactive\"\n body=\"Whenever you modify code or stories, Storybook automatically updates how it previews your components.\"\n />\n ),\n placement: \"bottom\",\n },\n {\n target: \"#root div[role=main]\",\n content: (\n <>\n <TitleBody\n title=\"Interactive story playground\"\n body={\n <>\n See how a story renders with different data and state\n without touching code.\n <br />\n Try it out by pressing this button.\n </>\n }\n />\n <PulsatingEffect targetSelector=\"#control-primary\" />\n </>\n ),\n placement: \"right\",\n spotlightClicks: true,\n floaterProps: {\n target: \"#control-primary\",\n },\n styles: {\n buttonNext: {\n display: \"none\",\n },\n },\n },\n {\n target: \"#control-primary\",\n content: (\n <>\n <Confetti numberOfPieces={100} />\n <TitleBody\n title=\"Congratulations!\"\n body=\"You've learned how to control your stories interactively. Now: let's explore how to write your first story.\"\n />\n </>\n ),\n placement: \"right\",\n disableOverlay: true,\n locale: {\n last: \"Next\",\n },\n },\n ];\n\n return (\n <Joyride\n steps={steps}\n continuous\n stepIndex={stepIndex}\n spotlightPadding={0}\n hideBackButton\n disableCloseOnEsc\n disableOverlayClose\n disableScrolling\n hideCloseButton\n callback={(data: CallBackProps) => {\n if (!isFinalStep && data.status === STATUS.FINISHED) {\n onFirstTourDone();\n }\n }}\n floaterProps={{\n styles: {\n floater: {\n padding: 0,\n paddingLeft: 8,\n paddingTop: 8,\n filter:\n \"drop-shadow(0px 5px 5px rgba(0,0,0,0.05)) drop-shadow(0 1px 3px rgba(0,0,0,0.1))\",\n },\n },\n }}\n styles={{\n spotlight: {\n border: \"solid 2px #004c7c\",\n },\n tooltip: {\n maxWidth: 260,\n borderRadius: 4,\n padding: 15,\n },\n overlay: {\n backgroundColor: \"rgba(0, 0, 0, 0.48)\",\n },\n buttonNext: {\n ...buttonStyles,\n marginTop: 5,\n },\n tooltipContent: {\n paddingTop: 4,\n padding: 0,\n },\n options: {\n zIndex: 10000,\n primaryColor: \"#029CFD\",\n },\n }}\n />\n );\n}\n","import { css, styled } from \"@storybook/theming\";\nimport * as Dialog from \"@radix-ui/react-dialog\";\nimport React from \"react\";\n\nexport const StyledOverlay = styled(Dialog.Overlay)`\n background-color: rgba(27, 28, 29, 0.48);\n position: fixed;\n inset: 0px;\n width: 100%;\n height: 100%;\n`;\n\nexport const StyledContent = styled.div<{ width: number; height: number }>(\n ({ width, height }) => css`\n background-color: white;\n border-radius: 6px;\n box-shadow: rgba(14, 18, 22, 0.35) 0px 10px 38px -10px;\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: ${width ?? 740}px;\n height: ${height ? `${height}px` : \"auto\"};\n max-width: calc(100% - 40px);\n max-height: 85vh;\n `\n);\n\nexport const ContentWrapper = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof StyledContent> &\n React.ComponentProps<typeof Dialog.Content>\n>(({ width, height, children, ...contentProps }, ref) => (\n <Dialog.Content ref={ref} asChild {...contentProps}>\n <StyledContent width={width} height={height}>\n {children}\n </StyledContent>\n </Dialog.Content>\n));\n","import React from \"react\";\nimport * as Dialog from \"@radix-ui/react-dialog\";\nimport { ContentWrapper, StyledOverlay } from \"./Modal.styled\";\n\ntype ContentProps = React.ComponentProps<typeof ContentWrapper>;\n\ninterface ModalProps\n extends Omit<React.ComponentProps<typeof Dialog.Root>, \"children\"> {\n width?: number;\n height?: number;\n children: (props: {\n Title: typeof Dialog.Title;\n Description: typeof Dialog.Description;\n Close: typeof Dialog.Close;\n }) => React.ReactNode;\n onEscapeKeyDown?: ContentProps[\"onEscapeKeyDown\"];\n onInteractOutside?: ContentProps[\"onInteractOutside\"];\n}\n\nexport function Modal({\n children,\n width,\n height,\n onEscapeKeyDown,\n onInteractOutside = (ev) => ev.preventDefault(),\n ...rootProps\n}: ModalProps) {\n return (\n <Dialog.Root {...rootProps}>\n <Dialog.Portal>\n <StyledOverlay />\n <ContentWrapper\n width={width}\n height={height}\n onInteractOutside={onInteractOutside}\n onEscapeKeyDown={onEscapeKeyDown}\n >\n {children({\n Title: Dialog.Title,\n Description: Dialog.Description,\n Close: Dialog.Close,\n })}\n </ContentWrapper>\n </Dialog.Portal>\n </Dialog.Root>\n );\n}\n","import React from \"react\";\n\nexport function StorybookLogo() {\n return (\n <svg\n width=\"32px\"\n height=\"40px\"\n viewBox=\"0 0 256 319\"\n preserveAspectRatio=\"xMidYMid\"\n >\n <defs>\n <path\n d=\"M9.87245893,293.324145 L0.0114611411,30.5732167 C-0.314208957,21.8955842 6.33948896,14.5413918 15.0063196,13.9997149 L238.494389,0.0317105427 C247.316188,-0.519651867 254.914637,6.18486163 255.466,15.0066607 C255.486773,15.339032 255.497167,15.6719708 255.497167,16.0049907 L255.497167,302.318596 C255.497167,311.157608 248.331732,318.323043 239.492719,318.323043 C239.253266,318.323043 239.013844,318.317669 238.774632,318.306926 L25.1475605,308.712253 C16.8276309,308.338578 10.1847994,301.646603 9.87245893,293.324145 L9.87245893,293.324145 Z\"\n id=\"path-1\"\n ></path>\n </defs>\n <g>\n <mask id=\"mask-2\" fill=\"white\">\n <use xlinkHref=\"#path-1\"></use>\n </mask>\n <use fill=\"#FF4785\" fillRule=\"nonzero\" xlinkHref=\"#path-1\"></use>\n <path\n d=\"M188.665358,39.126973 L190.191903,2.41148534 L220.883535,0 L222.205755,37.8634126 C222.251771,39.1811466 221.22084,40.2866846 219.903106,40.3327009 C219.338869,40.3524045 218.785907,40.1715096 218.342409,39.8221376 L206.506729,30.4984116 L192.493574,41.1282444 C191.443077,41.9251106 189.945493,41.7195021 189.148627,40.6690048 C188.813185,40.2267976 188.6423,39.6815326 188.665358,39.126973 Z M149.413703,119.980309 C149.413703,126.206975 191.355678,123.222696 196.986019,118.848893 C196.986019,76.4467826 174.234041,54.1651411 132.57133,54.1651411 C90.9086182,54.1651411 67.5656805,76.7934542 67.5656805,110.735941 C67.5656805,169.85244 147.345341,170.983856 147.345341,203.229219 C147.345341,212.280549 142.913138,217.654777 133.162291,217.654777 C120.456641,217.654777 115.433477,211.165914 116.024438,189.103298 C116.024438,184.317101 67.5656805,182.824962 66.0882793,189.103298 C62.3262146,242.56887 95.6363019,257.990394 133.753251,257.990394 C170.688279,257.990394 199.645341,238.303123 199.645341,202.663511 C199.645341,139.304202 118.683759,141.001326 118.683759,109.604526 C118.683759,96.8760922 128.139127,95.178968 133.753251,95.178968 C139.662855,95.178968 150.300143,96.2205679 149.413703,119.980309 Z\"\n fill=\"#FFFFFF\"\n fillRule=\"nonzero\"\n mask=\"url(#mask-2)\"\n ></path>\n </g>\n </svg>\n );\n}\n","import { Icons } from \"@storybook/components\";\nimport { keyframes, styled } from \"@storybook/theming\";\n\nexport const Title = styled.h1`\n color: #2e3438;\n font-weight: 700;\n font-size: 20px;\n line-height: 20px;\n`;\n\nexport const Description = styled.p`\n text-align: center;\n font-size: 14px;\n font-weight: 400;\n line-height: 20px;\n color: #454e54;\n`;\n\nexport const rainbowAnimation = keyframes`\n 0% {\n background-position: 0% 50%;\n }\n 50% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n`;\n\nexport const ModalContentWrapper = styled.div`\n background: radial-gradient(\n circle at left,\n #ffccd2,\n #ffdbcb,\n #ffe9c5,\n #fff8c0,\n #f2ffd8,\n #d2f8e5,\n #b3f0f1,\n #a1e6f0,\n #9fd8df\n )\n left,\n radial-gradient(\n circle at right,\n #ffccd2,\n #ffdbcb,\n #ffe9c5,\n #fff8c0,\n #f2ffd8,\n #d2f8e5,\n #b3f0f1,\n #a1e6f0,\n #9fd8df\n )\n right,\n linear-gradient(\n 45deg,\n #ffccd2,\n #ffdbcb,\n #ffe9c5,\n #fff8c0,\n #f2ffd8,\n #d2f8e5,\n #b3f0f1,\n #a1e6f0,\n #9fd8df\n );\n background-size: 300% 300%;\n background-repeat: no-repeat;\n animation: ${rainbowAnimation} 10s linear infinite;\n border-radius: 5px;\n display: flex;\n flex-direction: column;\n align-items: center;\n padding-top: 100px;\n padding-bottom: 20px;\n`;\n\nexport const StyledIcon = styled(Icons)`\n margin-left: 2px;\n height: 10px;\n`;\n\nexport const SkipButton = styled.button`\n all: unset;\n margin-top: 90px;\n cursor: pointer;\n font-size: 13px;\n color: #798186;\n :focus-visible {\n outline: auto;\n }\n`;\n","import React from \"react\";\n\nimport { Button } from \"../../components/Button/Button\";\nimport { Modal } from \"../../components/Modal/Modal\";\nimport { StorybookLogo } from \"../../components/Icons/StorybookLogo\";\nimport {\n ModalContentWrapper,\n SkipButton,\n StyledIcon,\n Title,\n Description,\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=\"540px\" defaultOpen>\n {({ Close }) => (\n <ModalContentWrapper data-chromatic=\"ignore\">\n <StorybookLogo />\n <Title style={{ marginTop: 20 }}>Welcome to Storybook</Title>\n <Description>\n Storybook helps you develop UI components.\n <br />\n Learn the basics in a few simple steps.\n </Description>\n <Button style={{ marginTop: 4 }} onClick={onProceed}>\n Start your 3 minute tour\n </Button>\n <Close asChild>\n <SkipButton onClick={onSkip}>\n Skip tour\n <StyledIcon icon=\"arrowright\" />\n </SkipButton>\n </Close>\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 \"../../components/Icons/StorybookLogo\";\nimport { ModalContentWrapper } from \"../WelcomeModal/WelcomeModal.styled\";\n\nexport function WriteStoriesModal({ onFinish }: { onFinish: () => void }) {\n return (\n <Modal width=\"540px\" 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().queryParams.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,15 +1,14 @@
1
1
  import n, { lazy, Suspense, useState, useCallback, useEffect } from 'react';
2
- import ut from 'react-confetti';
2
+ import go from 'react-confetti';
3
3
  import { ThemeProvider, ensure, themes, styled, keyframes, css } from '@storybook/theming';
4
- import Ut, { createPortal } from 'react-dom';
5
- import kt, { STATUS } from 'react-joyride';
4
+ import Yo, { createPortal } from 'react-dom';
5
+ import Po, { STATUS } from 'react-joyride';
6
6
  import { CURRENT_STORY_WAS_SET, STORY_CHANGED, STORY_ARGS_UPDATED } from '@storybook/core-events';
7
- import * as C from '@radix-ui/react-dialog';
8
- import { Overlay, Content, Title, Description, Close } from '@radix-ui/react-dialog';
7
+ import * as d from '@radix-ui/react-dialog';
9
8
  import { Icons } from '@storybook/components';
10
9
  import { addons } from '@storybook/manager-api';
11
10
 
12
- var ft=Object.defineProperty;var p=(t,o)=>()=>(t&&(o=t(t=0)),o);var mt=(t,o)=>{for(var e in o)ft(t,e,{get:o[e],enumerable:!0});};function z({targetSelector:t}){return useEffect(()=>{let o=document.querySelector(t);if(o){o.style.animation="pulsate 3s infinite",o.style.transformOrigin="center",o.style.animationTimingFunction="ease-in-out";let e=`
11
+ var mo=Object.defineProperty;var p=(o,t)=>()=>(o&&(t=o(o=0)),t);var uo=(o,t)=>{for(var e in t)mo(o,e,{get:t[e],enumerable:!0});};function z({targetSelector:o}){return useEffect(()=>{let t=document.querySelector(o);if(t){t.style.animation="pulsate 3s infinite",t.style.transformOrigin="center",t.style.animationTimingFunction="ease-in-out";let e=`
13
12
  @keyframes pulsate {
14
13
  0% {
15
14
  box-shadow: 0 0 0 0 rgba(2, 156, 253, 0.7), 0 0 0 0 rgba(2, 156, 253, 0.4);
@@ -21,25 +20,25 @@ var ft=Object.defineProperty;var p=(t,o)=>()=>(t&&(o=t(t=0)),o);var mt=(t,o)=>{f
21
20
  box-shadow: 0 0 0 0 rgba(2, 156, 253, 0), 0 0 0 0 rgba(2, 156, 253, 0);
22
21
  }
23
22
  }
24
- `,r=document.createElement("style");r.id="sb-onboarding-pulsating-effect",r.innerHTML=e,document.head.appendChild(r);}return ()=>{document.querySelector("#sb-onboarding-pulsating-effect")?.remove();}},[t]),null}var j=p(()=>{});function g({top:t=0,left:o=0,width:e=window.innerWidth,height:r=window.innerHeight,...l}){let[i]=useState(()=>{let a=document.createElement("div");return a.setAttribute("id","confetti-container"),a.setAttribute("style","position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 9999;"),a});return useEffect(()=>(document.body.appendChild(i),()=>{document.body.removeChild(i);}),[]),createPortal(n.createElement(xt,{top:t,left:o,width:e,height:r},n.createElement(ut,{...l})),i)}var xt,T=p(()=>{xt=styled.div(({width:t,height:o,left:e,top:r})=>({width:`${t}px`,height:`${o}px`,left:`${e}px`,top:`${r}px`,position:"relative",overflow:"hidden"}));});var U,_,$,G=p(()=>{U=styled.div`
23
+ `,r=document.createElement("style");r.id="sb-onboarding-pulsating-effect",r.innerHTML=e,document.head.appendChild(r);}return ()=>{document.querySelector("#sb-onboarding-pulsating-effect")?.remove();}},[o]),null}var j=p(()=>{});function b({top:o=0,left:t=0,width:e=window.innerWidth,height:r=window.innerHeight,...l}){let[i]=useState(()=>{let a=document.createElement("div");return a.setAttribute("id","confetti-container"),a.setAttribute("style","position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 9999;"),a});return useEffect(()=>(document.body.appendChild(i),()=>{document.body.removeChild(i);}),[]),createPortal(n.createElement(Co,{top:o,left:t,width:e,height:r},n.createElement(go,{...l})),i)}var Co,v=p(()=>{Co=styled.div(({width:o,height:t,left:e,top:r})=>({width:`${o}px`,height:`${t}px`,left:`${e}px`,top:`${r}px`,position:"relative",overflow:"hidden"}));});var $,U,_,G=p(()=>{$=styled.div`
25
24
  display: flex;
26
25
  flex-direction: column;
27
26
  align-items: flex-start;
28
- `,_=styled.strong`
27
+ `,U=styled.strong`
29
28
  font-size: 13px;
30
- `,$=styled.p`
29
+ `,_=styled.p`
31
30
  font-size: 13px;
32
31
  text-align: start;
33
32
  color: #798186;
34
33
  margin: 0;
35
34
  margin-top: 4px;
36
- `;});function c({prefix:t,title:o,body:e}){return n.createElement(U,null,t,n.createElement(_,null,o),n.createElement($,null,e))}var K=p(()=>{G();});function b(t){let o={...D,...t.style||{}};return n.createElement("button",{type:"button",...t,style:o})}var D,h=p(()=>{D={border:0,cursor:"pointer",fontSize:13,lineHeight:1,padding:"9px 12px",backgroundColor:"#029CFD",borderRadius:4,color:"#fff",fontWeight:700};});function V({api:t,isFinalStep:o,onFirstTourDone:e}){let[r,l]=useState();return useEffect(()=>{t.on(STORY_ARGS_UPDATED,()=>{O=O+1,O===2&&l(3);});},[]),n.createElement(kt,{steps:o?[{target:"#configure-your-project--docs",content:n.createElement(c,{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:n.createElement(c,{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:n.createElement(c,{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:n.createElement(n.Fragment,null,n.createElement(c,{title:"Interactive story playground",body:n.createElement(n.Fragment,null,"See how a story renders with different data and state without touching code.",n.createElement("br",null),"Try it out by pressing this button.")}),n.createElement(z,{targetSelector:"#control-primary"})),placement:"right",spotlightClicks:!0,floaterProps:{target:"#control-primary"},styles:{buttonNext:{display:"none"}}},{target:"#control-primary",content:n.createElement(n.Fragment,null,n.createElement(g,{numberOfPieces:100}),n.createElement(c,{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:a=>{!o&&a.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:{...D,marginTop:5},tooltipContent:{paddingTop:4,padding:0},options:{zIndex:1e4,primaryColor:"#029CFD"}}})}var O,Z=p(()=>{j();T();K();h();O=0;});var q,Bt,J,X,Q,R,tt=p(()=>{q=styled(Overlay)`
37
- background-color: rgba(0, 0, 0, 0.25);
35
+ `;});function c({prefix:o,title:t,body:e}){return n.createElement($,null,o,n.createElement(U,null,t),n.createElement(_,null,e))}var K=p(()=>{G();});function h(o){let t={...O,...o.style||{}};return n.createElement("button",{type:"button",...o,style:t})}var O,x=p(()=>{O={border:0,cursor:"pointer",fontSize:13,lineHeight:1,padding:"9px 12px",backgroundColor:"#029CFD",borderRadius:4,color:"#fff",fontWeight:700};});function V({api:o,isFinalStep:t,onFirstTourDone:e}){let[r,l]=useState();return useEffect(()=>{o.on(STORY_ARGS_UPDATED,()=>{E=E+1,E===2&&l(3);});},[]),n.createElement(Po,{steps:t?[{target:"#configure-your-project--docs",content:n.createElement(c,{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:n.createElement(c,{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:n.createElement(c,{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:n.createElement(n.Fragment,null,n.createElement(c,{title:"Interactive story playground",body:n.createElement(n.Fragment,null,"See how a story renders with different data and state without touching code.",n.createElement("br",null),"Try it out by pressing this button.")}),n.createElement(z,{targetSelector:"#control-primary"})),placement:"right",spotlightClicks:!0,floaterProps:{target:"#control-primary"},styles:{buttonNext:{display:"none"}}},{target:"#control-primary",content:n.createElement(n.Fragment,null,n.createElement(b,{numberOfPieces:100}),n.createElement(c,{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:a=>{!t&&a.status===STATUS.FINISHED&&e();},floaterProps:{styles:{floater:{padding:0,paddingLeft:8,paddingTop:8,filter:"drop-shadow(0px 5px 5px rgba(0,0,0,0.05)) drop-shadow(0 1px 3px rgba(0,0,0,0.1))"}}},styles:{spotlight:{border:"solid 2px #004c7c"},tooltip:{maxWidth:260,borderRadius:4,padding:15},overlay:{backgroundColor:"rgba(0, 0, 0, 0.48)"},buttonNext:{...O,marginTop:5},tooltipContent:{paddingTop:4,padding:0},options:{zIndex:1e4,primaryColor:"#029CFD"}}})}var E,q=p(()=>{j();v();K();x();E=0;});var J,Wo,X,Q=p(()=>{J=styled(d.Overlay)`
36
+ background-color: rgba(27, 28, 29, 0.48);
38
37
  position: fixed;
39
38
  inset: 0px;
40
39
  width: 100%;
41
40
  height: 100%;
42
- })`,Bt=styled.div(({width:t})=>css`
41
+ `,Wo=styled.div(({width:o,height:t})=>css`
43
42
  background-color: white;
44
43
  border-radius: 6px;
45
44
  box-shadow: rgba(14, 18, 22, 0.35) 0px 10px 38px -10px;
@@ -47,20 +46,22 @@ var ft=Object.defineProperty;var p=(t,o)=>()=>(t&&(o=t(t=0)),o);var mt=(t,o)=>{f
47
46
  top: 50%;
48
47
  left: 50%;
49
48
  transform: translate(-50%, -50%);
50
- width: ${t??"calc(100% - 40px)"};
49
+ width: ${o??740}px;
50
+ height: ${t?`${t}px`:"auto"};
51
51
  max-width: calc(100% - 40px);
52
52
  max-height: 85vh;
53
- `),J=n.forwardRef(({width:t,children:o,...e},r)=>n.createElement(Content,{ref:r,asChild:!0,...e},n.createElement(Bt,{width:t},o))),X=styled(Title)`
54
- color: #000;
53
+ `),X=n.forwardRef(({width:o,height:t,children:e,...r},l)=>n.createElement(d.Content,{ref:l,asChild:!0,...r},n.createElement(Wo,{width:o,height:t},e)));});function w({children:o,width:t,height:e,onEscapeKeyDown:r,onInteractOutside:l=a=>a.preventDefault(),...i}){return n.createElement(d.Root,{...i},n.createElement(d.Portal,null,n.createElement(J,null),n.createElement(X,{width:t,height:e,onInteractOutside:l,onEscapeKeyDown:r},o({Title:d.Title,Description:d.Description,Close:d.Close}))))}var B=p(()=>{Q();});function k(){return n.createElement("svg",{width:"32px",height:"40px",viewBox:"0 0 256 319",preserveAspectRatio:"xMidYMid"},n.createElement("defs",null,n.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"})),n.createElement("g",null,n.createElement("mask",{id:"mask-2",fill:"white"},n.createElement("use",{xlinkHref:"#path-1"})),n.createElement("use",{fill:"#FF4785",fillRule:"nonzero",xlinkHref:"#path-1"}),n.createElement("path",{d:"M188.665358,39.126973 L190.191903,2.41148534 L220.883535,0 L222.205755,37.8634126 C222.251771,39.1811466 221.22084,40.2866846 219.903106,40.3327009 C219.338869,40.3524045 218.785907,40.1715096 218.342409,39.8221376 L206.506729,30.4984116 L192.493574,41.1282444 C191.443077,41.9251106 189.945493,41.7195021 189.148627,40.6690048 C188.813185,40.2267976 188.6423,39.6815326 188.665358,39.126973 Z M149.413703,119.980309 C149.413703,126.206975 191.355678,123.222696 196.986019,118.848893 C196.986019,76.4467826 174.234041,54.1651411 132.57133,54.1651411 C90.9086182,54.1651411 67.5656805,76.7934542 67.5656805,110.735941 C67.5656805,169.85244 147.345341,170.983856 147.345341,203.229219 C147.345341,212.280549 142.913138,217.654777 133.162291,217.654777 C120.456641,217.654777 115.433477,211.165914 116.024438,189.103298 C116.024438,184.317101 67.5656805,182.824962 66.0882793,189.103298 C62.3262146,242.56887 95.6363019,257.990394 133.753251,257.990394 C170.688279,257.990394 199.645341,238.303123 199.645341,202.663511 C199.645341,139.304202 118.683759,141.001326 118.683759,109.604526 C118.683759,96.8760922 128.139127,95.178968 133.753251,95.178968 C139.662855,95.178968 150.300143,96.2205679 149.413703,119.980309 Z",fill:"#FFFFFF",fillRule:"nonzero",mask:"url(#mask-2)"})))}var I=p(()=>{});var R,oo,Mo,P,to,eo,N=p(()=>{R=styled.h1`
54
+ color: #2e3438;
55
55
  font-weight: 700;
56
56
  font-size: 20px;
57
57
  line-height: 20px;
58
- `,Q=styled(Description)`
58
+ `,oo=styled.p`
59
+ text-align: center;
59
60
  font-size: 14px;
60
61
  font-weight: 400;
61
62
  line-height: 20px;
62
63
  color: #454e54;
63
- `,R=styled(Close)``;});function S({children:t,width:o,onEscapeKeyDown:e,onInteractOutside:r=i=>i.preventDefault(),...l}){return n.createElement(C.Root,{...l},n.createElement(C.Portal,null,n.createElement(q,null),n.createElement(J,{width:o,onInteractOutside:r,onEscapeKeyDown:e},t({Title:X,Description:Q,Close:R}))))}var M=p(()=>{tt();});function w(){return n.createElement("svg",{width:"32px",height:"40px",viewBox:"0 0 256 319",preserveAspectRatio:"xMidYMid"},n.createElement("defs",null,n.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"})),n.createElement("g",null,n.createElement("mask",{id:"mask-2",fill:"white"},n.createElement("use",{xlinkHref:"#path-1"})),n.createElement("use",{fill:"#FF4785",fillRule:"nonzero",xlinkHref:"#path-1"}),n.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=p(()=>{});var Lt,k,ot,et,N=p(()=>{Lt=keyframes`
64
+ `,Mo=keyframes`
64
65
  0% {
65
66
  background-position: 0% 50%;
66
67
  }
@@ -70,7 +71,7 @@ var ft=Object.defineProperty;var p=(t,o)=>()=>(t&&(o=t(t=0)),o);var mt=(t,o)=>{f
70
71
  100% {
71
72
  background-position: 0% 50%;
72
73
  }
73
- `,k=styled.div`
74
+ `,P=styled.div`
74
75
  background: radial-gradient(
75
76
  circle at left,
76
77
  #ffccd2,
@@ -111,17 +112,17 @@ var ft=Object.defineProperty;var p=(t,o)=>()=>(t&&(o=t(t=0)),o);var mt=(t,o)=>{f
111
112
  );
112
113
  background-size: 300% 300%;
113
114
  background-repeat: no-repeat;
114
- animation: ${Lt} 10s linear infinite;
115
+ animation: ${Mo} 10s linear infinite;
115
116
  border-radius: 5px;
116
117
  display: flex;
117
118
  flex-direction: column;
118
119
  align-items: center;
119
120
  padding-top: 100px;
120
121
  padding-bottom: 20px;
121
- `,ot=styled(Icons)`
122
+ `,to=styled(Icons)`
122
123
  margin-left: 2px;
123
124
  height: 10px;
124
- `,et=styled.button`
125
+ `,eo=styled.button`
125
126
  all: unset;
126
127
  margin-top: 90px;
127
128
  cursor: pointer;
@@ -130,6 +131,6 @@ var ft=Object.defineProperty;var p=(t,o)=>()=>(t&&(o=t(t=0)),o);var mt=(t,o)=>{f
130
131
  :focus-visible {
131
132
  outline: auto;
132
133
  }
133
- `;});var rt,nt=p(()=>{h();M();B();N();rt=({onSkip:t,onProceed:o})=>n.createElement(S,{width:"540px",defaultOpen:!0},({Title:e,Description:r,Close:l})=>n.createElement(k,{"data-chromatic":"ignore"},n.createElement(w,null),n.createElement(e,{style:{marginTop:20}},"Welcome to Storybook"),n.createElement(r,null,"Storybook helps you develop UI components.",n.createElement("br",null),"Learn the basics in a few simple steps."),n.createElement(b,{style:{marginTop:4},onClick:o},"Start your 3 minute tour"),n.createElement(l,{asChild:!0},n.createElement(et,{onClick:t},"Skip tour",n.createElement(ot,{icon:"arrowright"})))));});function it({onFinish:t}){return n.createElement(S,{width:"540px",defaultOpen:!0},({Title:o,Description:e})=>n.createElement(k,{"data-chromatic":"ignore"},n.createElement(w,null),n.createElement(o,{style:{marginTop:20}},"Create your first story (WORK IN PROGRESS)"),n.createElement(e,null,"Now it's your turn. ",n.createElement("br",null),"See how easy it is to create your first story by following these steps below."),n.createElement(b,{style:{marginTop:4},onClick:t},"Go to story")))}var st=p(()=>{h();M();B();N();});var at={};mt(at,{default:()=>lt});function lt({api:t}){let[o,e]=useState(!0),[r,l]=useState(!1),[i,a]=useState("1:Welcome"),Y=useCallback(()=>{let s=new URL(window.location.href);s.searchParams.delete("onboarding");let P=decodeURIComponent(s.searchParams.get("path"));s.search=`?path=${P}`,history.replaceState({},"",s.href),e(!1);},[e]);return useEffect(()=>{let s;return i==="4:VisitNewStory"&&(s=window.setTimeout(()=>{l(!0),a("5:ConfigureYourProject");},2e3)),()=>{clearTimeout(s);}},[i]),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=P=>{P==="configure-your-project--docs"&&Y();};return t.on(STORY_CHANGED,s),()=>{t.off(STORY_CHANGED,s);}},[]),o?n.createElement(ThemeProvider,{theme:Ht},r&&n.createElement(g,{numberOfPieces:1e3,initialVelocityY:3,recycle:!1,onConfettiComplete:s=>{s.reset(),l(!1);}}),i==="1:Welcome"&&n.createElement(rt,{onProceed:()=>{a("2:StorybookTour");},onSkip:Y}),(i==="2:StorybookTour"||i==="5:ConfigureYourProject")&&n.createElement(V,{api:t,isFinalStep:i==="5:ConfigureYourProject",onFirstTourDone:()=>{a("3:WriteYourStory");}}),i==="3:WriteYourStory"&&n.createElement(it,{onFinish:()=>{a("4:VisitNewStory");}})):null}var Ht,dt=p(()=>{Z();nt();st();T();Ht=ensure(themes.light);});var Kt=lazy(()=>Promise.resolve().then(()=>(dt(),at)));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),Ut.render(n.createElement(Suspense,{fallback:n.createElement("div",null,"Loading...")},n.createElement(Kt,{api:t})),r);}});
134
+ `;});var ro,no=p(()=>{x();B();I();N();ro=({onSkip:o,onProceed:t})=>n.createElement(w,{width:"540px",defaultOpen:!0},({Close:e})=>n.createElement(P,{"data-chromatic":"ignore"},n.createElement(k,null),n.createElement(R,{style:{marginTop:20}},"Welcome to Storybook"),n.createElement(oo,null,"Storybook helps you develop UI components.",n.createElement("br",null),"Learn the basics in a few simple steps."),n.createElement(h,{style:{marginTop:4},onClick:t},"Start your 3 minute tour"),n.createElement(e,{asChild:!0},n.createElement(eo,{onClick:o},"Skip tour",n.createElement(to,{icon:"arrowright"})))));});function io({onFinish:o}){return n.createElement(w,{width:"540px",defaultOpen:!0},({Title:t,Description:e})=>n.createElement(P,{"data-chromatic":"ignore"},n.createElement(k,null),n.createElement(t,{style:{marginTop:20}},"Create your first story (WORK IN PROGRESS)"),n.createElement(e,null,"Now it's your turn. ",n.createElement("br",null),"See how easy it is to create your first story by following these steps below."),n.createElement(h,{style:{marginTop:4},onClick:o},"Go to story")))}var so=p(()=>{x();B();I();N();});var lo={};uo(lo,{default:()=>ao});function ao({api:o}){let[t,e]=useState(!0),[r,l]=useState(!1),[i,a]=useState("1:Welcome"),Y=useCallback(()=>{let s=new URL(window.location.href);s.searchParams.delete("onboarding");let T=decodeURIComponent(s.searchParams.get("path"));s.search=`?path=${T}`,history.replaceState({},"",s.href),e(!1);},[e]);return useEffect(()=>{let s;return i==="4:VisitNewStory"&&(s=window.setTimeout(()=>{l(!0),a("5:ConfigureYourProject");},2e3)),()=>{clearTimeout(s);}},[i]),useEffect(()=>{o.once(CURRENT_STORY_WAS_SET,({storyId:s})=>{s!=="example-button--primary"&&o.selectStory("example-button--primary",void 0,{ref:void 0}),o.togglePanel(!0),o.togglePanelPosition("bottom"),o.setSelectedPanel("addon-controls");});},[]),useEffect(()=>{let s=T=>{T==="configure-your-project--docs"&&Y();};return o.on(STORY_CHANGED,s),()=>{o.off(STORY_CHANGED,s);}},[]),t?n.createElement(ThemeProvider,{theme:Fo},r&&n.createElement(b,{numberOfPieces:1e3,initialVelocityY:3,recycle:!1,onConfettiComplete:s=>{s.reset(),l(!1);}}),i==="1:Welcome"&&n.createElement(ro,{onProceed:()=>{a("2:StorybookTour");},onSkip:Y}),(i==="2:StorybookTour"||i==="5:ConfigureYourProject")&&n.createElement(V,{api:o,isFinalStep:i==="5:ConfigureYourProject",onFirstTourDone:()=>{a("3:WriteYourStory");}}),i==="3:WriteYourStory"&&n.createElement(io,{onFinish:()=>{a("4:VisitNewStory");}})):null}var Fo,fo=p(()=>{q();no();so();v();Fo=ensure(themes.light);});var $o=lazy(()=>Promise.resolve().then(()=>(fo(),lo)));addons.register("@storybook/addon-onboarding",async o=>{if(!o.getUrlState().queryParams.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),Yo.render(n.createElement(Suspense,{fallback:n.createElement("div",null,"Loading...")},n.createElement($o,{api:o})),r);}});
134
135
  //# sourceMappingURL=out.js.map
135
136
  //# 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/components/Button/Button.tsx","../src/features/GuidedTour/GuidedTour.tsx","../src/components/Modal/Modal.styled.tsx","../src/components/Modal/Modal.tsx","../src/components/Icons/StorybookLogo.tsx","../src/features/WelcomeModal/WelcomeModal.styled.tsx","../src/features/WelcomeModal/WelcomeModal.tsx","../src/features/WriteStoriesModal/WriteStoriesModal.tsx","../src/App.tsx","../src/manager.tsx"],"names":["useEffect","PulsatingEffect","targetSelector","element","keyframes","style","init_PulsatingEffect","__esmMin","ReactConfetti","React","styled","createPortal","useState","Confetti","top","left","width","height","confettiProps","confettiContainer","container","Wrapper","init_Confetti","Title","Body","init_TitleBody_styled","TitleBody","prefix","title","body","init_TitleBody","Button","props","buttonStyles","init_Button","Joyride","STATUS","STORY_ARGS_UPDATED","GuidedTour","api","isFinalStep","onFirstTourDone","stepIndex","setStepIndex","INTERACTIONS_COUNT","data","init_GuidedTour","css","Overlay","Content","Description","Close","StyledOverlay","StyledContent","ContentWrapper","StyledTitle","StyledDescription","StyledClose","init_Modal_styled","children","contentProps","ref","Dialog","Modal","onEscapeKeyDown","onInteractOutside","ev","rootProps","init_Modal","StorybookLogo","init_StorybookLogo","Icons","rainbowAnimation","ModalContentWrapper","StyledIcon","SkipButton","init_WelcomeModal_styled","WelcomeModal","init_WelcomeModal","onSkip","onProceed","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","theme","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 React from \"react\";\n\nexport const buttonStyles: React.ComponentProps<\"button\">[\"style\"] = {\n border: 0,\n cursor: \"pointer\",\n fontSize: 13,\n lineHeight: 1,\n padding: \"9px 12px\",\n backgroundColor: \"#029CFD\",\n borderRadius: 4,\n color: \"#fff\",\n fontWeight: 700,\n};\n\nexport function Button(props: React.ComponentProps<\"button\">) {\n const style = {\n ...buttonStyles,\n ...(props.style || {}),\n };\n\n return <button type=\"button\" {...props} style={style} />;\n}\n","import React, { useEffect, useState } from \"react\";\nimport Joyride, { CallBackProps, STATUS, Step } from \"react-joyride\";\n\nimport { PulsatingEffect } from \"../../components/PulsatingEffect/PulsatingEffect\";\nimport { Confetti } from \"../../components/Confetti/Confetti\";\nimport { TitleBody } from \"../../components/TitleBody/TitleBody\";\nimport { API } from \"@storybook/manager-api\";\nimport { STORY_ARGS_UPDATED } from \"@storybook/core-events\";\nimport { buttonStyles } from \"src/components/Button/Button\";\n\nlet INTERACTIONS_COUNT = 0;\n\nexport function GuidedTour({\n api,\n isFinalStep,\n onFirstTourDone,\n}: {\n api: API;\n isFinalStep?: boolean;\n onFirstTourDone: () => void;\n}) {\n const [stepIndex, setStepIndex] = useState<number>();\n\n useEffect(() => {\n api.on(STORY_ARGS_UPDATED, () => {\n INTERACTIONS_COUNT = INTERACTIONS_COUNT + 1;\n if (INTERACTIONS_COUNT === 2) {\n setStepIndex(3);\n }\n });\n }, []);\n\n const steps: Step[] = isFinalStep\n ? [\n {\n target: \"#configure-your-project--docs\",\n content: (\n <TitleBody\n title=\"Continue setting up your project\"\n body=\"You nailed the basics. Now get started writing stories for your own components.\"\n />\n ),\n placement: \"right\",\n disableOverlay: true,\n disableBeacon: true,\n styles: {\n buttonNext: {\n display: \"none\",\n },\n },\n floaterProps: {\n disableAnimation: true,\n },\n },\n ]\n : [\n {\n target: \"#storybook-explorer-tree > div\",\n content: (\n <TitleBody\n title=\"Storybook is built from stories\"\n body=\"Storybook uses stories to represent the key states supported by each of your components. For example: this Button component has four stories.\"\n />\n ),\n placement: \"right\",\n disableBeacon: true,\n styles: {\n spotlight: {\n transform: 'translateY(30px)',\n },\n },\n floaterProps: {\n disableAnimation: true,\n },\n },\n {\n target: \"#storybook-preview-iframe\",\n content: (\n <TitleBody\n title=\"Storybook previews are interactive\"\n body=\"Whenever you modify code or stories, Storybook automatically updates how it previews your components.\"\n />\n ),\n placement: \"bottom\",\n },\n {\n target: \"#root div[role=main]\",\n content: (\n <>\n <TitleBody\n title=\"Interactive story playground\"\n body={\n <>\n See how a story renders with different data and state\n without touching code.\n <br />\n Try it out by pressing this button.\n </>\n }\n />\n <PulsatingEffect targetSelector=\"#control-primary\" />\n </>\n ),\n placement: \"right\",\n spotlightClicks: true,\n floaterProps: {\n target: \"#control-primary\",\n },\n styles: {\n buttonNext: {\n display: \"none\",\n },\n },\n },\n {\n target: \"#control-primary\",\n content: (\n <>\n <Confetti numberOfPieces={100} />\n <TitleBody\n title=\"Congratulations!\"\n body=\"You've learned how to control your stories interactively. Now: let's explore how to write your first story.\"\n />\n </>\n ),\n placement: \"right\",\n disableOverlay: true,\n locale: {\n last: \"Next\",\n },\n },\n ];\n\n return (\n <Joyride\n steps={steps}\n continuous\n stepIndex={stepIndex}\n spotlightPadding={0}\n hideBackButton\n disableCloseOnEsc\n disableOverlayClose\n disableScrolling\n hideCloseButton\n callback={(data: CallBackProps) => {\n if (!isFinalStep && data.status === STATUS.FINISHED) {\n onFirstTourDone();\n }\n }}\n floaterProps={{\n styles: {\n floater: {\n padding: 0,\n paddingLeft: 8,\n paddingTop: 8,\n filter:\n \"drop-shadow(0px 5px 5px rgba(0,0,0,0.05)) drop-shadow(0 1px 3px rgba(0,0,0,0.1))\",\n },\n },\n }}\n styles={{\n spotlight: {\n border: \"solid 2px #004c7c\",\n },\n tooltip: {\n maxWidth: 260,\n borderRadius: 4,\n padding: 15,\n },\n overlay: {\n backgroundColor: \"rgba(0, 0, 0, 0.48)\",\n },\n buttonNext: {\n ...buttonStyles,\n marginTop: 5,\n },\n tooltipContent: {\n paddingTop: 4,\n padding: 0,\n },\n options: {\n zIndex: 10000,\n primaryColor: \"#029CFD\",\n },\n }}\n />\n );\n}\n","import { css, styled } from \"@storybook/theming\";\nimport {\n Overlay,\n Content,\n Title,\n Description,\n Close,\n} from \"@radix-ui/react-dialog\";\nimport React from \"react\";\n\nexport const StyledOverlay = styled(Overlay)`\n background-color: rgba(0, 0, 0, 0.25);\n position: fixed;\n inset: 0px;\n width: 100%;\n height: 100%;\n})`;\n\nexport const StyledContent = styled.div<{ width: string }>(\n ({ width }) => 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 ?? \"calc(100% - 40px)\"};\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 Content>\n>(({ width, children, ...contentProps }, ref) => (\n <Content ref={ref} asChild {...contentProps}>\n <StyledContent width={width}>{children}</StyledContent>\n </Content>\n));\n\nexport const StyledTitle = styled(Title)`\n color: #000;\n font-weight: 700;\n font-size: 20px;\n line-height: 20px;\n`;\nexport const StyledDescription = styled(Description)`\n font-size: 14px;\n font-weight: 400;\n line-height: 20px;\n color: #454e54;\n`;\n\nexport const StyledClose = styled(Close)``;\n","import React from \"react\";\n\nimport * as Dialog from \"@radix-ui/react-dialog\";\nimport {\n ContentWrapper,\n StyledClose,\n StyledDescription,\n StyledOverlay,\n StyledTitle,\n} from \"./Modal.styled\";\n\ntype ContentProps = React.ComponentProps<typeof ContentWrapper>;\n\ninterface ModalProps\n extends Omit<React.ComponentProps<typeof Dialog.Root>, \"children\"> {\n width?: string;\n children: (props: {\n Title: typeof StyledTitle;\n Description: typeof StyledDescription;\n Close: typeof StyledClose;\n }) => React.ReactNode;\n onEscapeKeyDown?: ContentProps[\"onEscapeKeyDown\"];\n onInteractOutside?: ContentProps[\"onInteractOutside\"];\n}\n\nexport function Modal({\n children,\n width,\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 onInteractOutside={onInteractOutside}\n onEscapeKeyDown={onEscapeKeyDown}\n >\n {children({\n Title: StyledTitle,\n Description: StyledDescription,\n Close: StyledClose,\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 rainbowAnimation = keyframes`\n 0% {\n background-position: 0% 50%;\n }\n 50% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n`;\n\nexport const ModalContentWrapper = styled.div`\n background: radial-gradient(\n circle at left,\n #ffccd2,\n #ffdbcb,\n #ffe9c5,\n #fff8c0,\n #f2ffd8,\n #d2f8e5,\n #b3f0f1,\n #a1e6f0,\n #9fd8df\n )\n left,\n radial-gradient(\n circle at right,\n #ffccd2,\n #ffdbcb,\n #ffe9c5,\n #fff8c0,\n #f2ffd8,\n #d2f8e5,\n #b3f0f1,\n #a1e6f0,\n #9fd8df\n )\n right,\n linear-gradient(\n 45deg,\n #ffccd2,\n #ffdbcb,\n #ffe9c5,\n #fff8c0,\n #f2ffd8,\n #d2f8e5,\n #b3f0f1,\n #a1e6f0,\n #9fd8df\n );\n background-size: 300% 300%;\n background-repeat: no-repeat;\n animation: ${rainbowAnimation} 10s linear infinite;\n border-radius: 5px;\n display: flex;\n flex-direction: column;\n align-items: center;\n padding-top: 100px;\n padding-bottom: 20px;\n`;\n\nexport const StyledIcon = styled(Icons)`\n margin-left: 2px;\n height: 10px;\n`;\n\nexport const SkipButton = styled.button`\n all: unset;\n margin-top: 90px;\n cursor: pointer;\n font-size: 13px;\n color: #798186;\n :focus-visible {\n outline: auto;\n }\n`;\n","import React from \"react\";\n\nimport { Button } from \"../../components/Button/Button\";\nimport { Modal } from \"../../components/Modal/Modal\";\nimport { StorybookLogo } from \"../../components/Icons/StorybookLogo\";\nimport {\n ModalContentWrapper,\n SkipButton,\n StyledIcon,\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=\"540px\" defaultOpen>\n {({ Title, Description, Close }) => (\n <ModalContentWrapper data-chromatic=\"ignore\">\n <StorybookLogo />\n <Title style={{ marginTop: 20 }}>Welcome to Storybook</Title>\n <Description>\n Storybook helps you develop UI components.\n <br />\n Learn the basics in a few simple steps.\n </Description>\n <Button style={{ marginTop: 4 }} onClick={onProceed}>\n Start your 3 minute tour\n </Button>\n <Close asChild>\n <SkipButton onClick={onSkip}>\n Skip tour\n <StyledIcon icon=\"arrowright\" />\n </SkipButton>\n </Close>\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 \"../../components/Icons/StorybookLogo\";\nimport { ModalContentWrapper } from \"../WelcomeModal/WelcomeModal.styled\";\n\nexport function WriteStoriesModal({ onFinish }: { onFinish: () => void }) {\n return (\n <Modal width=\"540px\" defaultOpen>\n {({ Title, Description }) => (\n <ModalContentWrapper data-chromatic=\"ignore\">\n <StorybookLogo />\n <Title style={{ marginTop: 20 }}>\n Create your first story (WORK IN PROGRESS)\n </Title>\n <Description>\n Now it's your turn. <br />\n See how easy it is to create your first story by following these\n steps below.\n </Description>\n <Button style={{ marginTop: 4 }} onClick={onFinish}>\n Go to story\n </Button>\n </ModalContentWrapper>\n )}\n </Modal>\n );\n}\n","import React, { useCallback, useEffect, useState } from \"react\";\nimport { ThemeProvider, ensure, themes } from \"@storybook/theming\";\nimport { STORY_CHANGED, CURRENT_STORY_WAS_SET } from \"@storybook/core-events\";\nimport { type API } from \"@storybook/manager-api\";\n\nimport { GuidedTour } from \"./features/GuidedTour/GuidedTour\";\nimport { WelcomeModal } from \"./features/WelcomeModal/WelcomeModal\";\nimport { WriteStoriesModal } from \"./features/WriteStoriesModal/WriteStoriesModal\";\nimport { Confetti } from \"./components/Confetti/Confetti\";\n\ntype Step =\n | \"1:Welcome\"\n | \"2:StorybookTour\"\n | \"3:WriteYourStory\"\n | \"4:VisitNewStory\"\n | \"5:ConfigureYourProject\";\n\nconst theme = ensure(themes.light);\n\nexport default function App({ api }: { api: API }) {\n const [enabled, setEnabled] = useState(true);\n const [showConfetti, setShowConfetti] = useState(false);\n const [step, setStep] = useState<Step>(\"1:Welcome\");\n\n const skipTour = useCallback(() => {\n // remove onboarding query parameter from current url\n const url = new URL(window.location.href);\n url.searchParams.delete(\"onboarding\");\n const path = decodeURIComponent(url.searchParams.get(\"path\"));\n url.search = `?path=${path}`;\n history.replaceState({}, \"\", url.href);\n setEnabled(false);\n }, [setEnabled]);\n\n useEffect(() => {\n let stepTimeout: number;\n if (step === \"4:VisitNewStory\") {\n stepTimeout = window.setTimeout(() => {\n setShowConfetti(true);\n setStep(\"5:ConfigureYourProject\");\n }, 2000);\n }\n\n return () => {\n clearTimeout(stepTimeout);\n };\n }, [step]);\n\n useEffect(() => {\n api.once(CURRENT_STORY_WAS_SET, ({ storyId }) => {\n // make sure the initial state is set correctly:\n // 1. Selected story is primary button\n // 2. The addon panel is opened, in the bottom and the controls tab is selected\n if (storyId !== \"example-button--primary\") {\n api.selectStory(\"example-button--primary\", undefined, {\n ref: undefined,\n });\n }\n api.togglePanel(true);\n api.togglePanelPosition(\"bottom\");\n api.setSelectedPanel(\"addon-controls\");\n });\n }, []);\n\n useEffect(() => {\n const onStoryChanged = (storyId: string) => {\n if (storyId === \"configure-your-project--docs\") {\n skipTour();\n }\n };\n\n api.on(STORY_CHANGED, onStoryChanged);\n\n return () => {\n api.off(STORY_CHANGED, onStoryChanged);\n };\n }, []);\n\n if (!enabled) {\n return null;\n }\n\n return (\n <ThemeProvider theme={theme}>\n {showConfetti && (\n <Confetti\n numberOfPieces={1000}\n initialVelocityY={3}\n recycle={false}\n onConfettiComplete={(confetti) => {\n confetti.reset();\n setShowConfetti(false);\n }}\n />\n )}\n {step === \"1:Welcome\" && (\n <WelcomeModal\n onProceed={() => {\n setStep(\"2:StorybookTour\");\n }}\n onSkip={skipTour}\n />\n )}\n {(step === \"2:StorybookTour\" || step === \"5:ConfigureYourProject\") && (\n <GuidedTour\n api={api}\n isFinalStep={step === \"5:ConfigureYourProject\"}\n onFirstTourDone={() => {\n setStep(\"3:WriteYourStory\");\n }}\n />\n )}\n {step === \"3:WriteYourStory\" && (\n <WriteStoriesModal\n onFinish={() => {\n // TODO: enable this\n // api.selectStory(\"example-button--warning\");\n setStep(\"4:VisitNewStory\");\n }}\n />\n )}\n </ThemeProvider>\n );\n}\n","import ReactDOM from \"react-dom\";\nimport React, { lazy, Suspense } from \"react\";\nimport { addons } from \"@storybook/manager-api\";\n\nconst App = lazy(() => import(\"./App\"));\n\n// The addon is enabled only when:\n// 1. The onboarding query parameter is present\n// 2. The example button stories are present\naddons.register(\"@storybook/addon-onboarding\", async (api) => {\n const isOnboarding = api.getUrlState().path === '/onboarding';\n\n if (!isOnboarding) {\n return;\n }\n\n let hasButtonStories = false;\n try {\n const response = await fetch(\"./index.json\");\n const index = await response.json();\n hasButtonStories = !!index.entries[\"example-button--primary\"];\n } catch (e) {}\n\n if (hasButtonStories) {\n // Add a new DOM element to document.body, where we will bootstrap our React app\n const domNode = document.createElement(\"div\");\n\n domNode.id = \"addon-onboarding\";\n // Append the new DOM element to document.body\n document.body.appendChild(domNode);\n\n // Render the React app\n ReactDOM.render(\n <Suspense fallback={<div>Loading...</div>}>\n <App api={api} />\n </Suspense>,\n domNode\n );\n }\n});\n"]}
1
+ {"version":3,"sources":["../src/components/PulsatingEffect/PulsatingEffect.tsx","../src/components/Confetti/Confetti.tsx","../src/components/TitleBody/TitleBody.styled.tsx","../src/components/TitleBody/TitleBody.tsx","../src/components/Button/Button.tsx","../src/features/GuidedTour/GuidedTour.tsx","../src/components/Modal/Modal.styled.tsx","../src/components/Modal/Modal.tsx","../src/components/Icons/StorybookLogo.tsx","../src/features/WelcomeModal/WelcomeModal.styled.tsx","../src/features/WelcomeModal/WelcomeModal.tsx","../src/features/WriteStoriesModal/WriteStoriesModal.tsx","../src/App.tsx","../src/manager.tsx"],"names":["useEffect","PulsatingEffect","targetSelector","element","keyframes","style","init_PulsatingEffect","__esmMin","ReactConfetti","React","styled","createPortal","useState","Confetti","top","left","width","height","confettiProps","confettiContainer","container","Wrapper","init_Confetti","Title","Body","init_TitleBody_styled","TitleBody","prefix","title","body","init_TitleBody","Button","props","buttonStyles","init_Button","Joyride","STATUS","STORY_ARGS_UPDATED","GuidedTour","api","isFinalStep","onFirstTourDone","stepIndex","setStepIndex","INTERACTIONS_COUNT","data","init_GuidedTour","css","Dialog","StyledOverlay","StyledContent","ContentWrapper","init_Modal_styled","children","contentProps","ref","Modal","onEscapeKeyDown","onInteractOutside","ev","rootProps","init_Modal","StorybookLogo","init_StorybookLogo","Icons","Description","rainbowAnimation","ModalContentWrapper","StyledIcon","SkipButton","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","theme","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 React from \"react\";\n\nexport const buttonStyles: React.ComponentProps<\"button\">[\"style\"] = {\n border: 0,\n cursor: \"pointer\",\n fontSize: 13,\n lineHeight: 1,\n padding: \"9px 12px\",\n backgroundColor: \"#029CFD\",\n borderRadius: 4,\n color: \"#fff\",\n fontWeight: 700,\n};\n\nexport function Button(props: React.ComponentProps<\"button\">) {\n const style = {\n ...buttonStyles,\n ...(props.style || {}),\n };\n\n return <button type=\"button\" {...props} style={style} />;\n}\n","import React, { useEffect, useState } from \"react\";\nimport Joyride, { CallBackProps, STATUS, Step } from \"react-joyride\";\n\nimport { PulsatingEffect } from \"../../components/PulsatingEffect/PulsatingEffect\";\nimport { Confetti } from \"../../components/Confetti/Confetti\";\nimport { TitleBody } from \"../../components/TitleBody/TitleBody\";\nimport { API } from \"@storybook/manager-api\";\nimport { STORY_ARGS_UPDATED } from \"@storybook/core-events\";\nimport { buttonStyles } from \"src/components/Button/Button\";\n\nlet INTERACTIONS_COUNT = 0;\n\nexport function GuidedTour({\n api,\n isFinalStep,\n onFirstTourDone,\n}: {\n api: API;\n isFinalStep?: boolean;\n onFirstTourDone: () => void;\n}) {\n const [stepIndex, setStepIndex] = useState<number>();\n\n useEffect(() => {\n api.on(STORY_ARGS_UPDATED, () => {\n INTERACTIONS_COUNT = INTERACTIONS_COUNT + 1;\n if (INTERACTIONS_COUNT === 2) {\n setStepIndex(3);\n }\n });\n }, []);\n\n const steps: Step[] = isFinalStep\n ? [\n {\n target: \"#configure-your-project--docs\",\n content: (\n <TitleBody\n title=\"Continue setting up your project\"\n body=\"You nailed the basics. Now get started writing stories for your own components.\"\n />\n ),\n placement: \"right\",\n disableOverlay: true,\n disableBeacon: true,\n styles: {\n buttonNext: {\n display: \"none\",\n },\n },\n floaterProps: {\n disableAnimation: true,\n },\n },\n ]\n : [\n {\n target: \"#storybook-explorer-tree > div\",\n content: (\n <TitleBody\n title=\"Storybook is built from stories\"\n body=\"Storybook uses stories to represent the key states supported by each of your components. For example: this Button component has four stories.\"\n />\n ),\n placement: \"right\",\n disableBeacon: true,\n styles: {\n spotlight: {\n transform: 'translateY(30px)',\n },\n },\n floaterProps: {\n disableAnimation: true,\n },\n },\n {\n target: \"#storybook-preview-iframe\",\n content: (\n <TitleBody\n title=\"Storybook previews are interactive\"\n body=\"Whenever you modify code or stories, Storybook automatically updates how it previews your components.\"\n />\n ),\n placement: \"bottom\",\n },\n {\n target: \"#root div[role=main]\",\n content: (\n <>\n <TitleBody\n title=\"Interactive story playground\"\n body={\n <>\n See how a story renders with different data and state\n without touching code.\n <br />\n Try it out by pressing this button.\n </>\n }\n />\n <PulsatingEffect targetSelector=\"#control-primary\" />\n </>\n ),\n placement: \"right\",\n spotlightClicks: true,\n floaterProps: {\n target: \"#control-primary\",\n },\n styles: {\n buttonNext: {\n display: \"none\",\n },\n },\n },\n {\n target: \"#control-primary\",\n content: (\n <>\n <Confetti numberOfPieces={100} />\n <TitleBody\n title=\"Congratulations!\"\n body=\"You've learned how to control your stories interactively. Now: let's explore how to write your first story.\"\n />\n </>\n ),\n placement: \"right\",\n disableOverlay: true,\n locale: {\n last: \"Next\",\n },\n },\n ];\n\n return (\n <Joyride\n steps={steps}\n continuous\n stepIndex={stepIndex}\n spotlightPadding={0}\n hideBackButton\n disableCloseOnEsc\n disableOverlayClose\n disableScrolling\n hideCloseButton\n callback={(data: CallBackProps) => {\n if (!isFinalStep && data.status === STATUS.FINISHED) {\n onFirstTourDone();\n }\n }}\n floaterProps={{\n styles: {\n floater: {\n padding: 0,\n paddingLeft: 8,\n paddingTop: 8,\n filter:\n \"drop-shadow(0px 5px 5px rgba(0,0,0,0.05)) drop-shadow(0 1px 3px rgba(0,0,0,0.1))\",\n },\n },\n }}\n styles={{\n spotlight: {\n border: \"solid 2px #004c7c\",\n },\n tooltip: {\n maxWidth: 260,\n borderRadius: 4,\n padding: 15,\n },\n overlay: {\n backgroundColor: \"rgba(0, 0, 0, 0.48)\",\n },\n buttonNext: {\n ...buttonStyles,\n marginTop: 5,\n },\n tooltipContent: {\n paddingTop: 4,\n padding: 0,\n },\n options: {\n zIndex: 10000,\n primaryColor: \"#029CFD\",\n },\n }}\n />\n );\n}\n","import { css, styled } from \"@storybook/theming\";\nimport * as Dialog from \"@radix-ui/react-dialog\";\nimport React from \"react\";\n\nexport const StyledOverlay = styled(Dialog.Overlay)`\n background-color: rgba(27, 28, 29, 0.48);\n position: fixed;\n inset: 0px;\n width: 100%;\n height: 100%;\n`;\n\nexport const StyledContent = styled.div<{ width: number; height: number }>(\n ({ width, height }) => css`\n background-color: white;\n border-radius: 6px;\n box-shadow: rgba(14, 18, 22, 0.35) 0px 10px 38px -10px;\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: ${width ?? 740}px;\n height: ${height ? `${height}px` : \"auto\"};\n max-width: calc(100% - 40px);\n max-height: 85vh;\n `\n);\n\nexport const ContentWrapper = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof StyledContent> &\n React.ComponentProps<typeof Dialog.Content>\n>(({ width, height, children, ...contentProps }, ref) => (\n <Dialog.Content ref={ref} asChild {...contentProps}>\n <StyledContent width={width} height={height}>\n {children}\n </StyledContent>\n </Dialog.Content>\n));\n","import React from \"react\";\nimport * as Dialog from \"@radix-ui/react-dialog\";\nimport { ContentWrapper, StyledOverlay } from \"./Modal.styled\";\n\ntype ContentProps = React.ComponentProps<typeof ContentWrapper>;\n\ninterface ModalProps\n extends Omit<React.ComponentProps<typeof Dialog.Root>, \"children\"> {\n width?: number;\n height?: number;\n children: (props: {\n Title: typeof Dialog.Title;\n Description: typeof Dialog.Description;\n Close: typeof Dialog.Close;\n }) => React.ReactNode;\n onEscapeKeyDown?: ContentProps[\"onEscapeKeyDown\"];\n onInteractOutside?: ContentProps[\"onInteractOutside\"];\n}\n\nexport function Modal({\n children,\n width,\n height,\n onEscapeKeyDown,\n onInteractOutside = (ev) => ev.preventDefault(),\n ...rootProps\n}: ModalProps) {\n return (\n <Dialog.Root {...rootProps}>\n <Dialog.Portal>\n <StyledOverlay />\n <ContentWrapper\n width={width}\n height={height}\n onInteractOutside={onInteractOutside}\n onEscapeKeyDown={onEscapeKeyDown}\n >\n {children({\n Title: Dialog.Title,\n Description: Dialog.Description,\n Close: Dialog.Close,\n })}\n </ContentWrapper>\n </Dialog.Portal>\n </Dialog.Root>\n );\n}\n","import React from \"react\";\n\nexport function StorybookLogo() {\n return (\n <svg\n width=\"32px\"\n height=\"40px\"\n viewBox=\"0 0 256 319\"\n preserveAspectRatio=\"xMidYMid\"\n >\n <defs>\n <path\n d=\"M9.87245893,293.324145 L0.0114611411,30.5732167 C-0.314208957,21.8955842 6.33948896,14.5413918 15.0063196,13.9997149 L238.494389,0.0317105427 C247.316188,-0.519651867 254.914637,6.18486163 255.466,15.0066607 C255.486773,15.339032 255.497167,15.6719708 255.497167,16.0049907 L255.497167,302.318596 C255.497167,311.157608 248.331732,318.323043 239.492719,318.323043 C239.253266,318.323043 239.013844,318.317669 238.774632,318.306926 L25.1475605,308.712253 C16.8276309,308.338578 10.1847994,301.646603 9.87245893,293.324145 L9.87245893,293.324145 Z\"\n id=\"path-1\"\n ></path>\n </defs>\n <g>\n <mask id=\"mask-2\" fill=\"white\">\n <use xlinkHref=\"#path-1\"></use>\n </mask>\n <use fill=\"#FF4785\" fillRule=\"nonzero\" xlinkHref=\"#path-1\"></use>\n <path\n d=\"M188.665358,39.126973 L190.191903,2.41148534 L220.883535,0 L222.205755,37.8634126 C222.251771,39.1811466 221.22084,40.2866846 219.903106,40.3327009 C219.338869,40.3524045 218.785907,40.1715096 218.342409,39.8221376 L206.506729,30.4984116 L192.493574,41.1282444 C191.443077,41.9251106 189.945493,41.7195021 189.148627,40.6690048 C188.813185,40.2267976 188.6423,39.6815326 188.665358,39.126973 Z M149.413703,119.980309 C149.413703,126.206975 191.355678,123.222696 196.986019,118.848893 C196.986019,76.4467826 174.234041,54.1651411 132.57133,54.1651411 C90.9086182,54.1651411 67.5656805,76.7934542 67.5656805,110.735941 C67.5656805,169.85244 147.345341,170.983856 147.345341,203.229219 C147.345341,212.280549 142.913138,217.654777 133.162291,217.654777 C120.456641,217.654777 115.433477,211.165914 116.024438,189.103298 C116.024438,184.317101 67.5656805,182.824962 66.0882793,189.103298 C62.3262146,242.56887 95.6363019,257.990394 133.753251,257.990394 C170.688279,257.990394 199.645341,238.303123 199.645341,202.663511 C199.645341,139.304202 118.683759,141.001326 118.683759,109.604526 C118.683759,96.8760922 128.139127,95.178968 133.753251,95.178968 C139.662855,95.178968 150.300143,96.2205679 149.413703,119.980309 Z\"\n fill=\"#FFFFFF\"\n fillRule=\"nonzero\"\n mask=\"url(#mask-2)\"\n ></path>\n </g>\n </svg>\n );\n}\n","import { Icons } from \"@storybook/components\";\nimport { keyframes, styled } from \"@storybook/theming\";\n\nexport const Title = styled.h1`\n color: #2e3438;\n font-weight: 700;\n font-size: 20px;\n line-height: 20px;\n`;\n\nexport const Description = styled.p`\n text-align: center;\n font-size: 14px;\n font-weight: 400;\n line-height: 20px;\n color: #454e54;\n`;\n\nexport const rainbowAnimation = keyframes`\n 0% {\n background-position: 0% 50%;\n }\n 50% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n`;\n\nexport const ModalContentWrapper = styled.div`\n background: radial-gradient(\n circle at left,\n #ffccd2,\n #ffdbcb,\n #ffe9c5,\n #fff8c0,\n #f2ffd8,\n #d2f8e5,\n #b3f0f1,\n #a1e6f0,\n #9fd8df\n )\n left,\n radial-gradient(\n circle at right,\n #ffccd2,\n #ffdbcb,\n #ffe9c5,\n #fff8c0,\n #f2ffd8,\n #d2f8e5,\n #b3f0f1,\n #a1e6f0,\n #9fd8df\n )\n right,\n linear-gradient(\n 45deg,\n #ffccd2,\n #ffdbcb,\n #ffe9c5,\n #fff8c0,\n #f2ffd8,\n #d2f8e5,\n #b3f0f1,\n #a1e6f0,\n #9fd8df\n );\n background-size: 300% 300%;\n background-repeat: no-repeat;\n animation: ${rainbowAnimation} 10s linear infinite;\n border-radius: 5px;\n display: flex;\n flex-direction: column;\n align-items: center;\n padding-top: 100px;\n padding-bottom: 20px;\n`;\n\nexport const StyledIcon = styled(Icons)`\n margin-left: 2px;\n height: 10px;\n`;\n\nexport const SkipButton = styled.button`\n all: unset;\n margin-top: 90px;\n cursor: pointer;\n font-size: 13px;\n color: #798186;\n :focus-visible {\n outline: auto;\n }\n`;\n","import React from \"react\";\n\nimport { Button } from \"../../components/Button/Button\";\nimport { Modal } from \"../../components/Modal/Modal\";\nimport { StorybookLogo } from \"../../components/Icons/StorybookLogo\";\nimport {\n ModalContentWrapper,\n SkipButton,\n StyledIcon,\n Title,\n Description,\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=\"540px\" defaultOpen>\n {({ Close }) => (\n <ModalContentWrapper data-chromatic=\"ignore\">\n <StorybookLogo />\n <Title style={{ marginTop: 20 }}>Welcome to Storybook</Title>\n <Description>\n Storybook helps you develop UI components.\n <br />\n Learn the basics in a few simple steps.\n </Description>\n <Button style={{ marginTop: 4 }} onClick={onProceed}>\n Start your 3 minute tour\n </Button>\n <Close asChild>\n <SkipButton onClick={onSkip}>\n Skip tour\n <StyledIcon icon=\"arrowright\" />\n </SkipButton>\n </Close>\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 \"../../components/Icons/StorybookLogo\";\nimport { ModalContentWrapper } from \"../WelcomeModal/WelcomeModal.styled\";\n\nexport function WriteStoriesModal({ onFinish }: { onFinish: () => void }) {\n return (\n <Modal width=\"540px\" 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().queryParams.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.14--canary.21.648a737.0",
3
+ "version": "0.0.14--canary.54dae24.0",
4
4
  "description": "Storybook Addon Onboarding - Introduces a new onboarding experience",
5
5
  "keywords": [
6
6
  "storybook-addons",