@storybook/manager 0.0.0-pr-23888-sha-032c0a61 → 0.0.0-pr-24038-sha-e7e31321

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.
@@ -50,7 +50,7 @@ Output:
50
50
  it's possible a CORS error happened.
51
51
 
52
52
  Please check your dev-tools network tab.
53
- `});let versions=ref.versions&&Object.keys(ref.versions).length?ref.versions:loadedData.versions;await api.setRef(id,{id,url:urlParseResult.url,...loadedData,...versions?{versions}:{},type:loadedData.storyIndex?"lazy":"auto-inject"})},getRefs:()=>{let{refs:refs22={}}=store22.getState();return refs22},setRef:(id,{storyIndex,setStoriesData,...rest},ready=!1)=>{if(singleStory)return;let{storyMapper=defaultStoryMapper}=provider.getConfig(),ref=api.getRefs()[id],index2;setStoriesData?index2=transformSetStoriesStoryDataToStoriesHash(map(setStoriesData,ref,{storyMapper}),{provider,docsOptions,filters:{},status:{}}):storyIndex&&(index2=transformStoryIndexToStoriesHash(storyIndex,{provider,docsOptions,filters:{},status:{}})),index2&&(index2=addRefIds(index2,ref)),api.updateRef(id,{index:index2,...rest})},updateRef:(id,data)=>{let{[id]:ref,...updated}=api.getRefs();updated[id]={...ref,...data};let ordered=Object.keys(initialState).reduce((obj,key2)=>(obj[key2]=updated[key2],obj),{});store22.setState({refs:ordered})}},refs2=!singleStory&&scope.REFS||{},initialState=refs2;return runCheck&&Object.entries(refs2).forEach(([id,ref])=>{api.checkRef({...ref,stories:{}})}),{api,state:{refs:initialState}}},getEventMetadata=(context,fullAPI)=>{let{source:source2,refId,type}=context,[sourceType,sourceLocation]=getSourceType(source2,refId),ref=refId&&fullAPI.getRefs()[refId]?fullAPI.getRefs()[refId]:fullAPI.findRef(sourceLocation),meta={source:source2,sourceType,sourceLocation,refId,ref,type};switch(!0){case typeof refId=="string":case sourceType==="local":case sourceType==="external":return meta;default:return logger.warn(`Received a ${type} frame that was not configured as a ref`),null}},{FEATURES,fetch:fetch2}=scope,STORY_INDEX_PATH="./index.json",removedOptions=["enableShortcuts","theme","showRoots"];function removeRemovedOptions(options3){if(!options3||typeof options3=="string")return options3;let result2={...options3};return removedOptions.forEach(option=>{option in result2&&delete result2[option]}),result2}var init7=({fullAPI,store:store22,navigate,provider,storyId:initialStoryId,viewMode:initialViewMode,docsOptions={}})=>{let api={storyId:N,getData:(storyId,refId)=>{let result2=api.resolveStory(storyId,refId);if(result2?.type==="story"||result2?.type==="docs")return result2},isPrepared:(storyId,refId)=>{let data=api.getData(storyId,refId);return data.type==="story"?data.prepared:!0},resolveStory:(storyId,refId)=>{let{refs:refs2,index:index2}=store22.getState();return refId&&!refs2[refId]?null:refId?refs2[refId].index?refs2[refId].index[storyId]:void 0:index2?index2[storyId]:void 0},getCurrentStoryData:()=>{let{storyId,refId}=store22.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(["story","docs"].includes(data?.type)){let{parameters}=data;if(parameters)return parameterName?parameters[parameterName]:parameters}return null},getCurrentParameter:parameterName=>{let{storyId,refId}=store22.getState();return api.getParameters({storyId,refId},parameterName)||void 0},jumpToComponent:direction=>{let{index:index2,storyId,refs:refs2,refId}=store22.getState();if(!api.getData(storyId,refId))return;let hash=refId?refs2[refId].index||{}:index2,result2=api.findSiblingStoryId(storyId,hash,direction,!0);result2&&api.selectStory(result2,void 0,{ref:refId})},jumpToStory:direction=>{let{index:index2,storyId,refs:refs2,refId}=store22.getState(),story=api.getData(storyId,refId);if(!story)return;let hash=story.refId?refs2[story.refId].index:index2,result2=api.findSiblingStoryId(storyId,hash,direction,!1);result2&&api.selectStory(result2,void 0,{ref:refId})},selectFirstStory:()=>{let{index:index2}=store22.getState(),firstStory=Object.keys(index2).find(id=>index2[id].type==="story");if(firstStory){api.selectStory(firstStory);return}navigate("/")},selectStory:(titleOrId=void 0,name2=void 0,options3={})=>{let{ref}=options3,{storyId,index:index2,refs:refs2}=store22.getState(),hash=ref?refs2[ref].index:index2,kindSlug=storyId?.split("--",2)[0];if(name2)if(titleOrId){let id=ref?`${ref}_${N(titleOrId,name2)}`:N(titleOrId,name2);if(hash[id])api.selectStory(id,void 0,options3);else{let entry=hash[L(titleOrId)];if(entry?.type==="component"){let foundId=entry.children.find(childId=>hash[childId].name===name2);foundId&&api.selectStory(foundId,void 0,options3)}}}else{let id=N(kindSlug,name2);api.selectStory(id,void 0,options3)}else{let entry=titleOrId?hash[titleOrId]||hash[L(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(index2,storyId){let entry=index2[storyId];if(entry.type==="docs"||entry.type==="story")return entry;let childStoryId=entry.children[0];return api.findLeafEntry(index2,childStoryId)},findLeafStoryId(index2,storyId){return api.findLeafEntry(index2,storyId)?.id},findSiblingStoryId(storyId,index2,direction,toSiblingGroup){if(toSiblingGroup){let lookupList2=getComponentLookupList(index2),position2=lookupList2.findIndex(i3=>i3.includes(storyId));return position2===lookupList2.length-1&&direction>0||position2===0&&direction<0?void 0:lookupList2[position2+direction]?lookupList2[position2+direction][0]:void 0}let lookupList=getStoriesLookupList(index2),position=lookupList.indexOf(storyId);if(!(position===lookupList.length-1&&direction>0)&&!(position===0&&direction<0))return lookupList[position+direction]},updateStoryArgs:(story,updatedArgs)=>{let{id:storyId,refId}=story;provider.channel.emit(UPDATE_STORY_ARGS,{storyId,updatedArgs,options:{target:refId}})},resetStoryArgs:(story,argNames)=>{let{id:storyId,refId}=story;provider.channel.emit(RESET_STORY_ARGS,{storyId,argNames,options:{target:refId}})},fetchIndex:async()=>{try{let result2=await fetch2(STORY_INDEX_PATH);if(result2.status!==200)throw new Error(await result2.text());let storyIndex=await result2.json();if(storyIndex.v<3){logger.warn(`Skipping story index with version v${storyIndex.v}, awaiting SET_STORIES.`);return}await api.setIndex(storyIndex)}catch(err){await store22.setState({indexError:err})}},setIndex:async input=>{let{index:oldHash,status,filters}=store22.getState(),newHash=transformStoryIndexToStoriesHash(input,{provider,docsOptions,status,filters}),output=addPreparedStories(newHash,oldHash);await store22.setState({internal_index:input,index:output,indexError:void 0})},updateStory:async(storyId,update2,ref)=>{if(ref){let{id:refId,index:index2}=ref;index2[storyId]={...index2[storyId],...update2},await fullAPI.updateRef(refId,{index:index2})}else{let{index:index2}=store22.getState();index2[storyId]={...index2[storyId],...update2},await store22.setState({index:index2})}},updateDocs:async(docsId,update2,ref)=>{if(ref){let{id:refId,index:index2}=ref;index2[docsId]={...index2[docsId],...update2},await fullAPI.updateRef(refId,{index:index2})}else{let{index:index2}=store22.getState();index2[docsId]={...index2[docsId],...update2},await store22.setState({index:index2})}},setPreviewInitialized:async ref=>{ref?fullAPI.updateRef(ref.id,{previewInitialized:!0}):store22.setState({previewInitialized:!0})},experimental_updateStatus:async(id,update2)=>{let{status,internal_index:index2}=store22.getState(),newStatus={...status};Object.entries(update2).forEach(([storyId,value2])=>{newStatus[storyId]={...newStatus[storyId]||{}},newStatus[storyId][id]=value2}),await store22.setState({status:newStatus},{persistence:"session"}),await api.setIndex(index2)},experimental_setFilter:async(id,filterFunction)=>{let{internal_index:index2}=store22.getState();await store22.setState({filters:{...store22.getState().filters,[id]:filterFunction}}),await api.setIndex(index2)}};provider.channel.on(STORY_SPECIFIED,function({storyId,viewMode}){let{sourceType}=getEventMetadata(this,fullAPI);if(sourceType==="local"){let state=store22.getState(),isCanvasRoute=state.path==="/"||state.viewMode==="story"||state.viewMode==="docs",stateHasSelection=state.viewMode&&state.storyId,stateSelectionDifferent=state.viewMode!==viewMode||state.storyId!==storyId;isCanvasRoute&&(stateHasSelection&&stateSelectionDifferent?provider.channel.emit(SET_CURRENT_STORY,{storyId:state.storyId,viewMode:state.viewMode}):stateSelectionDifferent&&navigate(`/${viewMode}/${storyId}`))}}),provider.channel.on(CURRENT_STORY_WAS_SET,function(){let{ref}=getEventMetadata(this,fullAPI);api.setPreviewInitialized(ref)}),provider.channel.on(STORY_CHANGED,function(){let{sourceType}=getEventMetadata(this,fullAPI);if(sourceType==="local"){let options3=api.getCurrentParameter("options");options3&&fullAPI.setOptions(removeRemovedOptions(options3))}}),provider.channel.on(STORY_PREPARED,function({id,...update2}){let{ref,sourceType}=getEventMetadata(this,fullAPI);if(api.updateStory(id,{...update2,prepared:!0},ref),!ref&&!store22.getState().hasCalledSetOptions){let{options:options3}=update2.parameters;fullAPI.setOptions(removeRemovedOptions(options3)),store22.setState({hasCalledSetOptions:!0})}if(sourceType==="local"){let{storyId,index:index2,refId}=store22.getState(),toBePreloaded=Array.from(new Set([api.findSiblingStoryId(storyId,index2,1,!0),api.findSiblingStoryId(storyId,index2,-1,!0)])).filter(Boolean);provider.channel.emit(PRELOAD_ENTRIES,{ids:toBePreloaded,options:{target:refId}})}}),provider.channel.on(DOCS_PREPARED,function({id,...update2}){let{ref}=getEventMetadata(this,fullAPI);api.updateStory(id,{...update2,prepared:!0},ref)}),provider.channel.on(SET_INDEX,function(index2){let{ref}=getEventMetadata(this,fullAPI);if(ref)fullAPI.setRef(ref.id,{...ref,storyIndex:index2},!0);else{api.setIndex(index2);let options3=api.getCurrentParameter("options");fullAPI.setOptions(removeRemovedOptions(options3))}}),provider.channel.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")}),provider.channel.on(SELECT_STORY,function({kind,title=kind,story,name:name2=story,storyId,...rest}){let{ref}=getEventMetadata(this,fullAPI);ref?fullAPI.selectStory(storyId||title,name2,{...rest,ref:ref.id}):fullAPI.selectStory(storyId||title,name2,rest)}),provider.channel.on(STORY_ARGS_UPDATED,function({storyId,args:args2}){let{ref}=getEventMetadata(this,fullAPI);api.updateStory(storyId,{args:args2},ref)}),provider.channel.on(CONFIG_ERROR,function(err){let{ref}=getEventMetadata(this,fullAPI);api.setPreviewInitialized(ref)}),provider.channel.on(STORY_MISSING,function(err){let{ref}=getEventMetadata(this,fullAPI);api.setPreviewInitialized(ref)}),provider.channel.on(SET_CONFIG,()=>{let config2=provider.getConfig();config2?.sidebar?.filters&&store22.setState({filters:{...store22.getState().filters,...config2?.sidebar?.filters}})});let config=provider.getConfig();return{api,state:{storyId:initialStoryId,viewMode:initialViewMode,hasCalledSetOptions:!1,previewInitialized:!1,status:{},filters:config?.sidebar?.filters||{}},init:async()=>{FEATURES?.storyStoreV7&&(provider.channel.on(STORY_INDEX_INVALIDATED,()=>api.fetchIndex()),await api.fetchIndex())}}},layout_exports={};__export2(layout_exports,{ActiveTabs:()=>ActiveTabs,focusableUIElements:()=>focusableUIElements,init:()=>init8});var{document:document3}=scope,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"},init8=({store:store22,provider,singleStory,fullAPI})=>{let api={toggleFullscreen(toggled){return store22.setState(state=>{let{showNav}=state.layout,value2=typeof toggled=="boolean"?toggled:!state.layout.isFullscreen,shouldShowNav=showNav===!1&&value2===!1;return{layout:{...state.layout,isFullscreen:value2,showNav:!singleStory&&shouldShowNav?!0:showNav}}},{persistence:"session"})},togglePanel(toggled){return store22.setState(state=>{let{showNav,isFullscreen}=state.layout,value2=typeof toggled<"u"?toggled:!state.layout.showPanel,shouldToggleFullScreen=showNav===!1&&value2===!1;return{layout:{...state.layout,showPanel:value2,isFullscreen:shouldToggleFullScreen?!0:isFullscreen}}},{persistence:"session"})},togglePanelPosition(position){return typeof position<"u"?store22.setState(state=>({layout:{...state.layout,panelPosition:position}}),{persistence:"permanent"}):store22.setState(state=>({layout:{...state.layout,panelPosition:state.layout.panelPosition==="right"?"bottom":"right"}}),{persistence:"permanent"})},toggleNav(toggled){return store22.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 store22.setState(state=>{let value2=typeof toggled<"u"?toggled:!state.layout.showToolbar;return{layout:{...state.layout,showToolbar:value2}}},{persistence:"session"})},resetLayout(){return store22.setState(state=>({layout:{...state.layout,showNav:!1,showPanel:!1,isFullscreen:!1}}),{persistence:"session"})},focusOnUIElement(elementId,select){if(!elementId)return;let element=document3.getElementById(elementId);element&&(element.focus(),select&&element.select())},getInitialOptions(){let{theme,selectedPanel,...options3}=provider.getConfig();return{...defaultState,layout:{...defaultState.layout,...(0,import_pick.default)(options3,Object.keys(defaultState.layout)),...singleStory&&{showNav:!1}},ui:{...defaultState.ui,...(0,import_pick.default)(options3,Object.keys(defaultState.ui))},selectedPanel:selectedPanel||defaultState.selectedPanel,theme:theme||defaultState.theme}},setOptions:options3=>{let{layout,ui,selectedPanel,theme}=store22.getState();if(options3){let updatedLayout={...layout,...options3.layout,...(0,import_pick.default)(options3,Object.keys(layout)),...singleStory&&{showNav:!1}},updatedUi={...ui,...options3.ui,...(0,import_pick.default)(options3,Object.keys(ui))},updatedTheme={...theme,...options3.theme},modification={};dequal2(ui,updatedUi)||(modification.ui=updatedUi),dequal2(layout,updatedLayout)||(modification.layout=updatedLayout),options3.selectedPanel&&!dequal2(selectedPanel,options3.selectedPanel)&&(modification.selectedPanel=options3.selectedPanel),Object.keys(modification).length&&store22.setState(modification,{persistence:"permanent"}),dequal2(theme,updatedTheme)||store22.setState({theme:updatedTheme})}}},persisted=(0,import_pick.default)(store22.getState(),"layout","selectedPanel");return{api,state:merge_default(api.getInitialOptions(),persisted),init:()=>{api.setOptions(merge_default(api.getInitialOptions(),persisted)),provider.channel.on(SET_CONFIG,()=>{api.setOptions(merge_default(api.getInitialOptions(),persisted))})}}},shortcuts_exports={};__export2(shortcuts_exports,{controlOrMetaKey:()=>controlOrMetaKey2,defaultShortcuts:()=>defaultShortcuts,init:()=>init9,isMacLike:()=>isMacLike2,keys:()=>keys});var{navigator:navigator2}=scope,isMacLike=()=>navigator2&&navigator2.platform?!!navigator2.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=e3=>{if(["Meta","Alt","Control","Shift"].includes(e3.key))return null;let keys2=[];if(e3.altKey&&keys2.push("alt"),e3.ctrlKey&&keys2.push("control"),e3.metaKey&&keys2.push("meta"),e3.shiftKey&&keys2.push("shift"),e3.key&&e3.key.length===1&&e3.key!==" "){let key2=e3.key.toUpperCase(),code=e3.code?.toUpperCase().replace("KEY","").replace("DIGIT","");code&&code.length===1&&code!==key2?keys2.push([key2,code]):keys2.push(key2)}return e3.key===" "&&keys2.push("space"),e3.key==="Escape"&&keys2.push("escape"),e3.key==="ArrowRight"&&keys2.push("ArrowRight"),e3.key==="ArrowDown"&&keys2.push("ArrowDown"),e3.key==="ArrowUp"&&keys2.push("ArrowUp"),e3.key==="ArrowLeft"&&keys2.push("ArrowLeft"),keys2.length>0?keys2:null},shortcutMatchesShortcut=(inputShortcut,shortcut)=>!inputShortcut||!shortcut||(inputShortcut.join("").startsWith("shift/")&&inputShortcut.shift(),inputShortcut.length!==shortcut.length)?!1:!inputShortcut.find((input,i3)=>Array.isArray(input)?!input.includes(shortcut[i3]):input!==shortcut[i3]),eventMatchesShortcut=(e3,shortcut)=>shortcutMatchesShortcut(eventToShortcut(e3),shortcut),keyToSymbol=key2=>key2==="alt"?optionOrAltSymbol():key2==="control"?"\u2303":key2==="meta"?"\u2318":key2==="shift"?"\u21E7\u200B":key2==="Enter"||key2==="Backspace"||key2==="Esc"||key2==="escape"?"":key2===" "?"SPACE":key2==="ArrowUp"?"\u2191":key2==="ArrowDown"?"\u2193":key2==="ArrowLeft"?"\u2190":key2==="ArrowRight"?"\u2192":key2.toUpperCase(),shortcutToHumanString=shortcut=>shortcut.map(keyToSymbol).join(" "),{navigator:navigator22,document:document23}=scope,isMacLike2=()=>navigator22&&navigator22.platform?!!navigator22.platform.match(/(Mac|iPhone|iPod|iPad)/i):!1,controlOrMetaKey2=()=>isMacLike2()?"meta":"control";function keys(o2){return Object.keys(o2)}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"],remount:["alt","R"]}),addonsShortcuts={};function focusInInput(event){let target=event.target;return/input|textarea/i.test(target.tagName)||target.getAttribute("contenteditable")!==null}var init9=({store:store22,fullAPI,provider})=>{let api={getShortcutKeys(){return store22.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 store22.setState({shortcuts},{persistence:"permanent"}),shortcuts},async restoreAllDefaultShortcuts(){return api.setShortcuts(api.getDefaultShortcuts())},async setShortcut(action,value2){let shortcuts=api.getShortcutKeys();return await api.setShortcuts({...shortcuts,[action]:value2}),value2},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},storyId}=store22.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=document23.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}case"remount":{fullAPI.emit(FORCE_REMOUNT,{storyId});break}default:addonsShortcuts[feature].action();break}}},{shortcuts:persistedShortcuts=defaultShortcuts}=store22.getState(),state={shortcuts:keys(defaultShortcuts).reduce((acc,key2)=>({...acc,[key2]:persistedShortcuts[key2]||defaultShortcuts[key2]}),defaultShortcuts)};return{api,state,init:()=>{document23.addEventListener("keydown",event=>{focusInInput(event)||api.handleKeydownEvent(event)}),provider.channel.on(PREVIEW_KEYDOWN,data=>{api.handleKeydownEvent(data.event)})}}},url_exports={};__export2(url_exports,{init:()=>init10});var{window:globalWindow}=scope,parseBoolean=value2=>{if(value2==="true"||value2==="1")return!0;if(value2==="false"||value2==="0")return!1},prevParams,initialUrlSupport=({state:{location:location22,path,viewMode,storyId:storyIdFromUrl},singleStory})=>{let{full,panel,nav,shortcuts,addonPanel,tabs,path:queryPath,...otherParams}=queryFromLocation(location22),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=dequal2(prevParams,otherParams)?prevParams:otherParams;return prevParams=customQueryParams,{viewMode,layout,ui,selectedPanel,location:location22,path,customQueryParams,storyId}},init10=moduleArgs=>{let{store:store22,navigate,provider,fullAPI}=moduleArgs,navigateTo=(path,queryParams={},options3={})=>{let params=Object.entries(queryParams).filter(([,v2])=>v2).sort(([a2],[b3])=>a2<b3?-1:1).map(([k2,v2])=>`${k2}=${v2}`),to=[path,...params].join("&");return navigate(to,options3)},api={getQueryParam(key2){let{customQueryParams}=store22.getState();return customQueryParams?customQueryParams[key2]:void 0},getUrlState(){let{path,customQueryParams,storyId,url,viewMode}=store22.getState();return{path,queryParams:customQueryParams,storyId,url,viewMode}},setQueryParams(input){let{customQueryParams}=store22.getState(),queryParams={},update2={...customQueryParams,...Object.entries(input).reduce((acc,[key2,value2])=>(value2!==null&&(acc[key2]=value2),acc),queryParams)};dequal2(customQueryParams,update2)||(store22.setState({customQueryParams:update2}),provider.channel.emit(UPDATE_QUERY_PARAMS,update2))},navigateUrl(url,options3){navigate(url,{plain:!0,...options3})}},updateArgsParam=()=>{let{path,queryParams,viewMode}=api.getUrlState();if(viewMode!=="story")return;let currentStory=fullAPI.getCurrentStoryData();if(currentStory?.type!=="story")return;let{args:args2,initialArgs}=currentStory,argsString=buildArgsParam(initialArgs,args2);navigateTo(path,{...queryParams,args:argsString},{replace:!0}),api.setQueryParams({args:argsString})};provider.channel.on(SET_CURRENT_STORY,()=>updateArgsParam());let handleOrId;return provider.channel.on(STORY_ARGS_UPDATED,()=>{"requestIdleCallback"in globalWindow?(handleOrId&&globalWindow.cancelIdleCallback(handleOrId),handleOrId=globalWindow.requestIdleCallback(updateArgsParam,{timeout:1e3})):(handleOrId&&clearTimeout(handleOrId),setTimeout(updateArgsParam,100))}),provider.channel.on(GLOBALS_UPDATED,({globals,initialGlobals})=>{let{path,queryParams}=api.getUrlState(),globalsString=buildArgsParam(initialGlobals,globals);navigateTo(path,{...queryParams,globals:globalsString},{replace:!0}),api.setQueryParams({globals:globalsString})}),provider.channel.on(NAVIGATE_URL,(url,options3)=>{api.navigateUrl(url,options3)}),{api,state:initialUrlSupport(moduleArgs)}},versions_exports={};__export2(versions_exports,{init:()=>init11});var version="0.0.0-pr-23888-sha-032c0a61",{VERSIONCHECK}=scope,getVersionCheckData=(0,import_memoizerific3.default)(1)(()=>{try{return{...JSON.parse(VERSIONCHECK).data||{}}}catch{return{}}}),init11=({store:store22})=>{let{dismissedVersionNotification}=store22.getState(),state={versions:{current:{version},...getVersionCheckData()},dismissedVersionNotification},api={getCurrentVersion:()=>{let{versions:{current}}=store22.getState();return current},getLatestVersion:()=>{let{versions:{latest,next,current}}=store22.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={}}=store22.getState(),{latest,next}=getVersionCheckData();await store22.setState({versions:{...versions,latest,next}})},state,api}},whatsnew_exports={};__export2(whatsnew_exports,{init:()=>init12});var WHATS_NEW_NOTIFICATION_ID="whats-new",init12=({fullAPI,store:store22,provider})=>{let state={whatsNewData:void 0};function setWhatsNewState(newState){store22.setState({whatsNewData:newState}),state.whatsNewData=newState}let api={isWhatsNewUnread(){return state.whatsNewData?.status==="SUCCESS"&&!state.whatsNewData.postIsRead},whatsNewHasBeenRead(){state.whatsNewData?.status==="SUCCESS"&&(setWhatsNewCache({lastReadPost:state.whatsNewData.url}),setWhatsNewState({...state.whatsNewData,postIsRead:!0}),fullAPI.clearNotification(WHATS_NEW_NOTIFICATION_ID))},toggleWhatsNewNotifications(){state.whatsNewData?.status==="SUCCESS"&&(setWhatsNewState({...state.whatsNewData,disableWhatsNewNotifications:!state.whatsNewData.disableWhatsNewNotifications}),provider.channel.emit(TOGGLE_WHATS_NEW_NOTIFICATIONS,{disableWhatsNewNotifications:state.whatsNewData.disableWhatsNewNotifications}))}};function getLatestWhatsNewPost(){return provider.channel.emit(REQUEST_WHATS_NEW_DATA),new Promise(resolve=>provider.channel.once(RESULT_WHATS_NEW_DATA,({data})=>resolve(data)))}function setWhatsNewCache(cache){provider.channel.emit(SET_WHATS_NEW_CACHE,cache)}return{init:async()=>{if(scope.CONFIG_TYPE!=="DEVELOPMENT")return;let whatsNewData=await getLatestWhatsNewPost();setWhatsNewState(whatsNewData);let urlState=fullAPI.getUrlState();!(urlState?.path==="/onboarding"||urlState.queryParams?.onboarding==="true")&&whatsNewData.status==="SUCCESS"&&!whatsNewData.disableWhatsNewNotifications&&whatsNewData.showNotification&&fullAPI.addNotification({id:WHATS_NEW_NOTIFICATION_ID,link:"/settings/whats-new",content:{headline:whatsNewData.excerpt,subHeadline:"Click to learn what's new in Storybook"},icon:{name:"hearthollow"},onClear({dismissed}){dismissed&&setWhatsNewCache({lastDismissedPost:whatsNewData.url})}})},state,api}},globals_exports={};__export2(globals_exports,{init:()=>init13});var init13=({store:store22,fullAPI,provider})=>{let api={getGlobals(){return store22.getState().globals},getGlobalTypes(){return store22.getState().globalTypes},updateGlobals(newGlobals){provider.channel.emit(UPDATE_GLOBALS,{globals:newGlobals,options:{target:"storybook-preview-iframe"}})}},state={globals:{},globalTypes:{}},updateGlobals=globals=>{let currentGlobals=store22.getState()?.globals;dequal2(globals,currentGlobals)||store22.setState({globals})};return provider.channel.on(GLOBALS_UPDATED,function({globals}){let{ref}=getEventMetadata(this,fullAPI);ref?logger.warn("received a GLOBALS_UPDATED from a non-local ref. This is not currently supported."):updateGlobals(globals)}),provider.channel.on(SET_GLOBALS,function({globals,globalTypes}){let{ref}=getEventMetadata(this,fullAPI),currentGlobals=store22.getState()?.globals;ref?Object.keys(globals).length>0&&logger.warn("received globals from a non-local ref. This is not currently supported."):store22.setState({globals,globalTypes}),currentGlobals&&Object.keys(currentGlobals).length!==0&&!dequal2(globals,currentGlobals)&&api.updateGlobals(currentGlobals)}),{api,state}};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.addPanel=(id,options3)=>{this.add(id,{type:Addon_TypesEnum.PANEL,...options3})},this.setConfig=value2=>{Object.assign(this.config,value2),this.hasChannel()?this.getChannel().emit(SET_CONFIG,this.config):this.ready().then(channel=>{channel.emit(SET_CONFIG,this.config)})},this.getConfig=()=>this.config,this.register=(id,callback)=>{this.loaders[id]&&logger.warn(`${id} was loaded twice, this could have bad side-effects`),this.loaders[id]=callback},this.loadAddons=api=>{Object.values(this.loaders).forEach(value2=>value2(api))},this.promise=new Promise(res=>{this.resolve=()=>res(this.getChannel())})}getElements(type){return this.elements[type]||(this.elements[type]={}),this.elements[type]}add(id,addon){let{type}=addon,collection=this.getElements(type);collection[id]={id,...addon}}},KEY2="__STORYBOOK_ADDONS_MANAGER";function getAddonsStore(){return scope[KEY2]||(scope[KEY2]=new AddonStore),scope[KEY2]}var addons=getAddonsStore(),{ActiveTabs:ActiveTabs2}=layout_exports,ManagerContext=createContext2({api:void 0,state:initial_state_default({})}),combineParameters=(...parameterSets)=>(0,import_mergeWith.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(module=>{"init"in module&&module.init()})};let{location:location22,path,refId,viewMode=props.docsOptions.docsMode?"docs":props.viewMode,singleStory,storyId,docsOptions,navigate}=props,store22=new Store({getState:()=>this.state,setState:(stateChange,callback)=>this.setState(stateChange,callback)}),routeData={location:location22,path,viewMode,singleStory,storyId,refId},optionsData={docsOptions};this.state=store22.getInitialState(initial_state_default({...routeData,...optionsData}));let apiData={navigate,store:store22,provider:props.provider};this.modules=[provider_exports,channel_exports,addons_exports,layout_exports,notifications_exports,settings_exports,shortcuts_exports,stories_exports,refs_exports,globals_exports,url_exports,versions_exports,whatsnew_exports].map(m3=>m3.init({...routeData,...optionsData,...apiData,state:this.state,fullAPI:this.api}));let state=initial_state_default(this.state,...this.modules.map(m3=>m3.state)),api=Object.assign(this.api,{navigate},...this.modules.map(m3=>m3.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,value2={state:this.state,api:this.api};return import_react2.default.createElement(EffectOnMount,{effect:this.initModules},import_react2.default.createElement(ManagerContext.Provider,{value:value2},import_react2.default.createElement(ManagerConsumer,null,children)))}};ManagerProvider.displayName="Manager";var EffectOnMount=({children,effect})=>(import_react2.default.useEffect(effect,[]),children),defaultFilter=c3=>c3;function ManagerConsumer({filter=defaultFilter,children}){let c3=(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(c3),l2=(0,import_react2.useMemo)(()=>[...Object.entries(data).reduce((acc,keyval)=>acc.concat(keyval),[])],[c3.state]);return(0,import_react2.useMemo)(()=>{let Child=renderer.current;return import_react2.default.createElement(Child,{...data})},l2)}function useStorybookState(){let{state}=(0,import_react2.useContext)(ManagerContext);return{...state,get storiesHash(){return deprecate("state.storiesHash is deprecated, please use state.index"),this.index||{}},get storiesConfigured(){return deprecate("state.storiesConfigured is deprecated, please use state.previewInitialized"),this.previewInitialized},get storiesFailed(){return deprecate("state.storiesFailed is deprecated, please use state.indexError"),this.indexError}}}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 result2=useStorybookApi().getCurrentParameter(parameterKey);return orDefault(result2,defaultValue)}var addonStateCache={};function useSharedState(stateId,defaultState2){let api=useStorybookApi(),existingState=api.getAddonState(stateId)||addonStateCache[stateId],state=orDefault(existingState,addonStateCache[stateId]?addonStateCache[stateId]:defaultState2);(0,import_react2.useEffect)(()=>{api.getAddonState(stateId)===void 0&&api.getAddonState(stateId)!==state&&api.setAddonState(stateId,state).then(s2=>{addonStateCache[stateId]=s2})},[api]);let setState=(s2,options3)=>{let result2=api.setAddonState(stateId,s2,options3);return addonStateCache[stateId]=result2,result2},allListeners=(0,import_react2.useMemo)(()=>{let stateChangeHandlers={[`${SHARED_STATE_CHANGED}-client-${stateId}`]:setState,[`${SHARED_STATE_SET}-client-${stateId}`]:setState},stateInitializationHandlers={[SET_STORIES]:async()=>{let currentState=api.getAddonState(stateId);currentState?(addonStateCache[stateId]=currentState,api.emit(`${SHARED_STATE_SET}-manager-${stateId}`,currentState)):addonStateCache[stateId]?(await setState(addonStateCache[stateId]),api.emit(`${SHARED_STATE_SET}-manager-${stateId}`,addonStateCache[stateId])):defaultState2!==void 0&&(await setState(defaultState2),addonStateCache[stateId]=defaultState2,api.emit(`${SHARED_STATE_SET}-manager-${stateId}`,defaultState2))},[STORY_CHANGED]:()=>{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,async(newStateOrMerger,options3)=>{let result2=await setState(newStateOrMerger,options3);emit(`${SHARED_STATE_CHANGED}-manager-${stateId}`,result2)}]}function useAddonState(addonId,defaultState2){return useSharedState(addonId,defaultState2)}function useArgs(){let{getCurrentStoryData,updateStoryArgs,resetStoryArgs}=useStorybookApi(),data=getCurrentStoryData(),args2=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[args2,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||{}}var StorybookError=class extends Error{constructor(){super(...arguments),this.data={},this.documentation=!1,this.fromStorybook=!0}get name(){let paddedCode=String(this.code).padStart(4,"0");return`SB_${this.category}_${paddedCode}`}get message(){let page;return this.documentation===!0?page=`https://storybook.js.org/error/${this.name}`:typeof this.documentation=="string"?page=this.documentation:Array.isArray(this.documentation)&&(page=`
53
+ `});let versions=ref.versions&&Object.keys(ref.versions).length?ref.versions:loadedData.versions;await api.setRef(id,{id,url:urlParseResult.url,...loadedData,...versions?{versions}:{},type:loadedData.storyIndex?"lazy":"auto-inject"})},getRefs:()=>{let{refs:refs22={}}=store22.getState();return refs22},setRef:(id,{storyIndex,setStoriesData,...rest},ready=!1)=>{if(singleStory)return;let{storyMapper=defaultStoryMapper}=provider.getConfig(),ref=api.getRefs()[id],index2;setStoriesData?index2=transformSetStoriesStoryDataToStoriesHash(map(setStoriesData,ref,{storyMapper}),{provider,docsOptions,filters:{},status:{}}):storyIndex&&(index2=transformStoryIndexToStoriesHash(storyIndex,{provider,docsOptions,filters:{},status:{}})),index2&&(index2=addRefIds(index2,ref)),api.updateRef(id,{index:index2,...rest})},updateRef:(id,data)=>{let{[id]:ref,...updated}=api.getRefs();updated[id]={...ref,...data};let ordered=Object.keys(initialState).reduce((obj,key2)=>(obj[key2]=updated[key2],obj),{});store22.setState({refs:ordered})}},refs2=!singleStory&&scope.REFS||{},initialState=refs2;return runCheck&&Object.entries(refs2).forEach(([id,ref])=>{api.checkRef({...ref,stories:{}})}),{api,state:{refs:initialState}}},getEventMetadata=(context,fullAPI)=>{let{source:source2,refId,type}=context,[sourceType,sourceLocation]=getSourceType(source2,refId),ref=refId&&fullAPI.getRefs()[refId]?fullAPI.getRefs()[refId]:fullAPI.findRef(sourceLocation),meta={source:source2,sourceType,sourceLocation,refId,ref,type};switch(!0){case typeof refId=="string":case sourceType==="local":case sourceType==="external":return meta;default:return logger.warn(`Received a ${type} frame that was not configured as a ref`),null}},{FEATURES,fetch:fetch2}=scope,STORY_INDEX_PATH="./index.json",removedOptions=["enableShortcuts","theme","showRoots"];function removeRemovedOptions(options3){if(!options3||typeof options3=="string")return options3;let result2={...options3};return removedOptions.forEach(option=>{option in result2&&delete result2[option]}),result2}var init7=({fullAPI,store:store22,navigate,provider,storyId:initialStoryId,viewMode:initialViewMode,docsOptions={}})=>{let api={storyId:N,getData:(storyId,refId)=>{let result2=api.resolveStory(storyId,refId);if(result2?.type==="story"||result2?.type==="docs")return result2},isPrepared:(storyId,refId)=>{let data=api.getData(storyId,refId);return data.type==="story"?data.prepared:!0},resolveStory:(storyId,refId)=>{let{refs:refs2,index:index2}=store22.getState();return refId&&!refs2[refId]?null:refId?refs2[refId].index?refs2[refId].index[storyId]:void 0:index2?index2[storyId]:void 0},getCurrentStoryData:()=>{let{storyId,refId}=store22.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(["story","docs"].includes(data?.type)){let{parameters}=data;if(parameters)return parameterName?parameters[parameterName]:parameters}return null},getCurrentParameter:parameterName=>{let{storyId,refId}=store22.getState();return api.getParameters({storyId,refId},parameterName)||void 0},jumpToComponent:direction=>{let{index:index2,storyId,refs:refs2,refId}=store22.getState();if(!api.getData(storyId,refId))return;let hash=refId?refs2[refId].index||{}:index2,result2=api.findSiblingStoryId(storyId,hash,direction,!0);result2&&api.selectStory(result2,void 0,{ref:refId})},jumpToStory:direction=>{let{index:index2,storyId,refs:refs2,refId}=store22.getState(),story=api.getData(storyId,refId);if(!story)return;let hash=story.refId?refs2[story.refId].index:index2,result2=api.findSiblingStoryId(storyId,hash,direction,!1);result2&&api.selectStory(result2,void 0,{ref:refId})},selectFirstStory:()=>{let{index:index2}=store22.getState(),firstStory=Object.keys(index2).find(id=>index2[id].type==="story");if(firstStory){api.selectStory(firstStory);return}navigate("/")},selectStory:(titleOrId=void 0,name2=void 0,options3={})=>{let{ref}=options3,{storyId,index:index2,refs:refs2}=store22.getState(),hash=ref?refs2[ref].index:index2,kindSlug=storyId?.split("--",2)[0];if(name2)if(titleOrId){let id=ref?`${ref}_${N(titleOrId,name2)}`:N(titleOrId,name2);if(hash[id])api.selectStory(id,void 0,options3);else{let entry=hash[L(titleOrId)];if(entry?.type==="component"){let foundId=entry.children.find(childId=>hash[childId].name===name2);foundId&&api.selectStory(foundId,void 0,options3)}}}else{let id=N(kindSlug,name2);api.selectStory(id,void 0,options3)}else{let entry=titleOrId?hash[titleOrId]||hash[L(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(index2,storyId){let entry=index2[storyId];if(entry.type==="docs"||entry.type==="story")return entry;let childStoryId=entry.children[0];return api.findLeafEntry(index2,childStoryId)},findLeafStoryId(index2,storyId){return api.findLeafEntry(index2,storyId)?.id},findSiblingStoryId(storyId,index2,direction,toSiblingGroup){if(toSiblingGroup){let lookupList2=getComponentLookupList(index2),position2=lookupList2.findIndex(i3=>i3.includes(storyId));return position2===lookupList2.length-1&&direction>0||position2===0&&direction<0?void 0:lookupList2[position2+direction]?lookupList2[position2+direction][0]:void 0}let lookupList=getStoriesLookupList(index2),position=lookupList.indexOf(storyId);if(!(position===lookupList.length-1&&direction>0)&&!(position===0&&direction<0))return lookupList[position+direction]},updateStoryArgs:(story,updatedArgs)=>{let{id:storyId,refId}=story;provider.channel.emit(UPDATE_STORY_ARGS,{storyId,updatedArgs,options:{target:refId}})},resetStoryArgs:(story,argNames)=>{let{id:storyId,refId}=story;provider.channel.emit(RESET_STORY_ARGS,{storyId,argNames,options:{target:refId}})},fetchIndex:async()=>{try{let result2=await fetch2(STORY_INDEX_PATH);if(result2.status!==200)throw new Error(await result2.text());let storyIndex=await result2.json();if(storyIndex.v<3){logger.warn(`Skipping story index with version v${storyIndex.v}, awaiting SET_STORIES.`);return}await api.setIndex(storyIndex)}catch(err){await store22.setState({indexError:err})}},setIndex:async input=>{let{index:oldHash,status,filters}=store22.getState(),newHash=transformStoryIndexToStoriesHash(input,{provider,docsOptions,status,filters}),output=addPreparedStories(newHash,oldHash);await store22.setState({internal_index:input,index:output,indexError:void 0})},updateStory:async(storyId,update2,ref)=>{if(ref){let{id:refId,index:index2}=ref;index2[storyId]={...index2[storyId],...update2},await fullAPI.updateRef(refId,{index:index2})}else{let{index:index2}=store22.getState();index2[storyId]={...index2[storyId],...update2},await store22.setState({index:index2})}},updateDocs:async(docsId,update2,ref)=>{if(ref){let{id:refId,index:index2}=ref;index2[docsId]={...index2[docsId],...update2},await fullAPI.updateRef(refId,{index:index2})}else{let{index:index2}=store22.getState();index2[docsId]={...index2[docsId],...update2},await store22.setState({index:index2})}},setPreviewInitialized:async ref=>{ref?fullAPI.updateRef(ref.id,{previewInitialized:!0}):store22.setState({previewInitialized:!0})},experimental_updateStatus:async(id,input)=>{let{status,internal_index:index2}=store22.getState(),newStatus={...status},update2=typeof input=="function"?input(status):input;Object.keys(update2).length!==0&&(Object.entries(update2).forEach(([storyId,value2])=>{newStatus[storyId]={...newStatus[storyId]||{}},value2===null?delete newStatus[storyId][id]:newStatus[storyId][id]=value2,Object.keys(newStatus[storyId]).length===0&&delete newStatus[storyId]}),await store22.setState({status:newStatus},{persistence:"session"}),await api.setIndex(index2))},experimental_setFilter:async(id,filterFunction)=>{let{internal_index:index2}=store22.getState();await store22.setState({filters:{...store22.getState().filters,[id]:filterFunction}}),await api.setIndex(index2)}};provider.channel.on(STORY_SPECIFIED,function({storyId,viewMode}){let{sourceType}=getEventMetadata(this,fullAPI);if(sourceType==="local"){let state=store22.getState(),isCanvasRoute=state.path==="/"||state.viewMode==="story"||state.viewMode==="docs",stateHasSelection=state.viewMode&&state.storyId,stateSelectionDifferent=state.viewMode!==viewMode||state.storyId!==storyId;isCanvasRoute&&(stateHasSelection&&stateSelectionDifferent?provider.channel.emit(SET_CURRENT_STORY,{storyId:state.storyId,viewMode:state.viewMode}):stateSelectionDifferent&&navigate(`/${viewMode}/${storyId}`))}}),provider.channel.on(CURRENT_STORY_WAS_SET,function(){let{ref}=getEventMetadata(this,fullAPI);api.setPreviewInitialized(ref)}),provider.channel.on(STORY_CHANGED,function(){let{sourceType}=getEventMetadata(this,fullAPI);if(sourceType==="local"){let options3=api.getCurrentParameter("options");options3&&fullAPI.setOptions(removeRemovedOptions(options3))}}),provider.channel.on(STORY_PREPARED,function({id,...update2}){let{ref,sourceType}=getEventMetadata(this,fullAPI);if(api.updateStory(id,{...update2,prepared:!0},ref),!ref&&!store22.getState().hasCalledSetOptions){let{options:options3}=update2.parameters;fullAPI.setOptions(removeRemovedOptions(options3)),store22.setState({hasCalledSetOptions:!0})}if(sourceType==="local"){let{storyId,index:index2,refId}=store22.getState(),toBePreloaded=Array.from(new Set([api.findSiblingStoryId(storyId,index2,1,!0),api.findSiblingStoryId(storyId,index2,-1,!0)])).filter(Boolean);provider.channel.emit(PRELOAD_ENTRIES,{ids:toBePreloaded,options:{target:refId}})}}),provider.channel.on(DOCS_PREPARED,function({id,...update2}){let{ref}=getEventMetadata(this,fullAPI);api.updateStory(id,{...update2,prepared:!0},ref)}),provider.channel.on(SET_INDEX,function(index2){let{ref}=getEventMetadata(this,fullAPI);if(ref)fullAPI.setRef(ref.id,{...ref,storyIndex:index2},!0);else{api.setIndex(index2);let options3=api.getCurrentParameter("options");fullAPI.setOptions(removeRemovedOptions(options3))}}),provider.channel.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")}),provider.channel.on(SELECT_STORY,function({kind,title=kind,story,name:name2=story,storyId,...rest}){let{ref}=getEventMetadata(this,fullAPI);ref?fullAPI.selectStory(storyId||title,name2,{...rest,ref:ref.id}):fullAPI.selectStory(storyId||title,name2,rest)}),provider.channel.on(STORY_ARGS_UPDATED,function({storyId,args:args2}){let{ref}=getEventMetadata(this,fullAPI);api.updateStory(storyId,{args:args2},ref)}),provider.channel.on(CONFIG_ERROR,function(err){let{ref}=getEventMetadata(this,fullAPI);api.setPreviewInitialized(ref)}),provider.channel.on(STORY_MISSING,function(err){let{ref}=getEventMetadata(this,fullAPI);api.setPreviewInitialized(ref)}),provider.channel.on(SET_CONFIG,()=>{let config2=provider.getConfig();config2?.sidebar?.filters&&store22.setState({filters:{...store22.getState().filters,...config2?.sidebar?.filters}})});let config=provider.getConfig();return{api,state:{storyId:initialStoryId,viewMode:initialViewMode,hasCalledSetOptions:!1,previewInitialized:!1,status:{},filters:config?.sidebar?.filters||{}},init:async()=>{FEATURES?.storyStoreV7&&(provider.channel.on(STORY_INDEX_INVALIDATED,()=>api.fetchIndex()),await api.fetchIndex())}}},layout_exports={};__export2(layout_exports,{ActiveTabs:()=>ActiveTabs,focusableUIElements:()=>focusableUIElements,init:()=>init8});var{document:document3}=scope,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"},init8=({store:store22,provider,singleStory,fullAPI})=>{let api={toggleFullscreen(toggled){return store22.setState(state=>{let{showNav}=state.layout,value2=typeof toggled=="boolean"?toggled:!state.layout.isFullscreen,shouldShowNav=showNav===!1&&value2===!1;return{layout:{...state.layout,isFullscreen:value2,showNav:!singleStory&&shouldShowNav?!0:showNav}}},{persistence:"session"})},togglePanel(toggled){return store22.setState(state=>{let{showNav,isFullscreen}=state.layout,value2=typeof toggled<"u"?toggled:!state.layout.showPanel,shouldToggleFullScreen=showNav===!1&&value2===!1;return{layout:{...state.layout,showPanel:value2,isFullscreen:shouldToggleFullScreen?!0:isFullscreen}}},{persistence:"session"})},togglePanelPosition(position){return typeof position<"u"?store22.setState(state=>({layout:{...state.layout,panelPosition:position}}),{persistence:"permanent"}):store22.setState(state=>({layout:{...state.layout,panelPosition:state.layout.panelPosition==="right"?"bottom":"right"}}),{persistence:"permanent"})},toggleNav(toggled){return store22.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 store22.setState(state=>{let value2=typeof toggled<"u"?toggled:!state.layout.showToolbar;return{layout:{...state.layout,showToolbar:value2}}},{persistence:"session"})},resetLayout(){return store22.setState(state=>({layout:{...state.layout,showNav:!1,showPanel:!1,isFullscreen:!1}}),{persistence:"session"})},focusOnUIElement(elementId,select){if(!elementId)return;let element=document3.getElementById(elementId);element&&(element.focus(),select&&element.select())},getInitialOptions(){let{theme,selectedPanel,...options3}=provider.getConfig();return{...defaultState,layout:{...defaultState.layout,...(0,import_pick.default)(options3,Object.keys(defaultState.layout)),...singleStory&&{showNav:!1}},ui:{...defaultState.ui,...(0,import_pick.default)(options3,Object.keys(defaultState.ui))},selectedPanel:selectedPanel||defaultState.selectedPanel,theme:theme||defaultState.theme}},setOptions:options3=>{let{layout,ui,selectedPanel,theme}=store22.getState();if(options3){let updatedLayout={...layout,...options3.layout,...(0,import_pick.default)(options3,Object.keys(layout)),...singleStory&&{showNav:!1}},updatedUi={...ui,...options3.ui,...(0,import_pick.default)(options3,Object.keys(ui))},updatedTheme={...theme,...options3.theme},modification={};dequal2(ui,updatedUi)||(modification.ui=updatedUi),dequal2(layout,updatedLayout)||(modification.layout=updatedLayout),options3.selectedPanel&&!dequal2(selectedPanel,options3.selectedPanel)&&(modification.selectedPanel=options3.selectedPanel),Object.keys(modification).length&&store22.setState(modification,{persistence:"permanent"}),dequal2(theme,updatedTheme)||store22.setState({theme:updatedTheme})}}},persisted=(0,import_pick.default)(store22.getState(),"layout","selectedPanel");return{api,state:merge_default(api.getInitialOptions(),persisted),init:()=>{api.setOptions(merge_default(api.getInitialOptions(),persisted)),provider.channel.on(SET_CONFIG,()=>{api.setOptions(merge_default(api.getInitialOptions(),persisted))})}}},shortcuts_exports={};__export2(shortcuts_exports,{controlOrMetaKey:()=>controlOrMetaKey2,defaultShortcuts:()=>defaultShortcuts,init:()=>init9,isMacLike:()=>isMacLike2,keys:()=>keys});var{navigator:navigator2}=scope,isMacLike=()=>navigator2&&navigator2.platform?!!navigator2.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=e3=>{if(["Meta","Alt","Control","Shift"].includes(e3.key))return null;let keys2=[];if(e3.altKey&&keys2.push("alt"),e3.ctrlKey&&keys2.push("control"),e3.metaKey&&keys2.push("meta"),e3.shiftKey&&keys2.push("shift"),e3.key&&e3.key.length===1&&e3.key!==" "){let key2=e3.key.toUpperCase(),code=e3.code?.toUpperCase().replace("KEY","").replace("DIGIT","");code&&code.length===1&&code!==key2?keys2.push([key2,code]):keys2.push(key2)}return e3.key===" "&&keys2.push("space"),e3.key==="Escape"&&keys2.push("escape"),e3.key==="ArrowRight"&&keys2.push("ArrowRight"),e3.key==="ArrowDown"&&keys2.push("ArrowDown"),e3.key==="ArrowUp"&&keys2.push("ArrowUp"),e3.key==="ArrowLeft"&&keys2.push("ArrowLeft"),keys2.length>0?keys2:null},shortcutMatchesShortcut=(inputShortcut,shortcut)=>!inputShortcut||!shortcut||(inputShortcut.join("").startsWith("shift/")&&inputShortcut.shift(),inputShortcut.length!==shortcut.length)?!1:!inputShortcut.find((input,i3)=>Array.isArray(input)?!input.includes(shortcut[i3]):input!==shortcut[i3]),eventMatchesShortcut=(e3,shortcut)=>shortcutMatchesShortcut(eventToShortcut(e3),shortcut),keyToSymbol=key2=>key2==="alt"?optionOrAltSymbol():key2==="control"?"\u2303":key2==="meta"?"\u2318":key2==="shift"?"\u21E7\u200B":key2==="Enter"||key2==="Backspace"||key2==="Esc"||key2==="escape"?"":key2===" "?"SPACE":key2==="ArrowUp"?"\u2191":key2==="ArrowDown"?"\u2193":key2==="ArrowLeft"?"\u2190":key2==="ArrowRight"?"\u2192":key2.toUpperCase(),shortcutToHumanString=shortcut=>shortcut.map(keyToSymbol).join(" "),{navigator:navigator22,document:document23}=scope,isMacLike2=()=>navigator22&&navigator22.platform?!!navigator22.platform.match(/(Mac|iPhone|iPod|iPad)/i):!1,controlOrMetaKey2=()=>isMacLike2()?"meta":"control";function keys(o2){return Object.keys(o2)}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"],remount:["alt","R"]}),addonsShortcuts={};function focusInInput(event){let target=event.target;return/input|textarea/i.test(target.tagName)||target.getAttribute("contenteditable")!==null}var init9=({store:store22,fullAPI,provider})=>{let api={getShortcutKeys(){return store22.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 store22.setState({shortcuts},{persistence:"permanent"}),shortcuts},async restoreAllDefaultShortcuts(){return api.setShortcuts(api.getDefaultShortcuts())},async setShortcut(action,value2){let shortcuts=api.getShortcutKeys();return await api.setShortcuts({...shortcuts,[action]:value2}),value2},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&&api.handleShortcutFeature(matchedFeature,event)},handleShortcutFeature(feature,event){let{layout:{isFullscreen,showNav,showPanel},ui:{enableShortcuts},storyId}=store22.getState();if(enableShortcuts)switch(event?.preventDefault&&event.preventDefault(),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=document23.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}case"remount":{fullAPI.emit(FORCE_REMOUNT,{storyId});break}default:addonsShortcuts[feature].action();break}}},{shortcuts:persistedShortcuts=defaultShortcuts}=store22.getState(),state={shortcuts:keys(defaultShortcuts).reduce((acc,key2)=>({...acc,[key2]:persistedShortcuts[key2]||defaultShortcuts[key2]}),defaultShortcuts)};return{api,state,init:()=>{document23.addEventListener("keydown",event=>{focusInInput(event)||api.handleKeydownEvent(event)}),provider.channel.on(PREVIEW_KEYDOWN,data=>{api.handleKeydownEvent(data.event)})}}},url_exports={};__export2(url_exports,{init:()=>init10});var{window:globalWindow}=scope,parseBoolean=value2=>{if(value2==="true"||value2==="1")return!0;if(value2==="false"||value2==="0")return!1},prevParams,initialUrlSupport=({state:{location:location22,path,viewMode,storyId:storyIdFromUrl},singleStory})=>{let{full,panel,nav,shortcuts,addonPanel,tabs,path:queryPath,...otherParams}=queryFromLocation(location22),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=dequal2(prevParams,otherParams)?prevParams:otherParams;return prevParams=customQueryParams,{viewMode,layout,ui,selectedPanel,location:location22,path,customQueryParams,storyId}},init10=moduleArgs=>{let{store:store22,navigate,provider,fullAPI}=moduleArgs,navigateTo=(path,queryParams={},options3={})=>{let params=Object.entries(queryParams).filter(([,v2])=>v2).sort(([a2],[b3])=>a2<b3?-1:1).map(([k2,v2])=>`${k2}=${v2}`),to=[path,...params].join("&");return navigate(to,options3)},api={getQueryParam(key2){let{customQueryParams}=store22.getState();return customQueryParams?customQueryParams[key2]:void 0},getUrlState(){let{path,customQueryParams,storyId,url,viewMode}=store22.getState();return{path,queryParams:customQueryParams,storyId,url,viewMode}},setQueryParams(input){let{customQueryParams}=store22.getState(),queryParams={},update2={...customQueryParams,...Object.entries(input).reduce((acc,[key2,value2])=>(value2!==null&&(acc[key2]=value2),acc),queryParams)};dequal2(customQueryParams,update2)||(store22.setState({customQueryParams:update2}),provider.channel.emit(UPDATE_QUERY_PARAMS,update2))},navigateUrl(url,options3){navigate(url,{plain:!0,...options3})}},updateArgsParam=()=>{let{path,queryParams,viewMode}=api.getUrlState();if(viewMode!=="story")return;let currentStory=fullAPI.getCurrentStoryData();if(currentStory?.type!=="story")return;let{args:args2,initialArgs}=currentStory,argsString=buildArgsParam(initialArgs,args2);navigateTo(path,{...queryParams,args:argsString},{replace:!0}),api.setQueryParams({args:argsString})};provider.channel.on(SET_CURRENT_STORY,()=>updateArgsParam());let handleOrId;return provider.channel.on(STORY_ARGS_UPDATED,()=>{"requestIdleCallback"in globalWindow?(handleOrId&&globalWindow.cancelIdleCallback(handleOrId),handleOrId=globalWindow.requestIdleCallback(updateArgsParam,{timeout:1e3})):(handleOrId&&clearTimeout(handleOrId),setTimeout(updateArgsParam,100))}),provider.channel.on(GLOBALS_UPDATED,({globals,initialGlobals})=>{let{path,queryParams}=api.getUrlState(),globalsString=buildArgsParam(initialGlobals,globals);navigateTo(path,{...queryParams,globals:globalsString},{replace:!0}),api.setQueryParams({globals:globalsString})}),provider.channel.on(NAVIGATE_URL,(url,options3)=>{api.navigateUrl(url,options3)}),{api,state:initialUrlSupport(moduleArgs)}},versions_exports={};__export2(versions_exports,{init:()=>init11});var version="0.0.0-pr-24038-sha-e7e31321",{VERSIONCHECK}=scope,getVersionCheckData=(0,import_memoizerific3.default)(1)(()=>{try{return{...JSON.parse(VERSIONCHECK).data||{}}}catch{return{}}}),init11=({store:store22})=>{let{dismissedVersionNotification}=store22.getState(),state={versions:{current:{version},...getVersionCheckData()},dismissedVersionNotification},api={getCurrentVersion:()=>{let{versions:{current}}=store22.getState();return current},getLatestVersion:()=>{let{versions:{latest,next,current}}=store22.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={}}=store22.getState(),{latest,next}=getVersionCheckData();await store22.setState({versions:{...versions,latest,next}})},state,api}},whatsnew_exports={};__export2(whatsnew_exports,{init:()=>init12});var WHATS_NEW_NOTIFICATION_ID="whats-new",init12=({fullAPI,store:store22,provider})=>{let state={whatsNewData:void 0};function setWhatsNewState(newState){store22.setState({whatsNewData:newState}),state.whatsNewData=newState}let api={isWhatsNewUnread(){return state.whatsNewData?.status==="SUCCESS"&&!state.whatsNewData.postIsRead},whatsNewHasBeenRead(){state.whatsNewData?.status==="SUCCESS"&&(setWhatsNewCache({lastReadPost:state.whatsNewData.url}),setWhatsNewState({...state.whatsNewData,postIsRead:!0}),fullAPI.clearNotification(WHATS_NEW_NOTIFICATION_ID))},toggleWhatsNewNotifications(){state.whatsNewData?.status==="SUCCESS"&&(setWhatsNewState({...state.whatsNewData,disableWhatsNewNotifications:!state.whatsNewData.disableWhatsNewNotifications}),provider.channel.emit(TOGGLE_WHATS_NEW_NOTIFICATIONS,{disableWhatsNewNotifications:state.whatsNewData.disableWhatsNewNotifications}))}};function getLatestWhatsNewPost(){return provider.channel.emit(REQUEST_WHATS_NEW_DATA),new Promise(resolve=>provider.channel.once(RESULT_WHATS_NEW_DATA,({data})=>resolve(data)))}function setWhatsNewCache(cache){provider.channel.emit(SET_WHATS_NEW_CACHE,cache)}return{init:async()=>{if(scope.CONFIG_TYPE!=="DEVELOPMENT")return;let whatsNewData=await getLatestWhatsNewPost();setWhatsNewState(whatsNewData);let urlState=fullAPI.getUrlState();!(urlState?.path==="/onboarding"||urlState.queryParams?.onboarding==="true")&&whatsNewData.status==="SUCCESS"&&!whatsNewData.disableWhatsNewNotifications&&whatsNewData.showNotification&&fullAPI.addNotification({id:WHATS_NEW_NOTIFICATION_ID,link:"/settings/whats-new",content:{headline:whatsNewData.excerpt,subHeadline:"Click to learn what's new in Storybook"},icon:{name:"hearthollow"},onClear({dismissed}){dismissed&&setWhatsNewCache({lastDismissedPost:whatsNewData.url})}})},state,api}},globals_exports={};__export2(globals_exports,{init:()=>init13});var init13=({store:store22,fullAPI,provider})=>{let api={getGlobals(){return store22.getState().globals},getGlobalTypes(){return store22.getState().globalTypes},updateGlobals(newGlobals){provider.channel.emit(UPDATE_GLOBALS,{globals:newGlobals,options:{target:"storybook-preview-iframe"}})}},state={globals:{},globalTypes:{}},updateGlobals=globals=>{let currentGlobals=store22.getState()?.globals;dequal2(globals,currentGlobals)||store22.setState({globals})};return provider.channel.on(GLOBALS_UPDATED,function({globals}){let{ref}=getEventMetadata(this,fullAPI);ref?logger.warn("received a GLOBALS_UPDATED from a non-local ref. This is not currently supported."):updateGlobals(globals)}),provider.channel.on(SET_GLOBALS,function({globals,globalTypes}){let{ref}=getEventMetadata(this,fullAPI),currentGlobals=store22.getState()?.globals;ref?Object.keys(globals).length>0&&logger.warn("received globals from a non-local ref. This is not currently supported."):store22.setState({globals,globalTypes}),currentGlobals&&Object.keys(currentGlobals).length!==0&&!dequal2(globals,currentGlobals)&&api.updateGlobals(currentGlobals)}),{api,state}};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.addPanel=(id,options3)=>{this.add(id,{type:Addon_TypesEnum.PANEL,...options3})},this.setConfig=value2=>{Object.assign(this.config,value2),this.hasChannel()?this.getChannel().emit(SET_CONFIG,this.config):this.ready().then(channel=>{channel.emit(SET_CONFIG,this.config)})},this.getConfig=()=>this.config,this.register=(id,callback)=>{this.loaders[id]&&logger.warn(`${id} was loaded twice, this could have bad side-effects`),this.loaders[id]=callback},this.loadAddons=api=>{Object.values(this.loaders).forEach(value2=>value2(api))},this.promise=new Promise(res=>{this.resolve=()=>res(this.getChannel())})}getElements(type){return this.elements[type]||(this.elements[type]={}),this.elements[type]}add(id,addon){let{type}=addon,collection=this.getElements(type);collection[id]={id,...addon}}},KEY2="__STORYBOOK_ADDONS_MANAGER";function getAddonsStore(){return scope[KEY2]||(scope[KEY2]=new AddonStore),scope[KEY2]}var addons=getAddonsStore(),{ActiveTabs:ActiveTabs2}=layout_exports,ManagerContext=createContext2({api:void 0,state:initial_state_default({})}),combineParameters=(...parameterSets)=>(0,import_mergeWith.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(module=>{"init"in module&&module.init()})};let{location:location22,path,refId,viewMode=props.docsOptions.docsMode?"docs":props.viewMode,singleStory,storyId,docsOptions,navigate}=props,store22=new Store({getState:()=>this.state,setState:(stateChange,callback)=>this.setState(stateChange,callback)}),routeData={location:location22,path,viewMode,singleStory,storyId,refId},optionsData={docsOptions};this.state=store22.getInitialState(initial_state_default({...routeData,...optionsData}));let apiData={navigate,store:store22,provider:props.provider};this.modules=[provider_exports,channel_exports,addons_exports,layout_exports,notifications_exports,settings_exports,shortcuts_exports,stories_exports,refs_exports,globals_exports,url_exports,versions_exports,whatsnew_exports].map(m3=>m3.init({...routeData,...optionsData,...apiData,state:this.state,fullAPI:this.api}));let state=initial_state_default(this.state,...this.modules.map(m3=>m3.state)),api=Object.assign(this.api,{navigate},...this.modules.map(m3=>m3.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,value2={state:this.state,api:this.api};return import_react2.default.createElement(EffectOnMount,{effect:this.initModules},import_react2.default.createElement(ManagerContext.Provider,{value:value2},import_react2.default.createElement(ManagerConsumer,null,children)))}};ManagerProvider.displayName="Manager";var EffectOnMount=({children,effect})=>(import_react2.default.useEffect(effect,[]),children),defaultFilter=c3=>c3;function ManagerConsumer({filter=defaultFilter,children}){let c3=(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(c3),l2=(0,import_react2.useMemo)(()=>[...Object.entries(data).reduce((acc,keyval)=>acc.concat(keyval),[])],[c3.state]);return(0,import_react2.useMemo)(()=>{let Child=renderer.current;return import_react2.default.createElement(Child,{...data})},l2)}function useStorybookState(){let{state}=(0,import_react2.useContext)(ManagerContext);return{...state,get storiesHash(){return deprecate("state.storiesHash is deprecated, please use state.index"),this.index||{}},get storiesConfigured(){return deprecate("state.storiesConfigured is deprecated, please use state.previewInitialized"),this.previewInitialized},get storiesFailed(){return deprecate("state.storiesFailed is deprecated, please use state.indexError"),this.indexError}}}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 result2=useStorybookApi().getCurrentParameter(parameterKey);return orDefault(result2,defaultValue)}var addonStateCache={};function useSharedState(stateId,defaultState2){let api=useStorybookApi(),existingState=api.getAddonState(stateId)||addonStateCache[stateId],state=orDefault(existingState,addonStateCache[stateId]?addonStateCache[stateId]:defaultState2);(0,import_react2.useEffect)(()=>{api.getAddonState(stateId)===void 0&&api.getAddonState(stateId)!==state&&api.setAddonState(stateId,state).then(s2=>{addonStateCache[stateId]=s2})},[api]);let setState=(s2,options3)=>{let result2=api.setAddonState(stateId,s2,options3);return addonStateCache[stateId]=result2,result2},allListeners=(0,import_react2.useMemo)(()=>{let stateChangeHandlers={[`${SHARED_STATE_CHANGED}-client-${stateId}`]:setState,[`${SHARED_STATE_SET}-client-${stateId}`]:setState},stateInitializationHandlers={[SET_STORIES]:async()=>{let currentState=api.getAddonState(stateId);currentState?(addonStateCache[stateId]=currentState,api.emit(`${SHARED_STATE_SET}-manager-${stateId}`,currentState)):addonStateCache[stateId]?(await setState(addonStateCache[stateId]),api.emit(`${SHARED_STATE_SET}-manager-${stateId}`,addonStateCache[stateId])):defaultState2!==void 0&&(await setState(defaultState2),addonStateCache[stateId]=defaultState2,api.emit(`${SHARED_STATE_SET}-manager-${stateId}`,defaultState2))},[STORY_CHANGED]:()=>{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,async(newStateOrMerger,options3)=>{let result2=await setState(newStateOrMerger,options3);emit(`${SHARED_STATE_CHANGED}-manager-${stateId}`,result2)}]}function useAddonState(addonId,defaultState2){return useSharedState(addonId,defaultState2)}function useArgs(){let{getCurrentStoryData,updateStoryArgs,resetStoryArgs}=useStorybookApi(),data=getCurrentStoryData(),args2=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[args2,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||{}}var StorybookError=class extends Error{constructor(){super(...arguments),this.data={},this.documentation=!1,this.fromStorybook=!0}get name(){let paddedCode=String(this.code).padStart(4,"0");return`SB_${this.category}_${paddedCode}`}get message(){let page;return this.documentation===!0?page=`https://storybook.js.org/error/${this.name}`:typeof this.documentation=="string"?page=this.documentation:Array.isArray(this.documentation)&&(page=`
54
54
  ${this.documentation.map(doc=>` - ${doc}`).join(`
55
55
  `)}`),this.template()+(page!=null?`
