@storybook/manager 8.1.0-beta.0 → 8.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -32,7 +32,7 @@ import{$5e63c961fc1ce211$export$8c6ed5c666ac1360,$6ed0406888f73fc4$export$c7b2cb
32
32
  it's possible a CORS error happened.
33
33
 
34
34
  Please check your dev-tools network tab.
35
- `});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={}}=store2.getState();return refs22},setRef:async(id,{storyIndex,setStoriesData,...rest},ready=!1)=>{if(singleStory)return;let internal_index,index3,{filters}=store2.getState(),{storyMapper=defaultStoryMapper}=provider.getConfig(),ref=api.getRefs()[id];(storyIndex||setStoriesData)&&(internal_index=setStoriesData?transformSetStoriesStoryDataToPreparedStoryIndex(map(setStoriesData,ref,{storyMapper})):storyIndex,index3=transformStoryIndexToStoriesHash(storyIndex,{provider,docsOptions,filters,status:{}})),index3&&(index3=addRefIds(index3,ref)),await api.updateRef(id,{...ref,...rest,index:index3,internal_index})},updateRef:async(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),{});await store2.setState({refs:ordered})}},refs2=!singleStory&&scope.REFS||{},initialState=refs2;return runCheck&&new Promise(async resolve=>{for(let ref of Object.values(refs2))await api.checkRef({...ref,stories:{}});resolve(void 0)}),{api,state:{refs:initialState}}},getEventMetadata=(context,fullAPI)=>{let{source:source2,refId,type}=context,[sourceType,sourceLocation]=getSourceType(source2,refId),ref;(refId||sourceType==="external")&&(ref=refId&&fullAPI.getRefs()[refId]?fullAPI.getRefs()[refId]:fullAPI.findRef(sourceLocation));let 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}},{fetch:fetch2}=scope,STORY_INDEX_PATH="./index.json",removedOptions=["enableShortcuts","theme","showRoots"];function removeRemovedOptions(options2){if(!options2||typeof options2=="string")return options2;let result2={...options2};return removedOptions.forEach(option=>{option in result2&&delete result2[option]}),result2}var init7=({fullAPI,store:store2,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?data.type==="story"?data.prepared:!0:!1},resolveStory:(storyId,refId)=>{let{refs:refs2,index:index3}=store2.getState();if(!(refId&&!refs2[refId]))return refId?refs2[refId].index?refs2[refId].index[storyId]:void 0:index3?index3[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(["story","docs"].includes(data?.type)){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{index:index3,storyId,refs:refs2,refId}=store2.getState();if(!api.getData(storyId,refId))return;let hash=refId?refs2[refId].index||{}:index3;if(!hash)return;let result2=api.findSiblingStoryId(storyId,hash,direction,!0);result2&&api.selectStory(result2,void 0,{ref:refId})},jumpToStory:direction=>{let{index:index3,storyId,refs:refs2,refId}=store2.getState(),story=api.getData(storyId,refId);if(!story)return;let hash=story.refId?refs2[story.refId].index:index3;if(!hash)return;let result2=api.findSiblingStoryId(storyId,hash,direction,!1);result2&&api.selectStory(result2,void 0,{ref:refId})},selectFirstStory:()=>{let{index:index3}=store2.getState();if(!index3)return;let firstStory=Object.keys(index3).find(id=>index3[id].type==="story");if(firstStory){api.selectStory(firstStory);return}navigate("/")},selectStory:(titleOrId=void 0,name2=void 0,options2={})=>{let{ref}=options2,{storyId,index:index3,refs:refs2}=store2.getState(),hash=ref?refs2[ref].index:index3,kindSlug=storyId?.split("--",2)[0];if(hash)if(name2)if(titleOrId){let id=ref?`${ref}_${N(titleOrId,name2)}`:N(titleOrId,name2);if(hash[id])api.selectStory(id,void 0,options2);else{let entry=hash[O(titleOrId)];if(entry?.type==="component"){let foundId=entry.children.find(childId=>hash[childId].name===name2);foundId&&api.selectStory(foundId,void 0,options2)}}}else{let id=N(kindSlug,name2);api.selectStory(id,void 0,options2)}else{let entry=titleOrId?hash[titleOrId]||hash[O(titleOrId)]:hash[kindSlug];if(!entry)throw new Error(`Unknown id or title: '${titleOrId}'`);store2.setState({settings:{...store2.getState().settings,lastTrackedStoryId:entry.id}});let leafEntry=api.findLeafEntry(hash,entry.id),fullId=leafEntry.refId?`${leafEntry.refId}_${leafEntry.id}`:leafEntry.id;navigate(`/${leafEntry.type}/${fullId}`)}},findLeafEntry(index3,storyId){let entry=index3[storyId];if(entry.type==="docs"||entry.type==="story")return entry;let childStoryId=entry.children[0];return api.findLeafEntry(index3,childStoryId)},findLeafStoryId(index3,storyId){return api.findLeafEntry(index3,storyId)?.id},findSiblingStoryId(storyId,index3,direction,toSiblingGroup){if(toSiblingGroup){let lookupList2=getComponentLookupList(index3),position2=lookupList2.findIndex(i=>i.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(index3),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 store2.setState({indexError:err})}},setIndex:async input=>{let{index:oldHash,status,filters}=store2.getState(),newHash=transformStoryIndexToStoriesHash(input,{provider,docsOptions,status,filters}),output=addPreparedStories(newHash,oldHash);await store2.setState({internal_index:input,index:output,indexError:void 0})},updateStory:async(storyId,update2,ref)=>{if(ref){let{id:refId,index:index3}=ref;index3[storyId]={...index3[storyId],...update2},await fullAPI.updateRef(refId,{index:index3})}else{let{index:index3}=store2.getState();if(!index3)return;index3[storyId]={...index3[storyId],...update2},await store2.setState({index:index3})}},updateDocs:async(docsId,update2,ref)=>{if(ref){let{id:refId,index:index3}=ref;index3[docsId]={...index3[docsId],...update2},await fullAPI.updateRef(refId,{index:index3})}else{let{index:index3}=store2.getState();if(!index3)return;index3[docsId]={...index3[docsId],...update2},await store2.setState({index:index3})}},setPreviewInitialized:async ref=>{ref?fullAPI.updateRef(ref.id,{previewInitialized:!0}):store2.setState({previewInitialized:!0})},experimental_updateStatus:async(id,input)=>{let{status,internal_index:index3}=store2.getState(),newStatus={...status},update2=typeof input=="function"?input(status):input;if(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 store2.setState({status:newStatus},{persistence:"session"}),index3)){await api.setIndex(index3);let refs2=await fullAPI.getRefs();Object.entries(refs2).forEach(([refId,{internal_index,...ref}])=>{fullAPI.setRef(refId,{...ref,storyIndex:internal_index},!0)})}},experimental_setFilter:async(id,filterFunction)=>{await store2.setState({filters:{...store2.getState().filters,[id]:filterFunction}});let{internal_index:index3}=store2.getState();if(!index3)return;await api.setIndex(index3);let refs2=await fullAPI.getRefs();Object.entries(refs2).forEach(([refId,{internal_index,...ref}])=>{fullAPI.setRef(refId,{...ref,storyIndex:internal_index},!0)})}};provider.channel?.on(STORY_SPECIFIED,function({storyId,viewMode}){let{sourceType}=getEventMetadata(this,fullAPI);if(sourceType==="local"){let state=store2.getState(),isCanvasRoute=state.path==="/"||state.viewMode==="story"||state.viewMode==="docs",stateHasSelection=state.viewMode&&state.storyId,stateSelectionDifferent=state.viewMode!==viewMode||state.storyId!==storyId,{type}=state.index?.[state.storyId]||{};isCanvasRoute&&(stateHasSelection&&stateSelectionDifferent&&!(type==="root"||type==="component"||type==="group")?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 options2=api.getCurrentParameter("options");options2&&fullAPI.setOptions(removeRemovedOptions(options2))}}),provider.channel?.on(STORY_PREPARED,function({id,...update2}){let{ref,sourceType}=getEventMetadata(this,fullAPI);if(api.updateStory(id,{...update2,prepared:!0},ref),!ref&&!store2.getState().hasCalledSetOptions){let{options:options2}=update2.parameters;fullAPI.setOptions(removeRemovedOptions(options2)),store2.setState({hasCalledSetOptions:!0})}if(sourceType==="local"){let{storyId,index:index3,refId}=store2.getState();if(!index3)return;let toBePreloaded=Array.from(new Set([api.findSiblingStoryId(storyId,index3,1,!0),api.findSiblingStoryId(storyId,index3,-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(index3){let{ref}=getEventMetadata(this,fullAPI);if(ref)fullAPI.setRef(ref.id,{...ref,storyIndex:index3},!0);else{api.setIndex(index3);let options2=api.getCurrentParameter("options");fullAPI.setOptions(removeRemovedOptions(options2))}}),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&&store2.setState({filters:{...store2.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()=>{provider.channel?.on(STORY_INDEX_INVALIDATED,()=>api.fetchIndex()),await api.fetchIndex()}}},layout_exports={};__export3(layout_exports,{ActiveTabs:()=>ActiveTabs,defaultLayoutState:()=>defaultLayoutState,focusableUIElements:()=>focusableUIElements,init:()=>init8});var{document:document3}=scope,ActiveTabs={SIDEBAR:"sidebar",CANVAS:"canvas",ADDONS:"addons"},defaultLayoutState={ui:{enableShortcuts:!0},layout:{initialActive:ActiveTabs.CANVAS,showToolbar:!0,navSize:300,bottomPanelHeight:300,rightPanelWidth:400,recentVisibleSizes:{navSize:300,bottomPanelHeight:300,rightPanelWidth:400},panelPosition:"bottom",showTabs:!0},selectedPanel:void 0,theme:create()},focusableUIElements={storySearchField:"storybook-explorer-searchfield",storyListMenu:"storybook-explorer-menu",storyPanelRoot:"storybook-panel-root"},getIsNavShown=state=>state.layout.navSize>0,getIsPanelShown=state=>{let{bottomPanelHeight,rightPanelWidth,panelPosition}=state.layout;return panelPosition==="bottom"&&bottomPanelHeight>0||panelPosition==="right"&&rightPanelWidth>0},getIsFullscreen=state=>!getIsNavShown(state)&&!getIsPanelShown(state),getRecentVisibleSizes=layoutState=>({navSize:layoutState.navSize>0?layoutState.navSize:layoutState.recentVisibleSizes.navSize,bottomPanelHeight:layoutState.bottomPanelHeight>0?layoutState.bottomPanelHeight:layoutState.recentVisibleSizes.bottomPanelHeight,rightPanelWidth:layoutState.rightPanelWidth>0?layoutState.rightPanelWidth:layoutState.recentVisibleSizes.rightPanelWidth}),init8=({store:store2,provider,singleStory})=>{let api={toggleFullscreen(nextState){return store2.setState(state=>{let isFullscreen=getIsFullscreen(state),shouldFullscreen=typeof nextState=="boolean"?nextState:!isFullscreen;return shouldFullscreen===isFullscreen?{layout:state.layout}:shouldFullscreen?{layout:{...state.layout,navSize:0,bottomPanelHeight:0,rightPanelWidth:0,recentVisibleSizes:getRecentVisibleSizes(state.layout)}}:{layout:{...state.layout,navSize:state.singleStory?0:state.layout.recentVisibleSizes.navSize,bottomPanelHeight:state.layout.recentVisibleSizes.bottomPanelHeight,rightPanelWidth:state.layout.recentVisibleSizes.rightPanelWidth}}},{persistence:"session"})},togglePanel(nextState){return store2.setState(state=>{let isPanelShown=getIsPanelShown(state),shouldShowPanel=typeof nextState=="boolean"?nextState:!isPanelShown;return shouldShowPanel===isPanelShown?{layout:state.layout}:shouldShowPanel?{layout:{...state.layout,bottomPanelHeight:state.layout.recentVisibleSizes.bottomPanelHeight,rightPanelWidth:state.layout.recentVisibleSizes.rightPanelWidth}}:{layout:{...state.layout,bottomPanelHeight:0,rightPanelWidth:0,recentVisibleSizes:getRecentVisibleSizes(state.layout)}}},{persistence:"session"})},togglePanelPosition(position){return store2.setState(state=>{let nextPosition=position||(state.layout.panelPosition==="right"?"bottom":"right");return{layout:{...state.layout,panelPosition:nextPosition,bottomPanelHeight:state.layout.recentVisibleSizes.bottomPanelHeight,rightPanelWidth:state.layout.recentVisibleSizes.rightPanelWidth}}},{persistence:"permanent"})},toggleNav(nextState){return store2.setState(state=>{if(state.singleStory)return{layout:state.layout};let isNavShown=getIsNavShown(state),shouldShowNav=typeof nextState=="boolean"?nextState:!isNavShown;return shouldShowNav===isNavShown?{layout:state.layout}:shouldShowNav?{layout:{...state.layout,navSize:state.layout.recentVisibleSizes.navSize}}:{layout:{...state.layout,navSize:0,recentVisibleSizes:getRecentVisibleSizes(state.layout)}}},{persistence:"session"})},toggleToolbar(toggled){return store2.setState(state=>{let value2=typeof toggled<"u"?toggled:!state.layout.showToolbar;return{layout:{...state.layout,showToolbar:value2}}},{persistence:"session"})},setSizes({navSize,bottomPanelHeight,rightPanelWidth}){return store2.setState(state=>{let nextLayoutState={...state.layout,navSize:navSize??state.layout.navSize,bottomPanelHeight:bottomPanelHeight??state.layout.bottomPanelHeight,rightPanelWidth:rightPanelWidth??state.layout.rightPanelWidth};return{layout:{...nextLayoutState,recentVisibleSizes:getRecentVisibleSizes(nextLayoutState)}}},{persistence:"session"})},focusOnUIElement(elementId,select){if(!elementId)return;let element=document3.getElementById(elementId);element&&(element.focus(),select&&element.select())},getInitialOptions(){let{theme,selectedPanel,...options2}=provider.getConfig();return{...defaultLayoutState,layout:{...defaultLayoutState.layout,...(0,import_pick.default)(options2,Object.keys(defaultLayoutState.layout)),...singleStory&&{navSize:0}},ui:{...defaultLayoutState.ui,...(0,import_pick.default)(options2,Object.keys(defaultLayoutState.ui))},selectedPanel:selectedPanel||defaultLayoutState.selectedPanel,theme:theme||defaultLayoutState.theme}},getIsFullscreen(){return getIsFullscreen(store2.getState())},getIsPanelShown(){return getIsPanelShown(store2.getState())},getIsNavShown(){return getIsNavShown(store2.getState())},setOptions:options2=>{let{layout,ui,selectedPanel,theme}=store2.getState();if(!options2)return;let updatedLayout={...layout,...options2.layout,...(0,import_pick.default)(options2,Object.keys(layout)),...singleStory&&{navSize:0}},updatedUi={...ui,...options2.ui,...(0,import_pick.default)(options2,Object.keys(ui))},updatedTheme={...theme,...options2.theme},modification={};dequal2(ui,updatedUi)||(modification.ui=updatedUi),dequal2(layout,updatedLayout)||(modification.layout=updatedLayout),options2.selectedPanel&&!dequal2(selectedPanel,options2.selectedPanel)&&(modification.selectedPanel=options2.selectedPanel),Object.keys(modification).length&&store2.setState(modification,{persistence:"permanent"}),dequal2(theme,updatedTheme)||store2.setState({theme:updatedTheme})}},persisted=(0,import_pick.default)(store2.getState(),"layout","selectedPanel");return provider.channel?.on(SET_CONFIG,()=>{api.setOptions(merge_default(api.getInitialOptions(),persisted))}),{api,state:merge_default(api.getInitialOptions(),persisted)}},shortcuts_exports={};__export3(shortcuts_exports,{controlOrMetaKey:()=>controlOrMetaKey2,defaultShortcuts:()=>defaultShortcuts,init:()=>init9,isMacLike:()=>isMacLike2,keys:()=>keys});var{navigator}=scope,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=[];if(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!==" "){let key2=e.key.toUpperCase(),code=e.code?.toUpperCase().replace("KEY","").replace("DIGIT","");code&&code.length===1&&code!==key2?keys2.push([key2,code]):keys2.push(key2)}return 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("").startsWith("shift/")&&inputShortcut.shift(),inputShortcut.length!==shortcut.length)?!1:!inputShortcut.find((input,i)=>Array.isArray(input)?!input.includes(shortcut[i]):input!==shortcut[i]),eventMatchesShortcut=(e,shortcut)=>shortcutMatchesShortcut(eventToShortcut(e),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:navigator2,document:document23}=scope,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:["alt","F"],togglePanel:["alt","A"],panelPosition:["alt","D"],toggleNav:["alt","S"],toolbar:["alt","T"],search:[controlOrMetaKey2(),"K"],focusNav:["1"],focusIframe:["2"],focusPanel:["3"],prevComponent:["alt","ArrowUp"],nextComponent:["alt","ArrowDown"],prevStory:["alt","ArrowLeft"],nextStory:["alt","ArrowRight"],shortcutsPage:[controlOrMetaKey2(),"shift",","],aboutPage:[controlOrMetaKey2(),","],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:store2,fullAPI,provider})=>{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,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{ui:{enableShortcuts},storyId}=store2.getState();if(enableShortcuts)switch(event?.preventDefault&&event.preventDefault(),feature){case"escape":{fullAPI.getIsFullscreen()?fullAPI.toggleFullscreen(!1):fullAPI.getIsNavShown()&&fullAPI.toggleNav(!0);break}case"focusNav":{fullAPI.getIsFullscreen()&&fullAPI.toggleFullscreen(!1),fullAPI.getIsNavShown()||fullAPI.toggleNav(!0),fullAPI.focusOnUIElement(focusableUIElements.storyListMenu);break}case"search":{fullAPI.getIsFullscreen()&&fullAPI.toggleFullscreen(!1),fullAPI.getIsNavShown()||fullAPI.toggleNav(!0),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":{fullAPI.getIsFullscreen()&&fullAPI.toggleFullscreen(!1),fullAPI.getIsPanelShown()||fullAPI.togglePanel(!0),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":{fullAPI.togglePanel();break}case"toggleNav":{fullAPI.toggleNav();break}case"toolbar":{fullAPI.toggleToolbar();break}case"panelPosition":{fullAPI.getIsFullscreen()&&fullAPI.toggleFullscreen(!1),fullAPI.getIsPanelShown()||fullAPI.togglePanel(!0),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}=store2.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={};__export3(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),navSize,bottomPanelHeight,rightPanelWidth;parseBoolean(full)===!0?(navSize=0,bottomPanelHeight=0,rightPanelWidth=0):parseBoolean(full)===!1&&(navSize=defaultLayoutState.layout.navSize,bottomPanelHeight=defaultLayoutState.layout.bottomPanelHeight,rightPanelWidth=defaultLayoutState.layout.rightPanelWidth),singleStory||(parseBoolean(nav)===!0&&(navSize=defaultLayoutState.layout.navSize),parseBoolean(nav)===!1&&(navSize=0)),parseBoolean(panel)===!1&&(bottomPanelHeight=0,rightPanelWidth=0);let layout={navSize,bottomPanelHeight,rightPanelWidth,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:store2,navigate,provider,fullAPI}=moduleArgs,navigateTo=(path,queryParams={},options2={})=>{let params=Object.entries(queryParams).filter(([,v])=>v).sort(([a],[b])=>a<b?-1:1).map(([k2,v])=>`${k2}=${v}`),to=[path,...params].join("&");return navigate(to,options2)},api={getQueryParam(key2){let{customQueryParams}=store2.getState();return customQueryParams?customQueryParams[key2]: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,[key2,value2])=>(value2!==null&&(acc[key2]=value2),acc),queryParams)};dequal2(customQueryParams,update2)||(store2.setState({customQueryParams:update2}),provider.channel?.emit(UPDATE_QUERY_PARAMS,update2))},applyQueryParams(input){let{path,queryParams}=api.getUrlState();navigateTo(path,{...queryParams,...input}),api.setQueryParams(input)},navigateUrl(url,options2){navigate(url,{plain:!0,...options2})}},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,options2)=>{api.navigateUrl(url,options2)}),{api,state:initialUrlSupport(moduleArgs)}},versions_exports={};__export3(versions_exports,{init:()=>init11});var import_semver=__toESM4(require_semver2()),version="8.1.0-beta.0",{VERSIONCHECK}=scope,getVersionCheckData=(0,import_memoizerific3.default)(1)(()=>{try{return{...JSON.parse(VERSIONCHECK).data||{}}}catch{return{}}}),normalizeRendererName=renderer=>renderer.includes("vue")?"vue":renderer,init11=({store:store2})=>{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},getDocsUrl:({subpath,versioned,renderer})=>{let{versions:{latest,current}}=store2.getState(),url="https://storybook.js.org/docs/";if(versioned&&current?.version&&latest?.version){let versionDiff=import_semver.default.diff(latest.version,current.version);versionDiff==="patch"||versionDiff===null||(url+=`${import_semver.default.major(current.version)}.${import_semver.default.minor(current.version)}/`)}if(subpath&&(url+=`${subpath}/`),renderer&&typeof scope.STORYBOOK_RENDERER<"u"){let rendererName=scope.STORYBOOK_RENDERER;rendererName&&(url+=`?renderer=${normalizeRendererName(rendererName)}`)}return url},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();await store2.setState({versions:{...versions,latest,next}})},state,api}},whatsnew_exports={};__export3(whatsnew_exports,{init:()=>init12});var WHATS_NEW_NOTIFICATION_ID="whats-new",init12=({fullAPI,store:store2,provider})=>{let state={whatsNewData:void 0};function setWhatsNewState(newState){store2.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.title,subHeadline:"Learn what's new in Storybook"},icon:import_react2.default.createElement(StorybookIcon,null),onClear({dismissed}){dismissed&&setWhatsNewCache({lastDismissedPost:whatsNewData.url})}})},state,api}},globals_exports={};__export3(globals_exports,{init:()=>init13});var init13=({store:store2,fullAPI,provider})=>{let api={getGlobals(){return store2.getState().globals},getGlobalTypes(){return store2.getState().globalTypes},updateGlobals(newGlobals){provider.channel?.emit(UPDATE_GLOBALS,{globals:newGlobals,options:{target:"storybook-preview-iframe"}})}},state={globals:{},globalTypes:{}},updateGlobals=globals=>{let currentGlobals=store2.getState()?.globals;dequal2(globals,currentGlobals)||store2.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=store2.getState()?.globals;ref?Object.keys(globals).length>0&&logger.warn("received globals from a non-local ref. This is not currently supported."):store2.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.ready=()=>this.promise,this.hasChannel=()=>!!this.channel,this.setChannel=channel=>{this.channel=channel,this.resolve()},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]={...addon,id}}},KEY2="__STORYBOOK_ADDONS_MANAGER";function getAddonsStore(){return scope[KEY2]||(scope[KEY2]=new AddonStore),scope[KEY2]}var addons=getAddonsStore(),RequestResponseError=class extends Error{constructor(message,payload){super(message),this.payload=void 0,this.payload=payload}},experimental_requestResponse=(channel,requestEvent,responseEvent,payload,timeout=5e3)=>{let timeoutId;return new Promise((resolve,reject)=>{let request={id:Math.random().toString(16).slice(2),payload},responseHandler=response=>{response.id===request.id&&(clearTimeout(timeoutId),channel.off(responseEvent,responseHandler),response.success?resolve(response.payload):reject(new RequestResponseError(response.error,response.payload)))};channel.emit(requestEvent,request),channel.on(responseEvent,responseHandler),timeoutId=setTimeout(()=>{channel.off(responseEvent,responseHandler),reject(new RequestResponseError("Timed out waiting for response"))},timeout)})},{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,store2=new Store({getState:()=>this.state,setState:(stateChange,callback)=>(this.setState(stateChange,()=>callback(this.state)),this.state)}),routeData={location:location22,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,shortcuts_exports,stories_exports,refs_exports,globals_exports,url_exports,versions_exports,whatsnew_exports].map(m2=>m2.init({...routeData,...optionsData,...apiData,state:this.state,fullAPI:this.api}));let state=initial_state_default(this.state,...this.modules.map(m2=>m2.state)),api=Object.assign(this.api,{navigate},...this.modules.map(m2=>m2.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=c2=>c2;function ManagerConsumer({filter=defaultFilter,children}){let managerContext=(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 comboData=filterer.current(managerContext),comboDataArray=(0,import_react2.useMemo)(()=>[...Object.entries(comboData).reduce((acc,keyval)=>acc.concat(keyval),[])],[managerContext.state]);return(0,import_react2.useMemo)(()=>{let Child=renderer.current;return import_react2.default.createElement(Child,{...comboData})},comboDataArray)}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,defaultState){return typeof fromStore>"u"?defaultState: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)}globalThis.STORYBOOK_ADDON_STATE={};var{STORYBOOK_ADDON_STATE}=globalThis;function useSharedState(stateId,defaultState){let api=useStorybookApi(),existingState=api.getAddonState(stateId)||STORYBOOK_ADDON_STATE[stateId],state=orDefault(existingState,STORYBOOK_ADDON_STATE[stateId]?STORYBOOK_ADDON_STATE[stateId]:defaultState),quicksync=!1;state===defaultState&&defaultState!==void 0&&(STORYBOOK_ADDON_STATE[stateId]=defaultState,quicksync=!0),(0,import_react2.useEffect)(()=>{quicksync&&api.setAddonState(stateId,defaultState)},[quicksync]);let setState=async(s,options2)=>{await api.setAddonState(stateId,s,options2);let result2=api.getAddonState(stateId);return STORYBOOK_ADDON_STATE[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?(STORYBOOK_ADDON_STATE[stateId]=currentState,api.emit(`${SHARED_STATE_SET}-manager-${stateId}`,currentState)):STORYBOOK_ADDON_STATE[stateId]?(await setState(STORYBOOK_ADDON_STATE[stateId]),api.emit(`${SHARED_STATE_SET}-manager-${stateId}`,STORYBOOK_ADDON_STATE[stateId])):defaultState!==void 0&&(await setState(defaultState),STORYBOOK_ADDON_STATE[stateId]=defaultState,api.emit(`${SHARED_STATE_SET}-manager-${stateId}`,defaultState))},[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,options2)=>{await setState(newStateOrMerger,options2);let result2=api.getAddonState(stateId);emit(`${SHARED_STATE_CHANGED}-manager-${stateId}`,result2)}]}function useAddonState(addonId,defaultState){return useSharedState(addonId,defaultState)}function useArgs(){let{getCurrentStoryData,updateStoryArgs,resetStoryArgs}=useStorybookApi(),data=getCurrentStoryData(),args2=data?.type==="story"?data.args:{},initialArgs=data?.type==="story"?data.initialArgs:{},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,initialArgs]}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 typesX=Addon_TypesEnum;var manager_errors_exports={};__export(manager_errors_exports,{Category:()=>Category,ProviderDoesNotExtendBaseProviderError:()=>ProviderDoesNotExtendBaseProviderError,UncaughtManagerError:()=>UncaughtManagerError});var StorybookError=class extends Error{constructor(){super(...arguments),this.data={},this.documentation=!1,this.fromStorybook=!0}get fullErrorCode(){let paddedCode=String(this.code).padStart(4,"0");return`SB_${this.category}_${paddedCode}`}get name(){let errorName=this.constructor.name;return`${this.fullErrorCode} (${errorName})`}get message(){let page;return this.documentation===!0?page=`https://storybook.js.org/error/${this.fullErrorCode}`:typeof this.documentation=="string"?page=this.documentation:Array.isArray(this.documentation)&&(page=`
35
+ `});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={}}=store2.getState();return refs22},setRef:async(id,{storyIndex,setStoriesData,...rest},ready=!1)=>{if(singleStory)return;let internal_index,index3,{filters}=store2.getState(),{storyMapper=defaultStoryMapper}=provider.getConfig(),ref=api.getRefs()[id];(storyIndex||setStoriesData)&&(internal_index=setStoriesData?transformSetStoriesStoryDataToPreparedStoryIndex(map(setStoriesData,ref,{storyMapper})):storyIndex,index3=transformStoryIndexToStoriesHash(storyIndex,{provider,docsOptions,filters,status:{}})),index3&&(index3=addRefIds(index3,ref)),await api.updateRef(id,{...ref,...rest,index:index3,internal_index})},updateRef:async(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),{});await store2.setState({refs:ordered})}},refs2=!singleStory&&scope.REFS||{},initialState=refs2;return runCheck&&new Promise(async resolve=>{for(let ref of Object.values(refs2))await api.checkRef({...ref,stories:{}});resolve(void 0)}),{api,state:{refs:initialState}}},getEventMetadata=(context,fullAPI)=>{let{source:source2,refId,type}=context,[sourceType,sourceLocation]=getSourceType(source2,refId),ref;(refId||sourceType==="external")&&(ref=refId&&fullAPI.getRefs()[refId]?fullAPI.getRefs()[refId]:fullAPI.findRef(sourceLocation));let 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}},{fetch:fetch2}=scope,STORY_INDEX_PATH="./index.json",removedOptions=["enableShortcuts","theme","showRoots"];function removeRemovedOptions(options2){if(!options2||typeof options2=="string")return options2;let result2={...options2};return removedOptions.forEach(option=>{option in result2&&delete result2[option]}),result2}var init7=({fullAPI,store:store2,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?data.type==="story"?data.prepared:!0:!1},resolveStory:(storyId,refId)=>{let{refs:refs2,index:index3}=store2.getState();if(!(refId&&!refs2[refId]))return refId?refs2[refId].index?refs2[refId].index[storyId]:void 0:index3?index3[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(["story","docs"].includes(data?.type)){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{index:index3,storyId,refs:refs2,refId}=store2.getState();if(!api.getData(storyId,refId))return;let hash=refId?refs2[refId].index||{}:index3;if(!hash)return;let result2=api.findSiblingStoryId(storyId,hash,direction,!0);result2&&api.selectStory(result2,void 0,{ref:refId})},jumpToStory:direction=>{let{index:index3,storyId,refs:refs2,refId}=store2.getState(),story=api.getData(storyId,refId);if(!story)return;let hash=story.refId?refs2[story.refId].index:index3;if(!hash)return;let result2=api.findSiblingStoryId(storyId,hash,direction,!1);result2&&api.selectStory(result2,void 0,{ref:refId})},selectFirstStory:()=>{let{index:index3}=store2.getState();if(!index3)return;let firstStory=Object.keys(index3).find(id=>index3[id].type==="story");if(firstStory){api.selectStory(firstStory);return}navigate("/")},selectStory:(titleOrId=void 0,name2=void 0,options2={})=>{let{ref}=options2,{storyId,index:index3,refs:refs2}=store2.getState(),hash=ref?refs2[ref].index:index3,kindSlug=storyId?.split("--",2)[0];if(hash)if(name2)if(titleOrId){let id=ref?`${ref}_${N(titleOrId,name2)}`:N(titleOrId,name2);if(hash[id])api.selectStory(id,void 0,options2);else{let entry=hash[O(titleOrId)];if(entry?.type==="component"){let foundId=entry.children.find(childId=>hash[childId].name===name2);foundId&&api.selectStory(foundId,void 0,options2)}}}else{let id=N(kindSlug,name2);api.selectStory(id,void 0,options2)}else{let entry=titleOrId?hash[titleOrId]||hash[O(titleOrId)]:hash[kindSlug];if(!entry)throw new Error(`Unknown id or title: '${titleOrId}'`);store2.setState({settings:{...store2.getState().settings,lastTrackedStoryId:entry.id}});let leafEntry=api.findLeafEntry(hash,entry.id),fullId=leafEntry.refId?`${leafEntry.refId}_${leafEntry.id}`:leafEntry.id;navigate(`/${leafEntry.type}/${fullId}`)}},findLeafEntry(index3,storyId){let entry=index3[storyId];if(entry.type==="docs"||entry.type==="story")return entry;let childStoryId=entry.children[0];return api.findLeafEntry(index3,childStoryId)},findLeafStoryId(index3,storyId){return api.findLeafEntry(index3,storyId)?.id},findSiblingStoryId(storyId,index3,direction,toSiblingGroup){if(toSiblingGroup){let lookupList2=getComponentLookupList(index3),position2=lookupList2.findIndex(i=>i.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(index3),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 store2.setState({indexError:err})}},setIndex:async input=>{let{index:oldHash,status,filters}=store2.getState(),newHash=transformStoryIndexToStoriesHash(input,{provider,docsOptions,status,filters}),output=addPreparedStories(newHash,oldHash);await store2.setState({internal_index:input,index:output,indexError:void 0})},updateStory:async(storyId,update2,ref)=>{if(ref){let{id:refId,index:index3}=ref;index3[storyId]={...index3[storyId],...update2},await fullAPI.updateRef(refId,{index:index3})}else{let{index:index3}=store2.getState();if(!index3)return;index3[storyId]={...index3[storyId],...update2},await store2.setState({index:index3})}},updateDocs:async(docsId,update2,ref)=>{if(ref){let{id:refId,index:index3}=ref;index3[docsId]={...index3[docsId],...update2},await fullAPI.updateRef(refId,{index:index3})}else{let{index:index3}=store2.getState();if(!index3)return;index3[docsId]={...index3[docsId],...update2},await store2.setState({index:index3})}},setPreviewInitialized:async ref=>{ref?fullAPI.updateRef(ref.id,{previewInitialized:!0}):store2.setState({previewInitialized:!0})},experimental_updateStatus:async(id,input)=>{let{status,internal_index:index3}=store2.getState(),newStatus={...status},update2=typeof input=="function"?input(status):input;if(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 store2.setState({status:newStatus},{persistence:"session"}),index3)){await api.setIndex(index3);let refs2=await fullAPI.getRefs();Object.entries(refs2).forEach(([refId,{internal_index,...ref}])=>{fullAPI.setRef(refId,{...ref,storyIndex:internal_index},!0)})}},experimental_setFilter:async(id,filterFunction)=>{await store2.setState({filters:{...store2.getState().filters,[id]:filterFunction}});let{internal_index:index3}=store2.getState();if(!index3)return;await api.setIndex(index3);let refs2=await fullAPI.getRefs();Object.entries(refs2).forEach(([refId,{internal_index,...ref}])=>{fullAPI.setRef(refId,{...ref,storyIndex:internal_index},!0)})}};provider.channel?.on(STORY_SPECIFIED,function({storyId,viewMode}){let{sourceType}=getEventMetadata(this,fullAPI);if(sourceType==="local"){let state=store2.getState(),isCanvasRoute=state.path==="/"||state.viewMode==="story"||state.viewMode==="docs",stateHasSelection=state.viewMode&&state.storyId,stateSelectionDifferent=state.viewMode!==viewMode||state.storyId!==storyId,{type}=state.index?.[state.storyId]||{};isCanvasRoute&&(stateHasSelection&&stateSelectionDifferent&&!(type==="root"||type==="component"||type==="group")?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 options2=api.getCurrentParameter("options");options2&&fullAPI.setOptions(removeRemovedOptions(options2))}}),provider.channel?.on(STORY_PREPARED,function({id,...update2}){let{ref,sourceType}=getEventMetadata(this,fullAPI);if(api.updateStory(id,{...update2,prepared:!0},ref),!ref&&!store2.getState().hasCalledSetOptions){let{options:options2}=update2.parameters;fullAPI.setOptions(removeRemovedOptions(options2)),store2.setState({hasCalledSetOptions:!0})}if(sourceType==="local"){let{storyId,index:index3,refId}=store2.getState();if(!index3)return;let toBePreloaded=Array.from(new Set([api.findSiblingStoryId(storyId,index3,1,!0),api.findSiblingStoryId(storyId,index3,-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(index3){let{ref}=getEventMetadata(this,fullAPI);if(ref)fullAPI.setRef(ref.id,{...ref,storyIndex:index3},!0);else{api.setIndex(index3);let options2=api.getCurrentParameter("options");fullAPI.setOptions(removeRemovedOptions(options2))}}),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&&store2.setState({filters:{...store2.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()=>{provider.channel?.on(STORY_INDEX_INVALIDATED,()=>api.fetchIndex()),await api.fetchIndex()}}},layout_exports={};__export3(layout_exports,{ActiveTabs:()=>ActiveTabs,defaultLayoutState:()=>defaultLayoutState,focusableUIElements:()=>focusableUIElements,init:()=>init8});var{document:document3}=scope,ActiveTabs={SIDEBAR:"sidebar",CANVAS:"canvas",ADDONS:"addons"},defaultLayoutState={ui:{enableShortcuts:!0},layout:{initialActive:ActiveTabs.CANVAS,showToolbar:!0,navSize:300,bottomPanelHeight:300,rightPanelWidth:400,recentVisibleSizes:{navSize:300,bottomPanelHeight:300,rightPanelWidth:400},panelPosition:"bottom",showTabs:!0},selectedPanel:void 0,theme:create()},focusableUIElements={storySearchField:"storybook-explorer-searchfield",storyListMenu:"storybook-explorer-menu",storyPanelRoot:"storybook-panel-root"},getIsNavShown=state=>state.layout.navSize>0,getIsPanelShown=state=>{let{bottomPanelHeight,rightPanelWidth,panelPosition}=state.layout;return panelPosition==="bottom"&&bottomPanelHeight>0||panelPosition==="right"&&rightPanelWidth>0},getIsFullscreen=state=>!getIsNavShown(state)&&!getIsPanelShown(state),getRecentVisibleSizes=layoutState=>({navSize:layoutState.navSize>0?layoutState.navSize:layoutState.recentVisibleSizes.navSize,bottomPanelHeight:layoutState.bottomPanelHeight>0?layoutState.bottomPanelHeight:layoutState.recentVisibleSizes.bottomPanelHeight,rightPanelWidth:layoutState.rightPanelWidth>0?layoutState.rightPanelWidth:layoutState.recentVisibleSizes.rightPanelWidth}),init8=({store:store2,provider,singleStory})=>{let api={toggleFullscreen(nextState){return store2.setState(state=>{let isFullscreen=getIsFullscreen(state),shouldFullscreen=typeof nextState=="boolean"?nextState:!isFullscreen;return shouldFullscreen===isFullscreen?{layout:state.layout}:shouldFullscreen?{layout:{...state.layout,navSize:0,bottomPanelHeight:0,rightPanelWidth:0,recentVisibleSizes:getRecentVisibleSizes(state.layout)}}:{layout:{...state.layout,navSize:state.singleStory?0:state.layout.recentVisibleSizes.navSize,bottomPanelHeight:state.layout.recentVisibleSizes.bottomPanelHeight,rightPanelWidth:state.layout.recentVisibleSizes.rightPanelWidth}}},{persistence:"session"})},togglePanel(nextState){return store2.setState(state=>{let isPanelShown=getIsPanelShown(state),shouldShowPanel=typeof nextState=="boolean"?nextState:!isPanelShown;return shouldShowPanel===isPanelShown?{layout:state.layout}:shouldShowPanel?{layout:{...state.layout,bottomPanelHeight:state.layout.recentVisibleSizes.bottomPanelHeight,rightPanelWidth:state.layout.recentVisibleSizes.rightPanelWidth}}:{layout:{...state.layout,bottomPanelHeight:0,rightPanelWidth:0,recentVisibleSizes:getRecentVisibleSizes(state.layout)}}},{persistence:"session"})},togglePanelPosition(position){return store2.setState(state=>{let nextPosition=position||(state.layout.panelPosition==="right"?"bottom":"right");return{layout:{...state.layout,panelPosition:nextPosition,bottomPanelHeight:state.layout.recentVisibleSizes.bottomPanelHeight,rightPanelWidth:state.layout.recentVisibleSizes.rightPanelWidth}}},{persistence:"permanent"})},toggleNav(nextState){return store2.setState(state=>{if(state.singleStory)return{layout:state.layout};let isNavShown=getIsNavShown(state),shouldShowNav=typeof nextState=="boolean"?nextState:!isNavShown;return shouldShowNav===isNavShown?{layout:state.layout}:shouldShowNav?{layout:{...state.layout,navSize:state.layout.recentVisibleSizes.navSize}}:{layout:{...state.layout,navSize:0,recentVisibleSizes:getRecentVisibleSizes(state.layout)}}},{persistence:"session"})},toggleToolbar(toggled){return store2.setState(state=>{let value2=typeof toggled<"u"?toggled:!state.layout.showToolbar;return{layout:{...state.layout,showToolbar:value2}}},{persistence:"session"})},setSizes({navSize,bottomPanelHeight,rightPanelWidth}){return store2.setState(state=>{let nextLayoutState={...state.layout,navSize:navSize??state.layout.navSize,bottomPanelHeight:bottomPanelHeight??state.layout.bottomPanelHeight,rightPanelWidth:rightPanelWidth??state.layout.rightPanelWidth};return{layout:{...nextLayoutState,recentVisibleSizes:getRecentVisibleSizes(nextLayoutState)}}},{persistence:"session"})},focusOnUIElement(elementId,select){if(!elementId)return;let element=document3.getElementById(elementId);element&&(element.focus(),select&&element.select())},getInitialOptions(){let{theme,selectedPanel,...options2}=provider.getConfig();return{...defaultLayoutState,layout:{...defaultLayoutState.layout,...(0,import_pick.default)(options2,Object.keys(defaultLayoutState.layout)),...singleStory&&{navSize:0}},ui:{...defaultLayoutState.ui,...(0,import_pick.default)(options2,Object.keys(defaultLayoutState.ui))},selectedPanel:selectedPanel||defaultLayoutState.selectedPanel,theme:theme||defaultLayoutState.theme}},getIsFullscreen(){return getIsFullscreen(store2.getState())},getIsPanelShown(){return getIsPanelShown(store2.getState())},getIsNavShown(){return getIsNavShown(store2.getState())},setOptions:options2=>{let{layout,ui,selectedPanel,theme}=store2.getState();if(!options2)return;let updatedLayout={...layout,...options2.layout,...(0,import_pick.default)(options2,Object.keys(layout)),...singleStory&&{navSize:0}},updatedUi={...ui,...options2.ui,...(0,import_pick.default)(options2,Object.keys(ui))},updatedTheme={...theme,...options2.theme},modification={};dequal2(ui,updatedUi)||(modification.ui=updatedUi),dequal2(layout,updatedLayout)||(modification.layout=updatedLayout),options2.selectedPanel&&!dequal2(selectedPanel,options2.selectedPanel)&&(modification.selectedPanel=options2.selectedPanel),Object.keys(modification).length&&store2.setState(modification,{persistence:"permanent"}),dequal2(theme,updatedTheme)||store2.setState({theme:updatedTheme})}},persisted=(0,import_pick.default)(store2.getState(),"layout","selectedPanel");return provider.channel?.on(SET_CONFIG,()=>{api.setOptions(merge_default(api.getInitialOptions(),persisted))}),{api,state:merge_default(api.getInitialOptions(),persisted)}},shortcuts_exports={};__export3(shortcuts_exports,{controlOrMetaKey:()=>controlOrMetaKey2,defaultShortcuts:()=>defaultShortcuts,init:()=>init9,isMacLike:()=>isMacLike2,keys:()=>keys});var{navigator}=scope,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=[];if(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!==" "){let key2=e.key.toUpperCase(),code=e.code?.toUpperCase().replace("KEY","").replace("DIGIT","");code&&code.length===1&&code!==key2?keys2.push([key2,code]):keys2.push(key2)}return 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("").startsWith("shift/")&&inputShortcut.shift(),inputShortcut.length!==shortcut.length)?!1:!inputShortcut.find((input,i)=>Array.isArray(input)?!input.includes(shortcut[i]):input!==shortcut[i]),eventMatchesShortcut=(e,shortcut)=>shortcutMatchesShortcut(eventToShortcut(e),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:navigator2,document:document23}=scope,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:["alt","F"],togglePanel:["alt","A"],panelPosition:["alt","D"],toggleNav:["alt","S"],toolbar:["alt","T"],search:[controlOrMetaKey2(),"K"],focusNav:["1"],focusIframe:["2"],focusPanel:["3"],prevComponent:["alt","ArrowUp"],nextComponent:["alt","ArrowDown"],prevStory:["alt","ArrowLeft"],nextStory:["alt","ArrowRight"],shortcutsPage:[controlOrMetaKey2(),"shift",","],aboutPage:[controlOrMetaKey2(),","],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:store2,fullAPI,provider})=>{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,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{ui:{enableShortcuts},storyId}=store2.getState();if(enableShortcuts)switch(event?.preventDefault&&event.preventDefault(),feature){case"escape":{fullAPI.getIsFullscreen()?fullAPI.toggleFullscreen(!1):fullAPI.getIsNavShown()&&fullAPI.toggleNav(!0);break}case"focusNav":{fullAPI.getIsFullscreen()&&fullAPI.toggleFullscreen(!1),fullAPI.getIsNavShown()||fullAPI.toggleNav(!0),fullAPI.focusOnUIElement(focusableUIElements.storyListMenu);break}case"search":{fullAPI.getIsFullscreen()&&fullAPI.toggleFullscreen(!1),fullAPI.getIsNavShown()||fullAPI.toggleNav(!0),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":{fullAPI.getIsFullscreen()&&fullAPI.toggleFullscreen(!1),fullAPI.getIsPanelShown()||fullAPI.togglePanel(!0),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":{fullAPI.togglePanel();break}case"toggleNav":{fullAPI.toggleNav();break}case"toolbar":{fullAPI.toggleToolbar();break}case"panelPosition":{fullAPI.getIsFullscreen()&&fullAPI.toggleFullscreen(!1),fullAPI.getIsPanelShown()||fullAPI.togglePanel(!0),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}=store2.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={};__export3(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),navSize,bottomPanelHeight,rightPanelWidth;parseBoolean(full)===!0?(navSize=0,bottomPanelHeight=0,rightPanelWidth=0):parseBoolean(full)===!1&&(navSize=defaultLayoutState.layout.navSize,bottomPanelHeight=defaultLayoutState.layout.bottomPanelHeight,rightPanelWidth=defaultLayoutState.layout.rightPanelWidth),singleStory||(parseBoolean(nav)===!0&&(navSize=defaultLayoutState.layout.navSize),parseBoolean(nav)===!1&&(navSize=0)),parseBoolean(panel)===!1&&(bottomPanelHeight=0,rightPanelWidth=0);let layout={navSize,bottomPanelHeight,rightPanelWidth,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:store2,navigate,provider,fullAPI}=moduleArgs,navigateTo=(path,queryParams={},options2={})=>{let params=Object.entries(queryParams).filter(([,v])=>v).sort(([a],[b])=>a<b?-1:1).map(([k2,v])=>`${k2}=${v}`),to=[path,...params].join("&");return navigate(to,options2)},api={getQueryParam(key2){let{customQueryParams}=store2.getState();return customQueryParams?customQueryParams[key2]: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,[key2,value2])=>(value2!==null&&(acc[key2]=value2),acc),queryParams)};dequal2(customQueryParams,update2)||(store2.setState({customQueryParams:update2}),provider.channel?.emit(UPDATE_QUERY_PARAMS,update2))},applyQueryParams(input){let{path,queryParams}=api.getUrlState();navigateTo(path,{...queryParams,...input}),api.setQueryParams(input)},navigateUrl(url,options2){navigate(url,{plain:!0,...options2})}},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,options2)=>{api.navigateUrl(url,options2)}),{api,state:initialUrlSupport(moduleArgs)}},versions_exports={};__export3(versions_exports,{init:()=>init11});var import_semver=__toESM4(require_semver2()),version="8.1.0",{VERSIONCHECK}=scope,getVersionCheckData=(0,import_memoizerific3.default)(1)(()=>{try{return{...JSON.parse(VERSIONCHECK).data||{}}}catch{return{}}}),normalizeRendererName=renderer=>renderer.includes("vue")?"vue":renderer,init11=({store:store2})=>{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},getDocsUrl:({subpath,versioned,renderer})=>{let{versions:{latest,current}}=store2.getState(),url="https://storybook.js.org/docs/";if(versioned&&current?.version&&latest?.version){let versionDiff=import_semver.default.diff(latest.version,current.version);versionDiff==="patch"||versionDiff===null||(url+=`${import_semver.default.major(current.version)}.${import_semver.default.minor(current.version)}/`)}if(subpath&&(url+=`${subpath}/`),renderer&&typeof scope.STORYBOOK_RENDERER<"u"){let rendererName=scope.STORYBOOK_RENDERER;rendererName&&(url+=`?renderer=${normalizeRendererName(rendererName)}`)}return url},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();await store2.setState({versions:{...versions,latest,next}})},state,api}},whatsnew_exports={};__export3(whatsnew_exports,{init:()=>init12});var WHATS_NEW_NOTIFICATION_ID="whats-new",init12=({fullAPI,store:store2,provider})=>{let state={whatsNewData:void 0};function setWhatsNewState(newState){store2.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.title,subHeadline:"Learn what's new in Storybook"},icon:import_react2.default.createElement(StorybookIcon,null),onClear({dismissed}){dismissed&&setWhatsNewCache({lastDismissedPost:whatsNewData.url})}})},state,api}},globals_exports={};__export3(globals_exports,{init:()=>init13});var init13=({store:store2,fullAPI,provider})=>{let api={getGlobals(){return store2.getState().globals},getGlobalTypes(){return store2.getState().globalTypes},updateGlobals(newGlobals){provider.channel?.emit(UPDATE_GLOBALS,{globals:newGlobals,options:{target:"storybook-preview-iframe"}})}},state={globals:{},globalTypes:{}},updateGlobals=globals=>{let currentGlobals=store2.getState()?.globals;dequal2(globals,currentGlobals)||store2.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=store2.getState()?.globals;ref?Object.keys(globals).length>0&&logger.warn("received globals from a non-local ref. This is not currently supported."):store2.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.ready=()=>this.promise,this.hasChannel=()=>!!this.channel,this.setChannel=channel=>{this.channel=channel,this.resolve()},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]={...addon,id}}},KEY2="__STORYBOOK_ADDONS_MANAGER";function getAddonsStore(){return scope[KEY2]||(scope[KEY2]=new AddonStore),scope[KEY2]}var addons=getAddonsStore(),RequestResponseError=class extends Error{constructor(message,payload){super(message),this.payload=void 0,this.payload=payload}},experimental_requestResponse=(channel,requestEvent,responseEvent,payload,timeout=5e3)=>{let timeoutId;return new Promise((resolve,reject)=>{let request={id:Math.random().toString(16).slice(2),payload},responseHandler=response=>{response.id===request.id&&(clearTimeout(timeoutId),channel.off(responseEvent,responseHandler),response.success?resolve(response.payload):reject(new RequestResponseError(response.error,response.payload)))};channel.emit(requestEvent,request),channel.on(responseEvent,responseHandler),timeoutId=setTimeout(()=>{channel.off(responseEvent,responseHandler),reject(new RequestResponseError("Timed out waiting for response"))},timeout)})},{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,store2=new Store({getState:()=>this.state,setState:(stateChange,callback)=>(this.setState(stateChange,()=>callback(this.state)),this.state)}),routeData={location:location22,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,shortcuts_exports,stories_exports,refs_exports,globals_exports,url_exports,versions_exports,whatsnew_exports].map(m2=>m2.init({...routeData,...optionsData,...apiData,state:this.state,fullAPI:this.api}));let state=initial_state_default(this.state,...this.modules.map(m2=>m2.state)),api=Object.assign(this.api,{navigate},...this.modules.map(m2=>m2.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=c2=>c2;function ManagerConsumer({filter=defaultFilter,children}){let managerContext=(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 comboData=filterer.current(managerContext),comboDataArray=(0,import_react2.useMemo)(()=>[...Object.entries(comboData).reduce((acc,keyval)=>acc.concat(keyval),[])],[managerContext.state]);return(0,import_react2.useMemo)(()=>{let Child=renderer.current;return import_react2.default.createElement(Child,{...comboData})},comboDataArray)}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,defaultState){return typeof fromStore>"u"?defaultState: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)}globalThis.STORYBOOK_ADDON_STATE={};var{STORYBOOK_ADDON_STATE}=globalThis;function useSharedState(stateId,defaultState){let api=useStorybookApi(),existingState=api.getAddonState(stateId)||STORYBOOK_ADDON_STATE[stateId],state=orDefault(existingState,STORYBOOK_ADDON_STATE[stateId]?STORYBOOK_ADDON_STATE[stateId]:defaultState),quicksync=!1;state===defaultState&&defaultState!==void 0&&(STORYBOOK_ADDON_STATE[stateId]=defaultState,quicksync=!0),(0,import_react2.useEffect)(()=>{quicksync&&api.setAddonState(stateId,defaultState)},[quicksync]);let setState=async(s,options2)=>{await api.setAddonState(stateId,s,options2);let result2=api.getAddonState(stateId);return STORYBOOK_ADDON_STATE[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?(STORYBOOK_ADDON_STATE[stateId]=currentState,api.emit(`${SHARED_STATE_SET}-manager-${stateId}`,currentState)):STORYBOOK_ADDON_STATE[stateId]?(await setState(STORYBOOK_ADDON_STATE[stateId]),api.emit(`${SHARED_STATE_SET}-manager-${stateId}`,STORYBOOK_ADDON_STATE[stateId])):defaultState!==void 0&&(await setState(defaultState),STORYBOOK_ADDON_STATE[stateId]=defaultState,api.emit(`${SHARED_STATE_SET}-manager-${stateId}`,defaultState))},[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,options2)=>{await setState(newStateOrMerger,options2);let result2=api.getAddonState(stateId);emit(`${SHARED_STATE_CHANGED}-manager-${stateId}`,result2)}]}function useAddonState(addonId,defaultState){return useSharedState(addonId,defaultState)}function useArgs(){let{getCurrentStoryData,updateStoryArgs,resetStoryArgs}=useStorybookApi(),data=getCurrentStoryData(),args2=data?.type==="story"?data.args:{},initialArgs=data?.type==="story"?data.initialArgs:{},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,initialArgs]}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 typesX=Addon_TypesEnum;var manager_errors_exports={};__export(manager_errors_exports,{Category:()=>Category,ProviderDoesNotExtendBaseProviderError:()=>ProviderDoesNotExtendBaseProviderError,UncaughtManagerError:()=>UncaughtManagerError});var StorybookError=class extends Error{constructor(){super(...arguments),this.data={},this.documentation=!1,this.fromStorybook=!0}get fullErrorCode(){let paddedCode=String(this.code).padStart(4,"0");return`SB_${this.category}_${paddedCode}`}get name(){let errorName=this.constructor.name;return`${this.fullErrorCode} (${errorName})`}get message(){let page;return this.documentation===!0?page=`https://storybook.js.org/error/${this.fullErrorCode}`:typeof this.documentation=="string"?page=this.documentation:Array.isArray(this.documentation)&&(page=`
36
36
  ${this.documentation.map(doc=>` - ${doc}`).join(`
37
37
  `)}`),`${this.template()}${page!=null?`
38
38