@storybook/manager-api 7.0.0-beta.5 → 7.0.0-beta.6
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/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +8 -8
package/dist/index.js
CHANGED
|
@@ -12,4 +12,4 @@ var jt=Object.create;var Q=Object.defineProperty;var Kt=Object.getOwnPropertyDes
|
|
|
12
12
|
it's possible a CORS error happened.
|
|
13
13
|
|
|
14
14
|
Please check your dev-tools network tab.
|
|
15
|
-
`});let I=u.versions&&Object.keys(u.versions).length?u.versions:S.versions;await p.setRef(i,{id:i,url:n,...S,...I?{versions:I}:{},type:S.storyIndex?"lazy":"auto-inject"})},getRefs:()=>{let{refs:u={}}=e.getState();return u},setRef:(u,{storyIndex:i,setStoriesData:n,...a},f=!1)=>{if(o)return;let{storyMapper:d=lt}=t.getConfig(),S=p.getRefs()[u],y;n?y=ot(ao(n,S,{storyMapper:d}),{provider:t,docsOptions:s}):i&&(y=G(i,{provider:t,docsOptions:s})),y&&(y=so(y,S)),p.updateRef(u,{stories:y,...a,ready:f})},updateRef:(u,i)=>{let{[u]:n,...a}=p.getRefs();a[u]={...n,...i};let f=Object.keys(r).reduce((d,S)=>(d[S]=a[S],d),{});e.setState({refs:f})}},c=!o&&Pe.default.REFS||{},r=c;return l&&Object.entries(c).forEach(([u,i])=>{p.checkRef({...i,stories:{}})}),{api:p,state:{refs:r}}};var w=(e,t)=>{let{source:o,refId:s,type:l}=e,[p,c]=Ae(o,s),r=s&&t.getRefs()[s]?t.getRefs()[s]:t.findRef(c),u={source:o,sourceType:p,sourceLocation:c,refId:s,ref:r,type:l};switch(!0){case typeof s=="string":case p==="local":case p==="external":return u;default:return ut.logger.warn(`Received a ${l} frame that was not configured as a ref`),null}};var{FEATURES:be,fetch:co}=dt.default,lo="./index.json",uo=["enableShortcuts","theme","showRoots"];function _e(e){if(!e||typeof e=="string")return e;let t={...e};return uo.forEach(o=>{o in t&&delete t[o]}),t}var po=({fullAPI:e,store:t,navigate:o,provider:s,storyId:l,viewMode:p,docsOptions:c={}})=>{let r={storyId:M.toId,getData:(i,n)=>{let a=r.resolveStory(i,n);if((a==null?void 0:a.type)==="story"||(a==null?void 0:a.type)==="docs")return a},isPrepared:(i,n)=>{let a=r.getData(i,n);return a.type==="story"?a.prepared:!0},resolveStory:(i,n)=>{let{refs:a,storiesHash:f}=t.getState();return n?a[n].stories?a[n].stories[i]:void 0:f?f[i]:void 0},getCurrentStoryData:()=>{let{storyId:i,refId:n}=t.getState();return r.getData(i,n)},getParameters:(i,n)=>{let{storyId:a,refId:f}=typeof i=="string"?{storyId:i,refId:void 0}:i,d=r.getData(a,f);if((d==null?void 0:d.type)==="story"){let{parameters:S}=d;if(S)return n?S[n]:S}return null},getCurrentParameter:i=>{let{storyId:n,refId:a}=t.getState();return r.getParameters({storyId:n,refId:a},i)||void 0},jumpToComponent:i=>{let{storiesHash:n,storyId:a,refs:f,refId:d}=t.getState();if(!r.getData(a,d))return;let y=d?f[d].stories||{}:n,m=r.findSiblingStoryId(a,y,i,!0);m&&r.selectStory(m,void 0,{ref:d})},jumpToStory:i=>{let{storiesHash:n,storyId:a,refs:f,refId:d}=t.getState(),S=r.getData(a,d);if(!S)return;let y=S.refId?f[S.refId].stories:n,m=r.findSiblingStoryId(a,y,i,!1);m&&r.selectStory(m,void 0,{ref:d})},selectFirstStory:()=>{let{storiesHash:i}=t.getState(),n=Object.keys(i).find(a=>i[a].type==="story");if(n){r.selectStory(n);return}o("/")},selectStory:(i=void 0,n=void 0,a={})=>{let{ref:f}=a,{storyId:d,storiesHash:S,refs:y}=t.getState(),m=f?y[f].stories:S,g=d==null?void 0:d.split("--",2)[0];if(n)if(i){let _=f?`${f}_${(0,M.toId)(i,n)}`:(0,M.toId)(i,n);if(m[_])r.selectStory(_,void 0,a);else{let I=m[(0,M.sanitize)(i)];if((I==null?void 0:I.type)==="component"){let P=I.children.find(v=>m[v].name===n);P&&r.selectStory(P,void 0,a)}}}else{let _=(0,M.toId)(g,n);r.selectStory(_,void 0,a)}else{let _=i?m[i]||m[(0,M.sanitize)(i)]:m[g];if(!_)throw new Error(`Unknown id or title: '${i}'`);let I=r.findLeafEntry(m,_.id),P=I.refId?`${I.refId}_${I.id}`:I.id;o(`/${I.type}/${P}`)}},findLeafEntry(i,n){let a=i[n];if(a.type==="docs"||a.type==="story")return a;let f=a.children[0];return r.findLeafEntry(i,f)},findLeafStoryId(i,n){var a;return(a=r.findLeafEntry(i,n))==null?void 0:a.id},findSiblingStoryId(i,n,a,f){if(f){let y=nt(n),m=y.findIndex(g=>g.includes(i));return m===y.length-1&&a>0||m===0&&a<0?void 0:y[m+a]?y[m+a][0]:void 0}let d=st(n),S=d.indexOf(i);if(!(S===d.length-1&&a>0)&&!(S===0&&a<0))return d[S+a]},updateStoryArgs:(i,n)=>{let{id:a,refId:f}=i;e.emit(A.UPDATE_STORY_ARGS,{storyId:a,updatedArgs:n,options:{target:f}})},resetStoryArgs:(i,n)=>{let{id:a,refId:f}=i;e.emit(A.RESET_STORY_ARGS,{storyId:a,argNames:n,options:{target:f}})},fetchIndex:async()=>{try{let i=await co(lo);if(i.status!==200)throw new Error(await i.text());let n=await i.json();if(n.v<3){pt.logger.warn(`Skipping story index with version v${n.v}, awaiting SET_STORIES.`);return}await e.setIndex(n)}catch(i){t.setState({storiesConfigured:!0,storiesFailed:i})}},setIndex:async i=>{let n=G(i,{provider:s,docsOptions:c}),a=t.getState().storiesHash;await t.setState({storiesHash:rt(n,a),storiesConfigured:!0,storiesFailed:null})},updateStory:async(i,n,a)=>{if(a){let{id:f,stories:d}=a;d[i]={...d[i],...n},await e.updateRef(f,{stories:d})}else{let{storiesHash:f}=t.getState();f[i]={...f[i],...n},await t.setState({storiesHash:f})}}};return{api:r,state:{storiesHash:{},storyId:l,viewMode:p,storiesConfigured:!1,hasCalledSetOptions:!1},init:async()=>{var i;e.on(A.STORY_SPECIFIED,function({storyId:a,viewMode:f}){let{sourceType:d}=w(this,e);if(!e.isSettingsScreenActive()&&d==="local"){let S=t.getState();(S.storyId!==a||S.viewMode!==f)&&o(`/${f}/${a}`)}}),e.on(A.STORY_CHANGED,function(){let{sourceType:a}=w(this,e);if(a==="local"){let f=e.getCurrentParameter("options");f&&e.setOptions(_e(f))}}),e.on(A.STORY_PREPARED,function({id:a,...f}){let{ref:d,sourceType:S}=w(this,e);if(e.updateStory(a,{...f,prepared:!0},d),d)e.updateRef(d.id,{ready:!0});else if(!t.getState().hasCalledSetOptions){let{options:y}=f.parameters;e.setOptions(_e(y)),t.setState({hasCalledSetOptions:!0})}if(S==="local"){let{storyId:y,storiesHash:m,refId:g}=t.getState(),_=Array.from(new Set([r.findSiblingStoryId(y,m,1,!0),r.findSiblingStoryId(y,m,-1,!0)])).filter(Boolean);e.emit(A.PRELOAD_ENTRIES,{ids:_,options:{target:g}})}}),e.on(A.SET_INDEX,function(a){let{ref:f}=w(this,e);if(f)e.setRef(f.id,{...f,storyIndex:a},!0);else{e.setIndex(a);let d=e.getCurrentParameter("options");e.setOptions(_e(d))}}),e.on(A.SET_STORIES,function(a){let{ref:f}=w(this,e),d=a.v?tt(a):a.stories;if(f)e.setRef(f.id,{...f,setStoriesData:d},!0);else throw new Error("Cannot call SET_STORIES for local frame")}),e.on(A.SELECT_STORY,function({kind:a,story:f,storyId:d,...S}){let{ref:y}=w(this,e);y?e.selectStory(d||a,f,{...S,ref:y.id}):e.selectStory(d||a,f,S)}),e.on(A.STORY_ARGS_UPDATED,function({storyId:a,args:f}){let{ref:d}=w(this,e);e.updateStory(a,{args:f},d)}),e.on(A.CONFIG_ERROR,function(a){t.setState({storiesConfigured:!0,storiesFailed:a})}),be!=null&&be.storyStoreV7&&((i=s.serverChannel)==null||i.on(A.STORY_INDEX_INVALIDATED,()=>e.fetchIndex()),await e.fetchIndex())}}};var J={};E(J,{ActiveTabs:()=>mt,focusableUIElements:()=>V,init:()=>So});var ft=b(require("global")),F=b(require("lodash/pick")),U=require("dequal"),St=require("@storybook/theming/create"),yt=require("@storybook/core-events");var{document:fo}=ft.default,mt={SIDEBAR:"sidebar",CANVAS:"canvas",ADDONS:"addons"},L={ui:{enableShortcuts:!0},layout:{initialActive:mt.CANVAS,showToolbar:!0,isFullscreen:!1,showPanel:!0,showNav:!0,panelPosition:"bottom",showTabs:!0},selectedPanel:void 0,theme:(0,St.create)()},V={storySearchField:"storybook-explorer-searchfield",storyListMenu:"storybook-explorer-menu",storyPanelRoot:"storybook-panel-root"},So=({store:e,provider:t,singleStory:o,fullAPI:s})=>{let l={toggleFullscreen(c){return e.setState(r=>{let{showNav:u}=r.layout,i=typeof c=="boolean"?c:!r.layout.isFullscreen,n=u===!1&&i===!1;return{layout:{...r.layout,isFullscreen:i,showNav:!o&&n?!0:u}}},{persistence:"session"})},togglePanel(c){return e.setState(r=>{let{showNav:u,isFullscreen:i}=r.layout,n=typeof c<"u"?c:!r.layout.showPanel,a=u===!1&&n===!1;return{layout:{...r.layout,showPanel:n,isFullscreen:a?!0:i}}},{persistence:"session"})},togglePanelPosition(c){return typeof c<"u"?e.setState(r=>({layout:{...r.layout,panelPosition:c}}),{persistence:"permanent"}):e.setState(r=>({layout:{...r.layout,panelPosition:r.layout.panelPosition==="right"?"bottom":"right"}}),{persistence:"permanent"})},toggleNav(c){return e.setState(r=>{if(o)return{layout:r.layout};let{showPanel:u,isFullscreen:i}=r.layout,n=typeof c<"u"?c:!r.layout.showNav,a=u===!1&&n===!1;return{layout:{...r.layout,showNav:n,isFullscreen:a?!0:!n&&i}}},{persistence:"session"})},toggleToolbar(c){return e.setState(r=>{let u=typeof c<"u"?c:!r.layout.showToolbar;return{layout:{...r.layout,showToolbar:u}}},{persistence:"session"})},resetLayout(){return e.setState(c=>({layout:{...c.layout,showNav:!1,showPanel:!1,isFullscreen:!1}}),{persistence:"session"})},focusOnUIElement(c,r){if(!c)return;let u=fo.getElementById(c);u&&(u.focus(),r&&u.select())},getInitialOptions(){let{theme:c,selectedPanel:r,...u}=t.getConfig();return{...L,layout:{...L.layout,...(0,F.default)(u,Object.keys(L.layout)),...o&&{showNav:!1}},ui:{...L.ui,...(0,F.default)(u,Object.keys(L.ui))},selectedPanel:r||L.selectedPanel,theme:c||L.theme}},setOptions:c=>{let{layout:r,ui:u,selectedPanel:i,theme:n}=e.getState();if(c){let a={...r,...(0,F.default)(c,Object.keys(r)),...o&&{showNav:!1}},f={...u,...(0,F.default)(c,Object.keys(u))},d={...n,...c.theme},S={};(0,U.dequal)(u,f)||(S.ui=f),(0,U.dequal)(r,a)||(S.layout=a),c.selectedPanel&&!(0,U.dequal)(i,c.selectedPanel)&&(S.selectedPanel=c.selectedPanel),Object.keys(S).length&&e.setState(S,{persistence:"permanent"}),(0,U.dequal)(n,d)||e.setState({theme:d})}}},p=(0,F.default)(e.getState(),"layout","ui","selectedPanel");return{api:l,state:x(l.getInitialOptions(),p),init:()=>{l.setOptions(x(l.getInitialOptions(),p)),s.on(yt.SET_CONFIG,()=>{l.setOptions(x(l.getInitialOptions(),p))})}}};var Te={};E(Te,{controlOrMetaKey:()=>te,defaultShortcuts:()=>j,init:()=>Io,isMacLike:()=>_t,keys:()=>we});var It=b(require("global")),bt=require("@storybook/core-events");var gt=b(require("global")),{navigator:Ee}=gt.default,X=()=>Ee&&Ee.platform?!!Ee.platform.match(/(Mac|iPhone|iPod|iPad)/i):!1,yo=()=>X()?"\u2318":"ctrl",mo=()=>X()?"meta":"control",ht=()=>X()?"\u2325":"alt",go=(e,t)=>JSON.stringify(e)===JSON.stringify(t),Z=e=>{if(["Meta","Alt","Control","Shift"].includes(e.key))return null;let t=[];return e.altKey&&t.push("alt"),e.ctrlKey&&t.push("control"),e.metaKey&&t.push("meta"),e.shiftKey&&t.push("shift"),e.key&&e.key.length===1&&e.key!==" "&&t.push(e.key.toUpperCase()),e.key===" "&&t.push("space"),e.key==="Escape"&&t.push("escape"),e.key==="ArrowRight"&&t.push("ArrowRight"),e.key==="ArrowDown"&&t.push("ArrowDown"),e.key==="ArrowUp"&&t.push("ArrowUp"),e.key==="ArrowLeft"&&t.push("ArrowLeft"),t.length>0?t:null},ee=(e,t)=>!e||!t||(e.join("")==="shift/"&&e.shift(),e.length!==t.length)?!1:!e.find((o,s)=>o!==t[s]),ho=(e,t)=>ee(Z(e),t),Pt=e=>e==="alt"?ht():e==="control"?"\u2303":e==="meta"?"\u2318":e==="shift"?"\u21E7\u200B":e==="Enter"||e==="Backspace"||e==="Esc"||e==="escape"?"":e===" "?"SPACE":e==="ArrowUp"?"\u2191":e==="ArrowDown"?"\u2193":e==="ArrowLeft"?"\u2190":e==="ArrowRight"?"\u2192":e.toUpperCase(),Po=e=>e.map(Pt).join(" ");var{navigator:Ce,document:At}=It.default,_t=()=>Ce&&Ce.platform?!!Ce.platform.match(/(Mac|iPhone|iPod|iPad)/i):!1,te=()=>_t()?"meta":"control";function we(e){return Object.keys(e)}var j=Object.freeze({fullScreen:["F"],togglePanel:["A"],panelPosition:["D"],toggleNav:["S"],toolbar:["T"],search:["/"],focusNav:["1"],focusIframe:["2"],focusPanel:["3"],prevComponent:["alt","ArrowUp"],nextComponent:["alt","ArrowDown"],prevStory:["alt","ArrowLeft"],nextStory:["alt","ArrowRight"],shortcutsPage:[te(),"shift",","],aboutPage:[","],escape:["escape"],collapseAll:[te(),"shift","ArrowUp"],expandAll:[te(),"shift","ArrowDown"]}),xe={};function Ao(e){let t=e.target;return/input|textarea/i.test(t.tagName)||t.getAttribute("contenteditable")!==null}var Io=({store:e,fullAPI:t})=>{let o={getShortcutKeys(){return e.getState().shortcuts},getDefaultShortcuts(){return{...j,...o.getAddonsShortcutDefaults()}},getAddonsShortcuts(){return xe},getAddonsShortcutLabels(){let c={};return Object.entries(o.getAddonsShortcuts()).forEach(([r,{label:u}])=>{c[r]=u}),c},getAddonsShortcutDefaults(){let c={};return Object.entries(o.getAddonsShortcuts()).forEach(([r,{defaultShortcut:u}])=>{c[r]=u}),c},async setShortcuts(c){return await e.setState({shortcuts:c},{persistence:"permanent"}),c},async restoreAllDefaultShortcuts(){return o.setShortcuts(o.getDefaultShortcuts())},async setShortcut(c,r){let u=o.getShortcutKeys();return await o.setShortcuts({...u,[c]:r}),r},async setAddonShortcut(c,r){let u=o.getShortcutKeys();return await o.setShortcuts({...u,[`${c}-${r.actionName}`]:r.defaultShortcut}),xe[`${c}-${r.actionName}`]=r,r},async restoreDefaultShortcut(c){let r=o.getDefaultShortcuts()[c];return o.setShortcut(c,r)},handleKeydownEvent(c){let r=Z(c),u=o.getShortcutKeys(),n=we(u).find(a=>ee(r,u[a]));n&&(c!=null&&c.preventDefault&&c.preventDefault(),o.handleShortcutFeature(n))},handleShortcutFeature(c){let{layout:{isFullscreen:r,showNav:u,showPanel:i},ui:{enableShortcuts:n}}=e.getState();if(!!n)switch(c){case"escape":{r?t.toggleFullscreen():u||t.toggleNav();break}case"focusNav":{r&&t.toggleFullscreen(),u||t.toggleNav(),t.focusOnUIElement(V.storyListMenu);break}case"search":{r&&t.toggleFullscreen(),u||t.toggleNav(),setTimeout(()=>{t.focusOnUIElement(V.storySearchField,!0)},0);break}case"focusIframe":{let a=At.getElementById("storybook-preview-iframe");if(a)try{a.contentWindow.focus()}catch{}break}case"focusPanel":{r&&t.toggleFullscreen(),i||t.togglePanel(),t.focusOnUIElement(V.storyPanelRoot);break}case"nextStory":{t.jumpToStory(1);break}case"prevStory":{t.jumpToStory(-1);break}case"nextComponent":{t.jumpToComponent(1);break}case"prevComponent":{t.jumpToComponent(-1);break}case"fullScreen":{t.toggleFullscreen();break}case"togglePanel":{r&&(t.toggleFullscreen(),t.resetLayout()),t.togglePanel();break}case"toggleNav":{r&&(t.toggleFullscreen(),t.resetLayout()),t.toggleNav();break}case"toolbar":{t.toggleToolbar();break}case"panelPosition":{r&&t.toggleFullscreen(),i||t.togglePanel(),t.togglePanelPosition();break}case"aboutPage":{t.navigate("/settings/about");break}case"shortcutsPage":{t.navigate("/settings/shortcuts");break}case"collapseAll":{t.collapseAll();break}case"expandAll":{t.expandAll();break}default:xe[c].action();break}}},{shortcuts:s=j}=e.getState(),l={shortcuts:we(j).reduce((c,r)=>({...c,[r]:s[r]||j[r]}),j)};return{api:o,state:l,init:()=>{At.addEventListener("keydown",c=>{Ao(c)||t.handleKeydownEvent(c)}),t.on(bt.PREVIEW_KEYDOWN,c=>{t.handleKeydownEvent(c.event)})}}};var De={};E(De,{init:()=>_o});var R=require("@storybook/core-events"),q=require("@storybook/router"),ke=require("dequal"),vt=b(require("global")),{window:Re}=vt.default,$=e=>{if(e==="true"||e==="1")return!0;if(e==="false"||e==="0")return!1},Oe,bo=({state:{location:e,path:t,viewMode:o,storyId:s},singleStory:l})=>{let{full:p,panel:c,nav:r,shortcuts:u,addonPanel:i,tabs:n,path:a,...f}=(0,q.queryFromLocation)(e),d={isFullscreen:$(p),showNav:!l&&$(r),showPanel:$(c),panelPosition:["right","bottom"].includes(c)?c:void 0,showTabs:$(n)},S={enableShortcuts:$(u)},y=i||void 0,m=s,g=(0,ke.dequal)(Oe,f)?Oe:f;return Oe=g,{viewMode:o,layout:d,ui:S,selectedPanel:y,location:e,path:t,customQueryParams:g,storyId:m}},_o=({store:e,navigate:t,state:o,provider:s,fullAPI:l,...p})=>{let c=(i,n={},a={})=>{let f=Object.entries(n).filter(([,S])=>S).sort(([S],[y])=>S<y?-1:1).map(([S,y])=>`${S}=${y}`),d=[i,...f].join("&");return t(d,a)},r={getQueryParam(i){let{customQueryParams:n}=e.getState();return n?n[i]:void 0},getUrlState(){let{path:i,customQueryParams:n,storyId:a,url:f,viewMode:d}=e.getState();return{path:i,queryParams:n,storyId:a,url:f,viewMode:d}},setQueryParams(i){let{customQueryParams:n}=e.getState(),a={},f={...n,...Object.entries(i).reduce((d,[S,y])=>(y!==null&&(d[S]=y),d),a)};(0,ke.dequal)(n,f)||(e.setState({customQueryParams:f}),l.emit(R.UPDATE_QUERY_PARAMS,f))},navigateUrl(i,n){t(i,{...n,plain:!0})}},u=()=>{let i=()=>{let{path:a,queryParams:f,viewMode:d}=l.getUrlState();if(d!=="story")return;let S=l.getCurrentStoryData();if((S==null?void 0:S.type)!=="story")return;let{args:y,initialArgs:m}=S,g=(0,q.buildArgsParam)(m,y);c(a,{...f,args:g},{replace:!0}),r.setQueryParams({args:g})};l.on(R.SET_CURRENT_STORY,()=>i());let n;l.on(R.STORY_ARGS_UPDATED,()=>{"requestIdleCallback"in Re?(n&&Re.cancelIdleCallback(n),n=Re.requestIdleCallback(i,{timeout:1e3})):(n&&clearTimeout(n),setTimeout(i,100))}),l.on(R.GLOBALS_UPDATED,({globals:a,initialGlobals:f})=>{let{path:d,queryParams:S}=l.getUrlState(),y=(0,q.buildArgsParam)(f,a);c(d,{...S,globals:y},{replace:!0}),r.setQueryParams({globals:y})}),l.on(R.NAVIGATE_URL,(a,f)=>{l.navigateUrl(a,f)}),l.showReleaseNotesOnLaunch()&&t("/settings/release-notes")};return{api:r,state:bo({store:e,navigate:t,state:o,provider:s,fullAPI:l,...p}),init:u}};var Me={};E(Me,{init:()=>Eo});var xt=b(require("global")),T=b(require("semver")),wt=b(require("memoizerific"));var Et="7.0.0-beta.5";var{VERSIONCHECK:vo}=xt.default,Ct=(0,wt.default)(1)(()=>{try{return{...JSON.parse(vo).data||{}}}catch{return{}}}),Eo=({store:e,mode:t,fullAPI:o})=>{let{dismissedVersionNotification:s}=e.getState(),l={versions:{current:{version:Et},...Ct()},dismissedVersionNotification:s},p={getCurrentVersion:()=>{let{versions:{current:r}}=e.getState();return r},getLatestVersion:()=>{let{versions:{latest:r,next:u,current:i}}=e.getState();return i&&T.default.prerelease(i.version)&&u?r&&T.default.gt(r.version,u.version)?r:u:r},versionUpdateAvailable:()=>{let r=p.getLatestVersion(),u=p.getCurrentVersion();if(r){if(!r.version||!u.version)return!0;let n=!!T.default.prerelease(u.version)?`${T.default.major(u.version)}.${T.default.minor(u.version)}.${T.default.patch(u.version)}`:u.version,a=T.default.diff(n,r.version);return T.default.gt(r.version,n)&&a!=="patch"&&!a.includes("pre")}return!1}};return{init:async()=>{let{versions:r={}}=e.getState(),{latest:u,next:i}=Ct();if(await e.setState({versions:{...r,latest:u,next:i}}),p.versionUpdateAvailable()){let n=p.getLatestVersion().version,a=T.default.diff(r.current.version,r.latest.version);n!==s&&a!=="patch"&&!T.default.prerelease(n)&&t!=="production"&&o.addNotification({id:"update",link:"/settings/about",content:{headline:`Storybook ${n} is available!`,subHeadline:`Your current version is: ${r.current.version}`},icon:{name:"book"},onClear(){e.setState({dismissedVersionNotification:n},{persistence:"permanent"})}})}},state:l,api:p}};var Fe={};E(Fe,{init:()=>Co});var K=require("@storybook/core-events"),Le=require("@storybook/client-logger"),Ne=require("dequal");var Co=({store:e,fullAPI:t})=>{let o={getGlobals(){return e.getState().globals},getGlobalTypes(){return e.getState().globalTypes},updateGlobals(c){t.emit(K.UPDATE_GLOBALS,{globals:c,options:{target:"storybook-preview-iframe"}})}},s={globals:{},globalTypes:{}},l=c=>{var u;let r=(u=e.getState())==null?void 0:u.globals;(0,Ne.dequal)(c,r)||e.setState({globals:c})};return{api:o,state:s,init:()=>{t.on(K.GLOBALS_UPDATED,function({globals:r}){let{ref:u}=w(this,t);u?Le.logger.warn("received a GLOBALS_UPDATED from a non-local ref. This is not currently supported."):l(r)}),t.on(K.SET_GLOBALS,function({globals:r,globalTypes:u}){var a;let{ref:i}=w(this,t),n=(a=e.getState())==null?void 0:a.globals;i?Object.keys(r).length>0&&Le.logger.warn("received globals from a non-local ref. This is not currently supported."):e.setState({globals:r,globalTypes:u}),n&&Object.keys(n).length!==0&&!(0,Ne.dequal)(r,n)&&o.updateGlobals(n)})}}};var re=b(require("global")),Rt=require("@storybook/core-events"),ne=require("@storybook/types"),Ot=require("@storybook/client-logger");var Tt=require("@storybook/channels");function oe(){let e={setHandler:()=>{},send:()=>{}};return new Tt.Channel({transport:e})}var Ke=class{constructor(){this.loaders={};this.elements={};this.config={};this.getChannel=()=>(this.channel||this.setChannel(oe()),this.channel);this.getServerChannel=()=>{if(!this.serverChannel)throw new Error("Accessing non-existent serverChannel");return this.serverChannel};this.ready=()=>this.promise;this.hasChannel=()=>!!this.channel;this.hasServerChannel=()=>!!this.serverChannel;this.setChannel=t=>{this.channel=t,this.resolve()};this.setServerChannel=t=>{this.serverChannel=t};this.getElements=t=>(this.elements[t]||(this.elements[t]={}),this.elements[t]);this.addPanel=(t,o)=>{this.add(t,{type:ne.Addon_TypesEnum.PANEL,...o})};this.add=(t,o)=>{let{type:s}=o,l=this.getElements(s);l[t]={id:t,...o}};this.setConfig=t=>{Object.assign(this.config,t),this.hasChannel()&&this.getChannel().emit(Rt.SET_CONFIG,t)};this.getConfig=()=>this.config;this.register=(t,o)=>{this.loaders[t]&&Ot.logger.warn(`${t} was loaded twice, this could have bad side-effects`),this.loaders[t]=o};this.loadAddons=t=>{Object.values(this.loaders).forEach(o=>o(t))};this.promise=new Promise(t=>{this.resolve=()=>t(this.getChannel())})}},je="__STORYBOOK_ADDONS_MANAGER";function xo(){return re.default[je]||(re.default[je]=new Ke),re.default[je]}var kt=xo();var{ActiveTabs:wo}=J;var B=Ue({api:void 0,state:W({})}),ge=(...e)=>(0,Dt.default)({},...e,(t,o)=>{if(Array.isArray(o))return o}),se=class extends h.Component{constructor(o){super(o);this.api={};this.initModules=()=>{this.modules.forEach(o=>{"init"in o&&o.init()})};let{location:s,path:l,refId:p,viewMode:c=o.docsOptions.docsMode?"docs":"story",singleStory:r,storyId:u,docsOptions:i,navigate:n}=o,a=new H({getState:()=>this.state,setState:(g,_)=>this.setState(g,_)}),f={location:s,path:l,viewMode:c,singleStory:r,storyId:u,refId:p},d={docsOptions:i};this.state=a.getInitialState(W({...f,...d}));let S={navigate:n,store:a,provider:o.provider};this.modules=[le,pe,de,J,fe,Se,ye,Te,ve,Ie,Fe,De,Me].map(g=>g.init({...f,...d,...S,state:this.state,fullAPI:this.api}));let y=W(this.state,...this.modules.map(g=>g.state)),m=Object.assign(this.api,{navigate:n},...this.modules.map(g=>g.api));this.state=y,this.api=m}static getDerivedStateFromProps(o,s){return s.path!==o.path?{...s,location:o.location,path:o.path,refId:o.refId,viewMode:o.viewMode,storyId:o.storyId}:null}shouldComponentUpdate(o,s){let l=this.state,p=this.props;return l!==s||p.path!==o.path}render(){let{children:o}=this.props,s={state:this.state,api:this.api};return h.default.createElement(To,{effect:this.initModules},h.default.createElement(B.Provider,{value:s},h.default.createElement(Mt,null,o)))}};se.displayName="Manager";var To=({children:e,effect:t})=>(h.default.useEffect(t,[]),e),Ro=e=>e;function Mt({filter:e=Ro,children:t}){let o=(0,h.useContext)(B),s=(0,h.useRef)(t),l=(0,h.useRef)(e);if(typeof s.current!="function")return h.default.createElement(h.Fragment,null,s.current);let p=l.current(o),c=(0,h.useMemo)(()=>[...Object.entries(p).reduce((r,u)=>r.concat(u),[])],[o.state]);return(0,h.useMemo)(()=>{let r=s.current;return h.default.createElement(r,{...p})},c)}function Oo(){let{state:e}=(0,h.useContext)(B);return e}function k(){let{api:e}=(0,h.useContext)(B);return e}function Lt(e,t){return typeof e>"u"?t:e}var Nt=(e,t=[])=>{let o=k();return(0,h.useEffect)(()=>(Object.entries(e).forEach(([s,l])=>o.on(s,l)),()=>{Object.entries(e).forEach(([s,l])=>o.off(s,l))}),t),o.emit};function ko(e){return k().isPrepared(e)}function Do(e,t){let s=k().getCurrentParameter(e);return Lt(s,t)}var O={};function Ft(e,t){let o=k(),s=o.getAddonState(e),l=Lt(s,O[e]?O[e]:t),p=(u,i)=>{O[e]&&(O[e]=u),o.setAddonState(e,u,i)},c=(0,h.useMemo)(()=>{let u={[`${C.SHARED_STATE_CHANGED}-client-${e}`]:n=>p(n),[`${C.SHARED_STATE_SET}-client-${e}`]:n=>p(n)},i={[C.SET_STORIES]:()=>{let n=o.getAddonState(e);n?(O[e]=n,o.emit(`${C.SHARED_STATE_SET}-manager-${e}`,n)):O[e]?(p(O[e]),o.emit(`${C.SHARED_STATE_SET}-manager-${e}`,O[e])):t!==void 0&&(p(t),O[e]=t,o.emit(`${C.SHARED_STATE_SET}-manager-${e}`,t))},[C.STORY_CHANGED]:()=>{let n=o.getAddonState(e);n!==void 0&&o.emit(`${C.SHARED_STATE_SET}-manager-${e}`,n)}};return{...u,...i}},[e]),r=Nt(c);return[l,(u,i)=>{p(u,i),r(`${C.SHARED_STATE_CHANGED}-manager-${e}`,u)}]}function Mo(e,t){return Ft(e,t)}function Lo(){let{getCurrentStoryData:e,updateStoryArgs:t,resetStoryArgs:o}=k(),s=e(),l=s.type==="story"?s.args:{},p=(0,h.useCallback)(r=>t(s,r),[s,t]),c=(0,h.useCallback)(r=>o(s,r),[s,o]);return[l,p,c]}function No(){let e=k();return[e.getGlobals(),e.updateGlobals]}function Fo(){return k().getGlobalTypes()}function jo(){let{getCurrentStoryData:e}=k();return e()}function Ko(){let e=jo();return(e==null?void 0:e.type)==="story"&&e.argTypes||{}}0&&(module.exports={ActiveTabs,Consumer,ManagerContext,Provider,addons,combineParameters,controlOrMetaKey,controlOrMetaSymbol,eventMatchesShortcut,eventToShortcut,isMacLike,isShortcutTaken,keyToSymbol,merge,mockChannel,optionOrAltSymbol,shortcutMatchesShortcut,shortcutToHumanString,types,useAddonState,useArgTypes,useArgs,useChannel,useGlobalTypes,useGlobals,useParameter,useSharedState,useStoryPrepared,useStorybookApi,useStorybookState});
|
|
15
|
+
`});let I=u.versions&&Object.keys(u.versions).length?u.versions:S.versions;await p.setRef(i,{id:i,url:n,...S,...I?{versions:I}:{},type:S.storyIndex?"lazy":"auto-inject"})},getRefs:()=>{let{refs:u={}}=e.getState();return u},setRef:(u,{storyIndex:i,setStoriesData:n,...a},f=!1)=>{if(o)return;let{storyMapper:d=lt}=t.getConfig(),S=p.getRefs()[u],y;n?y=ot(ao(n,S,{storyMapper:d}),{provider:t,docsOptions:s}):i&&(y=G(i,{provider:t,docsOptions:s})),y&&(y=so(y,S)),p.updateRef(u,{stories:y,...a,ready:f})},updateRef:(u,i)=>{let{[u]:n,...a}=p.getRefs();a[u]={...n,...i};let f=Object.keys(r).reduce((d,S)=>(d[S]=a[S],d),{});e.setState({refs:f})}},c=!o&&Pe.default.REFS||{},r=c;return l&&Object.entries(c).forEach(([u,i])=>{p.checkRef({...i,stories:{}})}),{api:p,state:{refs:r}}};var w=(e,t)=>{let{source:o,refId:s,type:l}=e,[p,c]=Ae(o,s),r=s&&t.getRefs()[s]?t.getRefs()[s]:t.findRef(c),u={source:o,sourceType:p,sourceLocation:c,refId:s,ref:r,type:l};switch(!0){case typeof s=="string":case p==="local":case p==="external":return u;default:return ut.logger.warn(`Received a ${l} frame that was not configured as a ref`),null}};var{FEATURES:be,fetch:co}=dt.default,lo="./index.json",uo=["enableShortcuts","theme","showRoots"];function _e(e){if(!e||typeof e=="string")return e;let t={...e};return uo.forEach(o=>{o in t&&delete t[o]}),t}var po=({fullAPI:e,store:t,navigate:o,provider:s,storyId:l,viewMode:p,docsOptions:c={}})=>{let r={storyId:M.toId,getData:(i,n)=>{let a=r.resolveStory(i,n);if((a==null?void 0:a.type)==="story"||(a==null?void 0:a.type)==="docs")return a},isPrepared:(i,n)=>{let a=r.getData(i,n);return a.type==="story"?a.prepared:!0},resolveStory:(i,n)=>{let{refs:a,storiesHash:f}=t.getState();return n?a[n].stories?a[n].stories[i]:void 0:f?f[i]:void 0},getCurrentStoryData:()=>{let{storyId:i,refId:n}=t.getState();return r.getData(i,n)},getParameters:(i,n)=>{let{storyId:a,refId:f}=typeof i=="string"?{storyId:i,refId:void 0}:i,d=r.getData(a,f);if((d==null?void 0:d.type)==="story"){let{parameters:S}=d;if(S)return n?S[n]:S}return null},getCurrentParameter:i=>{let{storyId:n,refId:a}=t.getState();return r.getParameters({storyId:n,refId:a},i)||void 0},jumpToComponent:i=>{let{storiesHash:n,storyId:a,refs:f,refId:d}=t.getState();if(!r.getData(a,d))return;let y=d?f[d].stories||{}:n,m=r.findSiblingStoryId(a,y,i,!0);m&&r.selectStory(m,void 0,{ref:d})},jumpToStory:i=>{let{storiesHash:n,storyId:a,refs:f,refId:d}=t.getState(),S=r.getData(a,d);if(!S)return;let y=S.refId?f[S.refId].stories:n,m=r.findSiblingStoryId(a,y,i,!1);m&&r.selectStory(m,void 0,{ref:d})},selectFirstStory:()=>{let{storiesHash:i}=t.getState(),n=Object.keys(i).find(a=>i[a].type==="story");if(n){r.selectStory(n);return}o("/")},selectStory:(i=void 0,n=void 0,a={})=>{let{ref:f}=a,{storyId:d,storiesHash:S,refs:y}=t.getState(),m=f?y[f].stories:S,g=d==null?void 0:d.split("--",2)[0];if(n)if(i){let _=f?`${f}_${(0,M.toId)(i,n)}`:(0,M.toId)(i,n);if(m[_])r.selectStory(_,void 0,a);else{let I=m[(0,M.sanitize)(i)];if((I==null?void 0:I.type)==="component"){let P=I.children.find(v=>m[v].name===n);P&&r.selectStory(P,void 0,a)}}}else{let _=(0,M.toId)(g,n);r.selectStory(_,void 0,a)}else{let _=i?m[i]||m[(0,M.sanitize)(i)]:m[g];if(!_)throw new Error(`Unknown id or title: '${i}'`);let I=r.findLeafEntry(m,_.id),P=I.refId?`${I.refId}_${I.id}`:I.id;o(`/${I.type}/${P}`)}},findLeafEntry(i,n){let a=i[n];if(a.type==="docs"||a.type==="story")return a;let f=a.children[0];return r.findLeafEntry(i,f)},findLeafStoryId(i,n){var a;return(a=r.findLeafEntry(i,n))==null?void 0:a.id},findSiblingStoryId(i,n,a,f){if(f){let y=nt(n),m=y.findIndex(g=>g.includes(i));return m===y.length-1&&a>0||m===0&&a<0?void 0:y[m+a]?y[m+a][0]:void 0}let d=st(n),S=d.indexOf(i);if(!(S===d.length-1&&a>0)&&!(S===0&&a<0))return d[S+a]},updateStoryArgs:(i,n)=>{let{id:a,refId:f}=i;e.emit(A.UPDATE_STORY_ARGS,{storyId:a,updatedArgs:n,options:{target:f}})},resetStoryArgs:(i,n)=>{let{id:a,refId:f}=i;e.emit(A.RESET_STORY_ARGS,{storyId:a,argNames:n,options:{target:f}})},fetchIndex:async()=>{try{let i=await co(lo);if(i.status!==200)throw new Error(await i.text());let n=await i.json();if(n.v<3){pt.logger.warn(`Skipping story index with version v${n.v}, awaiting SET_STORIES.`);return}await e.setIndex(n)}catch(i){t.setState({storiesConfigured:!0,storiesFailed:i})}},setIndex:async i=>{let n=G(i,{provider:s,docsOptions:c}),a=t.getState().storiesHash;await t.setState({storiesHash:rt(n,a),storiesConfigured:!0,storiesFailed:null})},updateStory:async(i,n,a)=>{if(a){let{id:f,stories:d}=a;d[i]={...d[i],...n},await e.updateRef(f,{stories:d})}else{let{storiesHash:f}=t.getState();f[i]={...f[i],...n},await t.setState({storiesHash:f})}}};return{api:r,state:{storiesHash:{},storyId:l,viewMode:p,storiesConfigured:!1,hasCalledSetOptions:!1},init:async()=>{var i;e.on(A.STORY_SPECIFIED,function({storyId:a,viewMode:f}){let{sourceType:d}=w(this,e);if(!e.isSettingsScreenActive()&&d==="local"){let S=t.getState();(S.storyId!==a||S.viewMode!==f)&&o(`/${f}/${a}`)}}),e.on(A.STORY_CHANGED,function(){let{sourceType:a}=w(this,e);if(a==="local"){let f=e.getCurrentParameter("options");f&&e.setOptions(_e(f))}}),e.on(A.STORY_PREPARED,function({id:a,...f}){let{ref:d,sourceType:S}=w(this,e);if(e.updateStory(a,{...f,prepared:!0},d),d)e.updateRef(d.id,{ready:!0});else if(!t.getState().hasCalledSetOptions){let{options:y}=f.parameters;e.setOptions(_e(y)),t.setState({hasCalledSetOptions:!0})}if(S==="local"){let{storyId:y,storiesHash:m,refId:g}=t.getState(),_=Array.from(new Set([r.findSiblingStoryId(y,m,1,!0),r.findSiblingStoryId(y,m,-1,!0)])).filter(Boolean);e.emit(A.PRELOAD_ENTRIES,{ids:_,options:{target:g}})}}),e.on(A.SET_INDEX,function(a){let{ref:f}=w(this,e);if(f)e.setRef(f.id,{...f,storyIndex:a},!0);else{e.setIndex(a);let d=e.getCurrentParameter("options");e.setOptions(_e(d))}}),e.on(A.SET_STORIES,function(a){let{ref:f}=w(this,e),d=a.v?tt(a):a.stories;if(f)e.setRef(f.id,{...f,setStoriesData:d},!0);else throw new Error("Cannot call SET_STORIES for local frame")}),e.on(A.SELECT_STORY,function({kind:a,story:f,storyId:d,...S}){let{ref:y}=w(this,e);y?e.selectStory(d||a,f,{...S,ref:y.id}):e.selectStory(d||a,f,S)}),e.on(A.STORY_ARGS_UPDATED,function({storyId:a,args:f}){let{ref:d}=w(this,e);e.updateStory(a,{args:f},d)}),e.on(A.CONFIG_ERROR,function(a){t.setState({storiesConfigured:!0,storiesFailed:a})}),be!=null&&be.storyStoreV7&&((i=s.serverChannel)==null||i.on(A.STORY_INDEX_INVALIDATED,()=>e.fetchIndex()),await e.fetchIndex())}}};var J={};E(J,{ActiveTabs:()=>mt,focusableUIElements:()=>V,init:()=>So});var ft=b(require("global")),F=b(require("lodash/pick")),U=require("dequal"),St=require("@storybook/theming/create"),yt=require("@storybook/core-events");var{document:fo}=ft.default,mt={SIDEBAR:"sidebar",CANVAS:"canvas",ADDONS:"addons"},L={ui:{enableShortcuts:!0},layout:{initialActive:mt.CANVAS,showToolbar:!0,isFullscreen:!1,showPanel:!0,showNav:!0,panelPosition:"bottom",showTabs:!0},selectedPanel:void 0,theme:(0,St.create)()},V={storySearchField:"storybook-explorer-searchfield",storyListMenu:"storybook-explorer-menu",storyPanelRoot:"storybook-panel-root"},So=({store:e,provider:t,singleStory:o,fullAPI:s})=>{let l={toggleFullscreen(c){return e.setState(r=>{let{showNav:u}=r.layout,i=typeof c=="boolean"?c:!r.layout.isFullscreen,n=u===!1&&i===!1;return{layout:{...r.layout,isFullscreen:i,showNav:!o&&n?!0:u}}},{persistence:"session"})},togglePanel(c){return e.setState(r=>{let{showNav:u,isFullscreen:i}=r.layout,n=typeof c<"u"?c:!r.layout.showPanel,a=u===!1&&n===!1;return{layout:{...r.layout,showPanel:n,isFullscreen:a?!0:i}}},{persistence:"session"})},togglePanelPosition(c){return typeof c<"u"?e.setState(r=>({layout:{...r.layout,panelPosition:c}}),{persistence:"permanent"}):e.setState(r=>({layout:{...r.layout,panelPosition:r.layout.panelPosition==="right"?"bottom":"right"}}),{persistence:"permanent"})},toggleNav(c){return e.setState(r=>{if(o)return{layout:r.layout};let{showPanel:u,isFullscreen:i}=r.layout,n=typeof c<"u"?c:!r.layout.showNav,a=u===!1&&n===!1;return{layout:{...r.layout,showNav:n,isFullscreen:a?!0:!n&&i}}},{persistence:"session"})},toggleToolbar(c){return e.setState(r=>{let u=typeof c<"u"?c:!r.layout.showToolbar;return{layout:{...r.layout,showToolbar:u}}},{persistence:"session"})},resetLayout(){return e.setState(c=>({layout:{...c.layout,showNav:!1,showPanel:!1,isFullscreen:!1}}),{persistence:"session"})},focusOnUIElement(c,r){if(!c)return;let u=fo.getElementById(c);u&&(u.focus(),r&&u.select())},getInitialOptions(){let{theme:c,selectedPanel:r,...u}=t.getConfig();return{...L,layout:{...L.layout,...(0,F.default)(u,Object.keys(L.layout)),...o&&{showNav:!1}},ui:{...L.ui,...(0,F.default)(u,Object.keys(L.ui))},selectedPanel:r||L.selectedPanel,theme:c||L.theme}},setOptions:c=>{let{layout:r,ui:u,selectedPanel:i,theme:n}=e.getState();if(c){let a={...r,...(0,F.default)(c,Object.keys(r)),...o&&{showNav:!1}},f={...u,...(0,F.default)(c,Object.keys(u))},d={...n,...c.theme},S={};(0,U.dequal)(u,f)||(S.ui=f),(0,U.dequal)(r,a)||(S.layout=a),c.selectedPanel&&!(0,U.dequal)(i,c.selectedPanel)&&(S.selectedPanel=c.selectedPanel),Object.keys(S).length&&e.setState(S,{persistence:"permanent"}),(0,U.dequal)(n,d)||e.setState({theme:d})}}},p=(0,F.default)(e.getState(),"layout","ui","selectedPanel");return{api:l,state:x(l.getInitialOptions(),p),init:()=>{l.setOptions(x(l.getInitialOptions(),p)),s.on(yt.SET_CONFIG,()=>{l.setOptions(x(l.getInitialOptions(),p))})}}};var Te={};E(Te,{controlOrMetaKey:()=>te,defaultShortcuts:()=>j,init:()=>Io,isMacLike:()=>_t,keys:()=>we});var It=b(require("global")),bt=require("@storybook/core-events");var gt=b(require("global")),{navigator:Ee}=gt.default,X=()=>Ee&&Ee.platform?!!Ee.platform.match(/(Mac|iPhone|iPod|iPad)/i):!1,yo=()=>X()?"\u2318":"ctrl",mo=()=>X()?"meta":"control",ht=()=>X()?"\u2325":"alt",go=(e,t)=>JSON.stringify(e)===JSON.stringify(t),Z=e=>{if(["Meta","Alt","Control","Shift"].includes(e.key))return null;let t=[];return e.altKey&&t.push("alt"),e.ctrlKey&&t.push("control"),e.metaKey&&t.push("meta"),e.shiftKey&&t.push("shift"),e.key&&e.key.length===1&&e.key!==" "&&t.push(e.key.toUpperCase()),e.key===" "&&t.push("space"),e.key==="Escape"&&t.push("escape"),e.key==="ArrowRight"&&t.push("ArrowRight"),e.key==="ArrowDown"&&t.push("ArrowDown"),e.key==="ArrowUp"&&t.push("ArrowUp"),e.key==="ArrowLeft"&&t.push("ArrowLeft"),t.length>0?t:null},ee=(e,t)=>!e||!t||(e.join("")==="shift/"&&e.shift(),e.length!==t.length)?!1:!e.find((o,s)=>o!==t[s]),ho=(e,t)=>ee(Z(e),t),Pt=e=>e==="alt"?ht():e==="control"?"\u2303":e==="meta"?"\u2318":e==="shift"?"\u21E7\u200B":e==="Enter"||e==="Backspace"||e==="Esc"||e==="escape"?"":e===" "?"SPACE":e==="ArrowUp"?"\u2191":e==="ArrowDown"?"\u2193":e==="ArrowLeft"?"\u2190":e==="ArrowRight"?"\u2192":e.toUpperCase(),Po=e=>e.map(Pt).join(" ");var{navigator:Ce,document:At}=It.default,_t=()=>Ce&&Ce.platform?!!Ce.platform.match(/(Mac|iPhone|iPod|iPad)/i):!1,te=()=>_t()?"meta":"control";function we(e){return Object.keys(e)}var j=Object.freeze({fullScreen:["F"],togglePanel:["A"],panelPosition:["D"],toggleNav:["S"],toolbar:["T"],search:["/"],focusNav:["1"],focusIframe:["2"],focusPanel:["3"],prevComponent:["alt","ArrowUp"],nextComponent:["alt","ArrowDown"],prevStory:["alt","ArrowLeft"],nextStory:["alt","ArrowRight"],shortcutsPage:[te(),"shift",","],aboutPage:[","],escape:["escape"],collapseAll:[te(),"shift","ArrowUp"],expandAll:[te(),"shift","ArrowDown"]}),xe={};function Ao(e){let t=e.target;return/input|textarea/i.test(t.tagName)||t.getAttribute("contenteditable")!==null}var Io=({store:e,fullAPI:t})=>{let o={getShortcutKeys(){return e.getState().shortcuts},getDefaultShortcuts(){return{...j,...o.getAddonsShortcutDefaults()}},getAddonsShortcuts(){return xe},getAddonsShortcutLabels(){let c={};return Object.entries(o.getAddonsShortcuts()).forEach(([r,{label:u}])=>{c[r]=u}),c},getAddonsShortcutDefaults(){let c={};return Object.entries(o.getAddonsShortcuts()).forEach(([r,{defaultShortcut:u}])=>{c[r]=u}),c},async setShortcuts(c){return await e.setState({shortcuts:c},{persistence:"permanent"}),c},async restoreAllDefaultShortcuts(){return o.setShortcuts(o.getDefaultShortcuts())},async setShortcut(c,r){let u=o.getShortcutKeys();return await o.setShortcuts({...u,[c]:r}),r},async setAddonShortcut(c,r){let u=o.getShortcutKeys();return await o.setShortcuts({...u,[`${c}-${r.actionName}`]:r.defaultShortcut}),xe[`${c}-${r.actionName}`]=r,r},async restoreDefaultShortcut(c){let r=o.getDefaultShortcuts()[c];return o.setShortcut(c,r)},handleKeydownEvent(c){let r=Z(c),u=o.getShortcutKeys(),n=we(u).find(a=>ee(r,u[a]));n&&(c!=null&&c.preventDefault&&c.preventDefault(),o.handleShortcutFeature(n))},handleShortcutFeature(c){let{layout:{isFullscreen:r,showNav:u,showPanel:i},ui:{enableShortcuts:n}}=e.getState();if(!!n)switch(c){case"escape":{r?t.toggleFullscreen():u||t.toggleNav();break}case"focusNav":{r&&t.toggleFullscreen(),u||t.toggleNav(),t.focusOnUIElement(V.storyListMenu);break}case"search":{r&&t.toggleFullscreen(),u||t.toggleNav(),setTimeout(()=>{t.focusOnUIElement(V.storySearchField,!0)},0);break}case"focusIframe":{let a=At.getElementById("storybook-preview-iframe");if(a)try{a.contentWindow.focus()}catch{}break}case"focusPanel":{r&&t.toggleFullscreen(),i||t.togglePanel(),t.focusOnUIElement(V.storyPanelRoot);break}case"nextStory":{t.jumpToStory(1);break}case"prevStory":{t.jumpToStory(-1);break}case"nextComponent":{t.jumpToComponent(1);break}case"prevComponent":{t.jumpToComponent(-1);break}case"fullScreen":{t.toggleFullscreen();break}case"togglePanel":{r&&(t.toggleFullscreen(),t.resetLayout()),t.togglePanel();break}case"toggleNav":{r&&(t.toggleFullscreen(),t.resetLayout()),t.toggleNav();break}case"toolbar":{t.toggleToolbar();break}case"panelPosition":{r&&t.toggleFullscreen(),i||t.togglePanel(),t.togglePanelPosition();break}case"aboutPage":{t.navigate("/settings/about");break}case"shortcutsPage":{t.navigate("/settings/shortcuts");break}case"collapseAll":{t.collapseAll();break}case"expandAll":{t.expandAll();break}default:xe[c].action();break}}},{shortcuts:s=j}=e.getState(),l={shortcuts:we(j).reduce((c,r)=>({...c,[r]:s[r]||j[r]}),j)};return{api:o,state:l,init:()=>{At.addEventListener("keydown",c=>{Ao(c)||t.handleKeydownEvent(c)}),t.on(bt.PREVIEW_KEYDOWN,c=>{t.handleKeydownEvent(c.event)})}}};var De={};E(De,{init:()=>_o});var R=require("@storybook/core-events"),q=require("@storybook/router"),ke=require("dequal"),vt=b(require("global")),{window:Re}=vt.default,$=e=>{if(e==="true"||e==="1")return!0;if(e==="false"||e==="0")return!1},Oe,bo=({state:{location:e,path:t,viewMode:o,storyId:s},singleStory:l})=>{let{full:p,panel:c,nav:r,shortcuts:u,addonPanel:i,tabs:n,path:a,...f}=(0,q.queryFromLocation)(e),d={isFullscreen:$(p),showNav:!l&&$(r),showPanel:$(c),panelPosition:["right","bottom"].includes(c)?c:void 0,showTabs:$(n)},S={enableShortcuts:$(u)},y=i||void 0,m=s,g=(0,ke.dequal)(Oe,f)?Oe:f;return Oe=g,{viewMode:o,layout:d,ui:S,selectedPanel:y,location:e,path:t,customQueryParams:g,storyId:m}},_o=({store:e,navigate:t,state:o,provider:s,fullAPI:l,...p})=>{let c=(i,n={},a={})=>{let f=Object.entries(n).filter(([,S])=>S).sort(([S],[y])=>S<y?-1:1).map(([S,y])=>`${S}=${y}`),d=[i,...f].join("&");return t(d,a)},r={getQueryParam(i){let{customQueryParams:n}=e.getState();return n?n[i]:void 0},getUrlState(){let{path:i,customQueryParams:n,storyId:a,url:f,viewMode:d}=e.getState();return{path:i,queryParams:n,storyId:a,url:f,viewMode:d}},setQueryParams(i){let{customQueryParams:n}=e.getState(),a={},f={...n,...Object.entries(i).reduce((d,[S,y])=>(y!==null&&(d[S]=y),d),a)};(0,ke.dequal)(n,f)||(e.setState({customQueryParams:f}),l.emit(R.UPDATE_QUERY_PARAMS,f))},navigateUrl(i,n){t(i,{...n,plain:!0})}},u=()=>{let i=()=>{let{path:a,queryParams:f,viewMode:d}=l.getUrlState();if(d!=="story")return;let S=l.getCurrentStoryData();if((S==null?void 0:S.type)!=="story")return;let{args:y,initialArgs:m}=S,g=(0,q.buildArgsParam)(m,y);c(a,{...f,args:g},{replace:!0}),r.setQueryParams({args:g})};l.on(R.SET_CURRENT_STORY,()=>i());let n;l.on(R.STORY_ARGS_UPDATED,()=>{"requestIdleCallback"in Re?(n&&Re.cancelIdleCallback(n),n=Re.requestIdleCallback(i,{timeout:1e3})):(n&&clearTimeout(n),setTimeout(i,100))}),l.on(R.GLOBALS_UPDATED,({globals:a,initialGlobals:f})=>{let{path:d,queryParams:S}=l.getUrlState(),y=(0,q.buildArgsParam)(f,a);c(d,{...S,globals:y},{replace:!0}),r.setQueryParams({globals:y})}),l.on(R.NAVIGATE_URL,(a,f)=>{l.navigateUrl(a,f)}),l.showReleaseNotesOnLaunch()&&t("/settings/release-notes")};return{api:r,state:bo({store:e,navigate:t,state:o,provider:s,fullAPI:l,...p}),init:u}};var Me={};E(Me,{init:()=>Eo});var xt=b(require("global")),T=b(require("semver")),wt=b(require("memoizerific"));var Et="7.0.0-beta.6";var{VERSIONCHECK:vo}=xt.default,Ct=(0,wt.default)(1)(()=>{try{return{...JSON.parse(vo).data||{}}}catch{return{}}}),Eo=({store:e,mode:t,fullAPI:o})=>{let{dismissedVersionNotification:s}=e.getState(),l={versions:{current:{version:Et},...Ct()},dismissedVersionNotification:s},p={getCurrentVersion:()=>{let{versions:{current:r}}=e.getState();return r},getLatestVersion:()=>{let{versions:{latest:r,next:u,current:i}}=e.getState();return i&&T.default.prerelease(i.version)&&u?r&&T.default.gt(r.version,u.version)?r:u:r},versionUpdateAvailable:()=>{let r=p.getLatestVersion(),u=p.getCurrentVersion();if(r){if(!r.version||!u.version)return!0;let n=!!T.default.prerelease(u.version)?`${T.default.major(u.version)}.${T.default.minor(u.version)}.${T.default.patch(u.version)}`:u.version,a=T.default.diff(n,r.version);return T.default.gt(r.version,n)&&a!=="patch"&&!a.includes("pre")}return!1}};return{init:async()=>{let{versions:r={}}=e.getState(),{latest:u,next:i}=Ct();if(await e.setState({versions:{...r,latest:u,next:i}}),p.versionUpdateAvailable()){let n=p.getLatestVersion().version,a=T.default.diff(r.current.version,r.latest.version);n!==s&&a!=="patch"&&!T.default.prerelease(n)&&t!=="production"&&o.addNotification({id:"update",link:"/settings/about",content:{headline:`Storybook ${n} is available!`,subHeadline:`Your current version is: ${r.current.version}`},icon:{name:"book"},onClear(){e.setState({dismissedVersionNotification:n},{persistence:"permanent"})}})}},state:l,api:p}};var Fe={};E(Fe,{init:()=>Co});var K=require("@storybook/core-events"),Le=require("@storybook/client-logger"),Ne=require("dequal");var Co=({store:e,fullAPI:t})=>{let o={getGlobals(){return e.getState().globals},getGlobalTypes(){return e.getState().globalTypes},updateGlobals(c){t.emit(K.UPDATE_GLOBALS,{globals:c,options:{target:"storybook-preview-iframe"}})}},s={globals:{},globalTypes:{}},l=c=>{var u;let r=(u=e.getState())==null?void 0:u.globals;(0,Ne.dequal)(c,r)||e.setState({globals:c})};return{api:o,state:s,init:()=>{t.on(K.GLOBALS_UPDATED,function({globals:r}){let{ref:u}=w(this,t);u?Le.logger.warn("received a GLOBALS_UPDATED from a non-local ref. This is not currently supported."):l(r)}),t.on(K.SET_GLOBALS,function({globals:r,globalTypes:u}){var a;let{ref:i}=w(this,t),n=(a=e.getState())==null?void 0:a.globals;i?Object.keys(r).length>0&&Le.logger.warn("received globals from a non-local ref. This is not currently supported."):e.setState({globals:r,globalTypes:u}),n&&Object.keys(n).length!==0&&!(0,Ne.dequal)(r,n)&&o.updateGlobals(n)})}}};var re=b(require("global")),Rt=require("@storybook/core-events"),ne=require("@storybook/types"),Ot=require("@storybook/client-logger");var Tt=require("@storybook/channels");function oe(){let e={setHandler:()=>{},send:()=>{}};return new Tt.Channel({transport:e})}var Ke=class{constructor(){this.loaders={};this.elements={};this.config={};this.getChannel=()=>(this.channel||this.setChannel(oe()),this.channel);this.getServerChannel=()=>{if(!this.serverChannel)throw new Error("Accessing non-existent serverChannel");return this.serverChannel};this.ready=()=>this.promise;this.hasChannel=()=>!!this.channel;this.hasServerChannel=()=>!!this.serverChannel;this.setChannel=t=>{this.channel=t,this.resolve()};this.setServerChannel=t=>{this.serverChannel=t};this.getElements=t=>(this.elements[t]||(this.elements[t]={}),this.elements[t]);this.addPanel=(t,o)=>{this.add(t,{type:ne.Addon_TypesEnum.PANEL,...o})};this.add=(t,o)=>{let{type:s}=o,l=this.getElements(s);l[t]={id:t,...o}};this.setConfig=t=>{Object.assign(this.config,t),this.hasChannel()&&this.getChannel().emit(Rt.SET_CONFIG,t)};this.getConfig=()=>this.config;this.register=(t,o)=>{this.loaders[t]&&Ot.logger.warn(`${t} was loaded twice, this could have bad side-effects`),this.loaders[t]=o};this.loadAddons=t=>{Object.values(this.loaders).forEach(o=>o(t))};this.promise=new Promise(t=>{this.resolve=()=>t(this.getChannel())})}},je="__STORYBOOK_ADDONS_MANAGER";function xo(){return re.default[je]||(re.default[je]=new Ke),re.default[je]}var kt=xo();var{ActiveTabs:wo}=J;var B=Ue({api:void 0,state:W({})}),ge=(...e)=>(0,Dt.default)({},...e,(t,o)=>{if(Array.isArray(o))return o}),se=class extends h.Component{constructor(o){super(o);this.api={};this.initModules=()=>{this.modules.forEach(o=>{"init"in o&&o.init()})};let{location:s,path:l,refId:p,viewMode:c=o.docsOptions.docsMode?"docs":"story",singleStory:r,storyId:u,docsOptions:i,navigate:n}=o,a=new H({getState:()=>this.state,setState:(g,_)=>this.setState(g,_)}),f={location:s,path:l,viewMode:c,singleStory:r,storyId:u,refId:p},d={docsOptions:i};this.state=a.getInitialState(W({...f,...d}));let S={navigate:n,store:a,provider:o.provider};this.modules=[le,pe,de,J,fe,Se,ye,Te,ve,Ie,Fe,De,Me].map(g=>g.init({...f,...d,...S,state:this.state,fullAPI:this.api}));let y=W(this.state,...this.modules.map(g=>g.state)),m=Object.assign(this.api,{navigate:n},...this.modules.map(g=>g.api));this.state=y,this.api=m}static getDerivedStateFromProps(o,s){return s.path!==o.path?{...s,location:o.location,path:o.path,refId:o.refId,viewMode:o.viewMode,storyId:o.storyId}:null}shouldComponentUpdate(o,s){let l=this.state,p=this.props;return l!==s||p.path!==o.path}render(){let{children:o}=this.props,s={state:this.state,api:this.api};return h.default.createElement(To,{effect:this.initModules},h.default.createElement(B.Provider,{value:s},h.default.createElement(Mt,null,o)))}};se.displayName="Manager";var To=({children:e,effect:t})=>(h.default.useEffect(t,[]),e),Ro=e=>e;function Mt({filter:e=Ro,children:t}){let o=(0,h.useContext)(B),s=(0,h.useRef)(t),l=(0,h.useRef)(e);if(typeof s.current!="function")return h.default.createElement(h.Fragment,null,s.current);let p=l.current(o),c=(0,h.useMemo)(()=>[...Object.entries(p).reduce((r,u)=>r.concat(u),[])],[o.state]);return(0,h.useMemo)(()=>{let r=s.current;return h.default.createElement(r,{...p})},c)}function Oo(){let{state:e}=(0,h.useContext)(B);return e}function k(){let{api:e}=(0,h.useContext)(B);return e}function Lt(e,t){return typeof e>"u"?t:e}var Nt=(e,t=[])=>{let o=k();return(0,h.useEffect)(()=>(Object.entries(e).forEach(([s,l])=>o.on(s,l)),()=>{Object.entries(e).forEach(([s,l])=>o.off(s,l))}),t),o.emit};function ko(e){return k().isPrepared(e)}function Do(e,t){let s=k().getCurrentParameter(e);return Lt(s,t)}var O={};function Ft(e,t){let o=k(),s=o.getAddonState(e),l=Lt(s,O[e]?O[e]:t),p=(u,i)=>{O[e]&&(O[e]=u),o.setAddonState(e,u,i)},c=(0,h.useMemo)(()=>{let u={[`${C.SHARED_STATE_CHANGED}-client-${e}`]:n=>p(n),[`${C.SHARED_STATE_SET}-client-${e}`]:n=>p(n)},i={[C.SET_STORIES]:()=>{let n=o.getAddonState(e);n?(O[e]=n,o.emit(`${C.SHARED_STATE_SET}-manager-${e}`,n)):O[e]?(p(O[e]),o.emit(`${C.SHARED_STATE_SET}-manager-${e}`,O[e])):t!==void 0&&(p(t),O[e]=t,o.emit(`${C.SHARED_STATE_SET}-manager-${e}`,t))},[C.STORY_CHANGED]:()=>{let n=o.getAddonState(e);n!==void 0&&o.emit(`${C.SHARED_STATE_SET}-manager-${e}`,n)}};return{...u,...i}},[e]),r=Nt(c);return[l,(u,i)=>{p(u,i),r(`${C.SHARED_STATE_CHANGED}-manager-${e}`,u)}]}function Mo(e,t){return Ft(e,t)}function Lo(){let{getCurrentStoryData:e,updateStoryArgs:t,resetStoryArgs:o}=k(),s=e(),l=s.type==="story"?s.args:{},p=(0,h.useCallback)(r=>t(s,r),[s,t]),c=(0,h.useCallback)(r=>o(s,r),[s,o]);return[l,p,c]}function No(){let e=k();return[e.getGlobals(),e.updateGlobals]}function Fo(){return k().getGlobalTypes()}function jo(){let{getCurrentStoryData:e}=k();return e()}function Ko(){let e=jo();return(e==null?void 0:e.type)==="story"&&e.argTypes||{}}0&&(module.exports={ActiveTabs,Consumer,ManagerContext,Provider,addons,combineParameters,controlOrMetaKey,controlOrMetaSymbol,eventMatchesShortcut,eventToShortcut,isMacLike,isShortcutTaken,keyToSymbol,merge,mockChannel,optionOrAltSymbol,shortcutMatchesShortcut,shortcutToHumanString,types,useAddonState,useArgTypes,useArgs,useChannel,useGlobalTypes,useGlobals,useParameter,useSharedState,useStoryPrepared,useStorybookApi,useStorybookState});
|
package/dist/index.mjs
CHANGED
|
@@ -12,4 +12,4 @@ var __defProp=Object.defineProperty;var __export=(target,all)=>{for(var name in
|
|
|
12
12
|
it's possible a CORS error happened.
|
|
13
13
|
|
|
14
14
|
Please check your dev-tools network tab.
|
|
15
|
-
`});let versions=ref.versions&&Object.keys(ref.versions).length?ref.versions:loadedData.versions;await api.setRef(id,{id,url,...loadedData,...versions?{versions}:{},type:loadedData.storyIndex?"lazy":"auto-inject"})},getRefs:()=>{let{refs:refs2={}}=store2.getState();return refs2},setRef:(id,{storyIndex,setStoriesData,...rest},ready=!1)=>{if(singleStory)return;let{storyMapper=defaultStoryMapper}=provider.getConfig(),ref=api.getRefs()[id],storiesHash;setStoriesData?storiesHash=transformSetStoriesStoryDataToStoriesHash(map(setStoriesData,ref,{storyMapper}),{provider,docsOptions}):storyIndex&&(storiesHash=transformStoryIndexToStoriesHash(storyIndex,{provider,docsOptions})),storiesHash&&(storiesHash=addRefIds(storiesHash,ref)),api.updateRef(id,{stories:storiesHash,...rest,ready})},updateRef:(id,data)=>{let{[id]:ref,...updated}=api.getRefs();updated[id]={...ref,...data};let ordered=Object.keys(initialState).reduce((obj,key)=>(obj[key]=updated[key],obj),{});store2.setState({refs:ordered})}},refs=!singleStory&&global2.REFS||{},initialState=refs;return runCheck&&Object.entries(refs).forEach(([id,ref])=>{api.checkRef({...ref,stories:{}})}),{api,state:{refs:initialState}}};var getEventMetadata=(context,fullAPI)=>{let{source,refId,type}=context,[sourceType,sourceLocation]=getSourceType(source,refId),ref=refId&&fullAPI.getRefs()[refId]?fullAPI.getRefs()[refId]:fullAPI.findRef(sourceLocation),meta={source,sourceType,sourceLocation,refId,ref,type};switch(!0){case typeof refId=="string":case sourceType==="local":case sourceType==="external":return meta;default:return logger2.warn(`Received a ${type} frame that was not configured as a ref`),null}};var{FEATURES,fetch:fetch2}=global3,STORY_INDEX_PATH="./index.json",removedOptions=["enableShortcuts","theme","showRoots"];function removeRemovedOptions(options){if(!options||typeof options=="string")return options;let result={...options};return removedOptions.forEach(option=>{option in result&&delete result[option]}),result}var init8=({fullAPI,store:store2,navigate,provider,storyId:initialStoryId,viewMode:initialViewMode,docsOptions={}})=>{let api={storyId:toId,getData:(storyId,refId)=>{let result=api.resolveStory(storyId,refId);if(result?.type==="story"||result?.type==="docs")return result},isPrepared:(storyId,refId)=>{let data=api.getData(storyId,refId);return data.type==="story"?data.prepared:!0},resolveStory:(storyId,refId)=>{let{refs,storiesHash}=store2.getState();return refId?refs[refId].stories?refs[refId].stories[storyId]:void 0:storiesHash?storiesHash[storyId]:void 0},getCurrentStoryData:()=>{let{storyId,refId}=store2.getState();return api.getData(storyId,refId)},getParameters:(storyIdOrCombo,parameterName)=>{let{storyId,refId}=typeof storyIdOrCombo=="string"?{storyId:storyIdOrCombo,refId:void 0}:storyIdOrCombo,data=api.getData(storyId,refId);if(data?.type==="story"){let{parameters}=data;if(parameters)return parameterName?parameters[parameterName]:parameters}return null},getCurrentParameter:parameterName=>{let{storyId,refId}=store2.getState();return api.getParameters({storyId,refId},parameterName)||void 0},jumpToComponent:direction=>{let{storiesHash,storyId,refs,refId}=store2.getState();if(!api.getData(storyId,refId))return;let hash=refId?refs[refId].stories||{}:storiesHash,result=api.findSiblingStoryId(storyId,hash,direction,!0);result&&api.selectStory(result,void 0,{ref:refId})},jumpToStory:direction=>{let{storiesHash,storyId,refs,refId}=store2.getState(),story=api.getData(storyId,refId);if(!story)return;let hash=story.refId?refs[story.refId].stories:storiesHash,result=api.findSiblingStoryId(storyId,hash,direction,!1);result&&api.selectStory(result,void 0,{ref:refId})},selectFirstStory:()=>{let{storiesHash}=store2.getState(),firstStory=Object.keys(storiesHash).find(id=>storiesHash[id].type==="story");if(firstStory){api.selectStory(firstStory);return}navigate("/")},selectStory:(titleOrId=void 0,name=void 0,options={})=>{let{ref}=options,{storyId,storiesHash,refs}=store2.getState(),hash=ref?refs[ref].stories:storiesHash,kindSlug=storyId?.split("--",2)[0];if(name)if(titleOrId){let id=ref?`${ref}_${toId(titleOrId,name)}`:toId(titleOrId,name);if(hash[id])api.selectStory(id,void 0,options);else{let entry=hash[sanitize2(titleOrId)];if(entry?.type==="component"){let foundId=entry.children.find(childId=>hash[childId].name===name);foundId&&api.selectStory(foundId,void 0,options)}}}else{let id=toId(kindSlug,name);api.selectStory(id,void 0,options)}else{let entry=titleOrId?hash[titleOrId]||hash[sanitize2(titleOrId)]:hash[kindSlug];if(!entry)throw new Error(`Unknown id or title: '${titleOrId}'`);let leafEntry=api.findLeafEntry(hash,entry.id),fullId=leafEntry.refId?`${leafEntry.refId}_${leafEntry.id}`:leafEntry.id;navigate(`/${leafEntry.type}/${fullId}`)}},findLeafEntry(storiesHash,storyId){let entry=storiesHash[storyId];if(entry.type==="docs"||entry.type==="story")return entry;let childStoryId=entry.children[0];return api.findLeafEntry(storiesHash,childStoryId)},findLeafStoryId(storiesHash,storyId){return api.findLeafEntry(storiesHash,storyId)?.id},findSiblingStoryId(storyId,hash,direction,toSiblingGroup){if(toSiblingGroup){let lookupList2=getComponentLookupList(hash),index2=lookupList2.findIndex(i=>i.includes(storyId));return index2===lookupList2.length-1&&direction>0||index2===0&&direction<0?void 0:lookupList2[index2+direction]?lookupList2[index2+direction][0]:void 0}let lookupList=getStoriesLookupList(hash),index=lookupList.indexOf(storyId);if(!(index===lookupList.length-1&&direction>0)&&!(index===0&&direction<0))return lookupList[index+direction]},updateStoryArgs:(story,updatedArgs)=>{let{id:storyId,refId}=story;fullAPI.emit(UPDATE_STORY_ARGS,{storyId,updatedArgs,options:{target:refId}})},resetStoryArgs:(story,argNames)=>{let{id:storyId,refId}=story;fullAPI.emit(RESET_STORY_ARGS,{storyId,argNames,options:{target:refId}})},fetchIndex:async()=>{try{let result=await fetch2(STORY_INDEX_PATH);if(result.status!==200)throw new Error(await result.text());let storyIndex=await result.json();if(storyIndex.v<3){logger3.warn(`Skipping story index with version v${storyIndex.v}, awaiting SET_STORIES.`);return}await fullAPI.setIndex(storyIndex)}catch(err){store2.setState({storiesConfigured:!0,storiesFailed:err})}},setIndex:async storyIndex=>{let newHash=transformStoryIndexToStoriesHash(storyIndex,{provider,docsOptions}),oldHash=store2.getState().storiesHash;await store2.setState({storiesHash:addPreparedStories(newHash,oldHash),storiesConfigured:!0,storiesFailed:null})},updateStory:async(storyId,update2,ref)=>{if(ref){let{id:refId,stories}=ref;stories[storyId]={...stories[storyId],...update2},await fullAPI.updateRef(refId,{stories})}else{let{storiesHash}=store2.getState();storiesHash[storyId]={...storiesHash[storyId],...update2},await store2.setState({storiesHash})}}};return{api,state:{storiesHash:{},storyId:initialStoryId,viewMode:initialViewMode,storiesConfigured:!1,hasCalledSetOptions:!1},init:async()=>{fullAPI.on(STORY_SPECIFIED,function({storyId,viewMode}){let{sourceType}=getEventMetadata(this,fullAPI);if(!fullAPI.isSettingsScreenActive()&&sourceType==="local"){let state=store2.getState();(state.storyId!==storyId||state.viewMode!==viewMode)&&navigate(`/${viewMode}/${storyId}`)}}),fullAPI.on(STORY_CHANGED,function(){let{sourceType}=getEventMetadata(this,fullAPI);if(sourceType==="local"){let options=fullAPI.getCurrentParameter("options");options&&fullAPI.setOptions(removeRemovedOptions(options))}}),fullAPI.on(STORY_PREPARED,function({id,...update2}){let{ref,sourceType}=getEventMetadata(this,fullAPI);if(fullAPI.updateStory(id,{...update2,prepared:!0},ref),ref)fullAPI.updateRef(ref.id,{ready:!0});else if(!store2.getState().hasCalledSetOptions){let{options}=update2.parameters;fullAPI.setOptions(removeRemovedOptions(options)),store2.setState({hasCalledSetOptions:!0})}if(sourceType==="local"){let{storyId,storiesHash,refId}=store2.getState(),toBePreloaded=Array.from(new Set([api.findSiblingStoryId(storyId,storiesHash,1,!0),api.findSiblingStoryId(storyId,storiesHash,-1,!0)])).filter(Boolean);fullAPI.emit(PRELOAD_ENTRIES,{ids:toBePreloaded,options:{target:refId}})}}),fullAPI.on(SET_INDEX,function(index){let{ref}=getEventMetadata(this,fullAPI);if(ref)fullAPI.setRef(ref.id,{...ref,storyIndex:index},!0);else{fullAPI.setIndex(index);let options=fullAPI.getCurrentParameter("options");fullAPI.setOptions(removeRemovedOptions(options))}}),fullAPI.on(SET_STORIES,function(data){let{ref}=getEventMetadata(this,fullAPI),setStoriesData=data.v?denormalizeStoryParameters(data):data.stories;if(ref)fullAPI.setRef(ref.id,{...ref,setStoriesData},!0);else throw new Error("Cannot call SET_STORIES for local frame")}),fullAPI.on(SELECT_STORY,function({kind,story,storyId,...rest}){let{ref}=getEventMetadata(this,fullAPI);ref?fullAPI.selectStory(storyId||kind,story,{...rest,ref:ref.id}):fullAPI.selectStory(storyId||kind,story,rest)}),fullAPI.on(STORY_ARGS_UPDATED,function({storyId,args}){let{ref}=getEventMetadata(this,fullAPI);fullAPI.updateStory(storyId,{args},ref)}),fullAPI.on(CONFIG_ERROR,function(err){store2.setState({storiesConfigured:!0,storiesFailed:err})}),FEATURES?.storyStoreV7&&(provider.serverChannel?.on(STORY_INDEX_INVALIDATED,()=>fullAPI.fetchIndex()),await fullAPI.fetchIndex())}}};var layout_exports={};__export(layout_exports,{ActiveTabs:()=>ActiveTabs,focusableUIElements:()=>focusableUIElements,init:()=>init9});import global4 from"global";import pick from"lodash/pick";import{dequal as deepEqual}from"dequal";import{create}from"@storybook/theming/create";import{SET_CONFIG}from"@storybook/core-events";var{document}=global4,ActiveTabs={SIDEBAR:"sidebar",CANVAS:"canvas",ADDONS:"addons"},defaultState={ui:{enableShortcuts:!0},layout:{initialActive:ActiveTabs.CANVAS,showToolbar:!0,isFullscreen:!1,showPanel:!0,showNav:!0,panelPosition:"bottom",showTabs:!0},selectedPanel:void 0,theme:create()},focusableUIElements={storySearchField:"storybook-explorer-searchfield",storyListMenu:"storybook-explorer-menu",storyPanelRoot:"storybook-panel-root"},init9=({store:store2,provider,singleStory,fullAPI})=>{let api={toggleFullscreen(toggled){return store2.setState(state=>{let{showNav}=state.layout,value=typeof toggled=="boolean"?toggled:!state.layout.isFullscreen,shouldShowNav=showNav===!1&&value===!1;return{layout:{...state.layout,isFullscreen:value,showNav:!singleStory&&shouldShowNav?!0:showNav}}},{persistence:"session"})},togglePanel(toggled){return store2.setState(state=>{let{showNav,isFullscreen}=state.layout,value=typeof toggled<"u"?toggled:!state.layout.showPanel,shouldToggleFullScreen=showNav===!1&&value===!1;return{layout:{...state.layout,showPanel:value,isFullscreen:shouldToggleFullScreen?!0:isFullscreen}}},{persistence:"session"})},togglePanelPosition(position){return typeof position<"u"?store2.setState(state=>({layout:{...state.layout,panelPosition:position}}),{persistence:"permanent"}):store2.setState(state=>({layout:{...state.layout,panelPosition:state.layout.panelPosition==="right"?"bottom":"right"}}),{persistence:"permanent"})},toggleNav(toggled){return store2.setState(state=>{if(singleStory)return{layout:state.layout};let{showPanel,isFullscreen}=state.layout,showNav=typeof toggled<"u"?toggled:!state.layout.showNav,shouldToggleFullScreen=showPanel===!1&&showNav===!1;return{layout:{...state.layout,showNav,isFullscreen:shouldToggleFullScreen?!0:!showNav&&isFullscreen}}},{persistence:"session"})},toggleToolbar(toggled){return store2.setState(state=>{let value=typeof toggled<"u"?toggled:!state.layout.showToolbar;return{layout:{...state.layout,showToolbar:value}}},{persistence:"session"})},resetLayout(){return store2.setState(state=>({layout:{...state.layout,showNav:!1,showPanel:!1,isFullscreen:!1}}),{persistence:"session"})},focusOnUIElement(elementId,select){if(!elementId)return;let element=document.getElementById(elementId);element&&(element.focus(),select&&element.select())},getInitialOptions(){let{theme,selectedPanel,...options}=provider.getConfig();return{...defaultState,layout:{...defaultState.layout,...pick(options,Object.keys(defaultState.layout)),...singleStory&&{showNav:!1}},ui:{...defaultState.ui,...pick(options,Object.keys(defaultState.ui))},selectedPanel:selectedPanel||defaultState.selectedPanel,theme:theme||defaultState.theme}},setOptions:options=>{let{layout,ui,selectedPanel,theme}=store2.getState();if(options){let updatedLayout={...layout,...pick(options,Object.keys(layout)),...singleStory&&{showNav:!1}},updatedUi={...ui,...pick(options,Object.keys(ui))},updatedTheme={...theme,...options.theme},modification={};deepEqual(ui,updatedUi)||(modification.ui=updatedUi),deepEqual(layout,updatedLayout)||(modification.layout=updatedLayout),options.selectedPanel&&!deepEqual(selectedPanel,options.selectedPanel)&&(modification.selectedPanel=options.selectedPanel),Object.keys(modification).length&&store2.setState(modification,{persistence:"permanent"}),deepEqual(theme,updatedTheme)||store2.setState({theme:updatedTheme})}}},persisted=pick(store2.getState(),"layout","ui","selectedPanel");return{api,state:merge_default(api.getInitialOptions(),persisted),init:()=>{api.setOptions(merge_default(api.getInitialOptions(),persisted)),fullAPI.on(SET_CONFIG,()=>{api.setOptions(merge_default(api.getInitialOptions(),persisted))})}}};var shortcuts_exports={};__export(shortcuts_exports,{controlOrMetaKey:()=>controlOrMetaKey2,defaultShortcuts:()=>defaultShortcuts,init:()=>init10,isMacLike:()=>isMacLike2,keys:()=>keys});import global6 from"global";import{PREVIEW_KEYDOWN}from"@storybook/core-events";import global5 from"global";var{navigator}=global5,isMacLike=()=>navigator&&navigator.platform?!!navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i):!1,controlOrMetaSymbol=()=>isMacLike()?"\u2318":"ctrl",controlOrMetaKey=()=>isMacLike()?"meta":"control",optionOrAltSymbol=()=>isMacLike()?"\u2325":"alt",isShortcutTaken=(arr1,arr2)=>JSON.stringify(arr1)===JSON.stringify(arr2),eventToShortcut=e=>{if(["Meta","Alt","Control","Shift"].includes(e.key))return null;let keys2=[];return e.altKey&&keys2.push("alt"),e.ctrlKey&&keys2.push("control"),e.metaKey&&keys2.push("meta"),e.shiftKey&&keys2.push("shift"),e.key&&e.key.length===1&&e.key!==" "&&keys2.push(e.key.toUpperCase()),e.key===" "&&keys2.push("space"),e.key==="Escape"&&keys2.push("escape"),e.key==="ArrowRight"&&keys2.push("ArrowRight"),e.key==="ArrowDown"&&keys2.push("ArrowDown"),e.key==="ArrowUp"&&keys2.push("ArrowUp"),e.key==="ArrowLeft"&&keys2.push("ArrowLeft"),keys2.length>0?keys2:null},shortcutMatchesShortcut=(inputShortcut,shortcut)=>!inputShortcut||!shortcut||(inputShortcut.join("")==="shift/"&&inputShortcut.shift(),inputShortcut.length!==shortcut.length)?!1:!inputShortcut.find((key,i)=>key!==shortcut[i]),eventMatchesShortcut=(e,shortcut)=>shortcutMatchesShortcut(eventToShortcut(e),shortcut),keyToSymbol=key=>key==="alt"?optionOrAltSymbol():key==="control"?"\u2303":key==="meta"?"\u2318":key==="shift"?"\u21E7\u200B":key==="Enter"||key==="Backspace"||key==="Esc"||key==="escape"?"":key===" "?"SPACE":key==="ArrowUp"?"\u2191":key==="ArrowDown"?"\u2193":key==="ArrowLeft"?"\u2190":key==="ArrowRight"?"\u2192":key.toUpperCase(),shortcutToHumanString=shortcut=>shortcut.map(keyToSymbol).join(" ");var{navigator:navigator2,document:document2}=global6,isMacLike2=()=>navigator2&&navigator2.platform?!!navigator2.platform.match(/(Mac|iPhone|iPod|iPad)/i):!1,controlOrMetaKey2=()=>isMacLike2()?"meta":"control";function keys(o){return Object.keys(o)}var defaultShortcuts=Object.freeze({fullScreen:["F"],togglePanel:["A"],panelPosition:["D"],toggleNav:["S"],toolbar:["T"],search:["/"],focusNav:["1"],focusIframe:["2"],focusPanel:["3"],prevComponent:["alt","ArrowUp"],nextComponent:["alt","ArrowDown"],prevStory:["alt","ArrowLeft"],nextStory:["alt","ArrowRight"],shortcutsPage:[controlOrMetaKey2(),"shift",","],aboutPage:[","],escape:["escape"],collapseAll:[controlOrMetaKey2(),"shift","ArrowUp"],expandAll:[controlOrMetaKey2(),"shift","ArrowDown"]}),addonsShortcuts={};function focusInInput(event){let target=event.target;return/input|textarea/i.test(target.tagName)||target.getAttribute("contenteditable")!==null}var init10=({store:store2,fullAPI})=>{let api={getShortcutKeys(){return store2.getState().shortcuts},getDefaultShortcuts(){return{...defaultShortcuts,...api.getAddonsShortcutDefaults()}},getAddonsShortcuts(){return addonsShortcuts},getAddonsShortcutLabels(){let labels={};return Object.entries(api.getAddonsShortcuts()).forEach(([actionName,{label}])=>{labels[actionName]=label}),labels},getAddonsShortcutDefaults(){let defaults={};return Object.entries(api.getAddonsShortcuts()).forEach(([actionName,{defaultShortcut}])=>{defaults[actionName]=defaultShortcut}),defaults},async setShortcuts(shortcuts){return await store2.setState({shortcuts},{persistence:"permanent"}),shortcuts},async restoreAllDefaultShortcuts(){return api.setShortcuts(api.getDefaultShortcuts())},async setShortcut(action,value){let shortcuts=api.getShortcutKeys();return await api.setShortcuts({...shortcuts,[action]:value}),value},async setAddonShortcut(addon,shortcut){let shortcuts=api.getShortcutKeys();return await api.setShortcuts({...shortcuts,[`${addon}-${shortcut.actionName}`]:shortcut.defaultShortcut}),addonsShortcuts[`${addon}-${shortcut.actionName}`]=shortcut,shortcut},async restoreDefaultShortcut(action){let defaultShortcut=api.getDefaultShortcuts()[action];return api.setShortcut(action,defaultShortcut)},handleKeydownEvent(event){let shortcut=eventToShortcut(event),shortcuts=api.getShortcutKeys(),matchedFeature=keys(shortcuts).find(feature=>shortcutMatchesShortcut(shortcut,shortcuts[feature]));matchedFeature&&(event?.preventDefault&&event.preventDefault(),api.handleShortcutFeature(matchedFeature))},handleShortcutFeature(feature){let{layout:{isFullscreen,showNav,showPanel},ui:{enableShortcuts}}=store2.getState();if(!!enableShortcuts)switch(feature){case"escape":{isFullscreen?fullAPI.toggleFullscreen():showNav||fullAPI.toggleNav();break}case"focusNav":{isFullscreen&&fullAPI.toggleFullscreen(),showNav||fullAPI.toggleNav(),fullAPI.focusOnUIElement(focusableUIElements.storyListMenu);break}case"search":{isFullscreen&&fullAPI.toggleFullscreen(),showNav||fullAPI.toggleNav(),setTimeout(()=>{fullAPI.focusOnUIElement(focusableUIElements.storySearchField,!0)},0);break}case"focusIframe":{let element=document2.getElementById("storybook-preview-iframe");if(element)try{element.contentWindow.focus()}catch{}break}case"focusPanel":{isFullscreen&&fullAPI.toggleFullscreen(),showPanel||fullAPI.togglePanel(),fullAPI.focusOnUIElement(focusableUIElements.storyPanelRoot);break}case"nextStory":{fullAPI.jumpToStory(1);break}case"prevStory":{fullAPI.jumpToStory(-1);break}case"nextComponent":{fullAPI.jumpToComponent(1);break}case"prevComponent":{fullAPI.jumpToComponent(-1);break}case"fullScreen":{fullAPI.toggleFullscreen();break}case"togglePanel":{isFullscreen&&(fullAPI.toggleFullscreen(),fullAPI.resetLayout()),fullAPI.togglePanel();break}case"toggleNav":{isFullscreen&&(fullAPI.toggleFullscreen(),fullAPI.resetLayout()),fullAPI.toggleNav();break}case"toolbar":{fullAPI.toggleToolbar();break}case"panelPosition":{isFullscreen&&fullAPI.toggleFullscreen(),showPanel||fullAPI.togglePanel(),fullAPI.togglePanelPosition();break}case"aboutPage":{fullAPI.navigate("/settings/about");break}case"shortcutsPage":{fullAPI.navigate("/settings/shortcuts");break}case"collapseAll":{fullAPI.collapseAll();break}case"expandAll":{fullAPI.expandAll();break}default:addonsShortcuts[feature].action();break}}},{shortcuts:persistedShortcuts=defaultShortcuts}=store2.getState(),state={shortcuts:keys(defaultShortcuts).reduce((acc,key)=>({...acc,[key]:persistedShortcuts[key]||defaultShortcuts[key]}),defaultShortcuts)};return{api,state,init:()=>{document2.addEventListener("keydown",event=>{focusInInput(event)||fullAPI.handleKeydownEvent(event)}),fullAPI.on(PREVIEW_KEYDOWN,data=>{fullAPI.handleKeydownEvent(data.event)})}}};var url_exports={};__export(url_exports,{init:()=>init11});import{NAVIGATE_URL,STORY_ARGS_UPDATED as STORY_ARGS_UPDATED2,SET_CURRENT_STORY,GLOBALS_UPDATED,UPDATE_QUERY_PARAMS}from"@storybook/core-events";import{queryFromLocation,buildArgsParam}from"@storybook/router";import{dequal as deepEqual2}from"dequal";import global7 from"global";var{window:globalWindow}=global7,parseBoolean=value=>{if(value==="true"||value==="1")return!0;if(value==="false"||value==="0")return!1},prevParams,initialUrlSupport=({state:{location:location2,path,viewMode,storyId:storyIdFromUrl},singleStory})=>{let{full,panel,nav,shortcuts,addonPanel,tabs,path:queryPath,...otherParams}=queryFromLocation(location2),layout={isFullscreen:parseBoolean(full),showNav:!singleStory&&parseBoolean(nav),showPanel:parseBoolean(panel),panelPosition:["right","bottom"].includes(panel)?panel:void 0,showTabs:parseBoolean(tabs)},ui={enableShortcuts:parseBoolean(shortcuts)},selectedPanel=addonPanel||void 0,storyId=storyIdFromUrl,customQueryParams=deepEqual2(prevParams,otherParams)?prevParams:otherParams;return prevParams=customQueryParams,{viewMode,layout,ui,selectedPanel,location:location2,path,customQueryParams,storyId}},init11=({store:store2,navigate,state,provider,fullAPI,...rest})=>{let navigateTo=(path,queryParams={},options={})=>{let params=Object.entries(queryParams).filter(([,v])=>v).sort(([a],[b])=>a<b?-1:1).map(([k,v])=>`${k}=${v}`),to=[path,...params].join("&");return navigate(to,options)},api={getQueryParam(key){let{customQueryParams}=store2.getState();return customQueryParams?customQueryParams[key]:void 0},getUrlState(){let{path,customQueryParams,storyId,url,viewMode}=store2.getState();return{path,queryParams:customQueryParams,storyId,url,viewMode}},setQueryParams(input){let{customQueryParams}=store2.getState(),queryParams={},update2={...customQueryParams,...Object.entries(input).reduce((acc,[key,value])=>(value!==null&&(acc[key]=value),acc),queryParams)};deepEqual2(customQueryParams,update2)||(store2.setState({customQueryParams:update2}),fullAPI.emit(UPDATE_QUERY_PARAMS,update2))},navigateUrl(url,options){navigate(url,{...options,plain:!0})}},initModule=()=>{let updateArgsParam=()=>{let{path,queryParams,viewMode}=fullAPI.getUrlState();if(viewMode!=="story")return;let currentStory=fullAPI.getCurrentStoryData();if(currentStory?.type!=="story")return;let{args,initialArgs}=currentStory,argsString=buildArgsParam(initialArgs,args);navigateTo(path,{...queryParams,args:argsString},{replace:!0}),api.setQueryParams({args:argsString})};fullAPI.on(SET_CURRENT_STORY,()=>updateArgsParam());let handleOrId;fullAPI.on(STORY_ARGS_UPDATED2,()=>{"requestIdleCallback"in globalWindow?(handleOrId&&globalWindow.cancelIdleCallback(handleOrId),handleOrId=globalWindow.requestIdleCallback(updateArgsParam,{timeout:1e3})):(handleOrId&&clearTimeout(handleOrId),setTimeout(updateArgsParam,100))}),fullAPI.on(GLOBALS_UPDATED,({globals,initialGlobals})=>{let{path,queryParams}=fullAPI.getUrlState(),globalsString=buildArgsParam(initialGlobals,globals);navigateTo(path,{...queryParams,globals:globalsString},{replace:!0}),api.setQueryParams({globals:globalsString})}),fullAPI.on(NAVIGATE_URL,(url,options)=>{fullAPI.navigateUrl(url,options)}),fullAPI.showReleaseNotesOnLaunch()&&navigate("/settings/release-notes")};return{api,state:initialUrlSupport({store:store2,navigate,state,provider,fullAPI,...rest}),init:initModule}};var versions_exports={};__export(versions_exports,{init:()=>init12});import global8 from"global";import semver from"semver";import memoize3 from"memoizerific";var version="7.0.0-beta.5";var{VERSIONCHECK}=global8,getVersionCheckData=memoize3(1)(()=>{try{return{...JSON.parse(VERSIONCHECK).data||{}}}catch{return{}}}),init12=({store:store2,mode,fullAPI})=>{let{dismissedVersionNotification}=store2.getState(),state={versions:{current:{version},...getVersionCheckData()},dismissedVersionNotification},api={getCurrentVersion:()=>{let{versions:{current}}=store2.getState();return current},getLatestVersion:()=>{let{versions:{latest,next,current}}=store2.getState();return current&&semver.prerelease(current.version)&&next?latest&&semver.gt(latest.version,next.version)?latest:next:latest},versionUpdateAvailable:()=>{let latest=api.getLatestVersion(),current=api.getCurrentVersion();if(latest){if(!latest.version||!current.version)return!0;let actualCurrent=!!semver.prerelease(current.version)?`${semver.major(current.version)}.${semver.minor(current.version)}.${semver.patch(current.version)}`:current.version,diff=semver.diff(actualCurrent,latest.version);return semver.gt(latest.version,actualCurrent)&&diff!=="patch"&&!diff.includes("pre")}return!1}};return{init:async()=>{let{versions={}}=store2.getState(),{latest,next}=getVersionCheckData();if(await store2.setState({versions:{...versions,latest,next}}),api.versionUpdateAvailable()){let latestVersion=api.getLatestVersion().version,diff=semver.diff(versions.current.version,versions.latest.version);latestVersion!==dismissedVersionNotification&&diff!=="patch"&&!semver.prerelease(latestVersion)&&mode!=="production"&&fullAPI.addNotification({id:"update",link:"/settings/about",content:{headline:`Storybook ${latestVersion} is available!`,subHeadline:`Your current version is: ${versions.current.version}`},icon:{name:"book"},onClear(){store2.setState({dismissedVersionNotification:latestVersion},{persistence:"permanent"})}})}},state,api}};var globals_exports={};__export(globals_exports,{init:()=>init13});import{SET_GLOBALS,UPDATE_GLOBALS,GLOBALS_UPDATED as GLOBALS_UPDATED2}from"@storybook/core-events";import{logger as logger4}from"@storybook/client-logger";import{dequal as deepEqual3}from"dequal";var init13=({store:store2,fullAPI})=>{let api={getGlobals(){return store2.getState().globals},getGlobalTypes(){return store2.getState().globalTypes},updateGlobals(newGlobals){fullAPI.emit(UPDATE_GLOBALS,{globals:newGlobals,options:{target:"storybook-preview-iframe"}})}},state={globals:{},globalTypes:{}},updateGlobals=globals=>{let currentGlobals=store2.getState()?.globals;deepEqual3(globals,currentGlobals)||store2.setState({globals})};return{api,state,init:()=>{fullAPI.on(GLOBALS_UPDATED2,function({globals}){let{ref}=getEventMetadata(this,fullAPI);ref?logger4.warn("received a GLOBALS_UPDATED from a non-local ref. This is not currently supported."):updateGlobals(globals)}),fullAPI.on(SET_GLOBALS,function({globals,globalTypes}){let{ref}=getEventMetadata(this,fullAPI),currentGlobals=store2.getState()?.globals;ref?Object.keys(globals).length>0&&logger4.warn("received globals from a non-local ref. This is not currently supported."):store2.setState({globals,globalTypes}),currentGlobals&&Object.keys(currentGlobals).length!==0&&!deepEqual3(globals,currentGlobals)&&api.updateGlobals(currentGlobals)})}}};import global9 from"global";import{SET_CONFIG as SET_CONFIG2}from"@storybook/core-events";import{Addon_TypesEnum as Addon_TypesEnum2}from"@storybook/types";import{logger as logger5}from"@storybook/client-logger";import{Channel}from"@storybook/channels";function mockChannel(){let transport={setHandler:()=>{},send:()=>{}};return new Channel({transport})}var AddonStore=class{constructor(){this.loaders={};this.elements={};this.config={};this.getChannel=()=>(this.channel||this.setChannel(mockChannel()),this.channel);this.getServerChannel=()=>{if(!this.serverChannel)throw new Error("Accessing non-existent serverChannel");return this.serverChannel};this.ready=()=>this.promise;this.hasChannel=()=>!!this.channel;this.hasServerChannel=()=>!!this.serverChannel;this.setChannel=channel=>{this.channel=channel,this.resolve()};this.setServerChannel=channel=>{this.serverChannel=channel};this.getElements=type=>(this.elements[type]||(this.elements[type]={}),this.elements[type]);this.addPanel=(name,options)=>{this.add(name,{type:Addon_TypesEnum2.PANEL,...options})};this.add=(name,addon)=>{let{type}=addon,collection=this.getElements(type);collection[name]={id:name,...addon}};this.setConfig=value=>{Object.assign(this.config,value),this.hasChannel()&&this.getChannel().emit(SET_CONFIG2,value)};this.getConfig=()=>this.config;this.register=(name,registerCallback)=>{this.loaders[name]&&logger5.warn(`${name} was loaded twice, this could have bad side-effects`),this.loaders[name]=registerCallback};this.loadAddons=api=>{Object.values(this.loaders).forEach(value=>value(api))};this.promise=new Promise(res=>{this.resolve=()=>res(this.getChannel())})}},KEY="__STORYBOOK_ADDONS_MANAGER";function getAddonsStore(){return global9[KEY]||(global9[KEY]=new AddonStore),global9[KEY]}var addons=getAddonsStore();var{ActiveTabs:ActiveTabs2}=layout_exports;var ManagerContext=createContext({api:void 0,state:initial_state_default({})}),combineParameters=(...parameterSets)=>mergeWith2({},...parameterSets,(objValue,srcValue)=>{if(Array.isArray(srcValue))return srcValue}),ManagerProvider=class extends Component{constructor(props){super(props);this.api={};this.initModules=()=>{this.modules.forEach(module=>{"init"in module&&module.init()})};let{location:location2,path,refId,viewMode=props.docsOptions.docsMode?"docs":"story",singleStory,storyId,docsOptions,navigate}=props,store2=new Store({getState:()=>this.state,setState:(stateChange,callback)=>this.setState(stateChange,callback)}),routeData={location:location2,path,viewMode,singleStory,storyId,refId},optionsData={docsOptions};this.state=store2.getInitialState(initial_state_default({...routeData,...optionsData}));let apiData={navigate,store:store2,provider:props.provider};this.modules=[provider_exports,channel_exports,addons_exports,layout_exports,notifications_exports,settings_exports,release_notes_exports,shortcuts_exports,stories_exports,refs_exports,globals_exports,url_exports,versions_exports].map(m=>m.init({...routeData,...optionsData,...apiData,state:this.state,fullAPI:this.api}));let state=initial_state_default(this.state,...this.modules.map(m=>m.state)),api=Object.assign(this.api,{navigate},...this.modules.map(m=>m.api));this.state=state,this.api=api}static getDerivedStateFromProps(props,state){return state.path!==props.path?{...state,location:props.location,path:props.path,refId:props.refId,viewMode:props.viewMode,storyId:props.storyId}:null}shouldComponentUpdate(nextProps,nextState){let prevState=this.state,prevProps=this.props;return prevState!==nextState||prevProps.path!==nextProps.path}render(){let{children}=this.props,value={state:this.state,api:this.api};return React.createElement(EffectOnMount,{effect:this.initModules},React.createElement(ManagerContext.Provider,{value},React.createElement(ManagerConsumer,null,children)))}};ManagerProvider.displayName="Manager";var EffectOnMount=({children,effect})=>(React.useEffect(effect,[]),children),defaultFilter=c=>c;function ManagerConsumer({filter=defaultFilter,children}){let c=useContext(ManagerContext),renderer=useRef(children),filterer=useRef(filter);if(typeof renderer.current!="function")return React.createElement(Fragment,null,renderer.current);let data=filterer.current(c),l=useMemo(()=>[...Object.entries(data).reduce((acc,keyval)=>acc.concat(keyval),[])],[c.state]);return useMemo(()=>{let Child=renderer.current;return React.createElement(Child,{...data})},l)}function useStorybookState(){let{state}=useContext(ManagerContext);return state}function useStorybookApi(){let{api}=useContext(ManagerContext);return api}function orDefault(fromStore,defaultState2){return typeof fromStore>"u"?defaultState2:fromStore}var useChannel=(eventMap,deps=[])=>{let api=useStorybookApi();return useEffect(()=>(Object.entries(eventMap).forEach(([type,listener])=>api.on(type,listener)),()=>{Object.entries(eventMap).forEach(([type,listener])=>api.off(type,listener))}),deps),api.emit};function useStoryPrepared(storyId){return useStorybookApi().isPrepared(storyId)}function useParameter(parameterKey,defaultValue){let result=useStorybookApi().getCurrentParameter(parameterKey);return orDefault(result,defaultValue)}var addonStateCache={};function useSharedState(stateId,defaultState2){let api=useStorybookApi(),existingState=api.getAddonState(stateId),state=orDefault(existingState,addonStateCache[stateId]?addonStateCache[stateId]:defaultState2),setState=(s,options)=>{addonStateCache[stateId]&&(addonStateCache[stateId]=s),api.setAddonState(stateId,s,options)},allListeners=useMemo(()=>{let stateChangeHandlers={[`${SHARED_STATE_CHANGED}-client-${stateId}`]:s=>setState(s),[`${SHARED_STATE_SET}-client-${stateId}`]:s=>setState(s)},stateInitializationHandlers={[SET_STORIES2]:()=>{let currentState=api.getAddonState(stateId);currentState?(addonStateCache[stateId]=currentState,api.emit(`${SHARED_STATE_SET}-manager-${stateId}`,currentState)):addonStateCache[stateId]?(setState(addonStateCache[stateId]),api.emit(`${SHARED_STATE_SET}-manager-${stateId}`,addonStateCache[stateId])):defaultState2!==void 0&&(setState(defaultState2),addonStateCache[stateId]=defaultState2,api.emit(`${SHARED_STATE_SET}-manager-${stateId}`,defaultState2))},[STORY_CHANGED2]:()=>{let currentState=api.getAddonState(stateId);currentState!==void 0&&api.emit(`${SHARED_STATE_SET}-manager-${stateId}`,currentState)}};return{...stateChangeHandlers,...stateInitializationHandlers}},[stateId]),emit=useChannel(allListeners);return[state,(newStateOrMerger,options)=>{setState(newStateOrMerger,options),emit(`${SHARED_STATE_CHANGED}-manager-${stateId}`,newStateOrMerger)}]}function useAddonState(addonId,defaultState2){return useSharedState(addonId,defaultState2)}function useArgs(){let{getCurrentStoryData,updateStoryArgs,resetStoryArgs}=useStorybookApi(),data=getCurrentStoryData(),args=data.type==="story"?data.args:{},updateArgs=useCallback(newArgs=>updateStoryArgs(data,newArgs),[data,updateStoryArgs]),resetArgs=useCallback(argNames=>resetStoryArgs(data,argNames),[data,resetStoryArgs]);return[args,updateArgs,resetArgs]}function useGlobals(){let api=useStorybookApi();return[api.getGlobals(),api.updateGlobals]}function useGlobalTypes(){return useStorybookApi().getGlobalTypes()}function useCurrentStory(){let{getCurrentStoryData}=useStorybookApi();return getCurrentStoryData()}function useArgTypes(){let current=useCurrentStory();return current?.type==="story"&¤t.argTypes||{}}export{ActiveTabs2 as ActiveTabs,ManagerConsumer as Consumer,ManagerContext,ManagerProvider as Provider,addons,combineParameters,controlOrMetaKey,controlOrMetaSymbol,eventMatchesShortcut,eventToShortcut,isMacLike,isShortcutTaken,keyToSymbol,merge_default as merge,mockChannel,optionOrAltSymbol,shortcutMatchesShortcut,shortcutToHumanString,Addon_TypesEnum2 as types,useAddonState,useArgTypes,useArgs,useChannel,useGlobalTypes,useGlobals,useParameter,useSharedState,useStoryPrepared,useStorybookApi,useStorybookState};
|
|
15
|
+
`});let versions=ref.versions&&Object.keys(ref.versions).length?ref.versions:loadedData.versions;await api.setRef(id,{id,url,...loadedData,...versions?{versions}:{},type:loadedData.storyIndex?"lazy":"auto-inject"})},getRefs:()=>{let{refs:refs2={}}=store2.getState();return refs2},setRef:(id,{storyIndex,setStoriesData,...rest},ready=!1)=>{if(singleStory)return;let{storyMapper=defaultStoryMapper}=provider.getConfig(),ref=api.getRefs()[id],storiesHash;setStoriesData?storiesHash=transformSetStoriesStoryDataToStoriesHash(map(setStoriesData,ref,{storyMapper}),{provider,docsOptions}):storyIndex&&(storiesHash=transformStoryIndexToStoriesHash(storyIndex,{provider,docsOptions})),storiesHash&&(storiesHash=addRefIds(storiesHash,ref)),api.updateRef(id,{stories:storiesHash,...rest,ready})},updateRef:(id,data)=>{let{[id]:ref,...updated}=api.getRefs();updated[id]={...ref,...data};let ordered=Object.keys(initialState).reduce((obj,key)=>(obj[key]=updated[key],obj),{});store2.setState({refs:ordered})}},refs=!singleStory&&global2.REFS||{},initialState=refs;return runCheck&&Object.entries(refs).forEach(([id,ref])=>{api.checkRef({...ref,stories:{}})}),{api,state:{refs:initialState}}};var getEventMetadata=(context,fullAPI)=>{let{source,refId,type}=context,[sourceType,sourceLocation]=getSourceType(source,refId),ref=refId&&fullAPI.getRefs()[refId]?fullAPI.getRefs()[refId]:fullAPI.findRef(sourceLocation),meta={source,sourceType,sourceLocation,refId,ref,type};switch(!0){case typeof refId=="string":case sourceType==="local":case sourceType==="external":return meta;default:return logger2.warn(`Received a ${type} frame that was not configured as a ref`),null}};var{FEATURES,fetch:fetch2}=global3,STORY_INDEX_PATH="./index.json",removedOptions=["enableShortcuts","theme","showRoots"];function removeRemovedOptions(options){if(!options||typeof options=="string")return options;let result={...options};return removedOptions.forEach(option=>{option in result&&delete result[option]}),result}var init8=({fullAPI,store:store2,navigate,provider,storyId:initialStoryId,viewMode:initialViewMode,docsOptions={}})=>{let api={storyId:toId,getData:(storyId,refId)=>{let result=api.resolveStory(storyId,refId);if(result?.type==="story"||result?.type==="docs")return result},isPrepared:(storyId,refId)=>{let data=api.getData(storyId,refId);return data.type==="story"?data.prepared:!0},resolveStory:(storyId,refId)=>{let{refs,storiesHash}=store2.getState();return refId?refs[refId].stories?refs[refId].stories[storyId]:void 0:storiesHash?storiesHash[storyId]:void 0},getCurrentStoryData:()=>{let{storyId,refId}=store2.getState();return api.getData(storyId,refId)},getParameters:(storyIdOrCombo,parameterName)=>{let{storyId,refId}=typeof storyIdOrCombo=="string"?{storyId:storyIdOrCombo,refId:void 0}:storyIdOrCombo,data=api.getData(storyId,refId);if(data?.type==="story"){let{parameters}=data;if(parameters)return parameterName?parameters[parameterName]:parameters}return null},getCurrentParameter:parameterName=>{let{storyId,refId}=store2.getState();return api.getParameters({storyId,refId},parameterName)||void 0},jumpToComponent:direction=>{let{storiesHash,storyId,refs,refId}=store2.getState();if(!api.getData(storyId,refId))return;let hash=refId?refs[refId].stories||{}:storiesHash,result=api.findSiblingStoryId(storyId,hash,direction,!0);result&&api.selectStory(result,void 0,{ref:refId})},jumpToStory:direction=>{let{storiesHash,storyId,refs,refId}=store2.getState(),story=api.getData(storyId,refId);if(!story)return;let hash=story.refId?refs[story.refId].stories:storiesHash,result=api.findSiblingStoryId(storyId,hash,direction,!1);result&&api.selectStory(result,void 0,{ref:refId})},selectFirstStory:()=>{let{storiesHash}=store2.getState(),firstStory=Object.keys(storiesHash).find(id=>storiesHash[id].type==="story");if(firstStory){api.selectStory(firstStory);return}navigate("/")},selectStory:(titleOrId=void 0,name=void 0,options={})=>{let{ref}=options,{storyId,storiesHash,refs}=store2.getState(),hash=ref?refs[ref].stories:storiesHash,kindSlug=storyId?.split("--",2)[0];if(name)if(titleOrId){let id=ref?`${ref}_${toId(titleOrId,name)}`:toId(titleOrId,name);if(hash[id])api.selectStory(id,void 0,options);else{let entry=hash[sanitize2(titleOrId)];if(entry?.type==="component"){let foundId=entry.children.find(childId=>hash[childId].name===name);foundId&&api.selectStory(foundId,void 0,options)}}}else{let id=toId(kindSlug,name);api.selectStory(id,void 0,options)}else{let entry=titleOrId?hash[titleOrId]||hash[sanitize2(titleOrId)]:hash[kindSlug];if(!entry)throw new Error(`Unknown id or title: '${titleOrId}'`);let leafEntry=api.findLeafEntry(hash,entry.id),fullId=leafEntry.refId?`${leafEntry.refId}_${leafEntry.id}`:leafEntry.id;navigate(`/${leafEntry.type}/${fullId}`)}},findLeafEntry(storiesHash,storyId){let entry=storiesHash[storyId];if(entry.type==="docs"||entry.type==="story")return entry;let childStoryId=entry.children[0];return api.findLeafEntry(storiesHash,childStoryId)},findLeafStoryId(storiesHash,storyId){return api.findLeafEntry(storiesHash,storyId)?.id},findSiblingStoryId(storyId,hash,direction,toSiblingGroup){if(toSiblingGroup){let lookupList2=getComponentLookupList(hash),index2=lookupList2.findIndex(i=>i.includes(storyId));return index2===lookupList2.length-1&&direction>0||index2===0&&direction<0?void 0:lookupList2[index2+direction]?lookupList2[index2+direction][0]:void 0}let lookupList=getStoriesLookupList(hash),index=lookupList.indexOf(storyId);if(!(index===lookupList.length-1&&direction>0)&&!(index===0&&direction<0))return lookupList[index+direction]},updateStoryArgs:(story,updatedArgs)=>{let{id:storyId,refId}=story;fullAPI.emit(UPDATE_STORY_ARGS,{storyId,updatedArgs,options:{target:refId}})},resetStoryArgs:(story,argNames)=>{let{id:storyId,refId}=story;fullAPI.emit(RESET_STORY_ARGS,{storyId,argNames,options:{target:refId}})},fetchIndex:async()=>{try{let result=await fetch2(STORY_INDEX_PATH);if(result.status!==200)throw new Error(await result.text());let storyIndex=await result.json();if(storyIndex.v<3){logger3.warn(`Skipping story index with version v${storyIndex.v}, awaiting SET_STORIES.`);return}await fullAPI.setIndex(storyIndex)}catch(err){store2.setState({storiesConfigured:!0,storiesFailed:err})}},setIndex:async storyIndex=>{let newHash=transformStoryIndexToStoriesHash(storyIndex,{provider,docsOptions}),oldHash=store2.getState().storiesHash;await store2.setState({storiesHash:addPreparedStories(newHash,oldHash),storiesConfigured:!0,storiesFailed:null})},updateStory:async(storyId,update2,ref)=>{if(ref){let{id:refId,stories}=ref;stories[storyId]={...stories[storyId],...update2},await fullAPI.updateRef(refId,{stories})}else{let{storiesHash}=store2.getState();storiesHash[storyId]={...storiesHash[storyId],...update2},await store2.setState({storiesHash})}}};return{api,state:{storiesHash:{},storyId:initialStoryId,viewMode:initialViewMode,storiesConfigured:!1,hasCalledSetOptions:!1},init:async()=>{fullAPI.on(STORY_SPECIFIED,function({storyId,viewMode}){let{sourceType}=getEventMetadata(this,fullAPI);if(!fullAPI.isSettingsScreenActive()&&sourceType==="local"){let state=store2.getState();(state.storyId!==storyId||state.viewMode!==viewMode)&&navigate(`/${viewMode}/${storyId}`)}}),fullAPI.on(STORY_CHANGED,function(){let{sourceType}=getEventMetadata(this,fullAPI);if(sourceType==="local"){let options=fullAPI.getCurrentParameter("options");options&&fullAPI.setOptions(removeRemovedOptions(options))}}),fullAPI.on(STORY_PREPARED,function({id,...update2}){let{ref,sourceType}=getEventMetadata(this,fullAPI);if(fullAPI.updateStory(id,{...update2,prepared:!0},ref),ref)fullAPI.updateRef(ref.id,{ready:!0});else if(!store2.getState().hasCalledSetOptions){let{options}=update2.parameters;fullAPI.setOptions(removeRemovedOptions(options)),store2.setState({hasCalledSetOptions:!0})}if(sourceType==="local"){let{storyId,storiesHash,refId}=store2.getState(),toBePreloaded=Array.from(new Set([api.findSiblingStoryId(storyId,storiesHash,1,!0),api.findSiblingStoryId(storyId,storiesHash,-1,!0)])).filter(Boolean);fullAPI.emit(PRELOAD_ENTRIES,{ids:toBePreloaded,options:{target:refId}})}}),fullAPI.on(SET_INDEX,function(index){let{ref}=getEventMetadata(this,fullAPI);if(ref)fullAPI.setRef(ref.id,{...ref,storyIndex:index},!0);else{fullAPI.setIndex(index);let options=fullAPI.getCurrentParameter("options");fullAPI.setOptions(removeRemovedOptions(options))}}),fullAPI.on(SET_STORIES,function(data){let{ref}=getEventMetadata(this,fullAPI),setStoriesData=data.v?denormalizeStoryParameters(data):data.stories;if(ref)fullAPI.setRef(ref.id,{...ref,setStoriesData},!0);else throw new Error("Cannot call SET_STORIES for local frame")}),fullAPI.on(SELECT_STORY,function({kind,story,storyId,...rest}){let{ref}=getEventMetadata(this,fullAPI);ref?fullAPI.selectStory(storyId||kind,story,{...rest,ref:ref.id}):fullAPI.selectStory(storyId||kind,story,rest)}),fullAPI.on(STORY_ARGS_UPDATED,function({storyId,args}){let{ref}=getEventMetadata(this,fullAPI);fullAPI.updateStory(storyId,{args},ref)}),fullAPI.on(CONFIG_ERROR,function(err){store2.setState({storiesConfigured:!0,storiesFailed:err})}),FEATURES?.storyStoreV7&&(provider.serverChannel?.on(STORY_INDEX_INVALIDATED,()=>fullAPI.fetchIndex()),await fullAPI.fetchIndex())}}};var layout_exports={};__export(layout_exports,{ActiveTabs:()=>ActiveTabs,focusableUIElements:()=>focusableUIElements,init:()=>init9});import global4 from"global";import pick from"lodash/pick";import{dequal as deepEqual}from"dequal";import{create}from"@storybook/theming/create";import{SET_CONFIG}from"@storybook/core-events";var{document}=global4,ActiveTabs={SIDEBAR:"sidebar",CANVAS:"canvas",ADDONS:"addons"},defaultState={ui:{enableShortcuts:!0},layout:{initialActive:ActiveTabs.CANVAS,showToolbar:!0,isFullscreen:!1,showPanel:!0,showNav:!0,panelPosition:"bottom",showTabs:!0},selectedPanel:void 0,theme:create()},focusableUIElements={storySearchField:"storybook-explorer-searchfield",storyListMenu:"storybook-explorer-menu",storyPanelRoot:"storybook-panel-root"},init9=({store:store2,provider,singleStory,fullAPI})=>{let api={toggleFullscreen(toggled){return store2.setState(state=>{let{showNav}=state.layout,value=typeof toggled=="boolean"?toggled:!state.layout.isFullscreen,shouldShowNav=showNav===!1&&value===!1;return{layout:{...state.layout,isFullscreen:value,showNav:!singleStory&&shouldShowNav?!0:showNav}}},{persistence:"session"})},togglePanel(toggled){return store2.setState(state=>{let{showNav,isFullscreen}=state.layout,value=typeof toggled<"u"?toggled:!state.layout.showPanel,shouldToggleFullScreen=showNav===!1&&value===!1;return{layout:{...state.layout,showPanel:value,isFullscreen:shouldToggleFullScreen?!0:isFullscreen}}},{persistence:"session"})},togglePanelPosition(position){return typeof position<"u"?store2.setState(state=>({layout:{...state.layout,panelPosition:position}}),{persistence:"permanent"}):store2.setState(state=>({layout:{...state.layout,panelPosition:state.layout.panelPosition==="right"?"bottom":"right"}}),{persistence:"permanent"})},toggleNav(toggled){return store2.setState(state=>{if(singleStory)return{layout:state.layout};let{showPanel,isFullscreen}=state.layout,showNav=typeof toggled<"u"?toggled:!state.layout.showNav,shouldToggleFullScreen=showPanel===!1&&showNav===!1;return{layout:{...state.layout,showNav,isFullscreen:shouldToggleFullScreen?!0:!showNav&&isFullscreen}}},{persistence:"session"})},toggleToolbar(toggled){return store2.setState(state=>{let value=typeof toggled<"u"?toggled:!state.layout.showToolbar;return{layout:{...state.layout,showToolbar:value}}},{persistence:"session"})},resetLayout(){return store2.setState(state=>({layout:{...state.layout,showNav:!1,showPanel:!1,isFullscreen:!1}}),{persistence:"session"})},focusOnUIElement(elementId,select){if(!elementId)return;let element=document.getElementById(elementId);element&&(element.focus(),select&&element.select())},getInitialOptions(){let{theme,selectedPanel,...options}=provider.getConfig();return{...defaultState,layout:{...defaultState.layout,...pick(options,Object.keys(defaultState.layout)),...singleStory&&{showNav:!1}},ui:{...defaultState.ui,...pick(options,Object.keys(defaultState.ui))},selectedPanel:selectedPanel||defaultState.selectedPanel,theme:theme||defaultState.theme}},setOptions:options=>{let{layout,ui,selectedPanel,theme}=store2.getState();if(options){let updatedLayout={...layout,...pick(options,Object.keys(layout)),...singleStory&&{showNav:!1}},updatedUi={...ui,...pick(options,Object.keys(ui))},updatedTheme={...theme,...options.theme},modification={};deepEqual(ui,updatedUi)||(modification.ui=updatedUi),deepEqual(layout,updatedLayout)||(modification.layout=updatedLayout),options.selectedPanel&&!deepEqual(selectedPanel,options.selectedPanel)&&(modification.selectedPanel=options.selectedPanel),Object.keys(modification).length&&store2.setState(modification,{persistence:"permanent"}),deepEqual(theme,updatedTheme)||store2.setState({theme:updatedTheme})}}},persisted=pick(store2.getState(),"layout","ui","selectedPanel");return{api,state:merge_default(api.getInitialOptions(),persisted),init:()=>{api.setOptions(merge_default(api.getInitialOptions(),persisted)),fullAPI.on(SET_CONFIG,()=>{api.setOptions(merge_default(api.getInitialOptions(),persisted))})}}};var shortcuts_exports={};__export(shortcuts_exports,{controlOrMetaKey:()=>controlOrMetaKey2,defaultShortcuts:()=>defaultShortcuts,init:()=>init10,isMacLike:()=>isMacLike2,keys:()=>keys});import global6 from"global";import{PREVIEW_KEYDOWN}from"@storybook/core-events";import global5 from"global";var{navigator}=global5,isMacLike=()=>navigator&&navigator.platform?!!navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i):!1,controlOrMetaSymbol=()=>isMacLike()?"\u2318":"ctrl",controlOrMetaKey=()=>isMacLike()?"meta":"control",optionOrAltSymbol=()=>isMacLike()?"\u2325":"alt",isShortcutTaken=(arr1,arr2)=>JSON.stringify(arr1)===JSON.stringify(arr2),eventToShortcut=e=>{if(["Meta","Alt","Control","Shift"].includes(e.key))return null;let keys2=[];return e.altKey&&keys2.push("alt"),e.ctrlKey&&keys2.push("control"),e.metaKey&&keys2.push("meta"),e.shiftKey&&keys2.push("shift"),e.key&&e.key.length===1&&e.key!==" "&&keys2.push(e.key.toUpperCase()),e.key===" "&&keys2.push("space"),e.key==="Escape"&&keys2.push("escape"),e.key==="ArrowRight"&&keys2.push("ArrowRight"),e.key==="ArrowDown"&&keys2.push("ArrowDown"),e.key==="ArrowUp"&&keys2.push("ArrowUp"),e.key==="ArrowLeft"&&keys2.push("ArrowLeft"),keys2.length>0?keys2:null},shortcutMatchesShortcut=(inputShortcut,shortcut)=>!inputShortcut||!shortcut||(inputShortcut.join("")==="shift/"&&inputShortcut.shift(),inputShortcut.length!==shortcut.length)?!1:!inputShortcut.find((key,i)=>key!==shortcut[i]),eventMatchesShortcut=(e,shortcut)=>shortcutMatchesShortcut(eventToShortcut(e),shortcut),keyToSymbol=key=>key==="alt"?optionOrAltSymbol():key==="control"?"\u2303":key==="meta"?"\u2318":key==="shift"?"\u21E7\u200B":key==="Enter"||key==="Backspace"||key==="Esc"||key==="escape"?"":key===" "?"SPACE":key==="ArrowUp"?"\u2191":key==="ArrowDown"?"\u2193":key==="ArrowLeft"?"\u2190":key==="ArrowRight"?"\u2192":key.toUpperCase(),shortcutToHumanString=shortcut=>shortcut.map(keyToSymbol).join(" ");var{navigator:navigator2,document:document2}=global6,isMacLike2=()=>navigator2&&navigator2.platform?!!navigator2.platform.match(/(Mac|iPhone|iPod|iPad)/i):!1,controlOrMetaKey2=()=>isMacLike2()?"meta":"control";function keys(o){return Object.keys(o)}var defaultShortcuts=Object.freeze({fullScreen:["F"],togglePanel:["A"],panelPosition:["D"],toggleNav:["S"],toolbar:["T"],search:["/"],focusNav:["1"],focusIframe:["2"],focusPanel:["3"],prevComponent:["alt","ArrowUp"],nextComponent:["alt","ArrowDown"],prevStory:["alt","ArrowLeft"],nextStory:["alt","ArrowRight"],shortcutsPage:[controlOrMetaKey2(),"shift",","],aboutPage:[","],escape:["escape"],collapseAll:[controlOrMetaKey2(),"shift","ArrowUp"],expandAll:[controlOrMetaKey2(),"shift","ArrowDown"]}),addonsShortcuts={};function focusInInput(event){let target=event.target;return/input|textarea/i.test(target.tagName)||target.getAttribute("contenteditable")!==null}var init10=({store:store2,fullAPI})=>{let api={getShortcutKeys(){return store2.getState().shortcuts},getDefaultShortcuts(){return{...defaultShortcuts,...api.getAddonsShortcutDefaults()}},getAddonsShortcuts(){return addonsShortcuts},getAddonsShortcutLabels(){let labels={};return Object.entries(api.getAddonsShortcuts()).forEach(([actionName,{label}])=>{labels[actionName]=label}),labels},getAddonsShortcutDefaults(){let defaults={};return Object.entries(api.getAddonsShortcuts()).forEach(([actionName,{defaultShortcut}])=>{defaults[actionName]=defaultShortcut}),defaults},async setShortcuts(shortcuts){return await store2.setState({shortcuts},{persistence:"permanent"}),shortcuts},async restoreAllDefaultShortcuts(){return api.setShortcuts(api.getDefaultShortcuts())},async setShortcut(action,value){let shortcuts=api.getShortcutKeys();return await api.setShortcuts({...shortcuts,[action]:value}),value},async setAddonShortcut(addon,shortcut){let shortcuts=api.getShortcutKeys();return await api.setShortcuts({...shortcuts,[`${addon}-${shortcut.actionName}`]:shortcut.defaultShortcut}),addonsShortcuts[`${addon}-${shortcut.actionName}`]=shortcut,shortcut},async restoreDefaultShortcut(action){let defaultShortcut=api.getDefaultShortcuts()[action];return api.setShortcut(action,defaultShortcut)},handleKeydownEvent(event){let shortcut=eventToShortcut(event),shortcuts=api.getShortcutKeys(),matchedFeature=keys(shortcuts).find(feature=>shortcutMatchesShortcut(shortcut,shortcuts[feature]));matchedFeature&&(event?.preventDefault&&event.preventDefault(),api.handleShortcutFeature(matchedFeature))},handleShortcutFeature(feature){let{layout:{isFullscreen,showNav,showPanel},ui:{enableShortcuts}}=store2.getState();if(!!enableShortcuts)switch(feature){case"escape":{isFullscreen?fullAPI.toggleFullscreen():showNav||fullAPI.toggleNav();break}case"focusNav":{isFullscreen&&fullAPI.toggleFullscreen(),showNav||fullAPI.toggleNav(),fullAPI.focusOnUIElement(focusableUIElements.storyListMenu);break}case"search":{isFullscreen&&fullAPI.toggleFullscreen(),showNav||fullAPI.toggleNav(),setTimeout(()=>{fullAPI.focusOnUIElement(focusableUIElements.storySearchField,!0)},0);break}case"focusIframe":{let element=document2.getElementById("storybook-preview-iframe");if(element)try{element.contentWindow.focus()}catch{}break}case"focusPanel":{isFullscreen&&fullAPI.toggleFullscreen(),showPanel||fullAPI.togglePanel(),fullAPI.focusOnUIElement(focusableUIElements.storyPanelRoot);break}case"nextStory":{fullAPI.jumpToStory(1);break}case"prevStory":{fullAPI.jumpToStory(-1);break}case"nextComponent":{fullAPI.jumpToComponent(1);break}case"prevComponent":{fullAPI.jumpToComponent(-1);break}case"fullScreen":{fullAPI.toggleFullscreen();break}case"togglePanel":{isFullscreen&&(fullAPI.toggleFullscreen(),fullAPI.resetLayout()),fullAPI.togglePanel();break}case"toggleNav":{isFullscreen&&(fullAPI.toggleFullscreen(),fullAPI.resetLayout()),fullAPI.toggleNav();break}case"toolbar":{fullAPI.toggleToolbar();break}case"panelPosition":{isFullscreen&&fullAPI.toggleFullscreen(),showPanel||fullAPI.togglePanel(),fullAPI.togglePanelPosition();break}case"aboutPage":{fullAPI.navigate("/settings/about");break}case"shortcutsPage":{fullAPI.navigate("/settings/shortcuts");break}case"collapseAll":{fullAPI.collapseAll();break}case"expandAll":{fullAPI.expandAll();break}default:addonsShortcuts[feature].action();break}}},{shortcuts:persistedShortcuts=defaultShortcuts}=store2.getState(),state={shortcuts:keys(defaultShortcuts).reduce((acc,key)=>({...acc,[key]:persistedShortcuts[key]||defaultShortcuts[key]}),defaultShortcuts)};return{api,state,init:()=>{document2.addEventListener("keydown",event=>{focusInInput(event)||fullAPI.handleKeydownEvent(event)}),fullAPI.on(PREVIEW_KEYDOWN,data=>{fullAPI.handleKeydownEvent(data.event)})}}};var url_exports={};__export(url_exports,{init:()=>init11});import{NAVIGATE_URL,STORY_ARGS_UPDATED as STORY_ARGS_UPDATED2,SET_CURRENT_STORY,GLOBALS_UPDATED,UPDATE_QUERY_PARAMS}from"@storybook/core-events";import{queryFromLocation,buildArgsParam}from"@storybook/router";import{dequal as deepEqual2}from"dequal";import global7 from"global";var{window:globalWindow}=global7,parseBoolean=value=>{if(value==="true"||value==="1")return!0;if(value==="false"||value==="0")return!1},prevParams,initialUrlSupport=({state:{location:location2,path,viewMode,storyId:storyIdFromUrl},singleStory})=>{let{full,panel,nav,shortcuts,addonPanel,tabs,path:queryPath,...otherParams}=queryFromLocation(location2),layout={isFullscreen:parseBoolean(full),showNav:!singleStory&&parseBoolean(nav),showPanel:parseBoolean(panel),panelPosition:["right","bottom"].includes(panel)?panel:void 0,showTabs:parseBoolean(tabs)},ui={enableShortcuts:parseBoolean(shortcuts)},selectedPanel=addonPanel||void 0,storyId=storyIdFromUrl,customQueryParams=deepEqual2(prevParams,otherParams)?prevParams:otherParams;return prevParams=customQueryParams,{viewMode,layout,ui,selectedPanel,location:location2,path,customQueryParams,storyId}},init11=({store:store2,navigate,state,provider,fullAPI,...rest})=>{let navigateTo=(path,queryParams={},options={})=>{let params=Object.entries(queryParams).filter(([,v])=>v).sort(([a],[b])=>a<b?-1:1).map(([k,v])=>`${k}=${v}`),to=[path,...params].join("&");return navigate(to,options)},api={getQueryParam(key){let{customQueryParams}=store2.getState();return customQueryParams?customQueryParams[key]:void 0},getUrlState(){let{path,customQueryParams,storyId,url,viewMode}=store2.getState();return{path,queryParams:customQueryParams,storyId,url,viewMode}},setQueryParams(input){let{customQueryParams}=store2.getState(),queryParams={},update2={...customQueryParams,...Object.entries(input).reduce((acc,[key,value])=>(value!==null&&(acc[key]=value),acc),queryParams)};deepEqual2(customQueryParams,update2)||(store2.setState({customQueryParams:update2}),fullAPI.emit(UPDATE_QUERY_PARAMS,update2))},navigateUrl(url,options){navigate(url,{...options,plain:!0})}},initModule=()=>{let updateArgsParam=()=>{let{path,queryParams,viewMode}=fullAPI.getUrlState();if(viewMode!=="story")return;let currentStory=fullAPI.getCurrentStoryData();if(currentStory?.type!=="story")return;let{args,initialArgs}=currentStory,argsString=buildArgsParam(initialArgs,args);navigateTo(path,{...queryParams,args:argsString},{replace:!0}),api.setQueryParams({args:argsString})};fullAPI.on(SET_CURRENT_STORY,()=>updateArgsParam());let handleOrId;fullAPI.on(STORY_ARGS_UPDATED2,()=>{"requestIdleCallback"in globalWindow?(handleOrId&&globalWindow.cancelIdleCallback(handleOrId),handleOrId=globalWindow.requestIdleCallback(updateArgsParam,{timeout:1e3})):(handleOrId&&clearTimeout(handleOrId),setTimeout(updateArgsParam,100))}),fullAPI.on(GLOBALS_UPDATED,({globals,initialGlobals})=>{let{path,queryParams}=fullAPI.getUrlState(),globalsString=buildArgsParam(initialGlobals,globals);navigateTo(path,{...queryParams,globals:globalsString},{replace:!0}),api.setQueryParams({globals:globalsString})}),fullAPI.on(NAVIGATE_URL,(url,options)=>{fullAPI.navigateUrl(url,options)}),fullAPI.showReleaseNotesOnLaunch()&&navigate("/settings/release-notes")};return{api,state:initialUrlSupport({store:store2,navigate,state,provider,fullAPI,...rest}),init:initModule}};var versions_exports={};__export(versions_exports,{init:()=>init12});import global8 from"global";import semver from"semver";import memoize3 from"memoizerific";var version="7.0.0-beta.6";var{VERSIONCHECK}=global8,getVersionCheckData=memoize3(1)(()=>{try{return{...JSON.parse(VERSIONCHECK).data||{}}}catch{return{}}}),init12=({store:store2,mode,fullAPI})=>{let{dismissedVersionNotification}=store2.getState(),state={versions:{current:{version},...getVersionCheckData()},dismissedVersionNotification},api={getCurrentVersion:()=>{let{versions:{current}}=store2.getState();return current},getLatestVersion:()=>{let{versions:{latest,next,current}}=store2.getState();return current&&semver.prerelease(current.version)&&next?latest&&semver.gt(latest.version,next.version)?latest:next:latest},versionUpdateAvailable:()=>{let latest=api.getLatestVersion(),current=api.getCurrentVersion();if(latest){if(!latest.version||!current.version)return!0;let actualCurrent=!!semver.prerelease(current.version)?`${semver.major(current.version)}.${semver.minor(current.version)}.${semver.patch(current.version)}`:current.version,diff=semver.diff(actualCurrent,latest.version);return semver.gt(latest.version,actualCurrent)&&diff!=="patch"&&!diff.includes("pre")}return!1}};return{init:async()=>{let{versions={}}=store2.getState(),{latest,next}=getVersionCheckData();if(await store2.setState({versions:{...versions,latest,next}}),api.versionUpdateAvailable()){let latestVersion=api.getLatestVersion().version,diff=semver.diff(versions.current.version,versions.latest.version);latestVersion!==dismissedVersionNotification&&diff!=="patch"&&!semver.prerelease(latestVersion)&&mode!=="production"&&fullAPI.addNotification({id:"update",link:"/settings/about",content:{headline:`Storybook ${latestVersion} is available!`,subHeadline:`Your current version is: ${versions.current.version}`},icon:{name:"book"},onClear(){store2.setState({dismissedVersionNotification:latestVersion},{persistence:"permanent"})}})}},state,api}};var globals_exports={};__export(globals_exports,{init:()=>init13});import{SET_GLOBALS,UPDATE_GLOBALS,GLOBALS_UPDATED as GLOBALS_UPDATED2}from"@storybook/core-events";import{logger as logger4}from"@storybook/client-logger";import{dequal as deepEqual3}from"dequal";var init13=({store:store2,fullAPI})=>{let api={getGlobals(){return store2.getState().globals},getGlobalTypes(){return store2.getState().globalTypes},updateGlobals(newGlobals){fullAPI.emit(UPDATE_GLOBALS,{globals:newGlobals,options:{target:"storybook-preview-iframe"}})}},state={globals:{},globalTypes:{}},updateGlobals=globals=>{let currentGlobals=store2.getState()?.globals;deepEqual3(globals,currentGlobals)||store2.setState({globals})};return{api,state,init:()=>{fullAPI.on(GLOBALS_UPDATED2,function({globals}){let{ref}=getEventMetadata(this,fullAPI);ref?logger4.warn("received a GLOBALS_UPDATED from a non-local ref. This is not currently supported."):updateGlobals(globals)}),fullAPI.on(SET_GLOBALS,function({globals,globalTypes}){let{ref}=getEventMetadata(this,fullAPI),currentGlobals=store2.getState()?.globals;ref?Object.keys(globals).length>0&&logger4.warn("received globals from a non-local ref. This is not currently supported."):store2.setState({globals,globalTypes}),currentGlobals&&Object.keys(currentGlobals).length!==0&&!deepEqual3(globals,currentGlobals)&&api.updateGlobals(currentGlobals)})}}};import global9 from"global";import{SET_CONFIG as SET_CONFIG2}from"@storybook/core-events";import{Addon_TypesEnum as Addon_TypesEnum2}from"@storybook/types";import{logger as logger5}from"@storybook/client-logger";import{Channel}from"@storybook/channels";function mockChannel(){let transport={setHandler:()=>{},send:()=>{}};return new Channel({transport})}var AddonStore=class{constructor(){this.loaders={};this.elements={};this.config={};this.getChannel=()=>(this.channel||this.setChannel(mockChannel()),this.channel);this.getServerChannel=()=>{if(!this.serverChannel)throw new Error("Accessing non-existent serverChannel");return this.serverChannel};this.ready=()=>this.promise;this.hasChannel=()=>!!this.channel;this.hasServerChannel=()=>!!this.serverChannel;this.setChannel=channel=>{this.channel=channel,this.resolve()};this.setServerChannel=channel=>{this.serverChannel=channel};this.getElements=type=>(this.elements[type]||(this.elements[type]={}),this.elements[type]);this.addPanel=(name,options)=>{this.add(name,{type:Addon_TypesEnum2.PANEL,...options})};this.add=(name,addon)=>{let{type}=addon,collection=this.getElements(type);collection[name]={id:name,...addon}};this.setConfig=value=>{Object.assign(this.config,value),this.hasChannel()&&this.getChannel().emit(SET_CONFIG2,value)};this.getConfig=()=>this.config;this.register=(name,registerCallback)=>{this.loaders[name]&&logger5.warn(`${name} was loaded twice, this could have bad side-effects`),this.loaders[name]=registerCallback};this.loadAddons=api=>{Object.values(this.loaders).forEach(value=>value(api))};this.promise=new Promise(res=>{this.resolve=()=>res(this.getChannel())})}},KEY="__STORYBOOK_ADDONS_MANAGER";function getAddonsStore(){return global9[KEY]||(global9[KEY]=new AddonStore),global9[KEY]}var addons=getAddonsStore();var{ActiveTabs:ActiveTabs2}=layout_exports;var ManagerContext=createContext({api:void 0,state:initial_state_default({})}),combineParameters=(...parameterSets)=>mergeWith2({},...parameterSets,(objValue,srcValue)=>{if(Array.isArray(srcValue))return srcValue}),ManagerProvider=class extends Component{constructor(props){super(props);this.api={};this.initModules=()=>{this.modules.forEach(module=>{"init"in module&&module.init()})};let{location:location2,path,refId,viewMode=props.docsOptions.docsMode?"docs":"story",singleStory,storyId,docsOptions,navigate}=props,store2=new Store({getState:()=>this.state,setState:(stateChange,callback)=>this.setState(stateChange,callback)}),routeData={location:location2,path,viewMode,singleStory,storyId,refId},optionsData={docsOptions};this.state=store2.getInitialState(initial_state_default({...routeData,...optionsData}));let apiData={navigate,store:store2,provider:props.provider};this.modules=[provider_exports,channel_exports,addons_exports,layout_exports,notifications_exports,settings_exports,release_notes_exports,shortcuts_exports,stories_exports,refs_exports,globals_exports,url_exports,versions_exports].map(m=>m.init({...routeData,...optionsData,...apiData,state:this.state,fullAPI:this.api}));let state=initial_state_default(this.state,...this.modules.map(m=>m.state)),api=Object.assign(this.api,{navigate},...this.modules.map(m=>m.api));this.state=state,this.api=api}static getDerivedStateFromProps(props,state){return state.path!==props.path?{...state,location:props.location,path:props.path,refId:props.refId,viewMode:props.viewMode,storyId:props.storyId}:null}shouldComponentUpdate(nextProps,nextState){let prevState=this.state,prevProps=this.props;return prevState!==nextState||prevProps.path!==nextProps.path}render(){let{children}=this.props,value={state:this.state,api:this.api};return React.createElement(EffectOnMount,{effect:this.initModules},React.createElement(ManagerContext.Provider,{value},React.createElement(ManagerConsumer,null,children)))}};ManagerProvider.displayName="Manager";var EffectOnMount=({children,effect})=>(React.useEffect(effect,[]),children),defaultFilter=c=>c;function ManagerConsumer({filter=defaultFilter,children}){let c=useContext(ManagerContext),renderer=useRef(children),filterer=useRef(filter);if(typeof renderer.current!="function")return React.createElement(Fragment,null,renderer.current);let data=filterer.current(c),l=useMemo(()=>[...Object.entries(data).reduce((acc,keyval)=>acc.concat(keyval),[])],[c.state]);return useMemo(()=>{let Child=renderer.current;return React.createElement(Child,{...data})},l)}function useStorybookState(){let{state}=useContext(ManagerContext);return state}function useStorybookApi(){let{api}=useContext(ManagerContext);return api}function orDefault(fromStore,defaultState2){return typeof fromStore>"u"?defaultState2:fromStore}var useChannel=(eventMap,deps=[])=>{let api=useStorybookApi();return useEffect(()=>(Object.entries(eventMap).forEach(([type,listener])=>api.on(type,listener)),()=>{Object.entries(eventMap).forEach(([type,listener])=>api.off(type,listener))}),deps),api.emit};function useStoryPrepared(storyId){return useStorybookApi().isPrepared(storyId)}function useParameter(parameterKey,defaultValue){let result=useStorybookApi().getCurrentParameter(parameterKey);return orDefault(result,defaultValue)}var addonStateCache={};function useSharedState(stateId,defaultState2){let api=useStorybookApi(),existingState=api.getAddonState(stateId),state=orDefault(existingState,addonStateCache[stateId]?addonStateCache[stateId]:defaultState2),setState=(s,options)=>{addonStateCache[stateId]&&(addonStateCache[stateId]=s),api.setAddonState(stateId,s,options)},allListeners=useMemo(()=>{let stateChangeHandlers={[`${SHARED_STATE_CHANGED}-client-${stateId}`]:s=>setState(s),[`${SHARED_STATE_SET}-client-${stateId}`]:s=>setState(s)},stateInitializationHandlers={[SET_STORIES2]:()=>{let currentState=api.getAddonState(stateId);currentState?(addonStateCache[stateId]=currentState,api.emit(`${SHARED_STATE_SET}-manager-${stateId}`,currentState)):addonStateCache[stateId]?(setState(addonStateCache[stateId]),api.emit(`${SHARED_STATE_SET}-manager-${stateId}`,addonStateCache[stateId])):defaultState2!==void 0&&(setState(defaultState2),addonStateCache[stateId]=defaultState2,api.emit(`${SHARED_STATE_SET}-manager-${stateId}`,defaultState2))},[STORY_CHANGED2]:()=>{let currentState=api.getAddonState(stateId);currentState!==void 0&&api.emit(`${SHARED_STATE_SET}-manager-${stateId}`,currentState)}};return{...stateChangeHandlers,...stateInitializationHandlers}},[stateId]),emit=useChannel(allListeners);return[state,(newStateOrMerger,options)=>{setState(newStateOrMerger,options),emit(`${SHARED_STATE_CHANGED}-manager-${stateId}`,newStateOrMerger)}]}function useAddonState(addonId,defaultState2){return useSharedState(addonId,defaultState2)}function useArgs(){let{getCurrentStoryData,updateStoryArgs,resetStoryArgs}=useStorybookApi(),data=getCurrentStoryData(),args=data.type==="story"?data.args:{},updateArgs=useCallback(newArgs=>updateStoryArgs(data,newArgs),[data,updateStoryArgs]),resetArgs=useCallback(argNames=>resetStoryArgs(data,argNames),[data,resetStoryArgs]);return[args,updateArgs,resetArgs]}function useGlobals(){let api=useStorybookApi();return[api.getGlobals(),api.updateGlobals]}function useGlobalTypes(){return useStorybookApi().getGlobalTypes()}function useCurrentStory(){let{getCurrentStoryData}=useStorybookApi();return getCurrentStoryData()}function useArgTypes(){let current=useCurrentStory();return current?.type==="story"&¤t.argTypes||{}}export{ActiveTabs2 as ActiveTabs,ManagerConsumer as Consumer,ManagerContext,ManagerProvider as Provider,addons,combineParameters,controlOrMetaKey,controlOrMetaSymbol,eventMatchesShortcut,eventToShortcut,isMacLike,isShortcutTaken,keyToSymbol,merge_default as merge,mockChannel,optionOrAltSymbol,shortcutMatchesShortcut,shortcutToHumanString,Addon_TypesEnum2 as types,useAddonState,useArgTypes,useArgs,useChannel,useGlobalTypes,useGlobals,useParameter,useSharedState,useStoryPrepared,useStorybookApi,useStorybookState};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storybook/manager-api",
|
|
3
|
-
"version": "7.0.0-beta.
|
|
3
|
+
"version": "7.0.0-beta.6",
|
|
4
4
|
"description": "Core Storybook API & Context",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"storybook"
|
|
@@ -41,13 +41,13 @@
|
|
|
41
41
|
"prep": "../../../scripts/prepare/bundle.ts"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@storybook/channels": "7.0.0-beta.
|
|
45
|
-
"@storybook/client-logger": "7.0.0-beta.
|
|
46
|
-
"@storybook/core-events": "7.0.0-beta.
|
|
44
|
+
"@storybook/channels": "7.0.0-beta.6",
|
|
45
|
+
"@storybook/client-logger": "7.0.0-beta.6",
|
|
46
|
+
"@storybook/core-events": "7.0.0-beta.6",
|
|
47
47
|
"@storybook/csf": "next",
|
|
48
|
-
"@storybook/router": "7.0.0-beta.
|
|
49
|
-
"@storybook/theming": "7.0.0-beta.
|
|
50
|
-
"@storybook/types": "7.0.0-beta.
|
|
48
|
+
"@storybook/router": "7.0.0-beta.6",
|
|
49
|
+
"@storybook/theming": "7.0.0-beta.6",
|
|
50
|
+
"@storybook/types": "7.0.0-beta.6",
|
|
51
51
|
"dequal": "^2.0.2",
|
|
52
52
|
"global": "^4.4.0",
|
|
53
53
|
"lodash": "^4.17.21",
|
|
@@ -77,5 +77,5 @@
|
|
|
77
77
|
"./src/index.tsx"
|
|
78
78
|
]
|
|
79
79
|
},
|
|
80
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "edcda9c064bcb77c903263fafcaee2bd369f429a"
|
|
81
81
|
}
|