56
56
 
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{Provider,Root,renderStorybookUI}from"./chunk-YHANWAOC.js";import"./chunk-O2ZUMB77.js";import"./chunk-NBCGHFLK.js";import"./chunk-QPL63VNK.js";import"./chunk-SPUAGIB2.js";import"./chunk-QMHPSTMR.js";import"./chunk-3J6GS6FI.js";import"./chunk-RKFFWI2D.js";export{Provider,Root,renderStorybookUI};
1
+ import{Provider,Root,renderStorybookUI}from"./chunk-LYNS3Z3G.js";import"./chunk-O2ZUMB77.js";import"./chunk-NBCGHFLK.js";import"./chunk-QPL63VNK.js";import"./chunk-SPUAGIB2.js";import"./chunk-QMHPSTMR.js";import"./chunk-3J6GS6FI.js";import"./chunk-RKFFWI2D.js";export{Provider,Root,renderStorybookUI};
package/dist/runtime.js CHANGED
@@ -1 +1 @@
1
- import{Addon_TypesEnum,CHANNEL_CREATED,Provider,TELEMETRY_ERROR,UncaughtManagerError,addons,createBrowserChannel,dist_exports as dist_exports2,dist_exports2 as dist_exports3,dist_exports3 as dist_exports4,dist_exports4 as dist_exports5,dist_exports5 as dist_exports7,mockChannel,renderStorybookUI}from"./chunk-YHANWAOC.js";import"./chunk-O2ZUMB77.js";import{require_react_dom}from"./chunk-NBCGHFLK.js";import"./chunk-QPL63VNK.js";import{dist_exports,dist_exports2 as dist_exports6,scope}from"./chunk-SPUAGIB2.js";import{require_react}from"./chunk-QMHPSTMR.js";import"./chunk-3J6GS6FI.js";import{__toESM}from"./chunk-RKFFWI2D.js";var REACT=__toESM(require_react()),REACTDOM=__toESM(require_react_dom());var values={react:REACT,"react-dom":REACTDOM,"@storybook/components":dist_exports7,"@storybook/channels":dist_exports4,"@storybook/core-events":dist_exports3,"@storybook/router":dist_exports2,"@storybook/theming":dist_exports6,"@storybook/api":dist_exports5,"@storybook/manager-api":dist_exports5,"@storybook/addons":{addons,types:Addon_TypesEnum,mockChannel},"@storybook/client-logger":dist_exports};var Keys=(Keys2=>(Keys2.react="__REACT__",Keys2["react-dom"]="__REACTDOM__",Keys2["@storybook/components"]="__STORYBOOKCOMPONENTS__",Keys2["@storybook/channels"]="__STORYBOOKCHANNELS__",Keys2["@storybook/core-events"]="__STORYBOOKCOREEVENTS__",Keys2["@storybook/router"]="__STORYBOOKROUTER__",Keys2["@storybook/theming"]="__STORYBOOKTHEMING__",Keys2["@storybook/api"]="__STORYBOOKAPI__",Keys2["@storybook/manager-api"]="__STORYBOOKAPI__",Keys2["@storybook/addons"]="__STORYBOOKADDONS__",Keys2["@storybook/client-logger"]="__STORYBOOKCLIENTLOGGER__",Keys2))(Keys||{});var{FEATURES,CONFIG_TYPE}=scope,ReactProvider=class extends Provider{constructor(){super();let channel=createBrowserChannel({page:"manager"});addons.setChannel(channel),channel.emit(CHANNEL_CREATED),this.addons=addons,this.channel=channel,scope.__STORYBOOK_ADDONS_CHANNEL__=channel,FEATURES?.storyStoreV7&&CONFIG_TYPE==="DEVELOPMENT"&&(this.serverChannel=this.channel,addons.setServerChannel(this.serverChannel))}getElements(type){return this.addons.getElements(type)}getConfig(){return this.addons.getConfig()}handleAPI(api){this.addons.loadAddons(api)}};Object.keys(Keys).forEach(key=>{scope[Keys[key]]=values[key]});function preprocessError(originalError){let error=originalError;return originalError.fromStorybook||(error=new UncaughtManagerError(originalError)),(error.target===window||error.currentTarget===window||error.srcElement===window)&&(error=new Error(originalError.message),error.name=originalError.name||error.name,error.category=originalError.category),error}scope.sendTelemetryError=error=>{scope.__STORYBOOK_ADDONS_CHANNEL__.emit(TELEMETRY_ERROR,preprocessError(error))};scope.addEventListener("error",args=>{let error=args.error||args;scope.sendTelemetryError(error)});scope.addEventListener("unhandledrejection",({reason})=>{scope.sendTelemetryError(reason)});var{document}=scope,rootEl=document.getElementById("root");renderStorybookUI(rootEl,new ReactProvider);
1
+ import{Addon_TypesEnum,CHANNEL_CREATED,Provider,TELEMETRY_ERROR,UncaughtManagerError,addons,createBrowserChannel,dist_exports as dist_exports2,dist_exports2 as dist_exports3,dist_exports3 as dist_exports4,dist_exports4 as dist_exports5,dist_exports5 as dist_exports7,mockChannel,renderStorybookUI}from"./chunk-LYNS3Z3G.js";import"./chunk-O2ZUMB77.js";import{require_react_dom}from"./chunk-NBCGHFLK.js";import"./chunk-QPL63VNK.js";import{dist_exports,dist_exports2 as dist_exports6,scope}from"./chunk-SPUAGIB2.js";import{require_react}from"./chunk-QMHPSTMR.js";import"./chunk-3J6GS6FI.js";import{__toESM}from"./chunk-RKFFWI2D.js";var REACT=__toESM(require_react()),REACTDOM=__toESM(require_react_dom());var values={react:REACT,"react-dom":REACTDOM,"@storybook/components":dist_exports7,"@storybook/channels":dist_exports4,"@storybook/core-events":dist_exports3,"@storybook/router":dist_exports2,"@storybook/theming":dist_exports6,"@storybook/api":dist_exports5,"@storybook/manager-api":dist_exports5,"@storybook/addons":{addons,types:Addon_TypesEnum,mockChannel},"@storybook/client-logger":dist_exports};var Keys=(Keys2=>(Keys2.react="__REACT__",Keys2["react-dom"]="__REACTDOM__",Keys2["@storybook/components"]="__STORYBOOKCOMPONENTS__",Keys2["@storybook/channels"]="__STORYBOOKCHANNELS__",Keys2["@storybook/core-events"]="__STORYBOOKCOREEVENTS__",Keys2["@storybook/router"]="__STORYBOOKROUTER__",Keys2["@storybook/theming"]="__STORYBOOKTHEMING__",Keys2["@storybook/api"]="__STORYBOOKAPI__",Keys2["@storybook/manager-api"]="__STORYBOOKAPI__",Keys2["@storybook/addons"]="__STORYBOOKADDONS__",Keys2["@storybook/client-logger"]="__STORYBOOKCLIENTLOGGER__",Keys2))(Keys||{});var{FEATURES,CONFIG_TYPE}=scope,ReactProvider=class extends Provider{constructor(){super();let channel=createBrowserChannel({page:"manager"});addons.setChannel(channel),channel.emit(CHANNEL_CREATED),this.addons=addons,this.channel=channel,scope.__STORYBOOK_ADDONS_CHANNEL__=channel,FEATURES?.storyStoreV7&&CONFIG_TYPE==="DEVELOPMENT"&&(this.serverChannel=this.channel,addons.setServerChannel(this.serverChannel))}getElements(type){return this.addons.getElements(type)}getConfig(){return this.addons.getConfig()}handleAPI(api){this.addons.loadAddons(api)}};Object.keys(Keys).forEach(key=>{scope[Keys[key]]=values[key]});function preprocessError(originalError){let error=originalError;return originalError.fromStorybook||(error=new UncaughtManagerError(originalError)),(error.target===window||error.currentTarget===window||error.srcElement===window)&&(error=new Error(originalError.message),error.name=originalError.name||error.name,error.category=originalError.category),error}scope.sendTelemetryError=error=>{scope.__STORYBOOK_ADDONS_CHANNEL__.emit(TELEMETRY_ERROR,preprocessError(error))};scope.addEventListener("error",args=>{let error=args.error||args;scope.sendTelemetryError(error)});scope.addEventListener("unhandledrejection",({reason})=>{scope.sendTelemetryError(reason)});var{document}=scope,rootEl=document.getElementById("root");renderStorybookUI(rootEl,new ReactProvider);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/manager",
3
- "version": "0.0.0-pr-23888-sha-032c0a61",
3
+ "version": "0.0.0-pr-24038-sha-e7e31321",
4
4
  "description": "Core Storybook UI",
