@storybook/manager-api 7.0.0-beta.8 → 7.0.0-beta.9

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 CHANGED
@@ -1,15 +1,15 @@
1
- var jt=Object.create;var Q=Object.defineProperty;var Kt=Object.getOwnPropertyDescriptor;var Ht=Object.getOwnPropertyNames;var Gt=Object.getPrototypeOf,Ut=Object.prototype.hasOwnProperty;var E=(e,t)=>{for(var o in t)Q(e,o,{get:t[o],enumerable:!0})},He=(e,t,o,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of Ht(t))!Ut.call(e,l)&&l!==o&&Q(e,l,{get:()=>t[l],enumerable:!(s=Kt(t,l))||s.enumerable});return e};var b=(e,t,o)=>(o=e!=null?jt(Gt(e)):{},He(t||!e||!e.__esModule?Q(o,"default",{value:e,enumerable:!0}):o,e)),Vt=e=>He(Q({},"__esModule",{value:!0}),e);var Ho={};E(Ho,{ActiveTabs:()=>wo,Consumer:()=>Mt,ManagerContext:()=>B,Provider:()=>se,addons:()=>kt,combineParameters:()=>ge,controlOrMetaKey:()=>mo,controlOrMetaSymbol:()=>yo,eventMatchesShortcut:()=>ho,eventToShortcut:()=>Z,isMacLike:()=>X,isShortcutTaken:()=>go,keyToSymbol:()=>Pt,merge:()=>x,mockChannel:()=>oe,optionOrAltSymbol:()=>ht,shortcutMatchesShortcut:()=>ee,shortcutToHumanString:()=>Po,types:()=>ne.Addon_TypesEnum,useAddonState:()=>Mo,useArgTypes:()=>Ko,useArgs:()=>Lo,useChannel:()=>Nt,useGlobalTypes:()=>Fo,useGlobals:()=>No,useParameter:()=>Do,useSharedState:()=>Ft,useStoryPrepared:()=>ko,useStorybookApi:()=>k,useStorybookState:()=>Oo});module.exports=Vt(Ho);var h=b(require("react")),Dt=b(require("lodash/mergeWith")),C=require("@storybook/core-events");var Ge=require("react"),Ue=({api:e,state:t})=>(0,Ge.createContext)({api:e,state:t});var N=b(require("store2"));var Y=require("telejson"),Ve=e=>{e.fn("set",function(t,o){return e.set(this._area,this._in(t),(0,Y.stringify)(o,{maxDepth:50}))}),e.fn("get",function(t,o){let s=e.get(this._area,this._in(t));return s!==null?(0,Y.parse)(s):o||s})};Ve(N.default._);var $e="@storybook/manager/store";function ce(e){return e.get($e)||{}}function $t(e,t){return e.set($e,t)}function qt(e,t){let o=ce(e);return $t(e,{...o,...t})}var H=class{constructor({setState:t,getState:o}){this.upstreamSetState=t,this.upstreamGetState=o}getInitialState(t){return{...t,...ce(N.default.local),...ce(N.default.session)}}getState(){return this.upstreamGetState()}async setState(t,o,s){let l,p;typeof o=="function"?(l=o,p=s):p=o;let{persistence:c="none"}=p||{},r={},u={};typeof t=="function"?r=n=>(u=t(n),u):(r=t,u=r);let i=await new Promise(n=>{this.upstreamSetState(r,n)});if(c!=="none"){let n=c==="session"?N.default.session:N.default.local;await qt(n,u)}return l&&l(i),i}};var qe=b(require("lodash/mergeWith")),Be=b(require("lodash/isEqual")),Qe=require("@storybook/client-logger"),x=(e,t)=>(0,qe.default)({},e,t,(o,s)=>{if(Array.isArray(s)&&Array.isArray(o))return s.forEach(l=>{o.find(c=>c===l||(0,Be.default)(c,l))||o.push(l)}),o;if(Array.isArray(o))return Qe.logger.log(["the types mismatch, picking",o]),o});var Bt=(...e)=>e.reduce((t,o)=>x(t,o),{}),W=Bt;var le={};E(le,{init:()=>Qt});var Qt=({provider:e,fullAPI:t})=>({api:e.renderPreview?{renderPreview:e.renderPreview}:{},state:{},init:()=>{e.handleAPI(t)}});var de={};E(de,{ensurePanel:()=>ue,init:()=>Yt});var Ye=require("@storybook/types");function ue(e,t,o){let s=Object.keys(e);return s.indexOf(t)>=0?t:s.length?s[0]:o}var Yt=({provider:e,store:t,fullAPI:o})=>{let s={getElements:l=>e.getElements(l),getPanels:()=>s.getElements(Ye.Addon_TypesEnum.PANEL),getStoryPanels:()=>{let l=s.getPanels(),{storyId:p}=t.getState(),c=o.getData(p);if(!l||!c||c.type!=="story")return l;let{parameters:r}=c,u={};return Object.entries(l).forEach(([i,n])=>{let{paramKey:a}=n;a&&r&&r[a]&&r[a].disable||(u[i]=n)}),u},getSelectedPanel:()=>{let{selectedPanel:l}=t.getState();return ue(s.getPanels(),l,l)},setSelectedPanel:l=>{t.setState({selectedPanel:l},{persistence:"session"})},setAddonState(l,p,c){let r,{addons:u}=t.getState();return typeof p=="function"?r=p(s.getAddonState(l)):r=p,t.setState({addons:{...u,[l]:r}},c).then(()=>s.getAddonState(l))},getAddonState:l=>t.getState().addons[l]};return{api:s,state:{selectedPanel:ue(s.getPanels(),t.getState().selectedPanel),addons:{}}}};var pe={};E(pe,{init:()=>Wt});var z=require("@storybook/core-events"),Wt=({provider:e})=>{let t={getChannel:()=>e.channel,on:(o,s)=>(e.channel.addListener(o,s),()=>e.channel.removeListener(o,s)),off:(o,s)=>e.channel.removeListener(o,s),once:(o,s)=>e.channel.once(o,s),emit:(o,s,...l)=>{var p;((p=s==null?void 0:s.options)==null?void 0:p.target)&&s.options.target!=="storybook-preview-iframe"&&!s.options.target.startsWith("storybook-ref-")&&(s.options.target=s.options.target!=="storybook_internal"?`storybook-ref-${s.options.target}`:"storybook-preview-iframe"),e.channel.emit(o,s,...l)},collapseAll:()=>{e.channel.emit(z.STORIES_COLLAPSE_ALL,{})},expandAll:()=>{t.emit(z.STORIES_EXPAND_ALL)}};return{api:t,state:{}}};var fe={};E(fe,{init:()=>zt});var zt=({store:e})=>{let t={addNotification:s=>{t.clearNotification(s.id);let{notifications:l}=e.getState();e.setState({notifications:[...l,s]})},clearNotification:s=>{let{notifications:l}=e.getState();e.setState({notifications:l.filter(c=>c.id!==s)});let p=l.find(c=>c.id===s);p&&p.onClear&&p.onClear()}};return{api:t,state:{notifications:[]}}};var Se={};E(Se,{init:()=>Jt});var Jt=({store:e,navigate:t,fullAPI:o})=>{let s=()=>{let{path:p}=o.getUrlState();return!!(p||"").match(/^\/settings/)};return{state:{settings:{lastTrackedStoryId:null}},api:{closeSettings:()=>{let{settings:{lastTrackedStoryId:p}}=e.getState();p?o.selectStory(p):o.selectFirstStory()},changeSettingsTab:p=>{t(`/settings/${p}`)},isSettingsScreenActive:s,navigateToSettingsPage:async p=>{if(!s()){let{settings:c,storyId:r}=e.getState();await e.setState({settings:{...c,lastTrackedStoryId:r}})}t(p)}}}};var ye={};E(ye,{init:()=>eo});var We=b(require("global")),ze=b(require("memoizerific")),{RELEASE_NOTES_DATA:Xt}=We.default,Zt=(0,ze.default)(1)(()=>{try{return{...JSON.parse(Xt)||{}}}catch{return{}}}),eo=({store:e})=>{let t=Zt(),o=()=>{let{releaseNotesViewed:l}=e.getState();return l||[]};return{state:{releaseNotesViewed:[]},api:{releaseNotesVersion:()=>t.currentVersion,setDidViewReleaseNotes:()=>{let l=o();l.includes(t.currentVersion)||e.setState({releaseNotesViewed:[...l,t.currentVersion]},{persistence:"permanent"})},showReleaseNotesOnLaunch:()=>{if(!t.currentVersion)return!1;let p=o().includes(t.currentVersion);return t.showOnFirstLaunch&&!p}}}};var ve={};E(ve,{init:()=>po});var dt=b(require("global")),M=require("@storybook/csf"),A=require("@storybook/core-events"),pt=require("@storybook/client-logger");var ut=require("@storybook/client-logger");var Ie={};E(Ie,{defaultStoryMapper:()=>lt,getSourceType:()=>Ae,init:()=>io});var Pe=b(require("global")),ct=require("ts-dedent");var me=b(require("memoizerific")),Je=require("ts-dedent"),Xe=b(require("lodash/countBy")),Ze=require("@storybook/csf"),et=b(require("lodash/mapValues"));var to=/\s*\/\s*/,tt=({globalParameters:e,kindParameters:t,stories:o})=>(0,et.default)(o,s=>({...s,parameters:ge(e,t[s.kind],s.parameters)})),ot=(e,{provider:t,docsOptions:o})=>G(oo(e),{provider:t,docsOptions:o}),oo=e=>({v:4,entries:Object.entries(e).reduce((o,[s,l])=>{if(!l)return o;let{docsOnly:p,fileName:c,...r}=l.parameters,u={title:l.kind,id:s,name:l.name,importPath:c};if(p)o[s]={type:"docs",standalone:!1,storiesImports:[],...u};else{let{argTypes:i,args:n,initialArgs:a}=l;o[s]={type:"story",...u,parameters:r,argTypes:i,args:n,initialArgs:a}}return o},{})}),ro=e=>{let t=(0,Xe.default)(Object.values(e.stories),"title");return{v:4,entries:Object.values(e.stories).reduce((o,s)=>{var p;let l="story";return(((p=s.parameters)==null?void 0:p.docsOnly)||s.name==="Page"&&t[s.title]===1)&&(l="docs"),o[s.id]={type:l,...l==="docs"&&{standalone:!1,storiesImports:[]},...s},o},{})}},G=(e,{provider:t,docsOptions:o})=>{if(!e.v)throw new Error("Composition: Missing stories.json version");let s=e.v===4?e:ro(e),l=Object.values(s.entries),{sidebar:p={}}=t.getConfig(),{showRoots:c,collapsedRoots:r=[],renderLabel:u}=p,i=typeof c<"u",n=Object.values(l).reduce((d,S)=>{if(o.docsMode&&S.type!=="docs")return d;let{title:y}=S,m=y.trim().split(to),g=(!i||c)&&m.length>1?[m.shift()]:[],_=[...g,...m],I=_.reduce((P,v,D)=>{let ae=D>0&&P[D-1],ie=(0,Ze.sanitize)(ae?`${ae}-${v}`:v);if(ae===ie)throw new Error(Je.dedent`
2
- Invalid part '${v}', leading to id === parentId ('${ie}'), inside title '${y}'
1
+ var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var src_exports={};__export(src_exports,{ActiveTabs:()=>ActiveTabs2,Consumer:()=>ManagerConsumer,ManagerContext:()=>ManagerContext,Provider:()=>ManagerProvider,addons:()=>addons,combineParameters:()=>combineParameters,controlOrMetaKey:()=>controlOrMetaKey,controlOrMetaSymbol:()=>controlOrMetaSymbol,eventMatchesShortcut:()=>eventMatchesShortcut,eventToShortcut:()=>eventToShortcut,isMacLike:()=>isMacLike,isShortcutTaken:()=>isShortcutTaken,keyToSymbol:()=>keyToSymbol,merge:()=>merge_default,mockChannel:()=>mockChannel,optionOrAltSymbol:()=>optionOrAltSymbol,shortcutMatchesShortcut:()=>shortcutMatchesShortcut,shortcutToHumanString:()=>shortcutToHumanString,types:()=>import_types2.Addon_TypesEnum,useAddonState:()=>useAddonState,useArgTypes:()=>useArgTypes,useArgs:()=>useArgs,useChannel:()=>useChannel,useGlobalTypes:()=>useGlobalTypes,useGlobals:()=>useGlobals,useParameter:()=>useParameter,useSharedState:()=>useSharedState,useStoryPrepared:()=>useStoryPrepared,useStorybookApi:()=>useStorybookApi,useStorybookState:()=>useStorybookState});module.exports=__toCommonJS(src_exports);var import_react2=__toESM(require("react")),import_mergeWith2=__toESM(require("lodash/mergeWith")),import_core_events8=require("@storybook/core-events");var import_react=require("react"),createContext=({api,state})=>(0,import_react.createContext)({api,state});var import_store2=__toESM(require("store2"));var import_telejson=require("telejson"),store_setup_default=_=>{_.fn("set",function(key,data){return _.set(this._area,this._in(key),(0,import_telejson.stringify)(data,{maxDepth:50}))}),_.fn("get",function(key,alt){let value=_.get(this._area,this._in(key));return value!==null?(0,import_telejson.parse)(value):alt||value})};store_setup_default(import_store2.default._);var STORAGE_KEY="@storybook/manager/store";function get(storage){return storage.get(STORAGE_KEY)||{}}function set(storage,value){return storage.set(STORAGE_KEY,value)}function update(storage,patch){let previous=get(storage);return set(storage,{...previous,...patch})}var Store=class{constructor({setState,getState}){this.upstreamSetState=setState,this.upstreamGetState=getState}getInitialState(base){return{...base,...get(import_store2.default.local),...get(import_store2.default.session)}}getState(){return this.upstreamGetState()}async setState(inputPatch,cbOrOptions,inputOptions){let callback,options;typeof cbOrOptions=="function"?(callback=cbOrOptions,options=inputOptions):options=cbOrOptions;let{persistence="none"}=options||{},patch={},delta={};typeof inputPatch=="function"?patch=state=>(delta=inputPatch(state),delta):(patch=inputPatch,delta=patch);let newState=await new Promise(resolve=>{this.upstreamSetState(patch,resolve)});if(persistence!=="none"){let storage=persistence==="session"?import_store2.default.session:import_store2.default.local;await update(storage,delta)}return callback&&callback(newState),newState}};var import_mergeWith=__toESM(require("lodash/mergeWith")),import_isEqual=__toESM(require("lodash/isEqual")),import_client_logger=require("@storybook/client-logger"),merge_default=(a,b)=>(0,import_mergeWith.default)({},a,b,(objValue,srcValue)=>{if(Array.isArray(srcValue)&&Array.isArray(objValue))return srcValue.forEach(s=>{objValue.find(o=>o===s||(0,import_isEqual.default)(o,s))||objValue.push(s)}),objValue;if(Array.isArray(objValue))return import_client_logger.logger.log(["the types mismatch, picking",objValue]),objValue});var main=(...additions)=>additions.reduce((acc,item)=>merge_default(acc,item),{}),initial_state_default=main;var provider_exports={};__export(provider_exports,{init:()=>init});var init=({provider,fullAPI})=>({api:provider.renderPreview?{renderPreview:provider.renderPreview}:{},state:{},init:()=>{provider.handleAPI(fullAPI)}});var addons_exports={};__export(addons_exports,{ensurePanel:()=>ensurePanel,init:()=>init2});var import_types=require("@storybook/types");function ensurePanel(panels,selectedPanel,currentPanel){let keys2=Object.keys(panels);return keys2.indexOf(selectedPanel)>=0?selectedPanel:keys2.length?keys2[0]:currentPanel}var init2=({provider,store:store2,fullAPI})=>{let api={getElements:type=>provider.getElements(type),getPanels:()=>api.getElements(import_types.Addon_TypesEnum.PANEL),getStoryPanels:()=>{let allPanels=api.getPanels(),{storyId}=store2.getState(),story=fullAPI.getData(storyId);if(!allPanels||!story||story.type!=="story")return allPanels;let{parameters}=story,filteredPanels={};return Object.entries(allPanels).forEach(([id,panel])=>{let{paramKey}=panel;paramKey&&parameters&&parameters[paramKey]&&parameters[paramKey].disable||(filteredPanels[id]=panel)}),filteredPanels},getSelectedPanel:()=>{let{selectedPanel}=store2.getState();return ensurePanel(api.getPanels(),selectedPanel,selectedPanel)},setSelectedPanel:panelName=>{store2.setState({selectedPanel:panelName},{persistence:"session"})},setAddonState(addonId,newStateOrMerger,options){let nextState,{addons:existing}=store2.getState();return typeof newStateOrMerger=="function"?nextState=newStateOrMerger(api.getAddonState(addonId)):nextState=newStateOrMerger,store2.setState({addons:{...existing,[addonId]:nextState}},options).then(()=>api.getAddonState(addonId))},getAddonState:addonId=>store2.getState().addons[addonId]};return{api,state:{selectedPanel:ensurePanel(api.getPanels(),store2.getState().selectedPanel),addons:{}}}};var channel_exports={};__export(channel_exports,{init:()=>init3});var import_core_events=require("@storybook/core-events"),init3=({provider})=>{let api={getChannel:()=>provider.channel,on:(type,cb)=>(provider.channel.addListener(type,cb),()=>provider.channel.removeListener(type,cb)),off:(type,cb)=>provider.channel.removeListener(type,cb),once:(type,cb)=>provider.channel.once(type,cb),emit:(type,data,...args)=>{var _a;(_a=data==null?void 0:data.options)!=null&&_a.target&&data.options.target!=="storybook-preview-iframe"&&!data.options.target.startsWith("storybook-ref-")&&(data.options.target=data.options.target!=="storybook_internal"?`storybook-ref-${data.options.target}`:"storybook-preview-iframe"),provider.channel.emit(type,data,...args)},collapseAll:()=>{provider.channel.emit(import_core_events.STORIES_COLLAPSE_ALL,{})},expandAll:()=>{api.emit(import_core_events.STORIES_EXPAND_ALL)}};return{api,state:{}}};var notifications_exports={};__export(notifications_exports,{init:()=>init4});var init4=({store:store2})=>{let api={addNotification:notification=>{api.clearNotification(notification.id);let{notifications}=store2.getState();store2.setState({notifications:[...notifications,notification]})},clearNotification:id=>{let{notifications}=store2.getState();store2.setState({notifications:notifications.filter(n=>n.id!==id)});let notification=notifications.find(n=>n.id===id);notification&&notification.onClear&&notification.onClear()}};return{api,state:{notifications:[]}}};var settings_exports={};__export(settings_exports,{init:()=>init5});var init5=({store:store2,navigate,fullAPI})=>{let isSettingsScreenActive=()=>{let{path}=fullAPI.getUrlState();return!!(path||"").match(/^\/settings/)};return{state:{settings:{lastTrackedStoryId:null}},api:{closeSettings:()=>{let{settings:{lastTrackedStoryId}}=store2.getState();lastTrackedStoryId?fullAPI.selectStory(lastTrackedStoryId):fullAPI.selectFirstStory()},changeSettingsTab:tab=>{navigate(`/settings/${tab}`)},isSettingsScreenActive,navigateToSettingsPage:async path=>{if(!isSettingsScreenActive()){let{settings,storyId}=store2.getState();await store2.setState({settings:{...settings,lastTrackedStoryId:storyId}})}navigate(path)}}}};var release_notes_exports={};__export(release_notes_exports,{init:()=>init6});var import_global=__toESM(require("global")),import_memoizerific=__toESM(require("memoizerific")),{RELEASE_NOTES_DATA}=import_global.default,getReleaseNotesData=(0,import_memoizerific.default)(1)(()=>{try{return{...JSON.parse(RELEASE_NOTES_DATA)||{}}}catch{return{}}}),init6=({store:store2})=>{let releaseNotesData=getReleaseNotesData(),getReleaseNotesViewed=()=>{let{releaseNotesViewed:persistedReleaseNotesViewed}=store2.getState();return persistedReleaseNotesViewed||[]};return{state:{releaseNotesViewed:[]},api:{releaseNotesVersion:()=>releaseNotesData.currentVersion,setDidViewReleaseNotes:()=>{let releaseNotesViewed=getReleaseNotesViewed();releaseNotesViewed.includes(releaseNotesData.currentVersion)||store2.setState({releaseNotesViewed:[...releaseNotesViewed,releaseNotesData.currentVersion]},{persistence:"permanent"})},showReleaseNotesOnLaunch:()=>{if(!releaseNotesData.currentVersion)return!1;let didViewReleaseNotes=getReleaseNotesViewed().includes(releaseNotesData.currentVersion);return releaseNotesData.showOnFirstLaunch&&!didViewReleaseNotes}}}};var stories_exports={};__export(stories_exports,{init:()=>init8});var import_global3=__toESM(require("global")),import_csf2=require("@storybook/csf"),import_core_events2=require("@storybook/core-events"),import_client_logger3=require("@storybook/client-logger");var import_client_logger2=require("@storybook/client-logger");var refs_exports={};__export(refs_exports,{defaultStoryMapper:()=>defaultStoryMapper,getSourceType:()=>getSourceType,init:()=>init7});var import_global2=__toESM(require("global")),import_ts_dedent2=require("ts-dedent");var import_memoizerific2=__toESM(require("memoizerific")),import_ts_dedent=require("ts-dedent"),import_countBy=__toESM(require("lodash/countBy")),import_csf=require("@storybook/csf"),import_mapValues=__toESM(require("lodash/mapValues"));var TITLE_PATH_SEPARATOR=/\s*\/\s*/,denormalizeStoryParameters=({globalParameters,kindParameters,stories})=>(0,import_mapValues.default)(stories,storyData=>({...storyData,parameters:combineParameters(globalParameters,kindParameters[storyData.kind],storyData.parameters)})),transformSetStoriesStoryDataToStoriesHash=(data,{provider,docsOptions})=>transformStoryIndexToStoriesHash(transformSetStoriesStoryDataToPreparedStoryIndex(data),{provider,docsOptions}),transformSetStoriesStoryDataToPreparedStoryIndex=stories=>({v:4,entries:Object.entries(stories).reduce((acc,[id,story])=>{if(!story)return acc;let{docsOnly,fileName,...parameters}=story.parameters,base={title:story.kind,id,name:story.name,importPath:fileName};if(docsOnly)acc[id]={type:"docs",standalone:!1,storiesImports:[],...base};else{let{argTypes,args,initialArgs}=story;acc[id]={type:"story",...base,parameters,argTypes,args,initialArgs}}return acc},{})}),transformStoryIndexV3toV4=index=>{let countByTitle=(0,import_countBy.default)(Object.values(index.stories),"title");return{v:4,entries:Object.values(index.stories).reduce((acc,entry)=>{var _a;let type="story";return((_a=entry.parameters)!=null&&_a.docsOnly||entry.name==="Page"&&countByTitle[entry.title]===1)&&(type="docs"),acc[entry.id]={type,...type==="docs"&&{standalone:!1,storiesImports:[]},...entry},acc},{})}},transformStoryIndexToStoriesHash=(index,{provider,docsOptions})=>{if(!index.v)throw new Error("Composition: Missing stories.json version");let v4Index=index.v===4?index:transformStoryIndexV3toV4(index),entryValues=Object.values(v4Index.entries),{sidebar={}}=provider.getConfig(),{showRoots,collapsedRoots=[],renderLabel}=sidebar,setShowRoots=typeof showRoots<"u",storiesHashOutOfOrder=Object.values(entryValues).reduce((acc,item)=>{if(docsOptions.docsMode&&item.type!=="docs")return acc;let{title}=item,groups=title.trim().split(TITLE_PATH_SEPARATOR),root=(!setShowRoots||showRoots)&&groups.length>1?[groups.shift()]:[],names=[...root,...groups],paths=names.reduce((list,name,idx)=>{let parent=idx>0&&list[idx-1],id=(0,import_csf.sanitize)(parent?`${parent}-${name}`:name);if(parent===id)throw new Error(import_ts_dedent.dedent`
2
+ Invalid part '${name}', leading to id === parentId ('${id}'), inside title '${title}'
3
3
 
4
4
  Did you create a path that uses the separator char accidentally, such as 'Vue <docs/>' where '/' is a separator char? See https://github.com/storybookjs/storybook/issues/6128
5
- `);return P.push(ie),P},[]);return I.forEach((P,v)=>{let D=I[v+1]||S.id;g.length&&v===0?d[P]=x(d[P]||{},{type:"root",id:P,name:_[v],depth:v,renderLabel:u,startCollapsed:r.includes(P),children:[D],isRoot:!0,isComponent:!1,isLeaf:!1}):(!d[P]||d[P].type==="component")&&v===I.length-1?d[P]=x(d[P]||{},{type:"component",id:P,name:_[v],parent:I[v-1],depth:v,renderLabel:u,...D&&{children:[D]},isRoot:!1,isComponent:!0,isLeaf:!1}):d[P]=x(d[P]||{},{type:"group",id:P,name:_[v],parent:I[v-1],depth:v,renderLabel:u,...D&&{children:[D]},isRoot:!1,isComponent:!1,isLeaf:!1})}),d[S.id]={type:"story",...S,depth:I.length,parent:I[I.length-1],renderLabel:u,...S.type!=="docs"&&{prepared:!!S.parameters},kind:S.title,isRoot:!1,isComponent:!1,isLeaf:!0},d},{});function a(d,S){return d[S.id]||(d[S.id]=S,(S.type==="root"||S.type==="group"||S.type==="component")&&S.children.forEach(y=>a(d,n[y]))),d}let f=Object.values(n).filter(d=>d.type!=="root"&&!d.parent).reduce(a,{});return Object.values(n).filter(d=>d.type==="root").reduce(a,f)},rt=(e,t)=>t?Object.fromEntries(Object.entries(e).map(([o,s])=>{let l=t[o];return s.type==="story"&&(l==null?void 0:l.type)==="story"&&l.prepared?[o,{...l,...s,prepared:!0}]:[o,s]})):e,nt=(0,me.default)(1)(e=>Object.entries(e).reduce((t,o)=>{let s=o[1];return s.type==="component"&&t.push([...s.children]),t},[])),st=(0,me.default)(1)(e=>Object.keys(e).filter(t=>["story","docs"].includes(e[t].type)));var{location:no,fetch:at}=Pe.default,it=/(\/((?:[^\/]+?)\.[^\/]+?)|\/)$/,Ae=(e,t)=>{let{origin:o,pathname:s}=no,{origin:l,pathname:p}=new URL(e),c=`${o+s}`.replace(it,""),r=`${l+p}`.replace(it,"");return c===r?["local",r]:t||e?["external",r]:[null,null]},lt=(e,t)=>({...t,kind:t.kind.replace("|","/")}),so=(e,t)=>Object.entries(e).reduce((o,[s,l])=>({...o,[s]:{...l,refId:t.id}}),{});async function he(e){if(!e)return{};try{let t=await e;if(!t.ok)return{};let o=await t.json();return o.entries||o.stories?{storyIndex:o}:o}catch(t){return{error:t}}}var ao=(e,t,o)=>{let{storyMapper:s}=o;return s?Object.entries(e).reduce((l,[p,c])=>({...l,[p]:s(t,c)}),{}):e},io=({store:e,provider:t,singleStory:o,docsOptions:s={}},{runCheck:l=!0}={})=>{let p={findRef:u=>{let i=p.getRefs();return Object.values(i).find(({url:n})=>n.match(u))},changeRefVersion:(u,i)=>{let{versions:n,title:a}=p.getRefs()[u],f={id:u,url:i,versions:n,title:a,stories:{}};p.checkRef(f)},changeRefState:(u,i)=>{let{[u]:n,...a}=p.getRefs();a[u]={...n,ready:i},e.setState({refs:a})},checkRef:async u=>{let{id:i,url:n,version:a,type:f}=u,d=f==="server-checked",S={},y=a?`?version=${a}`:"",m=d?"omit":"include",[g,_]=await Promise.all(["index.json","stories.json"].map(async P=>at(`${n}/${P}${y}`,{headers:{Accept:"application/json"},credentials:m})));if(g.ok||_.ok){let[P,v]=await Promise.all([g.ok?he(g):he(_),he(at(`${n}/metadata.json${y}`,{headers:{Accept:"application/json"},credentials:m,cache:"no-cache"}).catch(()=>!1))]);Object.assign(S,{...P,...v})}else d||(S.error={message:ct.dedent`
5
+ `);return list.push(id),list},[]);return paths.forEach((id,idx)=>{let childId=paths[idx+1]||item.id;root.length&&idx===0?acc[id]=merge_default(acc[id]||{},{type:"root",id,name:names[idx],depth:idx,renderLabel,startCollapsed:collapsedRoots.includes(id),children:[childId],isRoot:!0,isComponent:!1,isLeaf:!1}):(!acc[id]||acc[id].type==="component")&&idx===paths.length-1?acc[id]=merge_default(acc[id]||{},{type:"component",id,name:names[idx],parent:paths[idx-1],depth:idx,renderLabel,...childId&&{children:[childId]},isRoot:!1,isComponent:!0,isLeaf:!1}):acc[id]=merge_default(acc[id]||{},{type:"group",id,name:names[idx],parent:paths[idx-1],depth:idx,renderLabel,...childId&&{children:[childId]},isRoot:!1,isComponent:!1,isLeaf:!1})}),acc[item.id]={type:"story",...item,depth:paths.length,parent:paths[paths.length-1],renderLabel,...item.type!=="docs"&&{prepared:!!item.parameters},kind:item.title,isRoot:!1,isComponent:!1,isLeaf:!0},acc},{});function addItem(acc,item){return acc[item.id]||(acc[item.id]=item,(item.type==="root"||item.type==="group"||item.type==="component")&&item.children.forEach(childId=>addItem(acc,storiesHashOutOfOrder[childId]))),acc}let orphanHash=Object.values(storiesHashOutOfOrder).filter(i=>i.type!=="root"&&!i.parent).reduce(addItem,{});return Object.values(storiesHashOutOfOrder).filter(i=>i.type==="root").reduce(addItem,orphanHash)},addPreparedStories=(newHash,oldHash)=>oldHash?Object.fromEntries(Object.entries(newHash).map(([id,newEntry])=>{let oldEntry=oldHash[id];return newEntry.type==="story"&&(oldEntry==null?void 0:oldEntry.type)==="story"&&oldEntry.prepared?[id,{...oldEntry,...newEntry,prepared:!0}]:[id,newEntry]})):newHash,getComponentLookupList=(0,import_memoizerific2.default)(1)(hash=>Object.entries(hash).reduce((acc,i)=>{let value=i[1];return value.type==="component"&&acc.push([...value.children]),acc},[])),getStoriesLookupList=(0,import_memoizerific2.default)(1)(hash=>Object.keys(hash).filter(k=>["story","docs"].includes(hash[k].type)));var{location,fetch}=import_global2.default,findFilename=/(\/((?:[^\/]+?)\.[^\/]+?)|\/)$/,getSourceType=(source,refId)=>{let{origin:localOrigin,pathname:localPathname}=location,{origin:sourceOrigin,pathname:sourcePathname}=new URL(source),localFull=`${localOrigin+localPathname}`.replace(findFilename,""),sourceFull=`${sourceOrigin+sourcePathname}`.replace(findFilename,"");return localFull===sourceFull?["local",sourceFull]:refId||source?["external",sourceFull]:[null,null]},defaultStoryMapper=(b,a)=>({...a,kind:a.kind.replace("|","/")}),addRefIds=(input,ref)=>Object.entries(input).reduce((acc,[id,item])=>({...acc,[id]:{...item,refId:ref.id}}),{});async function handleRequest(request){if(!request)return{};try{let response=await request;if(!response.ok)return{};let json=await response.json();return json.entries||json.stories?{storyIndex:json}:json}catch(error){return{error}}}var map=(input,ref,options)=>{let{storyMapper}=options;return storyMapper?Object.entries(input).reduce((acc,[id,item])=>({...acc,[id]:storyMapper(ref,item)}),{}):input},init7=({store:store2,provider,singleStory,docsOptions={}},{runCheck=!0}={})=>{let api={findRef:source=>{let refs2=api.getRefs();return Object.values(refs2).find(({url})=>url.match(source))},changeRefVersion:(id,url)=>{let{versions,title}=api.getRefs()[id],ref={id,url,versions,title,stories:{}};api.checkRef(ref)},changeRefState:(id,ready)=>{let{[id]:ref,...updated}=api.getRefs();updated[id]={...ref,ready},store2.setState({refs:updated})},checkRef:async ref=>{let{id,url,version:version2,type}=ref,isPublic=type==="server-checked",loadedData={},query=version2?`?version=${version2}`:"",credentials=isPublic?"omit":"include",[indexFetch,storiesFetch]=await Promise.all(["index.json","stories.json"].map(async file=>fetch(`${url}/${file}${query}`,{headers:{Accept:"application/json"},credentials})));if(indexFetch.ok||storiesFetch.ok){let[index,metadata]=await Promise.all([indexFetch.ok?handleRequest(indexFetch):handleRequest(storiesFetch),handleRequest(fetch(`${url}/metadata.json${query}`,{headers:{Accept:"application/json"},credentials,cache:"no-cache"}).catch(()=>!1))]);Object.assign(loadedData,{...index,...metadata})}else isPublic||(loadedData.error={message:import_ts_dedent2.dedent`
6
6
  Error: Loading of ref failed
7
7
  at fetch (lib/api/src/modules/refs.ts)
8
8
 
9
- URL: ${n}
9
+ URL: ${url}
10
10
 
11
11
  We weren't able to load the above URL,
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.8";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 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&&import_global2.default.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 import_client_logger2.logger.warn(`Received a ${type} frame that was not configured as a ref`),null}};var{FEATURES,fetch:fetch2}=import_global3.default,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:import_csf2.toId,getData:(storyId,refId)=>{let result=api.resolveStory(storyId,refId);if((result==null?void 0:result.type)==="story"||(result==null?void 0: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==null?void 0: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==null?void 0:storyId.split("--",2)[0];if(name)if(titleOrId){let id=ref?`${ref}_${(0,import_csf2.toId)(titleOrId,name)}`:(0,import_csf2.toId)(titleOrId,name);if(hash[id])api.selectStory(id,void 0,options);else{let entry=hash[(0,import_csf2.sanitize)(titleOrId)];if((entry==null?void 0:entry.type)==="component"){let foundId=entry.children.find(childId=>hash[childId].name===name);foundId&&api.selectStory(foundId,void 0,options)}}}else{let id=(0,import_csf2.toId)(kindSlug,name);api.selectStory(id,void 0,options)}else{let entry=titleOrId?hash[titleOrId]||hash[(0,import_csf2.sanitize)(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){var _a;return(_a=api.findLeafEntry(storiesHash,storyId))==null?void 0:_a.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(import_core_events2.UPDATE_STORY_ARGS,{storyId,updatedArgs,options:{target:refId}})},resetStoryArgs:(story,argNames)=>{let{id:storyId,refId}=story;fullAPI.emit(import_core_events2.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){import_client_logger3.logger.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()=>{var _a;fullAPI.on(import_core_events2.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(import_core_events2.STORY_CHANGED,function(){let{sourceType}=getEventMetadata(this,fullAPI);if(sourceType==="local"){let options=fullAPI.getCurrentParameter("options");options&&fullAPI.setOptions(removeRemovedOptions(options))}}),fullAPI.on(import_core_events2.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(import_core_events2.PRELOAD_ENTRIES,{ids:toBePreloaded,options:{target:refId}})}}),fullAPI.on(import_core_events2.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(import_core_events2.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(import_core_events2.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(import_core_events2.STORY_ARGS_UPDATED,function({storyId,args}){let{ref}=getEventMetadata(this,fullAPI);fullAPI.updateStory(storyId,{args},ref)}),fullAPI.on(import_core_events2.CONFIG_ERROR,function(err){store2.setState({storiesConfigured:!0,storiesFailed:err})}),FEATURES!=null&&FEATURES.storyStoreV7&&((_a=provider.serverChannel)==null||_a.on(import_core_events2.STORY_INDEX_INVALIDATED,()=>fullAPI.fetchIndex()),await fullAPI.fetchIndex())}}};var layout_exports={};__export(layout_exports,{ActiveTabs:()=>ActiveTabs,focusableUIElements:()=>focusableUIElements,init:()=>init9});var import_global4=__toESM(require("global")),import_pick=__toESM(require("lodash/pick")),import_dequal=require("dequal"),import_create=require("@storybook/theming/create"),import_core_events3=require("@storybook/core-events");var{document}=import_global4.default,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:(0,import_create.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,...(0,import_pick.default)(options,Object.keys(defaultState.layout)),...singleStory&&{showNav:!1}},ui:{...defaultState.ui,...(0,import_pick.default)(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,...options.layout,...(0,import_pick.default)(options,Object.keys(layout)),...singleStory&&{showNav:!1}},updatedUi={...ui,...options.ui,...(0,import_pick.default)(options,Object.keys(ui))},updatedTheme={...theme,...options.theme},modification={};(0,import_dequal.dequal)(ui,updatedUi)||(modification.ui=updatedUi),(0,import_dequal.dequal)(layout,updatedLayout)||(modification.layout=updatedLayout),options.selectedPanel&&!(0,import_dequal.dequal)(selectedPanel,options.selectedPanel)&&(modification.selectedPanel=options.selectedPanel),Object.keys(modification).length&&store2.setState(modification,{persistence:"permanent"}),(0,import_dequal.dequal)(theme,updatedTheme)||store2.setState({theme:updatedTheme})}}},persisted=(0,import_pick.default)(store2.getState(),"layout","ui","selectedPanel");return{api,state:merge_default(api.getInitialOptions(),persisted),init:()=>{api.setOptions(merge_default(api.getInitialOptions(),persisted)),fullAPI.on(import_core_events3.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});var import_global6=__toESM(require("global")),import_core_events4=require("@storybook/core-events");var import_global5=__toESM(require("global")),{navigator}=import_global5.default,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}=import_global6.default,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!=null&&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(import_core_events4.PREVIEW_KEYDOWN,data=>{fullAPI.handleKeydownEvent(data.event)})}}};var url_exports={};__export(url_exports,{init:()=>init11});var import_core_events5=require("@storybook/core-events"),import_router=require("@storybook/router"),import_dequal2=require("dequal"),import_global7=__toESM(require("global")),{window:globalWindow}=import_global7.default,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}=(0,import_router.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=(0,import_dequal2.dequal)(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)};(0,import_dequal2.dequal)(customQueryParams,update2)||(store2.setState({customQueryParams:update2}),fullAPI.emit(import_core_events5.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==null?void 0:currentStory.type)!=="story")return;let{args,initialArgs}=currentStory,argsString=(0,import_router.buildArgsParam)(initialArgs,args);navigateTo(path,{...queryParams,args:argsString},{replace:!0}),api.setQueryParams({args:argsString})};fullAPI.on(import_core_events5.SET_CURRENT_STORY,()=>updateArgsParam());let handleOrId;fullAPI.on(import_core_events5.STORY_ARGS_UPDATED,()=>{"requestIdleCallback"in globalWindow?(handleOrId&&globalWindow.cancelIdleCallback(handleOrId),handleOrId=globalWindow.requestIdleCallback(updateArgsParam,{timeout:1e3})):(handleOrId&&clearTimeout(handleOrId),setTimeout(updateArgsParam,100))}),fullAPI.on(import_core_events5.GLOBALS_UPDATED,({globals,initialGlobals})=>{let{path,queryParams}=fullAPI.getUrlState(),globalsString=(0,import_router.buildArgsParam)(initialGlobals,globals);navigateTo(path,{...queryParams,globals:globalsString},{replace:!0}),api.setQueryParams({globals:globalsString})}),fullAPI.on(import_core_events5.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});var import_global8=__toESM(require("global")),import_semver=__toESM(require("semver")),import_memoizerific3=__toESM(require("memoizerific"));var version="7.0.0-beta.9";var{VERSIONCHECK}=import_global8.default,getVersionCheckData=(0,import_memoizerific3.default)(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&&import_semver.default.prerelease(current.version)&&next?latest&&import_semver.default.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=!!import_semver.default.prerelease(current.version)?`${import_semver.default.major(current.version)}.${import_semver.default.minor(current.version)}.${import_semver.default.patch(current.version)}`:current.version,diff=import_semver.default.diff(actualCurrent,latest.version);return import_semver.default.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=import_semver.default.diff(versions.current.version,versions.latest.version);latestVersion!==dismissedVersionNotification&&diff!=="patch"&&!import_semver.default.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});var import_core_events6=require("@storybook/core-events"),import_client_logger4=require("@storybook/client-logger"),import_dequal3=require("dequal");var init13=({store:store2,fullAPI})=>{let api={getGlobals(){return store2.getState().globals},getGlobalTypes(){return store2.getState().globalTypes},updateGlobals(newGlobals){fullAPI.emit(import_core_events6.UPDATE_GLOBALS,{globals:newGlobals,options:{target:"storybook-preview-iframe"}})}},state={globals:{},globalTypes:{}},updateGlobals=globals=>{var _a;let currentGlobals=(_a=store2.getState())==null?void 0:_a.globals;(0,import_dequal3.dequal)(globals,currentGlobals)||store2.setState({globals})};return{api,state,init:()=>{fullAPI.on(import_core_events6.GLOBALS_UPDATED,function({globals}){let{ref}=getEventMetadata(this,fullAPI);ref?import_client_logger4.logger.warn("received a GLOBALS_UPDATED from a non-local ref. This is not currently supported."):updateGlobals(globals)}),fullAPI.on(import_core_events6.SET_GLOBALS,function({globals,globalTypes}){var _a;let{ref}=getEventMetadata(this,fullAPI),currentGlobals=(_a=store2.getState())==null?void 0:_a.globals;ref?Object.keys(globals).length>0&&import_client_logger4.logger.warn("received globals from a non-local ref. This is not currently supported."):store2.setState({globals,globalTypes}),currentGlobals&&Object.keys(currentGlobals).length!==0&&!(0,import_dequal3.dequal)(globals,currentGlobals)&&api.updateGlobals(currentGlobals)})}}};var import_global9=__toESM(require("global")),import_core_events7=require("@storybook/core-events"),import_types2=require("@storybook/types"),import_client_logger5=require("@storybook/client-logger");var import_channels=require("@storybook/channels");function mockChannel(){let transport={setHandler:()=>{},send:()=>{}};return new import_channels.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:import_types2.Addon_TypesEnum.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(import_core_events7.SET_CONFIG,value)};this.getConfig=()=>this.config;this.register=(name,registerCallback)=>{this.loaders[name]&&import_client_logger5.logger.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 import_global9.default[KEY]||(import_global9.default[KEY]=new AddonStore),import_global9.default[KEY]}var addons=getAddonsStore();var{ActiveTabs:ActiveTabs2}=layout_exports;var ManagerContext=createContext({api:void 0,state:initial_state_default({})}),combineParameters=(...parameterSets)=>(0,import_mergeWith2.default)({},...parameterSets,(objValue,srcValue)=>{if(Array.isArray(srcValue))return srcValue}),ManagerProvider=class extends import_react2.Component{constructor(props){super(props);this.api={};this.initModules=()=>{this.modules.forEach(module2=>{"init"in module2&&module2.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 import_react2.default.createElement(EffectOnMount,{effect:this.initModules},import_react2.default.createElement(ManagerContext.Provider,{value},import_react2.default.createElement(ManagerConsumer,null,children)))}};ManagerProvider.displayName="Manager";var EffectOnMount=({children,effect})=>(import_react2.default.useEffect(effect,[]),children),defaultFilter=c=>c;function ManagerConsumer({filter=defaultFilter,children}){let c=(0,import_react2.useContext)(ManagerContext),renderer=(0,import_react2.useRef)(children),filterer=(0,import_react2.useRef)(filter);if(typeof renderer.current!="function")return import_react2.default.createElement(import_react2.Fragment,null,renderer.current);let data=filterer.current(c),l=(0,import_react2.useMemo)(()=>[...Object.entries(data).reduce((acc,keyval)=>acc.concat(keyval),[])],[c.state]);return(0,import_react2.useMemo)(()=>{let Child=renderer.current;return import_react2.default.createElement(Child,{...data})},l)}function useStorybookState(){let{state}=(0,import_react2.useContext)(ManagerContext);return state}function useStorybookApi(){let{api}=(0,import_react2.useContext)(ManagerContext);return api}function orDefault(fromStore,defaultState2){return typeof fromStore>"u"?defaultState2:fromStore}var useChannel=(eventMap,deps=[])=>{let api=useStorybookApi();return(0,import_react2.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=(0,import_react2.useMemo)(()=>{let stateChangeHandlers={[`${import_core_events8.SHARED_STATE_CHANGED}-client-${stateId}`]:s=>setState(s),[`${import_core_events8.SHARED_STATE_SET}-client-${stateId}`]:s=>setState(s)},stateInitializationHandlers={[import_core_events8.SET_STORIES]:()=>{let currentState=api.getAddonState(stateId);currentState?(addonStateCache[stateId]=currentState,api.emit(`${import_core_events8.SHARED_STATE_SET}-manager-${stateId}`,currentState)):addonStateCache[stateId]?(setState(addonStateCache[stateId]),api.emit(`${import_core_events8.SHARED_STATE_SET}-manager-${stateId}`,addonStateCache[stateId])):defaultState2!==void 0&&(setState(defaultState2),addonStateCache[stateId]=defaultState2,api.emit(`${import_core_events8.SHARED_STATE_SET}-manager-${stateId}`,defaultState2))},[import_core_events8.STORY_CHANGED]:()=>{let currentState=api.getAddonState(stateId);currentState!==void 0&&api.emit(`${import_core_events8.SHARED_STATE_SET}-manager-${stateId}`,currentState)}};return{...stateChangeHandlers,...stateInitializationHandlers}},[stateId]),emit=useChannel(allListeners);return[state,(newStateOrMerger,options)=>{setState(newStateOrMerger,options),emit(`${import_core_events8.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=(0,import_react2.useCallback)(newArgs=>updateStoryArgs(data,newArgs),[data,updateStoryArgs]),resetArgs=(0,import_react2.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==null?void 0:current.type)==="story"&&current.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.8";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"&&current.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,...options.layout,...pick(options,Object.keys(layout)),...singleStory&&{showNav:!1}},updatedUi={...ui,...options.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.9";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"&&current.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.8",
3
+ "version": "7.0.0-beta.9",
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.8",
45
- "@storybook/client-logger": "7.0.0-beta.8",
46
- "@storybook/core-events": "7.0.0-beta.8",
44
+ "@storybook/channels": "7.0.0-beta.9",
45
+ "@storybook/client-logger": "7.0.0-beta.9",
46
+ "@storybook/core-events": "7.0.0-beta.9",
47
47
  "@storybook/csf": "next",
48
- "@storybook/router": "7.0.0-beta.8",
49
- "@storybook/theming": "7.0.0-beta.8",
50
- "@storybook/types": "7.0.0-beta.8",
48
+ "@storybook/router": "7.0.0-beta.9",
49
+ "@storybook/theming": "7.0.0-beta.9",
50
+ "@storybook/types": "7.0.0-beta.9",
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": "5340574d89a799ec10959edc16ca140852cf355c"
80
+ "gitHead": "c466d4f77c3e8b99f28aaf508acdb9fd863550fd"
81
81
  }