5
5
  "keywords": [
6
6
  "storybook"
@@ -53,16 +53,16 @@
53
53
  "devDependencies": {
54
54
  "@fal-works/esbuild-plugin-global-externals": "^2.1.2",
55
55
  "@storybook/addon-designs": "^7.0.4",
56
- "@storybook/addons": "0.0.0-pr-23888-sha-032c0a61",
57
- "@storybook/channels": "0.0.0-pr-23888-sha-032c0a61",
58
- "@storybook/client-logger": "0.0.0-pr-23888-sha-032c0a61",
59
- "@storybook/components": "0.0.0-pr-23888-sha-032c0a61",
60
- "@storybook/core-events": "0.0.0-pr-23888-sha-032c0a61",
56
+ "@storybook/addons": "0.0.0-pr-24038-sha-e7e31321",
57
+ "@storybook/channels": "0.0.0-pr-24038-sha-e7e31321",
58
+ "@storybook/client-logger": "0.0.0-pr-24038-sha-e7e31321",
59
+ "@storybook/components": "0.0.0-pr-24038-sha-e7e31321",
60
+ "@storybook/core-events": "0.0.0-pr-24038-sha-e7e31321",
61
61
  "@storybook/global": "^5.0.0",
62
- "@storybook/manager-api": "0.0.0-pr-23888-sha-032c0a61",
63
- "@storybook/router": "0.0.0-pr-23888-sha-032c0a61",
64
- "@storybook/theming": "0.0.0-pr-23888-sha-032c0a61",
65
- "@storybook/types": "0.0.0-pr-23888-sha-032c0a61",
62
+ "@storybook/manager-api": "0.0.0-pr-24038-sha-e7e31321",
63
+ "@storybook/router": "0.0.0-pr-24038-sha-e7e31321",
64
+ "@storybook/theming": "0.0.0-pr-24038-sha-e7e31321",
65
+ "@storybook/types": "0.0.0-pr-24038-sha-e7e31321",
66
66
  "@testing-library/react": "^11.2.2",
67
67
  "@types/semver": "^7.3.4",
68
68
  "copy-to-clipboard": "^3.3.1",