diff --git a/patches/@storybook+blocks+8.1.11.patch b/patches/@storybook+blocks+8.1.11.patch
deleted file mode 100644
index d0521cc0b4..0000000000
--- a/patches/@storybook+blocks+8.1.11.patch
+++ /dev/null
@@ -1,13261 +0,0 @@
-diff --git a/node_modules/@storybook/blocks/dist/index.js b/node_modules/@storybook/blocks/dist/index.js
-index a20435a..63331d0 100644
---- a/node_modules/@storybook/blocks/dist/index.js
-+++ b/node_modules/@storybook/blocks/dist/index.js
-@@ -1,22 +1,6383 @@
--var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __esm=(fn,res)=>function(){return fn&&(res=(0,fn[__getOwnPropNames(fn)[0]])(fn=0)),res};var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var getControlId,getControlSetterButtonId,init_helpers=__esm({"src/controls/helpers.ts"(){getControlId=value2=>`control-${value2.replace(/\s+/g,"-")}`,getControlSetterButtonId=value2=>`set-${value2.replace(/\s+/g,"-")}`}});var Color_exports={};__export(Color_exports,{ColorControl:()=>ColorControl,default:()=>Color_default});var import_react24,import_react_colorful,import_color_convert,import_throttle,import_theming18,import_components15,import_icons5,Wrapper8,PickerTooltip,TooltipContent,Note,Swatches,SwatchColor,swatchBackground,Swatch,Input2,ToggleIcon,ColorSpace,COLOR_SPACES,COLOR_REGEXP,RGB_REGEXP,HSL_REGEXP,HEX_REGEXP,SHORTHEX_REGEXP,ColorPicker,fallbackColor,stringToArgs,parseValue,getRealValue,useColorInput,id,usePresets,ColorControl,Color_default,init_Color=__esm({"src/controls/Color.tsx"(){import_react24=__toESM(require("react")),import_react_colorful=require("react-colorful"),import_color_convert=__toESM(require("color-convert")),import_throttle=__toESM(require("lodash/throttle.js")),import_theming18=require("@storybook/theming"),import_components15=require("@storybook/components");init_helpers();import_icons5=require("@storybook/icons"),Wrapper8=import_theming18.styled.div({position:"relative",maxWidth:250,'&[aria-readonly="true"]':{opacity:.5}}),PickerTooltip=(0,import_theming18.styled)(import_components15.WithTooltip)({position:"absolute",zIndex:1,top:4,left:4,"[aria-readonly=true] &":{cursor:"not-allowed"}}),TooltipContent=import_theming18.styled.div({width:200,margin:5,".react-colorful__saturation":{borderRadius:"4px 4px 0 0"},".react-colorful__hue":{boxShadow:"inset 0 0 0 1px rgb(0 0 0 / 5%)"},".react-colorful__last-control":{borderRadius:"0 0 4px 4px"}}),Note=(0,import_theming18.styled)(import_components15.TooltipNote)(({theme})=>({fontFamily:theme.typography.fonts.base})),Swatches=import_theming18.styled.div({display:"grid",gridTemplateColumns:"repeat(9, 16px)",gap:6,padding:3,marginTop:5,width:200}),SwatchColor=import_theming18.styled.div(({theme,active})=>({width:16,height:16,boxShadow:active?`${theme.appBorderColor} 0 0 0 1px inset, ${theme.textMutedColor}50 0 0 0 4px`:`${theme.appBorderColor} 0 0 0 1px inset`,borderRadius:theme.appBorderRadius})),swatchBackground=`url('data:image/svg+xml;charset=utf-8,')`,Swatch=({value:value2,style,...props})=>{let backgroundImage=`linear-gradient(${value2}, ${value2}), ${swatchBackground}, linear-gradient(#fff, #fff)`;return import_react24.default.createElement(SwatchColor,{...props,style:{...style,backgroundImage}})},Input2=(0,import_theming18.styled)(import_components15.Form.Input)(({theme,readOnly})=>({width:"100%",paddingLeft:30,paddingRight:30,boxSizing:"border-box",fontFamily:theme.typography.fonts.base})),ToggleIcon=(0,import_theming18.styled)(import_icons5.MarkupIcon)(({theme})=>({position:"absolute",zIndex:1,top:6,right:7,width:20,height:20,padding:4,boxSizing:"border-box",cursor:"pointer",color:theme.input.color})),ColorSpace=(ColorSpace2=>(ColorSpace2.RGB="rgb",ColorSpace2.HSL="hsl",ColorSpace2.HEX="hex",ColorSpace2))(ColorSpace||{}),COLOR_SPACES=Object.values(ColorSpace),COLOR_REGEXP=/\(([0-9]+),\s*([0-9]+)%?,\s*([0-9]+)%?,?\s*([0-9.]+)?\)/,RGB_REGEXP=/^\s*rgba?\(([0-9]+),\s*([0-9]+),\s*([0-9]+),?\s*([0-9.]+)?\)\s*$/i,HSL_REGEXP=/^\s*hsla?\(([0-9]+),\s*([0-9]+)%,\s*([0-9]+)%,?\s*([0-9.]+)?\)\s*$/i,HEX_REGEXP=/^\s*#?([0-9a-f]{3}|[0-9a-f]{6})\s*$/i,SHORTHEX_REGEXP=/^\s*#?([0-9a-f]{3})\s*$/i,ColorPicker={hex:import_react_colorful.HexColorPicker,rgb:import_react_colorful.RgbaStringColorPicker,hsl:import_react_colorful.HslaStringColorPicker},fallbackColor={hex:"transparent",rgb:"rgba(0, 0, 0, 0)",hsl:"hsla(0, 0%, 0%, 0)"},stringToArgs=value2=>{let match=value2?.match(COLOR_REGEXP);if(!match)return[0,0,0,1];let[,x,y,z,a=1]=match;return[x,y,z,a].map(Number)},parseValue=value2=>{if(!value2)return;let valid=!0;if(RGB_REGEXP.test(value2)){let[r,g,b,a]=stringToArgs(value2),[h,s,l]=import_color_convert.default.rgb.hsl([r,g,b])||[0,0,0];return{valid,value:value2,keyword:import_color_convert.default.rgb.keyword([r,g,b]),colorSpace:"rgb",rgb:value2,hsl:`hsla(${h}, ${s}%, ${l}%, ${a})`,hex:`#${import_color_convert.default.rgb.hex([r,g,b]).toLowerCase()}`}}if(HSL_REGEXP.test(value2)){let[h,s,l,a]=stringToArgs(value2),[r,g,b]=import_color_convert.default.hsl.rgb([h,s,l])||[0,0,0];return{valid,value:value2,keyword:import_color_convert.default.hsl.keyword([h,s,l]),colorSpace:"hsl",rgb:`rgba(${r}, ${g}, ${b}, ${a})`,hsl:value2,hex:`#${import_color_convert.default.hsl.hex([h,s,l]).toLowerCase()}`}}let plain=value2.replace("#",""),rgb=import_color_convert.default.keyword.rgb(plain)||import_color_convert.default.hex.rgb(plain),hsl=import_color_convert.default.rgb.hsl(rgb),mapped=value2;if(/[^#a-f0-9]/i.test(value2)?mapped=plain:HEX_REGEXP.test(value2)&&(mapped=`#${plain}`),mapped.startsWith("#"))valid=HEX_REGEXP.test(mapped);else try{import_color_convert.default.keyword.hex(mapped)}catch{valid=!1}return{valid,value:mapped,keyword:import_color_convert.default.rgb.keyword(rgb),colorSpace:"hex",rgb:`rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, 1)`,hsl:`hsla(${hsl[0]}, ${hsl[1]}%, ${hsl[2]}%, 1)`,hex:mapped}},getRealValue=(value2,color,colorSpace)=>{if(!value2||!color?.valid)return fallbackColor[colorSpace];if(colorSpace!=="hex")return color?.[colorSpace]||fallbackColor[colorSpace];if(!color.hex.startsWith("#"))try{return`#${import_color_convert.default.keyword.hex(color.hex)}`}catch{return fallbackColor.hex}let short=color.hex.match(SHORTHEX_REGEXP);if(!short)return HEX_REGEXP.test(color.hex)?color.hex:fallbackColor.hex;let[r,g,b]=short[1].split("");return`#${r}${r}${g}${g}${b}${b}`},useColorInput=(initialValue,onChange)=>{let[value2,setValue]=(0,import_react24.useState)(initialValue||""),[color,setColor]=(0,import_react24.useState)(()=>parseValue(value2)),[colorSpace,setColorSpace]=(0,import_react24.useState)(color?.colorSpace||"hex");(0,import_react24.useEffect)(()=>{let nextValue=initialValue||"",nextColor=parseValue(nextValue);setValue(nextValue),setColor(nextColor),setColorSpace(nextColor?.colorSpace||"hex")},[initialValue]);let realValue=(0,import_react24.useMemo)(()=>getRealValue(value2,color,colorSpace).toLowerCase(),[value2,color,colorSpace]),updateValue=(0,import_react24.useCallback)(update=>{let parsed=parseValue(update),v=parsed?.value||update||"";setValue(v),v===""&&(setColor(void 0),onChange(void 0)),parsed&&(setColor(parsed),setColorSpace(parsed.colorSpace),onChange(parsed.value))},[onChange]),cycleColorSpace=(0,import_react24.useCallback)(()=>{let next=COLOR_SPACES.indexOf(colorSpace)+1;next>=COLOR_SPACES.length&&(next=0),setColorSpace(COLOR_SPACES[next]);let update=color?.[COLOR_SPACES[next]]||"";setValue(update),onChange(update)},[color,colorSpace,onChange]);return{value:value2,realValue,updateValue,color,colorSpace,cycleColorSpace}},id=value2=>value2.replace(/\s*/,"").toLowerCase(),usePresets=(presetColors,currentColor,colorSpace)=>{let[selectedColors,setSelectedColors]=(0,import_react24.useState)(currentColor?.valid?[currentColor]:[]);(0,import_react24.useEffect)(()=>{currentColor===void 0&&setSelectedColors([])},[currentColor]);let presets=(0,import_react24.useMemo)(()=>(presetColors||[]).map(preset=>typeof preset=="string"?parseValue(preset):preset.title?{...parseValue(preset.color),keyword:preset.title}:parseValue(preset.color)).concat(selectedColors).filter(Boolean).slice(-27),[presetColors,selectedColors]),addPreset=(0,import_react24.useCallback)(color=>{color?.valid&&(presets.some(preset=>id(preset[colorSpace])===id(color[colorSpace]))||setSelectedColors(arr=>arr.concat(color)))},[colorSpace,presets]);return{presets,addPreset}},ColorControl=({name,value:initialValue,onChange,onFocus,onBlur,presetColors,startOpen=!1,argType})=>{let throttledOnChange=(0,import_react24.useCallback)((0,import_throttle.default)(onChange,200),[onChange]),{value:value2,realValue,updateValue,color,colorSpace,cycleColorSpace}=useColorInput(initialValue,throttledOnChange),{presets,addPreset}=usePresets(presetColors,color,colorSpace),Picker=ColorPicker[colorSpace],readonly=!!argType?.table?.readonly;return import_react24.default.createElement(Wrapper8,{"aria-readonly":readonly},import_react24.default.createElement(PickerTooltip,{startOpen,trigger:readonly?[null]:void 0,closeOnOutsideClick:!0,onVisibleChange:()=>addPreset(color),tooltip:import_react24.default.createElement(TooltipContent,null,import_react24.default.createElement(Picker,{color:realValue==="transparent"?"#000000":realValue,onChange:updateValue,onFocus,onBlur}),presets.length>0&&import_react24.default.createElement(Swatches,null,presets.map((preset,index)=>import_react24.default.createElement(import_components15.WithTooltip,{key:`${preset.value}-${index}`,hasChrome:!1,tooltip:import_react24.default.createElement(Note,{note:preset.keyword||preset.value})},import_react24.default.createElement(Swatch,{value:preset[colorSpace],active:color&&id(preset[colorSpace])===id(color[colorSpace]),onClick:()=>updateValue(preset.value)})))))},import_react24.default.createElement(Swatch,{value:realValue,style:{margin:4}})),import_react24.default.createElement(Input2,{id:getControlId(name),value:value2,onChange:e=>updateValue(e.target.value),onFocus:e=>e.target.select(),readOnly:readonly,placeholder:"Choose color..."}),value2?import_react24.default.createElement(ToggleIcon,{onClick:cycleColorSpace}):null)},Color_default=ColorControl}});var src_exports={};__export(src_exports,{AddContext:()=>AddContext,Anchor:()=>Anchor,AnchorMdx:()=>AnchorMdx,ArgTypes:()=>ArgTypes,BooleanControl:()=>BooleanControl,Canvas:()=>Canvas,CodeOrSourceMdx:()=>CodeOrSourceMdx,ColorControl:()=>ColorControl2,ColorItem:()=>ColorItem,ColorPalette:()=>ColorPalette,Controls:()=>Controls3,DateControl:()=>DateControl,Description:()=>DescriptionContainer,DescriptionType:()=>DescriptionType,Docs:()=>Docs,DocsContainer:()=>DocsContainer,DocsContext:()=>DocsContext,DocsPage:()=>DocsPage,DocsStory:()=>DocsStory,ExternalDocs:()=>ExternalDocs,ExternalDocsContainer:()=>ExternalDocsContainer,FilesControl:()=>FilesControl,HeaderMdx:()=>HeaderMdx,HeadersMdx:()=>HeadersMdx,Heading:()=>Heading2,IconGallery:()=>IconGallery,IconItem:()=>IconItem,Markdown:()=>Markdown2,Meta:()=>Meta,NumberControl:()=>NumberControl,ObjectControl:()=>ObjectControl,OptionsControl:()=>OptionsControl,PRIMARY_STORY:()=>PRIMARY_STORY,Primary:()=>Primary,PureArgsTable:()=>ArgsTable,RangeControl:()=>RangeControl,Source:()=>Source2,SourceContainer:()=>SourceContainer,SourceContext:()=>SourceContext,Stories:()=>Stories,Story:()=>Story2,Subheading:()=>Subheading,Subtitle:()=>Subtitle2,TextControl:()=>TextControl,Title:()=>Title2,Typeset:()=>Typeset,UNKNOWN_ARGS_HASH:()=>UNKNOWN_ARGS_HASH,Unstyled:()=>Unstyled,Wrapper:()=>Wrapper12,anchorBlockIdFromId:()=>anchorBlockIdFromId,argsHash:()=>argsHash,assertIsFn:()=>assertIsFn,extractTitle:()=>extractTitle,format:()=>format,formatDate:()=>formatDate,formatTime:()=>formatTime,getStoryId:()=>getStoryId2,getStoryProps:()=>getStoryProps,parse:()=>parse2,parseDate:()=>parseDate,parseTime:()=>parseTime,useOf:()=>useOf,useSourceProps:()=>useSourceProps});module.exports=__toCommonJS(src_exports);var import_react2=__toESM(require("react")),import_theming2=require("@storybook/theming"),import_components2=require("@storybook/components");var import_react=__toESM(require("react")),import_polished=require("polished"),import_theming=require("@storybook/theming"),import_components=require("@storybook/components"),Wrapper=import_theming.styled.div(import_components.withReset,({theme})=>({backgroundColor:theme.base==="light"?"rgba(0,0,0,.01)":"rgba(255,255,255,.01)",borderRadius:theme.appBorderRadius,border:`1px dashed ${theme.appBorderColor}`,display:"flex",alignItems:"center",justifyContent:"center",padding:20,margin:"25px 0 40px",color:(0,import_polished.transparentize)(.3,theme.color.defaultText),fontSize:theme.typography.size.s2})),EmptyBlock=props=>import_react.default.createElement(Wrapper,{...props,className:"docblock-emptyblock sb-unstyled"});var StyledSyntaxHighlighter=(0,import_theming2.styled)(import_components2.SyntaxHighlighter)(({theme})=>({fontSize:`${theme.typography.size.s2-1}px`,lineHeight:"19px",margin:"25px 0 40px",borderRadius:theme.appBorderRadius,boxShadow:theme.base==="light"?"rgba(0, 0, 0, 0.10) 0 1px 3px 0":"rgba(0, 0, 0, 0.20) 0 2px 5px 0","pre.prismjs":{padding:20,background:"inherit"}}));var SourceSkeletonWrapper=import_theming2.styled.div(({theme})=>({background:theme.background.content,borderRadius:theme.appBorderRadius,border:`1px solid ${theme.appBorderColor}`,boxShadow:theme.base==="light"?"rgba(0, 0, 0, 0.10) 0 1px 3px 0":"rgba(0, 0, 0, 0.20) 0 2px 5px 0",margin:"25px 0 40px",padding:"20px 20px 20px 22px"})),SourceSkeletonPlaceholder=import_theming2.styled.div(({theme})=>({animation:`${theme.animation.glow} 1.5s ease-in-out infinite`,background:theme.appBorderColor,height:17,marginTop:1,width:"60%",[`&:first-child${import_theming2.ignoreSsrWarning}`]:{margin:0}})),SourceSkeleton=()=>import_react2.default.createElement(SourceSkeletonWrapper,null,import_react2.default.createElement(SourceSkeletonPlaceholder,null),import_react2.default.createElement(SourceSkeletonPlaceholder,{style:{width:"80%"}}),import_react2.default.createElement(SourceSkeletonPlaceholder,{style:{width:"30%"}}),import_react2.default.createElement(SourceSkeletonPlaceholder,{style:{width:"80%"}})),Source=({isLoading,error,language,code,dark,format:format2=!1,...rest})=>{let{typography}=(0,import_theming2.useTheme)();if(isLoading)return import_react2.default.createElement(SourceSkeleton,null);if(error)return import_react2.default.createElement(EmptyBlock,null,error);let syntaxHighlighter=import_react2.default.createElement(StyledSyntaxHighlighter,{bordered:!0,copyable:!0,format:format2,language,className:"docblock-source sb-unstyled",...rest},code);if(typeof dark>"u")return syntaxHighlighter;let overrideTheme=dark?import_theming2.themes.dark:import_theming2.themes.light;return import_react2.default.createElement(import_theming2.ThemeProvider,{theme:(0,import_theming2.convert)({...overrideTheme,fontCode:typography.fonts.mono,fontBase:typography.fonts.base})},syntaxHighlighter)};var import_react3=__toESM(require("react")),import_polished2=require("polished"),import_components3=require("@storybook/components"),import_theming3=require("@storybook/theming"),toGlobalSelector=element=>`& :where(${element}:not(.sb-anchor, .sb-unstyled, .sb-unstyled ${element}))`,breakpoint=600,Title=import_theming3.styled.h1(import_components3.withReset,({theme})=>({color:theme.color.defaultText,fontSize:theme.typography.size.m3,fontWeight:theme.typography.weight.bold,lineHeight:"32px",[`@media (min-width: ${breakpoint}px)`]:{fontSize:theme.typography.size.l1,lineHeight:"36px",marginBottom:"16px"}})),Subtitle=import_theming3.styled.h2(import_components3.withReset,({theme})=>({fontWeight:theme.typography.weight.regular,fontSize:theme.typography.size.s3,lineHeight:"20px",borderBottom:"none",marginBottom:15,[`@media (min-width: ${breakpoint}px)`]:{fontSize:theme.typography.size.m1,lineHeight:"28px",marginBottom:24},color:(0,import_polished2.transparentize)(.25,theme.color.defaultText)})),DocsContent=import_theming3.styled.div(({theme})=>{let reset={fontFamily:theme.typography.fonts.base,fontSize:theme.typography.size.s3,margin:0,WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",WebkitTapHighlightColor:"rgba(0, 0, 0, 0)",WebkitOverflowScrolling:"touch"},headers={margin:"20px 0 8px",padding:0,cursor:"text",position:"relative",color:theme.color.defaultText,"&:first-of-type":{marginTop:0,paddingTop:0},"&:hover a.anchor":{textDecoration:"none"},"& code":{fontSize:"inherit"}},code={lineHeight:1,margin:"0 2px",padding:"3px 5px",whiteSpace:"nowrap",borderRadius:3,fontSize:theme.typography.size.s2-1,border:theme.base==="light"?`1px solid ${theme.color.mediumlight}`:`1px solid ${theme.color.darker}`,color:theme.base==="light"?(0,import_polished2.transparentize)(.1,theme.color.defaultText):(0,import_polished2.transparentize)(.3,theme.color.defaultText),backgroundColor:theme.base==="light"?theme.color.lighter:theme.color.border};return{maxWidth:1e3,width:"100%",[toGlobalSelector("a")]:{...reset,fontSize:"inherit",lineHeight:"24px",color:theme.color.secondary,textDecoration:"none","&.absent":{color:"#cc0000"},"&.anchor":{display:"block",paddingLeft:30,marginLeft:-30,cursor:"pointer",position:"absolute",top:0,left:0,bottom:0}},[toGlobalSelector("blockquote")]:{...reset,margin:"16px 0",borderLeft:`4px solid ${theme.color.medium}`,padding:"0 15px",color:theme.color.dark,"& > :first-of-type":{marginTop:0},"& > :last-child":{marginBottom:0}},[toGlobalSelector("div")]:reset,[toGlobalSelector("dl")]:{...reset,margin:"16px 0",padding:0,"& dt":{fontSize:"14px",fontWeight:"bold",fontStyle:"italic",padding:0,margin:"16px 0 4px"},"& dt:first-of-type":{padding:0},"& dt > :first-of-type":{marginTop:0},"& dt > :last-child":{marginBottom:0},"& dd":{margin:"0 0 16px",padding:"0 15px"},"& dd > :first-of-type":{marginTop:0},"& dd > :last-child":{marginBottom:0}},[toGlobalSelector("h1")]:{...reset,...headers,fontSize:`${theme.typography.size.l1}px`,fontWeight:theme.typography.weight.bold},[toGlobalSelector("h2")]:{...reset,...headers,fontSize:`${theme.typography.size.m2}px`,paddingBottom:4,borderBottom:`1px solid ${theme.appBorderColor}`},[toGlobalSelector("h3")]:{...reset,...headers,fontSize:`${theme.typography.size.m1}px`,fontWeight:theme.typography.weight.bold},[toGlobalSelector("h4")]:{...reset,...headers,fontSize:`${theme.typography.size.s3}px`},[toGlobalSelector("h5")]:{...reset,...headers,fontSize:`${theme.typography.size.s2}px`},[toGlobalSelector("h6")]:{...reset,...headers,fontSize:`${theme.typography.size.s2}px`,color:theme.color.dark},[toGlobalSelector("hr")]:{border:"0 none",borderTop:`1px solid ${theme.appBorderColor}`,height:4,padding:0},[toGlobalSelector("img")]:{maxWidth:"100%"},[toGlobalSelector("li")]:{...reset,fontSize:theme.typography.size.s2,color:theme.color.defaultText,lineHeight:"24px","& + li":{marginTop:".25em"},"& ul, & ol":{marginTop:".25em",marginBottom:0},"& code":code},[toGlobalSelector("ol")]:{...reset,margin:"16px 0",paddingLeft:30,"& :first-of-type":{marginTop:0},"& :last-child":{marginBottom:0}},[toGlobalSelector("p")]:{...reset,margin:"16px 0",fontSize:theme.typography.size.s2,lineHeight:"24px",color:theme.color.defaultText,"& code":code},[toGlobalSelector("pre")]:{...reset,fontFamily:theme.typography.fonts.mono,WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",lineHeight:"18px",padding:"11px 1rem",whiteSpace:"pre-wrap",color:"inherit",borderRadius:3,margin:"1rem 0","&:not(.prismjs)":{background:"transparent",border:"none",borderRadius:0,padding:0,margin:0},"& pre, &.prismjs":{padding:15,margin:0,whiteSpace:"pre-wrap",color:"inherit",fontSize:"13px",lineHeight:"19px",code:{color:"inherit",fontSize:"inherit"}},"& code":{whiteSpace:"pre"},"& code, & tt":{border:"none"}},[toGlobalSelector("span")]:{...reset,"&.frame":{display:"block",overflow:"hidden","& > span":{border:`1px solid ${theme.color.medium}`,display:"block",float:"left",overflow:"hidden",margin:"13px 0 0",padding:7,width:"auto"},"& span img":{display:"block",float:"left"},"& span span":{clear:"both",color:theme.color.darkest,display:"block",padding:"5px 0 0"}},"&.align-center":{display:"block",overflow:"hidden",clear:"both","& > span":{display:"block",overflow:"hidden",margin:"13px auto 0",textAlign:"center"},"& span img":{margin:"0 auto",textAlign:"center"}},"&.align-right":{display:"block",overflow:"hidden",clear:"both","& > span":{display:"block",overflow:"hidden",margin:"13px 0 0",textAlign:"right"},"& span img":{margin:0,textAlign:"right"}},"&.float-left":{display:"block",marginRight:13,overflow:"hidden",float:"left","& span":{margin:"13px 0 0"}},"&.float-right":{display:"block",marginLeft:13,overflow:"hidden",float:"right","& > span":{display:"block",overflow:"hidden",margin:"13px auto 0",textAlign:"right"}}},[toGlobalSelector("table")]:{...reset,margin:"16px 0",fontSize:theme.typography.size.s2,lineHeight:"24px",padding:0,borderCollapse:"collapse","& tr":{borderTop:`1px solid ${theme.appBorderColor}`,backgroundColor:theme.appContentBg,margin:0,padding:0},"& tr:nth-of-type(2n)":{backgroundColor:theme.base==="dark"?theme.color.darker:theme.color.lighter},"& tr th":{fontWeight:"bold",color:theme.color.defaultText,border:`1px solid ${theme.appBorderColor}`,margin:0,padding:"6px 13px"},"& tr td":{border:`1px solid ${theme.appBorderColor}`,color:theme.color.defaultText,margin:0,padding:"6px 13px"},"& tr th :first-of-type, & tr td :first-of-type":{marginTop:0},"& tr th :last-child, & tr td :last-child":{marginBottom:0}},[toGlobalSelector("ul")]:{...reset,margin:"16px 0",paddingLeft:30,"& :first-of-type":{marginTop:0},"& :last-child":{marginBottom:0},listStyle:"disc"}}}),DocsWrapper=import_theming3.styled.div(({theme})=>({background:theme.background.content,display:"flex",justifyContent:"center",padding:"4rem 20px",minHeight:"100vh",boxSizing:"border-box",gap:"3rem",[`@media (min-width: ${breakpoint}px)`]:{}})),DocsPageWrapper=({children,toc})=>import_react3.default.createElement(DocsWrapper,{className:"sbdocs sbdocs-wrapper"},import_react3.default.createElement(DocsContent,{className:"sbdocs sbdocs-content"},children),toc);var import_react8=__toESM(require("react")),import_polished3=require("polished"),import_theming5=require("@storybook/theming"),import_global3=require("@storybook/global"),import_components6=require("@storybook/components");var getBlockBackgroundStyle=theme=>({borderRadius:theme.appBorderRadius,background:theme.background.content,boxShadow:theme.base==="light"?"rgba(0, 0, 0, 0.10) 0 1px 3px 0":"rgba(0, 0, 0, 0.20) 0 2px 5px 0",border:`1px solid ${theme.appBorderColor}`});var import_react4=__toESM(require("react")),import_theming4=require("@storybook/theming"),import_components4=require("@storybook/components"),import_icons=require("@storybook/icons"),Bar=(0,import_theming4.styled)(import_components4.FlexBar)({position:"absolute",left:0,right:0,top:0,transition:"transform .2s linear"}),Wrapper2=import_theming4.styled.div({display:"flex",alignItems:"center",gap:4}),IconPlaceholder=import_theming4.styled.div(({theme})=>({width:14,height:14,borderRadius:2,margin:"0 7px",backgroundColor:theme.appBorderColor,animation:`${theme.animation.glow} 1.5s ease-in-out infinite`})),Toolbar=({isLoading,storyId,baseUrl,zoom,resetZoom,...rest})=>import_react4.default.createElement(Bar,{...rest},import_react4.default.createElement(Wrapper2,{key:"left"},isLoading?[1,2,3].map(key=>import_react4.default.createElement(IconPlaceholder,{key})):import_react4.default.createElement(import_react4.default.Fragment,null,import_react4.default.createElement(import_components4.IconButton,{key:"zoomin",onClick:e=>{e.preventDefault(),zoom(.8)},title:"Zoom in"},import_react4.default.createElement(import_icons.ZoomIcon,null)),import_react4.default.createElement(import_components4.IconButton,{key:"zoomout",onClick:e=>{e.preventDefault(),zoom(1.25)},title:"Zoom out"},import_react4.default.createElement(import_icons.ZoomOutIcon,null)),import_react4.default.createElement(import_components4.IconButton,{key:"zoomreset",onClick:e=>{e.preventDefault(),resetZoom()},title:"Reset zoom"},import_react4.default.createElement(import_icons.ZoomResetIcon,null)))));var import_react5=require("react"),ZoomContext=(0,import_react5.createContext)({scale:1});var import_global2=require("@storybook/global"),import_react7=__toESM(require("react")),import_components5=require("@storybook/components");var import_react6=__toESM(require("react")),import_global=require("@storybook/global"),{window:globalWindow}=import_global.global,IFrame=class extends import_react6.Component{constructor(){super(...arguments);this.iframe=null}componentDidMount(){let{id:id2}=this.props;this.iframe=globalWindow.document.getElementById(id2)}shouldComponentUpdate(nextProps){let{scale}=nextProps;return scale!==this.props.scale&&this.setIframeBodyStyle({width:`${scale*100}%`,height:`${scale*100}%`,transform:`scale(${1/scale})`,transformOrigin:"top left"}),!1}setIframeBodyStyle(style){return Object.assign(this.iframe.contentDocument.body.style,style)}render(){let{id:id2,title,src,allowFullScreen,scale,...rest}=this.props;return import_react6.default.createElement("iframe",{id:id2,title,src,...allowFullScreen?{allow:"fullscreen"}:{},loading:"lazy",...rest})}};var{PREVIEW_URL}=import_global2.global,BASE_URL=PREVIEW_URL||"iframe.html",storyBlockIdFromId=({story,primary})=>`story--${story.id}${primary?"--primary":""}`,InlineStory=props=>{let storyRef=(0,import_react7.useRef)(),[showLoader,setShowLoader]=(0,import_react7.useState)(!0),[error,setError]=(0,import_react7.useState)(),{story,height,autoplay,forceInitialArgs,renderStoryToElement}=props;return(0,import_react7.useEffect)(()=>{if(!(story&&storyRef.current))return()=>{};let element=storyRef.current,cleanup=renderStoryToElement(story,element,{showMain:()=>{},showError:({title,description})=>setError(new Error(`${title} - ${description}`)),showException:err=>setError(err)},{autoplay,forceInitialArgs});return setShowLoader(!1),()=>{Promise.resolve().then(()=>cleanup())}},[autoplay,renderStoryToElement,story]),error?import_react7.default.createElement("pre",null,import_react7.default.createElement(import_components5.ErrorFormatter,{error})):import_react7.default.createElement(import_react7.default.Fragment,null,height?import_react7.default.createElement("style",null,`#${storyBlockIdFromId(props)} { min-height: ${height}; transform: translateZ(0); overflow: auto }`):null,showLoader&&import_react7.default.createElement(StorySkeleton,null),import_react7.default.createElement("div",{ref:storyRef,id:`${storyBlockIdFromId(props)}-inner`,"data-name":story.name}))},IFrameStory=({story,height="500px"})=>import_react7.default.createElement("div",{style:{width:"100%",height}},import_react7.default.createElement(ZoomContext.Consumer,null,({scale})=>import_react7.default.createElement(IFrame,{key:"iframe",id:`iframe--${story.id}`,title:story.name,src:(0,import_components5.getStoryHref)(BASE_URL,story.id,{viewMode:"story"}),allowFullScreen:!0,scale,style:{width:"100%",height:"100%",border:"0 none"}}))),Story=props=>{let{inline}=props;return import_react7.default.createElement("div",{id:storyBlockIdFromId(props),className:"sb-story sb-unstyled","data-story-block":"true"},inline?import_react7.default.createElement(InlineStory,{...props}):import_react7.default.createElement(IFrameStory,{...props}))},StorySkeleton=()=>import_react7.default.createElement(import_components5.Loader,null);var ChildrenContainer=import_theming5.styled.div(({isColumn,columns,layout})=>({display:isColumn||!columns?"block":"flex",position:"relative",flexWrap:"wrap",overflow:"auto",flexDirection:isColumn?"column":"row","& .innerZoomElementWrapper > *":isColumn?{width:layout!=="fullscreen"?"calc(100% - 20px)":"100%",display:"block"}:{maxWidth:layout!=="fullscreen"?"calc(100% - 20px)":"100%",display:"inline-block"}}),({layout="padded"})=>layout==="centered"||layout==="padded"?{padding:"30px 20px","& .innerZoomElementWrapper > *":{width:"auto",border:"10px solid transparent!important"}}:{},({layout="padded"})=>layout==="centered"?{display:"flex",justifyContent:"center",justifyItems:"center",alignContent:"center",alignItems:"center"}:{},({columns})=>columns&&columns>1?{".innerZoomElementWrapper > *":{minWidth:`calc(100% / ${columns} - 20px)`}}:{}),StyledSource=(0,import_theming5.styled)(Source)(({theme})=>({margin:0,borderTopLeftRadius:0,borderTopRightRadius:0,borderBottomLeftRadius:theme.appBorderRadius,borderBottomRightRadius:theme.appBorderRadius,border:"none",background:theme.base==="light"?"rgba(0, 0, 0, 0.85)":(0,import_polished3.darken)(.05,theme.background.content),color:theme.color.lightest,button:{background:theme.base==="light"?"rgba(0, 0, 0, 0.85)":(0,import_polished3.darken)(.05,theme.background.content)}})),PreviewContainer=import_theming5.styled.div(({theme,withSource,isExpanded})=>({position:"relative",overflow:"hidden",margin:"25px 0 40px",...getBlockBackgroundStyle(theme),borderBottomLeftRadius:withSource&&isExpanded&&0,borderBottomRightRadius:withSource&&isExpanded&&0,borderBottomWidth:isExpanded&&0,"h3 + &":{marginTop:"16px"}}),({withToolbar})=>withToolbar&&{paddingTop:40}),getSource=(withSource,expanded,setExpanded)=>{switch(!0){case!!(withSource&&withSource.error):return{source:null,actionItem:{title:"No code available",className:"docblock-code-toggle docblock-code-toggle--disabled",disabled:!0,onClick:()=>setExpanded(!1)}};case expanded:return{source:import_react8.default.createElement(StyledSource,{...withSource,dark:!0}),actionItem:{title:"Hide code",className:"docblock-code-toggle docblock-code-toggle--expanded",onClick:()=>setExpanded(!1)}};default:return{source:import_react8.default.createElement(StyledSource,{...withSource,dark:!0}),actionItem:{title:"Show code",className:"docblock-code-toggle",onClick:()=>setExpanded(!0)}}}};function getStoryId(children){if(import_react8.Children.count(children)===1){let elt=children;if(elt.props)return elt.props.id}return null}var PositionedToolbar=(0,import_theming5.styled)(Toolbar)({position:"absolute",top:0,left:0,right:0,height:40}),Relative=import_theming5.styled.div({overflow:"hidden",position:"relative"}),Preview=({isLoading,isColumn,columns,children,withSource,withToolbar=!1,isExpanded=!1,additionalActions,className,layout="padded",...props})=>{let[expanded,setExpanded]=(0,import_react8.useState)(isExpanded),{source,actionItem}=getSource(withSource,expanded,setExpanded),[scale,setScale]=(0,import_react8.useState)(1),previewClasses=[className].concat(["sbdocs","sbdocs-preview","sb-unstyled"]),defaultActionItems=withSource?[actionItem]:[],[additionalActionItems,setAdditionalActionItems]=(0,import_react8.useState)(additionalActions?[...additionalActions]:[]),actionItems=[...defaultActionItems,...additionalActionItems],{window:globalWindow4}=import_global3.global,copyToClipboard=(0,import_react8.useCallback)(async text=>{let{createCopyToClipboardFunction}=await import("@storybook/components");createCopyToClipboardFunction()},[]),onCopyCapture=e=>{let selection=globalWindow4.getSelection();selection&&selection.type==="Range"||(e.preventDefault(),additionalActionItems.filter(item=>item.title==="Copied").length===0&©ToClipboard(source.props.code).then(()=>{setAdditionalActionItems([...additionalActionItems,{title:"Copied",onClick:()=>{}}]),globalWindow4.setTimeout(()=>setAdditionalActionItems(additionalActionItems.filter(item=>item.title!=="Copied")),1500)}))};return import_react8.default.createElement(PreviewContainer,{withSource,withToolbar,...props,className:previewClasses.join(" ")},withToolbar&&import_react8.default.createElement(PositionedToolbar,{isLoading,border:!0,zoom:z=>setScale(scale*z),resetZoom:()=>setScale(1),storyId:getStoryId(children),baseUrl:"./iframe.html"}),import_react8.default.createElement(ZoomContext.Provider,{value:{scale}},import_react8.default.createElement(Relative,{className:"docs-story",onCopyCapture:withSource&&onCopyCapture},import_react8.default.createElement(ChildrenContainer,{isColumn:isColumn||!Array.isArray(children),columns,layout},import_react8.default.createElement(import_components6.Zoom.Element,{scale},Array.isArray(children)?children.map((child,i)=>import_react8.default.createElement("div",{key:i},child)):import_react8.default.createElement("div",null,children))),import_react8.default.createElement(import_components6.ActionBar,{actionItems}))),withSource&&expanded&&source)},StyledPreview=(0,import_theming5.styled)(Preview)(()=>({".docs-story":{paddingTop:32,paddingBottom:40}}));var import_react31=__toESM(require("react")),import_pickBy=__toESM(require("lodash/pickBy.js")),import_theming23=require("@storybook/theming"),import_polished8=require("polished"),import_csf=require("@storybook/csf"),import_client_logger4=require("@storybook/client-logger"),import_components19=require("@storybook/components"),import_icons8=require("@storybook/icons");var import_react27=__toESM(require("react")),import_markdown_to_jsx=__toESM(require("markdown-to-jsx")),import_polished6=require("polished"),import_theming19=require("@storybook/theming"),import_components17=require("@storybook/components");var import_react9=__toESM(require("react")),import_theming6=require("@storybook/theming"),import_components7=require("@storybook/components"),Table=import_theming6.styled.table(({theme})=>({"&&":{borderCollapse:"collapse",borderSpacing:0,border:"none",tr:{border:"none !important",background:"none"},"td, th":{padding:0,border:"none",width:"auto!important"},marginTop:0,marginBottom:0,"th:first-of-type, td:first-of-type":{paddingLeft:0},"th:last-of-type, td:last-of-type":{paddingRight:0},td:{paddingTop:0,paddingBottom:4,"&:not(:first-of-type)":{paddingLeft:10,paddingRight:0}},tbody:{boxShadow:"none",border:"none"},code:(0,import_components7.codeCommon)({theme}),div:{span:{fontWeight:"bold"}},"& code":{margin:0,display:"inline-block",fontSize:theme.typography.size.s1}}})),ArgJsDoc=({tags})=>{let params=(tags.params||[]).filter(x=>x.description),hasDisplayableParams=params.length!==0,hasDisplayableDeprecated=tags.deprecated!=null,hasDisplayableReturns=tags.returns!=null&&tags.returns.description!=null;return!hasDisplayableParams&&!hasDisplayableReturns&&!hasDisplayableDeprecated?null:import_react9.default.createElement(import_react9.default.Fragment,null,import_react9.default.createElement(Table,null,import_react9.default.createElement("tbody",null,hasDisplayableDeprecated&&import_react9.default.createElement("tr",{key:"deprecated"},import_react9.default.createElement("td",{colSpan:2},import_react9.default.createElement("strong",null,"Deprecated"),": ",tags.deprecated.toString())),hasDisplayableParams&¶ms.map(x=>import_react9.default.createElement("tr",{key:x.name},import_react9.default.createElement("td",null,import_react9.default.createElement("code",null,x.name)),import_react9.default.createElement("td",null,x.description))),hasDisplayableReturns&&import_react9.default.createElement("tr",{key:"returns"},import_react9.default.createElement("td",null,import_react9.default.createElement("code",null,"Returns")),import_react9.default.createElement("td",null,tags.returns.description)))))};var import_react10=__toESM(require("react")),import_memoizerific=__toESM(require("memoizerific")),import_uniq=__toESM(require("lodash/uniq.js")),import_theming7=require("@storybook/theming"),import_components8=require("@storybook/components"),import_icons2=require("@storybook/icons"),ITEMS_BEFORE_EXPANSION=8,Summary=import_theming7.styled.div(({isExpanded})=>({display:"flex",flexDirection:isExpanded?"column":"row",flexWrap:"wrap",alignItems:"flex-start",marginBottom:"-4px",minWidth:100})),Text=import_theming7.styled.span(import_components8.codeCommon,({theme,simple=!1})=>({flex:"0 0 auto",fontFamily:theme.typography.fonts.mono,fontSize:theme.typography.size.s1,wordBreak:"break-word",whiteSpace:"normal",maxWidth:"100%",margin:0,marginRight:"4px",marginBottom:"4px",paddingTop:"2px",paddingBottom:"2px",lineHeight:"13px",...simple&&{background:"transparent",border:"0 none",paddingLeft:0}})),ExpandButton=import_theming7.styled.button(({theme})=>({fontFamily:theme.typography.fonts.mono,color:theme.color.secondary,marginBottom:"4px",background:"none",border:"none"})),Expandable=import_theming7.styled.div(import_components8.codeCommon,({theme})=>({fontFamily:theme.typography.fonts.mono,color:theme.color.secondary,fontSize:theme.typography.size.s1,margin:0,whiteSpace:"nowrap",display:"flex",alignItems:"center"})),Detail=import_theming7.styled.div(({theme,width})=>({width,minWidth:200,maxWidth:800,padding:15,fontFamily:theme.typography.fonts.mono,fontSize:theme.typography.size.s1,boxSizing:"content-box","& code":{padding:"0 !important"}})),ChevronUpIcon=(0,import_theming7.styled)(import_icons2.ChevronSmallUpIcon)({marginLeft:4}),ChevronDownIcon=(0,import_theming7.styled)(import_icons2.ChevronSmallDownIcon)({marginLeft:4}),EmptyArg=()=>import_react10.default.createElement("span",null,"-"),ArgText=({text,simple})=>import_react10.default.createElement(Text,{simple},text),calculateDetailWidth=(0,import_memoizerific.default)(1e3)(detail=>{let lines=detail.split(/\r?\n/);return`${Math.max(...lines.map(x=>x.length))}ch`}),getSummaryItems=summary=>{if(!summary)return[summary];let summaryItems=summary.split("|").map(value2=>value2.trim());return(0,import_uniq.default)(summaryItems)},renderSummaryItems=(summaryItems,isExpanded=!0)=>{let items=summaryItems;return isExpanded||(items=summaryItems.slice(0,ITEMS_BEFORE_EXPANSION)),items.map(item=>import_react10.default.createElement(ArgText,{key:item,text:item===""?'""':item}))},ArgSummary=({value:value2,initialExpandedArgs})=>{let{summary,detail}=value2,[isOpen,setIsOpen]=(0,import_react10.useState)(!1),[isExpanded,setIsExpanded]=(0,import_react10.useState)(initialExpandedArgs||!1);if(summary==null)return null;let summaryAsString=typeof summary.toString=="function"?summary.toString():summary;if(detail==null){if(/[(){}[\]<>]/.test(summaryAsString))return import_react10.default.createElement(ArgText,{text:summaryAsString});let summaryItems=getSummaryItems(summaryAsString),itemsCount=summaryItems.length;return itemsCount>ITEMS_BEFORE_EXPANSION?import_react10.default.createElement(Summary,{isExpanded},renderSummaryItems(summaryItems,isExpanded),import_react10.default.createElement(ExpandButton,{onClick:()=>setIsExpanded(!isExpanded)},isExpanded?"Show less...":`Show ${itemsCount-ITEMS_BEFORE_EXPANSION} more...`)):import_react10.default.createElement(Summary,null,renderSummaryItems(summaryItems))}return import_react10.default.createElement(import_components8.WithTooltipPure,{closeOnOutsideClick:!0,placement:"bottom",visible:isOpen,onVisibleChange:isVisible=>{setIsOpen(isVisible)},tooltip:import_react10.default.createElement(Detail,{width:calculateDetailWidth(detail)},import_react10.default.createElement(import_components8.SyntaxHighlighter,{language:"jsx",format:!1},detail))},import_react10.default.createElement(Expandable,{className:"sbdocs-expandable"},import_react10.default.createElement("span",null,summaryAsString),isOpen?import_react10.default.createElement(ChevronUpIcon,null):import_react10.default.createElement(ChevronDownIcon,null)))},ArgValue=({value:value2,initialExpandedArgs})=>value2==null?import_react10.default.createElement(EmptyArg,null):import_react10.default.createElement(ArgSummary,{value:value2,initialExpandedArgs});var import_react26=__toESM(require("react")),import_components16=require("@storybook/components");var import_react25=__toESM(require("react"));var import_react11=__toESM(require("react")),import_polished4=require("polished"),import_theming8=require("@storybook/theming"),import_components9=require("@storybook/components");init_helpers();var Label=import_theming8.styled.label(({theme})=>({lineHeight:"18px",alignItems:"center",marginBottom:8,display:"inline-block",position:"relative",whiteSpace:"nowrap",background:theme.boolean.background,borderRadius:"3em",padding:1,'&[aria-disabled="true"]':{opacity:.5,input:{cursor:"not-allowed"}},input:{appearance:"none",width:"100%",height:"100%",position:"absolute",left:0,top:0,margin:0,padding:0,border:"none",background:"transparent",cursor:"pointer",borderRadius:"3em","&:focus":{outline:"none",boxShadow:`${theme.color.secondary} 0 0 0 1px inset !important`}},span:{textAlign:"center",fontSize:theme.typography.size.s1,fontWeight:theme.typography.weight.bold,lineHeight:"1",cursor:"pointer",display:"inline-block",padding:"7px 15px",transition:"all 100ms ease-out",userSelect:"none",borderRadius:"3em",color:(0,import_polished4.transparentize)(.5,theme.color.defaultText),background:"transparent","&:hover":{boxShadow:`${(0,import_polished4.opacify)(.3,theme.appBorderColor)} 0 0 0 1px inset`},"&:active":{boxShadow:`${(0,import_polished4.opacify)(.05,theme.appBorderColor)} 0 0 0 2px inset`,color:(0,import_polished4.opacify)(1,theme.appBorderColor)},"&:first-of-type":{paddingRight:8},"&:last-of-type":{paddingLeft:8}},"input:checked ~ span:last-of-type, input:not(:checked) ~ span:first-of-type":{background:theme.boolean.selectedBackground,boxShadow:theme.base==="light"?`${(0,import_polished4.opacify)(.1,theme.appBorderColor)} 0 0 2px`:`${theme.appBorderColor} 0 0 0 1px`,color:theme.color.defaultText,padding:"7px 15px"}})),parse=value2=>value2==="true",BooleanControl=({name,value:value2,onChange,onBlur,onFocus,argType})=>{let onSetFalse=(0,import_react11.useCallback)(()=>onChange(!1),[onChange]),readonly=!!argType?.table?.readonly;if(value2===void 0)return import_react11.default.createElement(import_components9.Button,{variant:"outline",size:"medium",id:getControlSetterButtonId(name),onClick:onSetFalse,disabled:readonly},"Set boolean");let controlId=getControlId(name),parsedValue=typeof value2=="string"?parse(value2):value2;return import_react11.default.createElement(Label,{"aria-disabled":readonly,htmlFor:controlId,"aria-label":name},import_react11.default.createElement("input",{id:controlId,type:"checkbox",onChange:e=>onChange(e.target.checked),checked:parsedValue,role:"switch",disabled:readonly,name,onBlur,onFocus}),import_react11.default.createElement("span",{"aria-hidden":"true"},"False"),import_react11.default.createElement("span",{"aria-hidden":"true"},"True"))};var import_react12=__toESM(require("react")),import_theming9=require("@storybook/theming"),import_components10=require("@storybook/components");init_helpers();var parseDate=value2=>{let[year,month,day]=value2.split("-"),result=new Date;return result.setFullYear(parseInt(year,10),parseInt(month,10)-1,parseInt(day,10)),result},parseTime=value2=>{let[hours,minutes]=value2.split(":"),result=new Date;return result.setHours(parseInt(hours,10)),result.setMinutes(parseInt(minutes,10)),result},formatDate=value2=>{let date=new Date(value2),year=`000${date.getFullYear()}`.slice(-4),month=`0${date.getMonth()+1}`.slice(-2),day=`0${date.getDate()}`.slice(-2);return`${year}-${month}-${day}`},formatTime=value2=>{let date=new Date(value2),hours=`0${date.getHours()}`.slice(-2),minutes=`0${date.getMinutes()}`.slice(-2);return`${hours}:${minutes}`},FormInput=(0,import_theming9.styled)(import_components10.Form.Input)(({readOnly})=>({opacity:readOnly?.5:1})),FlexSpaced=import_theming9.styled.div(({theme})=>({flex:1,display:"flex",input:{marginLeft:10,flex:1,height:32,"&::-webkit-calendar-picker-indicator":{opacity:.5,height:12,filter:theme.base==="light"?void 0:"invert(1)"}},"input:first-of-type":{marginLeft:0,flexGrow:4},"input:last-of-type":{flexGrow:3}})),DateControl=({name,value:value2,onChange,onFocus,onBlur,argType})=>{let[valid,setValid]=(0,import_react12.useState)(!0),dateRef=(0,import_react12.useRef)(),timeRef=(0,import_react12.useRef)(),readonly=!!argType?.table?.readonly;(0,import_react12.useEffect)(()=>{valid!==!1&&(dateRef&&dateRef.current&&(dateRef.current.value=formatDate(value2)),timeRef&&timeRef.current&&(timeRef.current.value=formatTime(value2)))},[value2]);let onDateChange=e=>{let parsed=parseDate(e.target.value),result=new Date(value2);result.setFullYear(parsed.getFullYear(),parsed.getMonth(),parsed.getDate());let time=result.getTime();time&&onChange(time),setValid(!!time)},onTimeChange=e=>{let parsed=parseTime(e.target.value),result=new Date(value2);result.setHours(parsed.getHours()),result.setMinutes(parsed.getMinutes());let time=result.getTime();time&&onChange(time),setValid(!!time)},controlId=getControlId(name);return import_react12.default.createElement(FlexSpaced,null,import_react12.default.createElement(FormInput,{type:"date",max:"9999-12-31",ref:dateRef,id:`${controlId}-date`,name:`${controlId}-date`,readOnly:readonly,onChange:onDateChange,onFocus,onBlur}),import_react12.default.createElement(FormInput,{type:"time",id:`${controlId}-time`,name:`${controlId}-time`,ref:timeRef,onChange:onTimeChange,readOnly:readonly,onFocus,onBlur}),valid?null:import_react12.default.createElement("div",null,"invalid"))};var import_react13=__toESM(require("react")),import_theming10=require("@storybook/theming"),import_components11=require("@storybook/components");init_helpers();var Wrapper3=import_theming10.styled.label({display:"flex"}),parse2=value2=>{let result=parseFloat(value2);return Number.isNaN(result)?void 0:result},format=value2=>value2!=null?String(value2):"",FormInput2=(0,import_theming10.styled)(import_components11.Form.Input)(({readOnly})=>({opacity:readOnly?.5:1})),NumberControl=({name,value:value2,onChange,min,max,step,onBlur,onFocus,argType})=>{let[inputValue,setInputValue]=(0,import_react13.useState)(typeof value2=="number"?value2:""),[forceVisible,setForceVisible]=(0,import_react13.useState)(!1),[parseError,setParseError]=(0,import_react13.useState)(null),readonly=!!argType?.table?.readonly,handleChange=(0,import_react13.useCallback)(event=>{setInputValue(event.target.value);let result=parseFloat(event.target.value);Number.isNaN(result)?setParseError(new Error(`'${event.target.value}' is not a number`)):(onChange(result),setParseError(null))},[onChange,setParseError]),onForceVisible=(0,import_react13.useCallback)(()=>{setInputValue("0"),onChange(0),setForceVisible(!0)},[setForceVisible]),htmlElRef=(0,import_react13.useRef)(null);return(0,import_react13.useEffect)(()=>{forceVisible&&htmlElRef.current&&htmlElRef.current.select()},[forceVisible]),(0,import_react13.useEffect)(()=>{inputValue!==(typeof value2=="number"?value2:"")&&setInputValue(value2)},[value2]),value2===void 0?import_react13.default.createElement(import_components11.Button,{variant:"outline",size:"medium",id:getControlSetterButtonId(name),onClick:onForceVisible,disabled:readonly},"Set number"):import_react13.default.createElement(Wrapper3,null,import_react13.default.createElement(FormInput2,{ref:htmlElRef,id:getControlId(name),type:"number",onChange:handleChange,size:"flex",placeholder:"Edit number...",value:inputValue,valid:parseError?"error":null,autoFocus:forceVisible,readOnly:readonly,name,min,max,step,onFocus,onBlur}))};var import_react17=__toESM(require("react"));var import_react14=__toESM(require("react")),import_theming11=require("@storybook/theming"),import_client_logger=require("@storybook/client-logger");var selectedKey=(value2,options)=>{let entry=options&&Object.entries(options).find(([_key,val])=>val===value2);return entry?entry[0]:void 0},selectedKeys=(value2,options)=>value2&&options?Object.entries(options).filter(entry=>value2.includes(entry[1])).map(entry=>entry[0]):[],selectedValues=(keys,options)=>keys&&options&&keys.map(key=>options[key]);init_helpers();var Wrapper4=import_theming11.styled.div(({isInline})=>isInline?{display:"flex",flexWrap:"wrap",alignItems:"flex-start",label:{display:"inline-flex",marginRight:15}}:{label:{display:"flex"}},props=>{if(props["aria-readonly"]==="true")return{input:{cursor:"not-allowed"}}}),Text2=import_theming11.styled.span({"[aria-readonly=true] &":{opacity:.5}}),Label2=import_theming11.styled.label({lineHeight:"20px",alignItems:"center",marginBottom:8,"&:last-child":{marginBottom:0},input:{margin:0,marginRight:6}}),CheckboxControl=({name,options,value:value2,onChange,isInline,argType})=>{if(!options)return import_client_logger.logger.warn(`Checkbox with no options: ${name}`),import_react14.default.createElement(import_react14.default.Fragment,null,"-");let initial=selectedKeys(value2,options),[selected,setSelected]=(0,import_react14.useState)(initial),readonly=!!argType?.table?.readonly,handleChange=e=>{let option=e.target.value,updated=[...selected];updated.includes(option)?updated.splice(updated.indexOf(option),1):updated.push(option),onChange(selectedValues(updated,options)),setSelected(updated)};(0,import_react14.useEffect)(()=>{setSelected(selectedKeys(value2,options))},[value2]);let controlId=getControlId(name);return import_react14.default.createElement(Wrapper4,{"aria-readonly":readonly,isInline},Object.keys(options).map((key,index)=>{let id2=`${controlId}-${index}`;return import_react14.default.createElement(Label2,{key:id2,htmlFor:id2},import_react14.default.createElement("input",{type:"checkbox",disabled:readonly,id:id2,name:id2,value:key,onChange:handleChange,checked:selected?.includes(key)}),import_react14.default.createElement(Text2,null,key))}))};var import_react15=__toESM(require("react")),import_theming12=require("@storybook/theming"),import_client_logger2=require("@storybook/client-logger");init_helpers();var Wrapper5=import_theming12.styled.div(({isInline})=>isInline?{display:"flex",flexWrap:"wrap",alignItems:"flex-start",label:{display:"inline-flex",marginRight:15}}:{label:{display:"flex"}},props=>{if(props["aria-readonly"]==="true")return{input:{cursor:"not-allowed"}}}),Text3=import_theming12.styled.span({"[aria-readonly=true] &":{opacity:.5}}),Label3=import_theming12.styled.label({lineHeight:"20px",alignItems:"center",marginBottom:8,"&:last-child":{marginBottom:0},input:{margin:0,marginRight:6}}),RadioControl=({name,options,value:value2,onChange,isInline,argType})=>{if(!options)return import_client_logger2.logger.warn(`Radio with no options: ${name}`),import_react15.default.createElement(import_react15.default.Fragment,null,"-");let selection=selectedKey(value2,options),controlId=getControlId(name),readonly=!!argType?.table?.readonly;return import_react15.default.createElement(Wrapper5,{"aria-readonly":readonly,isInline},Object.keys(options).map((key,index)=>{let id2=`${controlId}-${index}`;return import_react15.default.createElement(Label3,{key:id2,htmlFor:id2},import_react15.default.createElement("input",{type:"radio",id:id2,name:id2,disabled:readonly,value:key,onChange:e=>onChange(options[e.currentTarget.value]),checked:key===selection}),import_react15.default.createElement(Text3,null,key))}))};var import_react16=__toESM(require("react")),import_theming13=require("@storybook/theming"),import_client_logger3=require("@storybook/client-logger");init_helpers();var import_icons3=require("@storybook/icons"),styleResets={appearance:"none",border:"0 none",boxSizing:"inherit",display:" block",margin:" 0",background:"transparent",padding:0,fontSize:"inherit",position:"relative"},OptionsSelect=import_theming13.styled.select(styleResets,({theme})=>({boxSizing:"border-box",position:"relative",padding:"6px 10px",width:"100%",color:theme.input.color||"inherit",background:theme.input.background,borderRadius:theme.input.borderRadius,boxShadow:`${theme.input.border} 0 0 0 1px inset`,fontSize:theme.typography.size.s2-1,lineHeight:"20px","&:focus":{boxShadow:`${theme.color.secondary} 0 0 0 1px inset`,outline:"none"},"&[disabled]":{cursor:"not-allowed",opacity:.5},"::placeholder":{color:theme.textMutedColor},"&[multiple]":{overflow:"auto",padding:0,option:{display:"block",padding:"6px 10px",marginLeft:1,marginRight:1}}})),SelectWrapper=import_theming13.styled.span(({theme})=>({display:"inline-block",lineHeight:"normal",overflow:"hidden",position:"relative",verticalAlign:"top",width:"100%",svg:{position:"absolute",zIndex:1,pointerEvents:"none",height:"12px",marginTop:"-6px",right:"12px",top:"50%",fill:theme.textMutedColor,path:{fill:theme.textMutedColor}}})),NO_SELECTION="Choose option...",SingleSelect=({name,value:value2,options,onChange,argType})=>{let handleChange=e=>{onChange(options[e.currentTarget.value])},selection=selectedKey(value2,options)||NO_SELECTION,controlId=getControlId(name),readonly=!!argType?.table?.readonly;return import_react16.default.createElement(SelectWrapper,null,import_react16.default.createElement(import_icons3.ChevronSmallDownIcon,null),import_react16.default.createElement(OptionsSelect,{disabled:readonly,id:controlId,value:selection,onChange:handleChange},import_react16.default.createElement("option",{key:"no-selection",disabled:!0},NO_SELECTION),Object.keys(options).map(key=>import_react16.default.createElement("option",{key,value:key},key))))},MultiSelect=({name,value:value2,options,onChange,argType})=>{let handleChange=e=>{let selection2=Array.from(e.currentTarget.options).filter(option=>option.selected).map(option=>option.value);onChange(selectedValues(selection2,options))},selection=selectedKeys(value2,options),controlId=getControlId(name),readonly=!!argType?.table?.readonly;return import_react16.default.createElement(SelectWrapper,null,import_react16.default.createElement(OptionsSelect,{disabled:readonly,id:controlId,multiple:!0,value:selection,onChange:handleChange},Object.keys(options).map(key=>import_react16.default.createElement("option",{key,value:key},key))))},SelectControl=props=>{let{name,options}=props;return options?props.isMulti?import_react16.default.createElement(MultiSelect,{...props}):import_react16.default.createElement(SingleSelect,{...props}):(import_client_logger3.logger.warn(`Select with no options: ${name}`),import_react16.default.createElement(import_react16.default.Fragment,null,"-"))};var normalizeOptions=(options,labels)=>Array.isArray(options)?options.reduce((acc,item)=>(acc[labels?.[item]||String(item)]=item,acc),{}):options,Controls={check:CheckboxControl,"inline-check":CheckboxControl,radio:RadioControl,"inline-radio":RadioControl,select:SelectControl,"multi-select":SelectControl},OptionsControl=props=>{let{type="select",labels,argType}=props,normalized={...props,argType,options:argType?normalizeOptions(argType.options,labels):{},isInline:type.includes("inline"),isMulti:type.includes("multi")},Control=Controls[type];if(Control)return import_react17.default.createElement(Control,{...normalized});throw new Error(`Unknown options type: ${type}`)};var import_global4=require("@storybook/global"),import_cloneDeep=__toESM(require("lodash/cloneDeep.js")),import_react20=__toESM(require("react")),import_theming14=require("@storybook/theming"),import_components12=require("@storybook/components"),import_icons4=require("@storybook/icons");var import_react19=__toESM(require("react"));var import_react18=__toESM(require("react"));var VALUE="value",KEY="key";var ERROR="Error",OBJECT="Object",ARRAY="Array",STRING="String",NUMBER="Number",BOOLEAN="Boolean",DATE="Date",NULL="Null",UNDEFINED="Undefined",FUNCTION="Function",SYMBOL="Symbol";var ADD_DELTA_TYPE="ADD_DELTA_TYPE",REMOVE_DELTA_TYPE="REMOVE_DELTA_TYPE",UPDATE_DELTA_TYPE="UPDATE_DELTA_TYPE";function getObjectType(obj){return obj!==null&&typeof obj=="object"&&!Array.isArray(obj)&&typeof obj[Symbol.iterator]=="function"?"Iterable":Object.prototype.toString.call(obj).slice(8,-1)}function isComponentWillChange(oldValue,newValue){let oldType=getObjectType(oldValue),newType=getObjectType(newValue);return(oldType==="Function"||newType==="Function")&&newType!==oldType}var JsonAddValue=class extends import_react18.Component{constructor(props){super(props),this.state={inputRefKey:null,inputRefValue:null},this.refInputValue=this.refInputValue.bind(this),this.refInputKey=this.refInputKey.bind(this),this.onKeydown=this.onKeydown.bind(this),this.onSubmit=this.onSubmit.bind(this)}componentDidMount(){let{inputRefKey,inputRefValue}=this.state,{onlyValue}=this.props;inputRefKey&&typeof inputRefKey.focus=="function"&&inputRefKey.focus(),onlyValue&&inputRefValue&&typeof inputRefValue.focus=="function"&&inputRefValue.focus(),document.addEventListener("keydown",this.onKeydown)}componentWillUnmount(){document.removeEventListener("keydown",this.onKeydown)}onKeydown(event){event.altKey||event.ctrlKey||event.metaKey||event.shiftKey||event.repeat||((event.code==="Enter"||event.key==="Enter")&&(event.preventDefault(),this.onSubmit()),(event.code==="Escape"||event.key==="Escape")&&(event.preventDefault(),this.props.handleCancel()))}onSubmit(){let{handleAdd,onlyValue,onSubmitValueParser,keyPath,deep}=this.props,{inputRefKey,inputRefValue}=this.state,result={};if(!onlyValue){if(!inputRefKey.value)return;result.key=inputRefKey.value}result.newValue=onSubmitValueParser(!1,keyPath,deep,result.key,inputRefValue.value),handleAdd(result)}refInputKey(node){this.state.inputRefKey=node}refInputValue(node){this.state.inputRefValue=node}render(){let{handleCancel,onlyValue,addButtonElement,cancelButtonElement,inputElementGenerator,keyPath,deep}=this.props,addButtonElementLayout=(0,import_react18.cloneElement)(addButtonElement,{onClick:this.onSubmit}),cancelButtonElementLayout=(0,import_react18.cloneElement)(cancelButtonElement,{onClick:handleCancel}),inputElementValue=inputElementGenerator(VALUE,keyPath,deep),inputElementValueLayout=(0,import_react18.cloneElement)(inputElementValue,{placeholder:"Value",ref:this.refInputValue}),inputElementKeyLayout=null;if(!onlyValue){let inputElementKey=inputElementGenerator(KEY,keyPath,deep);inputElementKeyLayout=(0,import_react18.cloneElement)(inputElementKey,{placeholder:"Key",ref:this.refInputKey})}return import_react18.default.createElement("span",{className:"rejt-add-value-node"},inputElementKeyLayout,inputElementValueLayout,cancelButtonElementLayout,addButtonElementLayout)}};JsonAddValue.defaultProps={onlyValue:!1,addButtonElement:import_react18.default.createElement("button",null,"+"),cancelButtonElement:import_react18.default.createElement("button",null,"c")};var JsonArray=class extends import_react18.Component{constructor(props){super(props);let keyPath=[...props.keyPath,props.name];this.state={data:props.data,name:props.name,keyPath,deep:props.deep,nextDeep:props.deep+1,collapsed:props.isCollapsed(keyPath,props.deep,props.data),addFormVisible:!1},this.handleCollapseMode=this.handleCollapseMode.bind(this),this.handleRemoveItem=this.handleRemoveItem.bind(this),this.handleAddMode=this.handleAddMode.bind(this),this.handleAddValueAdd=this.handleAddValueAdd.bind(this),this.handleAddValueCancel=this.handleAddValueCancel.bind(this),this.handleEditValue=this.handleEditValue.bind(this),this.onChildUpdate=this.onChildUpdate.bind(this),this.renderCollapsed=this.renderCollapsed.bind(this),this.renderNotCollapsed=this.renderNotCollapsed.bind(this)}static getDerivedStateFromProps(props,state){return props.data!==state.data?{data:props.data}:null}onChildUpdate(childKey,childData){let{data,keyPath}=this.state;data[childKey]=childData,this.setState({data});let{onUpdate}=this.props,size=keyPath.length;onUpdate(keyPath[size-1],data)}handleAddMode(){this.setState({addFormVisible:!0})}handleCollapseMode(){this.setState(state=>({collapsed:!state.collapsed}))}handleRemoveItem(index){return()=>{let{beforeRemoveAction,logger:logger4}=this.props,{data,keyPath,nextDeep:deep}=this.state,oldValue=data[index];beforeRemoveAction(index,keyPath,deep,oldValue).then(()=>{let deltaUpdateResult={keyPath,deep,key:index,oldValue,type:REMOVE_DELTA_TYPE};data.splice(index,1),this.setState({data});let{onUpdate,onDeltaUpdate}=this.props;onUpdate(keyPath[keyPath.length-1],data),onDeltaUpdate(deltaUpdateResult)}).catch(logger4.error)}}handleAddValueAdd({newValue}){let{data,keyPath,nextDeep:deep}=this.state,{beforeAddAction,logger:logger4}=this.props;beforeAddAction(data.length,keyPath,deep,newValue).then(()=>{let newData=[...data,newValue];this.setState({data:newData}),this.handleAddValueCancel();let{onUpdate,onDeltaUpdate}=this.props;onUpdate(keyPath[keyPath.length-1],newData),onDeltaUpdate({type:ADD_DELTA_TYPE,keyPath,deep,key:newData.length-1,newValue})}).catch(logger4.error)}handleAddValueCancel(){this.setState({addFormVisible:!1})}handleEditValue({key,value:value2}){return new Promise((resolve,reject)=>{let{beforeUpdateAction}=this.props,{data,keyPath,nextDeep:deep}=this.state,oldValue=data[key];beforeUpdateAction(key,keyPath,deep,oldValue,value2).then(()=>{data[key]=value2,this.setState({data});let{onUpdate,onDeltaUpdate}=this.props;onUpdate(keyPath[keyPath.length-1],data),onDeltaUpdate({type:UPDATE_DELTA_TYPE,keyPath,deep,key,newValue:value2,oldValue}),resolve(void 0)}).catch(reject)})}renderCollapsed(){let{name,data,keyPath,deep}=this.state,{handleRemove,readOnly,getStyle,dataType,minusMenuElement}=this.props,{minus,collapsed}=getStyle(name,data,keyPath,deep,dataType),isReadOnly=readOnly(name,data,keyPath,deep,dataType),removeItemButton=(0,import_react18.cloneElement)(minusMenuElement,{onClick:handleRemove,className:"rejt-minus-menu",style:minus});return import_react18.default.createElement("span",{className:"rejt-collapsed"},import_react18.default.createElement("span",{className:"rejt-collapsed-text",style:collapsed,onClick:this.handleCollapseMode},"[...] ",data.length," ",data.length===1?"item":"items"),!isReadOnly&&removeItemButton)}renderNotCollapsed(){let{name,data,keyPath,deep,addFormVisible,nextDeep}=this.state,{isCollapsed,handleRemove,onDeltaUpdate,readOnly,getStyle,dataType,addButtonElement,cancelButtonElement,editButtonElement,inputElementGenerator,textareaElementGenerator,minusMenuElement,plusMenuElement,beforeRemoveAction,beforeAddAction,beforeUpdateAction,logger:logger4,onSubmitValueParser}=this.props,{minus,plus,delimiter,ul,addForm}=getStyle(name,data,keyPath,deep,dataType),isReadOnly=readOnly(name,data,keyPath,deep,dataType),addItemButton=(0,import_react18.cloneElement)(plusMenuElement,{onClick:this.handleAddMode,className:"rejt-plus-menu",style:plus}),removeItemButton=(0,import_react18.cloneElement)(minusMenuElement,{onClick:handleRemove,className:"rejt-minus-menu",style:minus});return import_react18.default.createElement("span",{className:"rejt-not-collapsed"},import_react18.default.createElement("span",{className:"rejt-not-collapsed-delimiter",style:delimiter},"["),!addFormVisible&&addItemButton,import_react18.default.createElement("ul",{className:"rejt-not-collapsed-list",style:ul},data.map((item,index)=>import_react18.default.createElement(JsonNode,{key:index,name:index.toString(),data:item,keyPath,deep:nextDeep,isCollapsed,handleRemove:this.handleRemoveItem(index),handleUpdateValue:this.handleEditValue,onUpdate:this.onChildUpdate,onDeltaUpdate,readOnly,getStyle,addButtonElement,cancelButtonElement,editButtonElement,inputElementGenerator,textareaElementGenerator,minusMenuElement,plusMenuElement,beforeRemoveAction,beforeAddAction,beforeUpdateAction,logger:logger4,onSubmitValueParser}))),!isReadOnly&&addFormVisible&&import_react18.default.createElement("div",{className:"rejt-add-form",style:addForm},import_react18.default.createElement(JsonAddValue,{handleAdd:this.handleAddValueAdd,handleCancel:this.handleAddValueCancel,onlyValue:!0,addButtonElement,cancelButtonElement,inputElementGenerator,keyPath,deep,onSubmitValueParser})),import_react18.default.createElement("span",{className:"rejt-not-collapsed-delimiter",style:delimiter},"]"),!isReadOnly&&removeItemButton)}render(){let{name,collapsed,data,keyPath,deep}=this.state,{dataType,getStyle}=this.props,value2=collapsed?this.renderCollapsed():this.renderNotCollapsed(),style=getStyle(name,data,keyPath,deep,dataType);return import_react18.default.createElement("div",{className:"rejt-array-node"},import_react18.default.createElement("span",{onClick:this.handleCollapseMode},import_react18.default.createElement("span",{className:"rejt-name",style:style.name},name," :"," ")),value2)}};JsonArray.defaultProps={keyPath:[],deep:0,minusMenuElement:import_react18.default.createElement("span",null," - "),plusMenuElement:import_react18.default.createElement("span",null," + ")};var JsonFunctionValue=class extends import_react18.Component{constructor(props){super(props);let keyPath=[...props.keyPath,props.name];this.state={value:props.value,name:props.name,keyPath,deep:props.deep,editEnabled:!1,inputRef:null},this.handleEditMode=this.handleEditMode.bind(this),this.refInput=this.refInput.bind(this),this.handleCancelEdit=this.handleCancelEdit.bind(this),this.handleEdit=this.handleEdit.bind(this),this.onKeydown=this.onKeydown.bind(this)}static getDerivedStateFromProps(props,state){return props.value!==state.value?{value:props.value}:null}componentDidUpdate(){let{editEnabled,inputRef,name,value:value2,keyPath,deep}=this.state,{readOnly,dataType}=this.props,readOnlyResult=readOnly(name,value2,keyPath,deep,dataType);editEnabled&&!readOnlyResult&&typeof inputRef.focus=="function"&&inputRef.focus()}componentDidMount(){document.addEventListener("keydown",this.onKeydown)}componentWillUnmount(){document.removeEventListener("keydown",this.onKeydown)}onKeydown(event){event.altKey||event.ctrlKey||event.metaKey||event.shiftKey||event.repeat||((event.code==="Enter"||event.key==="Enter")&&(event.preventDefault(),this.handleEdit()),(event.code==="Escape"||event.key==="Escape")&&(event.preventDefault(),this.handleCancelEdit()))}handleEdit(){let{handleUpdateValue,originalValue,logger:logger4,onSubmitValueParser,keyPath}=this.props,{inputRef,name,deep}=this.state;if(!inputRef)return;let newValue=onSubmitValueParser(!0,keyPath,deep,name,inputRef.value);handleUpdateValue({value:newValue,key:name}).then(()=>{isComponentWillChange(originalValue,newValue)||this.handleCancelEdit()}).catch(logger4.error)}handleEditMode(){this.setState({editEnabled:!0})}refInput(node){this.state.inputRef=node}handleCancelEdit(){this.setState({editEnabled:!1})}render(){let{name,value:value2,editEnabled,keyPath,deep}=this.state,{handleRemove,originalValue,readOnly,dataType,getStyle,editButtonElement,cancelButtonElement,textareaElementGenerator,minusMenuElement,keyPath:comeFromKeyPath}=this.props,style=getStyle(name,originalValue,keyPath,deep,dataType),result=null,minusElement=null,resultOnlyResult=readOnly(name,originalValue,keyPath,deep,dataType);if(editEnabled&&!resultOnlyResult){let textareaElement=textareaElementGenerator(VALUE,comeFromKeyPath,deep,name,originalValue,dataType),editButtonElementLayout=(0,import_react18.cloneElement)(editButtonElement,{onClick:this.handleEdit}),cancelButtonElementLayout=(0,import_react18.cloneElement)(cancelButtonElement,{onClick:this.handleCancelEdit}),textareaElementLayout=(0,import_react18.cloneElement)(textareaElement,{ref:this.refInput,defaultValue:originalValue});result=import_react18.default.createElement("span",{className:"rejt-edit-form",style:style.editForm},textareaElementLayout," ",cancelButtonElementLayout,editButtonElementLayout),minusElement=null}else{result=import_react18.default.createElement("span",{className:"rejt-value",style:style.value,onClick:resultOnlyResult?null:this.handleEditMode},value2);let minusMenuLayout=(0,import_react18.cloneElement)(minusMenuElement,{onClick:handleRemove,className:"rejt-minus-menu",style:style.minus});minusElement=resultOnlyResult?null:minusMenuLayout}return import_react18.default.createElement("li",{className:"rejt-function-value-node",style:style.li},import_react18.default.createElement("span",{className:"rejt-name",style:style.name},name," :"," "),result,minusElement)}};JsonFunctionValue.defaultProps={keyPath:[],deep:0,handleUpdateValue:()=>{},editButtonElement:import_react18.default.createElement("button",null,"e"),cancelButtonElement:import_react18.default.createElement("button",null,"c"),minusMenuElement:import_react18.default.createElement("span",null," - ")};var JsonNode=class extends import_react18.Component{constructor(props){super(props),this.state={data:props.data,name:props.name,keyPath:props.keyPath,deep:props.deep}}static getDerivedStateFromProps(props,state){return props.data!==state.data?{data:props.data}:null}render(){let{data,name,keyPath,deep}=this.state,{isCollapsed,handleRemove,handleUpdateValue,onUpdate,onDeltaUpdate,readOnly,getStyle,addButtonElement,cancelButtonElement,editButtonElement,inputElementGenerator,textareaElementGenerator,minusMenuElement,plusMenuElement,beforeRemoveAction,beforeAddAction,beforeUpdateAction,logger:logger4,onSubmitValueParser}=this.props,readOnlyTrue=()=>!0,dataType=getObjectType(data);switch(dataType){case ERROR:return import_react18.default.createElement(JsonObject,{data,name,isCollapsed,keyPath,deep,handleRemove,onUpdate,onDeltaUpdate,readOnly:readOnlyTrue,dataType,getStyle,addButtonElement,cancelButtonElement,editButtonElement,inputElementGenerator,textareaElementGenerator,minusMenuElement,plusMenuElement,beforeRemoveAction,beforeAddAction,beforeUpdateAction,logger:logger4,onSubmitValueParser});case OBJECT:return import_react18.default.createElement(JsonObject,{data,name,isCollapsed,keyPath,deep,handleRemove,onUpdate,onDeltaUpdate,readOnly,dataType,getStyle,addButtonElement,cancelButtonElement,editButtonElement,inputElementGenerator,textareaElementGenerator,minusMenuElement,plusMenuElement,beforeRemoveAction,beforeAddAction,beforeUpdateAction,logger:logger4,onSubmitValueParser});case ARRAY:return import_react18.default.createElement(JsonArray,{data,name,isCollapsed,keyPath,deep,handleRemove,onUpdate,onDeltaUpdate,readOnly,dataType,getStyle,addButtonElement,cancelButtonElement,editButtonElement,inputElementGenerator,textareaElementGenerator,minusMenuElement,plusMenuElement,beforeRemoveAction,beforeAddAction,beforeUpdateAction,logger:logger4,onSubmitValueParser});case STRING:return import_react18.default.createElement(JsonValue,{name,value:`"${data}"`,originalValue:data,keyPath,deep,handleRemove,handleUpdateValue,readOnly,dataType,getStyle,cancelButtonElement,editButtonElement,inputElementGenerator,minusMenuElement,logger:logger4,onSubmitValueParser});case NUMBER:return import_react18.default.createElement(JsonValue,{name,value:data,originalValue:data,keyPath,deep,handleRemove,handleUpdateValue,readOnly,dataType,getStyle,cancelButtonElement,editButtonElement,inputElementGenerator,minusMenuElement,logger:logger4,onSubmitValueParser});case BOOLEAN:return import_react18.default.createElement(JsonValue,{name,value:data?"true":"false",originalValue:data,keyPath,deep,handleRemove,handleUpdateValue,readOnly,dataType,getStyle,cancelButtonElement,editButtonElement,inputElementGenerator,minusMenuElement,logger:logger4,onSubmitValueParser});case DATE:return import_react18.default.createElement(JsonValue,{name,value:data.toISOString(),originalValue:data,keyPath,deep,handleRemove,handleUpdateValue,readOnly:readOnlyTrue,dataType,getStyle,cancelButtonElement,editButtonElement,inputElementGenerator,minusMenuElement,logger:logger4,onSubmitValueParser});case NULL:return import_react18.default.createElement(JsonValue,{name,value:"null",originalValue:"null",keyPath,deep,handleRemove,handleUpdateValue,readOnly,dataType,getStyle,cancelButtonElement,editButtonElement,inputElementGenerator,minusMenuElement,logger:logger4,onSubmitValueParser});case UNDEFINED:return import_react18.default.createElement(JsonValue,{name,value:"undefined",originalValue:"undefined",keyPath,deep,handleRemove,handleUpdateValue,readOnly,dataType,getStyle,cancelButtonElement,editButtonElement,inputElementGenerator,minusMenuElement,logger:logger4,onSubmitValueParser});case FUNCTION:return import_react18.default.createElement(JsonFunctionValue,{name,value:data.toString(),originalValue:data,keyPath,deep,handleRemove,handleUpdateValue,readOnly,dataType,getStyle,cancelButtonElement,editButtonElement,textareaElementGenerator,minusMenuElement,logger:logger4,onSubmitValueParser});case SYMBOL:return import_react18.default.createElement(JsonValue,{name,value:data.toString(),originalValue:data,keyPath,deep,handleRemove,handleUpdateValue,readOnly:readOnlyTrue,dataType,getStyle,cancelButtonElement,editButtonElement,inputElementGenerator,minusMenuElement,logger:logger4,onSubmitValueParser});default:return null}}};JsonNode.defaultProps={keyPath:[],deep:0};var JsonObject=class extends import_react18.Component{constructor(props){super(props);let keyPath=props.deep===-1?[]:[...props.keyPath,props.name];this.state={name:props.name,data:props.data,keyPath,deep:props.deep,nextDeep:props.deep+1,collapsed:props.isCollapsed(keyPath,props.deep,props.data),addFormVisible:!1},this.handleCollapseMode=this.handleCollapseMode.bind(this),this.handleRemoveValue=this.handleRemoveValue.bind(this),this.handleAddMode=this.handleAddMode.bind(this),this.handleAddValueAdd=this.handleAddValueAdd.bind(this),this.handleAddValueCancel=this.handleAddValueCancel.bind(this),this.handleEditValue=this.handleEditValue.bind(this),this.onChildUpdate=this.onChildUpdate.bind(this),this.renderCollapsed=this.renderCollapsed.bind(this),this.renderNotCollapsed=this.renderNotCollapsed.bind(this)}static getDerivedStateFromProps(props,state){return props.data!==state.data?{data:props.data}:null}onChildUpdate(childKey,childData){let{data,keyPath}=this.state;data[childKey]=childData,this.setState({data});let{onUpdate}=this.props,size=keyPath.length;onUpdate(keyPath[size-1],data)}handleAddMode(){this.setState({addFormVisible:!0})}handleAddValueCancel(){this.setState({addFormVisible:!1})}handleAddValueAdd({key,newValue}){let{data,keyPath,nextDeep:deep}=this.state,{beforeAddAction,logger:logger4}=this.props;beforeAddAction(key,keyPath,deep,newValue).then(()=>{data[key]=newValue,this.setState({data}),this.handleAddValueCancel();let{onUpdate,onDeltaUpdate}=this.props;onUpdate(keyPath[keyPath.length-1],data),onDeltaUpdate({type:ADD_DELTA_TYPE,keyPath,deep,key,newValue})}).catch(logger4.error)}handleRemoveValue(key){return()=>{let{beforeRemoveAction,logger:logger4}=this.props,{data,keyPath,nextDeep:deep}=this.state,oldValue=data[key];beforeRemoveAction(key,keyPath,deep,oldValue).then(()=>{let deltaUpdateResult={keyPath,deep,key,oldValue,type:REMOVE_DELTA_TYPE};delete data[key],this.setState({data});let{onUpdate,onDeltaUpdate}=this.props;onUpdate(keyPath[keyPath.length-1],data),onDeltaUpdate(deltaUpdateResult)}).catch(logger4.error)}}handleCollapseMode(){this.setState(state=>({collapsed:!state.collapsed}))}handleEditValue({key,value:value2}){return new Promise((resolve,reject)=>{let{beforeUpdateAction}=this.props,{data,keyPath,nextDeep:deep}=this.state,oldValue=data[key];beforeUpdateAction(key,keyPath,deep,oldValue,value2).then(()=>{data[key]=value2,this.setState({data});let{onUpdate,onDeltaUpdate}=this.props;onUpdate(keyPath[keyPath.length-1],data),onDeltaUpdate({type:UPDATE_DELTA_TYPE,keyPath,deep,key,newValue:value2,oldValue}),resolve()}).catch(reject)})}renderCollapsed(){let{name,keyPath,deep,data}=this.state,{handleRemove,readOnly,dataType,getStyle,minusMenuElement}=this.props,{minus,collapsed}=getStyle(name,data,keyPath,deep,dataType),keyList=Object.getOwnPropertyNames(data),isReadOnly=readOnly(name,data,keyPath,deep,dataType),removeItemButton=(0,import_react18.cloneElement)(minusMenuElement,{onClick:handleRemove,className:"rejt-minus-menu",style:minus});return import_react18.default.createElement("span",{className:"rejt-collapsed"},import_react18.default.createElement("span",{className:"rejt-collapsed-text",style:collapsed,onClick:this.handleCollapseMode},"{...}"," ",keyList.length," ",keyList.length===1?"key":"keys"),!isReadOnly&&removeItemButton)}renderNotCollapsed(){let{name,data,keyPath,deep,nextDeep,addFormVisible}=this.state,{isCollapsed,handleRemove,onDeltaUpdate,readOnly,getStyle,dataType,addButtonElement,cancelButtonElement,editButtonElement,inputElementGenerator,textareaElementGenerator,minusMenuElement,plusMenuElement,beforeRemoveAction,beforeAddAction,beforeUpdateAction,logger:logger4,onSubmitValueParser}=this.props,{minus,plus,addForm,ul,delimiter}=getStyle(name,data,keyPath,deep,dataType),keyList=Object.getOwnPropertyNames(data),isReadOnly=readOnly(name,data,keyPath,deep,dataType),addItemButton=(0,import_react18.cloneElement)(plusMenuElement,{onClick:this.handleAddMode,className:"rejt-plus-menu",style:plus}),removeItemButton=(0,import_react18.cloneElement)(minusMenuElement,{onClick:handleRemove,className:"rejt-minus-menu",style:minus}),list=keyList.map(key=>import_react18.default.createElement(JsonNode,{key,name:key,data:data[key],keyPath,deep:nextDeep,isCollapsed,handleRemove:this.handleRemoveValue(key),handleUpdateValue:this.handleEditValue,onUpdate:this.onChildUpdate,onDeltaUpdate,readOnly,getStyle,addButtonElement,cancelButtonElement,editButtonElement,inputElementGenerator,textareaElementGenerator,minusMenuElement,plusMenuElement,beforeRemoveAction,beforeAddAction,beforeUpdateAction,logger:logger4,onSubmitValueParser}));return import_react18.default.createElement("span",{className:"rejt-not-collapsed"},import_react18.default.createElement("span",{className:"rejt-not-collapsed-delimiter",style:delimiter},"{"),!isReadOnly&&addItemButton,import_react18.default.createElement("ul",{className:"rejt-not-collapsed-list",style:ul},list),!isReadOnly&&addFormVisible&&import_react18.default.createElement("div",{className:"rejt-add-form",style:addForm},import_react18.default.createElement(JsonAddValue,{handleAdd:this.handleAddValueAdd,handleCancel:this.handleAddValueCancel,addButtonElement,cancelButtonElement,inputElementGenerator,keyPath,deep,onSubmitValueParser})),import_react18.default.createElement("span",{className:"rejt-not-collapsed-delimiter",style:delimiter},"}"),!isReadOnly&&removeItemButton)}render(){let{name,collapsed,data,keyPath,deep}=this.state,{getStyle,dataType}=this.props,value2=collapsed?this.renderCollapsed():this.renderNotCollapsed(),style=getStyle(name,data,keyPath,deep,dataType);return import_react18.default.createElement("div",{className:"rejt-object-node"},import_react18.default.createElement("span",{onClick:this.handleCollapseMode},import_react18.default.createElement("span",{className:"rejt-name",style:style.name},name," :"," ")),value2)}};JsonObject.defaultProps={keyPath:[],deep:0,minusMenuElement:import_react18.default.createElement("span",null," - "),plusMenuElement:import_react18.default.createElement("span",null," + ")};var JsonValue=class extends import_react18.Component{constructor(props){super(props);let keyPath=[...props.keyPath,props.name];this.state={value:props.value,name:props.name,keyPath,deep:props.deep,editEnabled:!1,inputRef:null},this.handleEditMode=this.handleEditMode.bind(this),this.refInput=this.refInput.bind(this),this.handleCancelEdit=this.handleCancelEdit.bind(this),this.handleEdit=this.handleEdit.bind(this),this.onKeydown=this.onKeydown.bind(this)}static getDerivedStateFromProps(props,state){return props.value!==state.value?{value:props.value}:null}componentDidUpdate(){let{editEnabled,inputRef,name,value:value2,keyPath,deep}=this.state,{readOnly,dataType}=this.props,isReadOnly=readOnly(name,value2,keyPath,deep,dataType);editEnabled&&!isReadOnly&&typeof inputRef.focus=="function"&&inputRef.focus()}componentDidMount(){document.addEventListener("keydown",this.onKeydown)}componentWillUnmount(){document.removeEventListener("keydown",this.onKeydown)}onKeydown(event){event.altKey||event.ctrlKey||event.metaKey||event.shiftKey||event.repeat||((event.code==="Enter"||event.key==="Enter")&&(event.preventDefault(),this.handleEdit()),(event.code==="Escape"||event.key==="Escape")&&(event.preventDefault(),this.handleCancelEdit()))}handleEdit(){let{handleUpdateValue,originalValue,logger:logger4,onSubmitValueParser,keyPath}=this.props,{inputRef,name,deep}=this.state;if(!inputRef)return;let newValue=onSubmitValueParser(!0,keyPath,deep,name,inputRef.value);handleUpdateValue({value:newValue,key:name}).then(()=>{isComponentWillChange(originalValue,newValue)||this.handleCancelEdit()}).catch(logger4.error)}handleEditMode(){this.setState({editEnabled:!0})}refInput(node){this.state.inputRef=node}handleCancelEdit(){this.setState({editEnabled:!1})}render(){let{name,value:value2,editEnabled,keyPath,deep}=this.state,{handleRemove,originalValue,readOnly,dataType,getStyle,editButtonElement,cancelButtonElement,inputElementGenerator,minusMenuElement,keyPath:comeFromKeyPath}=this.props,style=getStyle(name,originalValue,keyPath,deep,dataType),isReadOnly=readOnly(name,originalValue,keyPath,deep,dataType),isEditing=editEnabled&&!isReadOnly,inputElement=inputElementGenerator(VALUE,comeFromKeyPath,deep,name,originalValue,dataType),editButtonElementLayout=(0,import_react18.cloneElement)(editButtonElement,{onClick:this.handleEdit}),cancelButtonElementLayout=(0,import_react18.cloneElement)(cancelButtonElement,{onClick:this.handleCancelEdit}),inputElementLayout=(0,import_react18.cloneElement)(inputElement,{ref:this.refInput,defaultValue:JSON.stringify(originalValue)}),minusMenuLayout=(0,import_react18.cloneElement)(minusMenuElement,{onClick:handleRemove,className:"rejt-minus-menu",style:style.minus});return import_react18.default.createElement("li",{className:"rejt-value-node",style:style.li},import_react18.default.createElement("span",{className:"rejt-name",style:style.name},name," : "),isEditing?import_react18.default.createElement("span",{className:"rejt-edit-form",style:style.editForm},inputElementLayout," ",cancelButtonElementLayout,editButtonElementLayout):import_react18.default.createElement("span",{className:"rejt-value",style:style.value,onClick:isReadOnly?null:this.handleEditMode},String(value2)),!isReadOnly&&!isEditing&&minusMenuLayout)}};JsonValue.defaultProps={keyPath:[],deep:0,handleUpdateValue:()=>Promise.resolve(),editButtonElement:import_react18.default.createElement("button",null,"e"),cancelButtonElement:import_react18.default.createElement("button",null,"c"),minusMenuElement:import_react18.default.createElement("span",null," - ")};var object={minus:{color:"red"},plus:{color:"green"},collapsed:{color:"grey"},delimiter:{},ul:{padding:"0px",margin:"0 0 0 25px",listStyle:"none"},name:{color:"#2287CD"},addForm:{}},array={minus:{color:"red"},plus:{color:"green"},collapsed:{color:"grey"},delimiter:{},ul:{padding:"0px",margin:"0 0 0 25px",listStyle:"none"},name:{color:"#2287CD"},addForm:{}},value={minus:{color:"red"},editForm:{},value:{color:"#7bba3d"},li:{minHeight:"22px",lineHeight:"22px",outline:"0px"},name:{color:"#2287CD"}};function parse3(string){let result=string;if(result.indexOf("function")===0)return(0,eval)(`(${result})`);try{result=JSON.parse(string)}catch{}return result}var JsonTree=class extends import_react19.Component{constructor(props){super(props),this.state={data:props.data,rootName:props.rootName},this.onUpdate=this.onUpdate.bind(this),this.removeRoot=this.removeRoot.bind(this)}static getDerivedStateFromProps(props,state){return props.data!==state.data||props.rootName!==state.rootName?{data:props.data,rootName:props.rootName}:null}onUpdate(key,data){this.setState({data}),this.props.onFullyUpdate(data)}removeRoot(){this.onUpdate(null,null)}render(){let{data,rootName}=this.state,{isCollapsed,onDeltaUpdate,readOnly,getStyle,addButtonElement,cancelButtonElement,editButtonElement,inputElement,textareaElement,minusMenuElement,plusMenuElement,beforeRemoveAction,beforeAddAction,beforeUpdateAction,logger:logger4,onSubmitValueParser,fallback=null}=this.props,dataType=getObjectType(data),readOnlyFunction=readOnly;getObjectType(readOnly)==="Boolean"&&(readOnlyFunction=()=>readOnly);let inputElementFunction=inputElement;inputElement&&getObjectType(inputElement)!=="Function"&&(inputElementFunction=()=>inputElement);let textareaElementFunction=textareaElement;return textareaElement&&getObjectType(textareaElement)!=="Function"&&(textareaElementFunction=()=>textareaElement),dataType==="Object"||dataType==="Array"?import_react19.default.createElement("div",{className:"rejt-tree"},import_react19.default.createElement(JsonNode,{data,name:rootName,deep:-1,isCollapsed,onUpdate:this.onUpdate,onDeltaUpdate,readOnly:readOnlyFunction,getStyle,addButtonElement,cancelButtonElement,editButtonElement,inputElementGenerator:inputElementFunction,textareaElementGenerator:textareaElementFunction,minusMenuElement,plusMenuElement,handleRemove:this.removeRoot,beforeRemoveAction,beforeAddAction,beforeUpdateAction,logger:logger4,onSubmitValueParser})):fallback}};JsonTree.defaultProps={rootName:"root",isCollapsed:(keyPath,deep)=>deep!==-1,getStyle:(keyName,data,keyPath,deep,dataType)=>{switch(dataType){case"Object":case"Error":return object;case"Array":return array;default:return value}},readOnly:()=>!1,onFullyUpdate:()=>{},onDeltaUpdate:()=>{},beforeRemoveAction:()=>Promise.resolve(),beforeAddAction:()=>Promise.resolve(),beforeUpdateAction:()=>Promise.resolve(),logger:{error:()=>{}},onSubmitValueParser:(isEditMode,keyPath,deep,name,rawValue)=>parse3(rawValue),inputElement:()=>import_react19.default.createElement("input",null),textareaElement:()=>import_react19.default.createElement("textarea",null),fallback:null};init_helpers();var{window:globalWindow2}=import_global4.global,Wrapper6=import_theming14.styled.div(({theme})=>({position:"relative",display:"flex",'&[aria-readonly="true"]':{opacity:.5},".rejt-tree":{marginLeft:"1rem",fontSize:"13px"},".rejt-value-node, .rejt-object-node > .rejt-collapsed, .rejt-array-node > .rejt-collapsed, .rejt-object-node > .rejt-not-collapsed, .rejt-array-node > .rejt-not-collapsed":{"& > svg":{opacity:0,transition:"opacity 0.2s"}},".rejt-value-node:hover, .rejt-object-node:hover > .rejt-collapsed, .rejt-array-node:hover > .rejt-collapsed, .rejt-object-node:hover > .rejt-not-collapsed, .rejt-array-node:hover > .rejt-not-collapsed":{"& > svg":{opacity:1}},".rejt-edit-form button":{display:"none"},".rejt-add-form":{marginLeft:10},".rejt-add-value-node":{display:"inline-flex",alignItems:"center"},".rejt-name":{lineHeight:"22px"},".rejt-not-collapsed-delimiter":{lineHeight:"22px"},".rejt-plus-menu":{marginLeft:5},".rejt-object-node > span > *, .rejt-array-node > span > *":{position:"relative",zIndex:2},".rejt-object-node, .rejt-array-node":{position:"relative"},".rejt-object-node > span:first-of-type::after, .rejt-array-node > span:first-of-type::after, .rejt-collapsed::before, .rejt-not-collapsed::before":{content:'""',position:"absolute",top:0,display:"block",width:"100%",marginLeft:"-1rem",padding:"0 4px 0 1rem",height:22},".rejt-collapsed::before, .rejt-not-collapsed::before":{zIndex:1,background:"transparent",borderRadius:4,transition:"background 0.2s",pointerEvents:"none",opacity:.1},".rejt-object-node:hover, .rejt-array-node:hover":{"& > .rejt-collapsed::before, & > .rejt-not-collapsed::before":{background:theme.color.secondary}},".rejt-collapsed::after, .rejt-not-collapsed::after":{content:'""',position:"absolute",display:"inline-block",pointerEvents:"none",width:0,height:0},".rejt-collapsed::after":{left:-8,top:8,borderTop:"3px solid transparent",borderBottom:"3px solid transparent",borderLeft:"3px solid rgba(153,153,153,0.6)"},".rejt-not-collapsed::after":{left:-10,top:10,borderTop:"3px solid rgba(153,153,153,0.6)",borderLeft:"3px solid transparent",borderRight:"3px solid transparent"},".rejt-value":{display:"inline-block",border:"1px solid transparent",borderRadius:4,margin:"1px 0",padding:"0 4px",cursor:"text",color:theme.color.defaultText},".rejt-value-node:hover > .rejt-value":{background:theme.color.lighter,borderColor:theme.appBorderColor}})),ButtonInline=import_theming14.styled.button(({theme,primary})=>({border:0,height:20,margin:1,borderRadius:4,background:primary?theme.color.secondary:"transparent",color:primary?theme.color.lightest:theme.color.dark,fontWeight:primary?"bold":"normal",cursor:"pointer",order:primary?"initial":9})),ActionAddIcon=(0,import_theming14.styled)(import_icons4.AddIcon)(({theme,disabled})=>({display:"inline-block",verticalAlign:"middle",width:15,height:15,padding:3,marginLeft:5,cursor:disabled?"not-allowed":"pointer",color:theme.textMutedColor,"&:hover":disabled?{}:{color:theme.color.ancillary},"svg + &":{marginLeft:0}})),ActionSubstractIcon=(0,import_theming14.styled)(import_icons4.SubtractIcon)(({theme,disabled})=>({display:"inline-block",verticalAlign:"middle",width:15,height:15,padding:3,marginLeft:5,cursor:disabled?"not-allowed":"pointer",color:theme.textMutedColor,"&:hover":disabled?{}:{color:theme.color.negative},"svg + &":{marginLeft:0}})),Input=import_theming14.styled.input(({theme,placeholder})=>({outline:0,margin:placeholder?1:"1px 0",padding:"3px 4px",color:theme.color.defaultText,background:theme.background.app,border:`1px solid ${theme.appBorderColor}`,borderRadius:4,lineHeight:"14px",width:placeholder==="Key"?80:120,"&:focus":{border:`1px solid ${theme.color.secondary}`}})),RawButton=(0,import_theming14.styled)(import_components12.IconButton)(({theme})=>({position:"absolute",zIndex:2,top:2,right:2,height:21,padding:"0 3px",background:theme.background.bar,border:`1px solid ${theme.appBorderColor}`,borderRadius:3,color:theme.textMutedColor,fontSize:"9px",fontWeight:"bold",textDecoration:"none",span:{marginLeft:3,marginTop:1}})),RawInput=(0,import_theming14.styled)(import_components12.Form.Textarea)(({theme})=>({flex:1,padding:"7px 6px",fontFamily:theme.typography.fonts.mono,fontSize:"12px",lineHeight:"18px","&::placeholder":{fontFamily:theme.typography.fonts.base,fontSize:"13px"},"&:placeholder-shown":{padding:"7px 10px"}})),ENTER_EVENT={bubbles:!0,cancelable:!0,key:"Enter",code:"Enter",keyCode:13},dispatchEnterKey=event=>{event.currentTarget.dispatchEvent(new globalWindow2.KeyboardEvent("keydown",ENTER_EVENT))},selectValue=event=>{event.currentTarget.select()},getCustomStyleFunction=theme=>()=>({name:{color:theme.color.secondary},collapsed:{color:theme.color.dark},ul:{listStyle:"none",margin:"0 0 0 1rem",padding:0},li:{outline:0}}),ObjectControl=({name,value:value2,onChange,argType})=>{let theme=(0,import_theming14.useTheme)(),data=(0,import_react20.useMemo)(()=>value2&&(0,import_cloneDeep.default)(value2),[value2]),hasData=data!=null,[showRaw,setShowRaw]=(0,import_react20.useState)(!hasData),[parseError,setParseError]=(0,import_react20.useState)(null),readonly=!!argType?.table?.readonly,updateRaw=(0,import_react20.useCallback)(raw=>{try{raw&&onChange(JSON.parse(raw)),setParseError(void 0)}catch(e){setParseError(e)}},[onChange]),[forceVisible,setForceVisible]=(0,import_react20.useState)(!1),onForceVisible=(0,import_react20.useCallback)(()=>{onChange({}),setForceVisible(!0)},[setForceVisible]),htmlElRef=(0,import_react20.useRef)(null);if((0,import_react20.useEffect)(()=>{forceVisible&&htmlElRef.current&&htmlElRef.current.select()},[forceVisible]),!hasData)return import_react20.default.createElement(import_components12.Button,{disabled:readonly,id:getControlSetterButtonId(name),onClick:onForceVisible},"Set object");let rawJSONForm=import_react20.default.createElement(RawInput,{ref:htmlElRef,id:getControlId(name),name,defaultValue:value2===null?"":JSON.stringify(value2,null,2),onBlur:event=>updateRaw(event.target.value),placeholder:"Edit JSON string...",autoFocus:forceVisible,valid:parseError?"error":null,readOnly:readonly}),isObjectOrArray=Array.isArray(value2)||typeof value2=="object"&&value2?.constructor===Object;return import_react20.default.createElement(Wrapper6,{"aria-readonly":readonly},isObjectOrArray&&import_react20.default.createElement(RawButton,{onClick:e=>{e.preventDefault(),setShowRaw(v=>!v)}},showRaw?import_react20.default.createElement(import_icons4.EyeCloseIcon,null):import_react20.default.createElement(import_icons4.EyeIcon,null),import_react20.default.createElement("span",null,"RAW")),showRaw?rawJSONForm:import_react20.default.createElement(JsonTree,{readOnly:readonly||!isObjectOrArray,isCollapsed:isObjectOrArray?void 0:()=>!0,data,rootName:name,onFullyUpdate:onChange,getStyle:getCustomStyleFunction(theme),cancelButtonElement:import_react20.default.createElement(ButtonInline,{type:"button"},"Cancel"),editButtonElement:import_react20.default.createElement(ButtonInline,{type:"submit"},"Save"),addButtonElement:import_react20.default.createElement(ButtonInline,{type:"submit",primary:!0},"Save"),plusMenuElement:import_react20.default.createElement(ActionAddIcon,null),minusMenuElement:import_react20.default.createElement(ActionSubstractIcon,null),inputElement:(_,__,___,key)=>key?import_react20.default.createElement(Input,{onFocus:selectValue,onBlur:dispatchEnterKey}):import_react20.default.createElement(Input,null),fallback:rawJSONForm}))};var import_react21=__toESM(require("react")),import_theming15=require("@storybook/theming"),import_polished5=require("polished");init_helpers();var RangeInput=import_theming15.styled.input(({theme,min,max,value:value2,disabled})=>({"&":{width:"100%",backgroundColor:"transparent",appearance:"none"},"&::-webkit-slider-runnable-track":{background:theme.base==="light"?`linear-gradient(to right,
-- ${theme.color.green} 0%, ${theme.color.green} ${(value2-min)/(max-min)*100}%,
-- ${(0,import_polished5.darken)(.02,theme.input.background)} ${(value2-min)/(max-min)*100}%,
-- ${(0,import_polished5.darken)(.02,theme.input.background)} 100%)`:`linear-gradient(to right,
-- ${theme.color.green} 0%, ${theme.color.green} ${(value2-min)/(max-min)*100}%,
-- ${(0,import_polished5.lighten)(.02,theme.input.background)} ${(value2-min)/(max-min)*100}%,
-- ${(0,import_polished5.lighten)(.02,theme.input.background)} 100%)`,boxShadow:`${theme.appBorderColor} 0 0 0 1px inset`,borderRadius:6,width:"100%",height:6,cursor:disabled?"not-allowed":"pointer"},"&::-webkit-slider-thumb":{marginTop:"-6px",width:16,height:16,border:`1px solid ${(0,import_polished5.rgba)(theme.appBorderColor,.2)}`,borderRadius:"50px",boxShadow:`0 1px 3px 0px ${(0,import_polished5.rgba)(theme.appBorderColor,.2)}`,cursor:disabled?"not-allowed":"grab",appearance:"none",background:`${theme.input.background}`,transition:"all 150ms ease-out","&:hover":{background:`${(0,import_polished5.darken)(.05,theme.input.background)}`,transform:"scale3d(1.1, 1.1, 1.1) translateY(-1px)",transition:"all 50ms ease-out"},"&:active":{background:`${theme.input.background}`,transform:"scale3d(1, 1, 1) translateY(0px)",cursor:disabled?"not-allowed":"grab"}},"&:focus":{outline:"none","&::-webkit-slider-runnable-track":{borderColor:(0,import_polished5.rgba)(theme.color.secondary,.4)},"&::-webkit-slider-thumb":{borderColor:theme.color.secondary,boxShadow:`0 0px 5px 0px ${theme.color.secondary}`}},"&::-moz-range-track":{background:theme.base==="light"?`linear-gradient(to right,
-- ${theme.color.green} 0%, ${theme.color.green} ${(value2-min)/(max-min)*100}%,
-- ${(0,import_polished5.darken)(.02,theme.input.background)} ${(value2-min)/(max-min)*100}%,
-- ${(0,import_polished5.darken)(.02,theme.input.background)} 100%)`:`linear-gradient(to right,
-- ${theme.color.green} 0%, ${theme.color.green} ${(value2-min)/(max-min)*100}%,
-- ${(0,import_polished5.lighten)(.02,theme.input.background)} ${(value2-min)/(max-min)*100}%,
-- ${(0,import_polished5.lighten)(.02,theme.input.background)} 100%)`,boxShadow:`${theme.appBorderColor} 0 0 0 1px inset`,borderRadius:6,width:"100%",height:6,cursor:disabled?"not-allowed":"pointer",outline:"none"},"&::-moz-range-thumb":{width:16,height:16,border:`1px solid ${(0,import_polished5.rgba)(theme.appBorderColor,.2)}`,borderRadius:"50px",boxShadow:`0 1px 3px 0px ${(0,import_polished5.rgba)(theme.appBorderColor,.2)}`,cursor:disabled?"not-allowed":"grap",background:`${theme.input.background}`,transition:"all 150ms ease-out","&:hover":{background:`${(0,import_polished5.darken)(.05,theme.input.background)}`,transform:"scale3d(1.1, 1.1, 1.1) translateY(-1px)",transition:"all 50ms ease-out"},"&:active":{background:`${theme.input.background}`,transform:"scale3d(1, 1, 1) translateY(0px)",cursor:"grabbing"}},"&::-ms-track":{background:theme.base==="light"?`linear-gradient(to right,
-- ${theme.color.green} 0%, ${theme.color.green} ${(value2-min)/(max-min)*100}%,
-- ${(0,import_polished5.darken)(.02,theme.input.background)} ${(value2-min)/(max-min)*100}%,
-- ${(0,import_polished5.darken)(.02,theme.input.background)} 100%)`:`linear-gradient(to right,
-- ${theme.color.green} 0%, ${theme.color.green} ${(value2-min)/(max-min)*100}%,
-- ${(0,import_polished5.lighten)(.02,theme.input.background)} ${(value2-min)/(max-min)*100}%,
-- ${(0,import_polished5.lighten)(.02,theme.input.background)} 100%)`,boxShadow:`${theme.appBorderColor} 0 0 0 1px inset`,color:"transparent",width:"100%",height:"6px",cursor:"pointer"},"&::-ms-fill-lower":{borderRadius:6},"&::-ms-fill-upper":{borderRadius:6},"&::-ms-thumb":{width:16,height:16,background:`${theme.input.background}`,border:`1px solid ${(0,import_polished5.rgba)(theme.appBorderColor,.2)}`,borderRadius:50,cursor:"grab",marginTop:0},"@supports (-ms-ime-align:auto)":{"input[type=range]":{margin:"0"}}})),RangeLabel=import_theming15.styled.span({paddingLeft:5,paddingRight:5,fontSize:12,whiteSpace:"nowrap",fontFeatureSettings:"tnum",fontVariantNumeric:"tabular-nums","[aria-readonly=true] &":{opacity:.5}}),RangeCurrentAndMaxLabel=(0,import_theming15.styled)(RangeLabel)(({numberOFDecimalsPlaces,max})=>({width:`${numberOFDecimalsPlaces+max.toString().length*2+3}ch`,textAlign:"right",flexShrink:0})),RangeWrapper=import_theming15.styled.div({display:"flex",alignItems:"center",width:"100%"});function getNumberOfDecimalPlaces(number){let match=number.toString().match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return match?Math.max(0,(match[1]?match[1].length:0)-(match[2]?+match[2]:0)):0}var RangeControl=({name,value:value2,onChange,min=0,max=100,step=1,onBlur,onFocus,argType})=>{let handleChange=event=>{onChange(parse2(event.target.value))},hasValue=value2!==void 0,numberOFDecimalsPlaces=(0,import_react21.useMemo)(()=>getNumberOfDecimalPlaces(step),[step]),readonly=!!argType?.table?.readonly;return import_react21.default.createElement(RangeWrapper,{"aria-readonly":readonly},import_react21.default.createElement(RangeLabel,null,min),import_react21.default.createElement(RangeInput,{id:getControlId(name),type:"range",disabled:readonly,onChange:handleChange,name,value:value2,min,max,step,onFocus,onBlur}),import_react21.default.createElement(RangeCurrentAndMaxLabel,{numberOFDecimalsPlaces,max},hasValue?value2.toFixed(numberOFDecimalsPlaces):"--"," / ",max))};var import_react22=__toESM(require("react")),import_theming16=require("@storybook/theming"),import_components13=require("@storybook/components");init_helpers();var Wrapper7=import_theming16.styled.label({display:"flex"}),MaxLength=import_theming16.styled.div(({isMaxed})=>({marginLeft:"0.75rem",paddingTop:"0.35rem",color:isMaxed?"red":void 0})),TextControl=({name,value:value2,onChange,onFocus,onBlur,maxLength,argType})=>{let handleChange=event=>{onChange(event.target.value)},readonly=!!argType?.table?.readonly,[forceVisible,setForceVisible]=(0,import_react22.useState)(!1),onForceVisible=(0,import_react22.useCallback)(()=>{onChange(""),setForceVisible(!0)},[setForceVisible]);if(value2===void 0)return import_react22.default.createElement(import_components13.Button,{variant:"outline",size:"medium",disabled:readonly,id:getControlSetterButtonId(name),onClick:onForceVisible},"Set string");let isValid=typeof value2=="string";return import_react22.default.createElement(Wrapper7,null,import_react22.default.createElement(import_components13.Form.Textarea,{id:getControlId(name),maxLength,onChange:handleChange,disabled:readonly,size:"flex",placeholder:"Edit string...",autoFocus:forceVisible,valid:isValid?null:"error",name,value:isValid?value2:"",onFocus,onBlur}),maxLength&&import_react22.default.createElement(MaxLength,{isMaxed:value2?.length===maxLength},value2?.length??0," / ",maxLength))};var import_react23=__toESM(require("react")),import_theming17=require("@storybook/theming"),import_components14=require("@storybook/components");init_helpers();var FileInput=(0,import_theming17.styled)(import_components14.Form.Input)({padding:10});function revokeOldUrls(urls){urls.forEach(url=>{url.startsWith("blob:")&&URL.revokeObjectURL(url)})}var FilesControl=({onChange,name,accept="image/*",value:value2,argType})=>{let inputElement=(0,import_react23.useRef)(null),readonly=argType?.control?.readOnly;function handleFileChange(e){if(!e.target.files)return;let fileUrls=Array.from(e.target.files).map(file=>URL.createObjectURL(file));onChange(fileUrls),revokeOldUrls(value2)}return(0,import_react23.useEffect)(()=>{value2==null&&inputElement.current&&(inputElement.current.value=null)},[value2,name]),import_react23.default.createElement(FileInput,{ref:inputElement,id:getControlId(name),type:"file",name,multiple:!0,disabled:readonly,onChange:handleFileChange,accept,size:"flex"})};var LazyColorControl=(0,import_react25.lazy)(()=>Promise.resolve().then(()=>(init_Color(),Color_exports))),ColorControl2=props=>import_react25.default.createElement(import_react25.Suspense,{fallback:import_react25.default.createElement("div",null)},import_react25.default.createElement(LazyColorControl,{...props}));var Controls2={array:ObjectControl,object:ObjectControl,boolean:BooleanControl,color:ColorControl2,date:DateControl,number:NumberControl,check:OptionsControl,"inline-check":OptionsControl,radio:OptionsControl,"inline-radio":OptionsControl,select:OptionsControl,"multi-select":OptionsControl,range:RangeControl,text:TextControl,file:FilesControl},NoControl=()=>import_react26.default.createElement(import_react26.default.Fragment,null,"-"),ArgControl=({row,arg,updateArgs,isHovered})=>{let{key,control}=row,[isFocused,setFocused]=(0,import_react26.useState)(!1),[boxedValue,setBoxedValue]=(0,import_react26.useState)({value:arg});(0,import_react26.useEffect)(()=>{isFocused||setBoxedValue({value:arg})},[isFocused,arg]);let onChange=(0,import_react26.useCallback)(argVal=>(setBoxedValue({value:argVal}),updateArgs({[key]:argVal}),argVal),[updateArgs,key]),onBlur=(0,import_react26.useCallback)(()=>setFocused(!1),[]),onFocus=(0,import_react26.useCallback)(()=>setFocused(!0),[]);if(!control||control.disable){let canBeSetup=control?.disable!==!0&&row?.type?.name!=="function";return isHovered&&canBeSetup?import_react26.default.createElement(import_components16.Link,{href:"https://storybook.js.org/docs/react/essentials/controls",target:"_blank",withArrow:!0},"Setup controls"):import_react26.default.createElement(NoControl,null)}let props={name:key,argType:row,value:boxedValue.value,onChange,onBlur,onFocus},Control=Controls2[control.type]||NoControl;return import_react26.default.createElement(Control,{...props,...control,controlType:control.type})};var Name=import_theming19.styled.span({fontWeight:"bold"}),Required=import_theming19.styled.span(({theme})=>({color:theme.color.negative,fontFamily:theme.typography.fonts.mono,cursor:"help"})),Description=import_theming19.styled.div(({theme})=>({"&&":{p:{margin:"0 0 10px 0"},a:{color:theme.color.secondary}},code:{...(0,import_components17.codeCommon)({theme}),fontSize:12,fontFamily:theme.typography.fonts.mono},"& code":{margin:0,display:"inline-block"},"& pre > code":{whiteSpace:"pre-wrap"}})),Type=import_theming19.styled.div(({theme,hasDescription})=>({color:theme.base==="light"?(0,import_polished6.transparentize)(.1,theme.color.defaultText):(0,import_polished6.transparentize)(.2,theme.color.defaultText),marginTop:hasDescription?4:0})),TypeWithJsDoc=import_theming19.styled.div(({theme,hasDescription})=>({color:theme.base==="light"?(0,import_polished6.transparentize)(.1,theme.color.defaultText):(0,import_polished6.transparentize)(.2,theme.color.defaultText),marginTop:hasDescription?12:0,marginBottom:12})),StyledTd=import_theming19.styled.td(({theme,expandable})=>({paddingLeft:expandable?"40px !important":"20px !important"})),toSummary=value2=>value2&&{summary:typeof value2=="string"?value2:value2.name},ArgRow=props=>{let[isHovered,setIsHovered]=(0,import_react27.useState)(!1),{row,updateArgs,compact,expandable,initialExpandedArgs}=props,{name,description}=row,table=row.table||{},type=table.type||toSummary(row.type),defaultValue=table.defaultValue||row.defaultValue,required=row.type?.required,hasDescription=description!=null&&description!=="";return import_react27.default.createElement("tr",{onMouseEnter:()=>setIsHovered(!0),onMouseLeave:()=>setIsHovered(!1)},import_react27.default.createElement(StyledTd,{expandable},import_react27.default.createElement(Name,null,name),required?import_react27.default.createElement(Required,{title:"Required"},"*"):null),compact?null:import_react27.default.createElement("td",null,hasDescription&&import_react27.default.createElement(Description,null,import_react27.default.createElement(import_markdown_to_jsx.default,null,description)),table.jsDocTags!=null?import_react27.default.createElement(import_react27.default.Fragment,null,import_react27.default.createElement(TypeWithJsDoc,{hasDescription},import_react27.default.createElement(ArgValue,{value:type,initialExpandedArgs})),import_react27.default.createElement(ArgJsDoc,{tags:table.jsDocTags})):import_react27.default.createElement(Type,{hasDescription},import_react27.default.createElement(ArgValue,{value:type,initialExpandedArgs}))),compact?null:import_react27.default.createElement("td",null,import_react27.default.createElement(ArgValue,{value:defaultValue,initialExpandedArgs})),updateArgs?import_react27.default.createElement("td",null,import_react27.default.createElement(ArgControl,{...props,isHovered})):null)};var import_react28=__toESM(require("react")),import_polished7=require("polished"),import_theming20=require("@storybook/theming"),import_icons6=require("@storybook/icons"),ExpanderIconDown=(0,import_theming20.styled)(import_icons6.ChevronDownIcon)(({theme})=>({marginRight:8,marginLeft:-10,marginTop:-2,height:12,width:12,color:theme.base==="light"?(0,import_polished7.transparentize)(.25,theme.color.defaultText):(0,import_polished7.transparentize)(.3,theme.color.defaultText),border:"none",display:"inline-block"})),ExpanderIconRight=(0,import_theming20.styled)(import_icons6.ChevronRightIcon)(({theme})=>({marginRight:8,marginLeft:-10,marginTop:-2,height:12,width:12,color:theme.base==="light"?(0,import_polished7.transparentize)(.25,theme.color.defaultText):(0,import_polished7.transparentize)(.3,theme.color.defaultText),border:"none",display:"inline-block"})),FlexWrapper=import_theming20.styled.span(({theme})=>({display:"flex",lineHeight:"20px",alignItems:"center"})),Section=import_theming20.styled.td(({theme})=>({position:"relative",letterSpacing:"0.35em",textTransform:"uppercase",fontWeight:theme.typography.weight.bold,fontSize:theme.typography.size.s1-1,color:theme.base==="light"?(0,import_polished7.transparentize)(.4,theme.color.defaultText):(0,import_polished7.transparentize)(.6,theme.color.defaultText),background:`${theme.background.app} !important`,"& ~ td":{background:`${theme.background.app} !important`}})),Subsection=import_theming20.styled.td(({theme})=>({position:"relative",fontWeight:theme.typography.weight.bold,fontSize:theme.typography.size.s2-1,background:theme.background.app})),StyledTd2=import_theming20.styled.td(()=>({position:"relative"})),StyledTr=import_theming20.styled.tr(({theme})=>({"&:hover > td":{backgroundColor:`${(0,import_polished7.lighten)(.005,theme.background.app)} !important`,boxShadow:`${theme.color.mediumlight} 0 - 1px 0 0 inset`,cursor:"row-resize"}})),ClickIntercept=import_theming20.styled.button(()=>({background:"none",border:"none",padding:"0",font:"inherit",position:"absolute",top:0,bottom:0,left:0,right:0,height:"100%",width:"100%",color:"transparent",cursor:"row-resize !important"})),SectionRow=({level="section",label,children,initialExpanded=!0,colSpan=3})=>{let[expanded,setExpanded]=(0,import_react28.useState)(initialExpanded),Level=level==="subsection"?Subsection:Section,itemCount=children?.length||0,caption=level==="subsection"?`${itemCount} item${itemCount!==1?"s":""}`:"",helperText=`${expanded?"Hide":"Show"} ${level==="subsection"?itemCount:label} item${itemCount!==1?"s":""}`;return import_react28.default.createElement(import_react28.default.Fragment,null,import_react28.default.createElement(StyledTr,{title:helperText},import_react28.default.createElement(Level,{colSpan:1},import_react28.default.createElement(ClickIntercept,{onClick:e=>setExpanded(!expanded),tabIndex:0},helperText),import_react28.default.createElement(FlexWrapper,null,expanded?import_react28.default.createElement(ExpanderIconDown,null):import_react28.default.createElement(ExpanderIconRight,null),label)),import_react28.default.createElement(StyledTd2,{colSpan:colSpan-1},import_react28.default.createElement(ClickIntercept,{onClick:e=>setExpanded(!expanded),tabIndex:-1,style:{outline:"none"}},helperText),expanded?null:caption)),expanded?children:null)};var import_theming21=require("@storybook/theming"),import_react29=__toESM(require("react")),Row=import_theming21.styled.div(({theme})=>({display:"flex",gap:16,borderBottom:`1px solid ${theme.appBorderColor}`,"&:last-child":{borderBottom:0}})),Column=import_theming21.styled.div(({numColumn})=>({display:"flex",flexDirection:"column",flex:numColumn||1,gap:5,padding:"12px 20px"})),SkeletonText=import_theming21.styled.div(({theme,width,height})=>({animation:`${theme.animation.glow} 1.5s ease-in-out infinite`,background:theme.appBorderColor,width:width||"100%",height:height||16,borderRadius:3})),columnWidth=[2,4,2,2],Skeleton=()=>import_react29.default.createElement(import_react29.default.Fragment,null,import_react29.default.createElement(Row,null,import_react29.default.createElement(Column,{numColumn:columnWidth[0]},import_react29.default.createElement(SkeletonText,{width:"60%"})),import_react29.default.createElement(Column,{numColumn:columnWidth[1]},import_react29.default.createElement(SkeletonText,{width:"30%"})),import_react29.default.createElement(Column,{numColumn:columnWidth[2]},import_react29.default.createElement(SkeletonText,{width:"60%"})),import_react29.default.createElement(Column,{numColumn:columnWidth[3]},import_react29.default.createElement(SkeletonText,{width:"60%"}))),import_react29.default.createElement(Row,null,import_react29.default.createElement(Column,{numColumn:columnWidth[0]},import_react29.default.createElement(SkeletonText,{width:"60%"})),import_react29.default.createElement(Column,{numColumn:columnWidth[1]},import_react29.default.createElement(SkeletonText,{width:"80%"}),import_react29.default.createElement(SkeletonText,{width:"30%"})),import_react29.default.createElement(Column,{numColumn:columnWidth[2]},import_react29.default.createElement(SkeletonText,{width:"60%"})),import_react29.default.createElement(Column,{numColumn:columnWidth[3]},import_react29.default.createElement(SkeletonText,{width:"60%"}))),import_react29.default.createElement(Row,null,import_react29.default.createElement(Column,{numColumn:columnWidth[0]},import_react29.default.createElement(SkeletonText,{width:"60%"})),import_react29.default.createElement(Column,{numColumn:columnWidth[1]},import_react29.default.createElement(SkeletonText,{width:"80%"}),import_react29.default.createElement(SkeletonText,{width:"30%"})),import_react29.default.createElement(Column,{numColumn:columnWidth[2]},import_react29.default.createElement(SkeletonText,{width:"60%"})),import_react29.default.createElement(Column,{numColumn:columnWidth[3]},import_react29.default.createElement(SkeletonText,{width:"60%"}))),import_react29.default.createElement(Row,null,import_react29.default.createElement(Column,{numColumn:columnWidth[0]},import_react29.default.createElement(SkeletonText,{width:"60%"})),import_react29.default.createElement(Column,{numColumn:columnWidth[1]},import_react29.default.createElement(SkeletonText,{width:"80%"}),import_react29.default.createElement(SkeletonText,{width:"30%"})),import_react29.default.createElement(Column,{numColumn:columnWidth[2]},import_react29.default.createElement(SkeletonText,{width:"60%"})),import_react29.default.createElement(Column,{numColumn:columnWidth[3]},import_react29.default.createElement(SkeletonText,{width:"60%"}))));var import_react30=__toESM(require("react")),import_theming22=require("@storybook/theming"),import_components18=require("@storybook/components"),import_icons7=require("@storybook/icons"),Wrapper9=import_theming22.styled.div(({inAddonPanel,theme})=>({height:inAddonPanel?"100%":"auto",display:"flex",border:inAddonPanel?"none":`1px solid ${theme.appBorderColor}`,borderRadius:inAddonPanel?0:theme.appBorderRadius,padding:inAddonPanel?0:40,alignItems:"center",justifyContent:"center",flexDirection:"column",gap:15,background:theme.background.content,boxShadow:"rgba(0, 0, 0, 0.10) 0 1px 3px 0"})),Links=import_theming22.styled.div(({theme})=>({display:"flex",fontSize:theme.typography.size.s2-1,gap:25})),Divider=import_theming22.styled.div(({theme})=>({width:1,height:16,backgroundColor:theme.appBorderColor})),Empty=({inAddonPanel})=>{let[isLoading,setIsLoading]=(0,import_react30.useState)(!0);return(0,import_react30.useEffect)(()=>{let load=setTimeout(()=>{setIsLoading(!1)},100);return()=>clearTimeout(load)},[]),isLoading?null:import_react30.default.createElement(Wrapper9,{inAddonPanel},import_react30.default.createElement(import_components18.EmptyTabContent,{title:inAddonPanel?"Interactive story playground":"Args table with interactive controls couldn't be auto-generated",description:import_react30.default.createElement(import_react30.default.Fragment,null,"Controls give you an easy to use interface to test your components. Set your story args and you'll see controls appearing here automatically."),footer:import_react30.default.createElement(Links,null,inAddonPanel&&import_react30.default.createElement(import_react30.default.Fragment,null,import_react30.default.createElement(import_components18.Link,{href:"https://youtu.be/0gOfS6K0x0E",target:"_blank",withArrow:!0},import_react30.default.createElement(import_icons7.VideoIcon,null)," Watch 5m video"),import_react30.default.createElement(Divider,null),import_react30.default.createElement(import_components18.Link,{href:"https://storybook.js.org/docs/essentials/controls",target:"_blank",withArrow:!0},import_react30.default.createElement(import_icons7.DocumentIcon,null)," Read docs")),!inAddonPanel&&import_react30.default.createElement(import_components18.Link,{href:"https://storybook.js.org/docs/essentials/controls",target:"_blank",withArrow:!0},import_react30.default.createElement(import_icons7.DocumentIcon,null)," Learn how to set that up"))}))};var TableWrapper=import_theming23.styled.table(({theme,compact,inAddonPanel})=>({"&&":{borderSpacing:0,color:theme.color.defaultText,"td, th":{padding:0,border:"none",verticalAlign:"top",textOverflow:"ellipsis"},fontSize:theme.typography.size.s2-1,lineHeight:"20px",textAlign:"left",width:"100%",marginTop:inAddonPanel?0:25,marginBottom:inAddonPanel?0:40,"thead th:first-of-type, td:first-of-type":{width:"25%"},"th:first-of-type, td:first-of-type":{paddingLeft:20},"th:nth-of-type(2), td:nth-of-type(2)":{...compact?null:{width:"35%"}},"td:nth-of-type(3)":{...compact?null:{width:"15%"}},"th:last-of-type, td:last-of-type":{paddingRight:20,...compact?null:{width:"25%"}},th:{color:theme.base==="light"?(0,import_polished8.transparentize)(.25,theme.color.defaultText):(0,import_polished8.transparentize)(.45,theme.color.defaultText),paddingTop:10,paddingBottom:10,paddingLeft:15,paddingRight:15},td:{paddingTop:"10px",paddingBottom:"10px","&:not(:first-of-type)":{paddingLeft:15,paddingRight:15},"&:last-of-type":{paddingRight:20}},marginLeft:inAddonPanel?0:1,marginRight:inAddonPanel?0:1,tbody:{...inAddonPanel?null:{filter:theme.base==="light"?"drop-shadow(0px 1px 3px rgba(0, 0, 0, 0.10))":"drop-shadow(0px 1px 3px rgba(0, 0, 0, 0.20))"},"> tr > *":{background:theme.background.content,borderTop:`1px solid ${theme.appBorderColor}`},...inAddonPanel?null:{"> tr:first-of-type > *":{borderBlockStart:`1px solid ${theme.appBorderColor}`},"> tr:last-of-type > *":{borderBlockEnd:`1px solid ${theme.appBorderColor}`},"> tr > *:first-of-type":{borderInlineStart:`1px solid ${theme.appBorderColor}`},"> tr > *:last-of-type":{borderInlineEnd:`1px solid ${theme.appBorderColor}`},"> tr:first-of-type > td:first-of-type":{borderTopLeftRadius:theme.appBorderRadius},"> tr:first-of-type > td:last-of-type":{borderTopRightRadius:theme.appBorderRadius},"> tr:last-of-type > td:first-of-type":{borderBottomLeftRadius:theme.appBorderRadius},"> tr:last-of-type > td:last-of-type":{borderBottomRightRadius:theme.appBorderRadius}}}}})),StyledIconButton=(0,import_theming23.styled)(import_components19.IconButton)(({theme})=>({margin:"-4px -12px -4px 0"})),ControlHeadingWrapper=import_theming23.styled.span({display:"flex",justifyContent:"space-between"});var sortFns={alpha:(a,b)=>a.name.localeCompare(b.name),requiredFirst:(a,b)=>+!!b.type?.required-+!!a.type?.required||a.name.localeCompare(b.name),none:void 0},groupRows=(rows,sort)=>{let sections={ungrouped:[],ungroupedSubsections:{},sections:{}};if(!rows)return sections;Object.entries(rows).forEach(([key,row])=>{let{category,subcategory}=row?.table||{};if(category){let section=sections.sections[category]||{ungrouped:[],subsections:{}};if(!subcategory)section.ungrouped.push({key,...row});else{let subsection=section.subsections[subcategory]||[];subsection.push({key,...row}),section.subsections[subcategory]=subsection}sections.sections[category]=section}else if(subcategory){let subsection=sections.ungroupedSubsections[subcategory]||[];subsection.push({key,...row}),sections.ungroupedSubsections[subcategory]=subsection}else sections.ungrouped.push({key,...row})});let sortFn=sortFns[sort],sortSubsection=record=>sortFn?Object.keys(record).reduce((acc,cur)=>({...acc,[cur]:record[cur].sort(sortFn)}),{}):record;return{ungrouped:sections.ungrouped.sort(sortFn),ungroupedSubsections:sortSubsection(sections.ungroupedSubsections),sections:Object.keys(sections.sections).reduce((acc,cur)=>({...acc,[cur]:{ungrouped:sections.sections[cur].ungrouped.sort(sortFn),subsections:sortSubsection(sections.sections[cur].subsections)}}),{})}},safeIncludeConditionalArg=(row,args,globals)=>{try{return(0,import_csf.includeConditionalArg)(row,args,globals)}catch(err){return import_client_logger4.once.warn(err.message),!1}},ArgsTable=props=>{let{updateArgs,resetArgs,compact,inAddonPanel,initialExpandedArgs,sort="none",isLoading}=props;if("error"in props){let{error}=props;return import_react31.default.createElement(EmptyBlock,null,error,"\xA0",import_react31.default.createElement(import_components19.Link,{href:"http://storybook.js.org/docs/",target:"_blank",withArrow:!0},import_react31.default.createElement(import_icons8.DocumentIcon,null)," Read the docs"))}if(isLoading)return import_react31.default.createElement(Skeleton,null);let{rows,args,globals}="rows"in props&&props,groups=groupRows((0,import_pickBy.default)(rows,row=>!row?.table?.disable&&safeIncludeConditionalArg(row,args||{},globals||{})),sort),hasNoUngrouped=groups.ungrouped.length===0,hasNoSections=Object.entries(groups.sections).length===0,hasNoUngroupedSubsections=Object.entries(groups.ungroupedSubsections).length===0;if(hasNoUngrouped&&hasNoSections&&hasNoUngroupedSubsections)return import_react31.default.createElement(Empty,{inAddonPanel});let colSpan=1;updateArgs&&(colSpan+=1),compact||(colSpan+=2);let expandable=Object.keys(groups.sections).length>0,common={updateArgs,compact,inAddonPanel,initialExpandedArgs};return import_react31.default.createElement(import_components19.ResetWrapper,null,import_react31.default.createElement(TableWrapper,{compact,inAddonPanel,className:"docblock-argstable sb-unstyled"},import_react31.default.createElement("thead",{className:"docblock-argstable-head"},import_react31.default.createElement("tr",null,import_react31.default.createElement("th",null,import_react31.default.createElement("span",null,"Name")),compact?null:import_react31.default.createElement("th",null,import_react31.default.createElement("span",null,"Description")),compact?null:import_react31.default.createElement("th",null,import_react31.default.createElement("span",null,"Default")),updateArgs?import_react31.default.createElement("th",null,import_react31.default.createElement(ControlHeadingWrapper,null,"Control"," ",!isLoading&&resetArgs&&import_react31.default.createElement(StyledIconButton,{onClick:()=>resetArgs(),title:"Reset controls"},import_react31.default.createElement(import_icons8.UndoIcon,{"aria-hidden":!0})))):null)),import_react31.default.createElement("tbody",{className:"docblock-argstable-body"},groups.ungrouped.map(row=>import_react31.default.createElement(ArgRow,{key:row.key,row,arg:args&&args[row.key],...common})),Object.entries(groups.ungroupedSubsections).map(([subcategory,subsection])=>import_react31.default.createElement(SectionRow,{key:subcategory,label:subcategory,level:"subsection",colSpan},subsection.map(row=>import_react31.default.createElement(ArgRow,{key:row.key,row,arg:args&&args[row.key],expandable,...common})))),Object.entries(groups.sections).map(([category,section])=>import_react31.default.createElement(SectionRow,{key:category,label:category,level:"section",colSpan},section.ungrouped.map(row=>import_react31.default.createElement(ArgRow,{key:row.key,row,arg:args&&args[row.key],...common})),Object.entries(section.subsections).map(([subcategory,subsection])=>import_react31.default.createElement(SectionRow,{key:subcategory,label:subcategory,level:"subsection",colSpan},subsection.map(row=>import_react31.default.createElement(ArgRow,{key:row.key,row,arg:args&&args[row.key],expandable,...common})))))))))};var import_react32=__toESM(require("react")),import_components20=require("@storybook/components");var TabbedArgsTable=({tabs,...props})=>{let entries=Object.entries(tabs);return entries.length===1?import_react32.default.createElement(ArgsTable,{...entries[0][1],...props}):import_react32.default.createElement(import_components20.TabsState,null,entries.map((entry,index)=>{let[label,table]=entry,id2=`prop_table_div_${label}`,Component4="div",argsTableProps=index===0?props:{sort:props.sort};return import_react32.default.createElement(Component4,{key:id2,id:id2,title:label},({active})=>active?import_react32.default.createElement(ArgsTable,{key:`prop_table_${label}`,...table,...argsTableProps}):null)}))};var import_react33=__toESM(require("react")),import_polished9=require("polished"),import_theming24=require("@storybook/theming"),import_components21=require("@storybook/components");var Label4=import_theming24.styled.div(({theme})=>({marginRight:30,fontSize:`${theme.typography.size.s1}px`,color:theme.base==="light"?(0,import_polished9.transparentize)(.4,theme.color.defaultText):(0,import_polished9.transparentize)(.6,theme.color.defaultText)})),Sample=import_theming24.styled.div({overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"}),TypeSpecimen=import_theming24.styled.div({display:"flex",flexDirection:"row",alignItems:"baseline","&:not(:last-child)":{marginBottom:"1rem"}}),Wrapper10=import_theming24.styled.div(import_components21.withReset,({theme})=>({...getBlockBackgroundStyle(theme),margin:"25px 0 40px",padding:"30px 20px"})),Typeset=({fontFamily,fontSizes,fontWeight,sampleText,...props})=>import_react33.default.createElement(Wrapper10,{...props,className:"docblock-typeset sb-unstyled"},fontSizes.map(size=>import_react33.default.createElement(TypeSpecimen,{key:size},import_react33.default.createElement(Label4,null,size),import_react33.default.createElement(Sample,{style:{fontFamily,fontSize:size,fontWeight,lineHeight:1.2}},sampleText||"Was he a beast if music could move him so?"))));var import_react34=__toESM(require("react")),import_polished10=require("polished"),import_theming25=require("@storybook/theming"),import_components22=require("@storybook/components");var ItemTitle=import_theming25.styled.div(({theme})=>({fontWeight:theme.typography.weight.bold,color:theme.color.defaultText})),ItemSubtitle=import_theming25.styled.div(({theme})=>({color:theme.base==="light"?(0,import_polished10.transparentize)(.2,theme.color.defaultText):(0,import_polished10.transparentize)(.6,theme.color.defaultText)})),ItemDescription=import_theming25.styled.div({flex:"0 0 30%",lineHeight:"20px",marginTop:5}),SwatchLabel=import_theming25.styled.div(({theme})=>({flex:1,textAlign:"center",fontFamily:theme.typography.fonts.mono,fontSize:theme.typography.size.s1,lineHeight:1,overflow:"hidden",color:theme.base==="light"?(0,import_polished10.transparentize)(.4,theme.color.defaultText):(0,import_polished10.transparentize)(.6,theme.color.defaultText),"> div":{display:"inline-block",overflow:"hidden",maxWidth:"100%",textOverflow:"ellipsis"},span:{display:"block",marginTop:2}})),SwatchLabels=import_theming25.styled.div({display:"flex",flexDirection:"row"}),Swatch2=import_theming25.styled.div(({background})=>({position:"relative",flex:1,"&::before":{position:"absolute",top:0,left:0,width:"100%",height:"100%",background,content:'""'}})),SwatchColors=import_theming25.styled.div(({theme})=>({...getBlockBackgroundStyle(theme),display:"flex",flexDirection:"row",height:50,marginBottom:5,overflow:"hidden",backgroundColor:"white",backgroundImage:"repeating-linear-gradient(-45deg, #ccc, #ccc 1px, #fff 1px, #fff 16px)",backgroundClip:"padding-box"})),SwatchSpecimen=import_theming25.styled.div({display:"flex",flexDirection:"column",flex:1,position:"relative",marginBottom:30}),Swatches2=import_theming25.styled.div({flex:1,display:"flex",flexDirection:"row"}),Item=import_theming25.styled.div({display:"flex",alignItems:"flex-start"}),ListName=import_theming25.styled.div({flex:"0 0 30%"}),ListSwatches=import_theming25.styled.div({flex:1}),ListHeading=import_theming25.styled.div(({theme})=>({display:"flex",flexDirection:"row",alignItems:"center",paddingBottom:20,fontWeight:theme.typography.weight.bold,color:theme.base==="light"?(0,import_polished10.transparentize)(.4,theme.color.defaultText):(0,import_polished10.transparentize)(.6,theme.color.defaultText)})),List=import_theming25.styled.div(({theme})=>({fontSize:theme.typography.size.s2,lineHeight:"20px",display:"flex",flexDirection:"column"}));function renderSwatch(color,index){return import_react34.default.createElement(Swatch2,{key:`${color}-${index}`,title:color,background:color})}function renderSwatchLabel(color,index,colorDescription){return import_react34.default.createElement(SwatchLabel,{key:`${color}-${index}`,title:color},import_react34.default.createElement("div",null,color,colorDescription&&import_react34.default.createElement("span",null,colorDescription)))}function renderSwatchSpecimen(colors){if(Array.isArray(colors))return import_react34.default.createElement(SwatchSpecimen,null,import_react34.default.createElement(SwatchColors,null,colors.map((color,index)=>renderSwatch(color,index))),import_react34.default.createElement(SwatchLabels,null,colors.map((color,index)=>renderSwatchLabel(color,index))));let swatchElements=[],labelElements=[];for(let colorKey in colors){let colorValue=colors[colorKey];swatchElements.push(renderSwatch(colorValue,swatchElements.length)),labelElements.push(renderSwatchLabel(colorKey,labelElements.length,colorValue))}return import_react34.default.createElement(SwatchSpecimen,null,import_react34.default.createElement(SwatchColors,null,swatchElements),import_react34.default.createElement(SwatchLabels,null,labelElements))}var ColorItem=({title,subtitle,colors})=>import_react34.default.createElement(Item,null,import_react34.default.createElement(ItemDescription,null,import_react34.default.createElement(ItemTitle,null,title),import_react34.default.createElement(ItemSubtitle,null,subtitle)),import_react34.default.createElement(Swatches2,null,renderSwatchSpecimen(colors))),ColorPalette=({children,...props})=>import_react34.default.createElement(import_components22.ResetWrapper,null,import_react34.default.createElement(List,{...props,className:"docblock-colorpalette sb-unstyled"},import_react34.default.createElement(ListHeading,null,import_react34.default.createElement(ListName,null,"Name"),import_react34.default.createElement(ListSwatches,null,"Swatches")),children));var import_react35=__toESM(require("react")),import_theming26=require("@storybook/theming"),import_components23=require("@storybook/components");var ItemLabel=import_theming26.styled.div(({theme})=>({fontFamily:theme.typography.fonts.base,fontSize:theme.typography.size.s2,color:theme.color.defaultText,marginLeft:10,lineHeight:1.2})),ItemSpecimen=import_theming26.styled.div(({theme})=>({...getBlockBackgroundStyle(theme),overflow:"hidden",height:40,width:40,display:"flex",alignItems:"center",justifyContent:"center",flex:"none","> img, > svg":{width:20,height:20}})),Item2=import_theming26.styled.div({display:"inline-flex",flexDirection:"row",alignItems:"center",flex:"0 1 calc(20% - 10px)",minWidth:120,margin:"0px 10px 30px 0"}),List2=import_theming26.styled.div({display:"flex",flexFlow:"row wrap"}),IconItem=({name,children})=>import_react35.default.createElement(Item2,null,import_react35.default.createElement(ItemSpecimen,null,children),import_react35.default.createElement(ItemLabel,null,name)),IconGallery=({children,...props})=>import_react35.default.createElement(import_components23.ResetWrapper,null,import_react35.default.createElement(List2,{...props,className:"docblock-icongallery sb-unstyled"},children));var import_react36=__toESM(require("react")),anchorBlockIdFromId=storyId=>`anchor--${storyId}`,Anchor=({storyId,children})=>import_react36.default.createElement("div",{id:anchorBlockIdFromId(storyId),className:"sb-anchor"},children);var import_preview_api=require("@storybook/preview-api"),import_react39=__toESM(require("react"));var import_react38=require("react");var import_react37=require("react"),import_global5=require("@storybook/global");import_global5.global&&import_global5.global.__DOCS_CONTEXT__===void 0&&(import_global5.global.__DOCS_CONTEXT__=(0,import_react37.createContext)(null),import_global5.global.__DOCS_CONTEXT__.displayName="DocsContext");var DocsContext=import_global5.global?import_global5.global.__DOCS_CONTEXT__:(0,import_react37.createContext)(null);var useOf=(moduleExportOrType,validTypes)=>(0,import_react38.useContext)(DocsContext).resolveOf(moduleExportOrType,validTypes);var titleCase=str=>str.split("-").map(part=>part.charAt(0).toUpperCase()+part.slice(1)).join(""),getComponentName=component=>{if(component)return typeof component=="string"?component.includes("-")?titleCase(component):component:component.__docgenInfo&&component.__docgenInfo.displayName?component.__docgenInfo.displayName:component.name};function scrollToElement(element,block="start"){element.scrollIntoView({behavior:"smooth",block,inline:"nearest"})}function extractComponentArgTypes(component,parameters){let{extractArgTypes}=parameters.docs||{};if(!extractArgTypes)throw new Error("Args unsupported. See Args documentation for your framework.");return extractArgTypes(component)}function getArgTypesFromResolved(resolved){if(resolved.type==="component"){let{component:component2,projectAnnotations:{parameters:parameters2}}=resolved;return{argTypes:extractComponentArgTypes(component2,parameters2),parameters:parameters2,component:component2}}if(resolved.type==="meta"){let{preparedMeta:{argTypes:argTypes2,parameters:parameters2,component:component2,subcomponents:subcomponents2}}=resolved;return{argTypes:argTypes2,parameters:parameters2,component:component2,subcomponents:subcomponents2}}let{story:{argTypes,parameters,component,subcomponents}}=resolved;return{argTypes,parameters,component,subcomponents}}var ArgTypes=props=>{let{of}=props;if("of"in props&&of===void 0)throw new Error("Unexpected `of={undefined}`, did you mistype a CSF file reference?");let resolved=useOf(of||"meta"),{argTypes,parameters,component,subcomponents}=getArgTypesFromResolved(resolved),argTypesParameters=parameters.docs?.argTypes||{},include=props.include??argTypesParameters.include,exclude=props.exclude??argTypesParameters.exclude,sort=props.sort??argTypesParameters.sort,filteredArgTypes=(0,import_preview_api.filterArgTypes)(argTypes,include,exclude);if(!(!!subcomponents&&Object.keys(subcomponents).length>0))return import_react39.default.createElement(ArgsTable,{rows:filteredArgTypes,sort});let mainComponentName=getComponentName(component),subcomponentTabs=Object.fromEntries(Object.entries(subcomponents).map(([key,comp])=>[key,{rows:(0,import_preview_api.filterArgTypes)(extractComponentArgTypes(comp,parameters),include,exclude),sort}])),tabs={[mainComponentName]:{rows:filteredArgTypes,sort},...subcomponentTabs};return import_react39.default.createElement(TabbedArgsTable,{tabs,sort})};var import_react44=__toESM(require("react"));var import_react40=__toESM(require("react")),import_docs_tools=require("@storybook/docs-tools"),import_telejson=require("telejson");function argsHash(args){return(0,import_telejson.stringify)(args,{allowFunction:!1})}var SourceContext=(0,import_react40.createContext)({sources:{}}),UNKNOWN_ARGS_HASH="--unknown--",SourceContainer=({children,channel})=>{let[sources,setSources]=(0,import_react40.useState)({});return(0,import_react40.useEffect)(()=>{let handleSnippetRendered=(idOrEvent,inputSource=null,inputFormat=!1)=>{let{id:id2,args=void 0,source,format:format2}=typeof idOrEvent=="string"?{id:idOrEvent,source:inputSource,format:inputFormat}:idOrEvent,hash=args?argsHash(args):UNKNOWN_ARGS_HASH;setSources(current=>({...current,[id2]:{...current[id2],[hash]:{code:source,format:format2}}}))};return channel.on(import_docs_tools.SNIPPET_RENDERED,handleSnippetRendered),()=>channel.off(import_docs_tools.SNIPPET_RENDERED,handleSnippetRendered)},[]),import_react40.default.createElement(SourceContext.Provider,{value:{sources}},children)};var import_react41=__toESM(require("react")),import_docs_tools2=require("@storybook/docs-tools");var getStorySource=(storyId,args,sourceContext)=>{let{sources}=sourceContext,sourceMap=sources?.[storyId];return sourceMap?.[argsHash(args)]||sourceMap?.[UNKNOWN_ARGS_HASH]||{code:""}},getSnippet=({snippet,storyContext,typeFromProps,transformFromProps})=>{let{__isArgsStory:isArgsStory}=storyContext.parameters,sourceParameters=storyContext.parameters.docs?.source||{},type=typeFromProps||sourceParameters.type||import_docs_tools2.SourceType.AUTO;if(sourceParameters.code!==void 0)return sourceParameters.code;let code=type===import_docs_tools2.SourceType.DYNAMIC||type===import_docs_tools2.SourceType.AUTO&&snippet&&isArgsStory?snippet:sourceParameters.originalSource||"";return(transformFromProps??sourceParameters.transform)?.(code,storyContext)||code},useSourceProps=(props,docsContext,sourceContext)=>{let story,{of}=props;if("of"in props&&of===void 0)throw new Error("Unexpected `of={undefined}`, did you mistype a CSF file reference?");if(of)story=docsContext.resolveOf(of,["story"]).story;else try{story=docsContext.storyById()}catch{}let sourceParameters=story?.parameters?.docs?.source||{},{code}=props,format2=props.format??sourceParameters.format,language=props.language??sourceParameters.language??"jsx",dark=props.dark??sourceParameters.dark??!1;if(!code&&!story)return{error:"Oh no! The source is not available."};if(code)return{code,format:format2,language,dark};let storyContext=docsContext.getStoryContext(story),argsForSource=props.__forceInitialArgs?storyContext.initialArgs:storyContext.unmappedArgs,source=getStorySource(story.id,argsForSource,sourceContext);return format2=source.format??story.parameters.docs?.source?.format??!1,{code:getSnippet({snippet:source.code,storyContext:{...storyContext,args:argsForSource},typeFromProps:props.type,transformFromProps:props.transform}),format:format2,language,dark}},Source2=props=>{let sourceContext=(0,import_react41.useContext)(SourceContext),docsContext=(0,import_react41.useContext)(DocsContext),sourceProps=useSourceProps(props,docsContext,sourceContext);return import_react41.default.createElement(Source,{...sourceProps})};var import_react43=__toESM(require("react"));var import_react42=require("react");function useStory(storyId,context){let stories=useStories([storyId],context);return stories&&stories[0]}function useStories(storyIds,context){let[storiesById,setStories]=(0,import_react42.useState)({});return(0,import_react42.useEffect)(()=>{Promise.all(storyIds.map(async storyId=>{let story=await context.loadStory(storyId);setStories(current=>current[storyId]===story?current:{...current,[storyId]:story})}))}),storyIds.map(storyId=>{if(storiesById[storyId])return storiesById[storyId];try{return context.storyById(storyId)}catch{return null}})}var getStoryId2=(props,context)=>{let{of,meta}=props;if("of"in props&&of===void 0)throw new Error("Unexpected `of={undefined}`, did you mistype a CSF file reference?");return meta&&context.referenceMeta(meta,!1),context.resolveOf(of||"story",["story"]).story.id},getStoryProps=(props,story,context)=>{let{parameters={}}=story||{},{docs={}}=parameters,storyParameters=docs.story||{};if(docs.disable)return null;if(props.inline??storyParameters.inline??!1){let height2=props.height??storyParameters.height,autoplay=props.autoplay??storyParameters.autoplay??!1;return{story,inline:!0,height:height2,autoplay,forceInitialArgs:!!props.__forceInitialArgs,primary:!!props.__primary,renderStoryToElement:context.renderStoryToElement}}let height=props.height??storyParameters.height??storyParameters.iframeHeight??"100px";return{story,inline:!1,height,primary:!!props.__primary}},Story2=(props={__forceInitialArgs:!1,__primary:!1})=>{let context=(0,import_react43.useContext)(DocsContext),storyId=getStoryId2(props,context),story=useStory(storyId,context);if(!story)return import_react43.default.createElement(StorySkeleton,null);let storyProps=getStoryProps(props,story,context);return storyProps?import_react43.default.createElement(Story,{...storyProps}):null};var Canvas=props=>{let docsContext=(0,import_react44.useContext)(DocsContext),sourceContext=(0,import_react44.useContext)(SourceContext),{of,source}=props;if("of"in props&&of===void 0)throw new Error("Unexpected `of={undefined}`, did you mistype a CSF file reference?");let{story}=useOf(of||"story",["story"]),sourceProps=useSourceProps({...source,...of&&{of}},docsContext,sourceContext),layout=props.layout??story.parameters.layout??story.parameters.docs?.canvas?.layout??"padded",withToolbar=props.withToolbar??story.parameters.docs?.canvas?.withToolbar??!1,additionalActions=props.additionalActions??story.parameters.docs?.canvas?.additionalActions,sourceState=props.sourceState??story.parameters.docs?.canvas?.sourceState??"hidden",className=props.className??story.parameters.docs?.canvas?.className;return import_react44.default.createElement(Preview,{withSource:sourceState==="none"?void 0:sourceProps,isExpanded:sourceState==="shown",withToolbar,additionalActions,className,layout},import_react44.default.createElement(Story2,{of:of||story.moduleExport,meta:props.meta,...props.story}))};var import_react47=__toESM(require("react")),import_preview_api2=require("@storybook/preview-api");var import_react45=require("react"),import_core_events=require("@storybook/core-events"),useGlobals=(story,context)=>{let storyContext=context.getStoryContext(story),[globals,setGlobals]=(0,import_react45.useState)(storyContext.globals);return(0,import_react45.useEffect)(()=>{let onGlobalsUpdated=changed=>{setGlobals(changed.globals)};return context.channel.on(import_core_events.GLOBALS_UPDATED,onGlobalsUpdated),()=>context.channel.off(import_core_events.GLOBALS_UPDATED,onGlobalsUpdated)},[context.channel]),[globals]};var import_react46=require("react"),import_core_events2=require("@storybook/core-events"),useArgs=(story,context)=>{let result=useArgsIfDefined(story,context);if(!result)throw new Error("No result when story was defined");return result},useArgsIfDefined=(story,context)=>{let storyContext=story?context.getStoryContext(story):{args:{}},{id:storyId}=story||{id:"none"},[args,setArgs]=(0,import_react46.useState)(storyContext.args);(0,import_react46.useEffect)(()=>{let onArgsUpdated=changed=>{changed.storyId===storyId&&setArgs(changed.args)};return context.channel.on(import_core_events2.STORY_ARGS_UPDATED,onArgsUpdated),()=>context.channel.off(import_core_events2.STORY_ARGS_UPDATED,onArgsUpdated)},[storyId,context.channel]);let updateArgs=(0,import_react46.useCallback)(updatedArgs=>context.channel.emit(import_core_events2.UPDATE_STORY_ARGS,{storyId,updatedArgs}),[storyId,context.channel]),resetArgs=(0,import_react46.useCallback)(argNames=>context.channel.emit(import_core_events2.RESET_STORY_ARGS,{storyId,argNames}),[storyId,context.channel]);return story&&[args,updateArgs,resetArgs]};function extractComponentArgTypes2(component,parameters){let{extractArgTypes}=parameters.docs||{};if(!extractArgTypes)throw new Error("Args unsupported. See Args documentation for your framework.");return extractArgTypes(component)}var Controls3=props=>{let{of}=props;if("of"in props&&of===void 0)throw new Error("Unexpected `of={undefined}`, did you mistype a CSF file reference?");let context=(0,import_react47.useContext)(DocsContext),{story}=context.resolveOf(of||"story",["story"]),{parameters,argTypes,component,subcomponents}=story,controlsParameters=parameters.docs?.controls||{},include=props.include??controlsParameters.include,exclude=props.exclude??controlsParameters.exclude,sort=props.sort??controlsParameters.sort,[args,updateArgs,resetArgs]=useArgs(story,context),[globals]=useGlobals(story,context),filteredArgTypes=(0,import_preview_api2.filterArgTypes)(argTypes,include,exclude);if(!(!!subcomponents&&Object.keys(subcomponents).length>0))return Object.keys(filteredArgTypes).length>0||Object.keys(args).length>0?import_react47.default.createElement(ArgsTable,{rows:filteredArgTypes,sort,args,globals,updateArgs,resetArgs}):null;let mainComponentName=getComponentName(component),subcomponentTabs=Object.fromEntries(Object.entries(subcomponents).map(([key,comp])=>[key,{rows:(0,import_preview_api2.filterArgTypes)(extractComponentArgTypes2(comp,parameters),include,exclude),sort}])),tabs={[mainComponentName]:{rows:filteredArgTypes,sort},...subcomponentTabs};return import_react47.default.createElement(TabbedArgsTable,{tabs,sort,args,globals,updateArgs,resetArgs})};var import_react50=__toESM(require("react"));var import_react49=__toESM(require("react")),import_markdown_to_jsx2=__toESM(require("markdown-to-jsx")),import_ts_dedent=__toESM(require("ts-dedent"));var import_react48=__toESM(require("react")),import_core_events3=require("@storybook/core-events"),import_components28=require("@storybook/components"),import_global6=require("@storybook/global"),import_theming27=require("@storybook/theming"),import_icons9=require("@storybook/icons");var{document:document2}=import_global6.global,assertIsFn=val=>{if(typeof val!="function")throw new Error(`Expected story function, got: ${val}`);return val},AddContext=props=>{let{children,...rest}=props,parentContext=import_react48.default.useContext(DocsContext);return import_react48.default.createElement(DocsContext.Provider,{value:{...parentContext,...rest}},children)},CodeOrSourceMdx=({className,children,...rest})=>{if(typeof className!="string"&&(typeof children!="string"||!children.match(/[\n\r]/g)))return import_react48.default.createElement(import_components28.Code,null,children);let language=className&&className.split("-");return import_react48.default.createElement(Source,{language:language&&language[1]||"text",format:!1,code:children,...rest})};function navigate(context,url){context.channel.emit(import_core_events3.NAVIGATE_URL,url)}var A=import_components28.components.a,AnchorInPage=({hash,children})=>{let context=(0,import_react48.useContext)(DocsContext);return import_react48.default.createElement(A,{href:hash,target:"_self",onClick:event=>{let id2=hash.substring(1);document2.getElementById(id2)&&navigate(context,hash)}},children)},AnchorMdx=props=>{let{href,target,children,...rest}=props,context=(0,import_react48.useContext)(DocsContext);return!href||target==="_blank"||/^https?:\/\//.test(href)?import_react48.default.createElement(A,{...props}):href.startsWith("#")?import_react48.default.createElement(AnchorInPage,{hash:href},children):import_react48.default.createElement(A,{href,onClick:event=>{event.button===0&&!event.altKey&&!event.ctrlKey&&!event.metaKey&&!event.shiftKey&&(event.preventDefault(),navigate(context,event.currentTarget.getAttribute("href")))},target,...rest},children)},SUPPORTED_MDX_HEADERS=["h1","h2","h3","h4","h5","h6"],OcticonHeaders=SUPPORTED_MDX_HEADERS.reduce((acc,headerType)=>({...acc,[headerType]:(0,import_theming27.styled)(headerType)({"& svg":{position:"relative",top:"-0.1em",visibility:"hidden"},"&:hover svg":{visibility:"visible"}})}),{}),OcticonAnchor=import_theming27.styled.a(()=>({float:"left",lineHeight:"inherit",paddingRight:"10px",marginLeft:"-24px",color:"inherit"})),HeaderWithOcticonAnchor=({as,id:id2,children,...rest})=>{let context=(0,import_react48.useContext)(DocsContext),OcticonHeader=OcticonHeaders[as],hash=`#${id2}`;return import_react48.default.createElement(OcticonHeader,{id:id2,...rest},import_react48.default.createElement(OcticonAnchor,{"aria-hidden":"true",href:hash,tabIndex:-1,target:"_self",onClick:event=>{document2.getElementById(id2)&&navigate(context,hash)}},import_react48.default.createElement(import_icons9.LinkIcon,null)),children)},HeaderMdx=props=>{let{as,id:id2,children,...rest}=props;if(id2)return import_react48.default.createElement(HeaderWithOcticonAnchor,{as,id:id2,...rest},children);let Component4=as,{as:omittedAs,...withoutAs}=props;return import_react48.default.createElement(Component4,{...(0,import_components28.nameSpaceClassNames)(withoutAs,as)})},HeadersMdx=SUPPORTED_MDX_HEADERS.reduce((acc,headerType)=>({...acc,[headerType]:props=>import_react48.default.createElement(HeaderMdx,{as:headerType,...props})}),{});var Markdown2=props=>{if(!props.children)return null;if(typeof props.children!="string")throw new Error(import_ts_dedent.default`The Markdown block only accepts children as a single string, but children were of type: '${typeof props.children}'
-+var __create = Object.create;
-+var __defProp = Object.defineProperty;
-+var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-+var __getOwnPropNames = Object.getOwnPropertyNames;
-+var __getProtoOf = Object.getPrototypeOf,
-+ __hasOwnProp = Object.prototype.hasOwnProperty;
-+var __esm = (fn, res) =>
-+ function () {
-+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])((fn = 0))), res;
-+ };
-+var __export = (target, all) => {
-+ for (var name in all)
-+ __defProp(target, name, {get: all[name], enumerable: !0});
-+ },
-+ __copyProps = (to, from, except, desc) => {
-+ if ((from && typeof from == 'object') || typeof from == 'function')
-+ for (let key of __getOwnPropNames(from))
-+ !__hasOwnProp.call(to, key) &&
-+ key !== except &&
-+ __defProp(to, key, {
-+ get: () => from[key],
-+ enumerable:
-+ !(desc = __getOwnPropDesc(from, key)) || desc.enumerable,
-+ });
-+ return to;
-+ };
-+var __toESM = (mod, isNodeMode, target) => (
-+ (target = mod != null ? __create(__getProtoOf(mod)) : {}),
-+ __copyProps(
-+ isNodeMode || !mod || !mod.__esModule
-+ ? __defProp(target, 'default', {value: mod, enumerable: !0})
-+ : target,
-+ mod
-+ )
-+ ),
-+ __toCommonJS = (mod) =>
-+ __copyProps(__defProp({}, '__esModule', {value: !0}), mod);
-+var getControlId,
-+ getControlSetterButtonId,
-+ init_helpers = __esm({
-+ 'src/controls/helpers.ts'() {
-+ (getControlId = (value2) => `control-${value2.replace(/\s+/g, '-')}`),
-+ (getControlSetterButtonId = (value2) =>
-+ `set-${value2.replace(/\s+/g, '-')}`);
-+ },
-+ });
-+var Color_exports = {};
-+__export(Color_exports, {
-+ ColorControl: () => ColorControl,
-+ default: () => Color_default,
-+});
-+var import_react24,
-+ import_react_colorful,
-+ import_color_convert,
-+ import_throttle,
-+ import_theming18,
-+ import_components15,
-+ import_icons5,
-+ Wrapper8,
-+ PickerTooltip,
-+ TooltipContent,
-+ Note,
-+ Swatches,
-+ SwatchColor,
-+ swatchBackground,
-+ Swatch,
-+ Input2,
-+ ToggleIcon,
-+ ColorSpace,
-+ COLOR_SPACES,
-+ COLOR_REGEXP,
-+ RGB_REGEXP,
-+ HSL_REGEXP,
-+ HEX_REGEXP,
-+ SHORTHEX_REGEXP,
-+ ColorPicker,
-+ fallbackColor,
-+ stringToArgs,
-+ parseValue,
-+ getRealValue,
-+ useColorInput,
-+ id,
-+ usePresets,
-+ ColorControl,
-+ Color_default,
-+ init_Color = __esm({
-+ 'src/controls/Color.tsx'() {
-+ (import_react24 = __toESM(require('react'))),
-+ (import_react_colorful = require('react-colorful')),
-+ (import_color_convert = __toESM(require('color-convert'))),
-+ (import_throttle = __toESM(require('lodash/throttle.js'))),
-+ (import_theming18 = require('@storybook/theming')),
-+ (import_components15 = require('@storybook/components'));
-+ init_helpers();
-+ (import_icons5 = require('@storybook/icons')),
-+ (Wrapper8 = import_theming18.styled.div({
-+ position: 'relative',
-+ maxWidth: 250,
-+ '&[aria-readonly="true"]': {opacity: 0.5},
-+ })),
-+ (PickerTooltip = (0, import_theming18.styled)(
-+ import_components15.WithTooltip
-+ )({
-+ position: 'absolute',
-+ zIndex: 1,
-+ top: 4,
-+ left: 4,
-+ '[aria-readonly=true] &': {cursor: 'not-allowed'},
-+ })),
-+ (TooltipContent = import_theming18.styled.div({
-+ width: 200,
-+ margin: 5,
-+ '.react-colorful__saturation': {borderRadius: '4px 4px 0 0'},
-+ '.react-colorful__hue': {
-+ boxShadow: 'inset 0 0 0 1px rgb(0 0 0 / 5%)',
-+ },
-+ '.react-colorful__last-control': {borderRadius: '0 0 4px 4px'},
-+ })),
-+ (Note = (0, import_theming18.styled)(import_components15.TooltipNote)(
-+ ({theme}) => ({fontFamily: theme.typography.fonts.base})
-+ )),
-+ (Swatches = import_theming18.styled.div({
-+ display: 'grid',
-+ gridTemplateColumns: 'repeat(9, 16px)',
-+ gap: 6,
-+ padding: 3,
-+ marginTop: 5,
-+ width: 200,
-+ })),
-+ (SwatchColor = import_theming18.styled.div(({theme, active}) => ({
-+ width: 16,
-+ height: 16,
-+ boxShadow: active
-+ ? `${theme.appBorderColor} 0 0 0 1px inset, ${theme.textMutedColor}50 0 0 0 4px`
-+ : `${theme.appBorderColor} 0 0 0 1px inset`,
-+ borderRadius: theme.appBorderRadius,
-+ }))),
-+ (swatchBackground = `url('data:image/svg+xml;charset=utf-8,')`),
-+ (Swatch = ({value: value2, style, ...props}) => {
-+ let backgroundImage = `linear-gradient(${value2}, ${value2}), ${swatchBackground}, linear-gradient(#fff, #fff)`;
-+ return import_react24.default.createElement(SwatchColor, {
-+ ...props,
-+ style: {...style, backgroundImage},
-+ });
-+ }),
-+ (Input2 = (0, import_theming18.styled)(import_components15.Form.Input)(
-+ ({theme, readOnly}) => ({
-+ width: '100%',
-+ paddingLeft: 30,
-+ paddingRight: 30,
-+ boxSizing: 'border-box',
-+ fontFamily: theme.typography.fonts.base,
-+ })
-+ )),
-+ (ToggleIcon = (0, import_theming18.styled)(import_icons5.MarkupIcon)(
-+ ({theme}) => ({
-+ position: 'absolute',
-+ zIndex: 1,
-+ top: 6,
-+ right: 7,
-+ width: 20,
-+ height: 20,
-+ padding: 4,
-+ boxSizing: 'border-box',
-+ cursor: 'pointer',
-+ color: theme.input.color,
-+ })
-+ )),
-+ (ColorSpace = ((ColorSpace2) => (
-+ (ColorSpace2.RGB = 'rgb'),
-+ (ColorSpace2.HSL = 'hsl'),
-+ (ColorSpace2.HEX = 'hex'),
-+ ColorSpace2
-+ ))(ColorSpace || {})),
-+ (COLOR_SPACES = Object.values(ColorSpace)),
-+ (COLOR_REGEXP =
-+ /\(([0-9]+),\s*([0-9]+)%?,\s*([0-9]+)%?,?\s*([0-9.]+)?\)/),
-+ (RGB_REGEXP =
-+ /^\s*rgba?\(([0-9]+),\s*([0-9]+),\s*([0-9]+),?\s*([0-9.]+)?\)\s*$/i),
-+ (HSL_REGEXP =
-+ /^\s*hsla?\(([0-9]+),\s*([0-9]+)%,\s*([0-9]+)%,?\s*([0-9.]+)?\)\s*$/i),
-+ (HEX_REGEXP = /^\s*#?([0-9a-f]{3}|[0-9a-f]{6})\s*$/i),
-+ (SHORTHEX_REGEXP = /^\s*#?([0-9a-f]{3})\s*$/i),
-+ (ColorPicker = {
-+ hex: import_react_colorful.HexColorPicker,
-+ rgb: import_react_colorful.RgbaStringColorPicker,
-+ hsl: import_react_colorful.HslaStringColorPicker,
-+ }),
-+ (fallbackColor = {
-+ hex: 'transparent',
-+ rgb: 'rgba(0, 0, 0, 0)',
-+ hsl: 'hsla(0, 0%, 0%, 0)',
-+ }),
-+ (stringToArgs = (value2) => {
-+ let match = value2?.match(COLOR_REGEXP);
-+ if (!match) return [0, 0, 0, 1];
-+ let [, x, y, z, a = 1] = match;
-+ return [x, y, z, a].map(Number);
-+ }),
-+ (parseValue = (value2) => {
-+ if (!value2) return;
-+ let valid = !0;
-+ if (RGB_REGEXP.test(value2)) {
-+ let [r, g, b, a] = stringToArgs(value2),
-+ [h, s, l] = import_color_convert.default.rgb.hsl([r, g, b]) || [
-+ 0, 0, 0,
-+ ];
-+ return {
-+ valid,
-+ value: value2,
-+ keyword: import_color_convert.default.rgb.keyword([r, g, b]),
-+ colorSpace: 'rgb',
-+ rgb: value2,
-+ hsl: `hsla(${h}, ${s}%, ${l}%, ${a})`,
-+ hex: `#${import_color_convert.default.rgb.hex([r, g, b]).toLowerCase()}`,
-+ };
-+ }
-+ if (HSL_REGEXP.test(value2)) {
-+ let [h, s, l, a] = stringToArgs(value2),
-+ [r, g, b] = import_color_convert.default.hsl.rgb([h, s, l]) || [
-+ 0, 0, 0,
-+ ];
-+ return {
-+ valid,
-+ value: value2,
-+ keyword: import_color_convert.default.hsl.keyword([h, s, l]),
-+ colorSpace: 'hsl',
-+ rgb: `rgba(${r}, ${g}, ${b}, ${a})`,
-+ hsl: value2,
-+ hex: `#${import_color_convert.default.hsl.hex([h, s, l]).toLowerCase()}`,
-+ };
-+ }
-+ let plain = value2.replace('#', ''),
-+ rgb =
-+ import_color_convert.default.keyword.rgb(plain) ||
-+ import_color_convert.default.hex.rgb(plain),
-+ hsl = import_color_convert.default.rgb.hsl(rgb),
-+ mapped = value2;
-+ if (
-+ (/[^#a-f0-9]/i.test(value2)
-+ ? (mapped = plain)
-+ : HEX_REGEXP.test(value2) && (mapped = `#${plain}`),
-+ mapped.startsWith('#'))
-+ )
-+ valid = HEX_REGEXP.test(mapped);
-+ else
-+ try {
-+ import_color_convert.default.keyword.hex(mapped);
-+ } catch {
-+ valid = !1;
-+ }
-+ return {
-+ valid,
-+ value: mapped,
-+ keyword: import_color_convert.default.rgb.keyword(rgb),
-+ colorSpace: 'hex',
-+ rgb: `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, 1)`,
-+ hsl: `hsla(${hsl[0]}, ${hsl[1]}%, ${hsl[2]}%, 1)`,
-+ hex: mapped,
-+ };
-+ }),
-+ (getRealValue = (value2, color, colorSpace) => {
-+ if (!value2 || !color?.valid) return fallbackColor[colorSpace];
-+ if (colorSpace !== 'hex')
-+ return color?.[colorSpace] || fallbackColor[colorSpace];
-+ if (!color.hex.startsWith('#'))
-+ try {
-+ return `#${import_color_convert.default.keyword.hex(color.hex)}`;
-+ } catch {
-+ return fallbackColor.hex;
-+ }
-+ let short = color.hex.match(SHORTHEX_REGEXP);
-+ if (!short)
-+ return HEX_REGEXP.test(color.hex) ? color.hex : fallbackColor.hex;
-+ let [r, g, b] = short[1].split('');
-+ return `#${r}${r}${g}${g}${b}${b}`;
-+ }),
-+ (useColorInput = (initialValue, onChange) => {
-+ let [value2, setValue] = (0, import_react24.useState)(
-+ initialValue || ''
-+ ),
-+ [color, setColor] = (0, import_react24.useState)(() =>
-+ parseValue(value2)
-+ ),
-+ [colorSpace, setColorSpace] = (0, import_react24.useState)(
-+ color?.colorSpace || 'hex'
-+ );
-+ (0, import_react24.useEffect)(() => {
-+ let nextValue = initialValue || '',
-+ nextColor = parseValue(nextValue);
-+ setValue(nextValue),
-+ setColor(nextColor),
-+ setColorSpace(nextColor?.colorSpace || 'hex');
-+ }, [initialValue]);
-+ let realValue = (0, import_react24.useMemo)(
-+ () => getRealValue(value2, color, colorSpace).toLowerCase(),
-+ [value2, color, colorSpace]
-+ ),
-+ updateValue = (0, import_react24.useCallback)(
-+ (update) => {
-+ let parsed = parseValue(update),
-+ v = parsed?.value || update || '';
-+ setValue(v),
-+ v === '' && (setColor(void 0), onChange(void 0)),
-+ parsed &&
-+ (setColor(parsed),
-+ setColorSpace(parsed.colorSpace),
-+ onChange(parsed.value));
-+ },
-+ [onChange]
-+ ),
-+ cycleColorSpace = (0, import_react24.useCallback)(() => {
-+ let next = COLOR_SPACES.indexOf(colorSpace) + 1;
-+ next >= COLOR_SPACES.length && (next = 0),
-+ setColorSpace(COLOR_SPACES[next]);
-+ let update = color?.[COLOR_SPACES[next]] || '';
-+ setValue(update), onChange(update);
-+ }, [color, colorSpace, onChange]);
-+ return {
-+ value: value2,
-+ realValue,
-+ updateValue,
-+ color,
-+ colorSpace,
-+ cycleColorSpace,
-+ };
-+ }),
-+ (id = (value2) => value2.replace(/\s*/, '').toLowerCase()),
-+ (usePresets = (presetColors, currentColor, colorSpace) => {
-+ let [selectedColors, setSelectedColors] = (0,
-+ import_react24.useState)(currentColor?.valid ? [currentColor] : []);
-+ (0, import_react24.useEffect)(() => {
-+ currentColor === void 0 && setSelectedColors([]);
-+ }, [currentColor]);
-+ let presets = (0, import_react24.useMemo)(
-+ () =>
-+ (presetColors || [])
-+ .map((preset) =>
-+ typeof preset == 'string'
-+ ? parseValue(preset)
-+ : preset.title
-+ ? {...parseValue(preset.color), keyword: preset.title}
-+ : parseValue(preset.color)
-+ )
-+ .concat(selectedColors)
-+ .filter(Boolean)
-+ .slice(-27),
-+ [presetColors, selectedColors]
-+ ),
-+ addPreset = (0, import_react24.useCallback)(
-+ (color) => {
-+ color?.valid &&
-+ (presets.some(
-+ (preset) => id(preset[colorSpace]) === id(color[colorSpace])
-+ ) ||
-+ setSelectedColors((arr) => arr.concat(color)));
-+ },
-+ [colorSpace, presets]
-+ );
-+ return {presets, addPreset};
-+ }),
-+ (ColorControl = ({
-+ name,
-+ value: initialValue,
-+ onChange,
-+ onFocus,
-+ onBlur,
-+ presetColors,
-+ startOpen = !1,
-+ argType,
-+ }) => {
-+ let throttledOnChange = (0, import_react24.useCallback)(
-+ (0, import_throttle.default)(onChange, 200),
-+ [onChange]
-+ ),
-+ {
-+ value: value2,
-+ realValue,
-+ updateValue,
-+ color,
-+ colorSpace,
-+ cycleColorSpace,
-+ } = useColorInput(initialValue, throttledOnChange),
-+ {presets, addPreset} = usePresets(presetColors, color, colorSpace),
-+ Picker = ColorPicker[colorSpace],
-+ readonly = !!argType?.table?.readonly;
-+ return import_react24.default.createElement(
-+ Wrapper8,
-+ {'aria-readonly': readonly},
-+ import_react24.default.createElement(
-+ PickerTooltip,
-+ {
-+ startOpen,
-+ trigger: readonly ? [null] : void 0,
-+ closeOnOutsideClick: !0,
-+ onVisibleChange: () => addPreset(color),
-+ tooltip: import_react24.default.createElement(
-+ TooltipContent,
-+ null,
-+ import_react24.default.createElement(Picker, {
-+ color: realValue === 'transparent' ? '#000000' : realValue,
-+ onChange: updateValue,
-+ onFocus,
-+ onBlur,
-+ }),
-+ presets.length > 0 &&
-+ import_react24.default.createElement(
-+ Swatches,
-+ null,
-+ presets.map((preset, index) =>
-+ import_react24.default.createElement(
-+ import_components15.WithTooltip,
-+ {
-+ key: `${preset.value}-${index}`,
-+ hasChrome: !1,
-+ tooltip: import_react24.default.createElement(
-+ Note,
-+ {note: preset.keyword || preset.value}
-+ ),
-+ },
-+ import_react24.default.createElement(Swatch, {
-+ value: preset[colorSpace],
-+ active:
-+ color &&
-+ id(preset[colorSpace]) === id(color[colorSpace]),
-+ onClick: () => updateValue(preset.value),
-+ })
-+ )
-+ )
-+ )
-+ ),
-+ },
-+ import_react24.default.createElement(Swatch, {
-+ value: realValue,
-+ style: {margin: 4},
-+ })
-+ ),
-+ import_react24.default.createElement(Input2, {
-+ id: getControlId(name),
-+ value: value2,
-+ onChange: (e) => updateValue(e.target.value),
-+ onFocus: (e) => e.target.select(),
-+ readOnly: readonly,
-+ placeholder: 'Choose color...',
-+ }),
-+ value2
-+ ? import_react24.default.createElement(ToggleIcon, {
-+ onClick: cycleColorSpace,
-+ })
-+ : null
-+ );
-+ }),
-+ (Color_default = ColorControl);
-+ },
-+ });
-+var src_exports = {};
-+__export(src_exports, {
-+ AddContext: () => AddContext,
-+ Anchor: () => Anchor,
-+ AnchorMdx: () => AnchorMdx,
-+ ArgTypes: () => ArgTypes,
-+ BooleanControl: () => BooleanControl,
-+ Canvas: () => Canvas,
-+ CodeOrSourceMdx: () => CodeOrSourceMdx,
-+ ColorControl: () => ColorControl2,
-+ ColorItem: () => ColorItem,
-+ ColorPalette: () => ColorPalette,
-+ Controls: () => Controls3,
-+ DateControl: () => DateControl,
-+ Description: () => DescriptionContainer,
-+ DescriptionType: () => DescriptionType,
-+ Docs: () => Docs,
-+ DocsContainer: () => DocsContainer,
-+ DocsContext: () => DocsContext,
-+ DocsPage: () => DocsPage,
-+ DocsStory: () => DocsStory,
-+ ExternalDocs: () => ExternalDocs,
-+ ExternalDocsContainer: () => ExternalDocsContainer,
-+ FilesControl: () => FilesControl,
-+ HeaderMdx: () => HeaderMdx,
-+ HeadersMdx: () => HeadersMdx,
-+ Heading: () => Heading2,
-+ IconGallery: () => IconGallery,
-+ IconItem: () => IconItem,
-+ Markdown: () => Markdown2,
-+ Meta: () => Meta,
-+ NumberControl: () => NumberControl,
-+ ObjectControl: () => ObjectControl,
-+ OptionsControl: () => OptionsControl,
-+ PRIMARY_STORY: () => PRIMARY_STORY,
-+ Primary: () => Primary,
-+ PureArgsTable: () => ArgsTable,
-+ RangeControl: () => RangeControl,
-+ Source: () => Source2,
-+ SourceContainer: () => SourceContainer,
-+ SourceContext: () => SourceContext,
-+ Stories: () => Stories,
-+ Story: () => Story2,
-+ Subheading: () => Subheading,
-+ Subtitle: () => Subtitle2,
-+ TextControl: () => TextControl,
-+ Title: () => Title2,
-+ Typeset: () => Typeset,
-+ UNKNOWN_ARGS_HASH: () => UNKNOWN_ARGS_HASH,
-+ Unstyled: () => Unstyled,
-+ Wrapper: () => Wrapper12,
-+ anchorBlockIdFromId: () => anchorBlockIdFromId,
-+ argsHash: () => argsHash,
-+ assertIsFn: () => assertIsFn,
-+ extractTitle: () => extractTitle,
-+ format: () => format,
-+ formatDate: () => formatDate,
-+ formatTime: () => formatTime,
-+ getStoryId: () => getStoryId2,
-+ getStoryProps: () => getStoryProps,
-+ parse: () => parse2,
-+ parseDate: () => parseDate,
-+ parseTime: () => parseTime,
-+ useOf: () => useOf,
-+ useSourceProps: () => useSourceProps,
-+});
-+module.exports = __toCommonJS(src_exports);
-+var import_react2 = __toESM(require('react')),
-+ import_theming2 = require('@storybook/theming'),
-+ import_components2 = require('@storybook/components');
-+var import_react = __toESM(require('react')),
-+ import_polished = require('polished'),
-+ import_theming = require('@storybook/theming'),
-+ import_components = require('@storybook/components'),
-+ Wrapper = import_theming.styled.div(
-+ import_components.withReset,
-+ ({theme}) => ({
-+ backgroundColor:
-+ theme.base === 'light' ? 'rgba(0,0,0,.01)' : 'rgba(255,255,255,.01)',
-+ borderRadius: theme.appBorderRadius,
-+ border: `1px dashed ${theme.appBorderColor}`,
-+ display: 'flex',
-+ alignItems: 'center',
-+ justifyContent: 'center',
-+ padding: 20,
-+ margin: '25px 0 40px',
-+ color: (0, import_polished.transparentize)(0.3, theme.color.defaultText),
-+ fontSize: theme.typography.size.s2,
-+ })
-+ ),
-+ EmptyBlock = (props) =>
-+ import_react.default.createElement(Wrapper, {
-+ ...props,
-+ className: 'docblock-emptyblock sb-unstyled',
-+ });
-+var StyledSyntaxHighlighter = (0, import_theming2.styled)(
-+ import_components2.SyntaxHighlighter
-+)(({theme}) => ({
-+ fontSize: `${theme.typography.size.s2 - 1}px`,
-+ lineHeight: '19px',
-+ margin: '25px 0 40px',
-+ borderRadius: theme.appBorderRadius,
-+ boxShadow:
-+ theme.base === 'light'
-+ ? 'rgba(0, 0, 0, 0.10) 0 1px 3px 0'
-+ : 'rgba(0, 0, 0, 0.20) 0 2px 5px 0',
-+ 'pre.prismjs': {padding: 20, background: 'inherit'},
-+}));
-+var SourceSkeletonWrapper = import_theming2.styled.div(({theme}) => ({
-+ background: theme.background.content,
-+ borderRadius: theme.appBorderRadius,
-+ border: `1px solid ${theme.appBorderColor}`,
-+ boxShadow:
-+ theme.base === 'light'
-+ ? 'rgba(0, 0, 0, 0.10) 0 1px 3px 0'
-+ : 'rgba(0, 0, 0, 0.20) 0 2px 5px 0',
-+ margin: '25px 0 40px',
-+ padding: '20px 20px 20px 22px',
-+ })),
-+ SourceSkeletonPlaceholder = import_theming2.styled.div(({theme}) => ({
-+ animation: `${theme.animation.glow} 1.5s ease-in-out infinite`,
-+ background: theme.appBorderColor,
-+ height: 17,
-+ marginTop: 1,
-+ width: '60%',
-+ [`&:first-child${import_theming2.ignoreSsrWarning}`]: {margin: 0},
-+ })),
-+ SourceSkeleton = () =>
-+ import_react2.default.createElement(
-+ SourceSkeletonWrapper,
-+ null,
-+ import_react2.default.createElement(SourceSkeletonPlaceholder, null),
-+ import_react2.default.createElement(SourceSkeletonPlaceholder, {
-+ style: {width: '80%'},
-+ }),
-+ import_react2.default.createElement(SourceSkeletonPlaceholder, {
-+ style: {width: '30%'},
-+ }),
-+ import_react2.default.createElement(SourceSkeletonPlaceholder, {
-+ style: {width: '80%'},
-+ })
-+ ),
-+ Source = ({
-+ isLoading,
-+ error,
-+ language,
-+ code,
-+ dark,
-+ format: format2 = !1,
-+ ...rest
-+ }) => {
-+ let {typography} = (0, import_theming2.useTheme)();
-+ if (isLoading)
-+ return import_react2.default.createElement(SourceSkeleton, null);
-+ if (error)
-+ return import_react2.default.createElement(EmptyBlock, null, error);
-+ let syntaxHighlighter = import_react2.default.createElement(
-+ StyledSyntaxHighlighter,
-+ {
-+ bordered: !0,
-+ copyable: !0,
-+ format: format2,
-+ language,
-+ className: 'docblock-source sb-unstyled',
-+ ...rest,
-+ },
-+ code
-+ );
-+ if (typeof dark > 'u') return syntaxHighlighter;
-+ let overrideTheme = dark
-+ ? import_theming2.themes.dark
-+ : import_theming2.themes.light;
-+ return import_react2.default.createElement(
-+ import_theming2.ThemeProvider,
-+ {
-+ theme: (0, import_theming2.convert)({
-+ ...overrideTheme,
-+ fontCode: typography.fonts.mono,
-+ fontBase: typography.fonts.base,
-+ }),
-+ },
-+ syntaxHighlighter
-+ );
-+ };
-+var import_react3 = __toESM(require('react')),
-+ import_polished2 = require('polished'),
-+ import_components3 = require('@storybook/components'),
-+ import_theming3 = require('@storybook/theming'),
-+ toGlobalSelector = (element) =>
-+ `& :where(${element}:not(.sb-anchor, .sb-unstyled, .sb-unstyled ${element}))`,
-+ breakpoint = 600,
-+ Title = import_theming3.styled.h1(
-+ import_components3.withReset,
-+ ({theme}) => ({
-+ color: theme.color.defaultText,
-+ fontSize: theme.typography.size.m3,
-+ fontWeight: theme.typography.weight.bold,
-+ lineHeight: '32px',
-+ [`@media (min-width: ${breakpoint}px)`]: {
-+ fontSize: theme.typography.size.l1,
-+ lineHeight: '36px',
-+ marginBottom: '16px',
-+ },
-+ })
-+ ),
-+ Subtitle = import_theming3.styled.h2(
-+ import_components3.withReset,
-+ ({theme}) => ({
-+ fontWeight: theme.typography.weight.regular,
-+ fontSize: theme.typography.size.s3,
-+ lineHeight: '20px',
-+ borderBottom: 'none',
-+ marginBottom: 15,
-+ [`@media (min-width: ${breakpoint}px)`]: {
-+ fontSize: theme.typography.size.m1,
-+ lineHeight: '28px',
-+ marginBottom: 24,
-+ },
-+ color: (0, import_polished2.transparentize)(
-+ 0.25,
-+ theme.color.defaultText
-+ ),
-+ })
-+ ),
-+ DocsContent = import_theming3.styled.div(({theme}) => {
-+ let reset = {
-+ fontFamily: theme.typography.fonts.base,
-+ fontSize: theme.typography.size.s3,
-+ margin: 0,
-+ WebkitFontSmoothing: 'antialiased',
-+ MozOsxFontSmoothing: 'grayscale',
-+ WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)',
-+ WebkitOverflowScrolling: 'touch',
-+ },
-+ headers = {
-+ margin: '20px 0 8px',
-+ padding: 0,
-+ cursor: 'text',
-+ position: 'relative',
-+ color: theme.color.defaultText,
-+ '&:first-of-type': {marginTop: 0, paddingTop: 0},
-+ '&:hover a.anchor': {textDecoration: 'none'},
-+ '& code': {fontSize: 'inherit'},
-+ },
-+ code = {
-+ lineHeight: 1,
-+ margin: '0 2px',
-+ padding: '3px 5px',
-+ whiteSpace: 'nowrap',
-+ borderRadius: 3,
-+ fontSize: theme.typography.size.s2 - 1,
-+ border:
-+ theme.base === 'light'
-+ ? `1px solid ${theme.color.mediumlight}`
-+ : `1px solid ${theme.color.darker}`,
-+ color:
-+ theme.base === 'light'
-+ ? (0, import_polished2.transparentize)(0.1, theme.color.defaultText)
-+ : (0, import_polished2.transparentize)(
-+ 0.3,
-+ theme.color.defaultText
-+ ),
-+ backgroundColor:
-+ theme.base === 'light' ? theme.color.lighter : theme.color.border,
-+ };
-+ return {
-+ maxWidth: 1e3,
-+ width: '100%',
-+ [toGlobalSelector('a')]: {
-+ ...reset,
-+ fontSize: 'inherit',
-+ lineHeight: '24px',
-+ color: theme.color.secondary,
-+ textDecoration: 'none',
-+ '&.absent': {color: '#cc0000'},
-+ '&.anchor': {
-+ display: 'block',
-+ paddingLeft: 30,
-+ marginLeft: -30,
-+ cursor: 'pointer',
-+ position: 'absolute',
-+ top: 0,
-+ left: 0,
-+ bottom: 0,
-+ },
-+ },
-+ [toGlobalSelector('blockquote')]: {
-+ ...reset,
-+ margin: '16px 0',
-+ borderLeft: `4px solid ${theme.color.medium}`,
-+ padding: '0 15px',
-+ color: theme.color.dark,
-+ '& > :first-of-type': {marginTop: 0},
-+ '& > :last-child': {marginBottom: 0},
-+ },
-+ [toGlobalSelector('div')]: reset,
-+ [toGlobalSelector('dl')]: {
-+ ...reset,
-+ margin: '16px 0',
-+ padding: 0,
-+ '& dt': {
-+ fontSize: '14px',
-+ fontWeight: 'bold',
-+ fontStyle: 'italic',
-+ padding: 0,
-+ margin: '16px 0 4px',
-+ },
-+ '& dt:first-of-type': {padding: 0},
-+ '& dt > :first-of-type': {marginTop: 0},
-+ '& dt > :last-child': {marginBottom: 0},
-+ '& dd': {margin: '0 0 16px', padding: '0 15px'},
-+ '& dd > :first-of-type': {marginTop: 0},
-+ '& dd > :last-child': {marginBottom: 0},
-+ },
-+ [toGlobalSelector('h1')]: {
-+ ...reset,
-+ ...headers,
-+ fontSize: `${theme.typography.size.l1}px`,
-+ fontWeight: theme.typography.weight.bold,
-+ },
-+ [toGlobalSelector('h2')]: {
-+ ...reset,
-+ ...headers,
-+ fontSize: `${theme.typography.size.m2}px`,
-+ paddingBottom: 4,
-+ borderBottom: `1px solid ${theme.appBorderColor}`,
-+ },
-+ [toGlobalSelector('h3')]: {
-+ ...reset,
-+ ...headers,
-+ fontSize: `${theme.typography.size.m1}px`,
-+ fontWeight: theme.typography.weight.bold,
-+ },
-+ [toGlobalSelector('h4')]: {
-+ ...reset,
-+ ...headers,
-+ fontSize: `${theme.typography.size.s3}px`,
-+ },
-+ [toGlobalSelector('h5')]: {
-+ ...reset,
-+ ...headers,
-+ fontSize: `${theme.typography.size.s2}px`,
-+ },
-+ [toGlobalSelector('h6')]: {
-+ ...reset,
-+ ...headers,
-+ fontSize: `${theme.typography.size.s2}px`,
-+ color: theme.color.dark,
-+ },
-+ [toGlobalSelector('hr')]: {
-+ border: '0 none',
-+ borderTop: `1px solid ${theme.appBorderColor}`,
-+ height: 4,
-+ padding: 0,
-+ },
-+ [toGlobalSelector('img')]: {maxWidth: '100%'},
-+ [toGlobalSelector('li')]: {
-+ ...reset,
-+ fontSize: theme.typography.size.s2,
-+ color: theme.color.defaultText,
-+ lineHeight: '24px',
-+ '& + li': {marginTop: '.25em'},
-+ '& ul, & ol': {marginTop: '.25em', marginBottom: 0},
-+ '& code': code,
-+ },
-+ [toGlobalSelector('ol')]: {
-+ ...reset,
-+ margin: '16px 0',
-+ paddingLeft: 30,
-+ '& :first-of-type': {marginTop: 0},
-+ '& :last-child': {marginBottom: 0},
-+ },
-+ [toGlobalSelector('p')]: {
-+ ...reset,
-+ margin: '16px 0',
-+ fontSize: theme.typography.size.s2,
-+ lineHeight: '24px',
-+ color: theme.color.defaultText,
-+ '& code': code,
-+ },
-+ [toGlobalSelector('pre')]: {
-+ ...reset,
-+ fontFamily: theme.typography.fonts.mono,
-+ WebkitFontSmoothing: 'antialiased',
-+ MozOsxFontSmoothing: 'grayscale',
-+ lineHeight: '18px',
-+ padding: '11px 1rem',
-+ whiteSpace: 'pre-wrap',
-+ color: 'inherit',
-+ borderRadius: 3,
-+ margin: '1rem 0',
-+ '&:not(.prismjs)': {
-+ background: 'transparent',
-+ border: 'none',
-+ borderRadius: 0,
-+ padding: 0,
-+ margin: 0,
-+ },
-+ '& pre, &.prismjs': {
-+ padding: 15,
-+ margin: 0,
-+ whiteSpace: 'pre-wrap',
-+ color: 'inherit',
-+ fontSize: '13px',
-+ lineHeight: '19px',
-+ code: {color: 'inherit', fontSize: 'inherit'},
-+ },
-+ '& code': {whiteSpace: 'pre'},
-+ '& code, & tt': {border: 'none'},
-+ },
-+ [toGlobalSelector('span')]: {
-+ ...reset,
-+ '&.frame': {
-+ display: 'block',
-+ overflow: 'hidden',
-+ '& > span': {
-+ border: `1px solid ${theme.color.medium}`,
-+ display: 'block',
-+ float: 'left',
-+ overflow: 'hidden',
-+ margin: '13px 0 0',
-+ padding: 7,
-+ width: 'auto',
-+ },
-+ '& span img': {display: 'block', float: 'left'},
-+ '& span span': {
-+ clear: 'both',
-+ color: theme.color.darkest,
-+ display: 'block',
-+ padding: '5px 0 0',
-+ },
-+ },
-+ '&.align-center': {
-+ display: 'block',
-+ overflow: 'hidden',
-+ clear: 'both',
-+ '& > span': {
-+ display: 'block',
-+ overflow: 'hidden',
-+ margin: '13px auto 0',
-+ textAlign: 'center',
-+ },
-+ '& span img': {margin: '0 auto', textAlign: 'center'},
-+ },
-+ '&.align-right': {
-+ display: 'block',
-+ overflow: 'hidden',
-+ clear: 'both',
-+ '& > span': {
-+ display: 'block',
-+ overflow: 'hidden',
-+ margin: '13px 0 0',
-+ textAlign: 'right',
-+ },
-+ '& span img': {margin: 0, textAlign: 'right'},
-+ },
-+ '&.float-left': {
-+ display: 'block',
-+ marginRight: 13,
-+ overflow: 'hidden',
-+ float: 'left',
-+ '& span': {margin: '13px 0 0'},
-+ },
-+ '&.float-right': {
-+ display: 'block',
-+ marginLeft: 13,
-+ overflow: 'hidden',
-+ float: 'right',
-+ '& > span': {
-+ display: 'block',
-+ overflow: 'hidden',
-+ margin: '13px auto 0',
-+ textAlign: 'right',
-+ },
-+ },
-+ },
-+ [toGlobalSelector('table')]: {
-+ ...reset,
-+ margin: '16px 0',
-+ fontSize: theme.typography.size.s2,
-+ lineHeight: '24px',
-+ padding: 0,
-+ borderCollapse: 'collapse',
-+ '& tr': {
-+ borderTop: `1px solid ${theme.appBorderColor}`,
-+ backgroundColor: theme.appContentBg,
-+ margin: 0,
-+ padding: 0,
-+ },
-+ '& tr:nth-of-type(2n)': {
-+ backgroundColor:
-+ theme.base === 'dark' ? theme.color.darker : theme.color.lighter,
-+ },
-+ '& tr th': {
-+ fontWeight: 'bold',
-+ color: theme.color.defaultText,
-+ border: `1px solid ${theme.appBorderColor}`,
-+ margin: 0,
-+ padding: '6px 13px',
-+ },
-+ '& tr td': {
-+ border: `1px solid ${theme.appBorderColor}`,
-+ color: theme.color.defaultText,
-+ margin: 0,
-+ padding: '6px 13px',
-+ },
-+ '& tr th :first-of-type, & tr td :first-of-type': {marginTop: 0},
-+ '& tr th :last-child, & tr td :last-child': {marginBottom: 0},
-+ },
-+ [toGlobalSelector('ul')]: {
-+ ...reset,
-+ margin: '16px 0',
-+ paddingLeft: 30,
-+ '& :first-of-type': {marginTop: 0},
-+ '& :last-child': {marginBottom: 0},
-+ listStyle: 'disc',
-+ },
-+ };
-+ }),
-+ DocsWrapper = import_theming3.styled.div(({theme}) => ({
-+ background: theme.background.content,
-+ display: 'flex',
-+ justifyContent: 'center',
-+ padding: '4rem 20px',
-+ minHeight: '100vh',
-+ boxSizing: 'border-box',
-+ gap: '3rem',
-+ [`@media (min-width: ${breakpoint}px)`]: {},
-+ })),
-+ DocsPageWrapper = ({children, toc}) =>
-+ import_react3.default.createElement(
-+ DocsWrapper,
-+ {className: 'sbdocs sbdocs-wrapper'},
-+ import_react3.default.createElement(
-+ DocsContent,
-+ {className: 'sbdocs sbdocs-content'},
-+ children
-+ ),
-+ toc
-+ );
-+var import_react8 = __toESM(require('react')),
-+ import_polished3 = require('polished'),
-+ import_theming5 = require('@storybook/theming'),
-+ import_global3 = require('@storybook/global'),
-+ import_components6 = require('@storybook/components');
-+var getBlockBackgroundStyle = (theme) => ({
-+ borderRadius: theme.appBorderRadius,
-+ background: theme.background.content,
-+ boxShadow:
-+ theme.base === 'light'
-+ ? 'rgba(0, 0, 0, 0.10) 0 1px 3px 0'
-+ : 'rgba(0, 0, 0, 0.20) 0 2px 5px 0',
-+ border: `1px solid ${theme.appBorderColor}`,
-+});
-+var import_react4 = __toESM(require('react')),
-+ import_theming4 = require('@storybook/theming'),
-+ import_components4 = require('@storybook/components'),
-+ import_icons = require('@storybook/icons'),
-+ Bar = (0, import_theming4.styled)(import_components4.FlexBar)({
-+ position: 'absolute',
-+ left: 0,
-+ right: 0,
-+ top: 0,
-+ transition: 'transform .2s linear',
-+ }),
-+ Wrapper2 = import_theming4.styled.div({
-+ display: 'flex',
-+ alignItems: 'center',
-+ gap: 4,
-+ }),
-+ IconPlaceholder = import_theming4.styled.div(({theme}) => ({
-+ width: 14,
-+ height: 14,
-+ borderRadius: 2,
-+ margin: '0 7px',
-+ backgroundColor: theme.appBorderColor,
-+ animation: `${theme.animation.glow} 1.5s ease-in-out infinite`,
-+ })),
-+ Toolbar = ({isLoading, storyId, baseUrl, zoom, resetZoom, ...rest}) =>
-+ import_react4.default.createElement(
-+ Bar,
-+ {...rest},
-+ import_react4.default.createElement(
-+ Wrapper2,
-+ {key: 'left'},
-+ isLoading
-+ ? [1, 2, 3].map((key) =>
-+ import_react4.default.createElement(IconPlaceholder, {key})
-+ )
-+ : import_react4.default.createElement(
-+ import_react4.default.Fragment,
-+ null,
-+ import_react4.default.createElement(
-+ import_components4.IconButton,
-+ {
-+ key: 'zoomin',
-+ onClick: (e) => {
-+ e.preventDefault(), zoom(0.8);
-+ },
-+ title: 'Zoom in',
-+ },
-+ import_react4.default.createElement(import_icons.ZoomIcon, null)
-+ ),
-+ import_react4.default.createElement(
-+ import_components4.IconButton,
-+ {
-+ key: 'zoomout',
-+ onClick: (e) => {
-+ e.preventDefault(), zoom(1.25);
-+ },
-+ title: 'Zoom out',
-+ },
-+ import_react4.default.createElement(
-+ import_icons.ZoomOutIcon,
-+ null
-+ )
-+ ),
-+ import_react4.default.createElement(
-+ import_components4.IconButton,
-+ {
-+ key: 'zoomreset',
-+ onClick: (e) => {
-+ e.preventDefault(), resetZoom();
-+ },
-+ title: 'Reset zoom',
-+ },
-+ import_react4.default.createElement(
-+ import_icons.ZoomResetIcon,
-+ null
-+ )
-+ )
-+ )
-+ )
-+ );
-+var import_react5 = require('react'),
-+ ZoomContext = (0, import_react5.createContext)({scale: 1});
-+var import_global2 = require('@storybook/global'),
-+ import_react7 = __toESM(require('react')),
-+ import_components5 = require('@storybook/components');
-+var import_react6 = __toESM(require('react')),
-+ import_global = require('@storybook/global'),
-+ {window: globalWindow} = import_global.global,
-+ IFrame = class extends import_react6.Component {
-+ constructor() {
-+ super(...arguments);
-+ this.iframe = null;
-+ }
-+ componentDidMount() {
-+ let {id: id2} = this.props;
-+ this.iframe = globalWindow.document.getElementById(id2);
-+ }
-+ shouldComponentUpdate(nextProps) {
-+ let {scale} = nextProps;
-+ return (
-+ scale !== this.props.scale &&
-+ this.setIframeBodyStyle({
-+ width: `${scale * 100}%`,
-+ height: `${scale * 100}%`,
-+ transform: `scale(${1 / scale})`,
-+ transformOrigin: 'top left',
-+ }),
-+ !1
-+ );
-+ }
-+ setIframeBodyStyle(style) {
-+ return Object.assign(this.iframe.contentDocument.body.style, style);
-+ }
-+ render() {
-+ let {id: id2, title, src, allowFullScreen, scale, ...rest} = this.props;
-+ return import_react6.default.createElement('iframe', {
-+ id: id2,
-+ title,
-+ src,
-+ ...(allowFullScreen ? {allow: 'fullscreen'} : {}),
-+ loading: 'lazy',
-+ ...rest,
-+ });
-+ }
-+ };
-+var {PREVIEW_URL} = import_global2.global,
-+ BASE_URL = PREVIEW_URL || 'iframe.html',
-+ storyBlockIdFromId = ({story, primary}) =>
-+ `story--${story.id}${primary ? '--primary' : ''}`,
-+ InlineStory = (props) => {
-+ let storyRef = (0, import_react7.useRef)(),
-+ [showLoader, setShowLoader] = (0, import_react7.useState)(!0),
-+ [error, setError] = (0, import_react7.useState)(),
-+ {story, height, autoplay, forceInitialArgs, renderStoryToElement} = props;
-+ return (
-+ (0, import_react7.useEffect)(() => {
-+ if (!(story && storyRef.current)) return () => {};
-+ let element = storyRef.current,
-+ cleanup = renderStoryToElement(
-+ story,
-+ element,
-+ {
-+ showMain: () => {},
-+ showError: ({title, description}) =>
-+ setError(new Error(`${title} - ${description}`)),
-+ showException: (err) => setError(err),
-+ },
-+ {autoplay, forceInitialArgs}
-+ );
-+ return (
-+ setShowLoader(!1),
-+ () => {
-+ Promise.resolve().then(() => cleanup());
-+ }
-+ );
-+ }, [autoplay, renderStoryToElement, story]),
-+ error
-+ ? import_react7.default.createElement(
-+ 'pre',
-+ null,
-+ import_react7.default.createElement(
-+ import_components5.ErrorFormatter,
-+ {error}
-+ )
-+ )
-+ : import_react7.default.createElement(
-+ import_react7.default.Fragment,
-+ null,
-+ height
-+ ? import_react7.default.createElement(
-+ 'style',
-+ null,
-+ `#${storyBlockIdFromId(props)} { min-height: ${height}; transform: translateZ(0); overflow: auto }`
-+ )
-+ : null,
-+ showLoader &&
-+ import_react7.default.createElement(StorySkeleton, null),
-+ import_react7.default.createElement('div', {
-+ ref: storyRef,
-+ id: `${storyBlockIdFromId(props)}-inner`,
-+ 'data-name': story.name,
-+ })
-+ )
-+ );
-+ },
-+ IFrameStory = ({story, height = '500px'}) =>
-+ import_react7.default.createElement(
-+ 'div',
-+ {style: {width: '100%', height}},
-+ import_react7.default.createElement(
-+ ZoomContext.Consumer,
-+ null,
-+ ({scale}) =>
-+ import_react7.default.createElement(IFrame, {
-+ key: 'iframe',
-+ id: `iframe--${story.id}`,
-+ title: story.name,
-+ src: (0, import_components5.getStoryHref)(BASE_URL, story.id, {
-+ viewMode: 'story',
-+ }),
-+ allowFullScreen: !0,
-+ scale,
-+ style: {width: '100%', height: '100%', border: '0 none'},
-+ })
-+ )
-+ ),
-+ Story = (props) => {
-+ let {inline} = props;
-+ return import_react7.default.createElement(
-+ 'div',
-+ {
-+ id: storyBlockIdFromId(props),
-+ className: 'sb-story sb-unstyled',
-+ 'data-story-block': 'true',
-+ },
-+ inline
-+ ? import_react7.default.createElement(InlineStory, {...props})
-+ : import_react7.default.createElement(IFrameStory, {...props})
-+ );
-+ },
-+ StorySkeleton = () =>
-+ import_react7.default.createElement(import_components5.Loader, null);
-+var ChildrenContainer = import_theming5.styled.div(
-+ ({isColumn, columns, layout}) => ({
-+ display: isColumn || !columns ? 'block' : 'flex',
-+ position: 'relative',
-+ flexWrap: 'wrap',
-+ overflow: 'auto',
-+ flexDirection: isColumn ? 'column' : 'row',
-+ '& .innerZoomElementWrapper > *': isColumn
-+ ? {
-+ width: layout !== 'fullscreen' ? 'calc(100% - 20px)' : '100%',
-+ display: 'block',
-+ }
-+ : {
-+ maxWidth: layout !== 'fullscreen' ? 'calc(100% - 20px)' : '100%',
-+ display: 'inline-block',
-+ },
-+ }),
-+ ({layout = 'padded'}) =>
-+ layout === 'centered' || layout === 'padded'
-+ ? {
-+ padding: '30px 20px',
-+ '& .innerZoomElementWrapper > *': {
-+ width: 'auto',
-+ border: '10px solid transparent!important',
-+ },
-+ }
-+ : {},
-+ ({layout = 'padded'}) =>
-+ layout === 'centered'
-+ ? {
-+ display: 'flex',
-+ justifyContent: 'center',
-+ justifyItems: 'center',
-+ alignContent: 'center',
-+ alignItems: 'center',
-+ }
-+ : {},
-+ ({columns}) =>
-+ columns && columns > 1
-+ ? {
-+ '.innerZoomElementWrapper > *': {
-+ minWidth: `calc(100% / ${columns} - 20px)`,
-+ },
-+ }
-+ : {}
-+ ),
-+ StyledSource = (0, import_theming5.styled)(Source)(({theme}) => ({
-+ margin: 0,
-+ borderTopLeftRadius: 0,
-+ borderTopRightRadius: 0,
-+ borderBottomLeftRadius: theme.appBorderRadius,
-+ borderBottomRightRadius: theme.appBorderRadius,
-+ border: 'none',
-+ background:
-+ theme.base === 'light'
-+ ? 'rgba(0, 0, 0, 0.85)'
-+ : (0, import_polished3.darken)(0.05, theme.background.content),
-+ color: theme.color.lightest,
-+ button: {
-+ background:
-+ theme.base === 'light'
-+ ? 'rgba(0, 0, 0, 0.85)'
-+ : (0, import_polished3.darken)(0.05, theme.background.content),
-+ },
-+ })),
-+ PreviewContainer = import_theming5.styled.div(
-+ ({theme, withSource, isExpanded}) => ({
-+ position: 'relative',
-+ overflow: 'hidden',
-+ margin: '25px 0 40px',
-+ ...getBlockBackgroundStyle(theme),
-+ borderBottomLeftRadius: withSource && isExpanded && 0,
-+ borderBottomRightRadius: withSource && isExpanded && 0,
-+ borderBottomWidth: isExpanded && 0,
-+ 'h3 + &': {marginTop: '16px'},
-+ }),
-+ ({withToolbar}) => withToolbar && {paddingTop: 40}
-+ ),
-+ getSource = (withSource, expanded, setExpanded) => {
-+ switch (!0) {
-+ case !!(withSource && withSource.error):
-+ return {
-+ source: null,
-+ actionItem: {
-+ title: 'No code available',
-+ className: 'docblock-code-toggle docblock-code-toggle--disabled',
-+ disabled: !0,
-+ onClick: () => setExpanded(!1),
-+ },
-+ };
-+ case expanded:
-+ return {
-+ source: import_react8.default.createElement(StyledSource, {
-+ ...withSource,
-+ dark: !0,
-+ }),
-+ actionItem: {
-+ title: 'Hide code',
-+ className: 'docblock-code-toggle docblock-code-toggle--expanded',
-+ onClick: () => setExpanded(!1),
-+ },
-+ };
-+ default:
-+ return {
-+ source: import_react8.default.createElement(StyledSource, {
-+ ...withSource,
-+ dark: !0,
-+ }),
-+ actionItem: {
-+ title: 'Show code',
-+ className: 'docblock-code-toggle',
-+ onClick: () => setExpanded(!0),
-+ },
-+ };
-+ }
-+ };
-+function getStoryId(children) {
-+ if (import_react8.Children.count(children) === 1) {
-+ let elt = children;
-+ if (elt.props) return elt.props.id;
-+ }
-+ return null;
-+}
-+var PositionedToolbar = (0, import_theming5.styled)(Toolbar)({
-+ position: 'absolute',
-+ top: 0,
-+ left: 0,
-+ right: 0,
-+ height: 40,
-+ }),
-+ Relative = import_theming5.styled.div({
-+ overflow: 'hidden',
-+ position: 'relative',
-+ }),
-+ Preview = ({
-+ isLoading,
-+ isColumn,
-+ columns,
-+ children,
-+ withSource,
-+ withToolbar = !1,
-+ isExpanded = !1,
-+ additionalActions,
-+ className,
-+ layout = 'padded',
-+ ...props
-+ }) => {
-+ let [expanded, setExpanded] = (0, import_react8.useState)(isExpanded),
-+ {source, actionItem} = getSource(withSource, expanded, setExpanded),
-+ [scale, setScale] = (0, import_react8.useState)(1),
-+ previewClasses = [className].concat([
-+ 'sbdocs',
-+ 'sbdocs-preview',
-+ 'sb-unstyled',
-+ ]),
-+ defaultActionItems = withSource ? [actionItem] : [],
-+ [additionalActionItems, setAdditionalActionItems] = (0,
-+ import_react8.useState)(additionalActions ? [...additionalActions] : []),
-+ actionItems = [...defaultActionItems, ...additionalActionItems],
-+ {window: globalWindow4} = import_global3.global,
-+ copyToClipboard = (0, import_react8.useCallback)(async (text) => {
-+ let {createCopyToClipboardFunction} = await import(
-+ '@storybook/components'
-+ );
-+ createCopyToClipboardFunction();
-+ }, []),
-+ onCopyCapture = (e) => {
-+ let selection = globalWindow4.getSelection();
-+ (selection && selection.type === 'Range') ||
-+ (e.preventDefault(),
-+ additionalActionItems.filter((item) => item.title === 'Copied')
-+ .length === 0 &&
-+ copyToClipboard(source.props.code).then(() => {
-+ setAdditionalActionItems([
-+ ...additionalActionItems,
-+ {title: 'Copied', onClick: () => {}},
-+ ]),
-+ globalWindow4.setTimeout(
-+ () =>
-+ setAdditionalActionItems(
-+ additionalActionItems.filter(
-+ (item) => item.title !== 'Copied'
-+ )
-+ ),
-+ 1500
-+ );
-+ }));
-+ };
-+ return import_react8.default.createElement(
-+ PreviewContainer,
-+ {withSource, withToolbar, ...props, className: previewClasses.join(' ')},
-+ withToolbar &&
-+ import_react8.default.createElement(PositionedToolbar, {
-+ isLoading,
-+ border: !0,
-+ zoom: (z) => setScale(scale * z),
-+ resetZoom: () => setScale(1),
-+ storyId: getStoryId(children),
-+ baseUrl: './iframe.html',
-+ }),
-+ import_react8.default.createElement(
-+ ZoomContext.Provider,
-+ {value: {scale}},
-+ import_react8.default.createElement(
-+ Relative,
-+ {className: 'docs-story', onCopyCapture: withSource && onCopyCapture},
-+ import_react8.default.createElement(
-+ ChildrenContainer,
-+ {isColumn: isColumn || !Array.isArray(children), columns, layout},
-+ import_react8.default.createElement(
-+ import_components6.Zoom.Element,
-+ {scale},
-+ Array.isArray(children)
-+ ? children.map((child, i) =>
-+ import_react8.default.createElement('div', {key: i}, child)
-+ )
-+ : import_react8.default.createElement('div', null, children)
-+ )
-+ ),
-+ import_react8.default.createElement(import_components6.ActionBar, {
-+ actionItems,
-+ })
-+ )
-+ ),
-+ withSource && expanded && source
-+ );
-+ },
-+ StyledPreview = (0, import_theming5.styled)(Preview)(() => ({
-+ '.docs-story': {paddingTop: 32, paddingBottom: 40},
-+ }));
-+var import_react31 = __toESM(require('react')),
-+ import_pickBy = __toESM(require('lodash/pickBy.js')),
-+ import_theming23 = require('@storybook/theming'),
-+ import_polished8 = require('polished'),
-+ import_csf = require('@storybook/csf'),
-+ import_client_logger4 = require('@storybook/client-logger'),
-+ import_components19 = require('@storybook/components'),
-+ import_icons8 = require('@storybook/icons');
-+var import_react27 = __toESM(require('react')),
-+ import_markdown_to_jsx = __toESM(require('markdown-to-jsx')),
-+ import_polished6 = require('polished'),
-+ import_theming19 = require('@storybook/theming'),
-+ import_components17 = require('@storybook/components');
-+var import_react9 = __toESM(require('react')),
-+ import_theming6 = require('@storybook/theming'),
-+ import_components7 = require('@storybook/components'),
-+ Table = import_theming6.styled.table(({theme}) => ({
-+ '&&': {
-+ borderCollapse: 'collapse',
-+ borderSpacing: 0,
-+ border: 'none',
-+ tr: {border: 'none !important', background: 'none'},
-+ 'td, th': {padding: 0, border: 'none', width: 'auto!important'},
-+ marginTop: 0,
-+ marginBottom: 0,
-+ 'th:first-of-type, td:first-of-type': {paddingLeft: 0},
-+ 'th:last-of-type, td:last-of-type': {paddingRight: 0},
-+ td: {
-+ paddingTop: 0,
-+ paddingBottom: 4,
-+ '&:not(:first-of-type)': {paddingLeft: 10, paddingRight: 0},
-+ },
-+ tbody: {boxShadow: 'none', border: 'none'},
-+ code: (0, import_components7.codeCommon)({theme}),
-+ div: {span: {fontWeight: 'bold'}},
-+ '& code': {
-+ margin: 0,
-+ display: 'inline-block',
-+ fontSize: theme.typography.size.s1,
-+ },
-+ },
-+ })),
-+ ArgJsDoc = ({tags}) => {
-+ let params = (tags.params || []).filter((x) => x.description),
-+ hasDisplayableParams = params.length !== 0,
-+ hasDisplayableDeprecated = tags.deprecated != null,
-+ hasDisplayableReturns =
-+ tags.returns != null && tags.returns.description != null;
-+ return !hasDisplayableParams &&
-+ !hasDisplayableReturns &&
-+ !hasDisplayableDeprecated
-+ ? null
-+ : import_react9.default.createElement(
-+ import_react9.default.Fragment,
-+ null,
-+ import_react9.default.createElement(
-+ Table,
-+ null,
-+ import_react9.default.createElement(
-+ 'tbody',
-+ null,
-+ hasDisplayableDeprecated &&
-+ import_react9.default.createElement(
-+ 'tr',
-+ {key: 'deprecated'},
-+ import_react9.default.createElement(
-+ 'td',
-+ {colSpan: 2},
-+ import_react9.default.createElement(
-+ 'strong',
-+ null,
-+ 'Deprecated'
-+ ),
-+ ': ',
-+ tags.deprecated.toString()
-+ )
-+ ),
-+ hasDisplayableParams &&
-+ params.map((x) =>
-+ import_react9.default.createElement(
-+ 'tr',
-+ {key: x.name},
-+ import_react9.default.createElement(
-+ 'td',
-+ null,
-+ import_react9.default.createElement('code', null, x.name)
-+ ),
-+ import_react9.default.createElement(
-+ 'td',
-+ null,
-+ x.description
-+ )
-+ )
-+ ),
-+ hasDisplayableReturns &&
-+ import_react9.default.createElement(
-+ 'tr',
-+ {key: 'returns'},
-+ import_react9.default.createElement(
-+ 'td',
-+ null,
-+ import_react9.default.createElement('code', null, 'Returns')
-+ ),
-+ import_react9.default.createElement(
-+ 'td',
-+ null,
-+ tags.returns.description
-+ )
-+ )
-+ )
-+ )
-+ );
-+ };
-+var import_react10 = __toESM(require('react')),
-+ import_memoizerific = __toESM(require('memoizerific')),
-+ import_uniq = __toESM(require('lodash/uniq.js')),
-+ import_theming7 = require('@storybook/theming'),
-+ import_components8 = require('@storybook/components'),
-+ import_icons2 = require('@storybook/icons'),
-+ ITEMS_BEFORE_EXPANSION = 8,
-+ Summary = import_theming7.styled.div(({isExpanded}) => ({
-+ display: 'flex',
-+ flexDirection: isExpanded ? 'column' : 'row',
-+ flexWrap: 'wrap',
-+ alignItems: 'flex-start',
-+ marginBottom: '-4px',
-+ minWidth: 100,
-+ })),
-+ Text = import_theming7.styled.span(
-+ import_components8.codeCommon,
-+ ({theme, simple = !1}) => ({
-+ flex: '0 0 auto',
-+ fontFamily: theme.typography.fonts.mono,
-+ fontSize: theme.typography.size.s1,
-+ wordBreak: 'break-word',
-+ whiteSpace: 'normal',
-+ maxWidth: '100%',
-+ margin: 0,
-+ marginRight: '4px',
-+ marginBottom: '4px',
-+ paddingTop: '2px',
-+ paddingBottom: '2px',
-+ lineHeight: '13px',
-+ ...(simple && {
-+ background: 'transparent',
-+ border: '0 none',
-+ paddingLeft: 0,
-+ }),
-+ })
-+ ),
-+ ExpandButton = import_theming7.styled.button(({theme}) => ({
-+ fontFamily: theme.typography.fonts.mono,
-+ color: theme.color.secondary,
-+ marginBottom: '4px',
-+ background: 'none',
-+ border: 'none',
-+ })),
-+ Expandable = import_theming7.styled.div(
-+ import_components8.codeCommon,
-+ ({theme}) => ({
-+ fontFamily: theme.typography.fonts.mono,
-+ color: theme.color.secondary,
-+ fontSize: theme.typography.size.s1,
-+ margin: 0,
-+ whiteSpace: 'nowrap',
-+ display: 'flex',
-+ alignItems: 'center',
-+ })
-+ ),
-+ Detail = import_theming7.styled.div(({theme, width}) => ({
-+ width,
-+ minWidth: 200,
-+ maxWidth: 800,
-+ padding: 15,
-+ fontFamily: theme.typography.fonts.mono,
-+ fontSize: theme.typography.size.s1,
-+ boxSizing: 'content-box',
-+ '& code': {padding: '0 !important'},
-+ })),
-+ ChevronUpIcon = (0, import_theming7.styled)(import_icons2.ChevronSmallUpIcon)(
-+ {marginLeft: 4}
-+ ),
-+ ChevronDownIcon = (0, import_theming7.styled)(
-+ import_icons2.ChevronSmallDownIcon
-+ )({marginLeft: 4}),
-+ EmptyArg = () => import_react10.default.createElement('span', null, '-'),
-+ ArgText = ({text, simple}) =>
-+ import_react10.default.createElement(Text, {simple}, text),
-+ calculateDetailWidth = (0, import_memoizerific.default)(1e3)((detail) => {
-+ let lines = detail.split(/\r?\n/);
-+ return `${Math.max(...lines.map((x) => x.length))}ch`;
-+ }),
-+ getSummaryItems = (summary) => {
-+ if (!summary) return [summary];
-+ let summaryItems = summary.split('|').map((value2) => value2.trim());
-+ return (0, import_uniq.default)(summaryItems);
-+ },
-+ renderSummaryItems = (summaryItems, isExpanded = !0) => {
-+ let items = summaryItems;
-+ return (
-+ isExpanded || (items = summaryItems.slice(0, ITEMS_BEFORE_EXPANSION)),
-+ items.map((item) =>
-+ import_react10.default.createElement(ArgText, {
-+ key: item,
-+ text: item === '' ? '""' : item,
-+ })
-+ )
-+ );
-+ },
-+ ArgSummary = ({value: value2, initialExpandedArgs}) => {
-+ let {summary, detail} = value2,
-+ [isOpen, setIsOpen] = (0, import_react10.useState)(!1),
-+ [isExpanded, setIsExpanded] = (0, import_react10.useState)(
-+ initialExpandedArgs || !1
-+ );
-+ if (summary == null) return null;
-+ let summaryAsString =
-+ typeof summary.toString == 'function' ? summary.toString() : summary;
-+ if (detail == null) {
-+ if (/[(){}[\]<>]/.test(summaryAsString))
-+ return import_react10.default.createElement(ArgText, {
-+ text: summaryAsString,
-+ });
-+ let summaryItems = getSummaryItems(summaryAsString),
-+ itemsCount = summaryItems.length;
-+ return itemsCount > ITEMS_BEFORE_EXPANSION
-+ ? import_react10.default.createElement(
-+ Summary,
-+ {isExpanded},
-+ renderSummaryItems(summaryItems, isExpanded),
-+ import_react10.default.createElement(
-+ ExpandButton,
-+ {onClick: () => setIsExpanded(!isExpanded)},
-+ isExpanded
-+ ? 'Show less...'
-+ : `Show ${itemsCount - ITEMS_BEFORE_EXPANSION} more...`
-+ )
-+ )
-+ : import_react10.default.createElement(
-+ Summary,
-+ null,
-+ renderSummaryItems(summaryItems)
-+ );
-+ }
-+ return import_react10.default.createElement(
-+ import_components8.WithTooltipPure,
-+ {
-+ closeOnOutsideClick: !0,
-+ placement: 'bottom',
-+ visible: isOpen,
-+ onVisibleChange: (isVisible) => {
-+ setIsOpen(isVisible);
-+ },
-+ tooltip: import_react10.default.createElement(
-+ Detail,
-+ {width: calculateDetailWidth(detail)},
-+ import_react10.default.createElement(
-+ import_components8.SyntaxHighlighter,
-+ {language: 'jsx', format: !1},
-+ detail
-+ )
-+ ),
-+ },
-+ import_react10.default.createElement(
-+ Expandable,
-+ {className: 'sbdocs-expandable'},
-+ import_react10.default.createElement('span', null, summaryAsString),
-+ isOpen
-+ ? import_react10.default.createElement(ChevronUpIcon, null)
-+ : import_react10.default.createElement(ChevronDownIcon, null)
-+ )
-+ );
-+ },
-+ ArgValue = ({value: value2, initialExpandedArgs}) =>
-+ value2 == null
-+ ? import_react10.default.createElement(EmptyArg, null)
-+ : import_react10.default.createElement(ArgSummary, {
-+ value: value2,
-+ initialExpandedArgs,
-+ });
-+var import_react26 = __toESM(require('react')),
-+ import_components16 = require('@storybook/components');
-+var import_react25 = __toESM(require('react'));
-+var import_react11 = __toESM(require('react')),
-+ import_polished4 = require('polished'),
-+ import_theming8 = require('@storybook/theming'),
-+ import_components9 = require('@storybook/components');
-+init_helpers();
-+var Label = import_theming8.styled.label(({theme}) => ({
-+ lineHeight: '18px',
-+ alignItems: 'center',
-+ marginBottom: 8,
-+ display: 'inline-block',
-+ position: 'relative',
-+ whiteSpace: 'nowrap',
-+ background: theme.boolean.background,
-+ borderRadius: '3em',
-+ padding: 1,
-+ '&[aria-disabled="true"]': {opacity: 0.5, input: {cursor: 'not-allowed'}},
-+ input: {
-+ appearance: 'none',
-+ width: '100%',
-+ height: '100%',
-+ position: 'absolute',
-+ left: 0,
-+ top: 0,
-+ margin: 0,
-+ padding: 0,
-+ border: 'none',
-+ background: 'transparent',
-+ cursor: 'pointer',
-+ borderRadius: '3em',
-+ '&:focus': {
-+ outline: 'none',
-+ boxShadow: `${theme.color.secondary} 0 0 0 1px inset !important`,
-+ },
-+ },
-+ span: {
-+ textAlign: 'center',
-+ fontSize: theme.typography.size.s1,
-+ fontWeight: theme.typography.weight.bold,
-+ lineHeight: '1',
-+ cursor: 'pointer',
-+ display: 'inline-block',
-+ padding: '7px 15px',
-+ transition: 'all 100ms ease-out',
-+ userSelect: 'none',
-+ borderRadius: '3em',
-+ color: (0, import_polished4.transparentize)(0.5, theme.color.defaultText),
-+ background: 'transparent',
-+ '&:hover': {
-+ boxShadow: `${(0, import_polished4.opacify)(0.3, theme.appBorderColor)} 0 0 0 1px inset`,
-+ },
-+ '&:active': {
-+ boxShadow: `${(0, import_polished4.opacify)(0.05, theme.appBorderColor)} 0 0 0 2px inset`,
-+ color: (0, import_polished4.opacify)(1, theme.appBorderColor),
-+ },
-+ '&:first-of-type': {paddingRight: 8},
-+ '&:last-of-type': {paddingLeft: 8},
-+ },
-+ 'input:checked ~ span:last-of-type, input:not(:checked) ~ span:first-of-type':
-+ {
-+ background: theme.boolean.selectedBackground,
-+ boxShadow:
-+ theme.base === 'light'
-+ ? `${(0, import_polished4.opacify)(0.1, theme.appBorderColor)} 0 0 2px`
-+ : `${theme.appBorderColor} 0 0 0 1px`,
-+ color: theme.color.defaultText,
-+ padding: '7px 15px',
-+ },
-+ })),
-+ parse = (value2) => value2 === 'true',
-+ BooleanControl = ({
-+ name,
-+ value: value2,
-+ onChange,
-+ onBlur,
-+ onFocus,
-+ argType,
-+ }) => {
-+ let onSetFalse = (0, import_react11.useCallback)(
-+ () => onChange(!1),
-+ [onChange]
-+ ),
-+ readonly = !!argType?.table?.readonly;
-+ if (value2 === void 0)
-+ return import_react11.default.createElement(
-+ import_components9.Button,
-+ {
-+ variant: 'outline',
-+ size: 'medium',
-+ id: getControlSetterButtonId(name),
-+ onClick: onSetFalse,
-+ disabled: readonly,
-+ },
-+ 'Set boolean'
-+ );
-+ let controlId = getControlId(name),
-+ parsedValue = typeof value2 == 'string' ? parse(value2) : value2;
-+ return import_react11.default.createElement(
-+ Label,
-+ {'aria-disabled': readonly, htmlFor: controlId, 'aria-label': name},
-+ import_react11.default.createElement('input', {
-+ id: controlId,
-+ type: 'checkbox',
-+ onChange: (e) => onChange(e.target.checked),
-+ checked: parsedValue,
-+ role: 'switch',
-+ disabled: readonly,
-+ name,
-+ onBlur,
-+ onFocus,
-+ }),
-+ import_react11.default.createElement(
-+ 'span',
-+ {'aria-hidden': 'true'},
-+ 'False'
-+ ),
-+ import_react11.default.createElement(
-+ 'span',
-+ {'aria-hidden': 'true'},
-+ 'True'
-+ )
-+ );
-+ };
-+var import_react12 = __toESM(require('react')),
-+ import_theming9 = require('@storybook/theming'),
-+ import_components10 = require('@storybook/components');
-+init_helpers();
-+var parseDate = (value2) => {
-+ let [year, month, day] = value2.split('-'),
-+ result = new Date();
-+ return (
-+ result.setFullYear(
-+ parseInt(year, 10),
-+ parseInt(month, 10) - 1,
-+ parseInt(day, 10)
-+ ),
-+ result
-+ );
-+ },
-+ parseTime = (value2) => {
-+ let [hours, minutes] = value2.split(':'),
-+ result = new Date();
-+ return (
-+ result.setHours(parseInt(hours, 10)),
-+ result.setMinutes(parseInt(minutes, 10)),
-+ result
-+ );
-+ },
-+ formatDate = (value2) => {
-+ let date = new Date(value2),
-+ year = `000${date.getFullYear()}`.slice(-4),
-+ month = `0${date.getMonth() + 1}`.slice(-2),
-+ day = `0${date.getDate()}`.slice(-2);
-+ return `${year}-${month}-${day}`;
-+ },
-+ formatTime = (value2) => {
-+ let date = new Date(value2),
-+ hours = `0${date.getHours()}`.slice(-2),
-+ minutes = `0${date.getMinutes()}`.slice(-2);
-+ return `${hours}:${minutes}`;
-+ },
-+ FormInput = (0, import_theming9.styled)(import_components10.Form.Input)(
-+ ({readOnly}) => ({opacity: readOnly ? 0.5 : 1})
-+ ),
-+ FlexSpaced = import_theming9.styled.div(({theme}) => ({
-+ flex: 1,
-+ display: 'flex',
-+ input: {
-+ marginLeft: 10,
-+ flex: 1,
-+ height: 32,
-+ '&::-webkit-calendar-picker-indicator': {
-+ opacity: 0.5,
-+ height: 12,
-+ filter: theme.base === 'light' ? void 0 : 'invert(1)',
-+ },
-+ },
-+ 'input:first-of-type': {marginLeft: 0, flexGrow: 4},
-+ 'input:last-of-type': {flexGrow: 3},
-+ })),
-+ DateControl = ({name, value: value2, onChange, onFocus, onBlur, argType}) => {
-+ let [valid, setValid] = (0, import_react12.useState)(!0),
-+ dateRef = (0, import_react12.useRef)(),
-+ timeRef = (0, import_react12.useRef)(),
-+ readonly = !!argType?.table?.readonly;
-+ (0, import_react12.useEffect)(() => {
-+ valid !== !1 &&
-+ (dateRef &&
-+ dateRef.current &&
-+ (dateRef.current.value = formatDate(value2)),
-+ timeRef &&
-+ timeRef.current &&
-+ (timeRef.current.value = formatTime(value2)));
-+ }, [value2]);
-+ let onDateChange = (e) => {
-+ let parsed = parseDate(e.target.value),
-+ result = new Date(value2);
-+ result.setFullYear(
-+ parsed.getFullYear(),
-+ parsed.getMonth(),
-+ parsed.getDate()
-+ );
-+ let time = result.getTime();
-+ time && onChange(time), setValid(!!time);
-+ },
-+ onTimeChange = (e) => {
-+ let parsed = parseTime(e.target.value),
-+ result = new Date(value2);
-+ result.setHours(parsed.getHours()),
-+ result.setMinutes(parsed.getMinutes());
-+ let time = result.getTime();
-+ time && onChange(time), setValid(!!time);
-+ },
-+ controlId = getControlId(name);
-+ return import_react12.default.createElement(
-+ FlexSpaced,
-+ null,
-+ import_react12.default.createElement(FormInput, {
-+ type: 'date',
-+ max: '9999-12-31',
-+ ref: dateRef,
-+ id: `${controlId}-date`,
-+ name: `${controlId}-date`,
-+ readOnly: readonly,
-+ onChange: onDateChange,
-+ onFocus,
-+ onBlur,
-+ }),
-+ import_react12.default.createElement(FormInput, {
-+ type: 'time',
-+ id: `${controlId}-time`,
-+ name: `${controlId}-time`,
-+ ref: timeRef,
-+ onChange: onTimeChange,
-+ readOnly: readonly,
-+ onFocus,
-+ onBlur,
-+ }),
-+ valid
-+ ? null
-+ : import_react12.default.createElement('div', null, 'invalid')
-+ );
-+ };
-+var import_react13 = __toESM(require('react')),
-+ import_theming10 = require('@storybook/theming'),
-+ import_components11 = require('@storybook/components');
-+init_helpers();
-+var Wrapper3 = import_theming10.styled.label({display: 'flex'}),
-+ parse2 = (value2) => {
-+ let result = parseFloat(value2);
-+ return Number.isNaN(result) ? void 0 : result;
-+ },
-+ format = (value2) => (value2 != null ? String(value2) : ''),
-+ FormInput2 = (0, import_theming10.styled)(import_components11.Form.Input)(
-+ ({readOnly}) => ({opacity: readOnly ? 0.5 : 1})
-+ ),
-+ NumberControl = ({
-+ name,
-+ value: value2,
-+ onChange,
-+ min,
-+ max,
-+ step,
-+ onBlur,
-+ onFocus,
-+ argType,
-+ }) => {
-+ let [inputValue, setInputValue] = (0, import_react13.useState)(
-+ typeof value2 == 'number' ? value2 : ''
-+ ),
-+ [forceVisible, setForceVisible] = (0, import_react13.useState)(!1),
-+ [parseError, setParseError] = (0, import_react13.useState)(null),
-+ readonly = !!argType?.table?.readonly,
-+ handleChange = (0, import_react13.useCallback)(
-+ (event) => {
-+ setInputValue(event.target.value);
-+ let result = parseFloat(event.target.value);
-+ Number.isNaN(result)
-+ ? setParseError(
-+ new Error(`'${event.target.value}' is not a number`)
-+ )
-+ : (onChange(result), setParseError(null));
-+ },
-+ [onChange, setParseError]
-+ ),
-+ onForceVisible = (0, import_react13.useCallback)(() => {
-+ setInputValue('0'), onChange(0), setForceVisible(!0);
-+ }, [setForceVisible]),
-+ htmlElRef = (0, import_react13.useRef)(null);
-+ return (
-+ (0, import_react13.useEffect)(() => {
-+ forceVisible && htmlElRef.current && htmlElRef.current.select();
-+ }, [forceVisible]),
-+ (0, import_react13.useEffect)(() => {
-+ inputValue !== (typeof value2 == 'number' ? value2 : '') &&
-+ setInputValue(value2);
-+ }, [value2]),
-+ value2 === void 0
-+ ? import_react13.default.createElement(
-+ import_components11.Button,
-+ {
-+ variant: 'outline',
-+ size: 'medium',
-+ id: getControlSetterButtonId(name),
-+ onClick: onForceVisible,
-+ disabled: readonly,
-+ },
-+ 'Set number'
-+ )
-+ : import_react13.default.createElement(
-+ Wrapper3,
-+ null,
-+ import_react13.default.createElement(FormInput2, {
-+ ref: htmlElRef,
-+ id: getControlId(name),
-+ type: 'number',
-+ onChange: handleChange,
-+ size: 'flex',
-+ placeholder: 'Edit number...',
-+ value: inputValue,
-+ valid: parseError ? 'error' : null,
-+ autoFocus: forceVisible,
-+ readOnly: readonly,
-+ name,
-+ min,
-+ max,
-+ step,
-+ onFocus,
-+ onBlur,
-+ })
-+ )
-+ );
-+ };
-+var import_react17 = __toESM(require('react'));
-+var import_react14 = __toESM(require('react')),
-+ import_theming11 = require('@storybook/theming'),
-+ import_client_logger = require('@storybook/client-logger');
-+var selectedKey = (value2, options) => {
-+ let entry =
-+ options && Object.entries(options).find(([_key, val]) => val === value2);
-+ return entry ? entry[0] : void 0;
-+ },
-+ selectedKeys = (value2, options) =>
-+ value2 && options
-+ ? Object.entries(options)
-+ .filter((entry) => value2.includes(entry[1]))
-+ .map((entry) => entry[0])
-+ : [],
-+ selectedValues = (keys, options) =>
-+ keys && options && keys.map((key) => options[key]);
-+init_helpers();
-+var Wrapper4 = import_theming11.styled.div(
-+ ({isInline}) =>
-+ isInline
-+ ? {
-+ display: 'flex',
-+ flexWrap: 'wrap',
-+ alignItems: 'flex-start',
-+ label: {display: 'inline-flex', marginRight: 15},
-+ }
-+ : {label: {display: 'flex'}},
-+ (props) => {
-+ if (props['aria-readonly'] === 'true')
-+ return {input: {cursor: 'not-allowed'}};
-+ }
-+ ),
-+ Text2 = import_theming11.styled.span({
-+ '[aria-readonly=true] &': {opacity: 0.5},
-+ }),
-+ Label2 = import_theming11.styled.label({
-+ lineHeight: '20px',
-+ alignItems: 'center',
-+ marginBottom: 8,
-+ '&:last-child': {marginBottom: 0},
-+ input: {margin: 0, marginRight: 6},
-+ }),
-+ CheckboxControl = ({
-+ name,
-+ options,
-+ value: value2,
-+ onChange,
-+ isInline,
-+ argType,
-+ }) => {
-+ if (!options)
-+ return (
-+ import_client_logger.logger.warn(`Checkbox with no options: ${name}`),
-+ import_react14.default.createElement(
-+ import_react14.default.Fragment,
-+ null,
-+ '-'
-+ )
-+ );
-+ let initial = selectedKeys(value2, options),
-+ [selected, setSelected] = (0, import_react14.useState)(initial),
-+ readonly = !!argType?.table?.readonly,
-+ handleChange = (e) => {
-+ let option = e.target.value,
-+ updated = [...selected];
-+ updated.includes(option)
-+ ? updated.splice(updated.indexOf(option), 1)
-+ : updated.push(option),
-+ onChange(selectedValues(updated, options)),
-+ setSelected(updated);
-+ };
-+ (0, import_react14.useEffect)(() => {
-+ setSelected(selectedKeys(value2, options));
-+ }, [value2]);
-+ let controlId = getControlId(name);
-+ return import_react14.default.createElement(
-+ Wrapper4,
-+ {'aria-readonly': readonly, isInline},
-+ Object.keys(options).map((key, index) => {
-+ let id2 = `${controlId}-${index}`;
-+ return import_react14.default.createElement(
-+ Label2,
-+ {key: id2, htmlFor: id2},
-+ import_react14.default.createElement('input', {
-+ type: 'checkbox',
-+ disabled: readonly,
-+ id: id2,
-+ name: id2,
-+ value: key,
-+ onChange: handleChange,
-+ checked: selected?.includes(key),
-+ }),
-+ import_react14.default.createElement(Text2, null, key)
-+ );
-+ })
-+ );
-+ };
-+var import_react15 = __toESM(require('react')),
-+ import_theming12 = require('@storybook/theming'),
-+ import_client_logger2 = require('@storybook/client-logger');
-+init_helpers();
-+var Wrapper5 = import_theming12.styled.div(
-+ ({isInline}) =>
-+ isInline
-+ ? {
-+ display: 'flex',
-+ flexWrap: 'wrap',
-+ alignItems: 'flex-start',
-+ label: {display: 'inline-flex', marginRight: 15},
-+ }
-+ : {label: {display: 'flex'}},
-+ (props) => {
-+ if (props['aria-readonly'] === 'true')
-+ return {input: {cursor: 'not-allowed'}};
-+ }
-+ ),
-+ Text3 = import_theming12.styled.span({
-+ '[aria-readonly=true] &': {opacity: 0.5},
-+ }),
-+ Label3 = import_theming12.styled.label({
-+ lineHeight: '20px',
-+ alignItems: 'center',
-+ marginBottom: 8,
-+ '&:last-child': {marginBottom: 0},
-+ input: {margin: 0, marginRight: 6},
-+ }),
-+ RadioControl = ({
-+ name,
-+ options,
-+ value: value2,
-+ onChange,
-+ isInline,
-+ argType,
-+ }) => {
-+ if (!options)
-+ return (
-+ import_client_logger2.logger.warn(`Radio with no options: ${name}`),
-+ import_react15.default.createElement(
-+ import_react15.default.Fragment,
-+ null,
-+ '-'
-+ )
-+ );
-+ let selection = selectedKey(value2, options),
-+ controlId = getControlId(name),
-+ readonly = !!argType?.table?.readonly;
-+ return import_react15.default.createElement(
-+ Wrapper5,
-+ {'aria-readonly': readonly, isInline},
-+ Object.keys(options).map((key, index) => {
-+ let id2 = `${controlId}-${index}`;
-+ return import_react15.default.createElement(
-+ Label3,
-+ {key: id2, htmlFor: id2},
-+ import_react15.default.createElement('input', {
-+ type: 'radio',
-+ id: id2,
-+ name: id2,
-+ disabled: readonly,
-+ value: key,
-+ onChange: (e) => onChange(options[e.currentTarget.value]),
-+ checked: key === selection,
-+ }),
-+ import_react15.default.createElement(Text3, null, key)
-+ );
-+ })
-+ );
-+ };
-+var import_react16 = __toESM(require('react')),
-+ import_theming13 = require('@storybook/theming'),
-+ import_client_logger3 = require('@storybook/client-logger');
-+init_helpers();
-+var import_icons3 = require('@storybook/icons'),
-+ styleResets = {
-+ appearance: 'none',
-+ border: '0 none',
-+ boxSizing: 'inherit',
-+ display: ' block',
-+ margin: ' 0',
-+ background: 'transparent',
-+ padding: 0,
-+ fontSize: 'inherit',
-+ position: 'relative',
-+ },
-+ OptionsSelect = import_theming13.styled.select(styleResets, ({theme}) => ({
-+ boxSizing: 'border-box',
-+ position: 'relative',
-+ padding: '6px 10px',
-+ width: '100%',
-+ color: theme.input.color || 'inherit',
-+ background: theme.input.background,
-+ borderRadius: theme.input.borderRadius,
-+ boxShadow: `${theme.input.border} 0 0 0 1px inset`,
-+ fontSize: theme.typography.size.s2 - 1,
-+ lineHeight: '20px',
-+ '&:focus': {
-+ boxShadow: `${theme.color.secondary} 0 0 0 1px inset`,
-+ outline: 'none',
-+ },
-+ '&[disabled]': {cursor: 'not-allowed', opacity: 0.5},
-+ '::placeholder': {color: theme.textMutedColor},
-+ '&[multiple]': {
-+ overflow: 'auto',
-+ padding: 0,
-+ option: {
-+ display: 'block',
-+ padding: '6px 10px',
-+ marginLeft: 1,
-+ marginRight: 1,
-+ },
-+ },
-+ })),
-+ SelectWrapper = import_theming13.styled.span(({theme}) => ({
-+ display: 'inline-block',
-+ lineHeight: 'normal',
-+ overflow: 'hidden',
-+ position: 'relative',
-+ verticalAlign: 'top',
-+ width: '100%',
-+ svg: {
-+ position: 'absolute',
-+ zIndex: 1,
-+ pointerEvents: 'none',
-+ height: '12px',
-+ marginTop: '-6px',
-+ right: '12px',
-+ top: '50%',
-+ fill: theme.textMutedColor,
-+ path: {fill: theme.textMutedColor},
-+ },
-+ })),
-+ NO_SELECTION = 'Choose option...',
-+ SingleSelect = ({name, value: value2, options, onChange, argType}) => {
-+ let handleChange = (e) => {
-+ onChange(options[e.currentTarget.value]);
-+ },
-+ selection = selectedKey(value2, options) || NO_SELECTION,
-+ controlId = getControlId(name),
-+ readonly = !!argType?.table?.readonly;
-+ return import_react16.default.createElement(
-+ SelectWrapper,
-+ null,
-+ import_react16.default.createElement(
-+ import_icons3.ChevronSmallDownIcon,
-+ null
-+ ),
-+ import_react16.default.createElement(
-+ OptionsSelect,
-+ {
-+ disabled: readonly,
-+ id: controlId,
-+ value: selection,
-+ onChange: handleChange,
-+ },
-+ import_react16.default.createElement(
-+ 'option',
-+ {key: 'no-selection', disabled: !0},
-+ NO_SELECTION
-+ ),
-+ Object.keys(options).map((key) =>
-+ import_react16.default.createElement('option', {key, value: key}, key)
-+ )
-+ )
-+ );
-+ },
-+ MultiSelect = ({name, value: value2, options, onChange, argType}) => {
-+ let handleChange = (e) => {
-+ let selection2 = Array.from(e.currentTarget.options)
-+ .filter((option) => option.selected)
-+ .map((option) => option.value);
-+ onChange(selectedValues(selection2, options));
-+ },
-+ selection = selectedKeys(value2, options),
-+ controlId = getControlId(name),
-+ readonly = !!argType?.table?.readonly;
-+ return import_react16.default.createElement(
-+ SelectWrapper,
-+ null,
-+ import_react16.default.createElement(
-+ OptionsSelect,
-+ {
-+ disabled: readonly,
-+ id: controlId,
-+ multiple: !0,
-+ value: selection,
-+ onChange: handleChange,
-+ },
-+ Object.keys(options).map((key) =>
-+ import_react16.default.createElement('option', {key, value: key}, key)
-+ )
-+ )
-+ );
-+ },
-+ SelectControl = (props) => {
-+ let {name, options} = props;
-+ return options
-+ ? props.isMulti
-+ ? import_react16.default.createElement(MultiSelect, {...props})
-+ : import_react16.default.createElement(SingleSelect, {...props})
-+ : (import_client_logger3.logger.warn(`Select with no options: ${name}`),
-+ import_react16.default.createElement(
-+ import_react16.default.Fragment,
-+ null,
-+ '-'
-+ ));
-+ };
-+var normalizeOptions = (options, labels) =>
-+ Array.isArray(options)
-+ ? options.reduce(
-+ (acc, item) => ((acc[labels?.[item] || String(item)] = item), acc),
-+ {}
-+ )
-+ : options,
-+ Controls = {
-+ check: CheckboxControl,
-+ 'inline-check': CheckboxControl,
-+ radio: RadioControl,
-+ 'inline-radio': RadioControl,
-+ select: SelectControl,
-+ 'multi-select': SelectControl,
-+ },
-+ OptionsControl = (props) => {
-+ let {type = 'select', labels, argType} = props,
-+ normalized = {
-+ ...props,
-+ argType,
-+ options: argType ? normalizeOptions(argType.options, labels) : {},
-+ isInline: type.includes('inline'),
-+ isMulti: type.includes('multi'),
-+ },
-+ Control = Controls[type];
-+ if (Control)
-+ return import_react17.default.createElement(Control, {...normalized});
-+ throw new Error(`Unknown options type: ${type}`);
-+ };
-+var import_global4 = require('@storybook/global'),
-+ import_cloneDeep = __toESM(require('lodash/cloneDeep.js')),
-+ import_react20 = __toESM(require('react')),
-+ import_theming14 = require('@storybook/theming'),
-+ import_components12 = require('@storybook/components'),
-+ import_icons4 = require('@storybook/icons');
-+var import_react19 = __toESM(require('react'));
-+var import_react18 = __toESM(require('react'));
-+var VALUE = 'value',
-+ KEY = 'key';
-+var ERROR = 'Error',
-+ OBJECT = 'Object',
-+ ARRAY = 'Array',
-+ STRING = 'String',
-+ NUMBER = 'Number',
-+ BOOLEAN = 'Boolean',
-+ DATE = 'Date',
-+ NULL = 'Null',
-+ UNDEFINED = 'Undefined',
-+ FUNCTION = 'Function',
-+ SYMBOL = 'Symbol';
-+var ADD_DELTA_TYPE = 'ADD_DELTA_TYPE',
-+ REMOVE_DELTA_TYPE = 'REMOVE_DELTA_TYPE',
-+ UPDATE_DELTA_TYPE = 'UPDATE_DELTA_TYPE';
-+function getObjectType(obj) {
-+ return obj !== null &&
-+ typeof obj == 'object' &&
-+ !Array.isArray(obj) &&
-+ typeof obj[Symbol.iterator] == 'function'
-+ ? 'Iterable'
-+ : Object.prototype.toString.call(obj).slice(8, -1);
-+}
-+function isComponentWillChange(oldValue, newValue) {
-+ let oldType = getObjectType(oldValue),
-+ newType = getObjectType(newValue);
-+ return (
-+ (oldType === 'Function' || newType === 'Function') && newType !== oldType
-+ );
-+}
-+var JsonAddValue = class extends import_react18.Component {
-+ constructor(props) {
-+ super(props),
-+ (this.state = {inputRefKey: null, inputRefValue: null}),
-+ (this.refInputValue = this.refInputValue.bind(this)),
-+ (this.refInputKey = this.refInputKey.bind(this)),
-+ (this.onKeydown = this.onKeydown.bind(this)),
-+ (this.onSubmit = this.onSubmit.bind(this));
-+ }
-+ componentDidMount() {
-+ let {inputRefKey, inputRefValue} = this.state,
-+ {onlyValue} = this.props;
-+ inputRefKey &&
-+ typeof inputRefKey.focus == 'function' &&
-+ inputRefKey.focus(),
-+ onlyValue &&
-+ inputRefValue &&
-+ typeof inputRefValue.focus == 'function' &&
-+ inputRefValue.focus(),
-+ document.addEventListener('keydown', this.onKeydown);
-+ }
-+ componentWillUnmount() {
-+ document.removeEventListener('keydown', this.onKeydown);
-+ }
-+ onKeydown(event) {
-+ event.altKey ||
-+ event.ctrlKey ||
-+ event.metaKey ||
-+ event.shiftKey ||
-+ event.repeat ||
-+ ((event.code === 'Enter' || event.key === 'Enter') &&
-+ (event.preventDefault(), this.onSubmit()),
-+ (event.code === 'Escape' || event.key === 'Escape') &&
-+ (event.preventDefault(), this.props.handleCancel()));
-+ }
-+ onSubmit() {
-+ let {handleAdd, onlyValue, onSubmitValueParser, keyPath, deep} = this.props,
-+ {inputRefKey, inputRefValue} = this.state,
-+ result = {};
-+ if (!onlyValue) {
-+ if (!inputRefKey.value) return;
-+ result.key = inputRefKey.value;
-+ }
-+ (result.newValue = onSubmitValueParser(
-+ !1,
-+ keyPath,
-+ deep,
-+ result.key,
-+ inputRefValue.value
-+ )),
-+ handleAdd(result);
-+ }
-+ refInputKey(node) {
-+ this.state.inputRefKey = node;
-+ }
-+ refInputValue(node) {
-+ this.state.inputRefValue = node;
-+ }
-+ render() {
-+ let {
-+ handleCancel,
-+ onlyValue,
-+ addButtonElement,
-+ cancelButtonElement,
-+ inputElementGenerator,
-+ keyPath,
-+ deep,
-+ } = this.props,
-+ addButtonElementLayout = (0, import_react18.cloneElement)(
-+ addButtonElement,
-+ {onClick: this.onSubmit}
-+ ),
-+ cancelButtonElementLayout = (0, import_react18.cloneElement)(
-+ cancelButtonElement,
-+ {onClick: handleCancel}
-+ ),
-+ inputElementValue = inputElementGenerator(VALUE, keyPath, deep),
-+ inputElementValueLayout = (0, import_react18.cloneElement)(
-+ inputElementValue,
-+ {placeholder: 'Value', ref: this.refInputValue}
-+ ),
-+ inputElementKeyLayout = null;
-+ if (!onlyValue) {
-+ let inputElementKey = inputElementGenerator(KEY, keyPath, deep);
-+ inputElementKeyLayout = (0, import_react18.cloneElement)(
-+ inputElementKey,
-+ {placeholder: 'Key', ref: this.refInputKey}
-+ );
-+ }
-+ return import_react18.default.createElement(
-+ 'span',
-+ {className: 'rejt-add-value-node'},
-+ inputElementKeyLayout,
-+ inputElementValueLayout,
-+ cancelButtonElementLayout,
-+ addButtonElementLayout
-+ );
-+ }
-+};
-+JsonAddValue.defaultProps = {
-+ onlyValue: !1,
-+ addButtonElement: import_react18.default.createElement('button', null, '+'),
-+ cancelButtonElement: import_react18.default.createElement(
-+ 'button',
-+ null,
-+ 'c'
-+ ),
-+};
-+var JsonArray = class extends import_react18.Component {
-+ constructor(props) {
-+ super(props);
-+ let keyPath = [...props.keyPath, props.name];
-+ (this.state = {
-+ data: props.data,
-+ name: props.name,
-+ keyPath,
-+ deep: props.deep,
-+ nextDeep: props.deep + 1,
-+ collapsed: props.isCollapsed(keyPath, props.deep, props.data),
-+ addFormVisible: !1,
-+ }),
-+ (this.handleCollapseMode = this.handleCollapseMode.bind(this)),
-+ (this.handleRemoveItem = this.handleRemoveItem.bind(this)),
-+ (this.handleAddMode = this.handleAddMode.bind(this)),
-+ (this.handleAddValueAdd = this.handleAddValueAdd.bind(this)),
-+ (this.handleAddValueCancel = this.handleAddValueCancel.bind(this)),
-+ (this.handleEditValue = this.handleEditValue.bind(this)),
-+ (this.onChildUpdate = this.onChildUpdate.bind(this)),
-+ (this.renderCollapsed = this.renderCollapsed.bind(this)),
-+ (this.renderNotCollapsed = this.renderNotCollapsed.bind(this));
-+ }
-+ static getDerivedStateFromProps(props, state) {
-+ return props.data !== state.data ? {data: props.data} : null;
-+ }
-+ onChildUpdate(childKey, childData) {
-+ let {data, keyPath} = this.state;
-+ (data[childKey] = childData), this.setState({data});
-+ let {onUpdate} = this.props,
-+ size = keyPath.length;
-+ onUpdate(keyPath[size - 1], data);
-+ }
-+ handleAddMode() {
-+ this.setState({addFormVisible: !0});
-+ }
-+ handleCollapseMode() {
-+ this.setState((state) => ({collapsed: !state.collapsed}));
-+ }
-+ handleRemoveItem(index) {
-+ return () => {
-+ let {beforeRemoveAction, logger: logger4} = this.props,
-+ {data, keyPath, nextDeep: deep} = this.state,
-+ oldValue = data[index];
-+ beforeRemoveAction(index, keyPath, deep, oldValue)
-+ .then(() => {
-+ let deltaUpdateResult = {
-+ keyPath,
-+ deep,
-+ key: index,
-+ oldValue,
-+ type: REMOVE_DELTA_TYPE,
-+ };
-+ data.splice(index, 1), this.setState({data});
-+ let {onUpdate, onDeltaUpdate} = this.props;
-+ onUpdate(keyPath[keyPath.length - 1], data),
-+ onDeltaUpdate(deltaUpdateResult);
-+ })
-+ .catch(logger4.error);
-+ };
-+ }
-+ handleAddValueAdd({newValue}) {
-+ let {data, keyPath, nextDeep: deep} = this.state,
-+ {beforeAddAction, logger: logger4} = this.props;
-+ beforeAddAction(data.length, keyPath, deep, newValue)
-+ .then(() => {
-+ let newData = [...data, newValue];
-+ this.setState({data: newData}), this.handleAddValueCancel();
-+ let {onUpdate, onDeltaUpdate} = this.props;
-+ onUpdate(keyPath[keyPath.length - 1], newData),
-+ onDeltaUpdate({
-+ type: ADD_DELTA_TYPE,
-+ keyPath,
-+ deep,
-+ key: newData.length - 1,
-+ newValue,
-+ });
-+ })
-+ .catch(logger4.error);
-+ }
-+ handleAddValueCancel() {
-+ this.setState({addFormVisible: !1});
-+ }
-+ handleEditValue({key, value: value2}) {
-+ return new Promise((resolve, reject) => {
-+ let {beforeUpdateAction} = this.props,
-+ {data, keyPath, nextDeep: deep} = this.state,
-+ oldValue = data[key];
-+ beforeUpdateAction(key, keyPath, deep, oldValue, value2)
-+ .then(() => {
-+ (data[key] = value2), this.setState({data});
-+ let {onUpdate, onDeltaUpdate} = this.props;
-+ onUpdate(keyPath[keyPath.length - 1], data),
-+ onDeltaUpdate({
-+ type: UPDATE_DELTA_TYPE,
-+ keyPath,
-+ deep,
-+ key,
-+ newValue: value2,
-+ oldValue,
-+ }),
-+ resolve(void 0);
-+ })
-+ .catch(reject);
-+ });
-+ }
-+ renderCollapsed() {
-+ let {name, data, keyPath, deep} = this.state,
-+ {handleRemove, readOnly, getStyle, dataType, minusMenuElement} =
-+ this.props,
-+ {minus, collapsed} = getStyle(name, data, keyPath, deep, dataType),
-+ isReadOnly = readOnly(name, data, keyPath, deep, dataType),
-+ removeItemButton = (0, import_react18.cloneElement)(minusMenuElement, {
-+ onClick: handleRemove,
-+ className: 'rejt-minus-menu',
-+ style: minus,
-+ });
-+ return import_react18.default.createElement(
-+ 'span',
-+ {className: 'rejt-collapsed'},
-+ import_react18.default.createElement(
-+ 'span',
-+ {
-+ className: 'rejt-collapsed-text',
-+ style: collapsed,
-+ onClick: this.handleCollapseMode,
-+ },
-+ '[...] ',
-+ data.length,
-+ ' ',
-+ data.length === 1 ? 'item' : 'items'
-+ ),
-+ !isReadOnly && removeItemButton
-+ );
-+ }
-+ renderNotCollapsed() {
-+ let {name, data, keyPath, deep, addFormVisible, nextDeep} = this.state,
-+ {
-+ isCollapsed,
-+ handleRemove,
-+ onDeltaUpdate,
-+ readOnly,
-+ getStyle,
-+ dataType,
-+ addButtonElement,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ textareaElementGenerator,
-+ minusMenuElement,
-+ plusMenuElement,
-+ beforeRemoveAction,
-+ beforeAddAction,
-+ beforeUpdateAction,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ } = this.props,
-+ {minus, plus, delimiter, ul, addForm} = getStyle(
-+ name,
-+ data,
-+ keyPath,
-+ deep,
-+ dataType
-+ ),
-+ isReadOnly = readOnly(name, data, keyPath, deep, dataType),
-+ addItemButton = (0, import_react18.cloneElement)(plusMenuElement, {
-+ onClick: this.handleAddMode,
-+ className: 'rejt-plus-menu',
-+ style: plus,
-+ }),
-+ removeItemButton = (0, import_react18.cloneElement)(minusMenuElement, {
-+ onClick: handleRemove,
-+ className: 'rejt-minus-menu',
-+ style: minus,
-+ });
-+ return import_react18.default.createElement(
-+ 'span',
-+ {className: 'rejt-not-collapsed'},
-+ import_react18.default.createElement(
-+ 'span',
-+ {className: 'rejt-not-collapsed-delimiter', style: delimiter},
-+ '['
-+ ),
-+ !addFormVisible && addItemButton,
-+ import_react18.default.createElement(
-+ 'ul',
-+ {className: 'rejt-not-collapsed-list', style: ul},
-+ data.map((item, index) =>
-+ import_react18.default.createElement(JsonNode, {
-+ key: index,
-+ name: index.toString(),
-+ data: item,
-+ keyPath,
-+ deep: nextDeep,
-+ isCollapsed,
-+ handleRemove: this.handleRemoveItem(index),
-+ handleUpdateValue: this.handleEditValue,
-+ onUpdate: this.onChildUpdate,
-+ onDeltaUpdate,
-+ readOnly,
-+ getStyle,
-+ addButtonElement,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ textareaElementGenerator,
-+ minusMenuElement,
-+ plusMenuElement,
-+ beforeRemoveAction,
-+ beforeAddAction,
-+ beforeUpdateAction,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ })
-+ )
-+ ),
-+ !isReadOnly &&
-+ addFormVisible &&
-+ import_react18.default.createElement(
-+ 'div',
-+ {className: 'rejt-add-form', style: addForm},
-+ import_react18.default.createElement(JsonAddValue, {
-+ handleAdd: this.handleAddValueAdd,
-+ handleCancel: this.handleAddValueCancel,
-+ onlyValue: !0,
-+ addButtonElement,
-+ cancelButtonElement,
-+ inputElementGenerator,
-+ keyPath,
-+ deep,
-+ onSubmitValueParser,
-+ })
-+ ),
-+ import_react18.default.createElement(
-+ 'span',
-+ {className: 'rejt-not-collapsed-delimiter', style: delimiter},
-+ ']'
-+ ),
-+ !isReadOnly && removeItemButton
-+ );
-+ }
-+ render() {
-+ let {name, collapsed, data, keyPath, deep} = this.state,
-+ {dataType, getStyle} = this.props,
-+ value2 = collapsed ? this.renderCollapsed() : this.renderNotCollapsed(),
-+ style = getStyle(name, data, keyPath, deep, dataType);
-+ return import_react18.default.createElement(
-+ 'div',
-+ {className: 'rejt-array-node'},
-+ import_react18.default.createElement(
-+ 'span',
-+ {onClick: this.handleCollapseMode},
-+ import_react18.default.createElement(
-+ 'span',
-+ {className: 'rejt-name', style: style.name},
-+ name,
-+ ' :',
-+ ' '
-+ )
-+ ),
-+ value2
-+ );
-+ }
-+};
-+JsonArray.defaultProps = {
-+ keyPath: [],
-+ deep: 0,
-+ minusMenuElement: import_react18.default.createElement('span', null, ' - '),
-+ plusMenuElement: import_react18.default.createElement('span', null, ' + '),
-+};
-+var JsonFunctionValue = class extends import_react18.Component {
-+ constructor(props) {
-+ super(props);
-+ let keyPath = [...props.keyPath, props.name];
-+ (this.state = {
-+ value: props.value,
-+ name: props.name,
-+ keyPath,
-+ deep: props.deep,
-+ editEnabled: !1,
-+ inputRef: null,
-+ }),
-+ (this.handleEditMode = this.handleEditMode.bind(this)),
-+ (this.refInput = this.refInput.bind(this)),
-+ (this.handleCancelEdit = this.handleCancelEdit.bind(this)),
-+ (this.handleEdit = this.handleEdit.bind(this)),
-+ (this.onKeydown = this.onKeydown.bind(this));
-+ }
-+ static getDerivedStateFromProps(props, state) {
-+ return props.value !== state.value ? {value: props.value} : null;
-+ }
-+ componentDidUpdate() {
-+ let {
-+ editEnabled,
-+ inputRef,
-+ name,
-+ value: value2,
-+ keyPath,
-+ deep,
-+ } = this.state,
-+ {readOnly, dataType} = this.props,
-+ readOnlyResult = readOnly(name, value2, keyPath, deep, dataType);
-+ editEnabled &&
-+ !readOnlyResult &&
-+ typeof inputRef.focus == 'function' &&
-+ inputRef.focus();
-+ }
-+ componentDidMount() {
-+ document.addEventListener('keydown', this.onKeydown);
-+ }
-+ componentWillUnmount() {
-+ document.removeEventListener('keydown', this.onKeydown);
-+ }
-+ onKeydown(event) {
-+ event.altKey ||
-+ event.ctrlKey ||
-+ event.metaKey ||
-+ event.shiftKey ||
-+ event.repeat ||
-+ ((event.code === 'Enter' || event.key === 'Enter') &&
-+ (event.preventDefault(), this.handleEdit()),
-+ (event.code === 'Escape' || event.key === 'Escape') &&
-+ (event.preventDefault(), this.handleCancelEdit()));
-+ }
-+ handleEdit() {
-+ let {
-+ handleUpdateValue,
-+ originalValue,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ keyPath,
-+ } = this.props,
-+ {inputRef, name, deep} = this.state;
-+ if (!inputRef) return;
-+ let newValue = onSubmitValueParser(!0, keyPath, deep, name, inputRef.value);
-+ handleUpdateValue({value: newValue, key: name})
-+ .then(() => {
-+ isComponentWillChange(originalValue, newValue) ||
-+ this.handleCancelEdit();
-+ })
-+ .catch(logger4.error);
-+ }
-+ handleEditMode() {
-+ this.setState({editEnabled: !0});
-+ }
-+ refInput(node) {
-+ this.state.inputRef = node;
-+ }
-+ handleCancelEdit() {
-+ this.setState({editEnabled: !1});
-+ }
-+ render() {
-+ let {name, value: value2, editEnabled, keyPath, deep} = this.state,
-+ {
-+ handleRemove,
-+ originalValue,
-+ readOnly,
-+ dataType,
-+ getStyle,
-+ editButtonElement,
-+ cancelButtonElement,
-+ textareaElementGenerator,
-+ minusMenuElement,
-+ keyPath: comeFromKeyPath,
-+ } = this.props,
-+ style = getStyle(name, originalValue, keyPath, deep, dataType),
-+ result = null,
-+ minusElement = null,
-+ resultOnlyResult = readOnly(name, originalValue, keyPath, deep, dataType);
-+ if (editEnabled && !resultOnlyResult) {
-+ let textareaElement = textareaElementGenerator(
-+ VALUE,
-+ comeFromKeyPath,
-+ deep,
-+ name,
-+ originalValue,
-+ dataType
-+ ),
-+ editButtonElementLayout = (0, import_react18.cloneElement)(
-+ editButtonElement,
-+ {onClick: this.handleEdit}
-+ ),
-+ cancelButtonElementLayout = (0, import_react18.cloneElement)(
-+ cancelButtonElement,
-+ {onClick: this.handleCancelEdit}
-+ ),
-+ textareaElementLayout = (0, import_react18.cloneElement)(
-+ textareaElement,
-+ {ref: this.refInput, defaultValue: originalValue}
-+ );
-+ (result = import_react18.default.createElement(
-+ 'span',
-+ {className: 'rejt-edit-form', style: style.editForm},
-+ textareaElementLayout,
-+ ' ',
-+ cancelButtonElementLayout,
-+ editButtonElementLayout
-+ )),
-+ (minusElement = null);
-+ } else {
-+ result = import_react18.default.createElement(
-+ 'span',
-+ {
-+ className: 'rejt-value',
-+ style: style.value,
-+ onClick: resultOnlyResult ? null : this.handleEditMode,
-+ },
-+ value2
-+ );
-+ let minusMenuLayout = (0, import_react18.cloneElement)(minusMenuElement, {
-+ onClick: handleRemove,
-+ className: 'rejt-minus-menu',
-+ style: style.minus,
-+ });
-+ minusElement = resultOnlyResult ? null : minusMenuLayout;
-+ }
-+ return import_react18.default.createElement(
-+ 'li',
-+ {className: 'rejt-function-value-node', style: style.li},
-+ import_react18.default.createElement(
-+ 'span',
-+ {className: 'rejt-name', style: style.name},
-+ name,
-+ ' :',
-+ ' '
-+ ),
-+ result,
-+ minusElement
-+ );
-+ }
-+};
-+JsonFunctionValue.defaultProps = {
-+ keyPath: [],
-+ deep: 0,
-+ handleUpdateValue: () => {},
-+ editButtonElement: import_react18.default.createElement('button', null, 'e'),
-+ cancelButtonElement: import_react18.default.createElement(
-+ 'button',
-+ null,
-+ 'c'
-+ ),
-+ minusMenuElement: import_react18.default.createElement('span', null, ' - '),
-+};
-+var JsonNode = class extends import_react18.Component {
-+ constructor(props) {
-+ super(props),
-+ (this.state = {
-+ data: props.data,
-+ name: props.name,
-+ keyPath: props.keyPath,
-+ deep: props.deep,
-+ });
-+ }
-+ static getDerivedStateFromProps(props, state) {
-+ return props.data !== state.data ? {data: props.data} : null;
-+ }
-+ render() {
-+ let {data, name, keyPath, deep} = this.state,
-+ {
-+ isCollapsed,
-+ handleRemove,
-+ handleUpdateValue,
-+ onUpdate,
-+ onDeltaUpdate,
-+ readOnly,
-+ getStyle,
-+ addButtonElement,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ textareaElementGenerator,
-+ minusMenuElement,
-+ plusMenuElement,
-+ beforeRemoveAction,
-+ beforeAddAction,
-+ beforeUpdateAction,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ } = this.props,
-+ readOnlyTrue = () => !0,
-+ dataType = getObjectType(data);
-+ switch (dataType) {
-+ case ERROR:
-+ return import_react18.default.createElement(JsonObject, {
-+ data,
-+ name,
-+ isCollapsed,
-+ keyPath,
-+ deep,
-+ handleRemove,
-+ onUpdate,
-+ onDeltaUpdate,
-+ readOnly: readOnlyTrue,
-+ dataType,
-+ getStyle,
-+ addButtonElement,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ textareaElementGenerator,
-+ minusMenuElement,
-+ plusMenuElement,
-+ beforeRemoveAction,
-+ beforeAddAction,
-+ beforeUpdateAction,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ });
-+ case OBJECT:
-+ return import_react18.default.createElement(JsonObject, {
-+ data,
-+ name,
-+ isCollapsed,
-+ keyPath,
-+ deep,
-+ handleRemove,
-+ onUpdate,
-+ onDeltaUpdate,
-+ readOnly,
-+ dataType,
-+ getStyle,
-+ addButtonElement,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ textareaElementGenerator,
-+ minusMenuElement,
-+ plusMenuElement,
-+ beforeRemoveAction,
-+ beforeAddAction,
-+ beforeUpdateAction,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ });
-+ case ARRAY:
-+ return import_react18.default.createElement(JsonArray, {
-+ data,
-+ name,
-+ isCollapsed,
-+ keyPath,
-+ deep,
-+ handleRemove,
-+ onUpdate,
-+ onDeltaUpdate,
-+ readOnly,
-+ dataType,
-+ getStyle,
-+ addButtonElement,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ textareaElementGenerator,
-+ minusMenuElement,
-+ plusMenuElement,
-+ beforeRemoveAction,
-+ beforeAddAction,
-+ beforeUpdateAction,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ });
-+ case STRING:
-+ return import_react18.default.createElement(JsonValue, {
-+ name,
-+ value: `"${data}"`,
-+ originalValue: data,
-+ keyPath,
-+ deep,
-+ handleRemove,
-+ handleUpdateValue,
-+ readOnly,
-+ dataType,
-+ getStyle,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ minusMenuElement,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ });
-+ case NUMBER:
-+ return import_react18.default.createElement(JsonValue, {
-+ name,
-+ value: data,
-+ originalValue: data,
-+ keyPath,
-+ deep,
-+ handleRemove,
-+ handleUpdateValue,
-+ readOnly,
-+ dataType,
-+ getStyle,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ minusMenuElement,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ });
-+ case BOOLEAN:
-+ return import_react18.default.createElement(JsonValue, {
-+ name,
-+ value: data ? 'true' : 'false',
-+ originalValue: data,
-+ keyPath,
-+ deep,
-+ handleRemove,
-+ handleUpdateValue,
-+ readOnly,
-+ dataType,
-+ getStyle,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ minusMenuElement,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ });
-+ case DATE:
-+ return import_react18.default.createElement(JsonValue, {
-+ name,
-+ value: data.toISOString(),
-+ originalValue: data,
-+ keyPath,
-+ deep,
-+ handleRemove,
-+ handleUpdateValue,
-+ readOnly: readOnlyTrue,
-+ dataType,
-+ getStyle,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ minusMenuElement,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ });
-+ case NULL:
-+ return import_react18.default.createElement(JsonValue, {
-+ name,
-+ value: 'null',
-+ originalValue: 'null',
-+ keyPath,
-+ deep,
-+ handleRemove,
-+ handleUpdateValue,
-+ readOnly,
-+ dataType,
-+ getStyle,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ minusMenuElement,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ });
-+ case UNDEFINED:
-+ return import_react18.default.createElement(JsonValue, {
-+ name,
-+ value: 'undefined',
-+ originalValue: 'undefined',
-+ keyPath,
-+ deep,
-+ handleRemove,
-+ handleUpdateValue,
-+ readOnly,
-+ dataType,
-+ getStyle,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ minusMenuElement,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ });
-+ case FUNCTION:
-+ return import_react18.default.createElement(JsonFunctionValue, {
-+ name,
-+ value: data.toString(),
-+ originalValue: data,
-+ keyPath,
-+ deep,
-+ handleRemove,
-+ handleUpdateValue,
-+ readOnly,
-+ dataType,
-+ getStyle,
-+ cancelButtonElement,
-+ editButtonElement,
-+ textareaElementGenerator,
-+ minusMenuElement,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ });
-+ case SYMBOL:
-+ return import_react18.default.createElement(JsonValue, {
-+ name,
-+ value: data.toString(),
-+ originalValue: data,
-+ keyPath,
-+ deep,
-+ handleRemove,
-+ handleUpdateValue,
-+ readOnly: readOnlyTrue,
-+ dataType,
-+ getStyle,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ minusMenuElement,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ });
-+ default:
-+ return null;
-+ }
-+ }
-+};
-+JsonNode.defaultProps = {keyPath: [], deep: 0};
-+var JsonObject = class extends import_react18.Component {
-+ constructor(props) {
-+ super(props);
-+ let keyPath = props.deep === -1 ? [] : [...props.keyPath, props.name];
-+ (this.state = {
-+ name: props.name,
-+ data: props.data,
-+ keyPath,
-+ deep: props.deep,
-+ nextDeep: props.deep + 1,
-+ collapsed: props.isCollapsed(keyPath, props.deep, props.data),
-+ addFormVisible: !1,
-+ }),
-+ (this.handleCollapseMode = this.handleCollapseMode.bind(this)),
-+ (this.handleRemoveValue = this.handleRemoveValue.bind(this)),
-+ (this.handleAddMode = this.handleAddMode.bind(this)),
-+ (this.handleAddValueAdd = this.handleAddValueAdd.bind(this)),
-+ (this.handleAddValueCancel = this.handleAddValueCancel.bind(this)),
-+ (this.handleEditValue = this.handleEditValue.bind(this)),
-+ (this.onChildUpdate = this.onChildUpdate.bind(this)),
-+ (this.renderCollapsed = this.renderCollapsed.bind(this)),
-+ (this.renderNotCollapsed = this.renderNotCollapsed.bind(this));
-+ }
-+ static getDerivedStateFromProps(props, state) {
-+ return props.data !== state.data ? {data: props.data} : null;
-+ }
-+ onChildUpdate(childKey, childData) {
-+ let {data, keyPath} = this.state;
-+ (data[childKey] = childData), this.setState({data});
-+ let {onUpdate} = this.props,
-+ size = keyPath.length;
-+ onUpdate(keyPath[size - 1], data);
-+ }
-+ handleAddMode() {
-+ this.setState({addFormVisible: !0});
-+ }
-+ handleAddValueCancel() {
-+ this.setState({addFormVisible: !1});
-+ }
-+ handleAddValueAdd({key, newValue}) {
-+ let {data, keyPath, nextDeep: deep} = this.state,
-+ {beforeAddAction, logger: logger4} = this.props;
-+ beforeAddAction(key, keyPath, deep, newValue)
-+ .then(() => {
-+ (data[key] = newValue),
-+ this.setState({data}),
-+ this.handleAddValueCancel();
-+ let {onUpdate, onDeltaUpdate} = this.props;
-+ onUpdate(keyPath[keyPath.length - 1], data),
-+ onDeltaUpdate({type: ADD_DELTA_TYPE, keyPath, deep, key, newValue});
-+ })
-+ .catch(logger4.error);
-+ }
-+ handleRemoveValue(key) {
-+ return () => {
-+ let {beforeRemoveAction, logger: logger4} = this.props,
-+ {data, keyPath, nextDeep: deep} = this.state,
-+ oldValue = data[key];
-+ beforeRemoveAction(key, keyPath, deep, oldValue)
-+ .then(() => {
-+ let deltaUpdateResult = {
-+ keyPath,
-+ deep,
-+ key,
-+ oldValue,
-+ type: REMOVE_DELTA_TYPE,
-+ };
-+ delete data[key], this.setState({data});
-+ let {onUpdate, onDeltaUpdate} = this.props;
-+ onUpdate(keyPath[keyPath.length - 1], data),
-+ onDeltaUpdate(deltaUpdateResult);
-+ })
-+ .catch(logger4.error);
-+ };
-+ }
-+ handleCollapseMode() {
-+ this.setState((state) => ({collapsed: !state.collapsed}));
-+ }
-+ handleEditValue({key, value: value2}) {
-+ return new Promise((resolve, reject) => {
-+ let {beforeUpdateAction} = this.props,
-+ {data, keyPath, nextDeep: deep} = this.state,
-+ oldValue = data[key];
-+ beforeUpdateAction(key, keyPath, deep, oldValue, value2)
-+ .then(() => {
-+ (data[key] = value2), this.setState({data});
-+ let {onUpdate, onDeltaUpdate} = this.props;
-+ onUpdate(keyPath[keyPath.length - 1], data),
-+ onDeltaUpdate({
-+ type: UPDATE_DELTA_TYPE,
-+ keyPath,
-+ deep,
-+ key,
-+ newValue: value2,
-+ oldValue,
-+ }),
-+ resolve();
-+ })
-+ .catch(reject);
-+ });
-+ }
-+ renderCollapsed() {
-+ let {name, keyPath, deep, data} = this.state,
-+ {handleRemove, readOnly, dataType, getStyle, minusMenuElement} =
-+ this.props,
-+ {minus, collapsed} = getStyle(name, data, keyPath, deep, dataType),
-+ keyList = Object.getOwnPropertyNames(data),
-+ isReadOnly = readOnly(name, data, keyPath, deep, dataType),
-+ removeItemButton = (0, import_react18.cloneElement)(minusMenuElement, {
-+ onClick: handleRemove,
-+ className: 'rejt-minus-menu',
-+ style: minus,
-+ });
-+ return import_react18.default.createElement(
-+ 'span',
-+ {className: 'rejt-collapsed'},
-+ import_react18.default.createElement(
-+ 'span',
-+ {
-+ className: 'rejt-collapsed-text',
-+ style: collapsed,
-+ onClick: this.handleCollapseMode,
-+ },
-+ '{...}',
-+ ' ',
-+ keyList.length,
-+ ' ',
-+ keyList.length === 1 ? 'key' : 'keys'
-+ ),
-+ !isReadOnly && removeItemButton
-+ );
-+ }
-+ renderNotCollapsed() {
-+ let {name, data, keyPath, deep, nextDeep, addFormVisible} = this.state,
-+ {
-+ isCollapsed,
-+ handleRemove,
-+ onDeltaUpdate,
-+ readOnly,
-+ getStyle,
-+ dataType,
-+ addButtonElement,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ textareaElementGenerator,
-+ minusMenuElement,
-+ plusMenuElement,
-+ beforeRemoveAction,
-+ beforeAddAction,
-+ beforeUpdateAction,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ } = this.props,
-+ {minus, plus, addForm, ul, delimiter} = getStyle(
-+ name,
-+ data,
-+ keyPath,
-+ deep,
-+ dataType
-+ ),
-+ keyList = Object.getOwnPropertyNames(data),
-+ isReadOnly = readOnly(name, data, keyPath, deep, dataType),
-+ addItemButton = (0, import_react18.cloneElement)(plusMenuElement, {
-+ onClick: this.handleAddMode,
-+ className: 'rejt-plus-menu',
-+ style: plus,
-+ }),
-+ removeItemButton = (0, import_react18.cloneElement)(minusMenuElement, {
-+ onClick: handleRemove,
-+ className: 'rejt-minus-menu',
-+ style: minus,
-+ }),
-+ list = keyList.map((key) =>
-+ import_react18.default.createElement(JsonNode, {
-+ key,
-+ name: key,
-+ data: data[key],
-+ keyPath,
-+ deep: nextDeep,
-+ isCollapsed,
-+ handleRemove: this.handleRemoveValue(key),
-+ handleUpdateValue: this.handleEditValue,
-+ onUpdate: this.onChildUpdate,
-+ onDeltaUpdate,
-+ readOnly,
-+ getStyle,
-+ addButtonElement,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ textareaElementGenerator,
-+ minusMenuElement,
-+ plusMenuElement,
-+ beforeRemoveAction,
-+ beforeAddAction,
-+ beforeUpdateAction,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ })
-+ );
-+ return import_react18.default.createElement(
-+ 'span',
-+ {className: 'rejt-not-collapsed'},
-+ import_react18.default.createElement(
-+ 'span',
-+ {className: 'rejt-not-collapsed-delimiter', style: delimiter},
-+ '{'
-+ ),
-+ !isReadOnly && addItemButton,
-+ import_react18.default.createElement(
-+ 'ul',
-+ {className: 'rejt-not-collapsed-list', style: ul},
-+ list
-+ ),
-+ !isReadOnly &&
-+ addFormVisible &&
-+ import_react18.default.createElement(
-+ 'div',
-+ {className: 'rejt-add-form', style: addForm},
-+ import_react18.default.createElement(JsonAddValue, {
-+ handleAdd: this.handleAddValueAdd,
-+ handleCancel: this.handleAddValueCancel,
-+ addButtonElement,
-+ cancelButtonElement,
-+ inputElementGenerator,
-+ keyPath,
-+ deep,
-+ onSubmitValueParser,
-+ })
-+ ),
-+ import_react18.default.createElement(
-+ 'span',
-+ {className: 'rejt-not-collapsed-delimiter', style: delimiter},
-+ '}'
-+ ),
-+ !isReadOnly && removeItemButton
-+ );
-+ }
-+ render() {
-+ let {name, collapsed, data, keyPath, deep} = this.state,
-+ {getStyle, dataType} = this.props,
-+ value2 = collapsed ? this.renderCollapsed() : this.renderNotCollapsed(),
-+ style = getStyle(name, data, keyPath, deep, dataType);
-+ return import_react18.default.createElement(
-+ 'div',
-+ {className: 'rejt-object-node'},
-+ import_react18.default.createElement(
-+ 'span',
-+ {onClick: this.handleCollapseMode},
-+ import_react18.default.createElement(
-+ 'span',
-+ {className: 'rejt-name', style: style.name},
-+ name,
-+ ' :',
-+ ' '
-+ )
-+ ),
-+ value2
-+ );
-+ }
-+};
-+JsonObject.defaultProps = {
-+ keyPath: [],
-+ deep: 0,
-+ minusMenuElement: import_react18.default.createElement('span', null, ' - '),
-+ plusMenuElement: import_react18.default.createElement('span', null, ' + '),
-+};
-+var JsonValue = class extends import_react18.Component {
-+ constructor(props) {
-+ super(props);
-+ let keyPath = [...props.keyPath, props.name];
-+ (this.state = {
-+ value: props.value,
-+ name: props.name,
-+ keyPath,
-+ deep: props.deep,
-+ editEnabled: !1,
-+ inputRef: null,
-+ }),
-+ (this.handleEditMode = this.handleEditMode.bind(this)),
-+ (this.refInput = this.refInput.bind(this)),
-+ (this.handleCancelEdit = this.handleCancelEdit.bind(this)),
-+ (this.handleEdit = this.handleEdit.bind(this)),
-+ (this.onKeydown = this.onKeydown.bind(this));
-+ }
-+ static getDerivedStateFromProps(props, state) {
-+ return props.value !== state.value ? {value: props.value} : null;
-+ }
-+ componentDidUpdate() {
-+ let {
-+ editEnabled,
-+ inputRef,
-+ name,
-+ value: value2,
-+ keyPath,
-+ deep,
-+ } = this.state,
-+ {readOnly, dataType} = this.props,
-+ isReadOnly = readOnly(name, value2, keyPath, deep, dataType);
-+ editEnabled &&
-+ !isReadOnly &&
-+ typeof inputRef.focus == 'function' &&
-+ inputRef.focus();
-+ }
-+ componentDidMount() {
-+ document.addEventListener('keydown', this.onKeydown);
-+ }
-+ componentWillUnmount() {
-+ document.removeEventListener('keydown', this.onKeydown);
-+ }
-+ onKeydown(event) {
-+ event.altKey ||
-+ event.ctrlKey ||
-+ event.metaKey ||
-+ event.shiftKey ||
-+ event.repeat ||
-+ ((event.code === 'Enter' || event.key === 'Enter') &&
-+ (event.preventDefault(), this.handleEdit()),
-+ (event.code === 'Escape' || event.key === 'Escape') &&
-+ (event.preventDefault(), this.handleCancelEdit()));
-+ }
-+ handleEdit() {
-+ let {
-+ handleUpdateValue,
-+ originalValue,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ keyPath,
-+ } = this.props,
-+ {inputRef, name, deep} = this.state;
-+ if (!inputRef) return;
-+ let newValue = onSubmitValueParser(!0, keyPath, deep, name, inputRef.value);
-+ handleUpdateValue({value: newValue, key: name})
-+ .then(() => {
-+ isComponentWillChange(originalValue, newValue) ||
-+ this.handleCancelEdit();
-+ })
-+ .catch(logger4.error);
-+ }
-+ handleEditMode() {
-+ this.setState({editEnabled: !0});
-+ }
-+ refInput(node) {
-+ this.state.inputRef = node;
-+ }
-+ handleCancelEdit() {
-+ this.setState({editEnabled: !1});
-+ }
-+ render() {
-+ let {name, value: value2, editEnabled, keyPath, deep} = this.state,
-+ {
-+ handleRemove,
-+ originalValue,
-+ readOnly,
-+ dataType,
-+ getStyle,
-+ editButtonElement,
-+ cancelButtonElement,
-+ inputElementGenerator,
-+ minusMenuElement,
-+ keyPath: comeFromKeyPath,
-+ } = this.props,
-+ style = getStyle(name, originalValue, keyPath, deep, dataType),
-+ isReadOnly = readOnly(name, originalValue, keyPath, deep, dataType),
-+ isEditing = editEnabled && !isReadOnly,
-+ inputElement = inputElementGenerator(
-+ VALUE,
-+ comeFromKeyPath,
-+ deep,
-+ name,
-+ originalValue,
-+ dataType
-+ ),
-+ editButtonElementLayout = (0, import_react18.cloneElement)(
-+ editButtonElement,
-+ {onClick: this.handleEdit}
-+ ),
-+ cancelButtonElementLayout = (0, import_react18.cloneElement)(
-+ cancelButtonElement,
-+ {onClick: this.handleCancelEdit}
-+ ),
-+ inputElementLayout = (0, import_react18.cloneElement)(inputElement, {
-+ ref: this.refInput,
-+ defaultValue: JSON.stringify(originalValue),
-+ }),
-+ minusMenuLayout = (0, import_react18.cloneElement)(minusMenuElement, {
-+ onClick: handleRemove,
-+ className: 'rejt-minus-menu',
-+ style: style.minus,
-+ });
-+ return import_react18.default.createElement(
-+ 'li',
-+ {className: 'rejt-value-node', style: style.li},
-+ import_react18.default.createElement(
-+ 'span',
-+ {className: 'rejt-name', style: style.name},
-+ name,
-+ ' : '
-+ ),
-+ isEditing
-+ ? import_react18.default.createElement(
-+ 'span',
-+ {className: 'rejt-edit-form', style: style.editForm},
-+ inputElementLayout,
-+ ' ',
-+ cancelButtonElementLayout,
-+ editButtonElementLayout
-+ )
-+ : import_react18.default.createElement(
-+ 'span',
-+ {
-+ className: 'rejt-value',
-+ style: style.value,
-+ onClick: isReadOnly ? null : this.handleEditMode,
-+ },
-+ String(value2)
-+ ),
-+ !isReadOnly && !isEditing && minusMenuLayout
-+ );
-+ }
-+};
-+JsonValue.defaultProps = {
-+ keyPath: [],
-+ deep: 0,
-+ handleUpdateValue: () => Promise.resolve(),
-+ editButtonElement: import_react18.default.createElement('button', null, 'e'),
-+ cancelButtonElement: import_react18.default.createElement(
-+ 'button',
-+ null,
-+ 'c'
-+ ),
-+ minusMenuElement: import_react18.default.createElement('span', null, ' - '),
-+};
-+var object = {
-+ minus: {color: 'red'},
-+ plus: {color: 'green'},
-+ collapsed: {color: 'grey'},
-+ delimiter: {},
-+ ul: {padding: '0px', margin: '0 0 0 25px', listStyle: 'none'},
-+ name: {color: '#2287CD'},
-+ addForm: {},
-+ },
-+ array = {
-+ minus: {color: 'red'},
-+ plus: {color: 'green'},
-+ collapsed: {color: 'grey'},
-+ delimiter: {},
-+ ul: {padding: '0px', margin: '0 0 0 25px', listStyle: 'none'},
-+ name: {color: '#2287CD'},
-+ addForm: {},
-+ },
-+ value = {
-+ minus: {color: 'red'},
-+ editForm: {},
-+ value: {color: '#7bba3d'},
-+ li: {minHeight: '22px', lineHeight: '22px', outline: '0px'},
-+ name: {color: '#2287CD'},
-+ };
-+function parse3(string) {
-+ let result = string;
-+ if (result.indexOf('function') === 0) return (0, eval)(`(${result})`);
-+ try {
-+ result = JSON.parse(string);
-+ } catch {}
-+ return result;
-+}
-+var JsonTree = class extends import_react19.Component {
-+ constructor(props) {
-+ super(props),
-+ (this.state = {data: props.data, rootName: props.rootName}),
-+ (this.onUpdate = this.onUpdate.bind(this)),
-+ (this.removeRoot = this.removeRoot.bind(this));
-+ }
-+ static getDerivedStateFromProps(props, state) {
-+ return props.data !== state.data || props.rootName !== state.rootName
-+ ? {data: props.data, rootName: props.rootName}
-+ : null;
-+ }
-+ onUpdate(key, data) {
-+ this.setState({data}), this.props.onFullyUpdate(data);
-+ }
-+ removeRoot() {
-+ this.onUpdate(null, null);
-+ }
-+ render() {
-+ let {data, rootName} = this.state,
-+ {
-+ isCollapsed,
-+ onDeltaUpdate,
-+ readOnly,
-+ getStyle,
-+ addButtonElement,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElement,
-+ textareaElement,
-+ minusMenuElement,
-+ plusMenuElement,
-+ beforeRemoveAction,
-+ beforeAddAction,
-+ beforeUpdateAction,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ fallback = null,
-+ } = this.props,
-+ dataType = getObjectType(data),
-+ readOnlyFunction = readOnly;
-+ rootName = rootName.slice(rootName.indexOf('-') + 1);
-+ getObjectType(readOnly) === 'Boolean' &&
-+ (readOnlyFunction = () => readOnly);
-+ let inputElementFunction = inputElement;
-+ inputElement &&
-+ getObjectType(inputElement) !== 'Function' &&
-+ (inputElementFunction = () => inputElement);
-+ let textareaElementFunction = textareaElement;
-+ return (
-+ textareaElement &&
-+ getObjectType(textareaElement) !== 'Function' &&
-+ (textareaElementFunction = () => textareaElement),
-+ dataType === 'Object' || dataType === 'Array'
-+ ? import_react19.default.createElement(
-+ 'div',
-+ {className: 'rejt-tree'},
-+ import_react19.default.createElement(JsonNode, {
-+ data,
-+ name: rootName,
-+ deep: -1,
-+ isCollapsed,
-+ onUpdate: this.onUpdate,
-+ onDeltaUpdate,
-+ readOnly: readOnlyFunction,
-+ getStyle,
-+ addButtonElement,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator: inputElementFunction,
-+ textareaElementGenerator: textareaElementFunction,
-+ minusMenuElement,
-+ plusMenuElement,
-+ handleRemove: this.removeRoot,
-+ beforeRemoveAction,
-+ beforeAddAction,
-+ beforeUpdateAction,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ })
-+ )
-+ : fallback
-+ );
-+ }
-+};
-+JsonTree.defaultProps = {
-+ rootName: 'root',
-+ isCollapsed: (keyPath, deep) => deep !== -1,
-+ getStyle: (keyName, data, keyPath, deep, dataType) => {
-+ switch (dataType) {
-+ case 'Object':
-+ case 'Error':
-+ return object;
-+ case 'Array':
-+ return array;
-+ default:
-+ return value;
-+ }
-+ },
-+ readOnly: () => !1,
-+ onFullyUpdate: () => {},
-+ onDeltaUpdate: () => {},
-+ beforeRemoveAction: () => Promise.resolve(),
-+ beforeAddAction: () => Promise.resolve(),
-+ beforeUpdateAction: () => Promise.resolve(),
-+ logger: {error: () => {}},
-+ onSubmitValueParser: (isEditMode, keyPath, deep, name, rawValue) =>
-+ parse3(rawValue),
-+ inputElement: () => import_react19.default.createElement('input', null),
-+ textareaElement: () => import_react19.default.createElement('textarea', null),
-+ fallback: null,
-+};
-+init_helpers();
-+var {window: globalWindow2} = import_global4.global,
-+ Wrapper6 = import_theming14.styled.div(({theme}) => ({
-+ position: 'relative',
-+ display: 'flex',
-+ '&[aria-readonly="true"]': {opacity: 0.5},
-+ '.rejt-tree': {marginLeft: '1rem', fontSize: '13px'},
-+ '.rejt-value-node, .rejt-object-node > .rejt-collapsed, .rejt-array-node > .rejt-collapsed, .rejt-object-node > .rejt-not-collapsed, .rejt-array-node > .rejt-not-collapsed':
-+ {'& > svg': {opacity: 0, transition: 'opacity 0.2s'}},
-+ '.rejt-value-node:hover, .rejt-object-node:hover > .rejt-collapsed, .rejt-array-node:hover > .rejt-collapsed, .rejt-object-node:hover > .rejt-not-collapsed, .rejt-array-node:hover > .rejt-not-collapsed':
-+ {'& > svg': {opacity: 1}},
-+ '.rejt-edit-form button': {display: 'none'},
-+ '.rejt-add-form': {marginLeft: 10},
-+ '.rejt-add-value-node': {display: 'inline-flex', alignItems: 'center'},
-+ '.rejt-name': {lineHeight: '22px'},
-+ '.rejt-not-collapsed-delimiter': {lineHeight: '22px'},
-+ '.rejt-plus-menu': {marginLeft: 5},
-+ '.rejt-object-node > span > *, .rejt-array-node > span > *': {
-+ position: 'relative',
-+ zIndex: 2,
-+ },
-+ '.rejt-object-node, .rejt-array-node': {position: 'relative'},
-+ '.rejt-object-node > span:first-of-type::after, .rejt-array-node > span:first-of-type::after, .rejt-collapsed::before, .rejt-not-collapsed::before':
-+ {
-+ content: '""',
-+ position: 'absolute',
-+ top: 0,
-+ display: 'block',
-+ width: '100%',
-+ marginLeft: '-1rem',
-+ padding: '0 4px 0 1rem',
-+ height: 22,
-+ },
-+ '.rejt-collapsed::before, .rejt-not-collapsed::before': {
-+ zIndex: 1,
-+ background: 'transparent',
-+ borderRadius: 4,
-+ transition: 'background 0.2s',
-+ pointerEvents: 'none',
-+ opacity: 0.1,
-+ },
-+ '.rejt-object-node:hover, .rejt-array-node:hover': {
-+ '& > .rejt-collapsed::before, & > .rejt-not-collapsed::before': {
-+ background: theme.color.secondary,
-+ },
-+ },
-+ '.rejt-collapsed::after, .rejt-not-collapsed::after': {
-+ content: '""',
-+ position: 'absolute',
-+ display: 'inline-block',
-+ pointerEvents: 'none',
-+ width: 0,
-+ height: 0,
-+ },
-+ '.rejt-collapsed::after': {
-+ left: -8,
-+ top: 8,
-+ borderTop: '3px solid transparent',
-+ borderBottom: '3px solid transparent',
-+ borderLeft: '3px solid rgba(153,153,153,0.6)',
-+ },
-+ '.rejt-not-collapsed::after': {
-+ left: -10,
-+ top: 10,
-+ borderTop: '3px solid rgba(153,153,153,0.6)',
-+ borderLeft: '3px solid transparent',
-+ borderRight: '3px solid transparent',
-+ },
-+ '.rejt-value': {
-+ display: 'inline-block',
-+ border: '1px solid transparent',
-+ borderRadius: 4,
-+ margin: '1px 0',
-+ padding: '0 4px',
-+ cursor: 'text',
-+ color: theme.color.defaultText,
-+ },
-+ '.rejt-value-node:hover > .rejt-value': {
-+ background: theme.color.lighter,
-+ borderColor: theme.appBorderColor,
-+ },
-+ })),
-+ ButtonInline = import_theming14.styled.button(({theme, primary}) => ({
-+ border: 0,
-+ height: 20,
-+ margin: 1,
-+ borderRadius: 4,
-+ background: primary ? theme.color.secondary : 'transparent',
-+ color: primary ? theme.color.lightest : theme.color.dark,
-+ fontWeight: primary ? 'bold' : 'normal',
-+ cursor: 'pointer',
-+ order: primary ? 'initial' : 9,
-+ })),
-+ ActionAddIcon = (0, import_theming14.styled)(import_icons4.AddIcon)(
-+ ({theme, disabled}) => ({
-+ display: 'inline-block',
-+ verticalAlign: 'middle',
-+ width: 15,
-+ height: 15,
-+ padding: 3,
-+ marginLeft: 5,
-+ cursor: disabled ? 'not-allowed' : 'pointer',
-+ color: theme.textMutedColor,
-+ '&:hover': disabled ? {} : {color: theme.color.ancillary},
-+ 'svg + &': {marginLeft: 0},
-+ })
-+ ),
-+ ActionSubstractIcon = (0, import_theming14.styled)(
-+ import_icons4.SubtractIcon
-+ )(({theme, disabled}) => ({
-+ display: 'inline-block',
-+ verticalAlign: 'middle',
-+ width: 15,
-+ height: 15,
-+ padding: 3,
-+ marginLeft: 5,
-+ cursor: disabled ? 'not-allowed' : 'pointer',
-+ color: theme.textMutedColor,
-+ '&:hover': disabled ? {} : {color: theme.color.negative},
-+ 'svg + &': {marginLeft: 0},
-+ })),
-+ Input = import_theming14.styled.input(({theme, placeholder}) => ({
-+ outline: 0,
-+ margin: placeholder ? 1 : '1px 0',
-+ padding: '3px 4px',
-+ color: theme.color.defaultText,
-+ background: theme.background.app,
-+ border: `1px solid ${theme.appBorderColor}`,
-+ borderRadius: 4,
-+ lineHeight: '14px',
-+ width: placeholder === 'Key' ? 80 : 120,
-+ '&:focus': {border: `1px solid ${theme.color.secondary}`},
-+ })),
-+ RawButton = (0, import_theming14.styled)(import_components12.IconButton)(
-+ ({theme}) => ({
-+ position: 'absolute',
-+ zIndex: 2,
-+ top: 2,
-+ right: 2,
-+ height: 21,
-+ padding: '0 3px',
-+ background: theme.background.bar,
-+ border: `1px solid ${theme.appBorderColor}`,
-+ borderRadius: 3,
-+ color: theme.textMutedColor,
-+ fontSize: '9px',
-+ fontWeight: 'bold',
-+ textDecoration: 'none',
-+ span: {marginLeft: 3, marginTop: 1},
-+ })
-+ ),
-+ RawInput = (0, import_theming14.styled)(import_components12.Form.Textarea)(
-+ ({theme}) => ({
-+ flex: 1,
-+ padding: '7px 6px',
-+ fontFamily: theme.typography.fonts.mono,
-+ fontSize: '12px',
-+ lineHeight: '18px',
-+ '&::placeholder': {
-+ fontFamily: theme.typography.fonts.base,
-+ fontSize: '13px',
-+ },
-+ '&:placeholder-shown': {padding: '7px 10px'},
-+ })
-+ ),
-+ ENTER_EVENT = {
-+ bubbles: !0,
-+ cancelable: !0,
-+ key: 'Enter',
-+ code: 'Enter',
-+ keyCode: 13,
-+ },
-+ dispatchEnterKey = (event) => {
-+ event.currentTarget.dispatchEvent(
-+ new globalWindow2.KeyboardEvent('keydown', ENTER_EVENT)
-+ );
-+ },
-+ selectValue = (event) => {
-+ event.currentTarget.select();
-+ },
-+ getCustomStyleFunction = (theme) => () => ({
-+ name: {color: theme.color.secondary},
-+ collapsed: {color: theme.color.dark},
-+ ul: {listStyle: 'none', margin: '0 0 0 1rem', padding: 0},
-+ li: {outline: 0},
-+ }),
-+ ObjectControl = ({name, value: value2, onChange, argType}) => {
-+ let theme = (0, import_theming14.useTheme)(),
-+ data = (0, import_react20.useMemo)(
-+ () => value2 && (0, import_cloneDeep.default)(value2),
-+ [value2]
-+ ),
-+ hasData = data != null,
-+ [showRaw, setShowRaw] = (0, import_react20.useState)(false),
-+ [parseError, setParseError] = (0, import_react20.useState)(null),
-+ readonly = !!argType?.table?.readonly,
-+ updateRaw = (0, import_react20.useCallback)(
-+ (raw) => {
-+ try {
-+ raw && onChange(JSON.parse(raw)), setParseError(void 0);
-+ } catch (e) {
-+ setParseError(e);
-+ }
-+ },
-+ [onChange]
-+ ),
-+ [forceVisible, setForceVisible] = (0, import_react20.useState)(!1),
-+ onForceVisible = (0, import_react20.useCallback)(() => {
-+ onChange({}), setForceVisible(!0);
-+ }, [setForceVisible]),
-+ htmlElRef = (0, import_react20.useRef)(null);
-+ if (
-+ ((0, import_react20.useEffect)(() => {
-+ forceVisible && htmlElRef.current && htmlElRef.current.select();
-+ }, [forceVisible]),
-+ !hasData)
-+ )
-+ return import_react20.default.createElement(
-+ import_components12.Button,
-+ {
-+ disabled: readonly,
-+ id: getControlSetterButtonId(name),
-+ onClick: onForceVisible,
-+ },
-+ 'Set object'
-+ );
-+ let rawJSONForm = import_react20.default.createElement(RawInput, {
-+ ref: htmlElRef,
-+ id: getControlId(name),
-+ name,
-+ defaultValue: value2 === null ? '' : JSON.stringify(value2, null, 2),
-+ onBlur: (event) => updateRaw(event.target.value),
-+ placeholder: 'Edit JSON string...',
-+ autoFocus: forceVisible,
-+ valid: parseError ? 'error' : null,
-+ readOnly: readonly,
-+ }),
-+ isObjectOrArray =
-+ Array.isArray(value2) ||
-+ (typeof value2 == 'object' && value2?.constructor === Object);
-+ return import_react20.default.createElement(
-+ Wrapper6,
-+ {'aria-readonly': readonly},
-+ isObjectOrArray &&
-+ import_react20.default.createElement(
-+ RawButton,
-+ {
-+ onClick: (e) => {
-+ e.preventDefault(), setShowRaw((v) => !v);
-+ },
-+ },
-+ showRaw
-+ ? import_react20.default.createElement(
-+ import_icons4.EyeCloseIcon,
-+ null
-+ )
-+ : import_react20.default.createElement(import_icons4.EyeIcon, null),
-+ import_react20.default.createElement('span', null, 'RAW')
-+ ),
-+ showRaw
-+ ? rawJSONForm
-+ : import_react20.default.createElement(JsonTree, {
-+ readOnly: readonly || !isObjectOrArray,
-+ isCollapsed: isObjectOrArray ? void 0 : () => !0,
-+ data,
-+ rootName: name,
-+ onFullyUpdate: onChange,
-+ getStyle: getCustomStyleFunction(theme),
-+ cancelButtonElement: import_react20.default.createElement(
-+ ButtonInline,
-+ {type: 'button'},
-+ 'Cancel'
-+ ),
-+ editButtonElement: import_react20.default.createElement(
-+ ButtonInline,
-+ {type: 'submit'},
-+ 'Save'
-+ ),
-+ addButtonElement: import_react20.default.createElement(
-+ ButtonInline,
-+ {type: 'submit', primary: !0},
-+ 'Save'
-+ ),
-+ plusMenuElement: import_react20.default.createElement(
-+ ActionAddIcon,
-+ null
-+ ),
-+ minusMenuElement: import_react20.default.createElement(
-+ ActionSubstractIcon,
-+ null
-+ ),
-+ inputElement: (_, __, ___, key) =>
-+ key
-+ ? import_react20.default.createElement(Input, {
-+ onFocus: selectValue,
-+ onBlur: dispatchEnterKey,
-+ })
-+ : import_react20.default.createElement(Input, null),
-+ fallback: rawJSONForm,
-+ })
-+ );
-+ };
-+var import_react21 = __toESM(require('react')),
-+ import_theming15 = require('@storybook/theming'),
-+ import_polished5 = require('polished');
-+init_helpers();
-+var RangeInput = import_theming15.styled.input(
-+ ({theme, min, max, value: value2, disabled}) => ({
-+ '&': {width: '100%', backgroundColor: 'transparent', appearance: 'none'},
-+ '&::-webkit-slider-runnable-track': {
-+ background:
-+ theme.base === 'light'
-+ ? `linear-gradient(to right,
-+ ${theme.color.green} 0%, ${theme.color.green} ${((value2 - min) / (max - min)) * 100}%,
-+ ${(0, import_polished5.darken)(0.02, theme.input.background)} ${((value2 - min) / (max - min)) * 100}%,
-+ ${(0, import_polished5.darken)(0.02, theme.input.background)} 100%)`
-+ : `linear-gradient(to right,
-+ ${theme.color.green} 0%, ${theme.color.green} ${((value2 - min) / (max - min)) * 100}%,
-+ ${(0, import_polished5.lighten)(0.02, theme.input.background)} ${((value2 - min) / (max - min)) * 100}%,
-+ ${(0, import_polished5.lighten)(0.02, theme.input.background)} 100%)`,
-+ boxShadow: `${theme.appBorderColor} 0 0 0 1px inset`,
-+ borderRadius: 6,
-+ width: '100%',
-+ height: 6,
-+ cursor: disabled ? 'not-allowed' : 'pointer',
-+ },
-+ '&::-webkit-slider-thumb': {
-+ marginTop: '-6px',
-+ width: 16,
-+ height: 16,
-+ border: `1px solid ${(0, import_polished5.rgba)(theme.appBorderColor, 0.2)}`,
-+ borderRadius: '50px',
-+ boxShadow: `0 1px 3px 0px ${(0, import_polished5.rgba)(theme.appBorderColor, 0.2)}`,
-+ cursor: disabled ? 'not-allowed' : 'grab',
-+ appearance: 'none',
-+ background: `${theme.input.background}`,
-+ transition: 'all 150ms ease-out',
-+ '&:hover': {
-+ background: `${(0, import_polished5.darken)(0.05, theme.input.background)}`,
-+ transform: 'scale3d(1.1, 1.1, 1.1) translateY(-1px)',
-+ transition: 'all 50ms ease-out',
-+ },
-+ '&:active': {
-+ background: `${theme.input.background}`,
-+ transform: 'scale3d(1, 1, 1) translateY(0px)',
-+ cursor: disabled ? 'not-allowed' : 'grab',
-+ },
-+ },
-+ '&:focus': {
-+ outline: 'none',
-+ '&::-webkit-slider-runnable-track': {
-+ borderColor: (0, import_polished5.rgba)(theme.color.secondary, 0.4),
-+ },
-+ '&::-webkit-slider-thumb': {
-+ borderColor: theme.color.secondary,
-+ boxShadow: `0 0px 5px 0px ${theme.color.secondary}`,
-+ },
-+ },
-+ '&::-moz-range-track': {
-+ background:
-+ theme.base === 'light'
-+ ? `linear-gradient(to right,
-+ ${theme.color.green} 0%, ${theme.color.green} ${((value2 - min) / (max - min)) * 100}%,
-+ ${(0, import_polished5.darken)(0.02, theme.input.background)} ${((value2 - min) / (max - min)) * 100}%,
-+ ${(0, import_polished5.darken)(0.02, theme.input.background)} 100%)`
-+ : `linear-gradient(to right,
-+ ${theme.color.green} 0%, ${theme.color.green} ${((value2 - min) / (max - min)) * 100}%,
-+ ${(0, import_polished5.lighten)(0.02, theme.input.background)} ${((value2 - min) / (max - min)) * 100}%,
-+ ${(0, import_polished5.lighten)(0.02, theme.input.background)} 100%)`,
-+ boxShadow: `${theme.appBorderColor} 0 0 0 1px inset`,
-+ borderRadius: 6,
-+ width: '100%',
-+ height: 6,
-+ cursor: disabled ? 'not-allowed' : 'pointer',
-+ outline: 'none',
-+ },
-+ '&::-moz-range-thumb': {
-+ width: 16,
-+ height: 16,
-+ border: `1px solid ${(0, import_polished5.rgba)(theme.appBorderColor, 0.2)}`,
-+ borderRadius: '50px',
-+ boxShadow: `0 1px 3px 0px ${(0, import_polished5.rgba)(theme.appBorderColor, 0.2)}`,
-+ cursor: disabled ? 'not-allowed' : 'grap',
-+ background: `${theme.input.background}`,
-+ transition: 'all 150ms ease-out',
-+ '&:hover': {
-+ background: `${(0, import_polished5.darken)(0.05, theme.input.background)}`,
-+ transform: 'scale3d(1.1, 1.1, 1.1) translateY(-1px)',
-+ transition: 'all 50ms ease-out',
-+ },
-+ '&:active': {
-+ background: `${theme.input.background}`,
-+ transform: 'scale3d(1, 1, 1) translateY(0px)',
-+ cursor: 'grabbing',
-+ },
-+ },
-+ '&::-ms-track': {
-+ background:
-+ theme.base === 'light'
-+ ? `linear-gradient(to right,
-+ ${theme.color.green} 0%, ${theme.color.green} ${((value2 - min) / (max - min)) * 100}%,
-+ ${(0, import_polished5.darken)(0.02, theme.input.background)} ${((value2 - min) / (max - min)) * 100}%,
-+ ${(0, import_polished5.darken)(0.02, theme.input.background)} 100%)`
-+ : `linear-gradient(to right,
-+ ${theme.color.green} 0%, ${theme.color.green} ${((value2 - min) / (max - min)) * 100}%,
-+ ${(0, import_polished5.lighten)(0.02, theme.input.background)} ${((value2 - min) / (max - min)) * 100}%,
-+ ${(0, import_polished5.lighten)(0.02, theme.input.background)} 100%)`,
-+ boxShadow: `${theme.appBorderColor} 0 0 0 1px inset`,
-+ color: 'transparent',
-+ width: '100%',
-+ height: '6px',
-+ cursor: 'pointer',
-+ },
-+ '&::-ms-fill-lower': {borderRadius: 6},
-+ '&::-ms-fill-upper': {borderRadius: 6},
-+ '&::-ms-thumb': {
-+ width: 16,
-+ height: 16,
-+ background: `${theme.input.background}`,
-+ border: `1px solid ${(0, import_polished5.rgba)(theme.appBorderColor, 0.2)}`,
-+ borderRadius: 50,
-+ cursor: 'grab',
-+ marginTop: 0,
-+ },
-+ '@supports (-ms-ime-align:auto)': {'input[type=range]': {margin: '0'}},
-+ })
-+ ),
-+ RangeLabel = import_theming15.styled.span({
-+ paddingLeft: 5,
-+ paddingRight: 5,
-+ fontSize: 12,
-+ whiteSpace: 'nowrap',
-+ fontFeatureSettings: 'tnum',
-+ fontVariantNumeric: 'tabular-nums',
-+ '[aria-readonly=true] &': {opacity: 0.5},
-+ }),
-+ RangeCurrentAndMaxLabel = (0, import_theming15.styled)(RangeLabel)(
-+ ({numberOFDecimalsPlaces, max}) => ({
-+ width: `${numberOFDecimalsPlaces + max.toString().length * 2 + 3}ch`,
-+ textAlign: 'right',
-+ flexShrink: 0,
-+ })
-+ ),
-+ RangeWrapper = import_theming15.styled.div({
-+ display: 'flex',
-+ alignItems: 'center',
-+ width: '100%',
-+ });
-+function getNumberOfDecimalPlaces(number) {
-+ let match = number.toString().match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);
-+ return match
-+ ? Math.max(0, (match[1] ? match[1].length : 0) - (match[2] ? +match[2] : 0))
-+ : 0;
-+}
-+var RangeControl = ({
-+ name,
-+ value: value2,
-+ onChange,
-+ min = 0,
-+ max = 100,
-+ step = 1,
-+ onBlur,
-+ onFocus,
-+ argType,
-+}) => {
-+ let handleChange = (event) => {
-+ onChange(parse2(event.target.value));
-+ },
-+ hasValue = value2 !== void 0,
-+ numberOFDecimalsPlaces = (0, import_react21.useMemo)(
-+ () => getNumberOfDecimalPlaces(step),
-+ [step]
-+ ),
-+ readonly = !!argType?.table?.readonly;
-+ return import_react21.default.createElement(
-+ RangeWrapper,
-+ {'aria-readonly': readonly},
-+ import_react21.default.createElement(RangeLabel, null, min),
-+ import_react21.default.createElement(RangeInput, {
-+ id: getControlId(name),
-+ type: 'range',
-+ disabled: readonly,
-+ onChange: handleChange,
-+ name,
-+ value: value2,
-+ min,
-+ max,
-+ step,
-+ onFocus,
-+ onBlur,
-+ }),
-+ import_react21.default.createElement(
-+ RangeCurrentAndMaxLabel,
-+ {numberOFDecimalsPlaces, max},
-+ hasValue ? value2.toFixed(numberOFDecimalsPlaces) : '--',
-+ ' / ',
-+ max
-+ )
-+ );
-+};
-+var import_react22 = __toESM(require('react')),
-+ import_theming16 = require('@storybook/theming'),
-+ import_components13 = require('@storybook/components');
-+init_helpers();
-+var Wrapper7 = import_theming16.styled.label({display: 'flex'}),
-+ MaxLength = import_theming16.styled.div(({isMaxed}) => ({
-+ marginLeft: '0.75rem',
-+ paddingTop: '0.35rem',
-+ color: isMaxed ? 'red' : void 0,
-+ })),
-+ TextControl = ({
-+ name,
-+ value: value2,
-+ onChange,
-+ onFocus,
-+ onBlur,
-+ maxLength,
-+ argType,
-+ }) => {
-+ let handleChange = (event) => {
-+ onChange(event.target.value);
-+ },
-+ readonly = !!argType?.table?.readonly,
-+ [forceVisible, setForceVisible] = (0, import_react22.useState)(!1),
-+ onForceVisible = (0, import_react22.useCallback)(() => {
-+ onChange(''), setForceVisible(!0);
-+ }, [setForceVisible]);
-+ if (value2 === void 0)
-+ return import_react22.default.createElement(
-+ import_components13.Button,
-+ {
-+ variant: 'outline',
-+ size: 'medium',
-+ disabled: readonly,
-+ id: getControlSetterButtonId(name),
-+ onClick: onForceVisible,
-+ },
-+ 'Set string'
-+ );
-+ let isValid = typeof value2 == 'string';
-+ return import_react22.default.createElement(
-+ Wrapper7,
-+ null,
-+ import_react22.default.createElement(import_components13.Form.Textarea, {
-+ id: getControlId(name),
-+ maxLength,
-+ onChange: handleChange,
-+ disabled: readonly,
-+ size: 'flex',
-+ placeholder: 'Edit string...',
-+ autoFocus: forceVisible,
-+ valid: isValid ? null : 'error',
-+ name,
-+ value: isValid ? value2 : '',
-+ onFocus,
-+ onBlur,
-+ }),
-+ maxLength &&
-+ import_react22.default.createElement(
-+ MaxLength,
-+ {isMaxed: value2?.length === maxLength},
-+ value2?.length ?? 0,
-+ ' / ',
-+ maxLength
-+ )
-+ );
-+ };
-+var import_react23 = __toESM(require('react')),
-+ import_theming17 = require('@storybook/theming'),
-+ import_components14 = require('@storybook/components');
-+init_helpers();
-+var FileInput = (0, import_theming17.styled)(import_components14.Form.Input)({
-+ padding: 10,
-+});
-+function revokeOldUrls(urls) {
-+ urls.forEach((url) => {
-+ url.startsWith('blob:') && URL.revokeObjectURL(url);
-+ });
-+}
-+var FilesControl = ({
-+ onChange,
-+ name,
-+ accept = 'image/*',
-+ value: value2,
-+ argType,
-+}) => {
-+ let inputElement = (0, import_react23.useRef)(null),
-+ readonly = argType?.control?.readOnly;
-+ function handleFileChange(e) {
-+ if (!e.target.files) return;
-+ let fileUrls = Array.from(e.target.files).map((file) =>
-+ URL.createObjectURL(file)
-+ );
-+ onChange(fileUrls), revokeOldUrls(value2);
-+ }
-+ return (
-+ (0, import_react23.useEffect)(() => {
-+ value2 == null &&
-+ inputElement.current &&
-+ (inputElement.current.value = null);
-+ }, [value2, name]),
-+ import_react23.default.createElement(FileInput, {
-+ ref: inputElement,
-+ id: getControlId(name),
-+ type: 'file',
-+ name,
-+ multiple: !0,
-+ disabled: readonly,
-+ onChange: handleFileChange,
-+ accept,
-+ size: 'flex',
-+ })
-+ );
-+};
-+var LazyColorControl = (0, import_react25.lazy)(() =>
-+ Promise.resolve().then(() => (init_Color(), Color_exports))
-+ ),
-+ ColorControl2 = (props) =>
-+ import_react25.default.createElement(
-+ import_react25.Suspense,
-+ {fallback: import_react25.default.createElement('div', null)},
-+ import_react25.default.createElement(LazyColorControl, {...props})
-+ );
-+var Controls2 = {
-+ array: ObjectControl,
-+ object: ObjectControl,
-+ boolean: BooleanControl,
-+ color: ColorControl2,
-+ date: DateControl,
-+ number: NumberControl,
-+ check: OptionsControl,
-+ 'inline-check': OptionsControl,
-+ radio: OptionsControl,
-+ 'inline-radio': OptionsControl,
-+ select: OptionsControl,
-+ 'multi-select': OptionsControl,
-+ range: RangeControl,
-+ text: TextControl,
-+ file: FilesControl,
-+ },
-+ NoControl = () =>
-+ import_react26.default.createElement(
-+ import_react26.default.Fragment,
-+ null,
-+ '-'
-+ ),
-+ ArgControl = ({row, arg, updateArgs, isHovered}) => {
-+ let {key, control} = row,
-+ [isFocused, setFocused] = (0, import_react26.useState)(!1),
-+ [boxedValue, setBoxedValue] = (0, import_react26.useState)({value: arg});
-+ (0, import_react26.useEffect)(() => {
-+ isFocused || setBoxedValue({value: arg});
-+ }, [isFocused, arg]);
-+ let onChange = (0, import_react26.useCallback)(
-+ (argVal) => (
-+ setBoxedValue({value: argVal}), updateArgs({[key]: argVal}), argVal
-+ ),
-+ [updateArgs, key]
-+ ),
-+ onBlur = (0, import_react26.useCallback)(() => setFocused(!1), []),
-+ onFocus = (0, import_react26.useCallback)(() => setFocused(!0), []);
-+ if (!control || control.disable) {
-+ let canBeSetup =
-+ control?.disable !== !0 && row?.type?.name !== 'function';
-+ return isHovered && canBeSetup
-+ ? import_react26.default.createElement(
-+ import_components16.Link,
-+ {
-+ href: 'https://storybook.js.org/docs/react/essentials/controls',
-+ target: '_blank',
-+ withArrow: !0,
-+ },
-+ 'Setup controls'
-+ )
-+ : import_react26.default.createElement(NoControl, null);
-+ }
-+ let props = {
-+ name: key,
-+ argType: row,
-+ value: boxedValue.value,
-+ onChange,
-+ onBlur,
-+ onFocus,
-+ },
-+ Control = Controls2[control.type] || NoControl;
-+ return import_react26.default.createElement(Control, {
-+ ...props,
-+ ...control,
-+ controlType: control.type,
-+ });
-+ };
-+var Name = import_theming19.styled.span({fontWeight: 'bold'}),
-+ Required = import_theming19.styled.span(({theme}) => ({
-+ color: theme.color.negative,
-+ fontFamily: theme.typography.fonts.mono,
-+ cursor: 'help',
-+ })),
-+ Description = import_theming19.styled.div(({theme}) => ({
-+ '&&': {p: {margin: '0 0 10px 0'}, a: {color: theme.color.secondary}},
-+ code: {
-+ ...(0, import_components17.codeCommon)({theme}),
-+ fontSize: 12,
-+ fontFamily: theme.typography.fonts.mono,
-+ },
-+ '& code': {margin: 0, display: 'inline-block'},
-+ '& pre > code': {whiteSpace: 'pre-wrap'},
-+ })),
-+ Type = import_theming19.styled.div(({theme, hasDescription}) => ({
-+ color:
-+ theme.base === 'light'
-+ ? (0, import_polished6.transparentize)(0.1, theme.color.defaultText)
-+ : (0, import_polished6.transparentize)(0.2, theme.color.defaultText),
-+ marginTop: hasDescription ? 4 : 0,
-+ })),
-+ TypeWithJsDoc = import_theming19.styled.div(({theme, hasDescription}) => ({
-+ color:
-+ theme.base === 'light'
-+ ? (0, import_polished6.transparentize)(0.1, theme.color.defaultText)
-+ : (0, import_polished6.transparentize)(0.2, theme.color.defaultText),
-+ marginTop: hasDescription ? 12 : 0,
-+ marginBottom: 12,
-+ })),
-+ StyledTd = import_theming19.styled.td(({theme, expandable}) => ({
-+ paddingLeft: expandable ? '40px !important' : '20px !important',
-+ })),
-+ toSummary = (value2) =>
-+ value2 && {summary: typeof value2 == 'string' ? value2 : value2.name},
-+ ArgRow = (props) => {
-+ let [isHovered, setIsHovered] = (0, import_react27.useState)(!1),
-+ {row, updateArgs, compact, expandable, initialExpandedArgs} = props,
-+ {name, description} = row,
-+ table = row.table || {},
-+ type = table.type || toSummary(row.type),
-+ defaultValue = table.defaultValue || row.defaultValue,
-+ required = row.type?.required,
-+ hasDescription = description != null && description !== '';
-+ return import_react27.default.createElement(
-+ 'tr',
-+ {
-+ onMouseEnter: () => setIsHovered(!0),
-+ onMouseLeave: () => setIsHovered(!1),
-+ },
-+ import_react27.default.createElement(
-+ StyledTd,
-+ {expandable},
-+ import_react27.default.createElement(Name, null, name),
-+ required
-+ ? import_react27.default.createElement(
-+ Required,
-+ {title: 'Required'},
-+ '*'
-+ )
-+ : null
-+ ),
-+ compact
-+ ? null
-+ : import_react27.default.createElement(
-+ 'td',
-+ null,
-+ hasDescription &&
-+ import_react27.default.createElement(
-+ Description,
-+ null,
-+ import_react27.default.createElement(
-+ import_markdown_to_jsx.default,
-+ null,
-+ description
-+ )
-+ ),
-+ table.jsDocTags != null
-+ ? import_react27.default.createElement(
-+ import_react27.default.Fragment,
-+ null,
-+ import_react27.default.createElement(
-+ TypeWithJsDoc,
-+ {hasDescription},
-+ import_react27.default.createElement(ArgValue, {
-+ value: type,
-+ initialExpandedArgs,
-+ })
-+ ),
-+ import_react27.default.createElement(ArgJsDoc, {
-+ tags: table.jsDocTags,
-+ })
-+ )
-+ : import_react27.default.createElement(
-+ Type,
-+ {hasDescription},
-+ import_react27.default.createElement(ArgValue, {
-+ value: type,
-+ initialExpandedArgs,
-+ })
-+ )
-+ ),
-+ compact
-+ ? null
-+ : import_react27.default.createElement(
-+ 'td',
-+ null,
-+ import_react27.default.createElement(ArgValue, {
-+ value: defaultValue,
-+ initialExpandedArgs,
-+ })
-+ ),
-+ updateArgs
-+ ? import_react27.default.createElement(
-+ 'td',
-+ null,
-+ import_react27.default.createElement(ArgControl, {
-+ ...props,
-+ isHovered,
-+ })
-+ )
-+ : null
-+ );
-+ };
-+var import_react28 = __toESM(require('react')),
-+ import_polished7 = require('polished'),
-+ import_theming20 = require('@storybook/theming'),
-+ import_icons6 = require('@storybook/icons'),
-+ ExpanderIconDown = (0, import_theming20.styled)(
-+ import_icons6.ChevronDownIcon
-+ )(({theme}) => ({
-+ marginRight: 8,
-+ marginLeft: -10,
-+ marginTop: -2,
-+ height: 12,
-+ width: 12,
-+ color:
-+ theme.base === 'light'
-+ ? (0, import_polished7.transparentize)(0.25, theme.color.defaultText)
-+ : (0, import_polished7.transparentize)(0.3, theme.color.defaultText),
-+ border: 'none',
-+ display: 'inline-block',
-+ })),
-+ ExpanderIconRight = (0, import_theming20.styled)(
-+ import_icons6.ChevronRightIcon
-+ )(({theme}) => ({
-+ marginRight: 8,
-+ marginLeft: -10,
-+ marginTop: -2,
-+ height: 12,
-+ width: 12,
-+ color:
-+ theme.base === 'light'
-+ ? (0, import_polished7.transparentize)(0.25, theme.color.defaultText)
-+ : (0, import_polished7.transparentize)(0.3, theme.color.defaultText),
-+ border: 'none',
-+ display: 'inline-block',
-+ })),
-+ FlexWrapper = import_theming20.styled.span(({theme}) => ({
-+ display: 'flex',
-+ lineHeight: '20px',
-+ alignItems: 'center',
-+ })),
-+ Section = import_theming20.styled.td(({theme}) => ({
-+ position: 'relative',
-+ letterSpacing: '0.35em',
-+ textTransform: 'uppercase',
-+ fontWeight: theme.typography.weight.bold,
-+ fontSize: theme.typography.size.s1 - 1,
-+ color:
-+ theme.base === 'light'
-+ ? (0, import_polished7.transparentize)(0.4, theme.color.defaultText)
-+ : (0, import_polished7.transparentize)(0.6, theme.color.defaultText),
-+ background: `${theme.background.app} !important`,
-+ '& ~ td': {background: `${theme.background.app} !important`},
-+ })),
-+ Subsection = import_theming20.styled.td(({theme}) => ({
-+ position: 'relative',
-+ fontWeight: theme.typography.weight.bold,
-+ fontSize: theme.typography.size.s2 - 1,
-+ background: theme.background.app,
-+ })),
-+ StyledTd2 = import_theming20.styled.td(() => ({position: 'relative'})),
-+ StyledTr = import_theming20.styled.tr(({theme}) => ({
-+ '&:hover > td': {
-+ backgroundColor: `${(0, import_polished7.lighten)(0.005, theme.background.app)} !important`,
-+ boxShadow: `${theme.color.mediumlight} 0 - 1px 0 0 inset`,
-+ cursor: 'row-resize',
-+ },
-+ })),
-+ ClickIntercept = import_theming20.styled.button(() => ({
-+ background: 'none',
-+ border: 'none',
-+ padding: '0',
-+ font: 'inherit',
-+ position: 'absolute',
-+ top: 0,
-+ bottom: 0,
-+ left: 0,
-+ right: 0,
-+ height: '100%',
-+ width: '100%',
-+ color: 'transparent',
-+ cursor: 'row-resize !important',
-+ })),
-+ SectionRow = ({
-+ level = 'section',
-+ label,
-+ children,
-+ initialExpanded = !0,
-+ colSpan = 3,
-+ }) => {
-+ let [expanded, setExpanded] = (0, import_react28.useState)(initialExpanded),
-+ Level = level === 'subsection' ? Subsection : Section,
-+ itemCount = children?.length || 0,
-+ caption =
-+ level === 'subsection'
-+ ? `${itemCount} item${itemCount !== 1 ? 's' : ''}`
-+ : '',
-+ helperText = `${expanded ? 'Hide' : 'Show'} ${level === 'subsection' ? itemCount : label} item${itemCount !== 1 ? 's' : ''}`;
-+ return import_react28.default.createElement(
-+ import_react28.default.Fragment,
-+ null,
-+ import_react28.default.createElement(
-+ StyledTr,
-+ {title: helperText},
-+ import_react28.default.createElement(
-+ Level,
-+ {colSpan: 1},
-+ import_react28.default.createElement(
-+ ClickIntercept,
-+ {onClick: (e) => setExpanded(!expanded), tabIndex: 0},
-+ helperText
-+ ),
-+ import_react28.default.createElement(
-+ FlexWrapper,
-+ null,
-+ expanded
-+ ? import_react28.default.createElement(ExpanderIconDown, null)
-+ : import_react28.default.createElement(ExpanderIconRight, null),
-+ label
-+ )
-+ ),
-+ import_react28.default.createElement(
-+ StyledTd2,
-+ {colSpan: colSpan - 1},
-+ import_react28.default.createElement(
-+ ClickIntercept,
-+ {
-+ onClick: (e) => setExpanded(!expanded),
-+ tabIndex: -1,
-+ style: {outline: 'none'},
-+ },
-+ helperText
-+ ),
-+ expanded ? null : caption
-+ )
-+ ),
-+ expanded ? children : null
-+ );
-+ };
-+var import_theming21 = require('@storybook/theming'),
-+ import_react29 = __toESM(require('react')),
-+ Row = import_theming21.styled.div(({theme}) => ({
-+ display: 'flex',
-+ gap: 16,
-+ borderBottom: `1px solid ${theme.appBorderColor}`,
-+ '&:last-child': {borderBottom: 0},
-+ })),
-+ Column = import_theming21.styled.div(({numColumn}) => ({
-+ display: 'flex',
-+ flexDirection: 'column',
-+ flex: numColumn || 1,
-+ gap: 5,
-+ padding: '12px 20px',
-+ })),
-+ SkeletonText = import_theming21.styled.div(({theme, width, height}) => ({
-+ animation: `${theme.animation.glow} 1.5s ease-in-out infinite`,
-+ background: theme.appBorderColor,
-+ width: width || '100%',
-+ height: height || 16,
-+ borderRadius: 3,
-+ })),
-+ columnWidth = [2, 4, 2, 2],
-+ Skeleton = () =>
-+ import_react29.default.createElement(
-+ import_react29.default.Fragment,
-+ null,
-+ import_react29.default.createElement(
-+ Row,
-+ null,
-+ import_react29.default.createElement(
-+ Column,
-+ {numColumn: columnWidth[0]},
-+ import_react29.default.createElement(SkeletonText, {width: '60%'})
-+ ),
-+ import_react29.default.createElement(
-+ Column,
-+ {numColumn: columnWidth[1]},
-+ import_react29.default.createElement(SkeletonText, {width: '30%'})
-+ ),
-+ import_react29.default.createElement(
-+ Column,
-+ {numColumn: columnWidth[2]},
-+ import_react29.default.createElement(SkeletonText, {width: '60%'})
-+ ),
-+ import_react29.default.createElement(
-+ Column,
-+ {numColumn: columnWidth[3]},
-+ import_react29.default.createElement(SkeletonText, {width: '60%'})
-+ )
-+ ),
-+ import_react29.default.createElement(
-+ Row,
-+ null,
-+ import_react29.default.createElement(
-+ Column,
-+ {numColumn: columnWidth[0]},
-+ import_react29.default.createElement(SkeletonText, {width: '60%'})
-+ ),
-+ import_react29.default.createElement(
-+ Column,
-+ {numColumn: columnWidth[1]},
-+ import_react29.default.createElement(SkeletonText, {width: '80%'}),
-+ import_react29.default.createElement(SkeletonText, {width: '30%'})
-+ ),
-+ import_react29.default.createElement(
-+ Column,
-+ {numColumn: columnWidth[2]},
-+ import_react29.default.createElement(SkeletonText, {width: '60%'})
-+ ),
-+ import_react29.default.createElement(
-+ Column,
-+ {numColumn: columnWidth[3]},
-+ import_react29.default.createElement(SkeletonText, {width: '60%'})
-+ )
-+ ),
-+ import_react29.default.createElement(
-+ Row,
-+ null,
-+ import_react29.default.createElement(
-+ Column,
-+ {numColumn: columnWidth[0]},
-+ import_react29.default.createElement(SkeletonText, {width: '60%'})
-+ ),
-+ import_react29.default.createElement(
-+ Column,
-+ {numColumn: columnWidth[1]},
-+ import_react29.default.createElement(SkeletonText, {width: '80%'}),
-+ import_react29.default.createElement(SkeletonText, {width: '30%'})
-+ ),
-+ import_react29.default.createElement(
-+ Column,
-+ {numColumn: columnWidth[2]},
-+ import_react29.default.createElement(SkeletonText, {width: '60%'})
-+ ),
-+ import_react29.default.createElement(
-+ Column,
-+ {numColumn: columnWidth[3]},
-+ import_react29.default.createElement(SkeletonText, {width: '60%'})
-+ )
-+ ),
-+ import_react29.default.createElement(
-+ Row,
-+ null,
-+ import_react29.default.createElement(
-+ Column,
-+ {numColumn: columnWidth[0]},
-+ import_react29.default.createElement(SkeletonText, {width: '60%'})
-+ ),
-+ import_react29.default.createElement(
-+ Column,
-+ {numColumn: columnWidth[1]},
-+ import_react29.default.createElement(SkeletonText, {width: '80%'}),
-+ import_react29.default.createElement(SkeletonText, {width: '30%'})
-+ ),
-+ import_react29.default.createElement(
-+ Column,
-+ {numColumn: columnWidth[2]},
-+ import_react29.default.createElement(SkeletonText, {width: '60%'})
-+ ),
-+ import_react29.default.createElement(
-+ Column,
-+ {numColumn: columnWidth[3]},
-+ import_react29.default.createElement(SkeletonText, {width: '60%'})
-+ )
-+ )
-+ );
-+var import_react30 = __toESM(require('react')),
-+ import_theming22 = require('@storybook/theming'),
-+ import_components18 = require('@storybook/components'),
-+ import_icons7 = require('@storybook/icons'),
-+ Wrapper9 = import_theming22.styled.div(({inAddonPanel, theme}) => ({
-+ height: inAddonPanel ? '100%' : 'auto',
-+ display: 'flex',
-+ border: inAddonPanel ? 'none' : `1px solid ${theme.appBorderColor}`,
-+ borderRadius: inAddonPanel ? 0 : theme.appBorderRadius,
-+ padding: inAddonPanel ? 0 : 40,
-+ alignItems: 'center',
-+ justifyContent: 'center',
-+ flexDirection: 'column',
-+ gap: 15,
-+ background: theme.background.content,
-+ boxShadow: 'rgba(0, 0, 0, 0.10) 0 1px 3px 0',
-+ })),
-+ Links = import_theming22.styled.div(({theme}) => ({
-+ display: 'flex',
-+ fontSize: theme.typography.size.s2 - 1,
-+ gap: 25,
-+ })),
-+ Divider = import_theming22.styled.div(({theme}) => ({
-+ width: 1,
-+ height: 16,
-+ backgroundColor: theme.appBorderColor,
-+ })),
-+ Empty = ({inAddonPanel}) => {
-+ let [isLoading, setIsLoading] = (0, import_react30.useState)(!0);
-+ return (
-+ (0, import_react30.useEffect)(() => {
-+ let load = setTimeout(() => {
-+ setIsLoading(!1);
-+ }, 100);
-+ return () => clearTimeout(load);
-+ }, []),
-+ isLoading
-+ ? null
-+ : import_react30.default.createElement(
-+ Wrapper9,
-+ {inAddonPanel},
-+ import_react30.default.createElement(
-+ import_components18.EmptyTabContent,
-+ {
-+ title: inAddonPanel
-+ ? 'Interactive story playground'
-+ : "Args table with interactive controls couldn't be auto-generated",
-+ description: import_react30.default.createElement(
-+ import_react30.default.Fragment,
-+ null,
-+ "Controls give you an easy to use interface to test your components. Set your story args and you'll see controls appearing here automatically."
-+ ),
-+ footer: import_react30.default.createElement(
-+ Links,
-+ null,
-+ inAddonPanel &&
-+ import_react30.default.createElement(
-+ import_react30.default.Fragment,
-+ null,
-+ import_react30.default.createElement(
-+ import_components18.Link,
-+ {
-+ href: 'https://youtu.be/0gOfS6K0x0E',
-+ target: '_blank',
-+ withArrow: !0,
-+ },
-+ import_react30.default.createElement(
-+ import_icons7.VideoIcon,
-+ null
-+ ),
-+ ' Watch 5m video'
-+ ),
-+ import_react30.default.createElement(Divider, null),
-+ import_react30.default.createElement(
-+ import_components18.Link,
-+ {
-+ href: 'https://storybook.js.org/docs/essentials/controls',
-+ target: '_blank',
-+ withArrow: !0,
-+ },
-+ import_react30.default.createElement(
-+ import_icons7.DocumentIcon,
-+ null
-+ ),
-+ ' Read docs'
-+ )
-+ ),
-+ !inAddonPanel &&
-+ import_react30.default.createElement(
-+ import_components18.Link,
-+ {
-+ href: 'https://storybook.js.org/docs/essentials/controls',
-+ target: '_blank',
-+ withArrow: !0,
-+ },
-+ import_react30.default.createElement(
-+ import_icons7.DocumentIcon,
-+ null
-+ ),
-+ ' Learn how to set that up'
-+ )
-+ ),
-+ }
-+ )
-+ )
-+ );
-+ };
-+var TableWrapper = import_theming23.styled.table(
-+ ({theme, compact, inAddonPanel}) => ({
-+ '&&': {
-+ borderSpacing: 0,
-+ color: theme.color.defaultText,
-+ 'td, th': {
-+ padding: 0,
-+ border: 'none',
-+ verticalAlign: 'top',
-+ textOverflow: 'ellipsis',
-+ },
-+ fontSize: theme.typography.size.s2 - 1,
-+ lineHeight: '20px',
-+ textAlign: 'left',
-+ width: '100%',
-+ marginTop: inAddonPanel ? 0 : 25,
-+ marginBottom: inAddonPanel ? 0 : 40,
-+ 'thead th:first-of-type, td:first-of-type': {width: '25%'},
-+ 'th:first-of-type, td:first-of-type': {paddingLeft: 20},
-+ 'th:nth-of-type(2), td:nth-of-type(2)': {
-+ ...(compact ? null : {width: '35%'}),
-+ },
-+ 'td:nth-of-type(3)': {...(compact ? null : {width: '15%'})},
-+ 'th:last-of-type, td:last-of-type': {
-+ paddingRight: 20,
-+ ...(compact ? null : {width: '25%'}),
-+ },
-+ th: {
-+ color:
-+ theme.base === 'light'
-+ ? (0, import_polished8.transparentize)(
-+ 0.25,
-+ theme.color.defaultText
-+ )
-+ : (0, import_polished8.transparentize)(
-+ 0.45,
-+ theme.color.defaultText
-+ ),
-+ paddingTop: 10,
-+ paddingBottom: 10,
-+ paddingLeft: 15,
-+ paddingRight: 15,
-+ },
-+ td: {
-+ paddingTop: '10px',
-+ paddingBottom: '10px',
-+ '&:not(:first-of-type)': {paddingLeft: 15, paddingRight: 15},
-+ '&:last-of-type': {paddingRight: 20},
-+ },
-+ marginLeft: inAddonPanel ? 0 : 1,
-+ marginRight: inAddonPanel ? 0 : 1,
-+ tbody: {
-+ ...(inAddonPanel
-+ ? null
-+ : {
-+ filter:
-+ theme.base === 'light'
-+ ? 'drop-shadow(0px 1px 3px rgba(0, 0, 0, 0.10))'
-+ : 'drop-shadow(0px 1px 3px rgba(0, 0, 0, 0.20))',
-+ }),
-+ '> tr > *': {
-+ background: theme.background.content,
-+ borderTop: `1px solid ${theme.appBorderColor}`,
-+ },
-+ ...(inAddonPanel
-+ ? null
-+ : {
-+ '> tr:first-of-type > *': {
-+ borderBlockStart: `1px solid ${theme.appBorderColor}`,
-+ },
-+ '> tr:last-of-type > *': {
-+ borderBlockEnd: `1px solid ${theme.appBorderColor}`,
-+ },
-+ '> tr > *:first-of-type': {
-+ borderInlineStart: `1px solid ${theme.appBorderColor}`,
-+ },
-+ '> tr > *:last-of-type': {
-+ borderInlineEnd: `1px solid ${theme.appBorderColor}`,
-+ },
-+ '> tr:first-of-type > td:first-of-type': {
-+ borderTopLeftRadius: theme.appBorderRadius,
-+ },
-+ '> tr:first-of-type > td:last-of-type': {
-+ borderTopRightRadius: theme.appBorderRadius,
-+ },
-+ '> tr:last-of-type > td:first-of-type': {
-+ borderBottomLeftRadius: theme.appBorderRadius,
-+ },
-+ '> tr:last-of-type > td:last-of-type': {
-+ borderBottomRightRadius: theme.appBorderRadius,
-+ },
-+ }),
-+ },
-+ },
-+ })
-+ ),
-+ StyledIconButton = (0, import_theming23.styled)(
-+ import_components19.IconButton
-+ )(({theme}) => ({margin: '-4px -12px -4px 0'})),
-+ ControlHeadingWrapper = import_theming23.styled.span({
-+ display: 'flex',
-+ justifyContent: 'space-between',
-+ });
-+var sortFns = {
-+ alpha: (a, b) => a.name.localeCompare(b.name),
-+ requiredFirst: (a, b) =>
-+ +!!b.type?.required - +!!a.type?.required || a.name.localeCompare(b.name),
-+ none: void 0,
-+ },
-+ groupRows = (rows, sort) => {
-+ let sections = {ungrouped: [], ungroupedSubsections: {}, sections: {}};
-+ if (!rows) return sections;
-+ Object.entries(rows).forEach(([key, row]) => {
-+ let {category, subcategory} = row?.table || {};
-+ if (category) {
-+ let section = sections.sections[category] || {
-+ ungrouped: [],
-+ subsections: {},
-+ };
-+ if (!subcategory) section.ungrouped.push({key, ...row});
-+ else {
-+ let subsection = section.subsections[subcategory] || [];
-+ subsection.push({key, ...row}),
-+ (section.subsections[subcategory] = subsection);
-+ }
-+ sections.sections[category] = section;
-+ } else if (subcategory) {
-+ let subsection = sections.ungroupedSubsections[subcategory] || [];
-+ subsection.push({key, ...row}),
-+ (sections.ungroupedSubsections[subcategory] = subsection);
-+ } else sections.ungrouped.push({key, ...row});
-+ });
-+ let sortFn = sortFns[sort],
-+ sortSubsection = (record) =>
-+ sortFn
-+ ? Object.keys(record).reduce(
-+ (acc, cur) => ({...acc, [cur]: record[cur].sort(sortFn)}),
-+ {}
-+ )
-+ : record;
-+ return {
-+ ungrouped: sections.ungrouped.sort(sortFn),
-+ ungroupedSubsections: sortSubsection(sections.ungroupedSubsections),
-+ sections: Object.keys(sections.sections).reduce(
-+ (acc, cur) => ({
-+ ...acc,
-+ [cur]: {
-+ ungrouped: sections.sections[cur].ungrouped.sort(sortFn),
-+ subsections: sortSubsection(sections.sections[cur].subsections),
-+ },
-+ }),
-+ {}
-+ ),
-+ };
-+ },
-+ safeIncludeConditionalArg = (row, args, globals) => {
-+ try {
-+ return (0, import_csf.includeConditionalArg)(row, args, globals);
-+ } catch (err) {
-+ return import_client_logger4.once.warn(err.message), !1;
-+ }
-+ },
-+ ArgsTable = (props) => {
-+ let {
-+ updateArgs,
-+ resetArgs,
-+ compact,
-+ inAddonPanel,
-+ initialExpandedArgs,
-+ sort = 'none',
-+ isLoading,
-+ } = props;
-+ if ('error' in props) {
-+ let {error} = props;
-+ return import_react31.default.createElement(
-+ EmptyBlock,
-+ null,
-+ error,
-+ '\xA0',
-+ import_react31.default.createElement(
-+ import_components19.Link,
-+ {
-+ href: 'http://storybook.js.org/docs/',
-+ target: '_blank',
-+ withArrow: !0,
-+ },
-+ import_react31.default.createElement(
-+ import_icons8.DocumentIcon,
-+ null
-+ ),
-+ ' Read the docs'
-+ )
-+ );
-+ }
-+ if (isLoading) return import_react31.default.createElement(Skeleton, null);
-+ let {rows, args, globals} = 'rows' in props && props,
-+ groups = groupRows(
-+ (0, import_pickBy.default)(
-+ rows,
-+ (row) =>
-+ !row?.table?.disable &&
-+ safeIncludeConditionalArg(row, args || {}, globals || {})
-+ ),
-+ sort
-+ ),
-+ hasNoUngrouped = groups.ungrouped.length === 0,
-+ hasNoSections = Object.entries(groups.sections).length === 0,
-+ hasNoUngroupedSubsections =
-+ Object.entries(groups.ungroupedSubsections).length === 0;
-+ if (hasNoUngrouped && hasNoSections && hasNoUngroupedSubsections)
-+ return import_react31.default.createElement(Empty, {inAddonPanel});
-+ let colSpan = 1;
-+ updateArgs && (colSpan += 1), compact || (colSpan += 2);
-+ let expandable = Object.keys(groups.sections).length > 0,
-+ common = {updateArgs, compact, inAddonPanel, initialExpandedArgs};
-+ return import_react31.default.createElement(
-+ import_components19.ResetWrapper,
-+ null,
-+ import_react31.default.createElement(
-+ TableWrapper,
-+ {compact, inAddonPanel, className: 'docblock-argstable sb-unstyled'},
-+ import_react31.default.createElement(
-+ 'thead',
-+ {className: 'docblock-argstable-head'},
-+ import_react31.default.createElement(
-+ 'tr',
-+ null,
-+ import_react31.default.createElement(
-+ 'th',
-+ null,
-+ import_react31.default.createElement('span', null, 'Name')
-+ ),
-+ compact
-+ ? null
-+ : import_react31.default.createElement(
-+ 'th',
-+ null,
-+ import_react31.default.createElement(
-+ 'span',
-+ null,
-+ 'Description'
-+ )
-+ ),
-+ compact
-+ ? null
-+ : import_react31.default.createElement(
-+ 'th',
-+ null,
-+ import_react31.default.createElement('span', null, 'Default')
-+ ),
-+ updateArgs
-+ ? import_react31.default.createElement(
-+ 'th',
-+ null,
-+ import_react31.default.createElement(
-+ ControlHeadingWrapper,
-+ null,
-+ 'Control',
-+ ' ',
-+ !isLoading &&
-+ resetArgs &&
-+ import_react31.default.createElement(
-+ StyledIconButton,
-+ {onClick: () => resetArgs(), title: 'Reset controls'},
-+ import_react31.default.createElement(
-+ import_icons8.UndoIcon,
-+ {'aria-hidden': !0}
-+ )
-+ )
-+ )
-+ )
-+ : null
-+ )
-+ ),
-+ import_react31.default.createElement(
-+ 'tbody',
-+ {className: 'docblock-argstable-body'},
-+ groups.ungrouped.map((row) =>
-+ import_react31.default.createElement(ArgRow, {
-+ key: row.key,
-+ row,
-+ arg: args && args[row.key],
-+ ...common,
-+ })
-+ ),
-+ Object.entries(groups.ungroupedSubsections).map(
-+ ([subcategory, subsection]) =>
-+ import_react31.default.createElement(
-+ SectionRow,
-+ {
-+ key: subcategory,
-+ label: subcategory,
-+ level: 'subsection',
-+ colSpan,
-+ },
-+ subsection.map((row) =>
-+ import_react31.default.createElement(ArgRow, {
-+ key: row.key,
-+ row,
-+ arg: args && args[row.key],
-+ expandable,
-+ ...common,
-+ })
-+ )
-+ )
-+ ),
-+ Object.entries(groups.sections).map(([category, section]) =>
-+ import_react31.default.createElement(
-+ SectionRow,
-+ {key: category, label: category, level: 'section', colSpan},
-+ section.ungrouped.map((row) =>
-+ import_react31.default.createElement(ArgRow, {
-+ key: row.key,
-+ row,
-+ arg: args && args[row.key],
-+ ...common,
-+ })
-+ ),
-+ Object.entries(section.subsections).map(
-+ ([subcategory, subsection]) =>
-+ import_react31.default.createElement(
-+ SectionRow,
-+ {
-+ key: subcategory,
-+ label: subcategory,
-+ level: 'subsection',
-+ colSpan,
-+ },
-+ subsection.map((row) =>
-+ import_react31.default.createElement(ArgRow, {
-+ key: row.key,
-+ row,
-+ arg: args && args[row.key],
-+ expandable,
-+ ...common,
-+ })
-+ )
-+ )
-+ )
-+ )
-+ )
-+ )
-+ )
-+ );
-+ };
-+var import_react32 = __toESM(require('react')),
-+ import_components20 = require('@storybook/components');
-+var TabbedArgsTable = ({tabs, ...props}) => {
-+ let entries = Object.entries(tabs);
-+ return entries.length === 1
-+ ? import_react32.default.createElement(ArgsTable, {
-+ ...entries[0][1],
-+ ...props,
-+ })
-+ : import_react32.default.createElement(
-+ import_components20.TabsState,
-+ null,
-+ entries.map((entry, index) => {
-+ let [label, table] = entry,
-+ id2 = `prop_table_div_${label}`,
-+ Component4 = 'div',
-+ argsTableProps = index === 0 ? props : {sort: props.sort};
-+ return import_react32.default.createElement(
-+ Component4,
-+ {key: id2, id: id2, title: label},
-+ ({active}) =>
-+ active
-+ ? import_react32.default.createElement(ArgsTable, {
-+ key: `prop_table_${label}`,
-+ ...table,
-+ ...argsTableProps,
-+ })
-+ : null
-+ );
-+ })
-+ );
-+};
-+var import_react33 = __toESM(require('react')),
-+ import_polished9 = require('polished'),
-+ import_theming24 = require('@storybook/theming'),
-+ import_components21 = require('@storybook/components');
-+var Label4 = import_theming24.styled.div(({theme}) => ({
-+ marginRight: 30,
-+ fontSize: `${theme.typography.size.s1}px`,
-+ color:
-+ theme.base === 'light'
-+ ? (0, import_polished9.transparentize)(0.4, theme.color.defaultText)
-+ : (0, import_polished9.transparentize)(0.6, theme.color.defaultText),
-+ })),
-+ Sample = import_theming24.styled.div({
-+ overflow: 'hidden',
-+ whiteSpace: 'nowrap',
-+ textOverflow: 'ellipsis',
-+ }),
-+ TypeSpecimen = import_theming24.styled.div({
-+ display: 'flex',
-+ flexDirection: 'row',
-+ alignItems: 'baseline',
-+ '&:not(:last-child)': {marginBottom: '1rem'},
-+ }),
-+ Wrapper10 = import_theming24.styled.div(
-+ import_components21.withReset,
-+ ({theme}) => ({
-+ ...getBlockBackgroundStyle(theme),
-+ margin: '25px 0 40px',
-+ padding: '30px 20px',
-+ })
-+ ),
-+ Typeset = ({fontFamily, fontSizes, fontWeight, sampleText, ...props}) =>
-+ import_react33.default.createElement(
-+ Wrapper10,
-+ {...props, className: 'docblock-typeset sb-unstyled'},
-+ fontSizes.map((size) =>
-+ import_react33.default.createElement(
-+ TypeSpecimen,
-+ {key: size},
-+ import_react33.default.createElement(Label4, null, size),
-+ import_react33.default.createElement(
-+ Sample,
-+ {style: {fontFamily, fontSize: size, fontWeight, lineHeight: 1.2}},
-+ sampleText || 'Was he a beast if music could move him so?'
-+ )
-+ )
-+ )
-+ );
-+var import_react34 = __toESM(require('react')),
-+ import_polished10 = require('polished'),
-+ import_theming25 = require('@storybook/theming'),
-+ import_components22 = require('@storybook/components');
-+var ItemTitle = import_theming25.styled.div(({theme}) => ({
-+ fontWeight: theme.typography.weight.bold,
-+ color: theme.color.defaultText,
-+ })),
-+ ItemSubtitle = import_theming25.styled.div(({theme}) => ({
-+ color:
-+ theme.base === 'light'
-+ ? (0, import_polished10.transparentize)(0.2, theme.color.defaultText)
-+ : (0, import_polished10.transparentize)(0.6, theme.color.defaultText),
-+ })),
-+ ItemDescription = import_theming25.styled.div({
-+ flex: '0 0 30%',
-+ lineHeight: '20px',
-+ marginTop: 5,
-+ }),
-+ SwatchLabel = import_theming25.styled.div(({theme}) => ({
-+ flex: 1,
-+ textAlign: 'center',
-+ fontFamily: theme.typography.fonts.mono,
-+ fontSize: theme.typography.size.s1,
-+ lineHeight: 1,
-+ overflow: 'hidden',
-+ color:
-+ theme.base === 'light'
-+ ? (0, import_polished10.transparentize)(0.4, theme.color.defaultText)
-+ : (0, import_polished10.transparentize)(0.6, theme.color.defaultText),
-+ '> div': {
-+ display: 'inline-block',
-+ overflow: 'hidden',
-+ maxWidth: '100%',
-+ textOverflow: 'ellipsis',
-+ },
-+ span: {display: 'block', marginTop: 2},
-+ })),
-+ SwatchLabels = import_theming25.styled.div({
-+ display: 'flex',
-+ flexDirection: 'row',
-+ }),
-+ Swatch2 = import_theming25.styled.div(({background}) => ({
-+ position: 'relative',
-+ flex: 1,
-+ '&::before': {
-+ position: 'absolute',
-+ top: 0,
-+ left: 0,
-+ width: '100%',
-+ height: '100%',
-+ background,
-+ content: '""',
-+ },
-+ })),
-+ SwatchColors = import_theming25.styled.div(({theme}) => ({
-+ ...getBlockBackgroundStyle(theme),
-+ display: 'flex',
-+ flexDirection: 'row',
-+ height: 50,
-+ marginBottom: 5,
-+ overflow: 'hidden',
-+ backgroundColor: 'white',
-+ backgroundImage:
-+ 'repeating-linear-gradient(-45deg, #ccc, #ccc 1px, #fff 1px, #fff 16px)',
-+ backgroundClip: 'padding-box',
-+ })),
-+ SwatchSpecimen = import_theming25.styled.div({
-+ display: 'flex',
-+ flexDirection: 'column',
-+ flex: 1,
-+ position: 'relative',
-+ marginBottom: 30,
-+ }),
-+ Swatches2 = import_theming25.styled.div({
-+ flex: 1,
-+ display: 'flex',
-+ flexDirection: 'row',
-+ }),
-+ Item = import_theming25.styled.div({
-+ display: 'flex',
-+ alignItems: 'flex-start',
-+ }),
-+ ListName = import_theming25.styled.div({flex: '0 0 30%'}),
-+ ListSwatches = import_theming25.styled.div({flex: 1}),
-+ ListHeading = import_theming25.styled.div(({theme}) => ({
-+ display: 'flex',
-+ flexDirection: 'row',
-+ alignItems: 'center',
-+ paddingBottom: 20,
-+ fontWeight: theme.typography.weight.bold,
-+ color:
-+ theme.base === 'light'
-+ ? (0, import_polished10.transparentize)(0.4, theme.color.defaultText)
-+ : (0, import_polished10.transparentize)(0.6, theme.color.defaultText),
-+ })),
-+ List = import_theming25.styled.div(({theme}) => ({
-+ fontSize: theme.typography.size.s2,
-+ lineHeight: '20px',
-+ display: 'flex',
-+ flexDirection: 'column',
-+ }));
-+function renderSwatch(color, index) {
-+ return import_react34.default.createElement(Swatch2, {
-+ key: `${color}-${index}`,
-+ title: color,
-+ background: color,
-+ });
-+}
-+function renderSwatchLabel(color, index, colorDescription) {
-+ return import_react34.default.createElement(
-+ SwatchLabel,
-+ {key: `${color}-${index}`, title: color},
-+ import_react34.default.createElement(
-+ 'div',
-+ null,
-+ color,
-+ colorDescription &&
-+ import_react34.default.createElement('span', null, colorDescription)
-+ )
-+ );
-+}
-+function renderSwatchSpecimen(colors) {
-+ if (Array.isArray(colors))
-+ return import_react34.default.createElement(
-+ SwatchSpecimen,
-+ null,
-+ import_react34.default.createElement(
-+ SwatchColors,
-+ null,
-+ colors.map((color, index) => renderSwatch(color, index))
-+ ),
-+ import_react34.default.createElement(
-+ SwatchLabels,
-+ null,
-+ colors.map((color, index) => renderSwatchLabel(color, index))
-+ )
-+ );
-+ let swatchElements = [],
-+ labelElements = [];
-+ for (let colorKey in colors) {
-+ let colorValue = colors[colorKey];
-+ swatchElements.push(renderSwatch(colorValue, swatchElements.length)),
-+ labelElements.push(
-+ renderSwatchLabel(colorKey, labelElements.length, colorValue)
-+ );
-+ }
-+ return import_react34.default.createElement(
-+ SwatchSpecimen,
-+ null,
-+ import_react34.default.createElement(SwatchColors, null, swatchElements),
-+ import_react34.default.createElement(SwatchLabels, null, labelElements)
-+ );
-+}
-+var ColorItem = ({title, subtitle, colors}) =>
-+ import_react34.default.createElement(
-+ Item,
-+ null,
-+ import_react34.default.createElement(
-+ ItemDescription,
-+ null,
-+ import_react34.default.createElement(ItemTitle, null, title),
-+ import_react34.default.createElement(ItemSubtitle, null, subtitle)
-+ ),
-+ import_react34.default.createElement(
-+ Swatches2,
-+ null,
-+ renderSwatchSpecimen(colors)
-+ )
-+ ),
-+ ColorPalette = ({children, ...props}) =>
-+ import_react34.default.createElement(
-+ import_components22.ResetWrapper,
-+ null,
-+ import_react34.default.createElement(
-+ List,
-+ {...props, className: 'docblock-colorpalette sb-unstyled'},
-+ import_react34.default.createElement(
-+ ListHeading,
-+ null,
-+ import_react34.default.createElement(ListName, null, 'Name'),
-+ import_react34.default.createElement(ListSwatches, null, 'Swatches')
-+ ),
-+ children
-+ )
-+ );
-+var import_react35 = __toESM(require('react')),
-+ import_theming26 = require('@storybook/theming'),
-+ import_components23 = require('@storybook/components');
-+var ItemLabel = import_theming26.styled.div(({theme}) => ({
-+ fontFamily: theme.typography.fonts.base,
-+ fontSize: theme.typography.size.s2,
-+ color: theme.color.defaultText,
-+ marginLeft: 10,
-+ lineHeight: 1.2,
-+ })),
-+ ItemSpecimen = import_theming26.styled.div(({theme}) => ({
-+ ...getBlockBackgroundStyle(theme),
-+ overflow: 'hidden',
-+ height: 40,
-+ width: 40,
-+ display: 'flex',
-+ alignItems: 'center',
-+ justifyContent: 'center',
-+ flex: 'none',
-+ '> img, > svg': {width: 20, height: 20},
-+ })),
-+ Item2 = import_theming26.styled.div({
-+ display: 'inline-flex',
-+ flexDirection: 'row',
-+ alignItems: 'center',
-+ flex: '0 1 calc(20% - 10px)',
-+ minWidth: 120,
-+ margin: '0px 10px 30px 0',
-+ }),
-+ List2 = import_theming26.styled.div({display: 'flex', flexFlow: 'row wrap'}),
-+ IconItem = ({name, children}) =>
-+ import_react35.default.createElement(
-+ Item2,
-+ null,
-+ import_react35.default.createElement(ItemSpecimen, null, children),
-+ import_react35.default.createElement(ItemLabel, null, name)
-+ ),
-+ IconGallery = ({children, ...props}) =>
-+ import_react35.default.createElement(
-+ import_components23.ResetWrapper,
-+ null,
-+ import_react35.default.createElement(
-+ List2,
-+ {...props, className: 'docblock-icongallery sb-unstyled'},
-+ children
-+ )
-+ );
-+var import_react36 = __toESM(require('react')),
-+ anchorBlockIdFromId = (storyId) => `anchor--${storyId}`,
-+ Anchor = ({storyId, children}) =>
-+ import_react36.default.createElement(
-+ 'div',
-+ {id: anchorBlockIdFromId(storyId), className: 'sb-anchor'},
-+ children
-+ );
-+var import_preview_api = require('@storybook/preview-api'),
-+ import_react39 = __toESM(require('react'));
-+var import_react38 = require('react');
-+var import_react37 = require('react'),
-+ import_global5 = require('@storybook/global');
-+import_global5.global &&
-+ import_global5.global.__DOCS_CONTEXT__ === void 0 &&
-+ ((import_global5.global.__DOCS_CONTEXT__ = (0, import_react37.createContext)(
-+ null
-+ )),
-+ (import_global5.global.__DOCS_CONTEXT__.displayName = 'DocsContext'));
-+var DocsContext = import_global5.global
-+ ? import_global5.global.__DOCS_CONTEXT__
-+ : (0, import_react37.createContext)(null);
-+var useOf = (moduleExportOrType, validTypes) =>
-+ (0, import_react38.useContext)(DocsContext).resolveOf(
-+ moduleExportOrType,
-+ validTypes
-+ );
-+var titleCase = (str) =>
-+ str
-+ .split('-')
-+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
-+ .join(''),
-+ getComponentName = (component) => {
-+ if (component)
-+ return typeof component == 'string'
-+ ? component.includes('-')
-+ ? titleCase(component)
-+ : component
-+ : component.__docgenInfo && component.__docgenInfo.displayName
-+ ? component.__docgenInfo.displayName
-+ : component.name;
-+ };
-+function scrollToElement(element, block = 'start') {
-+ element.scrollIntoView({behavior: 'smooth', block, inline: 'nearest'});
-+}
-+function extractComponentArgTypes(component, parameters) {
-+ let {extractArgTypes} = parameters.docs || {};
-+ if (!extractArgTypes)
-+ throw new Error(
-+ 'Args unsupported. See Args documentation for your framework.'
-+ );
-+ return extractArgTypes(component);
-+}
-+function getArgTypesFromResolved(resolved) {
-+ if (resolved.type === 'component') {
-+ let {
-+ component: component2,
-+ projectAnnotations: {parameters: parameters2},
-+ } = resolved;
-+ return {
-+ argTypes: extractComponentArgTypes(component2, parameters2),
-+ parameters: parameters2,
-+ component: component2,
-+ };
-+ }
-+ if (resolved.type === 'meta') {
-+ let {
-+ preparedMeta: {
-+ argTypes: argTypes2,
-+ parameters: parameters2,
-+ component: component2,
-+ subcomponents: subcomponents2,
-+ },
-+ } = resolved;
-+ return {
-+ argTypes: argTypes2,
-+ parameters: parameters2,
-+ component: component2,
-+ subcomponents: subcomponents2,
-+ };
-+ }
-+ let {
-+ story: {argTypes, parameters, component, subcomponents},
-+ } = resolved;
-+ return {argTypes, parameters, component, subcomponents};
-+}
-+var ArgTypes = (props) => {
-+ let {of} = props;
-+ if ('of' in props && of === void 0)
-+ throw new Error(
-+ 'Unexpected `of={undefined}`, did you mistype a CSF file reference?'
-+ );
-+ let resolved = useOf(of || 'meta'),
-+ {argTypes, parameters, component, subcomponents} =
-+ getArgTypesFromResolved(resolved),
-+ argTypesParameters = parameters.docs?.argTypes || {},
-+ include = props.include ?? argTypesParameters.include,
-+ exclude = props.exclude ?? argTypesParameters.exclude,
-+ sort = props.sort ?? argTypesParameters.sort,
-+ filteredArgTypes = (0, import_preview_api.filterArgTypes)(
-+ argTypes,
-+ include,
-+ exclude
-+ );
-+ if (!(!!subcomponents && Object.keys(subcomponents).length > 0))
-+ return import_react39.default.createElement(ArgsTable, {
-+ rows: filteredArgTypes,
-+ sort,
-+ });
-+ let mainComponentName = getComponentName(component),
-+ subcomponentTabs = Object.fromEntries(
-+ Object.entries(subcomponents).map(([key, comp]) => [
-+ key,
-+ {
-+ rows: (0, import_preview_api.filterArgTypes)(
-+ extractComponentArgTypes(comp, parameters),
-+ include,
-+ exclude
-+ ),
-+ sort,
-+ },
-+ ])
-+ ),
-+ tabs = {
-+ [mainComponentName]: {rows: filteredArgTypes, sort},
-+ ...subcomponentTabs,
-+ };
-+ return import_react39.default.createElement(TabbedArgsTable, {tabs, sort});
-+};
-+var import_react44 = __toESM(require('react'));
-+var import_react40 = __toESM(require('react')),
-+ import_docs_tools = require('@storybook/docs-tools'),
-+ import_telejson = require('telejson');
-+function argsHash(args) {
-+ return (0, import_telejson.stringify)(args, {allowFunction: !1});
-+}
-+var SourceContext = (0, import_react40.createContext)({sources: {}}),
-+ UNKNOWN_ARGS_HASH = '--unknown--',
-+ SourceContainer = ({children, channel}) => {
-+ let [sources, setSources] = (0, import_react40.useState)({});
-+ return (
-+ (0, import_react40.useEffect)(() => {
-+ let handleSnippetRendered = (
-+ idOrEvent,
-+ inputSource = null,
-+ inputFormat = !1
-+ ) => {
-+ let {
-+ id: id2,
-+ args = void 0,
-+ source,
-+ format: format2,
-+ } = typeof idOrEvent == 'string'
-+ ? {id: idOrEvent, source: inputSource, format: inputFormat}
-+ : idOrEvent,
-+ hash = args ? argsHash(args) : UNKNOWN_ARGS_HASH;
-+ setSources((current) => ({
-+ ...current,
-+ [id2]: {...current[id2], [hash]: {code: source, format: format2}},
-+ }));
-+ };
-+ return (
-+ channel.on(import_docs_tools.SNIPPET_RENDERED, handleSnippetRendered),
-+ () =>
-+ channel.off(
-+ import_docs_tools.SNIPPET_RENDERED,
-+ handleSnippetRendered
-+ )
-+ );
-+ }, []),
-+ import_react40.default.createElement(
-+ SourceContext.Provider,
-+ {value: {sources}},
-+ children
-+ )
-+ );
-+ };
-+var import_react41 = __toESM(require('react')),
-+ import_docs_tools2 = require('@storybook/docs-tools');
-+var getStorySource = (storyId, args, sourceContext) => {
-+ let {sources} = sourceContext,
-+ sourceMap = sources?.[storyId];
-+ return (
-+ sourceMap?.[argsHash(args)] ||
-+ sourceMap?.[UNKNOWN_ARGS_HASH] || {code: ''}
-+ );
-+ },
-+ getSnippet = ({snippet, storyContext, typeFromProps, transformFromProps}) => {
-+ let {__isArgsStory: isArgsStory} = storyContext.parameters,
-+ sourceParameters = storyContext.parameters.docs?.source || {},
-+ type =
-+ typeFromProps ||
-+ sourceParameters.type ||
-+ import_docs_tools2.SourceType.AUTO;
-+ if (sourceParameters.code !== void 0) return sourceParameters.code;
-+ let code =
-+ type === import_docs_tools2.SourceType.DYNAMIC ||
-+ (type === import_docs_tools2.SourceType.AUTO && snippet && isArgsStory)
-+ ? snippet
-+ : sourceParameters.originalSource || '';
-+ return (
-+ (transformFromProps ?? sourceParameters.transform)?.(
-+ code,
-+ storyContext
-+ ) || code
-+ );
-+ },
-+ useSourceProps = (props, docsContext, sourceContext) => {
-+ let story,
-+ {of} = props;
-+ if ('of' in props && of === void 0)
-+ throw new Error(
-+ 'Unexpected `of={undefined}`, did you mistype a CSF file reference?'
-+ );
-+ if (of) story = docsContext.resolveOf(of, ['story']).story;
-+ else
-+ try {
-+ story = docsContext.storyById();
-+ } catch {}
-+ let sourceParameters = story?.parameters?.docs?.source || {},
-+ {code} = props,
-+ format2 = props.format ?? sourceParameters.format,
-+ language = props.language ?? sourceParameters.language ?? 'jsx',
-+ dark = props.dark ?? sourceParameters.dark ?? !1;
-+ if (!code && !story) return {error: 'Oh no! The source is not available.'};
-+ if (code) return {code, format: format2, language, dark};
-+ let storyContext = docsContext.getStoryContext(story),
-+ argsForSource = props.__forceInitialArgs
-+ ? storyContext.initialArgs
-+ : storyContext.unmappedArgs,
-+ source = getStorySource(story.id, argsForSource, sourceContext);
-+ return (
-+ (format2 = source.format ?? story.parameters.docs?.source?.format ?? !1),
-+ {
-+ code: getSnippet({
-+ snippet: source.code,
-+ storyContext: {...storyContext, args: argsForSource},
-+ typeFromProps: props.type,
-+ transformFromProps: props.transform,
-+ }),
-+ format: format2,
-+ language,
-+ dark,
-+ }
-+ );
-+ },
-+ Source2 = (props) => {
-+ let sourceContext = (0, import_react41.useContext)(SourceContext),
-+ docsContext = (0, import_react41.useContext)(DocsContext),
-+ sourceProps = useSourceProps(props, docsContext, sourceContext);
-+ return import_react41.default.createElement(Source, {...sourceProps});
-+ };
-+var import_react43 = __toESM(require('react'));
-+var import_react42 = require('react');
-+function useStory(storyId, context) {
-+ let stories = useStories([storyId], context);
-+ return stories && stories[0];
-+}
-+function useStories(storyIds, context) {
-+ let [storiesById, setStories] = (0, import_react42.useState)({});
-+ return (
-+ (0, import_react42.useEffect)(() => {
-+ Promise.all(
-+ storyIds.map(async (storyId) => {
-+ let story = await context.loadStory(storyId);
-+ setStories((current) =>
-+ current[storyId] === story
-+ ? current
-+ : {...current, [storyId]: story}
-+ );
-+ })
-+ );
-+ }),
-+ storyIds.map((storyId) => {
-+ if (storiesById[storyId]) return storiesById[storyId];
-+ try {
-+ return context.storyById(storyId);
-+ } catch {
-+ return null;
-+ }
-+ })
-+ );
-+}
-+var getStoryId2 = (props, context) => {
-+ let {of, meta} = props;
-+ if ('of' in props && of === void 0)
-+ throw new Error(
-+ 'Unexpected `of={undefined}`, did you mistype a CSF file reference?'
-+ );
-+ return (
-+ meta && context.referenceMeta(meta, !1),
-+ context.resolveOf(of || 'story', ['story']).story.id
-+ );
-+ },
-+ getStoryProps = (props, story, context) => {
-+ let {parameters = {}} = story || {},
-+ {docs = {}} = parameters,
-+ storyParameters = docs.story || {};
-+ if (docs.disable) return null;
-+ if (props.inline ?? storyParameters.inline ?? !1) {
-+ let height2 = props.height ?? storyParameters.height,
-+ autoplay = props.autoplay ?? storyParameters.autoplay ?? !1;
-+ return {
-+ story,
-+ inline: !0,
-+ height: height2,
-+ autoplay,
-+ forceInitialArgs: !!props.__forceInitialArgs,
-+ primary: !!props.__primary,
-+ renderStoryToElement: context.renderStoryToElement,
-+ };
-+ }
-+ let height =
-+ props.height ??
-+ storyParameters.height ??
-+ storyParameters.iframeHeight ??
-+ '100px';
-+ return {story, inline: !1, height, primary: !!props.__primary};
-+ },
-+ Story2 = (props = {__forceInitialArgs: !1, __primary: !1}) => {
-+ let context = (0, import_react43.useContext)(DocsContext),
-+ storyId = getStoryId2(props, context),
-+ story = useStory(storyId, context);
-+ if (!story)
-+ return import_react43.default.createElement(StorySkeleton, null);
-+ let storyProps = getStoryProps(props, story, context);
-+ return storyProps
-+ ? import_react43.default.createElement(Story, {...storyProps})
-+ : null;
-+ };
-+var Canvas = (props) => {
-+ let docsContext = (0, import_react44.useContext)(DocsContext),
-+ sourceContext = (0, import_react44.useContext)(SourceContext),
-+ {of, source} = props;
-+ if ('of' in props && of === void 0)
-+ throw new Error(
-+ 'Unexpected `of={undefined}`, did you mistype a CSF file reference?'
-+ );
-+ let {story} = useOf(of || 'story', ['story']),
-+ sourceProps = useSourceProps(
-+ {...source, ...(of && {of})},
-+ docsContext,
-+ sourceContext
-+ ),
-+ layout =
-+ props.layout ??
-+ story.parameters.layout ??
-+ story.parameters.docs?.canvas?.layout ??
-+ 'padded',
-+ withToolbar =
-+ props.withToolbar ?? story.parameters.docs?.canvas?.withToolbar ?? !1,
-+ additionalActions =
-+ props.additionalActions ??
-+ story.parameters.docs?.canvas?.additionalActions,
-+ sourceState =
-+ props.sourceState ??
-+ story.parameters.docs?.canvas?.sourceState ??
-+ 'hidden',
-+ className = props.className ?? story.parameters.docs?.canvas?.className;
-+ return import_react44.default.createElement(
-+ Preview,
-+ {
-+ withSource: sourceState === 'none' ? void 0 : sourceProps,
-+ isExpanded: sourceState === 'shown',
-+ withToolbar,
-+ additionalActions,
-+ className,
-+ layout,
-+ },
-+ import_react44.default.createElement(Story2, {
-+ of: of || story.moduleExport,
-+ meta: props.meta,
-+ ...props.story,
-+ })
-+ );
-+};
-+var import_react47 = __toESM(require('react')),
-+ import_preview_api2 = require('@storybook/preview-api');
-+var import_react45 = require('react'),
-+ import_core_events = require('@storybook/core-events'),
-+ useGlobals = (story, context) => {
-+ let storyContext = context.getStoryContext(story),
-+ [globals, setGlobals] = (0, import_react45.useState)(
-+ storyContext.globals
-+ );
-+ return (
-+ (0, import_react45.useEffect)(() => {
-+ let onGlobalsUpdated = (changed) => {
-+ setGlobals(changed.globals);
-+ };
-+ return (
-+ context.channel.on(
-+ import_core_events.GLOBALS_UPDATED,
-+ onGlobalsUpdated
-+ ),
-+ () =>
-+ context.channel.off(
-+ import_core_events.GLOBALS_UPDATED,
-+ onGlobalsUpdated
-+ )
-+ );
-+ }, [context.channel]),
-+ [globals]
-+ );
-+ };
-+var import_react46 = require('react'),
-+ import_core_events2 = require('@storybook/core-events'),
-+ useArgs = (story, context) => {
-+ let result = useArgsIfDefined(story, context);
-+ if (!result) throw new Error('No result when story was defined');
-+ return result;
-+ },
-+ useArgsIfDefined = (story, context) => {
-+ let storyContext = story ? context.getStoryContext(story) : {args: {}},
-+ {id: storyId} = story || {id: 'none'},
-+ [args, setArgs] = (0, import_react46.useState)(storyContext.args);
-+ (0, import_react46.useEffect)(() => {
-+ let onArgsUpdated = (changed) => {
-+ changed.storyId === storyId && setArgs(changed.args);
-+ };
-+ return (
-+ context.channel.on(
-+ import_core_events2.STORY_ARGS_UPDATED,
-+ onArgsUpdated
-+ ),
-+ () =>
-+ context.channel.off(
-+ import_core_events2.STORY_ARGS_UPDATED,
-+ onArgsUpdated
-+ )
-+ );
-+ }, [storyId, context.channel]);
-+ let updateArgs = (0, import_react46.useCallback)(
-+ (updatedArgs) =>
-+ context.channel.emit(import_core_events2.UPDATE_STORY_ARGS, {
-+ storyId,
-+ updatedArgs,
-+ }),
-+ [storyId, context.channel]
-+ ),
-+ resetArgs = (0, import_react46.useCallback)(
-+ (argNames) =>
-+ context.channel.emit(import_core_events2.RESET_STORY_ARGS, {
-+ storyId,
-+ argNames,
-+ }),
-+ [storyId, context.channel]
-+ );
-+ return story && [args, updateArgs, resetArgs];
-+ };
-+function extractComponentArgTypes2(component, parameters) {
-+ let {extractArgTypes} = parameters.docs || {};
-+ if (!extractArgTypes)
-+ throw new Error(
-+ 'Args unsupported. See Args documentation for your framework.'
-+ );
-+ return extractArgTypes(component);
-+}
-+var Controls3 = (props) => {
-+ let {of} = props;
-+ if ('of' in props && of === void 0)
-+ throw new Error(
-+ 'Unexpected `of={undefined}`, did you mistype a CSF file reference?'
-+ );
-+ let context = (0, import_react47.useContext)(DocsContext),
-+ {story} = context.resolveOf(of || 'story', ['story']),
-+ {parameters, argTypes, component, subcomponents} = story,
-+ controlsParameters = parameters.docs?.controls || {},
-+ include = props.include ?? controlsParameters.include,
-+ exclude = props.exclude ?? controlsParameters.exclude,
-+ sort = props.sort ?? controlsParameters.sort,
-+ [args, updateArgs, resetArgs] = useArgs(story, context),
-+ [globals] = useGlobals(story, context),
-+ filteredArgTypes = (0, import_preview_api2.filterArgTypes)(
-+ argTypes,
-+ include,
-+ exclude
-+ );
-+ if (!(!!subcomponents && Object.keys(subcomponents).length > 0))
-+ return Object.keys(filteredArgTypes).length > 0 ||
-+ Object.keys(args).length > 0
-+ ? import_react47.default.createElement(ArgsTable, {
-+ rows: filteredArgTypes,
-+ sort,
-+ args,
-+ globals,
-+ updateArgs,
-+ resetArgs,
-+ })
-+ : null;
-+ let mainComponentName = getComponentName(component),
-+ subcomponentTabs = Object.fromEntries(
-+ Object.entries(subcomponents).map(([key, comp]) => [
-+ key,
-+ {
-+ rows: (0, import_preview_api2.filterArgTypes)(
-+ extractComponentArgTypes2(comp, parameters),
-+ include,
-+ exclude
-+ ),
-+ sort,
-+ },
-+ ])
-+ ),
-+ tabs = {
-+ [mainComponentName]: {rows: filteredArgTypes, sort},
-+ ...subcomponentTabs,
-+ };
-+ return import_react47.default.createElement(TabbedArgsTable, {
-+ tabs,
-+ sort,
-+ args,
-+ globals,
-+ updateArgs,
-+ resetArgs,
-+ });
-+};
-+var import_react50 = __toESM(require('react'));
-+var import_react49 = __toESM(require('react')),
-+ import_markdown_to_jsx2 = __toESM(require('markdown-to-jsx')),
-+ import_ts_dedent = __toESM(require('ts-dedent'));
-+var import_react48 = __toESM(require('react')),
-+ import_core_events3 = require('@storybook/core-events'),
-+ import_components28 = require('@storybook/components'),
-+ import_global6 = require('@storybook/global'),
-+ import_theming27 = require('@storybook/theming'),
-+ import_icons9 = require('@storybook/icons');
-+var {document: document2} = import_global6.global,
-+ assertIsFn = (val) => {
-+ if (typeof val != 'function')
-+ throw new Error(`Expected story function, got: ${val}`);
-+ return val;
-+ },
-+ AddContext = (props) => {
-+ let {children, ...rest} = props,
-+ parentContext = import_react48.default.useContext(DocsContext);
-+ return import_react48.default.createElement(
-+ DocsContext.Provider,
-+ {value: {...parentContext, ...rest}},
-+ children
-+ );
-+ },
-+ CodeOrSourceMdx = ({className, children, ...rest}) => {
-+ if (
-+ typeof className != 'string' &&
-+ (typeof children != 'string' || !children.match(/[\n\r]/g))
-+ )
-+ return import_react48.default.createElement(
-+ import_components28.Code,
-+ null,
-+ children
-+ );
-+ let language = className && className.split('-');
-+ return import_react48.default.createElement(Source, {
-+ language: (language && language[1]) || 'text',
-+ format: !1,
-+ code: children,
-+ ...rest,
-+ });
-+ };
-+function navigate(context, url) {
-+ context.channel.emit(import_core_events3.NAVIGATE_URL, url);
-+}
-+var A = import_components28.components.a,
-+ AnchorInPage = ({hash, children}) => {
-+ let context = (0, import_react48.useContext)(DocsContext);
-+ return import_react48.default.createElement(
-+ A,
-+ {
-+ href: hash,
-+ target: '_self',
-+ onClick: (event) => {
-+ let id2 = hash.substring(1);
-+ document2.getElementById(id2) && navigate(context, hash);
-+ },
-+ },
-+ children
-+ );
-+ },
-+ AnchorMdx = (props) => {
-+ let {href, target, children, ...rest} = props,
-+ context = (0, import_react48.useContext)(DocsContext);
-+ return !href || target === '_blank' || /^https?:\/\//.test(href)
-+ ? import_react48.default.createElement(A, {...props})
-+ : href.startsWith('#')
-+ ? import_react48.default.createElement(
-+ AnchorInPage,
-+ {hash: href},
-+ children
-+ )
-+ : import_react48.default.createElement(
-+ A,
-+ {
-+ href,
-+ onClick: (event) => {
-+ event.button === 0 &&
-+ !event.altKey &&
-+ !event.ctrlKey &&
-+ !event.metaKey &&
-+ !event.shiftKey &&
-+ (event.preventDefault(),
-+ navigate(context, event.currentTarget.getAttribute('href')));
-+ },
-+ target,
-+ ...rest,
-+ },
-+ children
-+ );
-+ },
-+ SUPPORTED_MDX_HEADERS = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'],
-+ OcticonHeaders = SUPPORTED_MDX_HEADERS.reduce(
-+ (acc, headerType) => ({
-+ ...acc,
-+ [headerType]: (0, import_theming27.styled)(headerType)({
-+ '& svg': {position: 'relative', top: '-0.1em', visibility: 'hidden'},
-+ '&:hover svg': {visibility: 'visible'},
-+ }),
-+ }),
-+ {}
-+ ),
-+ OcticonAnchor = import_theming27.styled.a(() => ({
-+ float: 'left',
-+ lineHeight: 'inherit',
-+ paddingRight: '10px',
-+ marginLeft: '-24px',
-+ color: 'inherit',
-+ })),
-+ HeaderWithOcticonAnchor = ({as, id: id2, children, ...rest}) => {
-+ let context = (0, import_react48.useContext)(DocsContext),
-+ OcticonHeader = OcticonHeaders[as],
-+ hash = `#${id2}`;
-+ return import_react48.default.createElement(
-+ OcticonHeader,
-+ {id: id2, ...rest},
-+ import_react48.default.createElement(
-+ OcticonAnchor,
-+ {
-+ 'aria-hidden': 'true',
-+ href: hash,
-+ tabIndex: -1,
-+ target: '_self',
-+ onClick: (event) => {
-+ document2.getElementById(id2) && navigate(context, hash);
-+ },
-+ },
-+ import_react48.default.createElement(import_icons9.LinkIcon, null)
-+ ),
-+ children
-+ );
-+ },
-+ HeaderMdx = (props) => {
-+ let {as, id: id2, children, ...rest} = props;
-+ if (id2)
-+ return import_react48.default.createElement(
-+ HeaderWithOcticonAnchor,
-+ {as, id: id2, ...rest},
-+ children
-+ );
-+ let Component4 = as,
-+ {as: omittedAs, ...withoutAs} = props;
-+ return import_react48.default.createElement(Component4, {
-+ ...(0, import_components28.nameSpaceClassNames)(withoutAs, as),
-+ });
-+ },
-+ HeadersMdx = SUPPORTED_MDX_HEADERS.reduce(
-+ (acc, headerType) => ({
-+ ...acc,
-+ [headerType]: (props) =>
-+ import_react48.default.createElement(HeaderMdx, {
-+ as: headerType,
-+ ...props,
-+ }),
-+ }),
-+ {}
-+ );
-+var Markdown2 = (props) => {
-+ if (!props.children) return null;
-+ if (typeof props.children != 'string')
-+ throw new Error(import_ts_dedent.default`The Markdown block only accepts children as a single string, but children were of type: '${typeof props.children}'
- This is often caused by not wrapping the child in a template string.
-
- This is invalid:
-@@ -32,4 +6393,680 @@ var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropD
- A paragraph
- \`}
-
-- `);return import_react49.default.createElement(import_markdown_to_jsx2.default,{...props,options:{forceBlock:!0,overrides:{code:CodeOrSourceMdx,a:AnchorMdx,...HeadersMdx,...props?.options?.overrides},...props?.options}})};var DescriptionType=(DescriptionType2=>(DescriptionType2.INFO="info",DescriptionType2.NOTES="notes",DescriptionType2.DOCGEN="docgen",DescriptionType2.AUTO="auto",DescriptionType2))(DescriptionType||{}),getDescriptionFromResolvedOf=resolvedOf=>{switch(resolvedOf.type){case"story":return resolvedOf.story.parameters.docs?.description?.story||null;case"meta":{let{parameters,component}=resolvedOf.preparedMeta,metaDescription=parameters.docs?.description?.component;return metaDescription||parameters.docs?.extractComponentDescription?.(component,{component,parameters})||null}case"component":{let{component,projectAnnotations:{parameters}}=resolvedOf;return parameters.docs?.extractComponentDescription?.(component,{component,parameters})||null}default:throw new Error(`Unrecognized module type resolved from 'useOf', got: ${resolvedOf.type}`)}},DescriptionContainer=props=>{let{of}=props;if("of"in props&&of===void 0)throw new Error("Unexpected `of={undefined}`, did you mistype a CSF file reference?");let resolvedOf=useOf(of||"meta"),markdown=getDescriptionFromResolvedOf(resolvedOf);return markdown?import_react50.default.createElement(Markdown2,null,markdown):null};var import_react61=__toESM(require("react"));var import_react52=__toESM(require("react")),import_global7=require("@storybook/global"),import_theming29=require("@storybook/theming");var import_react51=__toESM(require("react")),import_theming28=require("@storybook/theming"),tocbot=__toESM(require("tocbot")),Wrapper11=import_theming28.styled.div(({theme})=>({width:"10rem","@media (max-width: 768px)":{display:"none"}})),Content=import_theming28.styled.div(({theme})=>({position:"fixed",bottom:0,top:0,width:"10rem",paddingTop:"4rem",paddingBottom:"2rem",overflowY:"auto",fontFamily:theme.typography.fonts.base,fontSize:theme.typography.size.s2,WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",WebkitTapHighlightColor:"rgba(0, 0, 0, 0)",WebkitOverflowScrolling:"touch","& *":{boxSizing:"border-box"},"& > .toc-wrapper > .toc-list":{paddingLeft:0,borderLeft:`solid 2px ${theme.color.mediumlight}`,".toc-list":{paddingLeft:0,borderLeft:`solid 2px ${theme.color.mediumlight}`,".toc-list":{paddingLeft:0,borderLeft:`solid 2px ${theme.color.mediumlight}`}}},"& .toc-list-item":{position:"relative",listStyleType:"none",marginLeft:20,paddingTop:3,paddingBottom:3},"& .toc-list-item::before":{content:'""',position:"absolute",height:"100%",top:0,left:0,transform:"translateX(calc(-2px - 20px))",borderLeft:`solid 2px ${theme.color.mediumdark}`,opacity:0,transition:"opacity 0.2s"},"& .toc-list-item.is-active-li::before":{opacity:1},"& .toc-list-item > a":{color:theme.color.defaultText,textDecoration:"none"},"& .toc-list-item.is-active-li > a":{fontWeight:600,color:theme.color.secondary,textDecoration:"none"}})),Heading=import_theming28.styled.p(({theme})=>({fontWeight:600,fontSize:"0.875em",color:theme.textColor,textTransform:"uppercase",marginBottom:10})),OptionalTitle=({title})=>title===null?null:typeof title=="string"?import_react51.default.createElement(Heading,null,title):title,TableOfContents=({title,disable,headingSelector,contentsSelector,ignoreSelector,unsafeTocbotOptions})=>((0,import_react51.useEffect)(()=>{let configuration={tocSelector:".toc-wrapper",contentSelector:contentsSelector??".sbdocs-content",headingSelector:headingSelector??"h3",ignoreSelector:ignoreSelector??".docs-story *, .skip-toc",headingsOffset:40,scrollSmoothOffset:-40,orderedList:!1,onClick:()=>!1,...unsafeTocbotOptions},timeout=setTimeout(()=>tocbot.init(configuration),100);return()=>{clearTimeout(timeout),tocbot.destroy()}},[disable]),import_react51.default.createElement(import_react51.default.Fragment,null,import_react51.default.createElement(Wrapper11,null,disable?null:import_react51.default.createElement(Content,null,import_react51.default.createElement(OptionalTitle,{title:title||null}),import_react51.default.createElement("div",{className:"toc-wrapper"})))));var{document:document3,window:globalWindow3}=import_global7.global,DocsContainer=({context,theme,children})=>{let toc;try{toc=context.resolveOf("meta",["meta"]).preparedMeta.parameters?.docs?.toc}catch{toc=context?.projectAnnotations?.parameters?.docs?.toc}return(0,import_react52.useEffect)(()=>{let url;try{if(url=new URL(globalWindow3.parent.location.toString()),url.hash){let element=document3.getElementById(url.hash.substring(1));element&&setTimeout(()=>{scrollToElement(element)},200)}}catch{}}),import_react52.default.createElement(DocsContext.Provider,{value:context},import_react52.default.createElement(SourceContainer,{channel:context.channel},import_react52.default.createElement(import_theming29.ThemeProvider,{theme:(0,import_theming29.ensure)(theme)},import_react52.default.createElement(DocsPageWrapper,{toc:toc?import_react52.default.createElement(TableOfContents,{className:"sbdocs sbdocs-toc--custom",...toc}):null},children))))};var import_react60=__toESM(require("react"));var import_react53=__toESM(require("react"));var STORY_KIND_PATH_SEPARATOR=/\s*\/\s*/,extractTitle=title=>{let groups=title.trim().split(STORY_KIND_PATH_SEPARATOR);return groups?.[groups?.length-1]||title},Title2=props=>{let{children,of}=props;if("of"in props&&of===void 0)throw new Error("Unexpected `of={undefined}`, did you mistype a CSF file reference?");let preparedMeta;try{preparedMeta=useOf(of||"meta",["meta"]).preparedMeta}catch(error){if(children&&!error.message.includes("did you forget to use ?"))throw error}let content=children||extractTitle(preparedMeta?.title);return content?import_react53.default.createElement(Title,{className:"sbdocs-title sb-unstyled"},content):null};var import_react54=__toESM(require("react")),import_client_logger5=require("@storybook/client-logger");var DEPRECATION_MIGRATION_LINK="https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#subtitle-block-and-parameterscomponentsubtitle",Subtitle2=props=>{let{of,children}=props;if("of"in props&&of===void 0)throw new Error("Unexpected `of={undefined}`, did you mistype a CSF file reference?");let preparedMeta;try{preparedMeta=useOf(of||"meta",["meta"]).preparedMeta}catch(error){if(children&&!error.message.includes("did you forget to use ?"))throw error}let{componentSubtitle,docs}=preparedMeta?.parameters||{};componentSubtitle&&(0,import_client_logger5.deprecate)(`Using 'parameters.componentSubtitle' property to subtitle stories is deprecated. See ${DEPRECATION_MIGRATION_LINK}`);let content=children||docs?.subtitle||componentSubtitle;return content?import_react54.default.createElement(Subtitle,{className:"sbdocs-subtitle sb-unstyled"},content):null};var import_react57=__toESM(require("react"));var import_react56=__toESM(require("react"));var import_react55=__toESM(require("react")),import_components33=require("@storybook/components");var Subheading=({children,disableAnchor})=>{if(disableAnchor||typeof children!="string")return import_react55.default.createElement(import_components33.H3,null,children);let tagID=globalThis.encodeURIComponent(children.toLowerCase());return import_react55.default.createElement(HeaderMdx,{as:"h3",id:tagID},children)};var DocsStory=({of,expanded=!0,withToolbar:withToolbarProp=!1,__forceInitialArgs=!1,__primary=!1})=>{let{story}=useOf(of||"story",["story"]),withToolbar=story.parameters.docs?.canvas?.withToolbar??withToolbarProp;return import_react56.default.createElement(Anchor,{storyId:story.id},expanded&&import_react56.default.createElement(import_react56.default.Fragment,null,import_react56.default.createElement(Subheading,null,story.name),import_react56.default.createElement(DescriptionContainer,{of})),import_react56.default.createElement(Canvas,{of,withToolbar,story:{__forceInitialArgs,__primary},source:{__forceInitialArgs}}))};var Primary=props=>{let{of}=props;if("of"in props&&of===void 0)throw new Error("Unexpected `of={undefined}`, did you mistype a CSF file reference?");let{csfFile}=useOf(of||"meta",["meta"]),primaryStory=(0,import_react57.useContext)(DocsContext).componentStoriesFromCSFFile(csfFile)[0];return primaryStory?import_react57.default.createElement(DocsStory,{of:primaryStory.moduleExport,expanded:!1,__primary:!0,withToolbar:!0}):null};var import_react59=__toESM(require("react")),import_theming30=require("@storybook/theming");var import_react58=__toESM(require("react")),import_components34=require("@storybook/components");var Heading2=({children,disableAnchor,...props})=>{if(disableAnchor||typeof children!="string")return import_react58.default.createElement(import_components34.H2,null,children);let tagID=children.toLowerCase().replace(/[^a-z0-9]/gi,"-");return import_react58.default.createElement(HeaderMdx,{as:"h2",id:tagID,...props},children)};var StyledHeading=(0,import_theming30.styled)(Heading2)(({theme})=>({fontSize:`${theme.typography.size.s2-1}px`,fontWeight:theme.typography.weight.bold,lineHeight:"16px",letterSpacing:"0.35em",textTransform:"uppercase",color:theme.textMutedColor,border:0,marginBottom:"12px","&:first-of-type":{marginTop:"56px"}})),Stories=({title="Stories",includePrimary=!0})=>{let{componentStories,projectAnnotations,getStoryContext}=(0,import_react59.useContext)(DocsContext),stories=componentStories(),{stories:{filter}={filter:void 0}}=projectAnnotations.parameters?.docs||{};return filter&&(stories=stories.filter(story=>filter(story,getStoryContext(story)))),stories.some(story=>story.tags?.includes("autodocs"))&&(stories=stories.filter(story=>story.tags?.includes("autodocs"))),includePrimary||(stories=stories.slice(1)),!stories||stories.length===0?null:import_react59.default.createElement(import_react59.default.Fragment,null,import_react59.default.createElement(StyledHeading,null,title),stories.map(story=>story&&import_react59.default.createElement(DocsStory,{key:story.id,of:story.moduleExport,expanded:!0,__forceInitialArgs:!0})))};var DocsPage=()=>{let resolvedOf=useOf("meta",["meta"]),{stories}=resolvedOf.csfFile,isSingleStory=Object.keys(stories).length===1;return import_react60.default.createElement(import_react60.default.Fragment,null,import_react60.default.createElement(Title2,null),import_react60.default.createElement(Subtitle2,null),import_react60.default.createElement(DescriptionContainer,{of:"meta"}),isSingleStory?import_react60.default.createElement(DescriptionContainer,{of:"story"}):null,import_react60.default.createElement(Primary,null),import_react60.default.createElement(Controls3,null),isSingleStory?null:import_react60.default.createElement(Stories,null))};function Docs({context,docsParameter}){let Container=docsParameter.container||DocsContainer,Page=docsParameter.page||DocsPage;return import_react61.default.createElement(Container,{context,theme:docsParameter.theme},import_react61.default.createElement(Page,null))}var import_react62=__toESM(require("react")),import_preview_api5=require("@storybook/preview-api");var import_preview_api4=require("@storybook/preview-api"),import_channels=require("@storybook/channels");var import_preview_api3=require("@storybook/preview-api"),ExternalDocsContext=class extends import_preview_api3.DocsContext{constructor(channel,store,renderStoryToElement,processMetaExports){super(channel,store,renderStoryToElement,[]);this.channel=channel;this.store=store;this.renderStoryToElement=renderStoryToElement;this.processMetaExports=processMetaExports;this.referenceMeta=(metaExports,attach)=>{let csfFile=this.processMetaExports(metaExports);this.referenceCSFFile(csfFile),super.referenceMeta(metaExports,attach)}}};var ConstantMap=class{constructor(prefix){this.prefix=prefix;this.entries=new Map}get(key){return this.entries.has(key)||this.entries.set(key,`${this.prefix}${this.entries.size}`),this.entries.get(key)}},ExternalPreview=class extends import_preview_api4.Preview{constructor(projectAnnotations){super(path=>Promise.resolve(this.moduleExportsByImportPath[path]),()=>(0,import_preview_api4.composeConfigs)([{parameters:{docs:{story:{inline:!0}}}},this.projectAnnotations]),new import_channels.Channel({}));this.projectAnnotations=projectAnnotations;this.importPaths=new ConstantMap("./importPath/");this.titles=new ConstantMap("title-");this.storyIndex={v:5,entries:{}};this.moduleExportsByImportPath={};this.processMetaExports=metaExports=>{let importPath=this.importPaths.get(metaExports);this.moduleExportsByImportPath[importPath]=metaExports;let title=metaExports.default.title||this.titles.get(metaExports),csfFile=this.storyStoreValue.processCSFFileWithCache(metaExports,importPath,title);return Object.values(csfFile.stories).forEach(({id:id2,name})=>{this.storyIndex.entries[id2]={id:id2,importPath,title,name,type:"story"}}),this.onStoriesChanged({storyIndex:this.storyIndex}),csfFile};this.docsContext=()=>new ExternalDocsContext(this.channel,this.storyStoreValue,this.renderStoryToElement.bind(this),this.processMetaExports.bind(this))}async getStoryIndexFromServer(){return this.storyIndex}};function usePreview(projectAnnotations){let previewRef=(0,import_react62.useRef)();return previewRef.current||(previewRef.current=new ExternalPreview(projectAnnotations)),previewRef.current}function ExternalDocs({projectAnnotationsList,children}){let projectAnnotations=(0,import_preview_api5.composeConfigs)(projectAnnotationsList),preview2=usePreview(projectAnnotations),docsParameter={...projectAnnotations.parameters?.docs,page:()=>children};return import_react62.default.createElement(Docs,{docsParameter,context:preview2.docsContext()})}var import_react63=__toESM(require("react")),import_theming31=require("@storybook/theming");var preview,ExternalDocsContainer=({projectAnnotations,children})=>(preview||(preview=new ExternalPreview(projectAnnotations)),import_react63.default.createElement(DocsContext.Provider,{value:preview.docsContext()},import_react63.default.createElement(import_theming31.ThemeProvider,{theme:(0,import_theming31.ensure)(import_theming31.themes.light)},children)));var import_react64=__toESM(require("react"));var Meta=({of})=>{let context=(0,import_react64.useContext)(DocsContext);of&&context.referenceMeta(of,!0);try{let primary=context.storyById();return import_react64.default.createElement(Anchor,{storyId:primary.id})}catch{return null}};var import_react65=__toESM(require("react")),Unstyled=props=>import_react65.default.createElement("div",{...props,className:"sb-unstyled"});var import_react66=__toESM(require("react")),Wrapper12=({children})=>import_react66.default.createElement("div",{style:{fontFamily:"sans-serif"}},children);var PRIMARY_STORY="^";0&&(module.exports={AddContext,Anchor,AnchorMdx,ArgTypes,BooleanControl,Canvas,CodeOrSourceMdx,ColorControl,ColorItem,ColorPalette,Controls,DateControl,Description,DescriptionType,Docs,DocsContainer,DocsContext,DocsPage,DocsStory,ExternalDocs,ExternalDocsContainer,FilesControl,HeaderMdx,HeadersMdx,Heading,IconGallery,IconItem,Markdown,Meta,NumberControl,ObjectControl,OptionsControl,PRIMARY_STORY,Primary,PureArgsTable,RangeControl,Source,SourceContainer,SourceContext,Stories,Story,Subheading,Subtitle,TextControl,Title,Typeset,UNKNOWN_ARGS_HASH,Unstyled,Wrapper,anchorBlockIdFromId,argsHash,assertIsFn,extractTitle,format,formatDate,formatTime,getStoryId,getStoryProps,parse,parseDate,parseTime,useOf,useSourceProps});
-+ `);
-+ return import_react49.default.createElement(import_markdown_to_jsx2.default, {
-+ ...props,
-+ options: {
-+ forceBlock: !0,
-+ overrides: {
-+ code: CodeOrSourceMdx,
-+ a: AnchorMdx,
-+ ...HeadersMdx,
-+ ...props?.options?.overrides,
-+ },
-+ ...props?.options,
-+ },
-+ });
-+};
-+var DescriptionType = ((DescriptionType2) => (
-+ (DescriptionType2.INFO = 'info'),
-+ (DescriptionType2.NOTES = 'notes'),
-+ (DescriptionType2.DOCGEN = 'docgen'),
-+ (DescriptionType2.AUTO = 'auto'),
-+ DescriptionType2
-+ ))(DescriptionType || {}),
-+ getDescriptionFromResolvedOf = (resolvedOf) => {
-+ switch (resolvedOf.type) {
-+ case 'story':
-+ return resolvedOf.story.parameters.docs?.description?.story || null;
-+ case 'meta': {
-+ let {parameters, component} = resolvedOf.preparedMeta,
-+ metaDescription = parameters.docs?.description?.component;
-+ return (
-+ metaDescription ||
-+ parameters.docs?.extractComponentDescription?.(component, {
-+ component,
-+ parameters,
-+ }) ||
-+ null
-+ );
-+ }
-+ case 'component': {
-+ let {
-+ component,
-+ projectAnnotations: {parameters},
-+ } = resolvedOf;
-+ return (
-+ parameters.docs?.extractComponentDescription?.(component, {
-+ component,
-+ parameters,
-+ }) || null
-+ );
-+ }
-+ default:
-+ throw new Error(
-+ `Unrecognized module type resolved from 'useOf', got: ${resolvedOf.type}`
-+ );
-+ }
-+ },
-+ DescriptionContainer = (props) => {
-+ let {of} = props;
-+ if ('of' in props && of === void 0)
-+ throw new Error(
-+ 'Unexpected `of={undefined}`, did you mistype a CSF file reference?'
-+ );
-+ let resolvedOf = useOf(of || 'meta'),
-+ markdown = getDescriptionFromResolvedOf(resolvedOf);
-+ return markdown
-+ ? import_react50.default.createElement(Markdown2, null, markdown)
-+ : null;
-+ };
-+var import_react61 = __toESM(require('react'));
-+var import_react52 = __toESM(require('react')),
-+ import_global7 = require('@storybook/global'),
-+ import_theming29 = require('@storybook/theming');
-+var import_react51 = __toESM(require('react')),
-+ import_theming28 = require('@storybook/theming'),
-+ tocbot = __toESM(require('tocbot')),
-+ Wrapper11 = import_theming28.styled.div(({theme}) => ({
-+ width: '10rem',
-+ '@media (max-width: 768px)': {display: 'none'},
-+ })),
-+ Content = import_theming28.styled.div(({theme}) => ({
-+ position: 'fixed',
-+ bottom: 0,
-+ top: 0,
-+ width: '10rem',
-+ paddingTop: '4rem',
-+ paddingBottom: '2rem',
-+ overflowY: 'auto',
-+ fontFamily: theme.typography.fonts.base,
-+ fontSize: theme.typography.size.s2,
-+ WebkitFontSmoothing: 'antialiased',
-+ MozOsxFontSmoothing: 'grayscale',
-+ WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)',
-+ WebkitOverflowScrolling: 'touch',
-+ '& *': {boxSizing: 'border-box'},
-+ '& > .toc-wrapper > .toc-list': {
-+ paddingLeft: 0,
-+ borderLeft: `solid 2px ${theme.color.mediumlight}`,
-+ '.toc-list': {
-+ paddingLeft: 0,
-+ borderLeft: `solid 2px ${theme.color.mediumlight}`,
-+ '.toc-list': {
-+ paddingLeft: 0,
-+ borderLeft: `solid 2px ${theme.color.mediumlight}`,
-+ },
-+ },
-+ },
-+ '& .toc-list-item': {
-+ position: 'relative',
-+ listStyleType: 'none',
-+ marginLeft: 20,
-+ paddingTop: 3,
-+ paddingBottom: 3,
-+ },
-+ '& .toc-list-item::before': {
-+ content: '""',
-+ position: 'absolute',
-+ height: '100%',
-+ top: 0,
-+ left: 0,
-+ transform: 'translateX(calc(-2px - 20px))',
-+ borderLeft: `solid 2px ${theme.color.mediumdark}`,
-+ opacity: 0,
-+ transition: 'opacity 0.2s',
-+ },
-+ '& .toc-list-item.is-active-li::before': {opacity: 1},
-+ '& .toc-list-item > a': {
-+ color: theme.color.defaultText,
-+ textDecoration: 'none',
-+ },
-+ '& .toc-list-item.is-active-li > a': {
-+ fontWeight: 600,
-+ color: theme.color.secondary,
-+ textDecoration: 'none',
-+ },
-+ })),
-+ Heading = import_theming28.styled.p(({theme}) => ({
-+ fontWeight: 600,
-+ fontSize: '0.875em',
-+ color: theme.textColor,
-+ textTransform: 'uppercase',
-+ marginBottom: 10,
-+ })),
-+ OptionalTitle = ({title}) =>
-+ title === null
-+ ? null
-+ : typeof title == 'string'
-+ ? import_react51.default.createElement(Heading, null, title)
-+ : title,
-+ TableOfContents = ({
-+ title,
-+ disable,
-+ headingSelector,
-+ contentsSelector,
-+ ignoreSelector,
-+ unsafeTocbotOptions,
-+ }) => (
-+ (0, import_react51.useEffect)(() => {
-+ let configuration = {
-+ tocSelector: '.toc-wrapper',
-+ contentSelector: contentsSelector ?? '.sbdocs-content',
-+ headingSelector: headingSelector ?? 'h3',
-+ ignoreSelector: ignoreSelector ?? '.docs-story *, .skip-toc',
-+ headingsOffset: 40,
-+ scrollSmoothOffset: -40,
-+ orderedList: !1,
-+ onClick: () => !1,
-+ ...unsafeTocbotOptions,
-+ },
-+ timeout = setTimeout(() => tocbot.init(configuration), 100);
-+ return () => {
-+ clearTimeout(timeout), tocbot.destroy();
-+ };
-+ }, [disable]),
-+ import_react51.default.createElement(
-+ import_react51.default.Fragment,
-+ null,
-+ import_react51.default.createElement(
-+ Wrapper11,
-+ null,
-+ disable
-+ ? null
-+ : import_react51.default.createElement(
-+ Content,
-+ null,
-+ import_react51.default.createElement(OptionalTitle, {
-+ title: title || null,
-+ }),
-+ import_react51.default.createElement('div', {
-+ className: 'toc-wrapper',
-+ })
-+ )
-+ )
-+ )
-+ );
-+var {document: document3, window: globalWindow3} = import_global7.global,
-+ DocsContainer = ({context, theme, children}) => {
-+ let toc;
-+ try {
-+ toc = context.resolveOf('meta', ['meta']).preparedMeta.parameters?.docs
-+ ?.toc;
-+ } catch {
-+ toc = context?.projectAnnotations?.parameters?.docs?.toc;
-+ }
-+ return (
-+ (0, import_react52.useEffect)(() => {
-+ let url;
-+ try {
-+ if (
-+ ((url = new URL(globalWindow3.parent.location.toString())),
-+ url.hash)
-+ ) {
-+ let element = document3.getElementById(url.hash.substring(1));
-+ element &&
-+ setTimeout(() => {
-+ scrollToElement(element);
-+ }, 200);
-+ }
-+ } catch {}
-+ }),
-+ import_react52.default.createElement(
-+ DocsContext.Provider,
-+ {value: context},
-+ import_react52.default.createElement(
-+ SourceContainer,
-+ {channel: context.channel},
-+ import_react52.default.createElement(
-+ import_theming29.ThemeProvider,
-+ {theme: (0, import_theming29.ensure)(theme)},
-+ import_react52.default.createElement(
-+ DocsPageWrapper,
-+ {
-+ toc: toc
-+ ? import_react52.default.createElement(TableOfContents, {
-+ className: 'sbdocs sbdocs-toc--custom',
-+ ...toc,
-+ })
-+ : null,
-+ },
-+ children
-+ )
-+ )
-+ )
-+ )
-+ );
-+ };
-+var import_react60 = __toESM(require('react'));
-+var import_react53 = __toESM(require('react'));
-+var STORY_KIND_PATH_SEPARATOR = /\s*\/\s*/,
-+ extractTitle = (title) => {
-+ let groups = title.trim().split(STORY_KIND_PATH_SEPARATOR);
-+ return groups?.[groups?.length - 1] || title;
-+ },
-+ Title2 = (props) => {
-+ let {children, of} = props;
-+ if ('of' in props && of === void 0)
-+ throw new Error(
-+ 'Unexpected `of={undefined}`, did you mistype a CSF file reference?'
-+ );
-+ let preparedMeta;
-+ try {
-+ preparedMeta = useOf(of || 'meta', ['meta']).preparedMeta;
-+ } catch (error) {
-+ if (
-+ children &&
-+ !error.message.includes('did you forget to use ?')
-+ )
-+ throw error;
-+ }
-+ let content = children || extractTitle(preparedMeta?.title);
-+ return content
-+ ? import_react53.default.createElement(
-+ Title,
-+ {className: 'sbdocs-title sb-unstyled'},
-+ content
-+ )
-+ : null;
-+ };
-+var import_react54 = __toESM(require('react')),
-+ import_client_logger5 = require('@storybook/client-logger');
-+var DEPRECATION_MIGRATION_LINK =
-+ 'https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#subtitle-block-and-parameterscomponentsubtitle',
-+ Subtitle2 = (props) => {
-+ let {of, children} = props;
-+ if ('of' in props && of === void 0)
-+ throw new Error(
-+ 'Unexpected `of={undefined}`, did you mistype a CSF file reference?'
-+ );
-+ let preparedMeta;
-+ try {
-+ preparedMeta = useOf(of || 'meta', ['meta']).preparedMeta;
-+ } catch (error) {
-+ if (
-+ children &&
-+ !error.message.includes('did you forget to use ?')
-+ )
-+ throw error;
-+ }
-+ let {componentSubtitle, docs} = preparedMeta?.parameters || {};
-+ componentSubtitle &&
-+ (0, import_client_logger5.deprecate)(
-+ `Using 'parameters.componentSubtitle' property to subtitle stories is deprecated. See ${DEPRECATION_MIGRATION_LINK}`
-+ );
-+ let content = children || docs?.subtitle || componentSubtitle;
-+ return content
-+ ? import_react54.default.createElement(
-+ Subtitle,
-+ {className: 'sbdocs-subtitle sb-unstyled'},
-+ content
-+ )
-+ : null;
-+ };
-+var import_react57 = __toESM(require('react'));
-+var import_react56 = __toESM(require('react'));
-+var import_react55 = __toESM(require('react')),
-+ import_components33 = require('@storybook/components');
-+var Subheading = ({children, disableAnchor}) => {
-+ if (disableAnchor || typeof children != 'string')
-+ return import_react55.default.createElement(
-+ import_components33.H3,
-+ null,
-+ children
-+ );
-+ let tagID = globalThis.encodeURIComponent(children.toLowerCase());
-+ return import_react55.default.createElement(
-+ HeaderMdx,
-+ {as: 'h3', id: tagID},
-+ children
-+ );
-+};
-+var DocsStory = ({
-+ of,
-+ expanded = !0,
-+ withToolbar: withToolbarProp = !1,
-+ __forceInitialArgs = !1,
-+ __primary = !1,
-+}) => {
-+ let {story} = useOf(of || 'story', ['story']),
-+ withToolbar = story.parameters.docs?.canvas?.withToolbar ?? withToolbarProp;
-+ return import_react56.default.createElement(
-+ Anchor,
-+ {storyId: story.id},
-+ expanded &&
-+ import_react56.default.createElement(
-+ import_react56.default.Fragment,
-+ null,
-+ import_react56.default.createElement(Subheading, null, story.name),
-+ import_react56.default.createElement(DescriptionContainer, {of})
-+ ),
-+ import_react56.default.createElement(Canvas, {
-+ of,
-+ withToolbar,
-+ story: {__forceInitialArgs, __primary},
-+ source: {__forceInitialArgs},
-+ })
-+ );
-+};
-+var Primary = (props) => {
-+ let {of} = props;
-+ if ('of' in props && of === void 0)
-+ throw new Error(
-+ 'Unexpected `of={undefined}`, did you mistype a CSF file reference?'
-+ );
-+ let {csfFile} = useOf(of || 'meta', ['meta']),
-+ primaryStory = (0, import_react57.useContext)(
-+ DocsContext
-+ ).componentStoriesFromCSFFile(csfFile)[0];
-+ return primaryStory
-+ ? import_react57.default.createElement(DocsStory, {
-+ of: primaryStory.moduleExport,
-+ expanded: !1,
-+ __primary: !0,
-+ withToolbar: !0,
-+ })
-+ : null;
-+};
-+var import_react59 = __toESM(require('react')),
-+ import_theming30 = require('@storybook/theming');
-+var import_react58 = __toESM(require('react')),
-+ import_components34 = require('@storybook/components');
-+var Heading2 = ({children, disableAnchor, ...props}) => {
-+ if (disableAnchor || typeof children != 'string')
-+ return import_react58.default.createElement(
-+ import_components34.H2,
-+ null,
-+ children
-+ );
-+ let tagID = children.toLowerCase().replace(/[^a-z0-9]/gi, '-');
-+ return import_react58.default.createElement(
-+ HeaderMdx,
-+ {as: 'h2', id: tagID, ...props},
-+ children
-+ );
-+};
-+var StyledHeading = (0, import_theming30.styled)(Heading2)(({theme}) => ({
-+ fontSize: `${theme.typography.size.s2 - 1}px`,
-+ fontWeight: theme.typography.weight.bold,
-+ lineHeight: '16px',
-+ letterSpacing: '0.35em',
-+ textTransform: 'uppercase',
-+ color: theme.textMutedColor,
-+ border: 0,
-+ marginBottom: '12px',
-+ '&:first-of-type': {marginTop: '56px'},
-+ })),
-+ Stories = ({title = 'Stories', includePrimary = !0}) => {
-+ let {componentStories, projectAnnotations, getStoryContext} = (0,
-+ import_react59.useContext)(DocsContext),
-+ stories = componentStories(),
-+ {stories: {filter} = {filter: void 0}} =
-+ projectAnnotations.parameters?.docs || {};
-+ return (
-+ filter &&
-+ (stories = stories.filter((story) =>
-+ filter(story, getStoryContext(story))
-+ )),
-+ stories.some((story) => story.tags?.includes('autodocs')) &&
-+ (stories = stories.filter((story) => story.tags?.includes('autodocs'))),
-+ includePrimary || (stories = stories.slice(1)),
-+ !stories || stories.length === 0
-+ ? null
-+ : import_react59.default.createElement(
-+ import_react59.default.Fragment,
-+ null,
-+ import_react59.default.createElement(StyledHeading, null, title),
-+ stories.map(
-+ (story) =>
-+ story &&
-+ import_react59.default.createElement(DocsStory, {
-+ key: story.id,
-+ of: story.moduleExport,
-+ expanded: !0,
-+ __forceInitialArgs: !0,
-+ })
-+ )
-+ )
-+ );
-+ };
-+var DocsPage = () => {
-+ let resolvedOf = useOf('meta', ['meta']),
-+ {stories} = resolvedOf.csfFile,
-+ isSingleStory = Object.keys(stories).length === 1;
-+ return import_react60.default.createElement(
-+ import_react60.default.Fragment,
-+ null,
-+ import_react60.default.createElement(Title2, null),
-+ import_react60.default.createElement(Subtitle2, null),
-+ import_react60.default.createElement(DescriptionContainer, {of: 'meta'}),
-+ isSingleStory
-+ ? import_react60.default.createElement(DescriptionContainer, {
-+ of: 'story',
-+ })
-+ : null,
-+ import_react60.default.createElement(Primary, null),
-+ import_react60.default.createElement(Controls3, null),
-+ isSingleStory ? null : import_react60.default.createElement(Stories, null)
-+ );
-+};
-+function Docs({context, docsParameter}) {
-+ let Container = docsParameter.container || DocsContainer,
-+ Page = docsParameter.page || DocsPage;
-+ return import_react61.default.createElement(
-+ Container,
-+ {context, theme: docsParameter.theme},
-+ import_react61.default.createElement(Page, null)
-+ );
-+}
-+var import_react62 = __toESM(require('react')),
-+ import_preview_api5 = require('@storybook/preview-api');
-+var import_preview_api4 = require('@storybook/preview-api'),
-+ import_channels = require('@storybook/channels');
-+var import_preview_api3 = require('@storybook/preview-api'),
-+ ExternalDocsContext = class extends import_preview_api3.DocsContext {
-+ constructor(channel, store, renderStoryToElement, processMetaExports) {
-+ super(channel, store, renderStoryToElement, []);
-+ this.channel = channel;
-+ this.store = store;
-+ this.renderStoryToElement = renderStoryToElement;
-+ this.processMetaExports = processMetaExports;
-+ this.referenceMeta = (metaExports, attach) => {
-+ let csfFile = this.processMetaExports(metaExports);
-+ this.referenceCSFFile(csfFile),
-+ super.referenceMeta(metaExports, attach);
-+ };
-+ }
-+ };
-+var ConstantMap = class {
-+ constructor(prefix) {
-+ this.prefix = prefix;
-+ this.entries = new Map();
-+ }
-+ get(key) {
-+ return (
-+ this.entries.has(key) ||
-+ this.entries.set(key, `${this.prefix}${this.entries.size}`),
-+ this.entries.get(key)
-+ );
-+ }
-+ },
-+ ExternalPreview = class extends import_preview_api4.Preview {
-+ constructor(projectAnnotations) {
-+ super(
-+ (path) => Promise.resolve(this.moduleExportsByImportPath[path]),
-+ () =>
-+ (0, import_preview_api4.composeConfigs)([
-+ {parameters: {docs: {story: {inline: !0}}}},
-+ this.projectAnnotations,
-+ ]),
-+ new import_channels.Channel({})
-+ );
-+ this.projectAnnotations = projectAnnotations;
-+ this.importPaths = new ConstantMap('./importPath/');
-+ this.titles = new ConstantMap('title-');
-+ this.storyIndex = {v: 5, entries: {}};
-+ this.moduleExportsByImportPath = {};
-+ this.processMetaExports = (metaExports) => {
-+ let importPath = this.importPaths.get(metaExports);
-+ this.moduleExportsByImportPath[importPath] = metaExports;
-+ let title = metaExports.default.title || this.titles.get(metaExports),
-+ csfFile = this.storyStoreValue.processCSFFileWithCache(
-+ metaExports,
-+ importPath,
-+ title
-+ );
-+ return (
-+ Object.values(csfFile.stories).forEach(({id: id2, name}) => {
-+ this.storyIndex.entries[id2] = {
-+ id: id2,
-+ importPath,
-+ title,
-+ name,
-+ type: 'story',
-+ };
-+ }),
-+ this.onStoriesChanged({storyIndex: this.storyIndex}),
-+ csfFile
-+ );
-+ };
-+ this.docsContext = () =>
-+ new ExternalDocsContext(
-+ this.channel,
-+ this.storyStoreValue,
-+ this.renderStoryToElement.bind(this),
-+ this.processMetaExports.bind(this)
-+ );
-+ }
-+ async getStoryIndexFromServer() {
-+ return this.storyIndex;
-+ }
-+ };
-+function usePreview(projectAnnotations) {
-+ let previewRef = (0, import_react62.useRef)();
-+ return (
-+ previewRef.current ||
-+ (previewRef.current = new ExternalPreview(projectAnnotations)),
-+ previewRef.current
-+ );
-+}
-+function ExternalDocs({projectAnnotationsList, children}) {
-+ let projectAnnotations = (0, import_preview_api5.composeConfigs)(
-+ projectAnnotationsList
-+ ),
-+ preview2 = usePreview(projectAnnotations),
-+ docsParameter = {
-+ ...projectAnnotations.parameters?.docs,
-+ page: () => children,
-+ };
-+ return import_react62.default.createElement(Docs, {
-+ docsParameter,
-+ context: preview2.docsContext(),
-+ });
-+}
-+var import_react63 = __toESM(require('react')),
-+ import_theming31 = require('@storybook/theming');
-+var preview,
-+ ExternalDocsContainer = ({projectAnnotations, children}) => (
-+ preview || (preview = new ExternalPreview(projectAnnotations)),
-+ import_react63.default.createElement(
-+ DocsContext.Provider,
-+ {value: preview.docsContext()},
-+ import_react63.default.createElement(
-+ import_theming31.ThemeProvider,
-+ {theme: (0, import_theming31.ensure)(import_theming31.themes.light)},
-+ children
-+ )
-+ )
-+ );
-+var import_react64 = __toESM(require('react'));
-+var Meta = ({of}) => {
-+ let context = (0, import_react64.useContext)(DocsContext);
-+ of && context.referenceMeta(of, !0);
-+ try {
-+ let primary = context.storyById();
-+ return import_react64.default.createElement(Anchor, {storyId: primary.id});
-+ } catch {
-+ return null;
-+ }
-+};
-+var import_react65 = __toESM(require('react')),
-+ Unstyled = (props) =>
-+ import_react65.default.createElement('div', {
-+ ...props,
-+ className: 'sb-unstyled',
-+ });
-+var import_react66 = __toESM(require('react')),
-+ Wrapper12 = ({children}) =>
-+ import_react66.default.createElement(
-+ 'div',
-+ {style: {fontFamily: 'sans-serif'}},
-+ children
-+ );
-+var PRIMARY_STORY = '^';
-+0 &&
-+ (module.exports = {
-+ AddContext,
-+ Anchor,
-+ AnchorMdx,
-+ ArgTypes,
-+ BooleanControl,
-+ Canvas,
-+ CodeOrSourceMdx,
-+ ColorControl,
-+ ColorItem,
-+ ColorPalette,
-+ Controls,
-+ DateControl,
-+ Description,
-+ DescriptionType,
-+ Docs,
-+ DocsContainer,
-+ DocsContext,
-+ DocsPage,
-+ DocsStory,
-+ ExternalDocs,
-+ ExternalDocsContainer,
-+ FilesControl,
-+ HeaderMdx,
-+ HeadersMdx,
-+ Heading,
-+ IconGallery,
-+ IconItem,
-+ Markdown,
-+ Meta,
-+ NumberControl,
-+ ObjectControl,
-+ OptionsControl,
-+ PRIMARY_STORY,
-+ Primary,
-+ PureArgsTable,
-+ RangeControl,
-+ Source,
-+ SourceContainer,
-+ SourceContext,
-+ Stories,
-+ Story,
-+ Subheading,
-+ Subtitle,
-+ TextControl,
-+ Title,
-+ Typeset,
-+ UNKNOWN_ARGS_HASH,
-+ Unstyled,
-+ Wrapper,
-+ anchorBlockIdFromId,
-+ argsHash,
-+ assertIsFn,
-+ extractTitle,
-+ format,
-+ formatDate,
-+ formatTime,
-+ getStoryId,
-+ getStoryProps,
-+ parse,
-+ parseDate,
-+ parseTime,
-+ useOf,
-+ useSourceProps,
-+ });
-diff --git a/node_modules/@storybook/blocks/dist/index.mjs b/node_modules/@storybook/blocks/dist/index.mjs
-index a626b2d..277d277 100644
---- a/node_modules/@storybook/blocks/dist/index.mjs
-+++ b/node_modules/@storybook/blocks/dist/index.mjs
-@@ -1,44 +1,5508 @@
--import { getControlSetterButtonId, getControlId } from './chunk-GWAJ4KRU.mjs';
--import React17, { createContext, lazy, useState, useCallback, useRef, useEffect, Component, cloneElement, useMemo, Suspense, useContext, Children } from 'react';
--import { styled, ignoreSsrWarning, useTheme, themes, ThemeProvider, convert, ensure } from '@storybook/theming';
--import { withReset, SyntaxHighlighter, FlexBar, codeCommon, Form, IconButton, components, Zoom, ActionBar, Button, Link, ResetWrapper, Code, nameSpaceClassNames, H3, H2, Loader, EmptyTabContent, TabsState, ErrorFormatter, getStoryHref, WithTooltipPure } from '@storybook/components';
--import { transparentize, darken, opacify, lighten, rgba } from 'polished';
--import { global } from '@storybook/global';
--import { ChevronSmallUpIcon, ChevronSmallDownIcon, AddIcon, SubtractIcon, ChevronDownIcon as ChevronDownIcon$1, ChevronRightIcon, ZoomIcon, ZoomOutIcon, ZoomResetIcon, EyeCloseIcon, EyeIcon, DocumentIcon, UndoIcon, VideoIcon, LinkIcon } from '@storybook/icons';
-+import {Channel} from '@storybook/channels';
-+import {deprecate, once, logger} from '@storybook/client-logger';
-+import {
-+ withReset,
-+ SyntaxHighlighter,
-+ FlexBar,
-+ codeCommon,
-+ Form,
-+ IconButton,
-+ components,
-+ Zoom,
-+ ActionBar,
-+ Button,
-+ Link,
-+ ResetWrapper,
-+ Code,
-+ nameSpaceClassNames,
-+ H3,
-+ H2,
-+ Loader,
-+ EmptyTabContent,
-+ TabsState,
-+ ErrorFormatter,
-+ getStoryHref,
-+ WithTooltipPure,
-+} from '@storybook/components';
-+import {
-+ GLOBALS_UPDATED,
-+ STORY_ARGS_UPDATED,
-+ UPDATE_STORY_ARGS,
-+ RESET_STORY_ARGS,
-+ NAVIGATE_URL,
-+} from '@storybook/core-events';
-+import {includeConditionalArg} from '@storybook/csf';
-+import {SNIPPET_RENDERED, SourceType} from '@storybook/docs-tools';
-+import {global} from '@storybook/global';
-+import {
-+ ChevronSmallUpIcon,
-+ ChevronSmallDownIcon,
-+ AddIcon,
-+ SubtractIcon,
-+ ChevronDownIcon as ChevronDownIcon$1,
-+ ChevronRightIcon,
-+ ZoomIcon,
-+ ZoomOutIcon,
-+ ZoomResetIcon,
-+ EyeCloseIcon,
-+ EyeIcon,
-+ DocumentIcon,
-+ UndoIcon,
-+ VideoIcon,
-+ LinkIcon,
-+} from '@storybook/icons';
-+import {
-+ filterArgTypes,
-+ composeConfigs,
-+ Preview as Preview$1,
-+ DocsContext as DocsContext$1,
-+} from '@storybook/preview-api';
-+import {
-+ styled,
-+ ignoreSsrWarning,
-+ useTheme,
-+ themes,
-+ ThemeProvider,
-+ convert,
-+ ensure,
-+} from '@storybook/theming';
-+import cloneDeep from 'lodash/cloneDeep.js';
- import pickBy from 'lodash/pickBy.js';
--import { includeConditionalArg } from '@storybook/csf';
--import { deprecate, once, logger } from '@storybook/client-logger';
-+import uniq from 'lodash/uniq.js';
- import Markdown from 'markdown-to-jsx';
- import memoize from 'memoizerific';
--import uniq from 'lodash/uniq.js';
--import cloneDeep from 'lodash/cloneDeep.js';
--import { filterArgTypes, composeConfigs, Preview as Preview$1, DocsContext as DocsContext$1 } from '@storybook/preview-api';
--import { SNIPPET_RENDERED, SourceType } from '@storybook/docs-tools';
--import { stringify } from 'telejson';
--import { GLOBALS_UPDATED, STORY_ARGS_UPDATED, UPDATE_STORY_ARGS, RESET_STORY_ARGS, NAVIGATE_URL } from '@storybook/core-events';
--import dedent from 'ts-dedent';
-+import {transparentize, darken, opacify, lighten, rgba} from 'polished';
-+import React17, {
-+ createContext,
-+ lazy,
-+ useState,
-+ useCallback,
-+ useRef,
-+ useEffect,
-+ Component,
-+ cloneElement,
-+ useMemo,
-+ Suspense,
-+ useContext,
-+ Children,
-+} from 'react';
-+import {stringify} from 'telejson';
- import * as tocbot from 'tocbot';
--import { Channel } from '@storybook/channels';
-+import dedent from 'ts-dedent';
-+import {getControlSetterButtonId, getControlId} from './chunk-GWAJ4KRU.mjs';
-
--var Wrapper=styled.div(withReset,({theme})=>({backgroundColor:theme.base==="light"?"rgba(0,0,0,.01)":"rgba(255,255,255,.01)",borderRadius:theme.appBorderRadius,border:`1px dashed ${theme.appBorderColor}`,display:"flex",alignItems:"center",justifyContent:"center",padding:20,margin:"25px 0 40px",color:transparentize(.3,theme.color.defaultText),fontSize:theme.typography.size.s2})),EmptyBlock=props=>React17.createElement(Wrapper,{...props,className:"docblock-emptyblock sb-unstyled"});var StyledSyntaxHighlighter=styled(SyntaxHighlighter)(({theme})=>({fontSize:`${theme.typography.size.s2-1}px`,lineHeight:"19px",margin:"25px 0 40px",borderRadius:theme.appBorderRadius,boxShadow:theme.base==="light"?"rgba(0, 0, 0, 0.10) 0 1px 3px 0":"rgba(0, 0, 0, 0.20) 0 2px 5px 0","pre.prismjs":{padding:20,background:"inherit"}}));var SourceSkeletonWrapper=styled.div(({theme})=>({background:theme.background.content,borderRadius:theme.appBorderRadius,border:`1px solid ${theme.appBorderColor}`,boxShadow:theme.base==="light"?"rgba(0, 0, 0, 0.10) 0 1px 3px 0":"rgba(0, 0, 0, 0.20) 0 2px 5px 0",margin:"25px 0 40px",padding:"20px 20px 20px 22px"})),SourceSkeletonPlaceholder=styled.div(({theme})=>({animation:`${theme.animation.glow} 1.5s ease-in-out infinite`,background:theme.appBorderColor,height:17,marginTop:1,width:"60%",[`&:first-child${ignoreSsrWarning}`]:{margin:0}})),SourceSkeleton=()=>React17.createElement(SourceSkeletonWrapper,null,React17.createElement(SourceSkeletonPlaceholder,null),React17.createElement(SourceSkeletonPlaceholder,{style:{width:"80%"}}),React17.createElement(SourceSkeletonPlaceholder,{style:{width:"30%"}}),React17.createElement(SourceSkeletonPlaceholder,{style:{width:"80%"}})),Source=({isLoading,error,language,code,dark,format:format2=!1,...rest})=>{let{typography}=useTheme();if(isLoading)return React17.createElement(SourceSkeleton,null);if(error)return React17.createElement(EmptyBlock,null,error);let syntaxHighlighter=React17.createElement(StyledSyntaxHighlighter,{bordered:!0,copyable:!0,format:format2,language,className:"docblock-source sb-unstyled",...rest},code);if(typeof dark>"u")return syntaxHighlighter;let overrideTheme=dark?themes.dark:themes.light;return React17.createElement(ThemeProvider,{theme:convert({...overrideTheme,fontCode:typography.fonts.mono,fontBase:typography.fonts.base})},syntaxHighlighter)};var toGlobalSelector=element=>`& :where(${element}:not(.sb-anchor, .sb-unstyled, .sb-unstyled ${element}))`,breakpoint=600,Title=styled.h1(withReset,({theme})=>({color:theme.color.defaultText,fontSize:theme.typography.size.m3,fontWeight:theme.typography.weight.bold,lineHeight:"32px",[`@media (min-width: ${breakpoint}px)`]:{fontSize:theme.typography.size.l1,lineHeight:"36px",marginBottom:"16px"}})),Subtitle=styled.h2(withReset,({theme})=>({fontWeight:theme.typography.weight.regular,fontSize:theme.typography.size.s3,lineHeight:"20px",borderBottom:"none",marginBottom:15,[`@media (min-width: ${breakpoint}px)`]:{fontSize:theme.typography.size.m1,lineHeight:"28px",marginBottom:24},color:transparentize(.25,theme.color.defaultText)})),DocsContent=styled.div(({theme})=>{let reset={fontFamily:theme.typography.fonts.base,fontSize:theme.typography.size.s3,margin:0,WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",WebkitTapHighlightColor:"rgba(0, 0, 0, 0)",WebkitOverflowScrolling:"touch"},headers={margin:"20px 0 8px",padding:0,cursor:"text",position:"relative",color:theme.color.defaultText,"&:first-of-type":{marginTop:0,paddingTop:0},"&:hover a.anchor":{textDecoration:"none"},"& code":{fontSize:"inherit"}},code={lineHeight:1,margin:"0 2px",padding:"3px 5px",whiteSpace:"nowrap",borderRadius:3,fontSize:theme.typography.size.s2-1,border:theme.base==="light"?`1px solid ${theme.color.mediumlight}`:`1px solid ${theme.color.darker}`,color:theme.base==="light"?transparentize(.1,theme.color.defaultText):transparentize(.3,theme.color.defaultText),backgroundColor:theme.base==="light"?theme.color.lighter:theme.color.border};return {maxWidth:1e3,width:"100%",[toGlobalSelector("a")]:{...reset,fontSize:"inherit",lineHeight:"24px",color:theme.color.secondary,textDecoration:"none","&.absent":{color:"#cc0000"},"&.anchor":{display:"block",paddingLeft:30,marginLeft:-30,cursor:"pointer",position:"absolute",top:0,left:0,bottom:0}},[toGlobalSelector("blockquote")]:{...reset,margin:"16px 0",borderLeft:`4px solid ${theme.color.medium}`,padding:"0 15px",color:theme.color.dark,"& > :first-of-type":{marginTop:0},"& > :last-child":{marginBottom:0}},[toGlobalSelector("div")]:reset,[toGlobalSelector("dl")]:{...reset,margin:"16px 0",padding:0,"& dt":{fontSize:"14px",fontWeight:"bold",fontStyle:"italic",padding:0,margin:"16px 0 4px"},"& dt:first-of-type":{padding:0},"& dt > :first-of-type":{marginTop:0},"& dt > :last-child":{marginBottom:0},"& dd":{margin:"0 0 16px",padding:"0 15px"},"& dd > :first-of-type":{marginTop:0},"& dd > :last-child":{marginBottom:0}},[toGlobalSelector("h1")]:{...reset,...headers,fontSize:`${theme.typography.size.l1}px`,fontWeight:theme.typography.weight.bold},[toGlobalSelector("h2")]:{...reset,...headers,fontSize:`${theme.typography.size.m2}px`,paddingBottom:4,borderBottom:`1px solid ${theme.appBorderColor}`},[toGlobalSelector("h3")]:{...reset,...headers,fontSize:`${theme.typography.size.m1}px`,fontWeight:theme.typography.weight.bold},[toGlobalSelector("h4")]:{...reset,...headers,fontSize:`${theme.typography.size.s3}px`},[toGlobalSelector("h5")]:{...reset,...headers,fontSize:`${theme.typography.size.s2}px`},[toGlobalSelector("h6")]:{...reset,...headers,fontSize:`${theme.typography.size.s2}px`,color:theme.color.dark},[toGlobalSelector("hr")]:{border:"0 none",borderTop:`1px solid ${theme.appBorderColor}`,height:4,padding:0},[toGlobalSelector("img")]:{maxWidth:"100%"},[toGlobalSelector("li")]:{...reset,fontSize:theme.typography.size.s2,color:theme.color.defaultText,lineHeight:"24px","& + li":{marginTop:".25em"},"& ul, & ol":{marginTop:".25em",marginBottom:0},"& code":code},[toGlobalSelector("ol")]:{...reset,margin:"16px 0",paddingLeft:30,"& :first-of-type":{marginTop:0},"& :last-child":{marginBottom:0}},[toGlobalSelector("p")]:{...reset,margin:"16px 0",fontSize:theme.typography.size.s2,lineHeight:"24px",color:theme.color.defaultText,"& code":code},[toGlobalSelector("pre")]:{...reset,fontFamily:theme.typography.fonts.mono,WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",lineHeight:"18px",padding:"11px 1rem",whiteSpace:"pre-wrap",color:"inherit",borderRadius:3,margin:"1rem 0","&:not(.prismjs)":{background:"transparent",border:"none",borderRadius:0,padding:0,margin:0},"& pre, &.prismjs":{padding:15,margin:0,whiteSpace:"pre-wrap",color:"inherit",fontSize:"13px",lineHeight:"19px",code:{color:"inherit",fontSize:"inherit"}},"& code":{whiteSpace:"pre"},"& code, & tt":{border:"none"}},[toGlobalSelector("span")]:{...reset,"&.frame":{display:"block",overflow:"hidden","& > span":{border:`1px solid ${theme.color.medium}`,display:"block",float:"left",overflow:"hidden",margin:"13px 0 0",padding:7,width:"auto"},"& span img":{display:"block",float:"left"},"& span span":{clear:"both",color:theme.color.darkest,display:"block",padding:"5px 0 0"}},"&.align-center":{display:"block",overflow:"hidden",clear:"both","& > span":{display:"block",overflow:"hidden",margin:"13px auto 0",textAlign:"center"},"& span img":{margin:"0 auto",textAlign:"center"}},"&.align-right":{display:"block",overflow:"hidden",clear:"both","& > span":{display:"block",overflow:"hidden",margin:"13px 0 0",textAlign:"right"},"& span img":{margin:0,textAlign:"right"}},"&.float-left":{display:"block",marginRight:13,overflow:"hidden",float:"left","& span":{margin:"13px 0 0"}},"&.float-right":{display:"block",marginLeft:13,overflow:"hidden",float:"right","& > span":{display:"block",overflow:"hidden",margin:"13px auto 0",textAlign:"right"}}},[toGlobalSelector("table")]:{...reset,margin:"16px 0",fontSize:theme.typography.size.s2,lineHeight:"24px",padding:0,borderCollapse:"collapse","& tr":{borderTop:`1px solid ${theme.appBorderColor}`,backgroundColor:theme.appContentBg,margin:0,padding:0},"& tr:nth-of-type(2n)":{backgroundColor:theme.base==="dark"?theme.color.darker:theme.color.lighter},"& tr th":{fontWeight:"bold",color:theme.color.defaultText,border:`1px solid ${theme.appBorderColor}`,margin:0,padding:"6px 13px"},"& tr td":{border:`1px solid ${theme.appBorderColor}`,color:theme.color.defaultText,margin:0,padding:"6px 13px"},"& tr th :first-of-type, & tr td :first-of-type":{marginTop:0},"& tr th :last-child, & tr td :last-child":{marginBottom:0}},[toGlobalSelector("ul")]:{...reset,margin:"16px 0",paddingLeft:30,"& :first-of-type":{marginTop:0},"& :last-child":{marginBottom:0},listStyle:"disc"}}}),DocsWrapper=styled.div(({theme})=>({background:theme.background.content,display:"flex",justifyContent:"center",padding:"4rem 20px",minHeight:"100vh",boxSizing:"border-box",gap:"3rem",[`@media (min-width: ${breakpoint}px)`]:{}})),DocsPageWrapper=({children,toc})=>React17.createElement(DocsWrapper,{className:"sbdocs sbdocs-wrapper"},React17.createElement(DocsContent,{className:"sbdocs sbdocs-content"},children),toc);var getBlockBackgroundStyle=theme=>({borderRadius:theme.appBorderRadius,background:theme.background.content,boxShadow:theme.base==="light"?"rgba(0, 0, 0, 0.10) 0 1px 3px 0":"rgba(0, 0, 0, 0.20) 0 2px 5px 0",border:`1px solid ${theme.appBorderColor}`});var Bar=styled(FlexBar)({position:"absolute",left:0,right:0,top:0,transition:"transform .2s linear"}),Wrapper2=styled.div({display:"flex",alignItems:"center",gap:4}),IconPlaceholder=styled.div(({theme})=>({width:14,height:14,borderRadius:2,margin:"0 7px",backgroundColor:theme.appBorderColor,animation:`${theme.animation.glow} 1.5s ease-in-out infinite`})),Toolbar=({isLoading,storyId,baseUrl,zoom,resetZoom,...rest})=>React17.createElement(Bar,{...rest},React17.createElement(Wrapper2,{key:"left"},isLoading?[1,2,3].map(key=>React17.createElement(IconPlaceholder,{key})):React17.createElement(React17.Fragment,null,React17.createElement(IconButton,{key:"zoomin",onClick:e=>{e.preventDefault(),zoom(.8);},title:"Zoom in"},React17.createElement(ZoomIcon,null)),React17.createElement(IconButton,{key:"zoomout",onClick:e=>{e.preventDefault(),zoom(1.25);},title:"Zoom out"},React17.createElement(ZoomOutIcon,null)),React17.createElement(IconButton,{key:"zoomreset",onClick:e=>{e.preventDefault(),resetZoom();},title:"Reset zoom"},React17.createElement(ZoomResetIcon,null)))));var ZoomContext=createContext({scale:1});var{window:globalWindow}=global,IFrame=class extends Component{constructor(){super(...arguments);this.iframe=null;}componentDidMount(){let{id}=this.props;this.iframe=globalWindow.document.getElementById(id);}shouldComponentUpdate(nextProps){let{scale}=nextProps;return scale!==this.props.scale&&this.setIframeBodyStyle({width:`${scale*100}%`,height:`${scale*100}%`,transform:`scale(${1/scale})`,transformOrigin:"top left"}),!1}setIframeBodyStyle(style){return Object.assign(this.iframe.contentDocument.body.style,style)}render(){let{id,title,src,allowFullScreen,scale,...rest}=this.props;return React17.createElement("iframe",{id,title,src,...allowFullScreen?{allow:"fullscreen"}:{},loading:"lazy",...rest})}};var{PREVIEW_URL}=global,BASE_URL=PREVIEW_URL||"iframe.html",storyBlockIdFromId=({story,primary})=>`story--${story.id}${primary?"--primary":""}`,InlineStory=props=>{let storyRef=useRef(),[showLoader,setShowLoader]=useState(!0),[error,setError]=useState(),{story,height,autoplay,forceInitialArgs,renderStoryToElement}=props;return useEffect(()=>{if(!(story&&storyRef.current))return ()=>{};let element=storyRef.current,cleanup=renderStoryToElement(story,element,{showMain:()=>{},showError:({title,description})=>setError(new Error(`${title} - ${description}`)),showException:err=>setError(err)},{autoplay,forceInitialArgs});return setShowLoader(!1),()=>{Promise.resolve().then(()=>cleanup());}},[autoplay,renderStoryToElement,story]),error?React17.createElement("pre",null,React17.createElement(ErrorFormatter,{error})):React17.createElement(React17.Fragment,null,height?React17.createElement("style",null,`#${storyBlockIdFromId(props)} { min-height: ${height}; transform: translateZ(0); overflow: auto }`):null,showLoader&&React17.createElement(StorySkeleton,null),React17.createElement("div",{ref:storyRef,id:`${storyBlockIdFromId(props)}-inner`,"data-name":story.name}))},IFrameStory=({story,height="500px"})=>React17.createElement("div",{style:{width:"100%",height}},React17.createElement(ZoomContext.Consumer,null,({scale})=>React17.createElement(IFrame,{key:"iframe",id:`iframe--${story.id}`,title:story.name,src:getStoryHref(BASE_URL,story.id,{viewMode:"story"}),allowFullScreen:!0,scale,style:{width:"100%",height:"100%",border:"0 none"}}))),Story=props=>{let{inline}=props;return React17.createElement("div",{id:storyBlockIdFromId(props),className:"sb-story sb-unstyled","data-story-block":"true"},inline?React17.createElement(InlineStory,{...props}):React17.createElement(IFrameStory,{...props}))},StorySkeleton=()=>React17.createElement(Loader,null);var ChildrenContainer=styled.div(({isColumn,columns,layout})=>({display:isColumn||!columns?"block":"flex",position:"relative",flexWrap:"wrap",overflow:"auto",flexDirection:isColumn?"column":"row","& .innerZoomElementWrapper > *":isColumn?{width:layout!=="fullscreen"?"calc(100% - 20px)":"100%",display:"block"}:{maxWidth:layout!=="fullscreen"?"calc(100% - 20px)":"100%",display:"inline-block"}}),({layout="padded"})=>layout==="centered"||layout==="padded"?{padding:"30px 20px","& .innerZoomElementWrapper > *":{width:"auto",border:"10px solid transparent!important"}}:{},({layout="padded"})=>layout==="centered"?{display:"flex",justifyContent:"center",justifyItems:"center",alignContent:"center",alignItems:"center"}:{},({columns})=>columns&&columns>1?{".innerZoomElementWrapper > *":{minWidth:`calc(100% / ${columns} - 20px)`}}:{}),StyledSource=styled(Source)(({theme})=>({margin:0,borderTopLeftRadius:0,borderTopRightRadius:0,borderBottomLeftRadius:theme.appBorderRadius,borderBottomRightRadius:theme.appBorderRadius,border:"none",background:theme.base==="light"?"rgba(0, 0, 0, 0.85)":darken(.05,theme.background.content),color:theme.color.lightest,button:{background:theme.base==="light"?"rgba(0, 0, 0, 0.85)":darken(.05,theme.background.content)}})),PreviewContainer=styled.div(({theme,withSource,isExpanded})=>({position:"relative",overflow:"hidden",margin:"25px 0 40px",...getBlockBackgroundStyle(theme),borderBottomLeftRadius:withSource&&isExpanded&&0,borderBottomRightRadius:withSource&&isExpanded&&0,borderBottomWidth:isExpanded&&0,"h3 + &":{marginTop:"16px"}}),({withToolbar})=>withToolbar&&{paddingTop:40}),getSource=(withSource,expanded,setExpanded)=>{switch(!0){case!!(withSource&&withSource.error):return {source:null,actionItem:{title:"No code available",className:"docblock-code-toggle docblock-code-toggle--disabled",disabled:!0,onClick:()=>setExpanded(!1)}};case expanded:return {source:React17.createElement(StyledSource,{...withSource,dark:!0}),actionItem:{title:"Hide code",className:"docblock-code-toggle docblock-code-toggle--expanded",onClick:()=>setExpanded(!1)}};default:return {source:React17.createElement(StyledSource,{...withSource,dark:!0}),actionItem:{title:"Show code",className:"docblock-code-toggle",onClick:()=>setExpanded(!0)}}}};function getStoryId(children){if(Children.count(children)===1){let elt=children;if(elt.props)return elt.props.id}return null}var PositionedToolbar=styled(Toolbar)({position:"absolute",top:0,left:0,right:0,height:40}),Relative=styled.div({overflow:"hidden",position:"relative"}),Preview=({isLoading,isColumn,columns,children,withSource,withToolbar=!1,isExpanded=!1,additionalActions,className,layout="padded",...props})=>{let[expanded,setExpanded]=useState(isExpanded),{source,actionItem}=getSource(withSource,expanded,setExpanded),[scale,setScale]=useState(1),previewClasses=[className].concat(["sbdocs","sbdocs-preview","sb-unstyled"]),defaultActionItems=withSource?[actionItem]:[],[additionalActionItems,setAdditionalActionItems]=useState(additionalActions?[...additionalActions]:[]),actionItems=[...defaultActionItems,...additionalActionItems],{window:globalWindow4}=global,copyToClipboard=useCallback(async text=>{let{createCopyToClipboardFunction}=await import('@storybook/components');createCopyToClipboardFunction();},[]),onCopyCapture=e=>{let selection=globalWindow4.getSelection();selection&&selection.type==="Range"||(e.preventDefault(),additionalActionItems.filter(item=>item.title==="Copied").length===0&©ToClipboard(source.props.code).then(()=>{setAdditionalActionItems([...additionalActionItems,{title:"Copied",onClick:()=>{}}]),globalWindow4.setTimeout(()=>setAdditionalActionItems(additionalActionItems.filter(item=>item.title!=="Copied")),1500);}));};return React17.createElement(PreviewContainer,{withSource,withToolbar,...props,className:previewClasses.join(" ")},withToolbar&&React17.createElement(PositionedToolbar,{isLoading,border:!0,zoom:z=>setScale(scale*z),resetZoom:()=>setScale(1),storyId:getStoryId(children),baseUrl:"./iframe.html"}),React17.createElement(ZoomContext.Provider,{value:{scale}},React17.createElement(Relative,{className:"docs-story",onCopyCapture:withSource&&onCopyCapture},React17.createElement(ChildrenContainer,{isColumn:isColumn||!Array.isArray(children),columns,layout},React17.createElement(Zoom.Element,{scale},Array.isArray(children)?children.map((child,i)=>React17.createElement("div",{key:i},child)):React17.createElement("div",null,children))),React17.createElement(ActionBar,{actionItems}))),withSource&&expanded&&source)};styled(Preview)(()=>({".docs-story":{paddingTop:32,paddingBottom:40}}));var Table=styled.table(({theme})=>({"&&":{borderCollapse:"collapse",borderSpacing:0,border:"none",tr:{border:"none !important",background:"none"},"td, th":{padding:0,border:"none",width:"auto!important"},marginTop:0,marginBottom:0,"th:first-of-type, td:first-of-type":{paddingLeft:0},"th:last-of-type, td:last-of-type":{paddingRight:0},td:{paddingTop:0,paddingBottom:4,"&:not(:first-of-type)":{paddingLeft:10,paddingRight:0}},tbody:{boxShadow:"none",border:"none"},code:codeCommon({theme}),div:{span:{fontWeight:"bold"}},"& code":{margin:0,display:"inline-block",fontSize:theme.typography.size.s1}}})),ArgJsDoc=({tags})=>{let params=(tags.params||[]).filter(x=>x.description),hasDisplayableParams=params.length!==0,hasDisplayableDeprecated=tags.deprecated!=null,hasDisplayableReturns=tags.returns!=null&&tags.returns.description!=null;return !hasDisplayableParams&&!hasDisplayableReturns&&!hasDisplayableDeprecated?null:React17.createElement(React17.Fragment,null,React17.createElement(Table,null,React17.createElement("tbody",null,hasDisplayableDeprecated&&React17.createElement("tr",{key:"deprecated"},React17.createElement("td",{colSpan:2},React17.createElement("strong",null,"Deprecated"),": ",tags.deprecated.toString())),hasDisplayableParams&¶ms.map(x=>React17.createElement("tr",{key:x.name},React17.createElement("td",null,React17.createElement("code",null,x.name)),React17.createElement("td",null,x.description))),hasDisplayableReturns&&React17.createElement("tr",{key:"returns"},React17.createElement("td",null,React17.createElement("code",null,"Returns")),React17.createElement("td",null,tags.returns.description)))))};var ITEMS_BEFORE_EXPANSION=8,Summary=styled.div(({isExpanded})=>({display:"flex",flexDirection:isExpanded?"column":"row",flexWrap:"wrap",alignItems:"flex-start",marginBottom:"-4px",minWidth:100})),Text=styled.span(codeCommon,({theme,simple=!1})=>({flex:"0 0 auto",fontFamily:theme.typography.fonts.mono,fontSize:theme.typography.size.s1,wordBreak:"break-word",whiteSpace:"normal",maxWidth:"100%",margin:0,marginRight:"4px",marginBottom:"4px",paddingTop:"2px",paddingBottom:"2px",lineHeight:"13px",...simple&&{background:"transparent",border:"0 none",paddingLeft:0}})),ExpandButton=styled.button(({theme})=>({fontFamily:theme.typography.fonts.mono,color:theme.color.secondary,marginBottom:"4px",background:"none",border:"none"})),Expandable=styled.div(codeCommon,({theme})=>({fontFamily:theme.typography.fonts.mono,color:theme.color.secondary,fontSize:theme.typography.size.s1,margin:0,whiteSpace:"nowrap",display:"flex",alignItems:"center"})),Detail=styled.div(({theme,width})=>({width,minWidth:200,maxWidth:800,padding:15,fontFamily:theme.typography.fonts.mono,fontSize:theme.typography.size.s1,boxSizing:"content-box","& code":{padding:"0 !important"}})),ChevronUpIcon=styled(ChevronSmallUpIcon)({marginLeft:4}),ChevronDownIcon=styled(ChevronSmallDownIcon)({marginLeft:4}),EmptyArg=()=>React17.createElement("span",null,"-"),ArgText=({text,simple})=>React17.createElement(Text,{simple},text),calculateDetailWidth=memoize(1e3)(detail=>{let lines=detail.split(/\r?\n/);return `${Math.max(...lines.map(x=>x.length))}ch`}),getSummaryItems=summary=>{if(!summary)return [summary];let summaryItems=summary.split("|").map(value2=>value2.trim());return uniq(summaryItems)},renderSummaryItems=(summaryItems,isExpanded=!0)=>{let items=summaryItems;return isExpanded||(items=summaryItems.slice(0,ITEMS_BEFORE_EXPANSION)),items.map(item=>React17.createElement(ArgText,{key:item,text:item===""?'""':item}))},ArgSummary=({value:value2,initialExpandedArgs})=>{let{summary,detail}=value2,[isOpen,setIsOpen]=useState(!1),[isExpanded,setIsExpanded]=useState(initialExpandedArgs||!1);if(summary==null)return null;let summaryAsString=typeof summary.toString=="function"?summary.toString():summary;if(detail==null){if(/[(){}[\]<>]/.test(summaryAsString))return React17.createElement(ArgText,{text:summaryAsString});let summaryItems=getSummaryItems(summaryAsString),itemsCount=summaryItems.length;return itemsCount>ITEMS_BEFORE_EXPANSION?React17.createElement(Summary,{isExpanded},renderSummaryItems(summaryItems,isExpanded),React17.createElement(ExpandButton,{onClick:()=>setIsExpanded(!isExpanded)},isExpanded?"Show less...":`Show ${itemsCount-ITEMS_BEFORE_EXPANSION} more...`)):React17.createElement(Summary,null,renderSummaryItems(summaryItems))}return React17.createElement(WithTooltipPure,{closeOnOutsideClick:!0,placement:"bottom",visible:isOpen,onVisibleChange:isVisible=>{setIsOpen(isVisible);},tooltip:React17.createElement(Detail,{width:calculateDetailWidth(detail)},React17.createElement(SyntaxHighlighter,{language:"jsx",format:!1},detail))},React17.createElement(Expandable,{className:"sbdocs-expandable"},React17.createElement("span",null,summaryAsString),isOpen?React17.createElement(ChevronUpIcon,null):React17.createElement(ChevronDownIcon,null)))},ArgValue=({value:value2,initialExpandedArgs})=>value2==null?React17.createElement(EmptyArg,null):React17.createElement(ArgSummary,{value:value2,initialExpandedArgs});var Label=styled.label(({theme})=>({lineHeight:"18px",alignItems:"center",marginBottom:8,display:"inline-block",position:"relative",whiteSpace:"nowrap",background:theme.boolean.background,borderRadius:"3em",padding:1,'&[aria-disabled="true"]':{opacity:.5,input:{cursor:"not-allowed"}},input:{appearance:"none",width:"100%",height:"100%",position:"absolute",left:0,top:0,margin:0,padding:0,border:"none",background:"transparent",cursor:"pointer",borderRadius:"3em","&:focus":{outline:"none",boxShadow:`${theme.color.secondary} 0 0 0 1px inset !important`}},span:{textAlign:"center",fontSize:theme.typography.size.s1,fontWeight:theme.typography.weight.bold,lineHeight:"1",cursor:"pointer",display:"inline-block",padding:"7px 15px",transition:"all 100ms ease-out",userSelect:"none",borderRadius:"3em",color:transparentize(.5,theme.color.defaultText),background:"transparent","&:hover":{boxShadow:`${opacify(.3,theme.appBorderColor)} 0 0 0 1px inset`},"&:active":{boxShadow:`${opacify(.05,theme.appBorderColor)} 0 0 0 2px inset`,color:opacify(1,theme.appBorderColor)},"&:first-of-type":{paddingRight:8},"&:last-of-type":{paddingLeft:8}},"input:checked ~ span:last-of-type, input:not(:checked) ~ span:first-of-type":{background:theme.boolean.selectedBackground,boxShadow:theme.base==="light"?`${opacify(.1,theme.appBorderColor)} 0 0 2px`:`${theme.appBorderColor} 0 0 0 1px`,color:theme.color.defaultText,padding:"7px 15px"}})),parse=value2=>value2==="true",BooleanControl=({name,value:value2,onChange,onBlur,onFocus,argType})=>{let onSetFalse=useCallback(()=>onChange(!1),[onChange]),readonly=!!argType?.table?.readonly;if(value2===void 0)return React17.createElement(Button,{variant:"outline",size:"medium",id:getControlSetterButtonId(name),onClick:onSetFalse,disabled:readonly},"Set boolean");let controlId=getControlId(name),parsedValue=typeof value2=="string"?parse(value2):value2;return React17.createElement(Label,{"aria-disabled":readonly,htmlFor:controlId,"aria-label":name},React17.createElement("input",{id:controlId,type:"checkbox",onChange:e=>onChange(e.target.checked),checked:parsedValue,role:"switch",disabled:readonly,name,onBlur,onFocus}),React17.createElement("span",{"aria-hidden":"true"},"False"),React17.createElement("span",{"aria-hidden":"true"},"True"))};var parseDate=value2=>{let[year,month,day]=value2.split("-"),result=new Date;return result.setFullYear(parseInt(year,10),parseInt(month,10)-1,parseInt(day,10)),result},parseTime=value2=>{let[hours,minutes]=value2.split(":"),result=new Date;return result.setHours(parseInt(hours,10)),result.setMinutes(parseInt(minutes,10)),result},formatDate=value2=>{let date=new Date(value2),year=`000${date.getFullYear()}`.slice(-4),month=`0${date.getMonth()+1}`.slice(-2),day=`0${date.getDate()}`.slice(-2);return `${year}-${month}-${day}`},formatTime=value2=>{let date=new Date(value2),hours=`0${date.getHours()}`.slice(-2),minutes=`0${date.getMinutes()}`.slice(-2);return `${hours}:${minutes}`},FormInput=styled(Form.Input)(({readOnly})=>({opacity:readOnly?.5:1})),FlexSpaced=styled.div(({theme})=>({flex:1,display:"flex",input:{marginLeft:10,flex:1,height:32,"&::-webkit-calendar-picker-indicator":{opacity:.5,height:12,filter:theme.base==="light"?void 0:"invert(1)"}},"input:first-of-type":{marginLeft:0,flexGrow:4},"input:last-of-type":{flexGrow:3}})),DateControl=({name,value:value2,onChange,onFocus,onBlur,argType})=>{let[valid,setValid]=useState(!0),dateRef=useRef(),timeRef=useRef(),readonly=!!argType?.table?.readonly;useEffect(()=>{valid!==!1&&(dateRef&&dateRef.current&&(dateRef.current.value=formatDate(value2)),timeRef&&timeRef.current&&(timeRef.current.value=formatTime(value2)));},[value2]);let onDateChange=e=>{let parsed=parseDate(e.target.value),result=new Date(value2);result.setFullYear(parsed.getFullYear(),parsed.getMonth(),parsed.getDate());let time=result.getTime();time&&onChange(time),setValid(!!time);},onTimeChange=e=>{let parsed=parseTime(e.target.value),result=new Date(value2);result.setHours(parsed.getHours()),result.setMinutes(parsed.getMinutes());let time=result.getTime();time&&onChange(time),setValid(!!time);},controlId=getControlId(name);return React17.createElement(FlexSpaced,null,React17.createElement(FormInput,{type:"date",max:"9999-12-31",ref:dateRef,id:`${controlId}-date`,name:`${controlId}-date`,readOnly:readonly,onChange:onDateChange,onFocus,onBlur}),React17.createElement(FormInput,{type:"time",id:`${controlId}-time`,name:`${controlId}-time`,ref:timeRef,onChange:onTimeChange,readOnly:readonly,onFocus,onBlur}),valid?null:React17.createElement("div",null,"invalid"))};var Wrapper3=styled.label({display:"flex"}),parse2=value2=>{let result=parseFloat(value2);return Number.isNaN(result)?void 0:result},format=value2=>value2!=null?String(value2):"",FormInput2=styled(Form.Input)(({readOnly})=>({opacity:readOnly?.5:1})),NumberControl=({name,value:value2,onChange,min,max,step,onBlur,onFocus,argType})=>{let[inputValue,setInputValue]=useState(typeof value2=="number"?value2:""),[forceVisible,setForceVisible]=useState(!1),[parseError,setParseError]=useState(null),readonly=!!argType?.table?.readonly,handleChange=useCallback(event=>{setInputValue(event.target.value);let result=parseFloat(event.target.value);Number.isNaN(result)?setParseError(new Error(`'${event.target.value}' is not a number`)):(onChange(result),setParseError(null));},[onChange,setParseError]),onForceVisible=useCallback(()=>{setInputValue("0"),onChange(0),setForceVisible(!0);},[setForceVisible]),htmlElRef=useRef(null);return useEffect(()=>{forceVisible&&htmlElRef.current&&htmlElRef.current.select();},[forceVisible]),useEffect(()=>{inputValue!==(typeof value2=="number"?value2:"")&&setInputValue(value2);},[value2]),value2===void 0?React17.createElement(Button,{variant:"outline",size:"medium",id:getControlSetterButtonId(name),onClick:onForceVisible,disabled:readonly},"Set number"):React17.createElement(Wrapper3,null,React17.createElement(FormInput2,{ref:htmlElRef,id:getControlId(name),type:"number",onChange:handleChange,size:"flex",placeholder:"Edit number...",value:inputValue,valid:parseError?"error":null,autoFocus:forceVisible,readOnly:readonly,name,min,max,step,onFocus,onBlur}))};var selectedKey=(value2,options)=>{let entry=options&&Object.entries(options).find(([_key,val])=>val===value2);return entry?entry[0]:void 0},selectedKeys=(value2,options)=>value2&&options?Object.entries(options).filter(entry=>value2.includes(entry[1])).map(entry=>entry[0]):[],selectedValues=(keys,options)=>keys&&options&&keys.map(key=>options[key]);var Wrapper4=styled.div(({isInline})=>isInline?{display:"flex",flexWrap:"wrap",alignItems:"flex-start",label:{display:"inline-flex",marginRight:15}}:{label:{display:"flex"}},props=>{if(props["aria-readonly"]==="true")return {input:{cursor:"not-allowed"}}}),Text2=styled.span({"[aria-readonly=true] &":{opacity:.5}}),Label2=styled.label({lineHeight:"20px",alignItems:"center",marginBottom:8,"&:last-child":{marginBottom:0},input:{margin:0,marginRight:6}}),CheckboxControl=({name,options,value:value2,onChange,isInline,argType})=>{if(!options)return logger.warn(`Checkbox with no options: ${name}`),React17.createElement(React17.Fragment,null,"-");let initial=selectedKeys(value2,options),[selected,setSelected]=useState(initial),readonly=!!argType?.table?.readonly,handleChange=e=>{let option=e.target.value,updated=[...selected];updated.includes(option)?updated.splice(updated.indexOf(option),1):updated.push(option),onChange(selectedValues(updated,options)),setSelected(updated);};useEffect(()=>{setSelected(selectedKeys(value2,options));},[value2]);let controlId=getControlId(name);return React17.createElement(Wrapper4,{"aria-readonly":readonly,isInline},Object.keys(options).map((key,index)=>{let id=`${controlId}-${index}`;return React17.createElement(Label2,{key:id,htmlFor:id},React17.createElement("input",{type:"checkbox",disabled:readonly,id,name:id,value:key,onChange:handleChange,checked:selected?.includes(key)}),React17.createElement(Text2,null,key))}))};var Wrapper5=styled.div(({isInline})=>isInline?{display:"flex",flexWrap:"wrap",alignItems:"flex-start",label:{display:"inline-flex",marginRight:15}}:{label:{display:"flex"}},props=>{if(props["aria-readonly"]==="true")return {input:{cursor:"not-allowed"}}}),Text3=styled.span({"[aria-readonly=true] &":{opacity:.5}}),Label3=styled.label({lineHeight:"20px",alignItems:"center",marginBottom:8,"&:last-child":{marginBottom:0},input:{margin:0,marginRight:6}}),RadioControl=({name,options,value:value2,onChange,isInline,argType})=>{if(!options)return logger.warn(`Radio with no options: ${name}`),React17.createElement(React17.Fragment,null,"-");let selection=selectedKey(value2,options),controlId=getControlId(name),readonly=!!argType?.table?.readonly;return React17.createElement(Wrapper5,{"aria-readonly":readonly,isInline},Object.keys(options).map((key,index)=>{let id=`${controlId}-${index}`;return React17.createElement(Label3,{key:id,htmlFor:id},React17.createElement("input",{type:"radio",id,name:id,disabled:readonly,value:key,onChange:e=>onChange(options[e.currentTarget.value]),checked:key===selection}),React17.createElement(Text3,null,key))}))};var styleResets={appearance:"none",border:"0 none",boxSizing:"inherit",display:" block",margin:" 0",background:"transparent",padding:0,fontSize:"inherit",position:"relative"},OptionsSelect=styled.select(styleResets,({theme})=>({boxSizing:"border-box",position:"relative",padding:"6px 10px",width:"100%",color:theme.input.color||"inherit",background:theme.input.background,borderRadius:theme.input.borderRadius,boxShadow:`${theme.input.border} 0 0 0 1px inset`,fontSize:theme.typography.size.s2-1,lineHeight:"20px","&:focus":{boxShadow:`${theme.color.secondary} 0 0 0 1px inset`,outline:"none"},"&[disabled]":{cursor:"not-allowed",opacity:.5},"::placeholder":{color:theme.textMutedColor},"&[multiple]":{overflow:"auto",padding:0,option:{display:"block",padding:"6px 10px",marginLeft:1,marginRight:1}}})),SelectWrapper=styled.span(({theme})=>({display:"inline-block",lineHeight:"normal",overflow:"hidden",position:"relative",verticalAlign:"top",width:"100%",svg:{position:"absolute",zIndex:1,pointerEvents:"none",height:"12px",marginTop:"-6px",right:"12px",top:"50%",fill:theme.textMutedColor,path:{fill:theme.textMutedColor}}})),NO_SELECTION="Choose option...",SingleSelect=({name,value:value2,options,onChange,argType})=>{let handleChange=e=>{onChange(options[e.currentTarget.value]);},selection=selectedKey(value2,options)||NO_SELECTION,controlId=getControlId(name),readonly=!!argType?.table?.readonly;return React17.createElement(SelectWrapper,null,React17.createElement(ChevronSmallDownIcon,null),React17.createElement(OptionsSelect,{disabled:readonly,id:controlId,value:selection,onChange:handleChange},React17.createElement("option",{key:"no-selection",disabled:!0},NO_SELECTION),Object.keys(options).map(key=>React17.createElement("option",{key,value:key},key))))},MultiSelect=({name,value:value2,options,onChange,argType})=>{let handleChange=e=>{let selection2=Array.from(e.currentTarget.options).filter(option=>option.selected).map(option=>option.value);onChange(selectedValues(selection2,options));},selection=selectedKeys(value2,options),controlId=getControlId(name),readonly=!!argType?.table?.readonly;return React17.createElement(SelectWrapper,null,React17.createElement(OptionsSelect,{disabled:readonly,id:controlId,multiple:!0,value:selection,onChange:handleChange},Object.keys(options).map(key=>React17.createElement("option",{key,value:key},key))))},SelectControl=props=>{let{name,options}=props;return options?props.isMulti?React17.createElement(MultiSelect,{...props}):React17.createElement(SingleSelect,{...props}):(logger.warn(`Select with no options: ${name}`),React17.createElement(React17.Fragment,null,"-"))};var normalizeOptions=(options,labels)=>Array.isArray(options)?options.reduce((acc,item)=>(acc[labels?.[item]||String(item)]=item,acc),{}):options,Controls={check:CheckboxControl,"inline-check":CheckboxControl,radio:RadioControl,"inline-radio":RadioControl,select:SelectControl,"multi-select":SelectControl},OptionsControl=props=>{let{type="select",labels,argType}=props,normalized={...props,argType,options:argType?normalizeOptions(argType.options,labels):{},isInline:type.includes("inline"),isMulti:type.includes("multi")},Control=Controls[type];if(Control)return React17.createElement(Control,{...normalized});throw new Error(`Unknown options type: ${type}`)};var VALUE="value",KEY="key";var ERROR="Error",OBJECT="Object",ARRAY="Array",STRING="String",NUMBER="Number",BOOLEAN="Boolean",DATE="Date",NULL="Null",UNDEFINED="Undefined",FUNCTION="Function",SYMBOL="Symbol";var ADD_DELTA_TYPE="ADD_DELTA_TYPE",REMOVE_DELTA_TYPE="REMOVE_DELTA_TYPE",UPDATE_DELTA_TYPE="UPDATE_DELTA_TYPE";function getObjectType(obj){return obj!==null&&typeof obj=="object"&&!Array.isArray(obj)&&typeof obj[Symbol.iterator]=="function"?"Iterable":Object.prototype.toString.call(obj).slice(8,-1)}function isComponentWillChange(oldValue,newValue){let oldType=getObjectType(oldValue),newType=getObjectType(newValue);return (oldType==="Function"||newType==="Function")&&newType!==oldType}var JsonAddValue=class extends Component{constructor(props){super(props),this.state={inputRefKey:null,inputRefValue:null},this.refInputValue=this.refInputValue.bind(this),this.refInputKey=this.refInputKey.bind(this),this.onKeydown=this.onKeydown.bind(this),this.onSubmit=this.onSubmit.bind(this);}componentDidMount(){let{inputRefKey,inputRefValue}=this.state,{onlyValue}=this.props;inputRefKey&&typeof inputRefKey.focus=="function"&&inputRefKey.focus(),onlyValue&&inputRefValue&&typeof inputRefValue.focus=="function"&&inputRefValue.focus(),document.addEventListener("keydown",this.onKeydown);}componentWillUnmount(){document.removeEventListener("keydown",this.onKeydown);}onKeydown(event){event.altKey||event.ctrlKey||event.metaKey||event.shiftKey||event.repeat||((event.code==="Enter"||event.key==="Enter")&&(event.preventDefault(),this.onSubmit()),(event.code==="Escape"||event.key==="Escape")&&(event.preventDefault(),this.props.handleCancel()));}onSubmit(){let{handleAdd,onlyValue,onSubmitValueParser,keyPath,deep}=this.props,{inputRefKey,inputRefValue}=this.state,result={};if(!onlyValue){if(!inputRefKey.value)return;result.key=inputRefKey.value;}result.newValue=onSubmitValueParser(!1,keyPath,deep,result.key,inputRefValue.value),handleAdd(result);}refInputKey(node){this.state.inputRefKey=node;}refInputValue(node){this.state.inputRefValue=node;}render(){let{handleCancel,onlyValue,addButtonElement,cancelButtonElement,inputElementGenerator,keyPath,deep}=this.props,addButtonElementLayout=cloneElement(addButtonElement,{onClick:this.onSubmit}),cancelButtonElementLayout=cloneElement(cancelButtonElement,{onClick:handleCancel}),inputElementValue=inputElementGenerator(VALUE,keyPath,deep),inputElementValueLayout=cloneElement(inputElementValue,{placeholder:"Value",ref:this.refInputValue}),inputElementKeyLayout=null;if(!onlyValue){let inputElementKey=inputElementGenerator(KEY,keyPath,deep);inputElementKeyLayout=cloneElement(inputElementKey,{placeholder:"Key",ref:this.refInputKey});}return React17.createElement("span",{className:"rejt-add-value-node"},inputElementKeyLayout,inputElementValueLayout,cancelButtonElementLayout,addButtonElementLayout)}};JsonAddValue.defaultProps={onlyValue:!1,addButtonElement:React17.createElement("button",null,"+"),cancelButtonElement:React17.createElement("button",null,"c")};var JsonArray=class extends Component{constructor(props){super(props);let keyPath=[...props.keyPath,props.name];this.state={data:props.data,name:props.name,keyPath,deep:props.deep,nextDeep:props.deep+1,collapsed:props.isCollapsed(keyPath,props.deep,props.data),addFormVisible:!1},this.handleCollapseMode=this.handleCollapseMode.bind(this),this.handleRemoveItem=this.handleRemoveItem.bind(this),this.handleAddMode=this.handleAddMode.bind(this),this.handleAddValueAdd=this.handleAddValueAdd.bind(this),this.handleAddValueCancel=this.handleAddValueCancel.bind(this),this.handleEditValue=this.handleEditValue.bind(this),this.onChildUpdate=this.onChildUpdate.bind(this),this.renderCollapsed=this.renderCollapsed.bind(this),this.renderNotCollapsed=this.renderNotCollapsed.bind(this);}static getDerivedStateFromProps(props,state){return props.data!==state.data?{data:props.data}:null}onChildUpdate(childKey,childData){let{data,keyPath}=this.state;data[childKey]=childData,this.setState({data});let{onUpdate}=this.props,size=keyPath.length;onUpdate(keyPath[size-1],data);}handleAddMode(){this.setState({addFormVisible:!0});}handleCollapseMode(){this.setState(state=>({collapsed:!state.collapsed}));}handleRemoveItem(index){return ()=>{let{beforeRemoveAction,logger:logger4}=this.props,{data,keyPath,nextDeep:deep}=this.state,oldValue=data[index];beforeRemoveAction(index,keyPath,deep,oldValue).then(()=>{let deltaUpdateResult={keyPath,deep,key:index,oldValue,type:REMOVE_DELTA_TYPE};data.splice(index,1),this.setState({data});let{onUpdate,onDeltaUpdate}=this.props;onUpdate(keyPath[keyPath.length-1],data),onDeltaUpdate(deltaUpdateResult);}).catch(logger4.error);}}handleAddValueAdd({newValue}){let{data,keyPath,nextDeep:deep}=this.state,{beforeAddAction,logger:logger4}=this.props;beforeAddAction(data.length,keyPath,deep,newValue).then(()=>{let newData=[...data,newValue];this.setState({data:newData}),this.handleAddValueCancel();let{onUpdate,onDeltaUpdate}=this.props;onUpdate(keyPath[keyPath.length-1],newData),onDeltaUpdate({type:ADD_DELTA_TYPE,keyPath,deep,key:newData.length-1,newValue});}).catch(logger4.error);}handleAddValueCancel(){this.setState({addFormVisible:!1});}handleEditValue({key,value:value2}){return new Promise((resolve,reject)=>{let{beforeUpdateAction}=this.props,{data,keyPath,nextDeep:deep}=this.state,oldValue=data[key];beforeUpdateAction(key,keyPath,deep,oldValue,value2).then(()=>{data[key]=value2,this.setState({data});let{onUpdate,onDeltaUpdate}=this.props;onUpdate(keyPath[keyPath.length-1],data),onDeltaUpdate({type:UPDATE_DELTA_TYPE,keyPath,deep,key,newValue:value2,oldValue}),resolve(void 0);}).catch(reject);})}renderCollapsed(){let{name,data,keyPath,deep}=this.state,{handleRemove,readOnly,getStyle,dataType,minusMenuElement}=this.props,{minus,collapsed}=getStyle(name,data,keyPath,deep,dataType),isReadOnly=readOnly(name,data,keyPath,deep,dataType),removeItemButton=cloneElement(minusMenuElement,{onClick:handleRemove,className:"rejt-minus-menu",style:minus});return React17.createElement("span",{className:"rejt-collapsed"},React17.createElement("span",{className:"rejt-collapsed-text",style:collapsed,onClick:this.handleCollapseMode},"[...] ",data.length," ",data.length===1?"item":"items"),!isReadOnly&&removeItemButton)}renderNotCollapsed(){let{name,data,keyPath,deep,addFormVisible,nextDeep}=this.state,{isCollapsed,handleRemove,onDeltaUpdate,readOnly,getStyle,dataType,addButtonElement,cancelButtonElement,editButtonElement,inputElementGenerator,textareaElementGenerator,minusMenuElement,plusMenuElement,beforeRemoveAction,beforeAddAction,beforeUpdateAction,logger:logger4,onSubmitValueParser}=this.props,{minus,plus,delimiter,ul,addForm}=getStyle(name,data,keyPath,deep,dataType),isReadOnly=readOnly(name,data,keyPath,deep,dataType),addItemButton=cloneElement(plusMenuElement,{onClick:this.handleAddMode,className:"rejt-plus-menu",style:plus}),removeItemButton=cloneElement(minusMenuElement,{onClick:handleRemove,className:"rejt-minus-menu",style:minus});return React17.createElement("span",{className:"rejt-not-collapsed"},React17.createElement("span",{className:"rejt-not-collapsed-delimiter",style:delimiter},"["),!addFormVisible&&addItemButton,React17.createElement("ul",{className:"rejt-not-collapsed-list",style:ul},data.map((item,index)=>React17.createElement(JsonNode,{key:index,name:index.toString(),data:item,keyPath,deep:nextDeep,isCollapsed,handleRemove:this.handleRemoveItem(index),handleUpdateValue:this.handleEditValue,onUpdate:this.onChildUpdate,onDeltaUpdate,readOnly,getStyle,addButtonElement,cancelButtonElement,editButtonElement,inputElementGenerator,textareaElementGenerator,minusMenuElement,plusMenuElement,beforeRemoveAction,beforeAddAction,beforeUpdateAction,logger:logger4,onSubmitValueParser}))),!isReadOnly&&addFormVisible&&React17.createElement("div",{className:"rejt-add-form",style:addForm},React17.createElement(JsonAddValue,{handleAdd:this.handleAddValueAdd,handleCancel:this.handleAddValueCancel,onlyValue:!0,addButtonElement,cancelButtonElement,inputElementGenerator,keyPath,deep,onSubmitValueParser})),React17.createElement("span",{className:"rejt-not-collapsed-delimiter",style:delimiter},"]"),!isReadOnly&&removeItemButton)}render(){let{name,collapsed,data,keyPath,deep}=this.state,{dataType,getStyle}=this.props,value2=collapsed?this.renderCollapsed():this.renderNotCollapsed(),style=getStyle(name,data,keyPath,deep,dataType);return React17.createElement("div",{className:"rejt-array-node"},React17.createElement("span",{onClick:this.handleCollapseMode},React17.createElement("span",{className:"rejt-name",style:style.name},name," :"," ")),value2)}};JsonArray.defaultProps={keyPath:[],deep:0,minusMenuElement:React17.createElement("span",null," - "),plusMenuElement:React17.createElement("span",null," + ")};var JsonFunctionValue=class extends Component{constructor(props){super(props);let keyPath=[...props.keyPath,props.name];this.state={value:props.value,name:props.name,keyPath,deep:props.deep,editEnabled:!1,inputRef:null},this.handleEditMode=this.handleEditMode.bind(this),this.refInput=this.refInput.bind(this),this.handleCancelEdit=this.handleCancelEdit.bind(this),this.handleEdit=this.handleEdit.bind(this),this.onKeydown=this.onKeydown.bind(this);}static getDerivedStateFromProps(props,state){return props.value!==state.value?{value:props.value}:null}componentDidUpdate(){let{editEnabled,inputRef,name,value:value2,keyPath,deep}=this.state,{readOnly,dataType}=this.props,readOnlyResult=readOnly(name,value2,keyPath,deep,dataType);editEnabled&&!readOnlyResult&&typeof inputRef.focus=="function"&&inputRef.focus();}componentDidMount(){document.addEventListener("keydown",this.onKeydown);}componentWillUnmount(){document.removeEventListener("keydown",this.onKeydown);}onKeydown(event){event.altKey||event.ctrlKey||event.metaKey||event.shiftKey||event.repeat||((event.code==="Enter"||event.key==="Enter")&&(event.preventDefault(),this.handleEdit()),(event.code==="Escape"||event.key==="Escape")&&(event.preventDefault(),this.handleCancelEdit()));}handleEdit(){let{handleUpdateValue,originalValue,logger:logger4,onSubmitValueParser,keyPath}=this.props,{inputRef,name,deep}=this.state;if(!inputRef)return;let newValue=onSubmitValueParser(!0,keyPath,deep,name,inputRef.value);handleUpdateValue({value:newValue,key:name}).then(()=>{isComponentWillChange(originalValue,newValue)||this.handleCancelEdit();}).catch(logger4.error);}handleEditMode(){this.setState({editEnabled:!0});}refInput(node){this.state.inputRef=node;}handleCancelEdit(){this.setState({editEnabled:!1});}render(){let{name,value:value2,editEnabled,keyPath,deep}=this.state,{handleRemove,originalValue,readOnly,dataType,getStyle,editButtonElement,cancelButtonElement,textareaElementGenerator,minusMenuElement,keyPath:comeFromKeyPath}=this.props,style=getStyle(name,originalValue,keyPath,deep,dataType),result=null,minusElement=null,resultOnlyResult=readOnly(name,originalValue,keyPath,deep,dataType);if(editEnabled&&!resultOnlyResult){let textareaElement=textareaElementGenerator(VALUE,comeFromKeyPath,deep,name,originalValue,dataType),editButtonElementLayout=cloneElement(editButtonElement,{onClick:this.handleEdit}),cancelButtonElementLayout=cloneElement(cancelButtonElement,{onClick:this.handleCancelEdit}),textareaElementLayout=cloneElement(textareaElement,{ref:this.refInput,defaultValue:originalValue});result=React17.createElement("span",{className:"rejt-edit-form",style:style.editForm},textareaElementLayout," ",cancelButtonElementLayout,editButtonElementLayout),minusElement=null;}else {result=React17.createElement("span",{className:"rejt-value",style:style.value,onClick:resultOnlyResult?null:this.handleEditMode},value2);let minusMenuLayout=cloneElement(minusMenuElement,{onClick:handleRemove,className:"rejt-minus-menu",style:style.minus});minusElement=resultOnlyResult?null:minusMenuLayout;}return React17.createElement("li",{className:"rejt-function-value-node",style:style.li},React17.createElement("span",{className:"rejt-name",style:style.name},name," :"," "),result,minusElement)}};JsonFunctionValue.defaultProps={keyPath:[],deep:0,handleUpdateValue:()=>{},editButtonElement:React17.createElement("button",null,"e"),cancelButtonElement:React17.createElement("button",null,"c"),minusMenuElement:React17.createElement("span",null," - ")};var JsonNode=class extends Component{constructor(props){super(props),this.state={data:props.data,name:props.name,keyPath:props.keyPath,deep:props.deep};}static getDerivedStateFromProps(props,state){return props.data!==state.data?{data:props.data}:null}render(){let{data,name,keyPath,deep}=this.state,{isCollapsed,handleRemove,handleUpdateValue,onUpdate,onDeltaUpdate,readOnly,getStyle,addButtonElement,cancelButtonElement,editButtonElement,inputElementGenerator,textareaElementGenerator,minusMenuElement,plusMenuElement,beforeRemoveAction,beforeAddAction,beforeUpdateAction,logger:logger4,onSubmitValueParser}=this.props,readOnlyTrue=()=>!0,dataType=getObjectType(data);switch(dataType){case ERROR:return React17.createElement(JsonObject,{data,name,isCollapsed,keyPath,deep,handleRemove,onUpdate,onDeltaUpdate,readOnly:readOnlyTrue,dataType,getStyle,addButtonElement,cancelButtonElement,editButtonElement,inputElementGenerator,textareaElementGenerator,minusMenuElement,plusMenuElement,beforeRemoveAction,beforeAddAction,beforeUpdateAction,logger:logger4,onSubmitValueParser});case OBJECT:return React17.createElement(JsonObject,{data,name,isCollapsed,keyPath,deep,handleRemove,onUpdate,onDeltaUpdate,readOnly,dataType,getStyle,addButtonElement,cancelButtonElement,editButtonElement,inputElementGenerator,textareaElementGenerator,minusMenuElement,plusMenuElement,beforeRemoveAction,beforeAddAction,beforeUpdateAction,logger:logger4,onSubmitValueParser});case ARRAY:return React17.createElement(JsonArray,{data,name,isCollapsed,keyPath,deep,handleRemove,onUpdate,onDeltaUpdate,readOnly,dataType,getStyle,addButtonElement,cancelButtonElement,editButtonElement,inputElementGenerator,textareaElementGenerator,minusMenuElement,plusMenuElement,beforeRemoveAction,beforeAddAction,beforeUpdateAction,logger:logger4,onSubmitValueParser});case STRING:return React17.createElement(JsonValue,{name,value:`"${data}"`,originalValue:data,keyPath,deep,handleRemove,handleUpdateValue,readOnly,dataType,getStyle,cancelButtonElement,editButtonElement,inputElementGenerator,minusMenuElement,logger:logger4,onSubmitValueParser});case NUMBER:return React17.createElement(JsonValue,{name,value:data,originalValue:data,keyPath,deep,handleRemove,handleUpdateValue,readOnly,dataType,getStyle,cancelButtonElement,editButtonElement,inputElementGenerator,minusMenuElement,logger:logger4,onSubmitValueParser});case BOOLEAN:return React17.createElement(JsonValue,{name,value:data?"true":"false",originalValue:data,keyPath,deep,handleRemove,handleUpdateValue,readOnly,dataType,getStyle,cancelButtonElement,editButtonElement,inputElementGenerator,minusMenuElement,logger:logger4,onSubmitValueParser});case DATE:return React17.createElement(JsonValue,{name,value:data.toISOString(),originalValue:data,keyPath,deep,handleRemove,handleUpdateValue,readOnly:readOnlyTrue,dataType,getStyle,cancelButtonElement,editButtonElement,inputElementGenerator,minusMenuElement,logger:logger4,onSubmitValueParser});case NULL:return React17.createElement(JsonValue,{name,value:"null",originalValue:"null",keyPath,deep,handleRemove,handleUpdateValue,readOnly,dataType,getStyle,cancelButtonElement,editButtonElement,inputElementGenerator,minusMenuElement,logger:logger4,onSubmitValueParser});case UNDEFINED:return React17.createElement(JsonValue,{name,value:"undefined",originalValue:"undefined",keyPath,deep,handleRemove,handleUpdateValue,readOnly,dataType,getStyle,cancelButtonElement,editButtonElement,inputElementGenerator,minusMenuElement,logger:logger4,onSubmitValueParser});case FUNCTION:return React17.createElement(JsonFunctionValue,{name,value:data.toString(),originalValue:data,keyPath,deep,handleRemove,handleUpdateValue,readOnly,dataType,getStyle,cancelButtonElement,editButtonElement,textareaElementGenerator,minusMenuElement,logger:logger4,onSubmitValueParser});case SYMBOL:return React17.createElement(JsonValue,{name,value:data.toString(),originalValue:data,keyPath,deep,handleRemove,handleUpdateValue,readOnly:readOnlyTrue,dataType,getStyle,cancelButtonElement,editButtonElement,inputElementGenerator,minusMenuElement,logger:logger4,onSubmitValueParser});default:return null}}};JsonNode.defaultProps={keyPath:[],deep:0};var JsonObject=class extends Component{constructor(props){super(props);let keyPath=props.deep===-1?[]:[...props.keyPath,props.name];this.state={name:props.name,data:props.data,keyPath,deep:props.deep,nextDeep:props.deep+1,collapsed:props.isCollapsed(keyPath,props.deep,props.data),addFormVisible:!1},this.handleCollapseMode=this.handleCollapseMode.bind(this),this.handleRemoveValue=this.handleRemoveValue.bind(this),this.handleAddMode=this.handleAddMode.bind(this),this.handleAddValueAdd=this.handleAddValueAdd.bind(this),this.handleAddValueCancel=this.handleAddValueCancel.bind(this),this.handleEditValue=this.handleEditValue.bind(this),this.onChildUpdate=this.onChildUpdate.bind(this),this.renderCollapsed=this.renderCollapsed.bind(this),this.renderNotCollapsed=this.renderNotCollapsed.bind(this);}static getDerivedStateFromProps(props,state){return props.data!==state.data?{data:props.data}:null}onChildUpdate(childKey,childData){let{data,keyPath}=this.state;data[childKey]=childData,this.setState({data});let{onUpdate}=this.props,size=keyPath.length;onUpdate(keyPath[size-1],data);}handleAddMode(){this.setState({addFormVisible:!0});}handleAddValueCancel(){this.setState({addFormVisible:!1});}handleAddValueAdd({key,newValue}){let{data,keyPath,nextDeep:deep}=this.state,{beforeAddAction,logger:logger4}=this.props;beforeAddAction(key,keyPath,deep,newValue).then(()=>{data[key]=newValue,this.setState({data}),this.handleAddValueCancel();let{onUpdate,onDeltaUpdate}=this.props;onUpdate(keyPath[keyPath.length-1],data),onDeltaUpdate({type:ADD_DELTA_TYPE,keyPath,deep,key,newValue});}).catch(logger4.error);}handleRemoveValue(key){return ()=>{let{beforeRemoveAction,logger:logger4}=this.props,{data,keyPath,nextDeep:deep}=this.state,oldValue=data[key];beforeRemoveAction(key,keyPath,deep,oldValue).then(()=>{let deltaUpdateResult={keyPath,deep,key,oldValue,type:REMOVE_DELTA_TYPE};delete data[key],this.setState({data});let{onUpdate,onDeltaUpdate}=this.props;onUpdate(keyPath[keyPath.length-1],data),onDeltaUpdate(deltaUpdateResult);}).catch(logger4.error);}}handleCollapseMode(){this.setState(state=>({collapsed:!state.collapsed}));}handleEditValue({key,value:value2}){return new Promise((resolve,reject)=>{let{beforeUpdateAction}=this.props,{data,keyPath,nextDeep:deep}=this.state,oldValue=data[key];beforeUpdateAction(key,keyPath,deep,oldValue,value2).then(()=>{data[key]=value2,this.setState({data});let{onUpdate,onDeltaUpdate}=this.props;onUpdate(keyPath[keyPath.length-1],data),onDeltaUpdate({type:UPDATE_DELTA_TYPE,keyPath,deep,key,newValue:value2,oldValue}),resolve();}).catch(reject);})}renderCollapsed(){let{name,keyPath,deep,data}=this.state,{handleRemove,readOnly,dataType,getStyle,minusMenuElement}=this.props,{minus,collapsed}=getStyle(name,data,keyPath,deep,dataType),keyList=Object.getOwnPropertyNames(data),isReadOnly=readOnly(name,data,keyPath,deep,dataType),removeItemButton=cloneElement(minusMenuElement,{onClick:handleRemove,className:"rejt-minus-menu",style:minus});return React17.createElement("span",{className:"rejt-collapsed"},React17.createElement("span",{className:"rejt-collapsed-text",style:collapsed,onClick:this.handleCollapseMode},"{...}"," ",keyList.length," ",keyList.length===1?"key":"keys"),!isReadOnly&&removeItemButton)}renderNotCollapsed(){let{name,data,keyPath,deep,nextDeep,addFormVisible}=this.state,{isCollapsed,handleRemove,onDeltaUpdate,readOnly,getStyle,dataType,addButtonElement,cancelButtonElement,editButtonElement,inputElementGenerator,textareaElementGenerator,minusMenuElement,plusMenuElement,beforeRemoveAction,beforeAddAction,beforeUpdateAction,logger:logger4,onSubmitValueParser}=this.props,{minus,plus,addForm,ul,delimiter}=getStyle(name,data,keyPath,deep,dataType),keyList=Object.getOwnPropertyNames(data),isReadOnly=readOnly(name,data,keyPath,deep,dataType),addItemButton=cloneElement(plusMenuElement,{onClick:this.handleAddMode,className:"rejt-plus-menu",style:plus}),removeItemButton=cloneElement(minusMenuElement,{onClick:handleRemove,className:"rejt-minus-menu",style:minus}),list=keyList.map(key=>React17.createElement(JsonNode,{key,name:key,data:data[key],keyPath,deep:nextDeep,isCollapsed,handleRemove:this.handleRemoveValue(key),handleUpdateValue:this.handleEditValue,onUpdate:this.onChildUpdate,onDeltaUpdate,readOnly,getStyle,addButtonElement,cancelButtonElement,editButtonElement,inputElementGenerator,textareaElementGenerator,minusMenuElement,plusMenuElement,beforeRemoveAction,beforeAddAction,beforeUpdateAction,logger:logger4,onSubmitValueParser}));return React17.createElement("span",{className:"rejt-not-collapsed"},React17.createElement("span",{className:"rejt-not-collapsed-delimiter",style:delimiter},"{"),!isReadOnly&&addItemButton,React17.createElement("ul",{className:"rejt-not-collapsed-list",style:ul},list),!isReadOnly&&addFormVisible&&React17.createElement("div",{className:"rejt-add-form",style:addForm},React17.createElement(JsonAddValue,{handleAdd:this.handleAddValueAdd,handleCancel:this.handleAddValueCancel,addButtonElement,cancelButtonElement,inputElementGenerator,keyPath,deep,onSubmitValueParser})),React17.createElement("span",{className:"rejt-not-collapsed-delimiter",style:delimiter},"}"),!isReadOnly&&removeItemButton)}render(){let{name,collapsed,data,keyPath,deep}=this.state,{getStyle,dataType}=this.props,value2=collapsed?this.renderCollapsed():this.renderNotCollapsed(),style=getStyle(name,data,keyPath,deep,dataType);return React17.createElement("div",{className:"rejt-object-node"},React17.createElement("span",{onClick:this.handleCollapseMode},React17.createElement("span",{className:"rejt-name",style:style.name},name," :"," ")),value2)}};JsonObject.defaultProps={keyPath:[],deep:0,minusMenuElement:React17.createElement("span",null," - "),plusMenuElement:React17.createElement("span",null," + ")};var JsonValue=class extends Component{constructor(props){super(props);let keyPath=[...props.keyPath,props.name];this.state={value:props.value,name:props.name,keyPath,deep:props.deep,editEnabled:!1,inputRef:null},this.handleEditMode=this.handleEditMode.bind(this),this.refInput=this.refInput.bind(this),this.handleCancelEdit=this.handleCancelEdit.bind(this),this.handleEdit=this.handleEdit.bind(this),this.onKeydown=this.onKeydown.bind(this);}static getDerivedStateFromProps(props,state){return props.value!==state.value?{value:props.value}:null}componentDidUpdate(){let{editEnabled,inputRef,name,value:value2,keyPath,deep}=this.state,{readOnly,dataType}=this.props,isReadOnly=readOnly(name,value2,keyPath,deep,dataType);editEnabled&&!isReadOnly&&typeof inputRef.focus=="function"&&inputRef.focus();}componentDidMount(){document.addEventListener("keydown",this.onKeydown);}componentWillUnmount(){document.removeEventListener("keydown",this.onKeydown);}onKeydown(event){event.altKey||event.ctrlKey||event.metaKey||event.shiftKey||event.repeat||((event.code==="Enter"||event.key==="Enter")&&(event.preventDefault(),this.handleEdit()),(event.code==="Escape"||event.key==="Escape")&&(event.preventDefault(),this.handleCancelEdit()));}handleEdit(){let{handleUpdateValue,originalValue,logger:logger4,onSubmitValueParser,keyPath}=this.props,{inputRef,name,deep}=this.state;if(!inputRef)return;let newValue=onSubmitValueParser(!0,keyPath,deep,name,inputRef.value);handleUpdateValue({value:newValue,key:name}).then(()=>{isComponentWillChange(originalValue,newValue)||this.handleCancelEdit();}).catch(logger4.error);}handleEditMode(){this.setState({editEnabled:!0});}refInput(node){this.state.inputRef=node;}handleCancelEdit(){this.setState({editEnabled:!1});}render(){let{name,value:value2,editEnabled,keyPath,deep}=this.state,{handleRemove,originalValue,readOnly,dataType,getStyle,editButtonElement,cancelButtonElement,inputElementGenerator,minusMenuElement,keyPath:comeFromKeyPath}=this.props,style=getStyle(name,originalValue,keyPath,deep,dataType),isReadOnly=readOnly(name,originalValue,keyPath,deep,dataType),isEditing=editEnabled&&!isReadOnly,inputElement=inputElementGenerator(VALUE,comeFromKeyPath,deep,name,originalValue,dataType),editButtonElementLayout=cloneElement(editButtonElement,{onClick:this.handleEdit}),cancelButtonElementLayout=cloneElement(cancelButtonElement,{onClick:this.handleCancelEdit}),inputElementLayout=cloneElement(inputElement,{ref:this.refInput,defaultValue:JSON.stringify(originalValue)}),minusMenuLayout=cloneElement(minusMenuElement,{onClick:handleRemove,className:"rejt-minus-menu",style:style.minus});return React17.createElement("li",{className:"rejt-value-node",style:style.li},React17.createElement("span",{className:"rejt-name",style:style.name},name," : "),isEditing?React17.createElement("span",{className:"rejt-edit-form",style:style.editForm},inputElementLayout," ",cancelButtonElementLayout,editButtonElementLayout):React17.createElement("span",{className:"rejt-value",style:style.value,onClick:isReadOnly?null:this.handleEditMode},String(value2)),!isReadOnly&&!isEditing&&minusMenuLayout)}};JsonValue.defaultProps={keyPath:[],deep:0,handleUpdateValue:()=>Promise.resolve(),editButtonElement:React17.createElement("button",null,"e"),cancelButtonElement:React17.createElement("button",null,"c"),minusMenuElement:React17.createElement("span",null," - ")};var object={minus:{color:"red"},plus:{color:"green"},collapsed:{color:"grey"},delimiter:{},ul:{padding:"0px",margin:"0 0 0 25px",listStyle:"none"},name:{color:"#2287CD"},addForm:{}},array={minus:{color:"red"},plus:{color:"green"},collapsed:{color:"grey"},delimiter:{},ul:{padding:"0px",margin:"0 0 0 25px",listStyle:"none"},name:{color:"#2287CD"},addForm:{}},value={minus:{color:"red"},editForm:{},value:{color:"#7bba3d"},li:{minHeight:"22px",lineHeight:"22px",outline:"0px"},name:{color:"#2287CD"}};function parse3(string){let result=string;if(result.indexOf("function")===0)return (0, eval)(`(${result})`);try{result=JSON.parse(string);}catch{}return result}var JsonTree=class extends Component{constructor(props){super(props),this.state={data:props.data,rootName:props.rootName},this.onUpdate=this.onUpdate.bind(this),this.removeRoot=this.removeRoot.bind(this);}static getDerivedStateFromProps(props,state){return props.data!==state.data||props.rootName!==state.rootName?{data:props.data,rootName:props.rootName}:null}onUpdate(key,data){this.setState({data}),this.props.onFullyUpdate(data);}removeRoot(){this.onUpdate(null,null);}render(){let{data,rootName}=this.state,{isCollapsed,onDeltaUpdate,readOnly,getStyle,addButtonElement,cancelButtonElement,editButtonElement,inputElement,textareaElement,minusMenuElement,plusMenuElement,beforeRemoveAction,beforeAddAction,beforeUpdateAction,logger:logger4,onSubmitValueParser,fallback=null}=this.props,dataType=getObjectType(data),readOnlyFunction=readOnly;getObjectType(readOnly)==="Boolean"&&(readOnlyFunction=()=>readOnly);let inputElementFunction=inputElement;inputElement&&getObjectType(inputElement)!=="Function"&&(inputElementFunction=()=>inputElement);let textareaElementFunction=textareaElement;return textareaElement&&getObjectType(textareaElement)!=="Function"&&(textareaElementFunction=()=>textareaElement),dataType==="Object"||dataType==="Array"?React17.createElement("div",{className:"rejt-tree"},React17.createElement(JsonNode,{data,name:rootName,deep:-1,isCollapsed,onUpdate:this.onUpdate,onDeltaUpdate,readOnly:readOnlyFunction,getStyle,addButtonElement,cancelButtonElement,editButtonElement,inputElementGenerator:inputElementFunction,textareaElementGenerator:textareaElementFunction,minusMenuElement,plusMenuElement,handleRemove:this.removeRoot,beforeRemoveAction,beforeAddAction,beforeUpdateAction,logger:logger4,onSubmitValueParser})):fallback}};JsonTree.defaultProps={rootName:"root",isCollapsed:(keyPath,deep)=>deep!==-1,getStyle:(keyName,data,keyPath,deep,dataType)=>{switch(dataType){case"Object":case"Error":return object;case"Array":return array;default:return value}},readOnly:()=>!1,onFullyUpdate:()=>{},onDeltaUpdate:()=>{},beforeRemoveAction:()=>Promise.resolve(),beforeAddAction:()=>Promise.resolve(),beforeUpdateAction:()=>Promise.resolve(),logger:{error:()=>{}},onSubmitValueParser:(isEditMode,keyPath,deep,name,rawValue)=>parse3(rawValue),inputElement:()=>React17.createElement("input",null),textareaElement:()=>React17.createElement("textarea",null),fallback:null};var {window:globalWindow2}=global,Wrapper6=styled.div(({theme})=>({position:"relative",display:"flex",'&[aria-readonly="true"]':{opacity:.5},".rejt-tree":{marginLeft:"1rem",fontSize:"13px"},".rejt-value-node, .rejt-object-node > .rejt-collapsed, .rejt-array-node > .rejt-collapsed, .rejt-object-node > .rejt-not-collapsed, .rejt-array-node > .rejt-not-collapsed":{"& > svg":{opacity:0,transition:"opacity 0.2s"}},".rejt-value-node:hover, .rejt-object-node:hover > .rejt-collapsed, .rejt-array-node:hover > .rejt-collapsed, .rejt-object-node:hover > .rejt-not-collapsed, .rejt-array-node:hover > .rejt-not-collapsed":{"& > svg":{opacity:1}},".rejt-edit-form button":{display:"none"},".rejt-add-form":{marginLeft:10},".rejt-add-value-node":{display:"inline-flex",alignItems:"center"},".rejt-name":{lineHeight:"22px"},".rejt-not-collapsed-delimiter":{lineHeight:"22px"},".rejt-plus-menu":{marginLeft:5},".rejt-object-node > span > *, .rejt-array-node > span > *":{position:"relative",zIndex:2},".rejt-object-node, .rejt-array-node":{position:"relative"},".rejt-object-node > span:first-of-type::after, .rejt-array-node > span:first-of-type::after, .rejt-collapsed::before, .rejt-not-collapsed::before":{content:'""',position:"absolute",top:0,display:"block",width:"100%",marginLeft:"-1rem",padding:"0 4px 0 1rem",height:22},".rejt-collapsed::before, .rejt-not-collapsed::before":{zIndex:1,background:"transparent",borderRadius:4,transition:"background 0.2s",pointerEvents:"none",opacity:.1},".rejt-object-node:hover, .rejt-array-node:hover":{"& > .rejt-collapsed::before, & > .rejt-not-collapsed::before":{background:theme.color.secondary}},".rejt-collapsed::after, .rejt-not-collapsed::after":{content:'""',position:"absolute",display:"inline-block",pointerEvents:"none",width:0,height:0},".rejt-collapsed::after":{left:-8,top:8,borderTop:"3px solid transparent",borderBottom:"3px solid transparent",borderLeft:"3px solid rgba(153,153,153,0.6)"},".rejt-not-collapsed::after":{left:-10,top:10,borderTop:"3px solid rgba(153,153,153,0.6)",borderLeft:"3px solid transparent",borderRight:"3px solid transparent"},".rejt-value":{display:"inline-block",border:"1px solid transparent",borderRadius:4,margin:"1px 0",padding:"0 4px",cursor:"text",color:theme.color.defaultText},".rejt-value-node:hover > .rejt-value":{background:theme.color.lighter,borderColor:theme.appBorderColor}})),ButtonInline=styled.button(({theme,primary})=>({border:0,height:20,margin:1,borderRadius:4,background:primary?theme.color.secondary:"transparent",color:primary?theme.color.lightest:theme.color.dark,fontWeight:primary?"bold":"normal",cursor:"pointer",order:primary?"initial":9})),ActionAddIcon=styled(AddIcon)(({theme,disabled})=>({display:"inline-block",verticalAlign:"middle",width:15,height:15,padding:3,marginLeft:5,cursor:disabled?"not-allowed":"pointer",color:theme.textMutedColor,"&:hover":disabled?{}:{color:theme.color.ancillary},"svg + &":{marginLeft:0}})),ActionSubstractIcon=styled(SubtractIcon)(({theme,disabled})=>({display:"inline-block",verticalAlign:"middle",width:15,height:15,padding:3,marginLeft:5,cursor:disabled?"not-allowed":"pointer",color:theme.textMutedColor,"&:hover":disabled?{}:{color:theme.color.negative},"svg + &":{marginLeft:0}})),Input=styled.input(({theme,placeholder})=>({outline:0,margin:placeholder?1:"1px 0",padding:"3px 4px",color:theme.color.defaultText,background:theme.background.app,border:`1px solid ${theme.appBorderColor}`,borderRadius:4,lineHeight:"14px",width:placeholder==="Key"?80:120,"&:focus":{border:`1px solid ${theme.color.secondary}`}})),RawButton=styled(IconButton)(({theme})=>({position:"absolute",zIndex:2,top:2,right:2,height:21,padding:"0 3px",background:theme.background.bar,border:`1px solid ${theme.appBorderColor}`,borderRadius:3,color:theme.textMutedColor,fontSize:"9px",fontWeight:"bold",textDecoration:"none",span:{marginLeft:3,marginTop:1}})),RawInput=styled(Form.Textarea)(({theme})=>({flex:1,padding:"7px 6px",fontFamily:theme.typography.fonts.mono,fontSize:"12px",lineHeight:"18px","&::placeholder":{fontFamily:theme.typography.fonts.base,fontSize:"13px"},"&:placeholder-shown":{padding:"7px 10px"}})),ENTER_EVENT={bubbles:!0,cancelable:!0,key:"Enter",code:"Enter",keyCode:13},dispatchEnterKey=event=>{event.currentTarget.dispatchEvent(new globalWindow2.KeyboardEvent("keydown",ENTER_EVENT));},selectValue=event=>{event.currentTarget.select();},getCustomStyleFunction=theme=>()=>({name:{color:theme.color.secondary},collapsed:{color:theme.color.dark},ul:{listStyle:"none",margin:"0 0 0 1rem",padding:0},li:{outline:0}}),ObjectControl=({name,value:value2,onChange,argType})=>{let theme=useTheme(),data=useMemo(()=>value2&&cloneDeep(value2),[value2]),hasData=data!=null,[showRaw,setShowRaw]=useState(!hasData),[parseError,setParseError]=useState(null),readonly=!!argType?.table?.readonly,updateRaw=useCallback(raw=>{try{raw&&onChange(JSON.parse(raw)),setParseError(void 0);}catch(e){setParseError(e);}},[onChange]),[forceVisible,setForceVisible]=useState(!1),onForceVisible=useCallback(()=>{onChange({}),setForceVisible(!0);},[setForceVisible]),htmlElRef=useRef(null);if(useEffect(()=>{forceVisible&&htmlElRef.current&&htmlElRef.current.select();},[forceVisible]),!hasData)return React17.createElement(Button,{disabled:readonly,id:getControlSetterButtonId(name),onClick:onForceVisible},"Set object");let rawJSONForm=React17.createElement(RawInput,{ref:htmlElRef,id:getControlId(name),name,defaultValue:value2===null?"":JSON.stringify(value2,null,2),onBlur:event=>updateRaw(event.target.value),placeholder:"Edit JSON string...",autoFocus:forceVisible,valid:parseError?"error":null,readOnly:readonly}),isObjectOrArray=Array.isArray(value2)||typeof value2=="object"&&value2?.constructor===Object;return React17.createElement(Wrapper6,{"aria-readonly":readonly},isObjectOrArray&&React17.createElement(RawButton,{onClick:e=>{e.preventDefault(),setShowRaw(v=>!v);}},showRaw?React17.createElement(EyeCloseIcon,null):React17.createElement(EyeIcon,null),React17.createElement("span",null,"RAW")),showRaw?rawJSONForm:React17.createElement(JsonTree,{readOnly:readonly||!isObjectOrArray,isCollapsed:isObjectOrArray?void 0:()=>!0,data,rootName:name,onFullyUpdate:onChange,getStyle:getCustomStyleFunction(theme),cancelButtonElement:React17.createElement(ButtonInline,{type:"button"},"Cancel"),editButtonElement:React17.createElement(ButtonInline,{type:"submit"},"Save"),addButtonElement:React17.createElement(ButtonInline,{type:"submit",primary:!0},"Save"),plusMenuElement:React17.createElement(ActionAddIcon,null),minusMenuElement:React17.createElement(ActionSubstractIcon,null),inputElement:(_,__,___,key)=>key?React17.createElement(Input,{onFocus:selectValue,onBlur:dispatchEnterKey}):React17.createElement(Input,null),fallback:rawJSONForm}))};var RangeInput=styled.input(({theme,min,max,value:value2,disabled})=>({"&":{width:"100%",backgroundColor:"transparent",appearance:"none"},"&::-webkit-slider-runnable-track":{background:theme.base==="light"?`linear-gradient(to right,
-- ${theme.color.green} 0%, ${theme.color.green} ${(value2-min)/(max-min)*100}%,
-- ${darken(.02,theme.input.background)} ${(value2-min)/(max-min)*100}%,
-- ${darken(.02,theme.input.background)} 100%)`:`linear-gradient(to right,
-- ${theme.color.green} 0%, ${theme.color.green} ${(value2-min)/(max-min)*100}%,
-- ${lighten(.02,theme.input.background)} ${(value2-min)/(max-min)*100}%,
-- ${lighten(.02,theme.input.background)} 100%)`,boxShadow:`${theme.appBorderColor} 0 0 0 1px inset`,borderRadius:6,width:"100%",height:6,cursor:disabled?"not-allowed":"pointer"},"&::-webkit-slider-thumb":{marginTop:"-6px",width:16,height:16,border:`1px solid ${rgba(theme.appBorderColor,.2)}`,borderRadius:"50px",boxShadow:`0 1px 3px 0px ${rgba(theme.appBorderColor,.2)}`,cursor:disabled?"not-allowed":"grab",appearance:"none",background:`${theme.input.background}`,transition:"all 150ms ease-out","&:hover":{background:`${darken(.05,theme.input.background)}`,transform:"scale3d(1.1, 1.1, 1.1) translateY(-1px)",transition:"all 50ms ease-out"},"&:active":{background:`${theme.input.background}`,transform:"scale3d(1, 1, 1) translateY(0px)",cursor:disabled?"not-allowed":"grab"}},"&:focus":{outline:"none","&::-webkit-slider-runnable-track":{borderColor:rgba(theme.color.secondary,.4)},"&::-webkit-slider-thumb":{borderColor:theme.color.secondary,boxShadow:`0 0px 5px 0px ${theme.color.secondary}`}},"&::-moz-range-track":{background:theme.base==="light"?`linear-gradient(to right,
-- ${theme.color.green} 0%, ${theme.color.green} ${(value2-min)/(max-min)*100}%,
-- ${darken(.02,theme.input.background)} ${(value2-min)/(max-min)*100}%,
-- ${darken(.02,theme.input.background)} 100%)`:`linear-gradient(to right,
-- ${theme.color.green} 0%, ${theme.color.green} ${(value2-min)/(max-min)*100}%,
-- ${lighten(.02,theme.input.background)} ${(value2-min)/(max-min)*100}%,
-- ${lighten(.02,theme.input.background)} 100%)`,boxShadow:`${theme.appBorderColor} 0 0 0 1px inset`,borderRadius:6,width:"100%",height:6,cursor:disabled?"not-allowed":"pointer",outline:"none"},"&::-moz-range-thumb":{width:16,height:16,border:`1px solid ${rgba(theme.appBorderColor,.2)}`,borderRadius:"50px",boxShadow:`0 1px 3px 0px ${rgba(theme.appBorderColor,.2)}`,cursor:disabled?"not-allowed":"grap",background:`${theme.input.background}`,transition:"all 150ms ease-out","&:hover":{background:`${darken(.05,theme.input.background)}`,transform:"scale3d(1.1, 1.1, 1.1) translateY(-1px)",transition:"all 50ms ease-out"},"&:active":{background:`${theme.input.background}`,transform:"scale3d(1, 1, 1) translateY(0px)",cursor:"grabbing"}},"&::-ms-track":{background:theme.base==="light"?`linear-gradient(to right,
-- ${theme.color.green} 0%, ${theme.color.green} ${(value2-min)/(max-min)*100}%,
-- ${darken(.02,theme.input.background)} ${(value2-min)/(max-min)*100}%,
-- ${darken(.02,theme.input.background)} 100%)`:`linear-gradient(to right,
-- ${theme.color.green} 0%, ${theme.color.green} ${(value2-min)/(max-min)*100}%,
-- ${lighten(.02,theme.input.background)} ${(value2-min)/(max-min)*100}%,
-- ${lighten(.02,theme.input.background)} 100%)`,boxShadow:`${theme.appBorderColor} 0 0 0 1px inset`,color:"transparent",width:"100%",height:"6px",cursor:"pointer"},"&::-ms-fill-lower":{borderRadius:6},"&::-ms-fill-upper":{borderRadius:6},"&::-ms-thumb":{width:16,height:16,background:`${theme.input.background}`,border:`1px solid ${rgba(theme.appBorderColor,.2)}`,borderRadius:50,cursor:"grab",marginTop:0},"@supports (-ms-ime-align:auto)":{"input[type=range]":{margin:"0"}}})),RangeLabel=styled.span({paddingLeft:5,paddingRight:5,fontSize:12,whiteSpace:"nowrap",fontFeatureSettings:"tnum",fontVariantNumeric:"tabular-nums","[aria-readonly=true] &":{opacity:.5}}),RangeCurrentAndMaxLabel=styled(RangeLabel)(({numberOFDecimalsPlaces,max})=>({width:`${numberOFDecimalsPlaces+max.toString().length*2+3}ch`,textAlign:"right",flexShrink:0})),RangeWrapper=styled.div({display:"flex",alignItems:"center",width:"100%"});function getNumberOfDecimalPlaces(number){let match=number.toString().match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return match?Math.max(0,(match[1]?match[1].length:0)-(match[2]?+match[2]:0)):0}var RangeControl=({name,value:value2,onChange,min=0,max=100,step=1,onBlur,onFocus,argType})=>{let handleChange=event=>{onChange(parse2(event.target.value));},hasValue=value2!==void 0,numberOFDecimalsPlaces=useMemo(()=>getNumberOfDecimalPlaces(step),[step]),readonly=!!argType?.table?.readonly;return React17.createElement(RangeWrapper,{"aria-readonly":readonly},React17.createElement(RangeLabel,null,min),React17.createElement(RangeInput,{id:getControlId(name),type:"range",disabled:readonly,onChange:handleChange,name,value:value2,min,max,step,onFocus,onBlur}),React17.createElement(RangeCurrentAndMaxLabel,{numberOFDecimalsPlaces,max},hasValue?value2.toFixed(numberOFDecimalsPlaces):"--"," / ",max))};var Wrapper7=styled.label({display:"flex"}),MaxLength=styled.div(({isMaxed})=>({marginLeft:"0.75rem",paddingTop:"0.35rem",color:isMaxed?"red":void 0})),TextControl=({name,value:value2,onChange,onFocus,onBlur,maxLength,argType})=>{let handleChange=event=>{onChange(event.target.value);},readonly=!!argType?.table?.readonly,[forceVisible,setForceVisible]=useState(!1),onForceVisible=useCallback(()=>{onChange(""),setForceVisible(!0);},[setForceVisible]);if(value2===void 0)return React17.createElement(Button,{variant:"outline",size:"medium",disabled:readonly,id:getControlSetterButtonId(name),onClick:onForceVisible},"Set string");let isValid=typeof value2=="string";return React17.createElement(Wrapper7,null,React17.createElement(Form.Textarea,{id:getControlId(name),maxLength,onChange:handleChange,disabled:readonly,size:"flex",placeholder:"Edit string...",autoFocus:forceVisible,valid:isValid?null:"error",name,value:isValid?value2:"",onFocus,onBlur}),maxLength&&React17.createElement(MaxLength,{isMaxed:value2?.length===maxLength},value2?.length??0," / ",maxLength))};var FileInput=styled(Form.Input)({padding:10});function revokeOldUrls(urls){urls.forEach(url=>{url.startsWith("blob:")&&URL.revokeObjectURL(url);});}var FilesControl=({onChange,name,accept="image/*",value:value2,argType})=>{let inputElement=useRef(null),readonly=argType?.control?.readOnly;function handleFileChange(e){if(!e.target.files)return;let fileUrls=Array.from(e.target.files).map(file=>URL.createObjectURL(file));onChange(fileUrls),revokeOldUrls(value2);}return useEffect(()=>{value2==null&&inputElement.current&&(inputElement.current.value=null);},[value2,name]),React17.createElement(FileInput,{ref:inputElement,id:getControlId(name),type:"file",name,multiple:!0,disabled:readonly,onChange:handleFileChange,accept,size:"flex"})};var LazyColorControl=lazy(()=>import('./Color-PRSJMWNM.mjs')),ColorControl=props=>React17.createElement(Suspense,{fallback:React17.createElement("div",null)},React17.createElement(LazyColorControl,{...props}));var Controls2={array:ObjectControl,object:ObjectControl,boolean:BooleanControl,color:ColorControl,date:DateControl,number:NumberControl,check:OptionsControl,"inline-check":OptionsControl,radio:OptionsControl,"inline-radio":OptionsControl,select:OptionsControl,"multi-select":OptionsControl,range:RangeControl,text:TextControl,file:FilesControl},NoControl=()=>React17.createElement(React17.Fragment,null,"-"),ArgControl=({row,arg,updateArgs,isHovered})=>{let{key,control}=row,[isFocused,setFocused]=useState(!1),[boxedValue,setBoxedValue]=useState({value:arg});useEffect(()=>{isFocused||setBoxedValue({value:arg});},[isFocused,arg]);let onChange=useCallback(argVal=>(setBoxedValue({value:argVal}),updateArgs({[key]:argVal}),argVal),[updateArgs,key]),onBlur=useCallback(()=>setFocused(!1),[]),onFocus=useCallback(()=>setFocused(!0),[]);if(!control||control.disable){let canBeSetup=control?.disable!==!0&&row?.type?.name!=="function";return isHovered&&canBeSetup?React17.createElement(Link,{href:"https://storybook.js.org/docs/react/essentials/controls",target:"_blank",withArrow:!0},"Setup controls"):React17.createElement(NoControl,null)}let props={name:key,argType:row,value:boxedValue.value,onChange,onBlur,onFocus},Control=Controls2[control.type]||NoControl;return React17.createElement(Control,{...props,...control,controlType:control.type})};var Name=styled.span({fontWeight:"bold"}),Required=styled.span(({theme})=>({color:theme.color.negative,fontFamily:theme.typography.fonts.mono,cursor:"help"})),Description=styled.div(({theme})=>({"&&":{p:{margin:"0 0 10px 0"},a:{color:theme.color.secondary}},code:{...codeCommon({theme}),fontSize:12,fontFamily:theme.typography.fonts.mono},"& code":{margin:0,display:"inline-block"},"& pre > code":{whiteSpace:"pre-wrap"}})),Type=styled.div(({theme,hasDescription})=>({color:theme.base==="light"?transparentize(.1,theme.color.defaultText):transparentize(.2,theme.color.defaultText),marginTop:hasDescription?4:0})),TypeWithJsDoc=styled.div(({theme,hasDescription})=>({color:theme.base==="light"?transparentize(.1,theme.color.defaultText):transparentize(.2,theme.color.defaultText),marginTop:hasDescription?12:0,marginBottom:12})),StyledTd=styled.td(({theme,expandable})=>({paddingLeft:expandable?"40px !important":"20px !important"})),toSummary=value2=>value2&&{summary:typeof value2=="string"?value2:value2.name},ArgRow=props=>{let[isHovered,setIsHovered]=useState(!1),{row,updateArgs,compact,expandable,initialExpandedArgs}=props,{name,description}=row,table=row.table||{},type=table.type||toSummary(row.type),defaultValue=table.defaultValue||row.defaultValue,required=row.type?.required,hasDescription=description!=null&&description!=="";return React17.createElement("tr",{onMouseEnter:()=>setIsHovered(!0),onMouseLeave:()=>setIsHovered(!1)},React17.createElement(StyledTd,{expandable},React17.createElement(Name,null,name),required?React17.createElement(Required,{title:"Required"},"*"):null),compact?null:React17.createElement("td",null,hasDescription&&React17.createElement(Description,null,React17.createElement(Markdown,null,description)),table.jsDocTags!=null?React17.createElement(React17.Fragment,null,React17.createElement(TypeWithJsDoc,{hasDescription},React17.createElement(ArgValue,{value:type,initialExpandedArgs})),React17.createElement(ArgJsDoc,{tags:table.jsDocTags})):React17.createElement(Type,{hasDescription},React17.createElement(ArgValue,{value:type,initialExpandedArgs}))),compact?null:React17.createElement("td",null,React17.createElement(ArgValue,{value:defaultValue,initialExpandedArgs})),updateArgs?React17.createElement("td",null,React17.createElement(ArgControl,{...props,isHovered})):null)};var ExpanderIconDown=styled(ChevronDownIcon$1)(({theme})=>({marginRight:8,marginLeft:-10,marginTop:-2,height:12,width:12,color:theme.base==="light"?transparentize(.25,theme.color.defaultText):transparentize(.3,theme.color.defaultText),border:"none",display:"inline-block"})),ExpanderIconRight=styled(ChevronRightIcon)(({theme})=>({marginRight:8,marginLeft:-10,marginTop:-2,height:12,width:12,color:theme.base==="light"?transparentize(.25,theme.color.defaultText):transparentize(.3,theme.color.defaultText),border:"none",display:"inline-block"})),FlexWrapper=styled.span(({theme})=>({display:"flex",lineHeight:"20px",alignItems:"center"})),Section=styled.td(({theme})=>({position:"relative",letterSpacing:"0.35em",textTransform:"uppercase",fontWeight:theme.typography.weight.bold,fontSize:theme.typography.size.s1-1,color:theme.base==="light"?transparentize(.4,theme.color.defaultText):transparentize(.6,theme.color.defaultText),background:`${theme.background.app} !important`,"& ~ td":{background:`${theme.background.app} !important`}})),Subsection=styled.td(({theme})=>({position:"relative",fontWeight:theme.typography.weight.bold,fontSize:theme.typography.size.s2-1,background:theme.background.app})),StyledTd2=styled.td(()=>({position:"relative"})),StyledTr=styled.tr(({theme})=>({"&:hover > td":{backgroundColor:`${lighten(.005,theme.background.app)} !important`,boxShadow:`${theme.color.mediumlight} 0 - 1px 0 0 inset`,cursor:"row-resize"}})),ClickIntercept=styled.button(()=>({background:"none",border:"none",padding:"0",font:"inherit",position:"absolute",top:0,bottom:0,left:0,right:0,height:"100%",width:"100%",color:"transparent",cursor:"row-resize !important"})),SectionRow=({level="section",label,children,initialExpanded=!0,colSpan=3})=>{let[expanded,setExpanded]=useState(initialExpanded),Level=level==="subsection"?Subsection:Section,itemCount=children?.length||0,caption=level==="subsection"?`${itemCount} item${itemCount!==1?"s":""}`:"",helperText=`${expanded?"Hide":"Show"} ${level==="subsection"?itemCount:label} item${itemCount!==1?"s":""}`;return React17.createElement(React17.Fragment,null,React17.createElement(StyledTr,{title:helperText},React17.createElement(Level,{colSpan:1},React17.createElement(ClickIntercept,{onClick:e=>setExpanded(!expanded),tabIndex:0},helperText),React17.createElement(FlexWrapper,null,expanded?React17.createElement(ExpanderIconDown,null):React17.createElement(ExpanderIconRight,null),label)),React17.createElement(StyledTd2,{colSpan:colSpan-1},React17.createElement(ClickIntercept,{onClick:e=>setExpanded(!expanded),tabIndex:-1,style:{outline:"none"}},helperText),expanded?null:caption)),expanded?children:null)};var Row=styled.div(({theme})=>({display:"flex",gap:16,borderBottom:`1px solid ${theme.appBorderColor}`,"&:last-child":{borderBottom:0}})),Column=styled.div(({numColumn})=>({display:"flex",flexDirection:"column",flex:numColumn||1,gap:5,padding:"12px 20px"})),SkeletonText=styled.div(({theme,width,height})=>({animation:`${theme.animation.glow} 1.5s ease-in-out infinite`,background:theme.appBorderColor,width:width||"100%",height:height||16,borderRadius:3})),columnWidth=[2,4,2,2],Skeleton=()=>React17.createElement(React17.Fragment,null,React17.createElement(Row,null,React17.createElement(Column,{numColumn:columnWidth[0]},React17.createElement(SkeletonText,{width:"60%"})),React17.createElement(Column,{numColumn:columnWidth[1]},React17.createElement(SkeletonText,{width:"30%"})),React17.createElement(Column,{numColumn:columnWidth[2]},React17.createElement(SkeletonText,{width:"60%"})),React17.createElement(Column,{numColumn:columnWidth[3]},React17.createElement(SkeletonText,{width:"60%"}))),React17.createElement(Row,null,React17.createElement(Column,{numColumn:columnWidth[0]},React17.createElement(SkeletonText,{width:"60%"})),React17.createElement(Column,{numColumn:columnWidth[1]},React17.createElement(SkeletonText,{width:"80%"}),React17.createElement(SkeletonText,{width:"30%"})),React17.createElement(Column,{numColumn:columnWidth[2]},React17.createElement(SkeletonText,{width:"60%"})),React17.createElement(Column,{numColumn:columnWidth[3]},React17.createElement(SkeletonText,{width:"60%"}))),React17.createElement(Row,null,React17.createElement(Column,{numColumn:columnWidth[0]},React17.createElement(SkeletonText,{width:"60%"})),React17.createElement(Column,{numColumn:columnWidth[1]},React17.createElement(SkeletonText,{width:"80%"}),React17.createElement(SkeletonText,{width:"30%"})),React17.createElement(Column,{numColumn:columnWidth[2]},React17.createElement(SkeletonText,{width:"60%"})),React17.createElement(Column,{numColumn:columnWidth[3]},React17.createElement(SkeletonText,{width:"60%"}))),React17.createElement(Row,null,React17.createElement(Column,{numColumn:columnWidth[0]},React17.createElement(SkeletonText,{width:"60%"})),React17.createElement(Column,{numColumn:columnWidth[1]},React17.createElement(SkeletonText,{width:"80%"}),React17.createElement(SkeletonText,{width:"30%"})),React17.createElement(Column,{numColumn:columnWidth[2]},React17.createElement(SkeletonText,{width:"60%"})),React17.createElement(Column,{numColumn:columnWidth[3]},React17.createElement(SkeletonText,{width:"60%"}))));var Wrapper8=styled.div(({inAddonPanel,theme})=>({height:inAddonPanel?"100%":"auto",display:"flex",border:inAddonPanel?"none":`1px solid ${theme.appBorderColor}`,borderRadius:inAddonPanel?0:theme.appBorderRadius,padding:inAddonPanel?0:40,alignItems:"center",justifyContent:"center",flexDirection:"column",gap:15,background:theme.background.content,boxShadow:"rgba(0, 0, 0, 0.10) 0 1px 3px 0"})),Links=styled.div(({theme})=>({display:"flex",fontSize:theme.typography.size.s2-1,gap:25})),Divider=styled.div(({theme})=>({width:1,height:16,backgroundColor:theme.appBorderColor})),Empty=({inAddonPanel})=>{let[isLoading,setIsLoading]=useState(!0);return useEffect(()=>{let load=setTimeout(()=>{setIsLoading(!1);},100);return ()=>clearTimeout(load)},[]),isLoading?null:React17.createElement(Wrapper8,{inAddonPanel},React17.createElement(EmptyTabContent,{title:inAddonPanel?"Interactive story playground":"Args table with interactive controls couldn't be auto-generated",description:React17.createElement(React17.Fragment,null,"Controls give you an easy to use interface to test your components. Set your story args and you'll see controls appearing here automatically."),footer:React17.createElement(Links,null,inAddonPanel&&React17.createElement(React17.Fragment,null,React17.createElement(Link,{href:"https://youtu.be/0gOfS6K0x0E",target:"_blank",withArrow:!0},React17.createElement(VideoIcon,null)," Watch 5m video"),React17.createElement(Divider,null),React17.createElement(Link,{href:"https://storybook.js.org/docs/essentials/controls",target:"_blank",withArrow:!0},React17.createElement(DocumentIcon,null)," Read docs")),!inAddonPanel&&React17.createElement(Link,{href:"https://storybook.js.org/docs/essentials/controls",target:"_blank",withArrow:!0},React17.createElement(DocumentIcon,null)," Learn how to set that up"))}))};var TableWrapper=styled.table(({theme,compact,inAddonPanel})=>({"&&":{borderSpacing:0,color:theme.color.defaultText,"td, th":{padding:0,border:"none",verticalAlign:"top",textOverflow:"ellipsis"},fontSize:theme.typography.size.s2-1,lineHeight:"20px",textAlign:"left",width:"100%",marginTop:inAddonPanel?0:25,marginBottom:inAddonPanel?0:40,"thead th:first-of-type, td:first-of-type":{width:"25%"},"th:first-of-type, td:first-of-type":{paddingLeft:20},"th:nth-of-type(2), td:nth-of-type(2)":{...compact?null:{width:"35%"}},"td:nth-of-type(3)":{...compact?null:{width:"15%"}},"th:last-of-type, td:last-of-type":{paddingRight:20,...compact?null:{width:"25%"}},th:{color:theme.base==="light"?transparentize(.25,theme.color.defaultText):transparentize(.45,theme.color.defaultText),paddingTop:10,paddingBottom:10,paddingLeft:15,paddingRight:15},td:{paddingTop:"10px",paddingBottom:"10px","&:not(:first-of-type)":{paddingLeft:15,paddingRight:15},"&:last-of-type":{paddingRight:20}},marginLeft:inAddonPanel?0:1,marginRight:inAddonPanel?0:1,tbody:{...inAddonPanel?null:{filter:theme.base==="light"?"drop-shadow(0px 1px 3px rgba(0, 0, 0, 0.10))":"drop-shadow(0px 1px 3px rgba(0, 0, 0, 0.20))"},"> tr > *":{background:theme.background.content,borderTop:`1px solid ${theme.appBorderColor}`},...inAddonPanel?null:{"> tr:first-of-type > *":{borderBlockStart:`1px solid ${theme.appBorderColor}`},"> tr:last-of-type > *":{borderBlockEnd:`1px solid ${theme.appBorderColor}`},"> tr > *:first-of-type":{borderInlineStart:`1px solid ${theme.appBorderColor}`},"> tr > *:last-of-type":{borderInlineEnd:`1px solid ${theme.appBorderColor}`},"> tr:first-of-type > td:first-of-type":{borderTopLeftRadius:theme.appBorderRadius},"> tr:first-of-type > td:last-of-type":{borderTopRightRadius:theme.appBorderRadius},"> tr:last-of-type > td:first-of-type":{borderBottomLeftRadius:theme.appBorderRadius},"> tr:last-of-type > td:last-of-type":{borderBottomRightRadius:theme.appBorderRadius}}}}})),StyledIconButton=styled(IconButton)(({theme})=>({margin:"-4px -12px -4px 0"})),ControlHeadingWrapper=styled.span({display:"flex",justifyContent:"space-between"});var sortFns={alpha:(a,b)=>a.name.localeCompare(b.name),requiredFirst:(a,b)=>+!!b.type?.required-+!!a.type?.required||a.name.localeCompare(b.name),none:void 0},groupRows=(rows,sort)=>{let sections={ungrouped:[],ungroupedSubsections:{},sections:{}};if(!rows)return sections;Object.entries(rows).forEach(([key,row])=>{let{category,subcategory}=row?.table||{};if(category){let section=sections.sections[category]||{ungrouped:[],subsections:{}};if(!subcategory)section.ungrouped.push({key,...row});else {let subsection=section.subsections[subcategory]||[];subsection.push({key,...row}),section.subsections[subcategory]=subsection;}sections.sections[category]=section;}else if(subcategory){let subsection=sections.ungroupedSubsections[subcategory]||[];subsection.push({key,...row}),sections.ungroupedSubsections[subcategory]=subsection;}else sections.ungrouped.push({key,...row});});let sortFn=sortFns[sort],sortSubsection=record=>sortFn?Object.keys(record).reduce((acc,cur)=>({...acc,[cur]:record[cur].sort(sortFn)}),{}):record;return {ungrouped:sections.ungrouped.sort(sortFn),ungroupedSubsections:sortSubsection(sections.ungroupedSubsections),sections:Object.keys(sections.sections).reduce((acc,cur)=>({...acc,[cur]:{ungrouped:sections.sections[cur].ungrouped.sort(sortFn),subsections:sortSubsection(sections.sections[cur].subsections)}}),{})}},safeIncludeConditionalArg=(row,args,globals)=>{try{return includeConditionalArg(row,args,globals)}catch(err){return once.warn(err.message),!1}},ArgsTable=props=>{let{updateArgs,resetArgs,compact,inAddonPanel,initialExpandedArgs,sort="none",isLoading}=props;if("error"in props){let{error}=props;return React17.createElement(EmptyBlock,null,error,"\xA0",React17.createElement(Link,{href:"http://storybook.js.org/docs/",target:"_blank",withArrow:!0},React17.createElement(DocumentIcon,null)," Read the docs"))}if(isLoading)return React17.createElement(Skeleton,null);let{rows,args,globals}="rows"in props&&props,groups=groupRows(pickBy(rows,row=>!row?.table?.disable&&safeIncludeConditionalArg(row,args||{},globals||{})),sort),hasNoUngrouped=groups.ungrouped.length===0,hasNoSections=Object.entries(groups.sections).length===0,hasNoUngroupedSubsections=Object.entries(groups.ungroupedSubsections).length===0;if(hasNoUngrouped&&hasNoSections&&hasNoUngroupedSubsections)return React17.createElement(Empty,{inAddonPanel});let colSpan=1;updateArgs&&(colSpan+=1),compact||(colSpan+=2);let expandable=Object.keys(groups.sections).length>0,common={updateArgs,compact,inAddonPanel,initialExpandedArgs};return React17.createElement(ResetWrapper,null,React17.createElement(TableWrapper,{compact,inAddonPanel,className:"docblock-argstable sb-unstyled"},React17.createElement("thead",{className:"docblock-argstable-head"},React17.createElement("tr",null,React17.createElement("th",null,React17.createElement("span",null,"Name")),compact?null:React17.createElement("th",null,React17.createElement("span",null,"Description")),compact?null:React17.createElement("th",null,React17.createElement("span",null,"Default")),updateArgs?React17.createElement("th",null,React17.createElement(ControlHeadingWrapper,null,"Control"," ",!isLoading&&resetArgs&&React17.createElement(StyledIconButton,{onClick:()=>resetArgs(),title:"Reset controls"},React17.createElement(UndoIcon,{"aria-hidden":!0})))):null)),React17.createElement("tbody",{className:"docblock-argstable-body"},groups.ungrouped.map(row=>React17.createElement(ArgRow,{key:row.key,row,arg:args&&args[row.key],...common})),Object.entries(groups.ungroupedSubsections).map(([subcategory,subsection])=>React17.createElement(SectionRow,{key:subcategory,label:subcategory,level:"subsection",colSpan},subsection.map(row=>React17.createElement(ArgRow,{key:row.key,row,arg:args&&args[row.key],expandable,...common})))),Object.entries(groups.sections).map(([category,section])=>React17.createElement(SectionRow,{key:category,label:category,level:"section",colSpan},section.ungrouped.map(row=>React17.createElement(ArgRow,{key:row.key,row,arg:args&&args[row.key],...common})),Object.entries(section.subsections).map(([subcategory,subsection])=>React17.createElement(SectionRow,{key:subcategory,label:subcategory,level:"subsection",colSpan},subsection.map(row=>React17.createElement(ArgRow,{key:row.key,row,arg:args&&args[row.key],expandable,...common})))))))))};var TabbedArgsTable=({tabs,...props})=>{let entries=Object.entries(tabs);return entries.length===1?React17.createElement(ArgsTable,{...entries[0][1],...props}):React17.createElement(TabsState,null,entries.map((entry,index)=>{let[label,table]=entry,id=`prop_table_div_${label}`,Component4="div",argsTableProps=index===0?props:{sort:props.sort};return React17.createElement(Component4,{key:id,id,title:label},({active})=>active?React17.createElement(ArgsTable,{key:`prop_table_${label}`,...table,...argsTableProps}):null)}))};var Label4=styled.div(({theme})=>({marginRight:30,fontSize:`${theme.typography.size.s1}px`,color:theme.base==="light"?transparentize(.4,theme.color.defaultText):transparentize(.6,theme.color.defaultText)})),Sample=styled.div({overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"}),TypeSpecimen=styled.div({display:"flex",flexDirection:"row",alignItems:"baseline","&:not(:last-child)":{marginBottom:"1rem"}}),Wrapper9=styled.div(withReset,({theme})=>({...getBlockBackgroundStyle(theme),margin:"25px 0 40px",padding:"30px 20px"})),Typeset=({fontFamily,fontSizes,fontWeight,sampleText,...props})=>React17.createElement(Wrapper9,{...props,className:"docblock-typeset sb-unstyled"},fontSizes.map(size=>React17.createElement(TypeSpecimen,{key:size},React17.createElement(Label4,null,size),React17.createElement(Sample,{style:{fontFamily,fontSize:size,fontWeight,lineHeight:1.2}},sampleText||"Was he a beast if music could move him so?"))));var ItemTitle=styled.div(({theme})=>({fontWeight:theme.typography.weight.bold,color:theme.color.defaultText})),ItemSubtitle=styled.div(({theme})=>({color:theme.base==="light"?transparentize(.2,theme.color.defaultText):transparentize(.6,theme.color.defaultText)})),ItemDescription=styled.div({flex:"0 0 30%",lineHeight:"20px",marginTop:5}),SwatchLabel=styled.div(({theme})=>({flex:1,textAlign:"center",fontFamily:theme.typography.fonts.mono,fontSize:theme.typography.size.s1,lineHeight:1,overflow:"hidden",color:theme.base==="light"?transparentize(.4,theme.color.defaultText):transparentize(.6,theme.color.defaultText),"> div":{display:"inline-block",overflow:"hidden",maxWidth:"100%",textOverflow:"ellipsis"},span:{display:"block",marginTop:2}})),SwatchLabels=styled.div({display:"flex",flexDirection:"row"}),Swatch=styled.div(({background})=>({position:"relative",flex:1,"&::before":{position:"absolute",top:0,left:0,width:"100%",height:"100%",background,content:'""'}})),SwatchColors=styled.div(({theme})=>({...getBlockBackgroundStyle(theme),display:"flex",flexDirection:"row",height:50,marginBottom:5,overflow:"hidden",backgroundColor:"white",backgroundImage:"repeating-linear-gradient(-45deg, #ccc, #ccc 1px, #fff 1px, #fff 16px)",backgroundClip:"padding-box"})),SwatchSpecimen=styled.div({display:"flex",flexDirection:"column",flex:1,position:"relative",marginBottom:30}),Swatches=styled.div({flex:1,display:"flex",flexDirection:"row"}),Item=styled.div({display:"flex",alignItems:"flex-start"}),ListName=styled.div({flex:"0 0 30%"}),ListSwatches=styled.div({flex:1}),ListHeading=styled.div(({theme})=>({display:"flex",flexDirection:"row",alignItems:"center",paddingBottom:20,fontWeight:theme.typography.weight.bold,color:theme.base==="light"?transparentize(.4,theme.color.defaultText):transparentize(.6,theme.color.defaultText)})),List=styled.div(({theme})=>({fontSize:theme.typography.size.s2,lineHeight:"20px",display:"flex",flexDirection:"column"}));function renderSwatch(color,index){return React17.createElement(Swatch,{key:`${color}-${index}`,title:color,background:color})}function renderSwatchLabel(color,index,colorDescription){return React17.createElement(SwatchLabel,{key:`${color}-${index}`,title:color},React17.createElement("div",null,color,colorDescription&&React17.createElement("span",null,colorDescription)))}function renderSwatchSpecimen(colors){if(Array.isArray(colors))return React17.createElement(SwatchSpecimen,null,React17.createElement(SwatchColors,null,colors.map((color,index)=>renderSwatch(color,index))),React17.createElement(SwatchLabels,null,colors.map((color,index)=>renderSwatchLabel(color,index))));let swatchElements=[],labelElements=[];for(let colorKey in colors){let colorValue=colors[colorKey];swatchElements.push(renderSwatch(colorValue,swatchElements.length)),labelElements.push(renderSwatchLabel(colorKey,labelElements.length,colorValue));}return React17.createElement(SwatchSpecimen,null,React17.createElement(SwatchColors,null,swatchElements),React17.createElement(SwatchLabels,null,labelElements))}var ColorItem=({title,subtitle,colors})=>React17.createElement(Item,null,React17.createElement(ItemDescription,null,React17.createElement(ItemTitle,null,title),React17.createElement(ItemSubtitle,null,subtitle)),React17.createElement(Swatches,null,renderSwatchSpecimen(colors))),ColorPalette=({children,...props})=>React17.createElement(ResetWrapper,null,React17.createElement(List,{...props,className:"docblock-colorpalette sb-unstyled"},React17.createElement(ListHeading,null,React17.createElement(ListName,null,"Name"),React17.createElement(ListSwatches,null,"Swatches")),children));var ItemLabel=styled.div(({theme})=>({fontFamily:theme.typography.fonts.base,fontSize:theme.typography.size.s2,color:theme.color.defaultText,marginLeft:10,lineHeight:1.2})),ItemSpecimen=styled.div(({theme})=>({...getBlockBackgroundStyle(theme),overflow:"hidden",height:40,width:40,display:"flex",alignItems:"center",justifyContent:"center",flex:"none","> img, > svg":{width:20,height:20}})),Item2=styled.div({display:"inline-flex",flexDirection:"row",alignItems:"center",flex:"0 1 calc(20% - 10px)",minWidth:120,margin:"0px 10px 30px 0"}),List2=styled.div({display:"flex",flexFlow:"row wrap"}),IconItem=({name,children})=>React17.createElement(Item2,null,React17.createElement(ItemSpecimen,null,children),React17.createElement(ItemLabel,null,name)),IconGallery=({children,...props})=>React17.createElement(ResetWrapper,null,React17.createElement(List2,{...props,className:"docblock-icongallery sb-unstyled"},children));var anchorBlockIdFromId=storyId=>`anchor--${storyId}`,Anchor=({storyId,children})=>React17.createElement("div",{id:anchorBlockIdFromId(storyId),className:"sb-anchor"},children);global&&global.__DOCS_CONTEXT__===void 0&&(global.__DOCS_CONTEXT__=createContext(null),global.__DOCS_CONTEXT__.displayName="DocsContext");var DocsContext=global?global.__DOCS_CONTEXT__:createContext(null);var useOf=(moduleExportOrType,validTypes)=>useContext(DocsContext).resolveOf(moduleExportOrType,validTypes);var titleCase=str=>str.split("-").map(part=>part.charAt(0).toUpperCase()+part.slice(1)).join(""),getComponentName=component=>{if(component)return typeof component=="string"?component.includes("-")?titleCase(component):component:component.__docgenInfo&&component.__docgenInfo.displayName?component.__docgenInfo.displayName:component.name};function scrollToElement(element,block="start"){element.scrollIntoView({behavior:"smooth",block,inline:"nearest"});}function extractComponentArgTypes(component,parameters){let{extractArgTypes}=parameters.docs||{};if(!extractArgTypes)throw new Error("Args unsupported. See Args documentation for your framework.");return extractArgTypes(component)}function getArgTypesFromResolved(resolved){if(resolved.type==="component"){let{component:component2,projectAnnotations:{parameters:parameters2}}=resolved;return {argTypes:extractComponentArgTypes(component2,parameters2),parameters:parameters2,component:component2}}if(resolved.type==="meta"){let{preparedMeta:{argTypes:argTypes2,parameters:parameters2,component:component2,subcomponents:subcomponents2}}=resolved;return {argTypes:argTypes2,parameters:parameters2,component:component2,subcomponents:subcomponents2}}let{story:{argTypes,parameters,component,subcomponents}}=resolved;return {argTypes,parameters,component,subcomponents}}var ArgTypes=props=>{let{of}=props;if("of"in props&&of===void 0)throw new Error("Unexpected `of={undefined}`, did you mistype a CSF file reference?");let resolved=useOf(of||"meta"),{argTypes,parameters,component,subcomponents}=getArgTypesFromResolved(resolved),argTypesParameters=parameters.docs?.argTypes||{},include=props.include??argTypesParameters.include,exclude=props.exclude??argTypesParameters.exclude,sort=props.sort??argTypesParameters.sort,filteredArgTypes=filterArgTypes(argTypes,include,exclude);if(!(!!subcomponents&&Object.keys(subcomponents).length>0))return React17.createElement(ArgsTable,{rows:filteredArgTypes,sort});let mainComponentName=getComponentName(component),subcomponentTabs=Object.fromEntries(Object.entries(subcomponents).map(([key,comp])=>[key,{rows:filterArgTypes(extractComponentArgTypes(comp,parameters),include,exclude),sort}])),tabs={[mainComponentName]:{rows:filteredArgTypes,sort},...subcomponentTabs};return React17.createElement(TabbedArgsTable,{tabs,sort})};function argsHash(args){return stringify(args,{allowFunction:!1})}var SourceContext=createContext({sources:{}}),UNKNOWN_ARGS_HASH="--unknown--",SourceContainer=({children,channel})=>{let[sources,setSources]=useState({});return useEffect(()=>{let handleSnippetRendered=(idOrEvent,inputSource=null,inputFormat=!1)=>{let{id,args=void 0,source,format:format2}=typeof idOrEvent=="string"?{id:idOrEvent,source:inputSource,format:inputFormat}:idOrEvent,hash=args?argsHash(args):UNKNOWN_ARGS_HASH;setSources(current=>({...current,[id]:{...current[id],[hash]:{code:source,format:format2}}}));};return channel.on(SNIPPET_RENDERED,handleSnippetRendered),()=>channel.off(SNIPPET_RENDERED,handleSnippetRendered)},[]),React17.createElement(SourceContext.Provider,{value:{sources}},children)};var getStorySource=(storyId,args,sourceContext)=>{let{sources}=sourceContext,sourceMap=sources?.[storyId];return sourceMap?.[argsHash(args)]||sourceMap?.[UNKNOWN_ARGS_HASH]||{code:""}},getSnippet=({snippet,storyContext,typeFromProps,transformFromProps})=>{let{__isArgsStory:isArgsStory}=storyContext.parameters,sourceParameters=storyContext.parameters.docs?.source||{},type=typeFromProps||sourceParameters.type||SourceType.AUTO;if(sourceParameters.code!==void 0)return sourceParameters.code;let code=type===SourceType.DYNAMIC||type===SourceType.AUTO&&snippet&&isArgsStory?snippet:sourceParameters.originalSource||"";return (transformFromProps??sourceParameters.transform)?.(code,storyContext)||code},useSourceProps=(props,docsContext,sourceContext)=>{let story,{of}=props;if("of"in props&&of===void 0)throw new Error("Unexpected `of={undefined}`, did you mistype a CSF file reference?");if(of)story=docsContext.resolveOf(of,["story"]).story;else try{story=docsContext.storyById();}catch{}let sourceParameters=story?.parameters?.docs?.source||{},{code}=props,format2=props.format??sourceParameters.format,language=props.language??sourceParameters.language??"jsx",dark=props.dark??sourceParameters.dark??!1;if(!code&&!story)return {error:"Oh no! The source is not available."};if(code)return {code,format:format2,language,dark};let storyContext=docsContext.getStoryContext(story),argsForSource=props.__forceInitialArgs?storyContext.initialArgs:storyContext.unmappedArgs,source=getStorySource(story.id,argsForSource,sourceContext);return format2=source.format??story.parameters.docs?.source?.format??!1,{code:getSnippet({snippet:source.code,storyContext:{...storyContext,args:argsForSource},typeFromProps:props.type,transformFromProps:props.transform}),format:format2,language,dark}},Source2=props=>{let sourceContext=useContext(SourceContext),docsContext=useContext(DocsContext),sourceProps=useSourceProps(props,docsContext,sourceContext);return React17.createElement(Source,{...sourceProps})};function useStory(storyId,context){let stories=useStories([storyId],context);return stories&&stories[0]}function useStories(storyIds,context){let[storiesById,setStories]=useState({});return useEffect(()=>{Promise.all(storyIds.map(async storyId=>{let story=await context.loadStory(storyId);setStories(current=>current[storyId]===story?current:{...current,[storyId]:story});}));}),storyIds.map(storyId=>{if(storiesById[storyId])return storiesById[storyId];try{return context.storyById(storyId)}catch{return null}})}var getStoryId2=(props,context)=>{let{of,meta}=props;if("of"in props&&of===void 0)throw new Error("Unexpected `of={undefined}`, did you mistype a CSF file reference?");return meta&&context.referenceMeta(meta,!1),context.resolveOf(of||"story",["story"]).story.id},getStoryProps=(props,story,context)=>{let{parameters={}}=story||{},{docs={}}=parameters,storyParameters=docs.story||{};if(docs.disable)return null;if(props.inline??storyParameters.inline??!1){let height2=props.height??storyParameters.height,autoplay=props.autoplay??storyParameters.autoplay??!1;return {story,inline:!0,height:height2,autoplay,forceInitialArgs:!!props.__forceInitialArgs,primary:!!props.__primary,renderStoryToElement:context.renderStoryToElement}}let height=props.height??storyParameters.height??storyParameters.iframeHeight??"100px";return {story,inline:!1,height,primary:!!props.__primary}},Story2=(props={__forceInitialArgs:!1,__primary:!1})=>{let context=useContext(DocsContext),storyId=getStoryId2(props,context),story=useStory(storyId,context);if(!story)return React17.createElement(StorySkeleton,null);let storyProps=getStoryProps(props,story,context);return storyProps?React17.createElement(Story,{...storyProps}):null};var Canvas=props=>{let docsContext=useContext(DocsContext),sourceContext=useContext(SourceContext),{of,source}=props;if("of"in props&&of===void 0)throw new Error("Unexpected `of={undefined}`, did you mistype a CSF file reference?");let{story}=useOf(of||"story",["story"]),sourceProps=useSourceProps({...source,...of&&{of}},docsContext,sourceContext),layout=props.layout??story.parameters.layout??story.parameters.docs?.canvas?.layout??"padded",withToolbar=props.withToolbar??story.parameters.docs?.canvas?.withToolbar??!1,additionalActions=props.additionalActions??story.parameters.docs?.canvas?.additionalActions,sourceState=props.sourceState??story.parameters.docs?.canvas?.sourceState??"hidden",className=props.className??story.parameters.docs?.canvas?.className;return React17.createElement(Preview,{withSource:sourceState==="none"?void 0:sourceProps,isExpanded:sourceState==="shown",withToolbar,additionalActions,className,layout},React17.createElement(Story2,{of:of||story.moduleExport,meta:props.meta,...props.story}))};var useGlobals=(story,context)=>{let storyContext=context.getStoryContext(story),[globals,setGlobals]=useState(storyContext.globals);return useEffect(()=>{let onGlobalsUpdated=changed=>{setGlobals(changed.globals);};return context.channel.on(GLOBALS_UPDATED,onGlobalsUpdated),()=>context.channel.off(GLOBALS_UPDATED,onGlobalsUpdated)},[context.channel]),[globals]};var useArgs=(story,context)=>{let result=useArgsIfDefined(story,context);if(!result)throw new Error("No result when story was defined");return result},useArgsIfDefined=(story,context)=>{let storyContext=story?context.getStoryContext(story):{args:{}},{id:storyId}=story||{id:"none"},[args,setArgs]=useState(storyContext.args);useEffect(()=>{let onArgsUpdated=changed=>{changed.storyId===storyId&&setArgs(changed.args);};return context.channel.on(STORY_ARGS_UPDATED,onArgsUpdated),()=>context.channel.off(STORY_ARGS_UPDATED,onArgsUpdated)},[storyId,context.channel]);let updateArgs=useCallback(updatedArgs=>context.channel.emit(UPDATE_STORY_ARGS,{storyId,updatedArgs}),[storyId,context.channel]),resetArgs=useCallback(argNames=>context.channel.emit(RESET_STORY_ARGS,{storyId,argNames}),[storyId,context.channel]);return story&&[args,updateArgs,resetArgs]};function extractComponentArgTypes2(component,parameters){let{extractArgTypes}=parameters.docs||{};if(!extractArgTypes)throw new Error("Args unsupported. See Args documentation for your framework.");return extractArgTypes(component)}var Controls3=props=>{let{of}=props;if("of"in props&&of===void 0)throw new Error("Unexpected `of={undefined}`, did you mistype a CSF file reference?");let context=useContext(DocsContext),{story}=context.resolveOf(of||"story",["story"]),{parameters,argTypes,component,subcomponents}=story,controlsParameters=parameters.docs?.controls||{},include=props.include??controlsParameters.include,exclude=props.exclude??controlsParameters.exclude,sort=props.sort??controlsParameters.sort,[args,updateArgs,resetArgs]=useArgs(story,context),[globals]=useGlobals(story,context),filteredArgTypes=filterArgTypes(argTypes,include,exclude);if(!(!!subcomponents&&Object.keys(subcomponents).length>0))return Object.keys(filteredArgTypes).length>0||Object.keys(args).length>0?React17.createElement(ArgsTable,{rows:filteredArgTypes,sort,args,globals,updateArgs,resetArgs}):null;let mainComponentName=getComponentName(component),subcomponentTabs=Object.fromEntries(Object.entries(subcomponents).map(([key,comp])=>[key,{rows:filterArgTypes(extractComponentArgTypes2(comp,parameters),include,exclude),sort}])),tabs={[mainComponentName]:{rows:filteredArgTypes,sort},...subcomponentTabs};return React17.createElement(TabbedArgsTable,{tabs,sort,args,globals,updateArgs,resetArgs})};var {document:document2}=global,assertIsFn=val=>{if(typeof val!="function")throw new Error(`Expected story function, got: ${val}`);return val},AddContext=props=>{let{children,...rest}=props,parentContext=React17.useContext(DocsContext);return React17.createElement(DocsContext.Provider,{value:{...parentContext,...rest}},children)},CodeOrSourceMdx=({className,children,...rest})=>{if(typeof className!="string"&&(typeof children!="string"||!children.match(/[\n\r]/g)))return React17.createElement(Code,null,children);let language=className&&className.split("-");return React17.createElement(Source,{language:language&&language[1]||"text",format:!1,code:children,...rest})};function navigate(context,url){context.channel.emit(NAVIGATE_URL,url);}var A=components.a,AnchorInPage=({hash,children})=>{let context=useContext(DocsContext);return React17.createElement(A,{href:hash,target:"_self",onClick:event=>{let id=hash.substring(1);document2.getElementById(id)&&navigate(context,hash);}},children)},AnchorMdx=props=>{let{href,target,children,...rest}=props,context=useContext(DocsContext);return !href||target==="_blank"||/^https?:\/\//.test(href)?React17.createElement(A,{...props}):href.startsWith("#")?React17.createElement(AnchorInPage,{hash:href},children):React17.createElement(A,{href,onClick:event=>{event.button===0&&!event.altKey&&!event.ctrlKey&&!event.metaKey&&!event.shiftKey&&(event.preventDefault(),navigate(context,event.currentTarget.getAttribute("href")));},target,...rest},children)},SUPPORTED_MDX_HEADERS=["h1","h2","h3","h4","h5","h6"],OcticonHeaders=SUPPORTED_MDX_HEADERS.reduce((acc,headerType)=>({...acc,[headerType]:styled(headerType)({"& svg":{position:"relative",top:"-0.1em",visibility:"hidden"},"&:hover svg":{visibility:"visible"}})}),{}),OcticonAnchor=styled.a(()=>({float:"left",lineHeight:"inherit",paddingRight:"10px",marginLeft:"-24px",color:"inherit"})),HeaderWithOcticonAnchor=({as,id,children,...rest})=>{let context=useContext(DocsContext),OcticonHeader=OcticonHeaders[as],hash=`#${id}`;return React17.createElement(OcticonHeader,{id,...rest},React17.createElement(OcticonAnchor,{"aria-hidden":"true",href:hash,tabIndex:-1,target:"_self",onClick:event=>{document2.getElementById(id)&&navigate(context,hash);}},React17.createElement(LinkIcon,null)),children)},HeaderMdx=props=>{let{as,id,children,...rest}=props;if(id)return React17.createElement(HeaderWithOcticonAnchor,{as,id,...rest},children);let Component4=as,{as:omittedAs,...withoutAs}=props;return React17.createElement(Component4,{...nameSpaceClassNames(withoutAs,as)})},HeadersMdx=SUPPORTED_MDX_HEADERS.reduce((acc,headerType)=>({...acc,[headerType]:props=>React17.createElement(HeaderMdx,{as:headerType,...props})}),{});var Markdown2=props=>{if(!props.children)return null;if(typeof props.children!="string")throw new Error(dedent`The Markdown block only accepts children as a single string, but children were of type: '${typeof props.children}'
-+var Wrapper = styled.div(withReset, ({theme}) => ({
-+ backgroundColor:
-+ theme.base === 'light' ? 'rgba(0,0,0,.01)' : 'rgba(255,255,255,.01)',
-+ borderRadius: theme.appBorderRadius,
-+ border: `1px dashed ${theme.appBorderColor}`,
-+ display: 'flex',
-+ alignItems: 'center',
-+ justifyContent: 'center',
-+ padding: 20,
-+ margin: '25px 0 40px',
-+ color: transparentize(0.3, theme.color.defaultText),
-+ fontSize: theme.typography.size.s2,
-+ })),
-+ EmptyBlock = (props) =>
-+ React17.createElement(Wrapper, {
-+ ...props,
-+ className: 'docblock-emptyblock sb-unstyled',
-+ });
-+var StyledSyntaxHighlighter = styled(SyntaxHighlighter)(({theme}) => ({
-+ fontSize: `${theme.typography.size.s2 - 1}px`,
-+ lineHeight: '19px',
-+ margin: '25px 0 40px',
-+ borderRadius: theme.appBorderRadius,
-+ boxShadow:
-+ theme.base === 'light'
-+ ? 'rgba(0, 0, 0, 0.10) 0 1px 3px 0'
-+ : 'rgba(0, 0, 0, 0.20) 0 2px 5px 0',
-+ 'pre.prismjs': {padding: 20, background: 'inherit'},
-+}));
-+var SourceSkeletonWrapper = styled.div(({theme}) => ({
-+ background: theme.background.content,
-+ borderRadius: theme.appBorderRadius,
-+ border: `1px solid ${theme.appBorderColor}`,
-+ boxShadow:
-+ theme.base === 'light'
-+ ? 'rgba(0, 0, 0, 0.10) 0 1px 3px 0'
-+ : 'rgba(0, 0, 0, 0.20) 0 2px 5px 0',
-+ margin: '25px 0 40px',
-+ padding: '20px 20px 20px 22px',
-+ })),
-+ SourceSkeletonPlaceholder = styled.div(({theme}) => ({
-+ animation: `${theme.animation.glow} 1.5s ease-in-out infinite`,
-+ background: theme.appBorderColor,
-+ height: 17,
-+ marginTop: 1,
-+ width: '60%',
-+ [`&:first-child${ignoreSsrWarning}`]: {margin: 0},
-+ })),
-+ SourceSkeleton = () =>
-+ React17.createElement(
-+ SourceSkeletonWrapper,
-+ null,
-+ React17.createElement(SourceSkeletonPlaceholder, null),
-+ React17.createElement(SourceSkeletonPlaceholder, {style: {width: '80%'}}),
-+ React17.createElement(SourceSkeletonPlaceholder, {style: {width: '30%'}}),
-+ React17.createElement(SourceSkeletonPlaceholder, {style: {width: '80%'}})
-+ ),
-+ Source = ({
-+ isLoading,
-+ error,
-+ language,
-+ code,
-+ dark,
-+ format: format2 = !1,
-+ ...rest
-+ }) => {
-+ let {typography} = useTheme();
-+ if (isLoading) return React17.createElement(SourceSkeleton, null);
-+ if (error) return React17.createElement(EmptyBlock, null, error);
-+ let syntaxHighlighter = React17.createElement(
-+ StyledSyntaxHighlighter,
-+ {
-+ bordered: !0,
-+ copyable: !0,
-+ format: format2,
-+ language,
-+ className: 'docblock-source sb-unstyled',
-+ ...rest,
-+ },
-+ code
-+ );
-+ if (typeof dark > 'u') return syntaxHighlighter;
-+ let overrideTheme = dark ? themes.dark : themes.light;
-+ return React17.createElement(
-+ ThemeProvider,
-+ {
-+ theme: convert({
-+ ...overrideTheme,
-+ fontCode: typography.fonts.mono,
-+ fontBase: typography.fonts.base,
-+ }),
-+ },
-+ syntaxHighlighter
-+ );
-+ };
-+var toGlobalSelector = (element) =>
-+ `& :where(${element}:not(.sb-anchor, .sb-unstyled, .sb-unstyled ${element}))`,
-+ breakpoint = 600,
-+ Title = styled.h1(withReset, ({theme}) => ({
-+ color: theme.color.defaultText,
-+ fontSize: theme.typography.size.m3,
-+ fontWeight: theme.typography.weight.bold,
-+ lineHeight: '32px',
-+ [`@media (min-width: ${breakpoint}px)`]: {
-+ fontSize: theme.typography.size.l1,
-+ lineHeight: '36px',
-+ marginBottom: '16px',
-+ },
-+ })),
-+ Subtitle = styled.h2(withReset, ({theme}) => ({
-+ fontWeight: theme.typography.weight.regular,
-+ fontSize: theme.typography.size.s3,
-+ lineHeight: '20px',
-+ borderBottom: 'none',
-+ marginBottom: 15,
-+ [`@media (min-width: ${breakpoint}px)`]: {
-+ fontSize: theme.typography.size.m1,
-+ lineHeight: '28px',
-+ marginBottom: 24,
-+ },
-+ color: transparentize(0.25, theme.color.defaultText),
-+ })),
-+ DocsContent = styled.div(({theme}) => {
-+ let reset = {
-+ fontFamily: theme.typography.fonts.base,
-+ fontSize: theme.typography.size.s3,
-+ margin: 0,
-+ WebkitFontSmoothing: 'antialiased',
-+ MozOsxFontSmoothing: 'grayscale',
-+ WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)',
-+ WebkitOverflowScrolling: 'touch',
-+ },
-+ headers = {
-+ margin: '20px 0 8px',
-+ padding: 0,
-+ cursor: 'text',
-+ position: 'relative',
-+ color: theme.color.defaultText,
-+ '&:first-of-type': {marginTop: 0, paddingTop: 0},
-+ '&:hover a.anchor': {textDecoration: 'none'},
-+ '& code': {fontSize: 'inherit'},
-+ },
-+ code = {
-+ lineHeight: 1,
-+ margin: '0 2px',
-+ padding: '3px 5px',
-+ whiteSpace: 'nowrap',
-+ borderRadius: 3,
-+ fontSize: theme.typography.size.s2 - 1,
-+ border:
-+ theme.base === 'light'
-+ ? `1px solid ${theme.color.mediumlight}`
-+ : `1px solid ${theme.color.darker}`,
-+ color:
-+ theme.base === 'light'
-+ ? transparentize(0.1, theme.color.defaultText)
-+ : transparentize(0.3, theme.color.defaultText),
-+ backgroundColor:
-+ theme.base === 'light' ? theme.color.lighter : theme.color.border,
-+ };
-+ return {
-+ maxWidth: 1e3,
-+ width: '100%',
-+ [toGlobalSelector('a')]: {
-+ ...reset,
-+ fontSize: 'inherit',
-+ lineHeight: '24px',
-+ color: theme.color.secondary,
-+ textDecoration: 'none',
-+ '&.absent': {color: '#cc0000'},
-+ '&.anchor': {
-+ display: 'block',
-+ paddingLeft: 30,
-+ marginLeft: -30,
-+ cursor: 'pointer',
-+ position: 'absolute',
-+ top: 0,
-+ left: 0,
-+ bottom: 0,
-+ },
-+ },
-+ [toGlobalSelector('blockquote')]: {
-+ ...reset,
-+ margin: '16px 0',
-+ borderLeft: `4px solid ${theme.color.medium}`,
-+ padding: '0 15px',
-+ color: theme.color.dark,
-+ '& > :first-of-type': {marginTop: 0},
-+ '& > :last-child': {marginBottom: 0},
-+ },
-+ [toGlobalSelector('div')]: reset,
-+ [toGlobalSelector('dl')]: {
-+ ...reset,
-+ margin: '16px 0',
-+ padding: 0,
-+ '& dt': {
-+ fontSize: '14px',
-+ fontWeight: 'bold',
-+ fontStyle: 'italic',
-+ padding: 0,
-+ margin: '16px 0 4px',
-+ },
-+ '& dt:first-of-type': {padding: 0},
-+ '& dt > :first-of-type': {marginTop: 0},
-+ '& dt > :last-child': {marginBottom: 0},
-+ '& dd': {margin: '0 0 16px', padding: '0 15px'},
-+ '& dd > :first-of-type': {marginTop: 0},
-+ '& dd > :last-child': {marginBottom: 0},
-+ },
-+ [toGlobalSelector('h1')]: {
-+ ...reset,
-+ ...headers,
-+ fontSize: `${theme.typography.size.l1}px`,
-+ fontWeight: theme.typography.weight.bold,
-+ },
-+ [toGlobalSelector('h2')]: {
-+ ...reset,
-+ ...headers,
-+ fontSize: `${theme.typography.size.m2}px`,
-+ paddingBottom: 4,
-+ borderBottom: `1px solid ${theme.appBorderColor}`,
-+ },
-+ [toGlobalSelector('h3')]: {
-+ ...reset,
-+ ...headers,
-+ fontSize: `${theme.typography.size.m1}px`,
-+ fontWeight: theme.typography.weight.bold,
-+ },
-+ [toGlobalSelector('h4')]: {
-+ ...reset,
-+ ...headers,
-+ fontSize: `${theme.typography.size.s3}px`,
-+ },
-+ [toGlobalSelector('h5')]: {
-+ ...reset,
-+ ...headers,
-+ fontSize: `${theme.typography.size.s2}px`,
-+ },
-+ [toGlobalSelector('h6')]: {
-+ ...reset,
-+ ...headers,
-+ fontSize: `${theme.typography.size.s2}px`,
-+ color: theme.color.dark,
-+ },
-+ [toGlobalSelector('hr')]: {
-+ border: '0 none',
-+ borderTop: `1px solid ${theme.appBorderColor}`,
-+ height: 4,
-+ padding: 0,
-+ },
-+ [toGlobalSelector('img')]: {maxWidth: '100%'},
-+ [toGlobalSelector('li')]: {
-+ ...reset,
-+ fontSize: theme.typography.size.s2,
-+ color: theme.color.defaultText,
-+ lineHeight: '24px',
-+ '& + li': {marginTop: '.25em'},
-+ '& ul, & ol': {marginTop: '.25em', marginBottom: 0},
-+ '& code': code,
-+ },
-+ [toGlobalSelector('ol')]: {
-+ ...reset,
-+ margin: '16px 0',
-+ paddingLeft: 30,
-+ '& :first-of-type': {marginTop: 0},
-+ '& :last-child': {marginBottom: 0},
-+ },
-+ [toGlobalSelector('p')]: {
-+ ...reset,
-+ margin: '16px 0',
-+ fontSize: theme.typography.size.s2,
-+ lineHeight: '24px',
-+ color: theme.color.defaultText,
-+ '& code': code,
-+ },
-+ [toGlobalSelector('pre')]: {
-+ ...reset,
-+ fontFamily: theme.typography.fonts.mono,
-+ WebkitFontSmoothing: 'antialiased',
-+ MozOsxFontSmoothing: 'grayscale',
-+ lineHeight: '18px',
-+ padding: '11px 1rem',
-+ whiteSpace: 'pre-wrap',
-+ color: 'inherit',
-+ borderRadius: 3,
-+ margin: '1rem 0',
-+ '&:not(.prismjs)': {
-+ background: 'transparent',
-+ border: 'none',
-+ borderRadius: 0,
-+ padding: 0,
-+ margin: 0,
-+ },
-+ '& pre, &.prismjs': {
-+ padding: 15,
-+ margin: 0,
-+ whiteSpace: 'pre-wrap',
-+ color: 'inherit',
-+ fontSize: '13px',
-+ lineHeight: '19px',
-+ code: {color: 'inherit', fontSize: 'inherit'},
-+ },
-+ '& code': {whiteSpace: 'pre'},
-+ '& code, & tt': {border: 'none'},
-+ },
-+ [toGlobalSelector('span')]: {
-+ ...reset,
-+ '&.frame': {
-+ display: 'block',
-+ overflow: 'hidden',
-+ '& > span': {
-+ border: `1px solid ${theme.color.medium}`,
-+ display: 'block',
-+ float: 'left',
-+ overflow: 'hidden',
-+ margin: '13px 0 0',
-+ padding: 7,
-+ width: 'auto',
-+ },
-+ '& span img': {display: 'block', float: 'left'},
-+ '& span span': {
-+ clear: 'both',
-+ color: theme.color.darkest,
-+ display: 'block',
-+ padding: '5px 0 0',
-+ },
-+ },
-+ '&.align-center': {
-+ display: 'block',
-+ overflow: 'hidden',
-+ clear: 'both',
-+ '& > span': {
-+ display: 'block',
-+ overflow: 'hidden',
-+ margin: '13px auto 0',
-+ textAlign: 'center',
-+ },
-+ '& span img': {margin: '0 auto', textAlign: 'center'},
-+ },
-+ '&.align-right': {
-+ display: 'block',
-+ overflow: 'hidden',
-+ clear: 'both',
-+ '& > span': {
-+ display: 'block',
-+ overflow: 'hidden',
-+ margin: '13px 0 0',
-+ textAlign: 'right',
-+ },
-+ '& span img': {margin: 0, textAlign: 'right'},
-+ },
-+ '&.float-left': {
-+ display: 'block',
-+ marginRight: 13,
-+ overflow: 'hidden',
-+ float: 'left',
-+ '& span': {margin: '13px 0 0'},
-+ },
-+ '&.float-right': {
-+ display: 'block',
-+ marginLeft: 13,
-+ overflow: 'hidden',
-+ float: 'right',
-+ '& > span': {
-+ display: 'block',
-+ overflow: 'hidden',
-+ margin: '13px auto 0',
-+ textAlign: 'right',
-+ },
-+ },
-+ },
-+ [toGlobalSelector('table')]: {
-+ ...reset,
-+ margin: '16px 0',
-+ fontSize: theme.typography.size.s2,
-+ lineHeight: '24px',
-+ padding: 0,
-+ borderCollapse: 'collapse',
-+ '& tr': {
-+ borderTop: `1px solid ${theme.appBorderColor}`,
-+ backgroundColor: theme.appContentBg,
-+ margin: 0,
-+ padding: 0,
-+ },
-+ '& tr:nth-of-type(2n)': {
-+ backgroundColor:
-+ theme.base === 'dark' ? theme.color.darker : theme.color.lighter,
-+ },
-+ '& tr th': {
-+ fontWeight: 'bold',
-+ color: theme.color.defaultText,
-+ border: `1px solid ${theme.appBorderColor}`,
-+ margin: 0,
-+ padding: '6px 13px',
-+ },
-+ '& tr td': {
-+ border: `1px solid ${theme.appBorderColor}`,
-+ color: theme.color.defaultText,
-+ margin: 0,
-+ padding: '6px 13px',
-+ },
-+ '& tr th :first-of-type, & tr td :first-of-type': {marginTop: 0},
-+ '& tr th :last-child, & tr td :last-child': {marginBottom: 0},
-+ },
-+ [toGlobalSelector('ul')]: {
-+ ...reset,
-+ margin: '16px 0',
-+ paddingLeft: 30,
-+ '& :first-of-type': {marginTop: 0},
-+ '& :last-child': {marginBottom: 0},
-+ listStyle: 'disc',
-+ },
-+ };
-+ }),
-+ DocsWrapper = styled.div(({theme}) => ({
-+ background: theme.background.content,
-+ display: 'flex',
-+ justifyContent: 'center',
-+ padding: '4rem 20px',
-+ minHeight: '100vh',
-+ boxSizing: 'border-box',
-+ gap: '3rem',
-+ [`@media (min-width: ${breakpoint}px)`]: {},
-+ })),
-+ DocsPageWrapper = ({children, toc}) =>
-+ React17.createElement(
-+ DocsWrapper,
-+ {className: 'sbdocs sbdocs-wrapper'},
-+ React17.createElement(
-+ DocsContent,
-+ {className: 'sbdocs sbdocs-content'},
-+ children
-+ ),
-+ toc
-+ );
-+var getBlockBackgroundStyle = (theme) => ({
-+ borderRadius: theme.appBorderRadius,
-+ background: theme.background.content,
-+ boxShadow:
-+ theme.base === 'light'
-+ ? 'rgba(0, 0, 0, 0.10) 0 1px 3px 0'
-+ : 'rgba(0, 0, 0, 0.20) 0 2px 5px 0',
-+ border: `1px solid ${theme.appBorderColor}`,
-+});
-+var Bar = styled(FlexBar)({
-+ position: 'absolute',
-+ left: 0,
-+ right: 0,
-+ top: 0,
-+ transition: 'transform .2s linear',
-+ }),
-+ Wrapper2 = styled.div({display: 'flex', alignItems: 'center', gap: 4}),
-+ IconPlaceholder = styled.div(({theme}) => ({
-+ width: 14,
-+ height: 14,
-+ borderRadius: 2,
-+ margin: '0 7px',
-+ backgroundColor: theme.appBorderColor,
-+ animation: `${theme.animation.glow} 1.5s ease-in-out infinite`,
-+ })),
-+ Toolbar = ({isLoading, storyId, baseUrl, zoom, resetZoom, ...rest}) =>
-+ React17.createElement(
-+ Bar,
-+ {...rest},
-+ React17.createElement(
-+ Wrapper2,
-+ {key: 'left'},
-+ isLoading
-+ ? [1, 2, 3].map((key) =>
-+ React17.createElement(IconPlaceholder, {key})
-+ )
-+ : React17.createElement(
-+ React17.Fragment,
-+ null,
-+ React17.createElement(
-+ IconButton,
-+ {
-+ key: 'zoomin',
-+ onClick: (e) => {
-+ e.preventDefault(), zoom(0.8);
-+ },
-+ title: 'Zoom in',
-+ },
-+ React17.createElement(ZoomIcon, null)
-+ ),
-+ React17.createElement(
-+ IconButton,
-+ {
-+ key: 'zoomout',
-+ onClick: (e) => {
-+ e.preventDefault(), zoom(1.25);
-+ },
-+ title: 'Zoom out',
-+ },
-+ React17.createElement(ZoomOutIcon, null)
-+ ),
-+ React17.createElement(
-+ IconButton,
-+ {
-+ key: 'zoomreset',
-+ onClick: (e) => {
-+ e.preventDefault(), resetZoom();
-+ },
-+ title: 'Reset zoom',
-+ },
-+ React17.createElement(ZoomResetIcon, null)
-+ )
-+ )
-+ )
-+ );
-+var ZoomContext = createContext({scale: 1});
-+var {window: globalWindow} = global,
-+ IFrame = class extends Component {
-+ constructor() {
-+ super(...arguments);
-+ this.iframe = null;
-+ }
-+ componentDidMount() {
-+ let {id} = this.props;
-+ this.iframe = globalWindow.document.getElementById(id);
-+ }
-+ shouldComponentUpdate(nextProps) {
-+ let {scale} = nextProps;
-+ return (
-+ scale !== this.props.scale &&
-+ this.setIframeBodyStyle({
-+ width: `${scale * 100}%`,
-+ height: `${scale * 100}%`,
-+ transform: `scale(${1 / scale})`,
-+ transformOrigin: 'top left',
-+ }),
-+ !1
-+ );
-+ }
-+ setIframeBodyStyle(style) {
-+ return Object.assign(this.iframe.contentDocument.body.style, style);
-+ }
-+ render() {
-+ let {id, title, src, allowFullScreen, scale, ...rest} = this.props;
-+ return React17.createElement('iframe', {
-+ id,
-+ title,
-+ src,
-+ ...(allowFullScreen ? {allow: 'fullscreen'} : {}),
-+ loading: 'lazy',
-+ ...rest,
-+ });
-+ }
-+ };
-+var {PREVIEW_URL} = global,
-+ BASE_URL = PREVIEW_URL || 'iframe.html',
-+ storyBlockIdFromId = ({story, primary}) =>
-+ `story--${story.id}${primary ? '--primary' : ''}`,
-+ InlineStory = (props) => {
-+ let storyRef = useRef(),
-+ [showLoader, setShowLoader] = useState(!0),
-+ [error, setError] = useState(),
-+ {story, height, autoplay, forceInitialArgs, renderStoryToElement} = props;
-+ return (
-+ useEffect(() => {
-+ if (!(story && storyRef.current)) return () => {};
-+ let element = storyRef.current,
-+ cleanup = renderStoryToElement(
-+ story,
-+ element,
-+ {
-+ showMain: () => {},
-+ showError: ({title, description}) =>
-+ setError(new Error(`${title} - ${description}`)),
-+ showException: (err) => setError(err),
-+ },
-+ {autoplay, forceInitialArgs}
-+ );
-+ return (
-+ setShowLoader(!1),
-+ () => {
-+ Promise.resolve().then(() => cleanup());
-+ }
-+ );
-+ }, [autoplay, renderStoryToElement, story]),
-+ error
-+ ? React17.createElement(
-+ 'pre',
-+ null,
-+ React17.createElement(ErrorFormatter, {error})
-+ )
-+ : React17.createElement(
-+ React17.Fragment,
-+ null,
-+ height
-+ ? React17.createElement(
-+ 'style',
-+ null,
-+ `#${storyBlockIdFromId(props)} { min-height: ${height}; transform: translateZ(0); overflow: auto }`
-+ )
-+ : null,
-+ showLoader && React17.createElement(StorySkeleton, null),
-+ React17.createElement('div', {
-+ ref: storyRef,
-+ id: `${storyBlockIdFromId(props)}-inner`,
-+ 'data-name': story.name,
-+ })
-+ )
-+ );
-+ },
-+ IFrameStory = ({story, height = '500px'}) =>
-+ React17.createElement(
-+ 'div',
-+ {style: {width: '100%', height}},
-+ React17.createElement(ZoomContext.Consumer, null, ({scale}) =>
-+ React17.createElement(IFrame, {
-+ key: 'iframe',
-+ id: `iframe--${story.id}`,
-+ title: story.name,
-+ src: getStoryHref(BASE_URL, story.id, {viewMode: 'story'}),
-+ allowFullScreen: !0,
-+ scale,
-+ style: {width: '100%', height: '100%', border: '0 none'},
-+ })
-+ )
-+ ),
-+ Story = (props) => {
-+ let {inline} = props;
-+ return React17.createElement(
-+ 'div',
-+ {
-+ id: storyBlockIdFromId(props),
-+ className: 'sb-story sb-unstyled',
-+ 'data-story-block': 'true',
-+ },
-+ inline
-+ ? React17.createElement(InlineStory, {...props})
-+ : React17.createElement(IFrameStory, {...props})
-+ );
-+ },
-+ StorySkeleton = () => React17.createElement(Loader, null);
-+var ChildrenContainer = styled.div(
-+ ({isColumn, columns, layout}) => ({
-+ display: isColumn || !columns ? 'block' : 'flex',
-+ position: 'relative',
-+ flexWrap: 'wrap',
-+ overflow: 'auto',
-+ flexDirection: isColumn ? 'column' : 'row',
-+ '& .innerZoomElementWrapper > *': isColumn
-+ ? {
-+ width: layout !== 'fullscreen' ? 'calc(100% - 20px)' : '100%',
-+ display: 'block',
-+ }
-+ : {
-+ maxWidth: layout !== 'fullscreen' ? 'calc(100% - 20px)' : '100%',
-+ display: 'inline-block',
-+ },
-+ }),
-+ ({layout = 'padded'}) =>
-+ layout === 'centered' || layout === 'padded'
-+ ? {
-+ padding: '30px 20px',
-+ '& .innerZoomElementWrapper > *': {
-+ width: 'auto',
-+ border: '10px solid transparent!important',
-+ },
-+ }
-+ : {},
-+ ({layout = 'padded'}) =>
-+ layout === 'centered'
-+ ? {
-+ display: 'flex',
-+ justifyContent: 'center',
-+ justifyItems: 'center',
-+ alignContent: 'center',
-+ alignItems: 'center',
-+ }
-+ : {},
-+ ({columns}) =>
-+ columns && columns > 1
-+ ? {
-+ '.innerZoomElementWrapper > *': {
-+ minWidth: `calc(100% / ${columns} - 20px)`,
-+ },
-+ }
-+ : {}
-+ ),
-+ StyledSource = styled(Source)(({theme}) => ({
-+ margin: 0,
-+ borderTopLeftRadius: 0,
-+ borderTopRightRadius: 0,
-+ borderBottomLeftRadius: theme.appBorderRadius,
-+ borderBottomRightRadius: theme.appBorderRadius,
-+ border: 'none',
-+ background:
-+ theme.base === 'light'
-+ ? 'rgba(0, 0, 0, 0.85)'
-+ : darken(0.05, theme.background.content),
-+ color: theme.color.lightest,
-+ button: {
-+ background:
-+ theme.base === 'light'
-+ ? 'rgba(0, 0, 0, 0.85)'
-+ : darken(0.05, theme.background.content),
-+ },
-+ })),
-+ PreviewContainer = styled.div(
-+ ({theme, withSource, isExpanded}) => ({
-+ position: 'relative',
-+ overflow: 'hidden',
-+ margin: '25px 0 40px',
-+ ...getBlockBackgroundStyle(theme),
-+ borderBottomLeftRadius: withSource && isExpanded && 0,
-+ borderBottomRightRadius: withSource && isExpanded && 0,
-+ borderBottomWidth: isExpanded && 0,
-+ 'h3 + &': {marginTop: '16px'},
-+ }),
-+ ({withToolbar}) => withToolbar && {paddingTop: 40}
-+ ),
-+ getSource = (withSource, expanded, setExpanded) => {
-+ switch (!0) {
-+ case !!(withSource && withSource.error):
-+ return {
-+ source: null,
-+ actionItem: {
-+ title: 'No code available',
-+ className: 'docblock-code-toggle docblock-code-toggle--disabled',
-+ disabled: !0,
-+ onClick: () => setExpanded(!1),
-+ },
-+ };
-+ case expanded:
-+ return {
-+ source: React17.createElement(StyledSource, {
-+ ...withSource,
-+ dark: !0,
-+ }),
-+ actionItem: {
-+ title: 'Hide code',
-+ className: 'docblock-code-toggle docblock-code-toggle--expanded',
-+ onClick: () => setExpanded(!1),
-+ },
-+ };
-+ default:
-+ return {
-+ source: React17.createElement(StyledSource, {
-+ ...withSource,
-+ dark: !0,
-+ }),
-+ actionItem: {
-+ title: 'Show code',
-+ className: 'docblock-code-toggle',
-+ onClick: () => setExpanded(!0),
-+ },
-+ };
-+ }
-+ };
-+function getStoryId(children) {
-+ if (Children.count(children) === 1) {
-+ let elt = children;
-+ if (elt.props) return elt.props.id;
-+ }
-+ return null;
-+}
-+var PositionedToolbar = styled(Toolbar)({
-+ position: 'absolute',
-+ top: 0,
-+ left: 0,
-+ right: 0,
-+ height: 40,
-+ }),
-+ Relative = styled.div({overflow: 'hidden', position: 'relative'}),
-+ Preview = ({
-+ isLoading,
-+ isColumn,
-+ columns,
-+ children,
-+ withSource,
-+ withToolbar = !1,
-+ isExpanded = !1,
-+ additionalActions,
-+ className,
-+ layout = 'padded',
-+ ...props
-+ }) => {
-+ let [expanded, setExpanded] = useState(isExpanded),
-+ {source, actionItem} = getSource(withSource, expanded, setExpanded),
-+ [scale, setScale] = useState(1),
-+ previewClasses = [className].concat([
-+ 'sbdocs',
-+ 'sbdocs-preview',
-+ 'sb-unstyled',
-+ ]),
-+ defaultActionItems = withSource ? [actionItem] : [],
-+ [additionalActionItems, setAdditionalActionItems] = useState(
-+ additionalActions ? [...additionalActions] : []
-+ ),
-+ actionItems = [...defaultActionItems, ...additionalActionItems],
-+ {window: globalWindow4} = global,
-+ copyToClipboard = useCallback(async (text) => {
-+ let {createCopyToClipboardFunction} = await import(
-+ '@storybook/components'
-+ );
-+ createCopyToClipboardFunction();
-+ }, []),
-+ onCopyCapture = (e) => {
-+ let selection = globalWindow4.getSelection();
-+ (selection && selection.type === 'Range') ||
-+ (e.preventDefault(),
-+ additionalActionItems.filter((item) => item.title === 'Copied')
-+ .length === 0 &&
-+ copyToClipboard(source.props.code).then(() => {
-+ setAdditionalActionItems([
-+ ...additionalActionItems,
-+ {title: 'Copied', onClick: () => {}},
-+ ]),
-+ globalWindow4.setTimeout(
-+ () =>
-+ setAdditionalActionItems(
-+ additionalActionItems.filter(
-+ (item) => item.title !== 'Copied'
-+ )
-+ ),
-+ 1500
-+ );
-+ }));
-+ };
-+ return React17.createElement(
-+ PreviewContainer,
-+ {withSource, withToolbar, ...props, className: previewClasses.join(' ')},
-+ withToolbar &&
-+ React17.createElement(PositionedToolbar, {
-+ isLoading,
-+ border: !0,
-+ zoom: (z) => setScale(scale * z),
-+ resetZoom: () => setScale(1),
-+ storyId: getStoryId(children),
-+ baseUrl: './iframe.html',
-+ }),
-+ React17.createElement(
-+ ZoomContext.Provider,
-+ {value: {scale}},
-+ React17.createElement(
-+ Relative,
-+ {className: 'docs-story', onCopyCapture: withSource && onCopyCapture},
-+ React17.createElement(
-+ ChildrenContainer,
-+ {isColumn: isColumn || !Array.isArray(children), columns, layout},
-+ React17.createElement(
-+ Zoom.Element,
-+ {scale},
-+ Array.isArray(children)
-+ ? children.map((child, i) =>
-+ React17.createElement('div', {key: i}, child)
-+ )
-+ : React17.createElement('div', null, children)
-+ )
-+ ),
-+ React17.createElement(ActionBar, {actionItems})
-+ )
-+ ),
-+ withSource && expanded && source
-+ );
-+ };
-+styled(Preview)(() => ({'.docs-story': {paddingTop: 32, paddingBottom: 40}}));
-+var Table = styled.table(({theme}) => ({
-+ '&&': {
-+ borderCollapse: 'collapse',
-+ borderSpacing: 0,
-+ border: 'none',
-+ tr: {border: 'none !important', background: 'none'},
-+ 'td, th': {padding: 0, border: 'none', width: 'auto!important'},
-+ marginTop: 0,
-+ marginBottom: 0,
-+ 'th:first-of-type, td:first-of-type': {paddingLeft: 0},
-+ 'th:last-of-type, td:last-of-type': {paddingRight: 0},
-+ td: {
-+ paddingTop: 0,
-+ paddingBottom: 4,
-+ '&:not(:first-of-type)': {paddingLeft: 10, paddingRight: 0},
-+ },
-+ tbody: {boxShadow: 'none', border: 'none'},
-+ code: codeCommon({theme}),
-+ div: {span: {fontWeight: 'bold'}},
-+ '& code': {
-+ margin: 0,
-+ display: 'inline-block',
-+ fontSize: theme.typography.size.s1,
-+ },
-+ },
-+ })),
-+ ArgJsDoc = ({tags}) => {
-+ let params = (tags.params || []).filter((x) => x.description),
-+ hasDisplayableParams = params.length !== 0,
-+ hasDisplayableDeprecated = tags.deprecated != null,
-+ hasDisplayableReturns =
-+ tags.returns != null && tags.returns.description != null;
-+ return !hasDisplayableParams &&
-+ !hasDisplayableReturns &&
-+ !hasDisplayableDeprecated
-+ ? null
-+ : React17.createElement(
-+ React17.Fragment,
-+ null,
-+ React17.createElement(
-+ Table,
-+ null,
-+ React17.createElement(
-+ 'tbody',
-+ null,
-+ hasDisplayableDeprecated &&
-+ React17.createElement(
-+ 'tr',
-+ {key: 'deprecated'},
-+ React17.createElement(
-+ 'td',
-+ {colSpan: 2},
-+ React17.createElement('strong', null, 'Deprecated'),
-+ ': ',
-+ tags.deprecated.toString()
-+ )
-+ ),
-+ hasDisplayableParams &&
-+ params.map((x) =>
-+ React17.createElement(
-+ 'tr',
-+ {key: x.name},
-+ React17.createElement(
-+ 'td',
-+ null,
-+ React17.createElement('code', null, x.name)
-+ ),
-+ React17.createElement('td', null, x.description)
-+ )
-+ ),
-+ hasDisplayableReturns &&
-+ React17.createElement(
-+ 'tr',
-+ {key: 'returns'},
-+ React17.createElement(
-+ 'td',
-+ null,
-+ React17.createElement('code', null, 'Returns')
-+ ),
-+ React17.createElement('td', null, tags.returns.description)
-+ )
-+ )
-+ )
-+ );
-+ };
-+var ITEMS_BEFORE_EXPANSION = 8,
-+ Summary = styled.div(({isExpanded}) => ({
-+ display: 'flex',
-+ flexDirection: isExpanded ? 'column' : 'row',
-+ flexWrap: 'wrap',
-+ alignItems: 'flex-start',
-+ marginBottom: '-4px',
-+ minWidth: 100,
-+ })),
-+ Text = styled.span(codeCommon, ({theme, simple = !1}) => ({
-+ flex: '0 0 auto',
-+ fontFamily: theme.typography.fonts.mono,
-+ fontSize: theme.typography.size.s1,
-+ wordBreak: 'break-word',
-+ whiteSpace: 'normal',
-+ maxWidth: '100%',
-+ margin: 0,
-+ marginRight: '4px',
-+ marginBottom: '4px',
-+ paddingTop: '2px',
-+ paddingBottom: '2px',
-+ lineHeight: '13px',
-+ ...(simple && {
-+ background: 'transparent',
-+ border: '0 none',
-+ paddingLeft: 0,
-+ }),
-+ })),
-+ ExpandButton = styled.button(({theme}) => ({
-+ fontFamily: theme.typography.fonts.mono,
-+ color: theme.color.secondary,
-+ marginBottom: '4px',
-+ background: 'none',
-+ border: 'none',
-+ })),
-+ Expandable = styled.div(codeCommon, ({theme}) => ({
-+ fontFamily: theme.typography.fonts.mono,
-+ color: theme.color.secondary,
-+ fontSize: theme.typography.size.s1,
-+ margin: 0,
-+ whiteSpace: 'nowrap',
-+ display: 'flex',
-+ alignItems: 'center',
-+ })),
-+ Detail = styled.div(({theme, width}) => ({
-+ width,
-+ minWidth: 200,
-+ maxWidth: 800,
-+ padding: 15,
-+ fontFamily: theme.typography.fonts.mono,
-+ fontSize: theme.typography.size.s1,
-+ boxSizing: 'content-box',
-+ '& code': {padding: '0 !important'},
-+ })),
-+ ChevronUpIcon = styled(ChevronSmallUpIcon)({marginLeft: 4}),
-+ ChevronDownIcon = styled(ChevronSmallDownIcon)({marginLeft: 4}),
-+ EmptyArg = () => React17.createElement('span', null, '-'),
-+ ArgText = ({text, simple}) => React17.createElement(Text, {simple}, text),
-+ calculateDetailWidth = memoize(1e3)((detail) => {
-+ let lines = detail.split(/\r?\n/);
-+ return `${Math.max(...lines.map((x) => x.length))}ch`;
-+ }),
-+ getSummaryItems = (summary) => {
-+ if (!summary) return [summary];
-+ let summaryItems = summary.split('|').map((value2) => value2.trim());
-+ return uniq(summaryItems);
-+ },
-+ renderSummaryItems = (summaryItems, isExpanded = !0) => {
-+ let items = summaryItems;
-+ return (
-+ isExpanded || (items = summaryItems.slice(0, ITEMS_BEFORE_EXPANSION)),
-+ items.map((item) =>
-+ React17.createElement(ArgText, {
-+ key: item,
-+ text: item === '' ? '""' : item,
-+ })
-+ )
-+ );
-+ },
-+ ArgSummary = ({value: value2, initialExpandedArgs}) => {
-+ let {summary, detail} = value2,
-+ [isOpen, setIsOpen] = useState(!1),
-+ [isExpanded, setIsExpanded] = useState(initialExpandedArgs || !1);
-+ if (summary == null) return null;
-+ let summaryAsString =
-+ typeof summary.toString == 'function' ? summary.toString() : summary;
-+ if (detail == null) {
-+ if (/[(){}[\]<>]/.test(summaryAsString))
-+ return React17.createElement(ArgText, {text: summaryAsString});
-+ let summaryItems = getSummaryItems(summaryAsString),
-+ itemsCount = summaryItems.length;
-+ return itemsCount > ITEMS_BEFORE_EXPANSION
-+ ? React17.createElement(
-+ Summary,
-+ {isExpanded},
-+ renderSummaryItems(summaryItems, isExpanded),
-+ React17.createElement(
-+ ExpandButton,
-+ {onClick: () => setIsExpanded(!isExpanded)},
-+ isExpanded
-+ ? 'Show less...'
-+ : `Show ${itemsCount - ITEMS_BEFORE_EXPANSION} more...`
-+ )
-+ )
-+ : React17.createElement(
-+ Summary,
-+ null,
-+ renderSummaryItems(summaryItems)
-+ );
-+ }
-+ return React17.createElement(
-+ WithTooltipPure,
-+ {
-+ closeOnOutsideClick: !0,
-+ placement: 'bottom',
-+ visible: isOpen,
-+ onVisibleChange: (isVisible) => {
-+ setIsOpen(isVisible);
-+ },
-+ tooltip: React17.createElement(
-+ Detail,
-+ {width: calculateDetailWidth(detail)},
-+ React17.createElement(
-+ SyntaxHighlighter,
-+ {language: 'jsx', format: !1},
-+ detail
-+ )
-+ ),
-+ },
-+ React17.createElement(
-+ Expandable,
-+ {className: 'sbdocs-expandable'},
-+ React17.createElement('span', null, summaryAsString),
-+ isOpen
-+ ? React17.createElement(ChevronUpIcon, null)
-+ : React17.createElement(ChevronDownIcon, null)
-+ )
-+ );
-+ },
-+ ArgValue = ({value: value2, initialExpandedArgs}) =>
-+ value2 == null
-+ ? React17.createElement(EmptyArg, null)
-+ : React17.createElement(ArgSummary, {value: value2, initialExpandedArgs});
-+var Label = styled.label(({theme}) => ({
-+ lineHeight: '18px',
-+ alignItems: 'center',
-+ marginBottom: 8,
-+ display: 'inline-block',
-+ position: 'relative',
-+ whiteSpace: 'nowrap',
-+ background: theme.boolean.background,
-+ borderRadius: '3em',
-+ padding: 1,
-+ '&[aria-disabled="true"]': {opacity: 0.5, input: {cursor: 'not-allowed'}},
-+ input: {
-+ appearance: 'none',
-+ width: '100%',
-+ height: '100%',
-+ position: 'absolute',
-+ left: 0,
-+ top: 0,
-+ margin: 0,
-+ padding: 0,
-+ border: 'none',
-+ background: 'transparent',
-+ cursor: 'pointer',
-+ borderRadius: '3em',
-+ '&:focus': {
-+ outline: 'none',
-+ boxShadow: `${theme.color.secondary} 0 0 0 1px inset !important`,
-+ },
-+ },
-+ span: {
-+ textAlign: 'center',
-+ fontSize: theme.typography.size.s1,
-+ fontWeight: theme.typography.weight.bold,
-+ lineHeight: '1',
-+ cursor: 'pointer',
-+ display: 'inline-block',
-+ padding: '7px 15px',
-+ transition: 'all 100ms ease-out',
-+ userSelect: 'none',
-+ borderRadius: '3em',
-+ color: transparentize(0.5, theme.color.defaultText),
-+ background: 'transparent',
-+ '&:hover': {
-+ boxShadow: `${opacify(0.3, theme.appBorderColor)} 0 0 0 1px inset`,
-+ },
-+ '&:active': {
-+ boxShadow: `${opacify(0.05, theme.appBorderColor)} 0 0 0 2px inset`,
-+ color: opacify(1, theme.appBorderColor),
-+ },
-+ '&:first-of-type': {paddingRight: 8},
-+ '&:last-of-type': {paddingLeft: 8},
-+ },
-+ 'input:checked ~ span:last-of-type, input:not(:checked) ~ span:first-of-type':
-+ {
-+ background: theme.boolean.selectedBackground,
-+ boxShadow:
-+ theme.base === 'light'
-+ ? `${opacify(0.1, theme.appBorderColor)} 0 0 2px`
-+ : `${theme.appBorderColor} 0 0 0 1px`,
-+ color: theme.color.defaultText,
-+ padding: '7px 15px',
-+ },
-+ })),
-+ parse = (value2) => value2 === 'true',
-+ BooleanControl = ({
-+ name,
-+ value: value2,
-+ onChange,
-+ onBlur,
-+ onFocus,
-+ argType,
-+ }) => {
-+ let onSetFalse = useCallback(() => onChange(!1), [onChange]),
-+ readonly = !!argType?.table?.readonly;
-+ if (value2 === void 0)
-+ return React17.createElement(
-+ Button,
-+ {
-+ variant: 'outline',
-+ size: 'medium',
-+ id: getControlSetterButtonId(name),
-+ onClick: onSetFalse,
-+ disabled: readonly,
-+ },
-+ 'Set boolean'
-+ );
-+ let controlId = getControlId(name),
-+ parsedValue = typeof value2 == 'string' ? parse(value2) : value2;
-+ return React17.createElement(
-+ Label,
-+ {'aria-disabled': readonly, htmlFor: controlId, 'aria-label': name},
-+ React17.createElement('input', {
-+ id: controlId,
-+ type: 'checkbox',
-+ onChange: (e) => onChange(e.target.checked),
-+ checked: parsedValue,
-+ role: 'switch',
-+ disabled: readonly,
-+ name,
-+ onBlur,
-+ onFocus,
-+ }),
-+ React17.createElement('span', {'aria-hidden': 'true'}, 'False'),
-+ React17.createElement('span', {'aria-hidden': 'true'}, 'True')
-+ );
-+ };
-+var parseDate = (value2) => {
-+ let [year, month, day] = value2.split('-'),
-+ result = new Date();
-+ return (
-+ result.setFullYear(
-+ parseInt(year, 10),
-+ parseInt(month, 10) - 1,
-+ parseInt(day, 10)
-+ ),
-+ result
-+ );
-+ },
-+ parseTime = (value2) => {
-+ let [hours, minutes] = value2.split(':'),
-+ result = new Date();
-+ return (
-+ result.setHours(parseInt(hours, 10)),
-+ result.setMinutes(parseInt(minutes, 10)),
-+ result
-+ );
-+ },
-+ formatDate = (value2) => {
-+ let date = new Date(value2),
-+ year = `000${date.getFullYear()}`.slice(-4),
-+ month = `0${date.getMonth() + 1}`.slice(-2),
-+ day = `0${date.getDate()}`.slice(-2);
-+ return `${year}-${month}-${day}`;
-+ },
-+ formatTime = (value2) => {
-+ let date = new Date(value2),
-+ hours = `0${date.getHours()}`.slice(-2),
-+ minutes = `0${date.getMinutes()}`.slice(-2);
-+ return `${hours}:${minutes}`;
-+ },
-+ FormInput = styled(Form.Input)(({readOnly}) => ({
-+ opacity: readOnly ? 0.5 : 1,
-+ })),
-+ FlexSpaced = styled.div(({theme}) => ({
-+ flex: 1,
-+ display: 'flex',
-+ input: {
-+ marginLeft: 10,
-+ flex: 1,
-+ height: 32,
-+ '&::-webkit-calendar-picker-indicator': {
-+ opacity: 0.5,
-+ height: 12,
-+ filter: theme.base === 'light' ? void 0 : 'invert(1)',
-+ },
-+ },
-+ 'input:first-of-type': {marginLeft: 0, flexGrow: 4},
-+ 'input:last-of-type': {flexGrow: 3},
-+ })),
-+ DateControl = ({name, value: value2, onChange, onFocus, onBlur, argType}) => {
-+ let [valid, setValid] = useState(!0),
-+ dateRef = useRef(),
-+ timeRef = useRef(),
-+ readonly = !!argType?.table?.readonly;
-+ useEffect(() => {
-+ valid !== !1 &&
-+ (dateRef &&
-+ dateRef.current &&
-+ (dateRef.current.value = formatDate(value2)),
-+ timeRef &&
-+ timeRef.current &&
-+ (timeRef.current.value = formatTime(value2)));
-+ }, [value2]);
-+ let onDateChange = (e) => {
-+ let parsed = parseDate(e.target.value),
-+ result = new Date(value2);
-+ result.setFullYear(
-+ parsed.getFullYear(),
-+ parsed.getMonth(),
-+ parsed.getDate()
-+ );
-+ let time = result.getTime();
-+ time && onChange(time), setValid(!!time);
-+ },
-+ onTimeChange = (e) => {
-+ let parsed = parseTime(e.target.value),
-+ result = new Date(value2);
-+ result.setHours(parsed.getHours()),
-+ result.setMinutes(parsed.getMinutes());
-+ let time = result.getTime();
-+ time && onChange(time), setValid(!!time);
-+ },
-+ controlId = getControlId(name);
-+ return React17.createElement(
-+ FlexSpaced,
-+ null,
-+ React17.createElement(FormInput, {
-+ type: 'date',
-+ max: '9999-12-31',
-+ ref: dateRef,
-+ id: `${controlId}-date`,
-+ name: `${controlId}-date`,
-+ readOnly: readonly,
-+ onChange: onDateChange,
-+ onFocus,
-+ onBlur,
-+ }),
-+ React17.createElement(FormInput, {
-+ type: 'time',
-+ id: `${controlId}-time`,
-+ name: `${controlId}-time`,
-+ ref: timeRef,
-+ onChange: onTimeChange,
-+ readOnly: readonly,
-+ onFocus,
-+ onBlur,
-+ }),
-+ valid ? null : React17.createElement('div', null, 'invalid')
-+ );
-+ };
-+var Wrapper3 = styled.label({display: 'flex'}),
-+ parse2 = (value2) => {
-+ let result = parseFloat(value2);
-+ return Number.isNaN(result) ? void 0 : result;
-+ },
-+ format = (value2) => (value2 != null ? String(value2) : ''),
-+ FormInput2 = styled(Form.Input)(({readOnly}) => ({
-+ opacity: readOnly ? 0.5 : 1,
-+ })),
-+ NumberControl = ({
-+ name,
-+ value: value2,
-+ onChange,
-+ min,
-+ max,
-+ step,
-+ onBlur,
-+ onFocus,
-+ argType,
-+ }) => {
-+ let [inputValue, setInputValue] = useState(
-+ typeof value2 == 'number' ? value2 : ''
-+ ),
-+ [forceVisible, setForceVisible] = useState(!1),
-+ [parseError, setParseError] = useState(null),
-+ readonly = !!argType?.table?.readonly,
-+ handleChange = useCallback(
-+ (event) => {
-+ setInputValue(event.target.value);
-+ let result = parseFloat(event.target.value);
-+ Number.isNaN(result)
-+ ? setParseError(
-+ new Error(`'${event.target.value}' is not a number`)
-+ )
-+ : (onChange(result), setParseError(null));
-+ },
-+ [onChange, setParseError]
-+ ),
-+ onForceVisible = useCallback(() => {
-+ setInputValue('0'), onChange(0), setForceVisible(!0);
-+ }, [setForceVisible]),
-+ htmlElRef = useRef(null);
-+ return (
-+ useEffect(() => {
-+ forceVisible && htmlElRef.current && htmlElRef.current.select();
-+ }, [forceVisible]),
-+ useEffect(() => {
-+ inputValue !== (typeof value2 == 'number' ? value2 : '') &&
-+ setInputValue(value2);
-+ }, [value2]),
-+ value2 === void 0
-+ ? React17.createElement(
-+ Button,
-+ {
-+ variant: 'outline',
-+ size: 'medium',
-+ id: getControlSetterButtonId(name),
-+ onClick: onForceVisible,
-+ disabled: readonly,
-+ },
-+ 'Set number'
-+ )
-+ : React17.createElement(
-+ Wrapper3,
-+ null,
-+ React17.createElement(FormInput2, {
-+ ref: htmlElRef,
-+ id: getControlId(name),
-+ type: 'number',
-+ onChange: handleChange,
-+ size: 'flex',
-+ placeholder: 'Edit number...',
-+ value: inputValue,
-+ valid: parseError ? 'error' : null,
-+ autoFocus: forceVisible,
-+ readOnly: readonly,
-+ name,
-+ min,
-+ max,
-+ step,
-+ onFocus,
-+ onBlur,
-+ })
-+ )
-+ );
-+ };
-+var selectedKey = (value2, options) => {
-+ let entry =
-+ options && Object.entries(options).find(([_key, val]) => val === value2);
-+ return entry ? entry[0] : void 0;
-+ },
-+ selectedKeys = (value2, options) =>
-+ value2 && options
-+ ? Object.entries(options)
-+ .filter((entry) => value2.includes(entry[1]))
-+ .map((entry) => entry[0])
-+ : [],
-+ selectedValues = (keys, options) =>
-+ keys && options && keys.map((key) => options[key]);
-+var Wrapper4 = styled.div(
-+ ({isInline}) =>
-+ isInline
-+ ? {
-+ display: 'flex',
-+ flexWrap: 'wrap',
-+ alignItems: 'flex-start',
-+ label: {display: 'inline-flex', marginRight: 15},
-+ }
-+ : {label: {display: 'flex'}},
-+ (props) => {
-+ if (props['aria-readonly'] === 'true')
-+ return {input: {cursor: 'not-allowed'}};
-+ }
-+ ),
-+ Text2 = styled.span({'[aria-readonly=true] &': {opacity: 0.5}}),
-+ Label2 = styled.label({
-+ lineHeight: '20px',
-+ alignItems: 'center',
-+ marginBottom: 8,
-+ '&:last-child': {marginBottom: 0},
-+ input: {margin: 0, marginRight: 6},
-+ }),
-+ CheckboxControl = ({
-+ name,
-+ options,
-+ value: value2,
-+ onChange,
-+ isInline,
-+ argType,
-+ }) => {
-+ if (!options)
-+ return (
-+ logger.warn(`Checkbox with no options: ${name}`),
-+ React17.createElement(React17.Fragment, null, '-')
-+ );
-+ let initial = selectedKeys(value2, options),
-+ [selected, setSelected] = useState(initial),
-+ readonly = !!argType?.table?.readonly,
-+ handleChange = (e) => {
-+ let option = e.target.value,
-+ updated = [...selected];
-+ updated.includes(option)
-+ ? updated.splice(updated.indexOf(option), 1)
-+ : updated.push(option),
-+ onChange(selectedValues(updated, options)),
-+ setSelected(updated);
-+ };
-+ useEffect(() => {
-+ setSelected(selectedKeys(value2, options));
-+ }, [value2]);
-+ let controlId = getControlId(name);
-+ return React17.createElement(
-+ Wrapper4,
-+ {'aria-readonly': readonly, isInline},
-+ Object.keys(options).map((key, index) => {
-+ let id = `${controlId}-${index}`;
-+ return React17.createElement(
-+ Label2,
-+ {key: id, htmlFor: id},
-+ React17.createElement('input', {
-+ type: 'checkbox',
-+ disabled: readonly,
-+ id,
-+ name: id,
-+ value: key,
-+ onChange: handleChange,
-+ checked: selected?.includes(key),
-+ }),
-+ React17.createElement(Text2, null, key)
-+ );
-+ })
-+ );
-+ };
-+var Wrapper5 = styled.div(
-+ ({isInline}) =>
-+ isInline
-+ ? {
-+ display: 'flex',
-+ flexWrap: 'wrap',
-+ alignItems: 'flex-start',
-+ label: {display: 'inline-flex', marginRight: 15},
-+ }
-+ : {label: {display: 'flex'}},
-+ (props) => {
-+ if (props['aria-readonly'] === 'true')
-+ return {input: {cursor: 'not-allowed'}};
-+ }
-+ ),
-+ Text3 = styled.span({'[aria-readonly=true] &': {opacity: 0.5}}),
-+ Label3 = styled.label({
-+ lineHeight: '20px',
-+ alignItems: 'center',
-+ marginBottom: 8,
-+ '&:last-child': {marginBottom: 0},
-+ input: {margin: 0, marginRight: 6},
-+ }),
-+ RadioControl = ({
-+ name,
-+ options,
-+ value: value2,
-+ onChange,
-+ isInline,
-+ argType,
-+ }) => {
-+ if (!options)
-+ return (
-+ logger.warn(`Radio with no options: ${name}`),
-+ React17.createElement(React17.Fragment, null, '-')
-+ );
-+ let selection = selectedKey(value2, options),
-+ controlId = getControlId(name),
-+ readonly = !!argType?.table?.readonly;
-+ return React17.createElement(
-+ Wrapper5,
-+ {'aria-readonly': readonly, isInline},
-+ Object.keys(options).map((key, index) => {
-+ let id = `${controlId}-${index}`;
-+ return React17.createElement(
-+ Label3,
-+ {key: id, htmlFor: id},
-+ React17.createElement('input', {
-+ type: 'radio',
-+ id,
-+ name: id,
-+ disabled: readonly,
-+ value: key,
-+ onChange: (e) => onChange(options[e.currentTarget.value]),
-+ checked: key === selection,
-+ }),
-+ React17.createElement(Text3, null, key)
-+ );
-+ })
-+ );
-+ };
-+var styleResets = {
-+ appearance: 'none',
-+ border: '0 none',
-+ boxSizing: 'inherit',
-+ display: ' block',
-+ margin: ' 0',
-+ background: 'transparent',
-+ padding: 0,
-+ fontSize: 'inherit',
-+ position: 'relative',
-+ },
-+ OptionsSelect = styled.select(styleResets, ({theme}) => ({
-+ boxSizing: 'border-box',
-+ position: 'relative',
-+ padding: '6px 10px',
-+ width: '100%',
-+ color: theme.input.color || 'inherit',
-+ background: theme.input.background,
-+ borderRadius: theme.input.borderRadius,
-+ boxShadow: `${theme.input.border} 0 0 0 1px inset`,
-+ fontSize: theme.typography.size.s2 - 1,
-+ lineHeight: '20px',
-+ '&:focus': {
-+ boxShadow: `${theme.color.secondary} 0 0 0 1px inset`,
-+ outline: 'none',
-+ },
-+ '&[disabled]': {cursor: 'not-allowed', opacity: 0.5},
-+ '::placeholder': {color: theme.textMutedColor},
-+ '&[multiple]': {
-+ overflow: 'auto',
-+ padding: 0,
-+ option: {
-+ display: 'block',
-+ padding: '6px 10px',
-+ marginLeft: 1,
-+ marginRight: 1,
-+ },
-+ },
-+ })),
-+ SelectWrapper = styled.span(({theme}) => ({
-+ display: 'inline-block',
-+ lineHeight: 'normal',
-+ overflow: 'hidden',
-+ position: 'relative',
-+ verticalAlign: 'top',
-+ width: '100%',
-+ svg: {
-+ position: 'absolute',
-+ zIndex: 1,
-+ pointerEvents: 'none',
-+ height: '12px',
-+ marginTop: '-6px',
-+ right: '12px',
-+ top: '50%',
-+ fill: theme.textMutedColor,
-+ path: {fill: theme.textMutedColor},
-+ },
-+ })),
-+ NO_SELECTION = 'Choose option...',
-+ SingleSelect = ({name, value: value2, options, onChange, argType}) => {
-+ let handleChange = (e) => {
-+ onChange(options[e.currentTarget.value]);
-+ },
-+ selection = selectedKey(value2, options) || NO_SELECTION,
-+ controlId = getControlId(name),
-+ readonly = !!argType?.table?.readonly;
-+ return React17.createElement(
-+ SelectWrapper,
-+ null,
-+ React17.createElement(ChevronSmallDownIcon, null),
-+ React17.createElement(
-+ OptionsSelect,
-+ {
-+ disabled: readonly,
-+ id: controlId,
-+ value: selection,
-+ onChange: handleChange,
-+ },
-+ React17.createElement(
-+ 'option',
-+ {key: 'no-selection', disabled: !0},
-+ NO_SELECTION
-+ ),
-+ Object.keys(options).map((key) =>
-+ React17.createElement('option', {key, value: key}, key)
-+ )
-+ )
-+ );
-+ },
-+ MultiSelect = ({name, value: value2, options, onChange, argType}) => {
-+ let handleChange = (e) => {
-+ let selection2 = Array.from(e.currentTarget.options)
-+ .filter((option) => option.selected)
-+ .map((option) => option.value);
-+ onChange(selectedValues(selection2, options));
-+ },
-+ selection = selectedKeys(value2, options),
-+ controlId = getControlId(name),
-+ readonly = !!argType?.table?.readonly;
-+ return React17.createElement(
-+ SelectWrapper,
-+ null,
-+ React17.createElement(
-+ OptionsSelect,
-+ {
-+ disabled: readonly,
-+ id: controlId,
-+ multiple: !0,
-+ value: selection,
-+ onChange: handleChange,
-+ },
-+ Object.keys(options).map((key) =>
-+ React17.createElement('option', {key, value: key}, key)
-+ )
-+ )
-+ );
-+ },
-+ SelectControl = (props) => {
-+ let {name, options} = props;
-+ return options
-+ ? props.isMulti
-+ ? React17.createElement(MultiSelect, {...props})
-+ : React17.createElement(SingleSelect, {...props})
-+ : (logger.warn(`Select with no options: ${name}`),
-+ React17.createElement(React17.Fragment, null, '-'));
-+ };
-+var normalizeOptions = (options, labels) =>
-+ Array.isArray(options)
-+ ? options.reduce(
-+ (acc, item) => ((acc[labels?.[item] || String(item)] = item), acc),
-+ {}
-+ )
-+ : options,
-+ Controls = {
-+ check: CheckboxControl,
-+ 'inline-check': CheckboxControl,
-+ radio: RadioControl,
-+ 'inline-radio': RadioControl,
-+ select: SelectControl,
-+ 'multi-select': SelectControl,
-+ },
-+ OptionsControl = (props) => {
-+ let {type = 'select', labels, argType} = props,
-+ normalized = {
-+ ...props,
-+ argType,
-+ options: argType ? normalizeOptions(argType.options, labels) : {},
-+ isInline: type.includes('inline'),
-+ isMulti: type.includes('multi'),
-+ },
-+ Control = Controls[type];
-+ if (Control) return React17.createElement(Control, {...normalized});
-+ throw new Error(`Unknown options type: ${type}`);
-+ };
-+var VALUE = 'value',
-+ KEY = 'key';
-+var ERROR = 'Error',
-+ OBJECT = 'Object',
-+ ARRAY = 'Array',
-+ STRING = 'String',
-+ NUMBER = 'Number',
-+ BOOLEAN = 'Boolean',
-+ DATE = 'Date',
-+ NULL = 'Null',
-+ UNDEFINED = 'Undefined',
-+ FUNCTION = 'Function',
-+ SYMBOL = 'Symbol';
-+var ADD_DELTA_TYPE = 'ADD_DELTA_TYPE',
-+ REMOVE_DELTA_TYPE = 'REMOVE_DELTA_TYPE',
-+ UPDATE_DELTA_TYPE = 'UPDATE_DELTA_TYPE';
-+function getObjectType(obj) {
-+ return obj !== null &&
-+ typeof obj == 'object' &&
-+ !Array.isArray(obj) &&
-+ typeof obj[Symbol.iterator] == 'function'
-+ ? 'Iterable'
-+ : Object.prototype.toString.call(obj).slice(8, -1);
-+}
-+function isComponentWillChange(oldValue, newValue) {
-+ let oldType = getObjectType(oldValue),
-+ newType = getObjectType(newValue);
-+ return (
-+ (oldType === 'Function' || newType === 'Function') && newType !== oldType
-+ );
-+}
-+var JsonAddValue = class extends Component {
-+ constructor(props) {
-+ super(props),
-+ (this.state = {inputRefKey: null, inputRefValue: null}),
-+ (this.refInputValue = this.refInputValue.bind(this)),
-+ (this.refInputKey = this.refInputKey.bind(this)),
-+ (this.onKeydown = this.onKeydown.bind(this)),
-+ (this.onSubmit = this.onSubmit.bind(this));
-+ }
-+ componentDidMount() {
-+ let {inputRefKey, inputRefValue} = this.state,
-+ {onlyValue} = this.props;
-+ inputRefKey &&
-+ typeof inputRefKey.focus == 'function' &&
-+ inputRefKey.focus(),
-+ onlyValue &&
-+ inputRefValue &&
-+ typeof inputRefValue.focus == 'function' &&
-+ inputRefValue.focus(),
-+ document.addEventListener('keydown', this.onKeydown);
-+ }
-+ componentWillUnmount() {
-+ document.removeEventListener('keydown', this.onKeydown);
-+ }
-+ onKeydown(event) {
-+ event.altKey ||
-+ event.ctrlKey ||
-+ event.metaKey ||
-+ event.shiftKey ||
-+ event.repeat ||
-+ ((event.code === 'Enter' || event.key === 'Enter') &&
-+ (event.preventDefault(), this.onSubmit()),
-+ (event.code === 'Escape' || event.key === 'Escape') &&
-+ (event.preventDefault(), this.props.handleCancel()));
-+ }
-+ onSubmit() {
-+ let {handleAdd, onlyValue, onSubmitValueParser, keyPath, deep} = this.props,
-+ {inputRefKey, inputRefValue} = this.state,
-+ result = {};
-+ if (!onlyValue) {
-+ if (!inputRefKey.value) return;
-+ result.key = inputRefKey.value;
-+ }
-+ (result.newValue = onSubmitValueParser(
-+ !1,
-+ keyPath,
-+ deep,
-+ result.key,
-+ inputRefValue.value
-+ )),
-+ handleAdd(result);
-+ }
-+ refInputKey(node) {
-+ this.state.inputRefKey = node;
-+ }
-+ refInputValue(node) {
-+ this.state.inputRefValue = node;
-+ }
-+ render() {
-+ let {
-+ handleCancel,
-+ onlyValue,
-+ addButtonElement,
-+ cancelButtonElement,
-+ inputElementGenerator,
-+ keyPath,
-+ deep,
-+ } = this.props,
-+ addButtonElementLayout = cloneElement(addButtonElement, {
-+ onClick: this.onSubmit,
-+ }),
-+ cancelButtonElementLayout = cloneElement(cancelButtonElement, {
-+ onClick: handleCancel,
-+ }),
-+ inputElementValue = inputElementGenerator(VALUE, keyPath, deep),
-+ inputElementValueLayout = cloneElement(inputElementValue, {
-+ placeholder: 'Value',
-+ ref: this.refInputValue,
-+ }),
-+ inputElementKeyLayout = null;
-+ if (!onlyValue) {
-+ let inputElementKey = inputElementGenerator(KEY, keyPath, deep);
-+ inputElementKeyLayout = cloneElement(inputElementKey, {
-+ placeholder: 'Key',
-+ ref: this.refInputKey,
-+ });
-+ }
-+ return React17.createElement(
-+ 'span',
-+ {className: 'rejt-add-value-node'},
-+ inputElementKeyLayout,
-+ inputElementValueLayout,
-+ cancelButtonElementLayout,
-+ addButtonElementLayout
-+ );
-+ }
-+};
-+JsonAddValue.defaultProps = {
-+ onlyValue: !1,
-+ addButtonElement: React17.createElement('button', null, '+'),
-+ cancelButtonElement: React17.createElement('button', null, 'c'),
-+};
-+var JsonArray = class extends Component {
-+ constructor(props) {
-+ super(props);
-+ let keyPath = [...props.keyPath, props.name];
-+ (this.state = {
-+ data: props.data,
-+ name: props.name,
-+ keyPath,
-+ deep: props.deep,
-+ nextDeep: props.deep + 1,
-+ collapsed: props.isCollapsed(keyPath, props.deep, props.data),
-+ addFormVisible: !1,
-+ }),
-+ (this.handleCollapseMode = this.handleCollapseMode.bind(this)),
-+ (this.handleRemoveItem = this.handleRemoveItem.bind(this)),
-+ (this.handleAddMode = this.handleAddMode.bind(this)),
-+ (this.handleAddValueAdd = this.handleAddValueAdd.bind(this)),
-+ (this.handleAddValueCancel = this.handleAddValueCancel.bind(this)),
-+ (this.handleEditValue = this.handleEditValue.bind(this)),
-+ (this.onChildUpdate = this.onChildUpdate.bind(this)),
-+ (this.renderCollapsed = this.renderCollapsed.bind(this)),
-+ (this.renderNotCollapsed = this.renderNotCollapsed.bind(this));
-+ }
-+ static getDerivedStateFromProps(props, state) {
-+ return props.data !== state.data ? {data: props.data} : null;
-+ }
-+ onChildUpdate(childKey, childData) {
-+ let {data, keyPath} = this.state;
-+ (data[childKey] = childData), this.setState({data});
-+ let {onUpdate} = this.props,
-+ size = keyPath.length;
-+ onUpdate(keyPath[size - 1], data);
-+ }
-+ handleAddMode() {
-+ this.setState({addFormVisible: !0});
-+ }
-+ handleCollapseMode() {
-+ this.setState((state) => ({collapsed: !state.collapsed}));
-+ }
-+ handleRemoveItem(index) {
-+ return () => {
-+ let {beforeRemoveAction, logger: logger4} = this.props,
-+ {data, keyPath, nextDeep: deep} = this.state,
-+ oldValue = data[index];
-+ beforeRemoveAction(index, keyPath, deep, oldValue)
-+ .then(() => {
-+ let deltaUpdateResult = {
-+ keyPath,
-+ deep,
-+ key: index,
-+ oldValue,
-+ type: REMOVE_DELTA_TYPE,
-+ };
-+ data.splice(index, 1), this.setState({data});
-+ let {onUpdate, onDeltaUpdate} = this.props;
-+ onUpdate(keyPath[keyPath.length - 1], data),
-+ onDeltaUpdate(deltaUpdateResult);
-+ })
-+ .catch(logger4.error);
-+ };
-+ }
-+ handleAddValueAdd({newValue}) {
-+ let {data, keyPath, nextDeep: deep} = this.state,
-+ {beforeAddAction, logger: logger4} = this.props;
-+ beforeAddAction(data.length, keyPath, deep, newValue)
-+ .then(() => {
-+ let newData = [...data, newValue];
-+ this.setState({data: newData}), this.handleAddValueCancel();
-+ let {onUpdate, onDeltaUpdate} = this.props;
-+ onUpdate(keyPath[keyPath.length - 1], newData),
-+ onDeltaUpdate({
-+ type: ADD_DELTA_TYPE,
-+ keyPath,
-+ deep,
-+ key: newData.length - 1,
-+ newValue,
-+ });
-+ })
-+ .catch(logger4.error);
-+ }
-+ handleAddValueCancel() {
-+ this.setState({addFormVisible: !1});
-+ }
-+ handleEditValue({key, value: value2}) {
-+ return new Promise((resolve, reject) => {
-+ let {beforeUpdateAction} = this.props,
-+ {data, keyPath, nextDeep: deep} = this.state,
-+ oldValue = data[key];
-+ beforeUpdateAction(key, keyPath, deep, oldValue, value2)
-+ .then(() => {
-+ (data[key] = value2), this.setState({data});
-+ let {onUpdate, onDeltaUpdate} = this.props;
-+ onUpdate(keyPath[keyPath.length - 1], data),
-+ onDeltaUpdate({
-+ type: UPDATE_DELTA_TYPE,
-+ keyPath,
-+ deep,
-+ key,
-+ newValue: value2,
-+ oldValue,
-+ }),
-+ resolve(void 0);
-+ })
-+ .catch(reject);
-+ });
-+ }
-+ renderCollapsed() {
-+ let {name, data, keyPath, deep} = this.state,
-+ {handleRemove, readOnly, getStyle, dataType, minusMenuElement} =
-+ this.props,
-+ {minus, collapsed} = getStyle(name, data, keyPath, deep, dataType),
-+ isReadOnly = readOnly(name, data, keyPath, deep, dataType),
-+ removeItemButton = cloneElement(minusMenuElement, {
-+ onClick: handleRemove,
-+ className: 'rejt-minus-menu',
-+ style: minus,
-+ });
-+ return React17.createElement(
-+ 'span',
-+ {className: 'rejt-collapsed'},
-+ React17.createElement(
-+ 'span',
-+ {
-+ className: 'rejt-collapsed-text',
-+ style: collapsed,
-+ onClick: this.handleCollapseMode,
-+ },
-+ '[...] ',
-+ data.length,
-+ ' ',
-+ data.length === 1 ? 'item' : 'items'
-+ ),
-+ !isReadOnly && removeItemButton
-+ );
-+ }
-+ renderNotCollapsed() {
-+ let {name, data, keyPath, deep, addFormVisible, nextDeep} = this.state,
-+ {
-+ isCollapsed,
-+ handleRemove,
-+ onDeltaUpdate,
-+ readOnly,
-+ getStyle,
-+ dataType,
-+ addButtonElement,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ textareaElementGenerator,
-+ minusMenuElement,
-+ plusMenuElement,
-+ beforeRemoveAction,
-+ beforeAddAction,
-+ beforeUpdateAction,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ } = this.props,
-+ {minus, plus, delimiter, ul, addForm} = getStyle(
-+ name,
-+ data,
-+ keyPath,
-+ deep,
-+ dataType
-+ ),
-+ isReadOnly = readOnly(name, data, keyPath, deep, dataType),
-+ addItemButton = cloneElement(plusMenuElement, {
-+ onClick: this.handleAddMode,
-+ className: 'rejt-plus-menu',
-+ style: plus,
-+ }),
-+ removeItemButton = cloneElement(minusMenuElement, {
-+ onClick: handleRemove,
-+ className: 'rejt-minus-menu',
-+ style: minus,
-+ });
-+ return React17.createElement(
-+ 'span',
-+ {className: 'rejt-not-collapsed'},
-+ React17.createElement(
-+ 'span',
-+ {className: 'rejt-not-collapsed-delimiter', style: delimiter},
-+ '['
-+ ),
-+ !addFormVisible && addItemButton,
-+ React17.createElement(
-+ 'ul',
-+ {className: 'rejt-not-collapsed-list', style: ul},
-+ data.map((item, index) =>
-+ React17.createElement(JsonNode, {
-+ key: index,
-+ name: index.toString(),
-+ data: item,
-+ keyPath,
-+ deep: nextDeep,
-+ isCollapsed,
-+ handleRemove: this.handleRemoveItem(index),
-+ handleUpdateValue: this.handleEditValue,
-+ onUpdate: this.onChildUpdate,
-+ onDeltaUpdate,
-+ readOnly,
-+ getStyle,
-+ addButtonElement,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ textareaElementGenerator,
-+ minusMenuElement,
-+ plusMenuElement,
-+ beforeRemoveAction,
-+ beforeAddAction,
-+ beforeUpdateAction,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ })
-+ )
-+ ),
-+ !isReadOnly &&
-+ addFormVisible &&
-+ React17.createElement(
-+ 'div',
-+ {className: 'rejt-add-form', style: addForm},
-+ React17.createElement(JsonAddValue, {
-+ handleAdd: this.handleAddValueAdd,
-+ handleCancel: this.handleAddValueCancel,
-+ onlyValue: !0,
-+ addButtonElement,
-+ cancelButtonElement,
-+ inputElementGenerator,
-+ keyPath,
-+ deep,
-+ onSubmitValueParser,
-+ })
-+ ),
-+ React17.createElement(
-+ 'span',
-+ {className: 'rejt-not-collapsed-delimiter', style: delimiter},
-+ ']'
-+ ),
-+ !isReadOnly && removeItemButton
-+ );
-+ }
-+ render() {
-+ let {name, collapsed, data, keyPath, deep} = this.state,
-+ {dataType, getStyle} = this.props,
-+ value2 = collapsed ? this.renderCollapsed() : this.renderNotCollapsed(),
-+ style = getStyle(name, data, keyPath, deep, dataType);
-+ return React17.createElement(
-+ 'div',
-+ {className: 'rejt-array-node'},
-+ React17.createElement(
-+ 'span',
-+ {onClick: this.handleCollapseMode},
-+ React17.createElement(
-+ 'span',
-+ {className: 'rejt-name', style: style.name},
-+ name,
-+ ' :',
-+ ' '
-+ )
-+ ),
-+ value2
-+ );
-+ }
-+};
-+JsonArray.defaultProps = {
-+ keyPath: [],
-+ deep: 0,
-+ minusMenuElement: React17.createElement('span', null, ' - '),
-+ plusMenuElement: React17.createElement('span', null, ' + '),
-+};
-+var JsonFunctionValue = class extends Component {
-+ constructor(props) {
-+ super(props);
-+ let keyPath = [...props.keyPath, props.name];
-+ (this.state = {
-+ value: props.value,
-+ name: props.name,
-+ keyPath,
-+ deep: props.deep,
-+ editEnabled: !1,
-+ inputRef: null,
-+ }),
-+ (this.handleEditMode = this.handleEditMode.bind(this)),
-+ (this.refInput = this.refInput.bind(this)),
-+ (this.handleCancelEdit = this.handleCancelEdit.bind(this)),
-+ (this.handleEdit = this.handleEdit.bind(this)),
-+ (this.onKeydown = this.onKeydown.bind(this));
-+ }
-+ static getDerivedStateFromProps(props, state) {
-+ return props.value !== state.value ? {value: props.value} : null;
-+ }
-+ componentDidUpdate() {
-+ let {
-+ editEnabled,
-+ inputRef,
-+ name,
-+ value: value2,
-+ keyPath,
-+ deep,
-+ } = this.state,
-+ {readOnly, dataType} = this.props,
-+ readOnlyResult = readOnly(name, value2, keyPath, deep, dataType);
-+ editEnabled &&
-+ !readOnlyResult &&
-+ typeof inputRef.focus == 'function' &&
-+ inputRef.focus();
-+ }
-+ componentDidMount() {
-+ document.addEventListener('keydown', this.onKeydown);
-+ }
-+ componentWillUnmount() {
-+ document.removeEventListener('keydown', this.onKeydown);
-+ }
-+ onKeydown(event) {
-+ event.altKey ||
-+ event.ctrlKey ||
-+ event.metaKey ||
-+ event.shiftKey ||
-+ event.repeat ||
-+ ((event.code === 'Enter' || event.key === 'Enter') &&
-+ (event.preventDefault(), this.handleEdit()),
-+ (event.code === 'Escape' || event.key === 'Escape') &&
-+ (event.preventDefault(), this.handleCancelEdit()));
-+ }
-+ handleEdit() {
-+ let {
-+ handleUpdateValue,
-+ originalValue,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ keyPath,
-+ } = this.props,
-+ {inputRef, name, deep} = this.state;
-+ if (!inputRef) return;
-+ let newValue = onSubmitValueParser(!0, keyPath, deep, name, inputRef.value);
-+ handleUpdateValue({value: newValue, key: name})
-+ .then(() => {
-+ isComponentWillChange(originalValue, newValue) ||
-+ this.handleCancelEdit();
-+ })
-+ .catch(logger4.error);
-+ }
-+ handleEditMode() {
-+ this.setState({editEnabled: !0});
-+ }
-+ refInput(node) {
-+ this.state.inputRef = node;
-+ }
-+ handleCancelEdit() {
-+ this.setState({editEnabled: !1});
-+ }
-+ render() {
-+ let {name, value: value2, editEnabled, keyPath, deep} = this.state,
-+ {
-+ handleRemove,
-+ originalValue,
-+ readOnly,
-+ dataType,
-+ getStyle,
-+ editButtonElement,
-+ cancelButtonElement,
-+ textareaElementGenerator,
-+ minusMenuElement,
-+ keyPath: comeFromKeyPath,
-+ } = this.props,
-+ style = getStyle(name, originalValue, keyPath, deep, dataType),
-+ result = null,
-+ minusElement = null,
-+ resultOnlyResult = readOnly(name, originalValue, keyPath, deep, dataType);
-+ if (editEnabled && !resultOnlyResult) {
-+ let textareaElement = textareaElementGenerator(
-+ VALUE,
-+ comeFromKeyPath,
-+ deep,
-+ name,
-+ originalValue,
-+ dataType
-+ ),
-+ editButtonElementLayout = cloneElement(editButtonElement, {
-+ onClick: this.handleEdit,
-+ }),
-+ cancelButtonElementLayout = cloneElement(cancelButtonElement, {
-+ onClick: this.handleCancelEdit,
-+ }),
-+ textareaElementLayout = cloneElement(textareaElement, {
-+ ref: this.refInput,
-+ defaultValue: originalValue,
-+ });
-+ (result = React17.createElement(
-+ 'span',
-+ {className: 'rejt-edit-form', style: style.editForm},
-+ textareaElementLayout,
-+ ' ',
-+ cancelButtonElementLayout,
-+ editButtonElementLayout
-+ )),
-+ (minusElement = null);
-+ } else {
-+ result = React17.createElement(
-+ 'span',
-+ {
-+ className: 'rejt-value',
-+ style: style.value,
-+ onClick: resultOnlyResult ? null : this.handleEditMode,
-+ },
-+ value2
-+ );
-+ let minusMenuLayout = cloneElement(minusMenuElement, {
-+ onClick: handleRemove,
-+ className: 'rejt-minus-menu',
-+ style: style.minus,
-+ });
-+ minusElement = resultOnlyResult ? null : minusMenuLayout;
-+ }
-+ return React17.createElement(
-+ 'li',
-+ {className: 'rejt-function-value-node', style: style.li},
-+ React17.createElement(
-+ 'span',
-+ {className: 'rejt-name', style: style.name},
-+ name,
-+ ' :',
-+ ' '
-+ ),
-+ result,
-+ minusElement
-+ );
-+ }
-+};
-+JsonFunctionValue.defaultProps = {
-+ keyPath: [],
-+ deep: 0,
-+ handleUpdateValue: () => {},
-+ editButtonElement: React17.createElement('button', null, 'e'),
-+ cancelButtonElement: React17.createElement('button', null, 'c'),
-+ minusMenuElement: React17.createElement('span', null, ' - '),
-+};
-+var JsonNode = class extends Component {
-+ constructor(props) {
-+ super(props),
-+ (this.state = {
-+ data: props.data,
-+ name: props.name,
-+ keyPath: props.keyPath,
-+ deep: props.deep,
-+ });
-+ }
-+ static getDerivedStateFromProps(props, state) {
-+ return props.data !== state.data ? {data: props.data} : null;
-+ }
-+ render() {
-+ let {data, name, keyPath, deep} = this.state,
-+ {
-+ isCollapsed,
-+ handleRemove,
-+ handleUpdateValue,
-+ onUpdate,
-+ onDeltaUpdate,
-+ readOnly,
-+ getStyle,
-+ addButtonElement,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ textareaElementGenerator,
-+ minusMenuElement,
-+ plusMenuElement,
-+ beforeRemoveAction,
-+ beforeAddAction,
-+ beforeUpdateAction,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ } = this.props,
-+ readOnlyTrue = () => !0,
-+ dataType = getObjectType(data);
-+ switch (dataType) {
-+ case ERROR:
-+ return React17.createElement(JsonObject, {
-+ data,
-+ name,
-+ isCollapsed,
-+ keyPath,
-+ deep,
-+ handleRemove,
-+ onUpdate,
-+ onDeltaUpdate,
-+ readOnly: readOnlyTrue,
-+ dataType,
-+ getStyle,
-+ addButtonElement,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ textareaElementGenerator,
-+ minusMenuElement,
-+ plusMenuElement,
-+ beforeRemoveAction,
-+ beforeAddAction,
-+ beforeUpdateAction,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ });
-+ case OBJECT:
-+ return React17.createElement(JsonObject, {
-+ data,
-+ name,
-+ isCollapsed,
-+ keyPath,
-+ deep,
-+ handleRemove,
-+ onUpdate,
-+ onDeltaUpdate,
-+ readOnly,
-+ dataType,
-+ getStyle,
-+ addButtonElement,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ textareaElementGenerator,
-+ minusMenuElement,
-+ plusMenuElement,
-+ beforeRemoveAction,
-+ beforeAddAction,
-+ beforeUpdateAction,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ });
-+ case ARRAY:
-+ return React17.createElement(JsonArray, {
-+ data,
-+ name,
-+ isCollapsed,
-+ keyPath,
-+ deep,
-+ handleRemove,
-+ onUpdate,
-+ onDeltaUpdate,
-+ readOnly,
-+ dataType,
-+ getStyle,
-+ addButtonElement,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ textareaElementGenerator,
-+ minusMenuElement,
-+ plusMenuElement,
-+ beforeRemoveAction,
-+ beforeAddAction,
-+ beforeUpdateAction,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ });
-+ case STRING:
-+ return React17.createElement(JsonValue, {
-+ name,
-+ value: `"${data}"`,
-+ originalValue: data,
-+ keyPath,
-+ deep,
-+ handleRemove,
-+ handleUpdateValue,
-+ readOnly,
-+ dataType,
-+ getStyle,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ minusMenuElement,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ });
-+ case NUMBER:
-+ return React17.createElement(JsonValue, {
-+ name,
-+ value: data,
-+ originalValue: data,
-+ keyPath,
-+ deep,
-+ handleRemove,
-+ handleUpdateValue,
-+ readOnly,
-+ dataType,
-+ getStyle,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ minusMenuElement,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ });
-+ case BOOLEAN:
-+ return React17.createElement(JsonValue, {
-+ name,
-+ value: data ? 'true' : 'false',
-+ originalValue: data,
-+ keyPath,
-+ deep,
-+ handleRemove,
-+ handleUpdateValue,
-+ readOnly,
-+ dataType,
-+ getStyle,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ minusMenuElement,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ });
-+ case DATE:
-+ return React17.createElement(JsonValue, {
-+ name,
-+ value: data.toISOString(),
-+ originalValue: data,
-+ keyPath,
-+ deep,
-+ handleRemove,
-+ handleUpdateValue,
-+ readOnly: readOnlyTrue,
-+ dataType,
-+ getStyle,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ minusMenuElement,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ });
-+ case NULL:
-+ return React17.createElement(JsonValue, {
-+ name,
-+ value: 'null',
-+ originalValue: 'null',
-+ keyPath,
-+ deep,
-+ handleRemove,
-+ handleUpdateValue,
-+ readOnly,
-+ dataType,
-+ getStyle,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ minusMenuElement,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ });
-+ case UNDEFINED:
-+ return React17.createElement(JsonValue, {
-+ name,
-+ value: 'undefined',
-+ originalValue: 'undefined',
-+ keyPath,
-+ deep,
-+ handleRemove,
-+ handleUpdateValue,
-+ readOnly,
-+ dataType,
-+ getStyle,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ minusMenuElement,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ });
-+ case FUNCTION:
-+ return React17.createElement(JsonFunctionValue, {
-+ name,
-+ value: data.toString(),
-+ originalValue: data,
-+ keyPath,
-+ deep,
-+ handleRemove,
-+ handleUpdateValue,
-+ readOnly,
-+ dataType,
-+ getStyle,
-+ cancelButtonElement,
-+ editButtonElement,
-+ textareaElementGenerator,
-+ minusMenuElement,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ });
-+ case SYMBOL:
-+ return React17.createElement(JsonValue, {
-+ name,
-+ value: data.toString(),
-+ originalValue: data,
-+ keyPath,
-+ deep,
-+ handleRemove,
-+ handleUpdateValue,
-+ readOnly: readOnlyTrue,
-+ dataType,
-+ getStyle,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ minusMenuElement,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ });
-+ default:
-+ return null;
-+ }
-+ }
-+};
-+JsonNode.defaultProps = {keyPath: [], deep: 0};
-+var JsonObject = class extends Component {
-+ constructor(props) {
-+ super(props);
-+ let keyPath = props.deep === -1 ? [] : [...props.keyPath, props.name];
-+ (this.state = {
-+ name: props.name,
-+ data: props.data,
-+ keyPath,
-+ deep: props.deep,
-+ nextDeep: props.deep + 1,
-+ collapsed: props.isCollapsed(keyPath, props.deep, props.data),
-+ addFormVisible: !1,
-+ }),
-+ (this.handleCollapseMode = this.handleCollapseMode.bind(this)),
-+ (this.handleRemoveValue = this.handleRemoveValue.bind(this)),
-+ (this.handleAddMode = this.handleAddMode.bind(this)),
-+ (this.handleAddValueAdd = this.handleAddValueAdd.bind(this)),
-+ (this.handleAddValueCancel = this.handleAddValueCancel.bind(this)),
-+ (this.handleEditValue = this.handleEditValue.bind(this)),
-+ (this.onChildUpdate = this.onChildUpdate.bind(this)),
-+ (this.renderCollapsed = this.renderCollapsed.bind(this)),
-+ (this.renderNotCollapsed = this.renderNotCollapsed.bind(this));
-+ }
-+ static getDerivedStateFromProps(props, state) {
-+ return props.data !== state.data ? {data: props.data} : null;
-+ }
-+ onChildUpdate(childKey, childData) {
-+ let {data, keyPath} = this.state;
-+ (data[childKey] = childData), this.setState({data});
-+ let {onUpdate} = this.props,
-+ size = keyPath.length;
-+ onUpdate(keyPath[size - 1], data);
-+ }
-+ handleAddMode() {
-+ this.setState({addFormVisible: !0});
-+ }
-+ handleAddValueCancel() {
-+ this.setState({addFormVisible: !1});
-+ }
-+ handleAddValueAdd({key, newValue}) {
-+ let {data, keyPath, nextDeep: deep} = this.state,
-+ {beforeAddAction, logger: logger4} = this.props;
-+ beforeAddAction(key, keyPath, deep, newValue)
-+ .then(() => {
-+ (data[key] = newValue),
-+ this.setState({data}),
-+ this.handleAddValueCancel();
-+ let {onUpdate, onDeltaUpdate} = this.props;
-+ onUpdate(keyPath[keyPath.length - 1], data),
-+ onDeltaUpdate({type: ADD_DELTA_TYPE, keyPath, deep, key, newValue});
-+ })
-+ .catch(logger4.error);
-+ }
-+ handleRemoveValue(key) {
-+ return () => {
-+ let {beforeRemoveAction, logger: logger4} = this.props,
-+ {data, keyPath, nextDeep: deep} = this.state,
-+ oldValue = data[key];
-+ beforeRemoveAction(key, keyPath, deep, oldValue)
-+ .then(() => {
-+ let deltaUpdateResult = {
-+ keyPath,
-+ deep,
-+ key,
-+ oldValue,
-+ type: REMOVE_DELTA_TYPE,
-+ };
-+ delete data[key], this.setState({data});
-+ let {onUpdate, onDeltaUpdate} = this.props;
-+ onUpdate(keyPath[keyPath.length - 1], data),
-+ onDeltaUpdate(deltaUpdateResult);
-+ })
-+ .catch(logger4.error);
-+ };
-+ }
-+ handleCollapseMode() {
-+ this.setState((state) => ({collapsed: !state.collapsed}));
-+ }
-+ handleEditValue({key, value: value2}) {
-+ return new Promise((resolve, reject) => {
-+ let {beforeUpdateAction} = this.props,
-+ {data, keyPath, nextDeep: deep} = this.state,
-+ oldValue = data[key];
-+ beforeUpdateAction(key, keyPath, deep, oldValue, value2)
-+ .then(() => {
-+ (data[key] = value2), this.setState({data});
-+ let {onUpdate, onDeltaUpdate} = this.props;
-+ onUpdate(keyPath[keyPath.length - 1], data),
-+ onDeltaUpdate({
-+ type: UPDATE_DELTA_TYPE,
-+ keyPath,
-+ deep,
-+ key,
-+ newValue: value2,
-+ oldValue,
-+ }),
-+ resolve();
-+ })
-+ .catch(reject);
-+ });
-+ }
-+ renderCollapsed() {
-+ let {name, keyPath, deep, data} = this.state,
-+ {handleRemove, readOnly, dataType, getStyle, minusMenuElement} =
-+ this.props,
-+ {minus, collapsed} = getStyle(name, data, keyPath, deep, dataType),
-+ keyList = Object.getOwnPropertyNames(data),
-+ isReadOnly = readOnly(name, data, keyPath, deep, dataType),
-+ removeItemButton = cloneElement(minusMenuElement, {
-+ onClick: handleRemove,
-+ className: 'rejt-minus-menu',
-+ style: minus,
-+ });
-+ return React17.createElement(
-+ 'span',
-+ {className: 'rejt-collapsed'},
-+ React17.createElement(
-+ 'span',
-+ {
-+ className: 'rejt-collapsed-text',
-+ style: collapsed,
-+ onClick: this.handleCollapseMode,
-+ },
-+ '{...}',
-+ ' ',
-+ keyList.length,
-+ ' ',
-+ keyList.length === 1 ? 'key' : 'keys'
-+ ),
-+ !isReadOnly && removeItemButton
-+ );
-+ }
-+ renderNotCollapsed() {
-+ let {name, data, keyPath, deep, nextDeep, addFormVisible} = this.state,
-+ {
-+ isCollapsed,
-+ handleRemove,
-+ onDeltaUpdate,
-+ readOnly,
-+ getStyle,
-+ dataType,
-+ addButtonElement,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ textareaElementGenerator,
-+ minusMenuElement,
-+ plusMenuElement,
-+ beforeRemoveAction,
-+ beforeAddAction,
-+ beforeUpdateAction,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ } = this.props,
-+ {minus, plus, addForm, ul, delimiter} = getStyle(
-+ name,
-+ data,
-+ keyPath,
-+ deep,
-+ dataType
-+ ),
-+ keyList = Object.getOwnPropertyNames(data),
-+ isReadOnly = readOnly(name, data, keyPath, deep, dataType),
-+ addItemButton = cloneElement(plusMenuElement, {
-+ onClick: this.handleAddMode,
-+ className: 'rejt-plus-menu',
-+ style: plus,
-+ }),
-+ removeItemButton = cloneElement(minusMenuElement, {
-+ onClick: handleRemove,
-+ className: 'rejt-minus-menu',
-+ style: minus,
-+ }),
-+ list = keyList.map((key) =>
-+ React17.createElement(JsonNode, {
-+ key,
-+ name: key,
-+ data: data[key],
-+ keyPath,
-+ deep: nextDeep,
-+ isCollapsed,
-+ handleRemove: this.handleRemoveValue(key),
-+ handleUpdateValue: this.handleEditValue,
-+ onUpdate: this.onChildUpdate,
-+ onDeltaUpdate,
-+ readOnly,
-+ getStyle,
-+ addButtonElement,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator,
-+ textareaElementGenerator,
-+ minusMenuElement,
-+ plusMenuElement,
-+ beforeRemoveAction,
-+ beforeAddAction,
-+ beforeUpdateAction,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ })
-+ );
-+ return React17.createElement(
-+ 'span',
-+ {className: 'rejt-not-collapsed'},
-+ React17.createElement(
-+ 'span',
-+ {className: 'rejt-not-collapsed-delimiter', style: delimiter},
-+ '{'
-+ ),
-+ !isReadOnly && addItemButton,
-+ React17.createElement(
-+ 'ul',
-+ {className: 'rejt-not-collapsed-list', style: ul},
-+ list
-+ ),
-+ !isReadOnly &&
-+ addFormVisible &&
-+ React17.createElement(
-+ 'div',
-+ {className: 'rejt-add-form', style: addForm},
-+ React17.createElement(JsonAddValue, {
-+ handleAdd: this.handleAddValueAdd,
-+ handleCancel: this.handleAddValueCancel,
-+ addButtonElement,
-+ cancelButtonElement,
-+ inputElementGenerator,
-+ keyPath,
-+ deep,
-+ onSubmitValueParser,
-+ })
-+ ),
-+ React17.createElement(
-+ 'span',
-+ {className: 'rejt-not-collapsed-delimiter', style: delimiter},
-+ '}'
-+ ),
-+ !isReadOnly && removeItemButton
-+ );
-+ }
-+ render() {
-+ let {name, collapsed, data, keyPath, deep} = this.state,
-+ {getStyle, dataType} = this.props,
-+ value2 = collapsed ? this.renderCollapsed() : this.renderNotCollapsed(),
-+ style = getStyle(name, data, keyPath, deep, dataType);
-+ return React17.createElement(
-+ 'div',
-+ {className: 'rejt-object-node'},
-+ React17.createElement(
-+ 'span',
-+ {onClick: this.handleCollapseMode},
-+ React17.createElement(
-+ 'span',
-+ {className: 'rejt-name', style: style.name},
-+ name,
-+ ' :',
-+ ' '
-+ )
-+ ),
-+ value2
-+ );
-+ }
-+};
-+JsonObject.defaultProps = {
-+ keyPath: [],
-+ deep: 0,
-+ minusMenuElement: React17.createElement('span', null, ' - '),
-+ plusMenuElement: React17.createElement('span', null, ' + '),
-+};
-+var JsonValue = class extends Component {
-+ constructor(props) {
-+ super(props);
-+ let keyPath = [...props.keyPath, props.name];
-+ (this.state = {
-+ value: props.value,
-+ name: props.name,
-+ keyPath,
-+ deep: props.deep,
-+ editEnabled: !1,
-+ inputRef: null,
-+ }),
-+ (this.handleEditMode = this.handleEditMode.bind(this)),
-+ (this.refInput = this.refInput.bind(this)),
-+ (this.handleCancelEdit = this.handleCancelEdit.bind(this)),
-+ (this.handleEdit = this.handleEdit.bind(this)),
-+ (this.onKeydown = this.onKeydown.bind(this));
-+ }
-+ static getDerivedStateFromProps(props, state) {
-+ return props.value !== state.value ? {value: props.value} : null;
-+ }
-+ componentDidUpdate() {
-+ let {
-+ editEnabled,
-+ inputRef,
-+ name,
-+ value: value2,
-+ keyPath,
-+ deep,
-+ } = this.state,
-+ {readOnly, dataType} = this.props,
-+ isReadOnly = readOnly(name, value2, keyPath, deep, dataType);
-+ editEnabled &&
-+ !isReadOnly &&
-+ typeof inputRef.focus == 'function' &&
-+ inputRef.focus();
-+ }
-+ componentDidMount() {
-+ document.addEventListener('keydown', this.onKeydown);
-+ }
-+ componentWillUnmount() {
-+ document.removeEventListener('keydown', this.onKeydown);
-+ }
-+ onKeydown(event) {
-+ event.altKey ||
-+ event.ctrlKey ||
-+ event.metaKey ||
-+ event.shiftKey ||
-+ event.repeat ||
-+ ((event.code === 'Enter' || event.key === 'Enter') &&
-+ (event.preventDefault(), this.handleEdit()),
-+ (event.code === 'Escape' || event.key === 'Escape') &&
-+ (event.preventDefault(), this.handleCancelEdit()));
-+ }
-+ handleEdit() {
-+ let {
-+ handleUpdateValue,
-+ originalValue,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ keyPath,
-+ } = this.props,
-+ {inputRef, name, deep} = this.state;
-+ if (!inputRef) return;
-+ let newValue = onSubmitValueParser(!0, keyPath, deep, name, inputRef.value);
-+ handleUpdateValue({value: newValue, key: name})
-+ .then(() => {
-+ isComponentWillChange(originalValue, newValue) ||
-+ this.handleCancelEdit();
-+ })
-+ .catch(logger4.error);
-+ }
-+ handleEditMode() {
-+ this.setState({editEnabled: !0});
-+ }
-+ refInput(node) {
-+ this.state.inputRef = node;
-+ }
-+ handleCancelEdit() {
-+ this.setState({editEnabled: !1});
-+ }
-+ render() {
-+ let {name, value: value2, editEnabled, keyPath, deep} = this.state,
-+ {
-+ handleRemove,
-+ originalValue,
-+ readOnly,
-+ dataType,
-+ getStyle,
-+ editButtonElement,
-+ cancelButtonElement,
-+ inputElementGenerator,
-+ minusMenuElement,
-+ keyPath: comeFromKeyPath,
-+ } = this.props,
-+ style = getStyle(name, originalValue, keyPath, deep, dataType),
-+ isReadOnly = readOnly(name, originalValue, keyPath, deep, dataType),
-+ isEditing = editEnabled && !isReadOnly,
-+ inputElement = inputElementGenerator(
-+ VALUE,
-+ comeFromKeyPath,
-+ deep,
-+ name,
-+ originalValue,
-+ dataType
-+ ),
-+ editButtonElementLayout = cloneElement(editButtonElement, {
-+ onClick: this.handleEdit,
-+ }),
-+ cancelButtonElementLayout = cloneElement(cancelButtonElement, {
-+ onClick: this.handleCancelEdit,
-+ }),
-+ inputElementLayout = cloneElement(inputElement, {
-+ ref: this.refInput,
-+ defaultValue: JSON.stringify(originalValue),
-+ }),
-+ minusMenuLayout = cloneElement(minusMenuElement, {
-+ onClick: handleRemove,
-+ className: 'rejt-minus-menu',
-+ style: style.minus,
-+ });
-+ return React17.createElement(
-+ 'li',
-+ {className: 'rejt-value-node', style: style.li},
-+ React17.createElement(
-+ 'span',
-+ {className: 'rejt-name', style: style.name},
-+ name,
-+ ' : '
-+ ),
-+ isEditing
-+ ? React17.createElement(
-+ 'span',
-+ {className: 'rejt-edit-form', style: style.editForm},
-+ inputElementLayout,
-+ ' ',
-+ cancelButtonElementLayout,
-+ editButtonElementLayout
-+ )
-+ : React17.createElement(
-+ 'span',
-+ {
-+ className: 'rejt-value',
-+ style: style.value,
-+ onClick: isReadOnly ? null : this.handleEditMode,
-+ },
-+ String(value2)
-+ ),
-+ !isReadOnly && !isEditing && minusMenuLayout
-+ );
-+ }
-+};
-+JsonValue.defaultProps = {
-+ keyPath: [],
-+ deep: 0,
-+ handleUpdateValue: () => Promise.resolve(),
-+ editButtonElement: React17.createElement('button', null, 'e'),
-+ cancelButtonElement: React17.createElement('button', null, 'c'),
-+ minusMenuElement: React17.createElement('span', null, ' - '),
-+};
-+var object = {
-+ minus: {color: 'red'},
-+ plus: {color: 'green'},
-+ collapsed: {color: 'grey'},
-+ delimiter: {},
-+ ul: {padding: '0px', margin: '0 0 0 25px', listStyle: 'none'},
-+ name: {color: '#2287CD'},
-+ addForm: {},
-+ },
-+ array = {
-+ minus: {color: 'red'},
-+ plus: {color: 'green'},
-+ collapsed: {color: 'grey'},
-+ delimiter: {},
-+ ul: {padding: '0px', margin: '0 0 0 25px', listStyle: 'none'},
-+ name: {color: '#2287CD'},
-+ addForm: {},
-+ },
-+ value = {
-+ minus: {color: 'red'},
-+ editForm: {},
-+ value: {color: '#7bba3d'},
-+ li: {minHeight: '22px', lineHeight: '22px', outline: '0px'},
-+ name: {color: '#2287CD'},
-+ };
-+function parse3(string) {
-+ let result = string;
-+ if (result.indexOf('function') === 0) return (0, eval)(`(${result})`);
-+ try {
-+ result = JSON.parse(string);
-+ } catch {}
-+ return result;
-+}
-+var JsonTree = class extends Component {
-+ constructor(props) {
-+ super(props),
-+ (this.state = {data: props.data, rootName: props.rootName}),
-+ (this.onUpdate = this.onUpdate.bind(this)),
-+ (this.removeRoot = this.removeRoot.bind(this));
-+ }
-+ static getDerivedStateFromProps(props, state) {
-+ return props.data !== state.data || props.rootName !== state.rootName
-+ ? {data: props.data, rootName: props.rootName}
-+ : null;
-+ }
-+ onUpdate(key, data) {
-+ this.setState({data}), this.props.onFullyUpdate(data);
-+ }
-+ removeRoot() {
-+ this.onUpdate(null, null);
-+ }
-+ render() {
-+ let {data, rootName} = this.state,
-+ {
-+ isCollapsed,
-+ onDeltaUpdate,
-+ readOnly,
-+ getStyle,
-+ addButtonElement,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElement,
-+ textareaElement,
-+ minusMenuElement,
-+ plusMenuElement,
-+ beforeRemoveAction,
-+ beforeAddAction,
-+ beforeUpdateAction,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ fallback = null,
-+ } = this.props,
-+ dataType = getObjectType(data),
-+ readOnlyFunction = readOnly;
-+ rootName = rootName.slice(rootName.indexOf('-') + 1);
-+ getObjectType(readOnly) === 'Boolean' &&
-+ (readOnlyFunction = () => readOnly);
-+ let inputElementFunction = inputElement;
-+ inputElement &&
-+ getObjectType(inputElement) !== 'Function' &&
-+ (inputElementFunction = () => inputElement);
-+ let textareaElementFunction = textareaElement;
-+ return (
-+ textareaElement &&
-+ getObjectType(textareaElement) !== 'Function' &&
-+ (textareaElementFunction = () => textareaElement),
-+ dataType === 'Object' || dataType === 'Array'
-+ ? React17.createElement(
-+ 'div',
-+ {className: 'rejt-tree'},
-+ React17.createElement(JsonNode, {
-+ data,
-+ name: rootName,
-+ deep: -1,
-+ isCollapsed,
-+ onUpdate: this.onUpdate,
-+ onDeltaUpdate,
-+ readOnly: readOnlyFunction,
-+ getStyle,
-+ addButtonElement,
-+ cancelButtonElement,
-+ editButtonElement,
-+ inputElementGenerator: inputElementFunction,
-+ textareaElementGenerator: textareaElementFunction,
-+ minusMenuElement,
-+ plusMenuElement,
-+ handleRemove: this.removeRoot,
-+ beforeRemoveAction,
-+ beforeAddAction,
-+ beforeUpdateAction,
-+ logger: logger4,
-+ onSubmitValueParser,
-+ })
-+ )
-+ : fallback
-+ );
-+ }
-+};
-+JsonTree.defaultProps = {
-+ rootName: 'root',
-+ isCollapsed: (keyPath, deep) => deep !== -1,
-+ getStyle: (keyName, data, keyPath, deep, dataType) => {
-+ switch (dataType) {
-+ case 'Object':
-+ case 'Error':
-+ return object;
-+ case 'Array':
-+ return array;
-+ default:
-+ return value;
-+ }
-+ },
-+ readOnly: () => !1,
-+ onFullyUpdate: () => {},
-+ onDeltaUpdate: () => {},
-+ beforeRemoveAction: () => Promise.resolve(),
-+ beforeAddAction: () => Promise.resolve(),
-+ beforeUpdateAction: () => Promise.resolve(),
-+ logger: {error: () => {}},
-+ onSubmitValueParser: (isEditMode, keyPath, deep, name, rawValue) =>
-+ parse3(rawValue),
-+ inputElement: () => React17.createElement('input', null),
-+ textareaElement: () => React17.createElement('textarea', null),
-+ fallback: null,
-+};
-+var {window: globalWindow2} = global,
-+ Wrapper6 = styled.div(({theme}) => ({
-+ position: 'relative',
-+ display: 'flex',
-+ '&[aria-readonly="true"]': {opacity: 0.5},
-+ '.rejt-tree': {marginLeft: '1rem', fontSize: '13px'},
-+ '.rejt-value-node, .rejt-object-node > .rejt-collapsed, .rejt-array-node > .rejt-collapsed, .rejt-object-node > .rejt-not-collapsed, .rejt-array-node > .rejt-not-collapsed':
-+ {'& > svg': {opacity: 0, transition: 'opacity 0.2s'}},
-+ '.rejt-value-node:hover, .rejt-object-node:hover > .rejt-collapsed, .rejt-array-node:hover > .rejt-collapsed, .rejt-object-node:hover > .rejt-not-collapsed, .rejt-array-node:hover > .rejt-not-collapsed':
-+ {'& > svg': {opacity: 1}},
-+ '.rejt-edit-form button': {display: 'none'},
-+ '.rejt-add-form': {marginLeft: 10},
-+ '.rejt-add-value-node': {display: 'inline-flex', alignItems: 'center'},
-+ '.rejt-name': {lineHeight: '22px'},
-+ '.rejt-not-collapsed-delimiter': {lineHeight: '22px'},
-+ '.rejt-plus-menu': {marginLeft: 5},
-+ '.rejt-object-node > span > *, .rejt-array-node > span > *': {
-+ position: 'relative',
-+ zIndex: 2,
-+ },
-+ '.rejt-object-node, .rejt-array-node': {position: 'relative'},
-+ '.rejt-object-node > span:first-of-type::after, .rejt-array-node > span:first-of-type::after, .rejt-collapsed::before, .rejt-not-collapsed::before':
-+ {
-+ content: '""',
-+ position: 'absolute',
-+ top: 0,
-+ display: 'block',
-+ width: '100%',
-+ marginLeft: '-1rem',
-+ padding: '0 4px 0 1rem',
-+ height: 22,
-+ },
-+ '.rejt-collapsed::before, .rejt-not-collapsed::before': {
-+ zIndex: 1,
-+ background: 'transparent',
-+ borderRadius: 4,
-+ transition: 'background 0.2s',
-+ pointerEvents: 'none',
-+ opacity: 0.1,
-+ },
-+ '.rejt-object-node:hover, .rejt-array-node:hover': {
-+ '& > .rejt-collapsed::before, & > .rejt-not-collapsed::before': {
-+ background: theme.color.secondary,
-+ },
-+ },
-+ '.rejt-collapsed::after, .rejt-not-collapsed::after': {
-+ content: '""',
-+ position: 'absolute',
-+ display: 'inline-block',
-+ pointerEvents: 'none',
-+ width: 0,
-+ height: 0,
-+ },
-+ '.rejt-collapsed::after': {
-+ left: -8,
-+ top: 8,
-+ borderTop: '3px solid transparent',
-+ borderBottom: '3px solid transparent',
-+ borderLeft: '3px solid rgba(153,153,153,0.6)',
-+ },
-+ '.rejt-not-collapsed::after': {
-+ left: -10,
-+ top: 10,
-+ borderTop: '3px solid rgba(153,153,153,0.6)',
-+ borderLeft: '3px solid transparent',
-+ borderRight: '3px solid transparent',
-+ },
-+ '.rejt-value': {
-+ display: 'inline-block',
-+ border: '1px solid transparent',
-+ borderRadius: 4,
-+ margin: '1px 0',
-+ padding: '0 4px',
-+ cursor: 'text',
-+ color: theme.color.defaultText,
-+ },
-+ '.rejt-value-node:hover > .rejt-value': {
-+ background: theme.color.lighter,
-+ borderColor: theme.appBorderColor,
-+ },
-+ })),
-+ ButtonInline = styled.button(({theme, primary}) => ({
-+ border: 0,
-+ height: 20,
-+ margin: 1,
-+ borderRadius: 4,
-+ background: primary ? theme.color.secondary : 'transparent',
-+ color: primary ? theme.color.lightest : theme.color.dark,
-+ fontWeight: primary ? 'bold' : 'normal',
-+ cursor: 'pointer',
-+ order: primary ? 'initial' : 9,
-+ })),
-+ ActionAddIcon = styled(AddIcon)(({theme, disabled}) => ({
-+ display: 'inline-block',
-+ verticalAlign: 'middle',
-+ width: 15,
-+ height: 15,
-+ padding: 3,
-+ marginLeft: 5,
-+ cursor: disabled ? 'not-allowed' : 'pointer',
-+ color: theme.textMutedColor,
-+ '&:hover': disabled ? {} : {color: theme.color.ancillary},
-+ 'svg + &': {marginLeft: 0},
-+ })),
-+ ActionSubstractIcon = styled(SubtractIcon)(({theme, disabled}) => ({
-+ display: 'inline-block',
-+ verticalAlign: 'middle',
-+ width: 15,
-+ height: 15,
-+ padding: 3,
-+ marginLeft: 5,
-+ cursor: disabled ? 'not-allowed' : 'pointer',
-+ color: theme.textMutedColor,
-+ '&:hover': disabled ? {} : {color: theme.color.negative},
-+ 'svg + &': {marginLeft: 0},
-+ })),
-+ Input = styled.input(({theme, placeholder}) => ({
-+ outline: 0,
-+ margin: placeholder ? 1 : '1px 0',
-+ padding: '3px 4px',
-+ color: theme.color.defaultText,
-+ background: theme.background.app,
-+ border: `1px solid ${theme.appBorderColor}`,
-+ borderRadius: 4,
-+ lineHeight: '14px',
-+ width: placeholder === 'Key' ? 80 : 120,
-+ '&:focus': {border: `1px solid ${theme.color.secondary}`},
-+ })),
-+ RawButton = styled(IconButton)(({theme}) => ({
-+ position: 'absolute',
-+ zIndex: 2,
-+ top: 2,
-+ right: 2,
-+ height: 21,
-+ padding: '0 3px',
-+ background: theme.background.bar,
-+ border: `1px solid ${theme.appBorderColor}`,
-+ borderRadius: 3,
-+ color: theme.textMutedColor,
-+ fontSize: '9px',
-+ fontWeight: 'bold',
-+ textDecoration: 'none',
-+ span: {marginLeft: 3, marginTop: 1},
-+ })),
-+ RawInput = styled(Form.Textarea)(({theme}) => ({
-+ flex: 1,
-+ padding: '7px 6px',
-+ fontFamily: theme.typography.fonts.mono,
-+ fontSize: '12px',
-+ lineHeight: '18px',
-+ '&::placeholder': {
-+ fontFamily: theme.typography.fonts.base,
-+ fontSize: '13px',
-+ },
-+ '&:placeholder-shown': {padding: '7px 10px'},
-+ })),
-+ ENTER_EVENT = {
-+ bubbles: !0,
-+ cancelable: !0,
-+ key: 'Enter',
-+ code: 'Enter',
-+ keyCode: 13,
-+ },
-+ dispatchEnterKey = (event) => {
-+ event.currentTarget.dispatchEvent(
-+ new globalWindow2.KeyboardEvent('keydown', ENTER_EVENT)
-+ );
-+ },
-+ selectValue = (event) => {
-+ event.currentTarget.select();
-+ },
-+ getCustomStyleFunction = (theme) => () => ({
-+ name: {color: theme.color.secondary},
-+ collapsed: {color: theme.color.dark},
-+ ul: {listStyle: 'none', margin: '0 0 0 1rem', padding: 0},
-+ li: {outline: 0},
-+ }),
-+ ObjectControl = ({name, value: value2, onChange, argType}) => {
-+ let theme = useTheme(),
-+ data = useMemo(() => value2 && cloneDeep(value2), [value2]),
-+ hasData = data != null,
-+ [showRaw, setShowRaw] = useState(false),
-+ [parseError, setParseError] = useState(null),
-+ readonly = !!argType?.table?.readonly,
-+ updateRaw = useCallback(
-+ (raw) => {
-+ try {
-+ raw && onChange(JSON.parse(raw)), setParseError(void 0);
-+ } catch (e) {
-+ setParseError(e);
-+ }
-+ },
-+ [onChange]
-+ ),
-+ [forceVisible, setForceVisible] = useState(!1),
-+ onForceVisible = useCallback(() => {
-+ onChange({}), setForceVisible(!0);
-+ }, [setForceVisible]),
-+ htmlElRef = useRef(null);
-+ if (
-+ (useEffect(() => {
-+ forceVisible && htmlElRef.current && htmlElRef.current.select();
-+ }, [forceVisible]),
-+ !hasData)
-+ )
-+ return React17.createElement(
-+ Button,
-+ {
-+ disabled: readonly,
-+ id: getControlSetterButtonId(name),
-+ onClick: onForceVisible,
-+ },
-+ 'Set object'
-+ );
-+ let rawJSONForm = React17.createElement(RawInput, {
-+ ref: htmlElRef,
-+ id: getControlId(name),
-+ name,
-+ defaultValue: value2 === null ? '' : JSON.stringify(value2, null, 2),
-+ onBlur: (event) => updateRaw(event.target.value),
-+ placeholder: 'Edit JSON string...',
-+ autoFocus: forceVisible,
-+ valid: parseError ? 'error' : null,
-+ readOnly: readonly,
-+ }),
-+ isObjectOrArray =
-+ Array.isArray(value2) ||
-+ (typeof value2 == 'object' && value2?.constructor === Object);
-+ return React17.createElement(
-+ Wrapper6,
-+ {'aria-readonly': readonly},
-+ isObjectOrArray &&
-+ React17.createElement(
-+ RawButton,
-+ {
-+ onClick: (e) => {
-+ e.preventDefault(), setShowRaw((v) => !v);
-+ },
-+ },
-+ showRaw
-+ ? React17.createElement(EyeCloseIcon, null)
-+ : React17.createElement(EyeIcon, null),
-+ React17.createElement('span', null, 'RAW')
-+ ),
-+ showRaw
-+ ? rawJSONForm
-+ : React17.createElement(JsonTree, {
-+ readOnly: readonly || !isObjectOrArray,
-+ isCollapsed: isObjectOrArray ? void 0 : () => !0,
-+ data,
-+ rootName: name,
-+ onFullyUpdate: onChange,
-+ getStyle: getCustomStyleFunction(theme),
-+ cancelButtonElement: React17.createElement(
-+ ButtonInline,
-+ {type: 'button'},
-+ 'Cancel'
-+ ),
-+ editButtonElement: React17.createElement(
-+ ButtonInline,
-+ {type: 'submit'},
-+ 'Save'
-+ ),
-+ addButtonElement: React17.createElement(
-+ ButtonInline,
-+ {type: 'submit', primary: !0},
-+ 'Save'
-+ ),
-+ plusMenuElement: React17.createElement(ActionAddIcon, null),
-+ minusMenuElement: React17.createElement(ActionSubstractIcon, null),
-+ inputElement: (_, __, ___, key) =>
-+ key
-+ ? React17.createElement(Input, {
-+ onFocus: selectValue,
-+ onBlur: dispatchEnterKey,
-+ })
-+ : React17.createElement(Input, null),
-+ fallback: rawJSONForm,
-+ })
-+ );
-+ };
-+var RangeInput = styled.input(({theme, min, max, value: value2, disabled}) => ({
-+ '&': {width: '100%', backgroundColor: 'transparent', appearance: 'none'},
-+ '&::-webkit-slider-runnable-track': {
-+ background:
-+ theme.base === 'light'
-+ ? `linear-gradient(to right,
-+ ${theme.color.green} 0%, ${theme.color.green} ${((value2 - min) / (max - min)) * 100}%,
-+ ${darken(0.02, theme.input.background)} ${((value2 - min) / (max - min)) * 100}%,
-+ ${darken(0.02, theme.input.background)} 100%)`
-+ : `linear-gradient(to right,
-+ ${theme.color.green} 0%, ${theme.color.green} ${((value2 - min) / (max - min)) * 100}%,
-+ ${lighten(0.02, theme.input.background)} ${((value2 - min) / (max - min)) * 100}%,
-+ ${lighten(0.02, theme.input.background)} 100%)`,
-+ boxShadow: `${theme.appBorderColor} 0 0 0 1px inset`,
-+ borderRadius: 6,
-+ width: '100%',
-+ height: 6,
-+ cursor: disabled ? 'not-allowed' : 'pointer',
-+ },
-+ '&::-webkit-slider-thumb': {
-+ marginTop: '-6px',
-+ width: 16,
-+ height: 16,
-+ border: `1px solid ${rgba(theme.appBorderColor, 0.2)}`,
-+ borderRadius: '50px',
-+ boxShadow: `0 1px 3px 0px ${rgba(theme.appBorderColor, 0.2)}`,
-+ cursor: disabled ? 'not-allowed' : 'grab',
-+ appearance: 'none',
-+ background: `${theme.input.background}`,
-+ transition: 'all 150ms ease-out',
-+ '&:hover': {
-+ background: `${darken(0.05, theme.input.background)}`,
-+ transform: 'scale3d(1.1, 1.1, 1.1) translateY(-1px)',
-+ transition: 'all 50ms ease-out',
-+ },
-+ '&:active': {
-+ background: `${theme.input.background}`,
-+ transform: 'scale3d(1, 1, 1) translateY(0px)',
-+ cursor: disabled ? 'not-allowed' : 'grab',
-+ },
-+ },
-+ '&:focus': {
-+ outline: 'none',
-+ '&::-webkit-slider-runnable-track': {
-+ borderColor: rgba(theme.color.secondary, 0.4),
-+ },
-+ '&::-webkit-slider-thumb': {
-+ borderColor: theme.color.secondary,
-+ boxShadow: `0 0px 5px 0px ${theme.color.secondary}`,
-+ },
-+ },
-+ '&::-moz-range-track': {
-+ background:
-+ theme.base === 'light'
-+ ? `linear-gradient(to right,
-+ ${theme.color.green} 0%, ${theme.color.green} ${((value2 - min) / (max - min)) * 100}%,
-+ ${darken(0.02, theme.input.background)} ${((value2 - min) / (max - min)) * 100}%,
-+ ${darken(0.02, theme.input.background)} 100%)`
-+ : `linear-gradient(to right,
-+ ${theme.color.green} 0%, ${theme.color.green} ${((value2 - min) / (max - min)) * 100}%,
-+ ${lighten(0.02, theme.input.background)} ${((value2 - min) / (max - min)) * 100}%,
-+ ${lighten(0.02, theme.input.background)} 100%)`,
-+ boxShadow: `${theme.appBorderColor} 0 0 0 1px inset`,
-+ borderRadius: 6,
-+ width: '100%',
-+ height: 6,
-+ cursor: disabled ? 'not-allowed' : 'pointer',
-+ outline: 'none',
-+ },
-+ '&::-moz-range-thumb': {
-+ width: 16,
-+ height: 16,
-+ border: `1px solid ${rgba(theme.appBorderColor, 0.2)}`,
-+ borderRadius: '50px',
-+ boxShadow: `0 1px 3px 0px ${rgba(theme.appBorderColor, 0.2)}`,
-+ cursor: disabled ? 'not-allowed' : 'grap',
-+ background: `${theme.input.background}`,
-+ transition: 'all 150ms ease-out',
-+ '&:hover': {
-+ background: `${darken(0.05, theme.input.background)}`,
-+ transform: 'scale3d(1.1, 1.1, 1.1) translateY(-1px)',
-+ transition: 'all 50ms ease-out',
-+ },
-+ '&:active': {
-+ background: `${theme.input.background}`,
-+ transform: 'scale3d(1, 1, 1) translateY(0px)',
-+ cursor: 'grabbing',
-+ },
-+ },
-+ '&::-ms-track': {
-+ background:
-+ theme.base === 'light'
-+ ? `linear-gradient(to right,
-+ ${theme.color.green} 0%, ${theme.color.green} ${((value2 - min) / (max - min)) * 100}%,
-+ ${darken(0.02, theme.input.background)} ${((value2 - min) / (max - min)) * 100}%,
-+ ${darken(0.02, theme.input.background)} 100%)`
-+ : `linear-gradient(to right,
-+ ${theme.color.green} 0%, ${theme.color.green} ${((value2 - min) / (max - min)) * 100}%,
-+ ${lighten(0.02, theme.input.background)} ${((value2 - min) / (max - min)) * 100}%,
-+ ${lighten(0.02, theme.input.background)} 100%)`,
-+ boxShadow: `${theme.appBorderColor} 0 0 0 1px inset`,
-+ color: 'transparent',
-+ width: '100%',
-+ height: '6px',
-+ cursor: 'pointer',
-+ },
-+ '&::-ms-fill-lower': {borderRadius: 6},
-+ '&::-ms-fill-upper': {borderRadius: 6},
-+ '&::-ms-thumb': {
-+ width: 16,
-+ height: 16,
-+ background: `${theme.input.background}`,
-+ border: `1px solid ${rgba(theme.appBorderColor, 0.2)}`,
-+ borderRadius: 50,
-+ cursor: 'grab',
-+ marginTop: 0,
-+ },
-+ '@supports (-ms-ime-align:auto)': {'input[type=range]': {margin: '0'}},
-+ })),
-+ RangeLabel = styled.span({
-+ paddingLeft: 5,
-+ paddingRight: 5,
-+ fontSize: 12,
-+ whiteSpace: 'nowrap',
-+ fontFeatureSettings: 'tnum',
-+ fontVariantNumeric: 'tabular-nums',
-+ '[aria-readonly=true] &': {opacity: 0.5},
-+ }),
-+ RangeCurrentAndMaxLabel = styled(RangeLabel)(
-+ ({numberOFDecimalsPlaces, max}) => ({
-+ width: `${numberOFDecimalsPlaces + max.toString().length * 2 + 3}ch`,
-+ textAlign: 'right',
-+ flexShrink: 0,
-+ })
-+ ),
-+ RangeWrapper = styled.div({
-+ display: 'flex',
-+ alignItems: 'center',
-+ width: '100%',
-+ });
-+function getNumberOfDecimalPlaces(number) {
-+ let match = number.toString().match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);
-+ return match
-+ ? Math.max(0, (match[1] ? match[1].length : 0) - (match[2] ? +match[2] : 0))
-+ : 0;
-+}
-+var RangeControl = ({
-+ name,
-+ value: value2,
-+ onChange,
-+ min = 0,
-+ max = 100,
-+ step = 1,
-+ onBlur,
-+ onFocus,
-+ argType,
-+}) => {
-+ let handleChange = (event) => {
-+ onChange(parse2(event.target.value));
-+ },
-+ hasValue = value2 !== void 0,
-+ numberOFDecimalsPlaces = useMemo(
-+ () => getNumberOfDecimalPlaces(step),
-+ [step]
-+ ),
-+ readonly = !!argType?.table?.readonly;
-+ return React17.createElement(
-+ RangeWrapper,
-+ {'aria-readonly': readonly},
-+ React17.createElement(RangeLabel, null, min),
-+ React17.createElement(RangeInput, {
-+ id: getControlId(name),
-+ type: 'range',
-+ disabled: readonly,
-+ onChange: handleChange,
-+ name,
-+ value: value2,
-+ min,
-+ max,
-+ step,
-+ onFocus,
-+ onBlur,
-+ }),
-+ React17.createElement(
-+ RangeCurrentAndMaxLabel,
-+ {numberOFDecimalsPlaces, max},
-+ hasValue ? value2.toFixed(numberOFDecimalsPlaces) : '--',
-+ ' / ',
-+ max
-+ )
-+ );
-+};
-+var Wrapper7 = styled.label({display: 'flex'}),
-+ MaxLength = styled.div(({isMaxed}) => ({
-+ marginLeft: '0.75rem',
-+ paddingTop: '0.35rem',
-+ color: isMaxed ? 'red' : void 0,
-+ })),
-+ TextControl = ({
-+ name,
-+ value: value2,
-+ onChange,
-+ onFocus,
-+ onBlur,
-+ maxLength,
-+ argType,
-+ }) => {
-+ let handleChange = (event) => {
-+ onChange(event.target.value);
-+ },
-+ readonly = !!argType?.table?.readonly,
-+ [forceVisible, setForceVisible] = useState(!1),
-+ onForceVisible = useCallback(() => {
-+ onChange(''), setForceVisible(!0);
-+ }, [setForceVisible]);
-+ if (value2 === void 0)
-+ return React17.createElement(
-+ Button,
-+ {
-+ variant: 'outline',
-+ size: 'medium',
-+ disabled: readonly,
-+ id: getControlSetterButtonId(name),
-+ onClick: onForceVisible,
-+ },
-+ 'Set string'
-+ );
-+ let isValid = typeof value2 == 'string';
-+ return React17.createElement(
-+ Wrapper7,
-+ null,
-+ React17.createElement(Form.Textarea, {
-+ id: getControlId(name),
-+ maxLength,
-+ onChange: handleChange,
-+ disabled: readonly,
-+ size: 'flex',
-+ placeholder: 'Edit string...',
-+ autoFocus: forceVisible,
-+ valid: isValid ? null : 'error',
-+ name,
-+ value: isValid ? value2 : '',
-+ onFocus,
-+ onBlur,
-+ }),
-+ maxLength &&
-+ React17.createElement(
-+ MaxLength,
-+ {isMaxed: value2?.length === maxLength},
-+ value2?.length ?? 0,
-+ ' / ',
-+ maxLength
-+ )
-+ );
-+ };
-+var FileInput = styled(Form.Input)({padding: 10});
-+function revokeOldUrls(urls) {
-+ urls.forEach((url) => {
-+ url.startsWith('blob:') && URL.revokeObjectURL(url);
-+ });
-+}
-+var FilesControl = ({
-+ onChange,
-+ name,
-+ accept = 'image/*',
-+ value: value2,
-+ argType,
-+}) => {
-+ let inputElement = useRef(null),
-+ readonly = argType?.control?.readOnly;
-+ function handleFileChange(e) {
-+ if (!e.target.files) return;
-+ let fileUrls = Array.from(e.target.files).map((file) =>
-+ URL.createObjectURL(file)
-+ );
-+ onChange(fileUrls), revokeOldUrls(value2);
-+ }
-+ return (
-+ useEffect(() => {
-+ value2 == null &&
-+ inputElement.current &&
-+ (inputElement.current.value = null);
-+ }, [value2, name]),
-+ React17.createElement(FileInput, {
-+ ref: inputElement,
-+ id: getControlId(name),
-+ type: 'file',
-+ name,
-+ multiple: !0,
-+ disabled: readonly,
-+ onChange: handleFileChange,
-+ accept,
-+ size: 'flex',
-+ })
-+ );
-+};
-+var LazyColorControl = lazy(() => import('./Color-PRSJMWNM.mjs')),
-+ ColorControl = (props) =>
-+ React17.createElement(
-+ Suspense,
-+ {fallback: React17.createElement('div', null)},
-+ React17.createElement(LazyColorControl, {...props})
-+ );
-+var Controls2 = {
-+ array: ObjectControl,
-+ object: ObjectControl,
-+ boolean: BooleanControl,
-+ color: ColorControl,
-+ date: DateControl,
-+ number: NumberControl,
-+ check: OptionsControl,
-+ 'inline-check': OptionsControl,
-+ radio: OptionsControl,
-+ 'inline-radio': OptionsControl,
-+ select: OptionsControl,
-+ 'multi-select': OptionsControl,
-+ range: RangeControl,
-+ text: TextControl,
-+ file: FilesControl,
-+ },
-+ NoControl = () => React17.createElement(React17.Fragment, null, '-'),
-+ ArgControl = ({row, arg, updateArgs, isHovered}) => {
-+ let {key, control} = row,
-+ [isFocused, setFocused] = useState(!1),
-+ [boxedValue, setBoxedValue] = useState({value: arg});
-+ useEffect(() => {
-+ isFocused || setBoxedValue({value: arg});
-+ }, [isFocused, arg]);
-+ let onChange = useCallback(
-+ (argVal) => (
-+ setBoxedValue({value: argVal}), updateArgs({[key]: argVal}), argVal
-+ ),
-+ [updateArgs, key]
-+ ),
-+ onBlur = useCallback(() => setFocused(!1), []),
-+ onFocus = useCallback(() => setFocused(!0), []);
-+ if (!control || control.disable) {
-+ let canBeSetup =
-+ control?.disable !== !0 && row?.type?.name !== 'function';
-+ return isHovered && canBeSetup
-+ ? React17.createElement(
-+ Link,
-+ {
-+ href: 'https://storybook.js.org/docs/react/essentials/controls',
-+ target: '_blank',
-+ withArrow: !0,
-+ },
-+ 'Setup controls'
-+ )
-+ : React17.createElement(NoControl, null);
-+ }
-+ let props = {
-+ name: key,
-+ argType: row,
-+ value: boxedValue.value,
-+ onChange,
-+ onBlur,
-+ onFocus,
-+ },
-+ Control = Controls2[control.type] || NoControl;
-+ return React17.createElement(Control, {
-+ ...props,
-+ ...control,
-+ controlType: control.type,
-+ });
-+ };
-+var Name = styled.span({fontWeight: 'bold'}),
-+ Required = styled.span(({theme}) => ({
-+ color: theme.color.negative,
-+ fontFamily: theme.typography.fonts.mono,
-+ cursor: 'help',
-+ })),
-+ Description = styled.div(({theme}) => ({
-+ '&&': {p: {margin: '0 0 10px 0'}, a: {color: theme.color.secondary}},
-+ code: {
-+ ...codeCommon({theme}),
-+ fontSize: 12,
-+ fontFamily: theme.typography.fonts.mono,
-+ },
-+ '& code': {margin: 0, display: 'inline-block'},
-+ '& pre > code': {whiteSpace: 'pre-wrap'},
-+ })),
-+ Type = styled.div(({theme, hasDescription}) => ({
-+ color:
-+ theme.base === 'light'
-+ ? transparentize(0.1, theme.color.defaultText)
-+ : transparentize(0.2, theme.color.defaultText),
-+ marginTop: hasDescription ? 4 : 0,
-+ })),
-+ TypeWithJsDoc = styled.div(({theme, hasDescription}) => ({
-+ color:
-+ theme.base === 'light'
-+ ? transparentize(0.1, theme.color.defaultText)
-+ : transparentize(0.2, theme.color.defaultText),
-+ marginTop: hasDescription ? 12 : 0,
-+ marginBottom: 12,
-+ })),
-+ StyledTd = styled.td(({theme, expandable}) => ({
-+ paddingLeft: expandable ? '40px !important' : '20px !important',
-+ })),
-+ toSummary = (value2) =>
-+ value2 && {summary: typeof value2 == 'string' ? value2 : value2.name},
-+ ArgRow = (props) => {
-+ let [isHovered, setIsHovered] = useState(!1),
-+ {row, updateArgs, compact, expandable, initialExpandedArgs} = props,
-+ {name, description} = row,
-+ table = row.table || {},
-+ type = table.type || toSummary(row.type),
-+ defaultValue = table.defaultValue || row.defaultValue,
-+ required = row.type?.required,
-+ hasDescription = description != null && description !== '';
-+ return React17.createElement(
-+ 'tr',
-+ {
-+ onMouseEnter: () => setIsHovered(!0),
-+ onMouseLeave: () => setIsHovered(!1),
-+ },
-+ React17.createElement(
-+ StyledTd,
-+ {expandable},
-+ React17.createElement(Name, null, name),
-+ required
-+ ? React17.createElement(Required, {title: 'Required'}, '*')
-+ : null
-+ ),
-+ compact
-+ ? null
-+ : React17.createElement(
-+ 'td',
-+ null,
-+ hasDescription &&
-+ React17.createElement(
-+ Description,
-+ null,
-+ React17.createElement(Markdown, null, description)
-+ ),
-+ table.jsDocTags != null
-+ ? React17.createElement(
-+ React17.Fragment,
-+ null,
-+ React17.createElement(
-+ TypeWithJsDoc,
-+ {hasDescription},
-+ React17.createElement(ArgValue, {
-+ value: type,
-+ initialExpandedArgs,
-+ })
-+ ),
-+ React17.createElement(ArgJsDoc, {tags: table.jsDocTags})
-+ )
-+ : React17.createElement(
-+ Type,
-+ {hasDescription},
-+ React17.createElement(ArgValue, {
-+ value: type,
-+ initialExpandedArgs,
-+ })
-+ )
-+ ),
-+ compact
-+ ? null
-+ : React17.createElement(
-+ 'td',
-+ null,
-+ React17.createElement(ArgValue, {
-+ value: defaultValue,
-+ initialExpandedArgs,
-+ })
-+ ),
-+ updateArgs
-+ ? React17.createElement(
-+ 'td',
-+ null,
-+ React17.createElement(ArgControl, {...props, isHovered})
-+ )
-+ : null
-+ );
-+ };
-+var ExpanderIconDown = styled(ChevronDownIcon$1)(({theme}) => ({
-+ marginRight: 8,
-+ marginLeft: -10,
-+ marginTop: -2,
-+ height: 12,
-+ width: 12,
-+ color:
-+ theme.base === 'light'
-+ ? transparentize(0.25, theme.color.defaultText)
-+ : transparentize(0.3, theme.color.defaultText),
-+ border: 'none',
-+ display: 'inline-block',
-+ })),
-+ ExpanderIconRight = styled(ChevronRightIcon)(({theme}) => ({
-+ marginRight: 8,
-+ marginLeft: -10,
-+ marginTop: -2,
-+ height: 12,
-+ width: 12,
-+ color:
-+ theme.base === 'light'
-+ ? transparentize(0.25, theme.color.defaultText)
-+ : transparentize(0.3, theme.color.defaultText),
-+ border: 'none',
-+ display: 'inline-block',
-+ })),
-+ FlexWrapper = styled.span(({theme}) => ({
-+ display: 'flex',
-+ lineHeight: '20px',
-+ alignItems: 'center',
-+ })),
-+ Section = styled.td(({theme}) => ({
-+ position: 'relative',
-+ letterSpacing: '0.35em',
-+ textTransform: 'uppercase',
-+ fontWeight: theme.typography.weight.bold,
-+ fontSize: theme.typography.size.s1 - 1,
-+ color:
-+ theme.base === 'light'
-+ ? transparentize(0.4, theme.color.defaultText)
-+ : transparentize(0.6, theme.color.defaultText),
-+ background: `${theme.background.app} !important`,
-+ '& ~ td': {background: `${theme.background.app} !important`},
-+ })),
-+ Subsection = styled.td(({theme}) => ({
-+ position: 'relative',
-+ fontWeight: theme.typography.weight.bold,
-+ fontSize: theme.typography.size.s2 - 1,
-+ background: theme.background.app,
-+ })),
-+ StyledTd2 = styled.td(() => ({position: 'relative'})),
-+ StyledTr = styled.tr(({theme}) => ({
-+ '&:hover > td': {
-+ backgroundColor: `${lighten(0.005, theme.background.app)} !important`,
-+ boxShadow: `${theme.color.mediumlight} 0 - 1px 0 0 inset`,
-+ cursor: 'row-resize',
-+ },
-+ })),
-+ ClickIntercept = styled.button(() => ({
-+ background: 'none',
-+ border: 'none',
-+ padding: '0',
-+ font: 'inherit',
-+ position: 'absolute',
-+ top: 0,
-+ bottom: 0,
-+ left: 0,
-+ right: 0,
-+ height: '100%',
-+ width: '100%',
-+ color: 'transparent',
-+ cursor: 'row-resize !important',
-+ })),
-+ SectionRow = ({
-+ level = 'section',
-+ label,
-+ children,
-+ initialExpanded = !0,
-+ colSpan = 3,
-+ }) => {
-+ let [expanded, setExpanded] = useState(initialExpanded),
-+ Level = level === 'subsection' ? Subsection : Section,
-+ itemCount = children?.length || 0,
-+ caption =
-+ level === 'subsection'
-+ ? `${itemCount} item${itemCount !== 1 ? 's' : ''}`
-+ : '',
-+ helperText = `${expanded ? 'Hide' : 'Show'} ${level === 'subsection' ? itemCount : label} item${itemCount !== 1 ? 's' : ''}`;
-+ return React17.createElement(
-+ React17.Fragment,
-+ null,
-+ React17.createElement(
-+ StyledTr,
-+ {title: helperText},
-+ React17.createElement(
-+ Level,
-+ {colSpan: 1},
-+ React17.createElement(
-+ ClickIntercept,
-+ {onClick: (e) => setExpanded(!expanded), tabIndex: 0},
-+ helperText
-+ ),
-+ React17.createElement(
-+ FlexWrapper,
-+ null,
-+ expanded
-+ ? React17.createElement(ExpanderIconDown, null)
-+ : React17.createElement(ExpanderIconRight, null),
-+ label
-+ )
-+ ),
-+ React17.createElement(
-+ StyledTd2,
-+ {colSpan: colSpan - 1},
-+ React17.createElement(
-+ ClickIntercept,
-+ {
-+ onClick: (e) => setExpanded(!expanded),
-+ tabIndex: -1,
-+ style: {outline: 'none'},
-+ },
-+ helperText
-+ ),
-+ expanded ? null : caption
-+ )
-+ ),
-+ expanded ? children : null
-+ );
-+ };
-+var Row = styled.div(({theme}) => ({
-+ display: 'flex',
-+ gap: 16,
-+ borderBottom: `1px solid ${theme.appBorderColor}`,
-+ '&:last-child': {borderBottom: 0},
-+ })),
-+ Column = styled.div(({numColumn}) => ({
-+ display: 'flex',
-+ flexDirection: 'column',
-+ flex: numColumn || 1,
-+ gap: 5,
-+ padding: '12px 20px',
-+ })),
-+ SkeletonText = styled.div(({theme, width, height}) => ({
-+ animation: `${theme.animation.glow} 1.5s ease-in-out infinite`,
-+ background: theme.appBorderColor,
-+ width: width || '100%',
-+ height: height || 16,
-+ borderRadius: 3,
-+ })),
-+ columnWidth = [2, 4, 2, 2],
-+ Skeleton = () =>
-+ React17.createElement(
-+ React17.Fragment,
-+ null,
-+ React17.createElement(
-+ Row,
-+ null,
-+ React17.createElement(
-+ Column,
-+ {numColumn: columnWidth[0]},
-+ React17.createElement(SkeletonText, {width: '60%'})
-+ ),
-+ React17.createElement(
-+ Column,
-+ {numColumn: columnWidth[1]},
-+ React17.createElement(SkeletonText, {width: '30%'})
-+ ),
-+ React17.createElement(
-+ Column,
-+ {numColumn: columnWidth[2]},
-+ React17.createElement(SkeletonText, {width: '60%'})
-+ ),
-+ React17.createElement(
-+ Column,
-+ {numColumn: columnWidth[3]},
-+ React17.createElement(SkeletonText, {width: '60%'})
-+ )
-+ ),
-+ React17.createElement(
-+ Row,
-+ null,
-+ React17.createElement(
-+ Column,
-+ {numColumn: columnWidth[0]},
-+ React17.createElement(SkeletonText, {width: '60%'})
-+ ),
-+ React17.createElement(
-+ Column,
-+ {numColumn: columnWidth[1]},
-+ React17.createElement(SkeletonText, {width: '80%'}),
-+ React17.createElement(SkeletonText, {width: '30%'})
-+ ),
-+ React17.createElement(
-+ Column,
-+ {numColumn: columnWidth[2]},
-+ React17.createElement(SkeletonText, {width: '60%'})
-+ ),
-+ React17.createElement(
-+ Column,
-+ {numColumn: columnWidth[3]},
-+ React17.createElement(SkeletonText, {width: '60%'})
-+ )
-+ ),
-+ React17.createElement(
-+ Row,
-+ null,
-+ React17.createElement(
-+ Column,
-+ {numColumn: columnWidth[0]},
-+ React17.createElement(SkeletonText, {width: '60%'})
-+ ),
-+ React17.createElement(
-+ Column,
-+ {numColumn: columnWidth[1]},
-+ React17.createElement(SkeletonText, {width: '80%'}),
-+ React17.createElement(SkeletonText, {width: '30%'})
-+ ),
-+ React17.createElement(
-+ Column,
-+ {numColumn: columnWidth[2]},
-+ React17.createElement(SkeletonText, {width: '60%'})
-+ ),
-+ React17.createElement(
-+ Column,
-+ {numColumn: columnWidth[3]},
-+ React17.createElement(SkeletonText, {width: '60%'})
-+ )
-+ ),
-+ React17.createElement(
-+ Row,
-+ null,
-+ React17.createElement(
-+ Column,
-+ {numColumn: columnWidth[0]},
-+ React17.createElement(SkeletonText, {width: '60%'})
-+ ),
-+ React17.createElement(
-+ Column,
-+ {numColumn: columnWidth[1]},
-+ React17.createElement(SkeletonText, {width: '80%'}),
-+ React17.createElement(SkeletonText, {width: '30%'})
-+ ),
-+ React17.createElement(
-+ Column,
-+ {numColumn: columnWidth[2]},
-+ React17.createElement(SkeletonText, {width: '60%'})
-+ ),
-+ React17.createElement(
-+ Column,
-+ {numColumn: columnWidth[3]},
-+ React17.createElement(SkeletonText, {width: '60%'})
-+ )
-+ )
-+ );
-+var Wrapper8 = styled.div(({inAddonPanel, theme}) => ({
-+ height: inAddonPanel ? '100%' : 'auto',
-+ display: 'flex',
-+ border: inAddonPanel ? 'none' : `1px solid ${theme.appBorderColor}`,
-+ borderRadius: inAddonPanel ? 0 : theme.appBorderRadius,
-+ padding: inAddonPanel ? 0 : 40,
-+ alignItems: 'center',
-+ justifyContent: 'center',
-+ flexDirection: 'column',
-+ gap: 15,
-+ background: theme.background.content,
-+ boxShadow: 'rgba(0, 0, 0, 0.10) 0 1px 3px 0',
-+ })),
-+ Links = styled.div(({theme}) => ({
-+ display: 'flex',
-+ fontSize: theme.typography.size.s2 - 1,
-+ gap: 25,
-+ })),
-+ Divider = styled.div(({theme}) => ({
-+ width: 1,
-+ height: 16,
-+ backgroundColor: theme.appBorderColor,
-+ })),
-+ Empty = ({inAddonPanel}) => {
-+ let [isLoading, setIsLoading] = useState(!0);
-+ return (
-+ useEffect(() => {
-+ let load = setTimeout(() => {
-+ setIsLoading(!1);
-+ }, 100);
-+ return () => clearTimeout(load);
-+ }, []),
-+ isLoading
-+ ? null
-+ : React17.createElement(
-+ Wrapper8,
-+ {inAddonPanel},
-+ React17.createElement(EmptyTabContent, {
-+ title: inAddonPanel
-+ ? 'Interactive story playground'
-+ : "Args table with interactive controls couldn't be auto-generated",
-+ description: React17.createElement(
-+ React17.Fragment,
-+ null,
-+ "Controls give you an easy to use interface to test your components. Set your story args and you'll see controls appearing here automatically."
-+ ),
-+ footer: React17.createElement(
-+ Links,
-+ null,
-+ inAddonPanel &&
-+ React17.createElement(
-+ React17.Fragment,
-+ null,
-+ React17.createElement(
-+ Link,
-+ {
-+ href: 'https://youtu.be/0gOfS6K0x0E',
-+ target: '_blank',
-+ withArrow: !0,
-+ },
-+ React17.createElement(VideoIcon, null),
-+ ' Watch 5m video'
-+ ),
-+ React17.createElement(Divider, null),
-+ React17.createElement(
-+ Link,
-+ {
-+ href: 'https://storybook.js.org/docs/essentials/controls',
-+ target: '_blank',
-+ withArrow: !0,
-+ },
-+ React17.createElement(DocumentIcon, null),
-+ ' Read docs'
-+ )
-+ ),
-+ !inAddonPanel &&
-+ React17.createElement(
-+ Link,
-+ {
-+ href: 'https://storybook.js.org/docs/essentials/controls',
-+ target: '_blank',
-+ withArrow: !0,
-+ },
-+ React17.createElement(DocumentIcon, null),
-+ ' Learn how to set that up'
-+ )
-+ ),
-+ })
-+ )
-+ );
-+ };
-+var TableWrapper = styled.table(({theme, compact, inAddonPanel}) => ({
-+ '&&': {
-+ borderSpacing: 0,
-+ color: theme.color.defaultText,
-+ 'td, th': {
-+ padding: 0,
-+ border: 'none',
-+ verticalAlign: 'top',
-+ textOverflow: 'ellipsis',
-+ },
-+ fontSize: theme.typography.size.s2 - 1,
-+ lineHeight: '20px',
-+ textAlign: 'left',
-+ width: '100%',
-+ marginTop: inAddonPanel ? 0 : 25,
-+ marginBottom: inAddonPanel ? 0 : 40,
-+ 'thead th:first-of-type, td:first-of-type': {width: '25%'},
-+ 'th:first-of-type, td:first-of-type': {paddingLeft: 20},
-+ 'th:nth-of-type(2), td:nth-of-type(2)': {
-+ ...(compact ? null : {width: '35%'}),
-+ },
-+ 'td:nth-of-type(3)': {...(compact ? null : {width: '15%'})},
-+ 'th:last-of-type, td:last-of-type': {
-+ paddingRight: 20,
-+ ...(compact ? null : {width: '25%'}),
-+ },
-+ th: {
-+ color:
-+ theme.base === 'light'
-+ ? transparentize(0.25, theme.color.defaultText)
-+ : transparentize(0.45, theme.color.defaultText),
-+ paddingTop: 10,
-+ paddingBottom: 10,
-+ paddingLeft: 15,
-+ paddingRight: 15,
-+ },
-+ td: {
-+ paddingTop: '10px',
-+ paddingBottom: '10px',
-+ '&:not(:first-of-type)': {paddingLeft: 15, paddingRight: 15},
-+ '&:last-of-type': {paddingRight: 20},
-+ },
-+ marginLeft: inAddonPanel ? 0 : 1,
-+ marginRight: inAddonPanel ? 0 : 1,
-+ tbody: {
-+ ...(inAddonPanel
-+ ? null
-+ : {
-+ filter:
-+ theme.base === 'light'
-+ ? 'drop-shadow(0px 1px 3px rgba(0, 0, 0, 0.10))'
-+ : 'drop-shadow(0px 1px 3px rgba(0, 0, 0, 0.20))',
-+ }),
-+ '> tr > *': {
-+ background: theme.background.content,
-+ borderTop: `1px solid ${theme.appBorderColor}`,
-+ },
-+ ...(inAddonPanel
-+ ? null
-+ : {
-+ '> tr:first-of-type > *': {
-+ borderBlockStart: `1px solid ${theme.appBorderColor}`,
-+ },
-+ '> tr:last-of-type > *': {
-+ borderBlockEnd: `1px solid ${theme.appBorderColor}`,
-+ },
-+ '> tr > *:first-of-type': {
-+ borderInlineStart: `1px solid ${theme.appBorderColor}`,
-+ },
-+ '> tr > *:last-of-type': {
-+ borderInlineEnd: `1px solid ${theme.appBorderColor}`,
-+ },
-+ '> tr:first-of-type > td:first-of-type': {
-+ borderTopLeftRadius: theme.appBorderRadius,
-+ },
-+ '> tr:first-of-type > td:last-of-type': {
-+ borderTopRightRadius: theme.appBorderRadius,
-+ },
-+ '> tr:last-of-type > td:first-of-type': {
-+ borderBottomLeftRadius: theme.appBorderRadius,
-+ },
-+ '> tr:last-of-type > td:last-of-type': {
-+ borderBottomRightRadius: theme.appBorderRadius,
-+ },
-+ }),
-+ },
-+ },
-+ })),
-+ StyledIconButton = styled(IconButton)(({theme}) => ({
-+ margin: '-4px -12px -4px 0',
-+ })),
-+ ControlHeadingWrapper = styled.span({
-+ display: 'flex',
-+ justifyContent: 'space-between',
-+ });
-+var sortFns = {
-+ alpha: (a, b) => a.name.localeCompare(b.name),
-+ requiredFirst: (a, b) =>
-+ +!!b.type?.required - +!!a.type?.required || a.name.localeCompare(b.name),
-+ none: void 0,
-+ },
-+ groupRows = (rows, sort) => {
-+ let sections = {ungrouped: [], ungroupedSubsections: {}, sections: {}};
-+ if (!rows) return sections;
-+ Object.entries(rows).forEach(([key, row]) => {
-+ let {category, subcategory} = row?.table || {};
-+ if (category) {
-+ let section = sections.sections[category] || {
-+ ungrouped: [],
-+ subsections: {},
-+ };
-+ if (!subcategory) section.ungrouped.push({key, ...row});
-+ else {
-+ let subsection = section.subsections[subcategory] || [];
-+ subsection.push({key, ...row}),
-+ (section.subsections[subcategory] = subsection);
-+ }
-+ sections.sections[category] = section;
-+ } else if (subcategory) {
-+ let subsection = sections.ungroupedSubsections[subcategory] || [];
-+ subsection.push({key, ...row}),
-+ (sections.ungroupedSubsections[subcategory] = subsection);
-+ } else sections.ungrouped.push({key, ...row});
-+ });
-+ let sortFn = sortFns[sort],
-+ sortSubsection = (record) =>
-+ sortFn
-+ ? Object.keys(record).reduce(
-+ (acc, cur) => ({...acc, [cur]: record[cur].sort(sortFn)}),
-+ {}
-+ )
-+ : record;
-+ return {
-+ ungrouped: sections.ungrouped.sort(sortFn),
-+ ungroupedSubsections: sortSubsection(sections.ungroupedSubsections),
-+ sections: Object.keys(sections.sections).reduce(
-+ (acc, cur) => ({
-+ ...acc,
-+ [cur]: {
-+ ungrouped: sections.sections[cur].ungrouped.sort(sortFn),
-+ subsections: sortSubsection(sections.sections[cur].subsections),
-+ },
-+ }),
-+ {}
-+ ),
-+ };
-+ },
-+ safeIncludeConditionalArg = (row, args, globals) => {
-+ try {
-+ return includeConditionalArg(row, args, globals);
-+ } catch (err) {
-+ return once.warn(err.message), !1;
-+ }
-+ },
-+ ArgsTable = (props) => {
-+ let {
-+ updateArgs,
-+ resetArgs,
-+ compact,
-+ inAddonPanel,
-+ initialExpandedArgs,
-+ sort = 'none',
-+ isLoading,
-+ } = props;
-+ if ('error' in props) {
-+ let {error} = props;
-+ return React17.createElement(
-+ EmptyBlock,
-+ null,
-+ error,
-+ '\xA0',
-+ React17.createElement(
-+ Link,
-+ {
-+ href: 'http://storybook.js.org/docs/',
-+ target: '_blank',
-+ withArrow: !0,
-+ },
-+ React17.createElement(DocumentIcon, null),
-+ ' Read the docs'
-+ )
-+ );
-+ }
-+ if (isLoading) return React17.createElement(Skeleton, null);
-+ let {rows, args, globals} = 'rows' in props && props,
-+ groups = groupRows(
-+ pickBy(
-+ rows,
-+ (row) =>
-+ !row?.table?.disable &&
-+ safeIncludeConditionalArg(row, args || {}, globals || {})
-+ ),
-+ sort
-+ ),
-+ hasNoUngrouped = groups.ungrouped.length === 0,
-+ hasNoSections = Object.entries(groups.sections).length === 0,
-+ hasNoUngroupedSubsections =
-+ Object.entries(groups.ungroupedSubsections).length === 0;
-+ if (hasNoUngrouped && hasNoSections && hasNoUngroupedSubsections)
-+ return React17.createElement(Empty, {inAddonPanel});
-+ let colSpan = 1;
-+ updateArgs && (colSpan += 1), compact || (colSpan += 2);
-+ let expandable = Object.keys(groups.sections).length > 0,
-+ common = {updateArgs, compact, inAddonPanel, initialExpandedArgs};
-+ return React17.createElement(
-+ ResetWrapper,
-+ null,
-+ React17.createElement(
-+ TableWrapper,
-+ {compact, inAddonPanel, className: 'docblock-argstable sb-unstyled'},
-+ React17.createElement(
-+ 'thead',
-+ {className: 'docblock-argstable-head'},
-+ React17.createElement(
-+ 'tr',
-+ null,
-+ React17.createElement(
-+ 'th',
-+ null,
-+ React17.createElement('span', null, 'Name')
-+ ),
-+ compact
-+ ? null
-+ : React17.createElement(
-+ 'th',
-+ null,
-+ React17.createElement('span', null, 'Description')
-+ ),
-+ compact
-+ ? null
-+ : React17.createElement(
-+ 'th',
-+ null,
-+ React17.createElement('span', null, 'Default')
-+ ),
-+ updateArgs
-+ ? React17.createElement(
-+ 'th',
-+ null,
-+ React17.createElement(
-+ ControlHeadingWrapper,
-+ null,
-+ 'Control',
-+ ' ',
-+ !isLoading &&
-+ resetArgs &&
-+ React17.createElement(
-+ StyledIconButton,
-+ {onClick: () => resetArgs(), title: 'Reset controls'},
-+ React17.createElement(UndoIcon, {'aria-hidden': !0})
-+ )
-+ )
-+ )
-+ : null
-+ )
-+ ),
-+ React17.createElement(
-+ 'tbody',
-+ {className: 'docblock-argstable-body'},
-+ groups.ungrouped.map((row) =>
-+ React17.createElement(ArgRow, {
-+ key: row.key,
-+ row,
-+ arg: args && args[row.key],
-+ ...common,
-+ })
-+ ),
-+ Object.entries(groups.ungroupedSubsections).map(
-+ ([subcategory, subsection]) =>
-+ React17.createElement(
-+ SectionRow,
-+ {
-+ key: subcategory,
-+ label: subcategory,
-+ level: 'subsection',
-+ colSpan,
-+ },
-+ subsection.map((row) =>
-+ React17.createElement(ArgRow, {
-+ key: row.key,
-+ row,
-+ arg: args && args[row.key],
-+ expandable,
-+ ...common,
-+ })
-+ )
-+ )
-+ ),
-+ Object.entries(groups.sections).map(([category, section]) =>
-+ React17.createElement(
-+ SectionRow,
-+ {key: category, label: category, level: 'section', colSpan},
-+ section.ungrouped.map((row) =>
-+ React17.createElement(ArgRow, {
-+ key: row.key,
-+ row,
-+ arg: args && args[row.key],
-+ ...common,
-+ })
-+ ),
-+ Object.entries(section.subsections).map(
-+ ([subcategory, subsection]) =>
-+ React17.createElement(
-+ SectionRow,
-+ {
-+ key: subcategory,
-+ label: subcategory,
-+ level: 'subsection',
-+ colSpan,
-+ },
-+ subsection.map((row) =>
-+ React17.createElement(ArgRow, {
-+ key: row.key,
-+ row,
-+ arg: args && args[row.key],
-+ expandable,
-+ ...common,
-+ })
-+ )
-+ )
-+ )
-+ )
-+ )
-+ )
-+ )
-+ );
-+ };
-+var TabbedArgsTable = ({tabs, ...props}) => {
-+ let entries = Object.entries(tabs);
-+ return entries.length === 1
-+ ? React17.createElement(ArgsTable, {...entries[0][1], ...props})
-+ : React17.createElement(
-+ TabsState,
-+ null,
-+ entries.map((entry, index) => {
-+ let [label, table] = entry,
-+ id = `prop_table_div_${label}`,
-+ Component4 = 'div',
-+ argsTableProps = index === 0 ? props : {sort: props.sort};
-+ return React17.createElement(
-+ Component4,
-+ {key: id, id, title: label},
-+ ({active}) =>
-+ active
-+ ? React17.createElement(ArgsTable, {
-+ key: `prop_table_${label}`,
-+ ...table,
-+ ...argsTableProps,
-+ })
-+ : null
-+ );
-+ })
-+ );
-+};
-+var Label4 = styled.div(({theme}) => ({
-+ marginRight: 30,
-+ fontSize: `${theme.typography.size.s1}px`,
-+ color:
-+ theme.base === 'light'
-+ ? transparentize(0.4, theme.color.defaultText)
-+ : transparentize(0.6, theme.color.defaultText),
-+ })),
-+ Sample = styled.div({
-+ overflow: 'hidden',
-+ whiteSpace: 'nowrap',
-+ textOverflow: 'ellipsis',
-+ }),
-+ TypeSpecimen = styled.div({
-+ display: 'flex',
-+ flexDirection: 'row',
-+ alignItems: 'baseline',
-+ '&:not(:last-child)': {marginBottom: '1rem'},
-+ }),
-+ Wrapper9 = styled.div(withReset, ({theme}) => ({
-+ ...getBlockBackgroundStyle(theme),
-+ margin: '25px 0 40px',
-+ padding: '30px 20px',
-+ })),
-+ Typeset = ({fontFamily, fontSizes, fontWeight, sampleText, ...props}) =>
-+ React17.createElement(
-+ Wrapper9,
-+ {...props, className: 'docblock-typeset sb-unstyled'},
-+ fontSizes.map((size) =>
-+ React17.createElement(
-+ TypeSpecimen,
-+ {key: size},
-+ React17.createElement(Label4, null, size),
-+ React17.createElement(
-+ Sample,
-+ {style: {fontFamily, fontSize: size, fontWeight, lineHeight: 1.2}},
-+ sampleText || 'Was he a beast if music could move him so?'
-+ )
-+ )
-+ )
-+ );
-+var ItemTitle = styled.div(({theme}) => ({
-+ fontWeight: theme.typography.weight.bold,
-+ color: theme.color.defaultText,
-+ })),
-+ ItemSubtitle = styled.div(({theme}) => ({
-+ color:
-+ theme.base === 'light'
-+ ? transparentize(0.2, theme.color.defaultText)
-+ : transparentize(0.6, theme.color.defaultText),
-+ })),
-+ ItemDescription = styled.div({
-+ flex: '0 0 30%',
-+ lineHeight: '20px',
-+ marginTop: 5,
-+ }),
-+ SwatchLabel = styled.div(({theme}) => ({
-+ flex: 1,
-+ textAlign: 'center',
-+ fontFamily: theme.typography.fonts.mono,
-+ fontSize: theme.typography.size.s1,
-+ lineHeight: 1,
-+ overflow: 'hidden',
-+ color:
-+ theme.base === 'light'
-+ ? transparentize(0.4, theme.color.defaultText)
-+ : transparentize(0.6, theme.color.defaultText),
-+ '> div': {
-+ display: 'inline-block',
-+ overflow: 'hidden',
-+ maxWidth: '100%',
-+ textOverflow: 'ellipsis',
-+ },
-+ span: {display: 'block', marginTop: 2},
-+ })),
-+ SwatchLabels = styled.div({display: 'flex', flexDirection: 'row'}),
-+ Swatch = styled.div(({background}) => ({
-+ position: 'relative',
-+ flex: 1,
-+ '&::before': {
-+ position: 'absolute',
-+ top: 0,
-+ left: 0,
-+ width: '100%',
-+ height: '100%',
-+ background,
-+ content: '""',
-+ },
-+ })),
-+ SwatchColors = styled.div(({theme}) => ({
-+ ...getBlockBackgroundStyle(theme),
-+ display: 'flex',
-+ flexDirection: 'row',
-+ height: 50,
-+ marginBottom: 5,
-+ overflow: 'hidden',
-+ backgroundColor: 'white',
-+ backgroundImage:
-+ 'repeating-linear-gradient(-45deg, #ccc, #ccc 1px, #fff 1px, #fff 16px)',
-+ backgroundClip: 'padding-box',
-+ })),
-+ SwatchSpecimen = styled.div({
-+ display: 'flex',
-+ flexDirection: 'column',
-+ flex: 1,
-+ position: 'relative',
-+ marginBottom: 30,
-+ }),
-+ Swatches = styled.div({flex: 1, display: 'flex', flexDirection: 'row'}),
-+ Item = styled.div({display: 'flex', alignItems: 'flex-start'}),
-+ ListName = styled.div({flex: '0 0 30%'}),
-+ ListSwatches = styled.div({flex: 1}),
-+ ListHeading = styled.div(({theme}) => ({
-+ display: 'flex',
-+ flexDirection: 'row',
-+ alignItems: 'center',
-+ paddingBottom: 20,
-+ fontWeight: theme.typography.weight.bold,
-+ color:
-+ theme.base === 'light'
-+ ? transparentize(0.4, theme.color.defaultText)
-+ : transparentize(0.6, theme.color.defaultText),
-+ })),
-+ List = styled.div(({theme}) => ({
-+ fontSize: theme.typography.size.s2,
-+ lineHeight: '20px',
-+ display: 'flex',
-+ flexDirection: 'column',
-+ }));
-+function renderSwatch(color, index) {
-+ return React17.createElement(Swatch, {
-+ key: `${color}-${index}`,
-+ title: color,
-+ background: color,
-+ });
-+}
-+function renderSwatchLabel(color, index, colorDescription) {
-+ return React17.createElement(
-+ SwatchLabel,
-+ {key: `${color}-${index}`, title: color},
-+ React17.createElement(
-+ 'div',
-+ null,
-+ color,
-+ colorDescription && React17.createElement('span', null, colorDescription)
-+ )
-+ );
-+}
-+function renderSwatchSpecimen(colors) {
-+ if (Array.isArray(colors))
-+ return React17.createElement(
-+ SwatchSpecimen,
-+ null,
-+ React17.createElement(
-+ SwatchColors,
-+ null,
-+ colors.map((color, index) => renderSwatch(color, index))
-+ ),
-+ React17.createElement(
-+ SwatchLabels,
-+ null,
-+ colors.map((color, index) => renderSwatchLabel(color, index))
-+ )
-+ );
-+ let swatchElements = [],
-+ labelElements = [];
-+ for (let colorKey in colors) {
-+ let colorValue = colors[colorKey];
-+ swatchElements.push(renderSwatch(colorValue, swatchElements.length)),
-+ labelElements.push(
-+ renderSwatchLabel(colorKey, labelElements.length, colorValue)
-+ );
-+ }
-+ return React17.createElement(
-+ SwatchSpecimen,
-+ null,
-+ React17.createElement(SwatchColors, null, swatchElements),
-+ React17.createElement(SwatchLabels, null, labelElements)
-+ );
-+}
-+var ColorItem = ({title, subtitle, colors}) =>
-+ React17.createElement(
-+ Item,
-+ null,
-+ React17.createElement(
-+ ItemDescription,
-+ null,
-+ React17.createElement(ItemTitle, null, title),
-+ React17.createElement(ItemSubtitle, null, subtitle)
-+ ),
-+ React17.createElement(Swatches, null, renderSwatchSpecimen(colors))
-+ ),
-+ ColorPalette = ({children, ...props}) =>
-+ React17.createElement(
-+ ResetWrapper,
-+ null,
-+ React17.createElement(
-+ List,
-+ {...props, className: 'docblock-colorpalette sb-unstyled'},
-+ React17.createElement(
-+ ListHeading,
-+ null,
-+ React17.createElement(ListName, null, 'Name'),
-+ React17.createElement(ListSwatches, null, 'Swatches')
-+ ),
-+ children
-+ )
-+ );
-+var ItemLabel = styled.div(({theme}) => ({
-+ fontFamily: theme.typography.fonts.base,
-+ fontSize: theme.typography.size.s2,
-+ color: theme.color.defaultText,
-+ marginLeft: 10,
-+ lineHeight: 1.2,
-+ })),
-+ ItemSpecimen = styled.div(({theme}) => ({
-+ ...getBlockBackgroundStyle(theme),
-+ overflow: 'hidden',
-+ height: 40,
-+ width: 40,
-+ display: 'flex',
-+ alignItems: 'center',
-+ justifyContent: 'center',
-+ flex: 'none',
-+ '> img, > svg': {width: 20, height: 20},
-+ })),
-+ Item2 = styled.div({
-+ display: 'inline-flex',
-+ flexDirection: 'row',
-+ alignItems: 'center',
-+ flex: '0 1 calc(20% - 10px)',
-+ minWidth: 120,
-+ margin: '0px 10px 30px 0',
-+ }),
-+ List2 = styled.div({display: 'flex', flexFlow: 'row wrap'}),
-+ IconItem = ({name, children}) =>
-+ React17.createElement(
-+ Item2,
-+ null,
-+ React17.createElement(ItemSpecimen, null, children),
-+ React17.createElement(ItemLabel, null, name)
-+ ),
-+ IconGallery = ({children, ...props}) =>
-+ React17.createElement(
-+ ResetWrapper,
-+ null,
-+ React17.createElement(
-+ List2,
-+ {...props, className: 'docblock-icongallery sb-unstyled'},
-+ children
-+ )
-+ );
-+var anchorBlockIdFromId = (storyId) => `anchor--${storyId}`,
-+ Anchor = ({storyId, children}) =>
-+ React17.createElement(
-+ 'div',
-+ {id: anchorBlockIdFromId(storyId), className: 'sb-anchor'},
-+ children
-+ );
-+global &&
-+ global.__DOCS_CONTEXT__ === void 0 &&
-+ ((global.__DOCS_CONTEXT__ = createContext(null)),
-+ (global.__DOCS_CONTEXT__.displayName = 'DocsContext'));
-+var DocsContext = global ? global.__DOCS_CONTEXT__ : createContext(null);
-+var useOf = (moduleExportOrType, validTypes) =>
-+ useContext(DocsContext).resolveOf(moduleExportOrType, validTypes);
-+var titleCase = (str) =>
-+ str
-+ .split('-')
-+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
-+ .join(''),
-+ getComponentName = (component) => {
-+ if (component)
-+ return typeof component == 'string'
-+ ? component.includes('-')
-+ ? titleCase(component)
-+ : component
-+ : component.__docgenInfo && component.__docgenInfo.displayName
-+ ? component.__docgenInfo.displayName
-+ : component.name;
-+ };
-+function scrollToElement(element, block = 'start') {
-+ element.scrollIntoView({behavior: 'smooth', block, inline: 'nearest'});
-+}
-+function extractComponentArgTypes(component, parameters) {
-+ let {extractArgTypes} = parameters.docs || {};
-+ if (!extractArgTypes)
-+ throw new Error(
-+ 'Args unsupported. See Args documentation for your framework.'
-+ );
-+ return extractArgTypes(component);
-+}
-+function getArgTypesFromResolved(resolved) {
-+ if (resolved.type === 'component') {
-+ let {
-+ component: component2,
-+ projectAnnotations: {parameters: parameters2},
-+ } = resolved;
-+ return {
-+ argTypes: extractComponentArgTypes(component2, parameters2),
-+ parameters: parameters2,
-+ component: component2,
-+ };
-+ }
-+ if (resolved.type === 'meta') {
-+ let {
-+ preparedMeta: {
-+ argTypes: argTypes2,
-+ parameters: parameters2,
-+ component: component2,
-+ subcomponents: subcomponents2,
-+ },
-+ } = resolved;
-+ return {
-+ argTypes: argTypes2,
-+ parameters: parameters2,
-+ component: component2,
-+ subcomponents: subcomponents2,
-+ };
-+ }
-+ let {
-+ story: {argTypes, parameters, component, subcomponents},
-+ } = resolved;
-+ return {argTypes, parameters, component, subcomponents};
-+}
-+var ArgTypes = (props) => {
-+ let {of} = props;
-+ if ('of' in props && of === void 0)
-+ throw new Error(
-+ 'Unexpected `of={undefined}`, did you mistype a CSF file reference?'
-+ );
-+ let resolved = useOf(of || 'meta'),
-+ {argTypes, parameters, component, subcomponents} =
-+ getArgTypesFromResolved(resolved),
-+ argTypesParameters = parameters.docs?.argTypes || {},
-+ include = props.include ?? argTypesParameters.include,
-+ exclude = props.exclude ?? argTypesParameters.exclude,
-+ sort = props.sort ?? argTypesParameters.sort,
-+ filteredArgTypes = filterArgTypes(argTypes, include, exclude);
-+ if (!(!!subcomponents && Object.keys(subcomponents).length > 0))
-+ return React17.createElement(ArgsTable, {rows: filteredArgTypes, sort});
-+ let mainComponentName = getComponentName(component),
-+ subcomponentTabs = Object.fromEntries(
-+ Object.entries(subcomponents).map(([key, comp]) => [
-+ key,
-+ {
-+ rows: filterArgTypes(
-+ extractComponentArgTypes(comp, parameters),
-+ include,
-+ exclude
-+ ),
-+ sort,
-+ },
-+ ])
-+ ),
-+ tabs = {
-+ [mainComponentName]: {rows: filteredArgTypes, sort},
-+ ...subcomponentTabs,
-+ };
-+ return React17.createElement(TabbedArgsTable, {tabs, sort});
-+};
-+function argsHash(args) {
-+ return stringify(args, {allowFunction: !1});
-+}
-+var SourceContext = createContext({sources: {}}),
-+ UNKNOWN_ARGS_HASH = '--unknown--',
-+ SourceContainer = ({children, channel}) => {
-+ let [sources, setSources] = useState({});
-+ return (
-+ useEffect(() => {
-+ let handleSnippetRendered = (
-+ idOrEvent,
-+ inputSource = null,
-+ inputFormat = !1
-+ ) => {
-+ let {
-+ id,
-+ args = void 0,
-+ source,
-+ format: format2,
-+ } = typeof idOrEvent == 'string'
-+ ? {id: idOrEvent, source: inputSource, format: inputFormat}
-+ : idOrEvent,
-+ hash = args ? argsHash(args) : UNKNOWN_ARGS_HASH;
-+ setSources((current) => ({
-+ ...current,
-+ [id]: {...current[id], [hash]: {code: source, format: format2}},
-+ }));
-+ };
-+ return (
-+ channel.on(SNIPPET_RENDERED, handleSnippetRendered),
-+ () => channel.off(SNIPPET_RENDERED, handleSnippetRendered)
-+ );
-+ }, []),
-+ React17.createElement(
-+ SourceContext.Provider,
-+ {value: {sources}},
-+ children
-+ )
-+ );
-+ };
-+var getStorySource = (storyId, args, sourceContext) => {
-+ let {sources} = sourceContext,
-+ sourceMap = sources?.[storyId];
-+ return (
-+ sourceMap?.[argsHash(args)] ||
-+ sourceMap?.[UNKNOWN_ARGS_HASH] || {code: ''}
-+ );
-+ },
-+ getSnippet = ({snippet, storyContext, typeFromProps, transformFromProps}) => {
-+ let {__isArgsStory: isArgsStory} = storyContext.parameters,
-+ sourceParameters = storyContext.parameters.docs?.source || {},
-+ type = typeFromProps || sourceParameters.type || SourceType.AUTO;
-+ if (sourceParameters.code !== void 0) return sourceParameters.code;
-+ let code =
-+ type === SourceType.DYNAMIC ||
-+ (type === SourceType.AUTO && snippet && isArgsStory)
-+ ? snippet
-+ : sourceParameters.originalSource || '';
-+ return (
-+ (transformFromProps ?? sourceParameters.transform)?.(
-+ code,
-+ storyContext
-+ ) || code
-+ );
-+ },
-+ useSourceProps = (props, docsContext, sourceContext) => {
-+ let story,
-+ {of} = props;
-+ if ('of' in props && of === void 0)
-+ throw new Error(
-+ 'Unexpected `of={undefined}`, did you mistype a CSF file reference?'
-+ );
-+ if (of) story = docsContext.resolveOf(of, ['story']).story;
-+ else
-+ try {
-+ story = docsContext.storyById();
-+ } catch {}
-+ let sourceParameters = story?.parameters?.docs?.source || {},
-+ {code} = props,
-+ format2 = props.format ?? sourceParameters.format,
-+ language = props.language ?? sourceParameters.language ?? 'jsx',
-+ dark = props.dark ?? sourceParameters.dark ?? !1;
-+ if (!code && !story) return {error: 'Oh no! The source is not available.'};
-+ if (code) return {code, format: format2, language, dark};
-+ let storyContext = docsContext.getStoryContext(story),
-+ argsForSource = props.__forceInitialArgs
-+ ? storyContext.initialArgs
-+ : storyContext.unmappedArgs,
-+ source = getStorySource(story.id, argsForSource, sourceContext);
-+ return (
-+ (format2 = source.format ?? story.parameters.docs?.source?.format ?? !1),
-+ {
-+ code: getSnippet({
-+ snippet: source.code,
-+ storyContext: {...storyContext, args: argsForSource},
-+ typeFromProps: props.type,
-+ transformFromProps: props.transform,
-+ }),
-+ format: format2,
-+ language,
-+ dark,
-+ }
-+ );
-+ },
-+ Source2 = (props) => {
-+ let sourceContext = useContext(SourceContext),
-+ docsContext = useContext(DocsContext),
-+ sourceProps = useSourceProps(props, docsContext, sourceContext);
-+ return React17.createElement(Source, {...sourceProps});
-+ };
-+function useStory(storyId, context) {
-+ let stories = useStories([storyId], context);
-+ return stories && stories[0];
-+}
-+function useStories(storyIds, context) {
-+ let [storiesById, setStories] = useState({});
-+ return (
-+ useEffect(() => {
-+ Promise.all(
-+ storyIds.map(async (storyId) => {
-+ let story = await context.loadStory(storyId);
-+ setStories((current) =>
-+ current[storyId] === story
-+ ? current
-+ : {...current, [storyId]: story}
-+ );
-+ })
-+ );
-+ }),
-+ storyIds.map((storyId) => {
-+ if (storiesById[storyId]) return storiesById[storyId];
-+ try {
-+ return context.storyById(storyId);
-+ } catch {
-+ return null;
-+ }
-+ })
-+ );
-+}
-+var getStoryId2 = (props, context) => {
-+ let {of, meta} = props;
-+ if ('of' in props && of === void 0)
-+ throw new Error(
-+ 'Unexpected `of={undefined}`, did you mistype a CSF file reference?'
-+ );
-+ return (
-+ meta && context.referenceMeta(meta, !1),
-+ context.resolveOf(of || 'story', ['story']).story.id
-+ );
-+ },
-+ getStoryProps = (props, story, context) => {
-+ let {parameters = {}} = story || {},
-+ {docs = {}} = parameters,
-+ storyParameters = docs.story || {};
-+ if (docs.disable) return null;
-+ if (props.inline ?? storyParameters.inline ?? !1) {
-+ let height2 = props.height ?? storyParameters.height,
-+ autoplay = props.autoplay ?? storyParameters.autoplay ?? !1;
-+ return {
-+ story,
-+ inline: !0,
-+ height: height2,
-+ autoplay,
-+ forceInitialArgs: !!props.__forceInitialArgs,
-+ primary: !!props.__primary,
-+ renderStoryToElement: context.renderStoryToElement,
-+ };
-+ }
-+ let height =
-+ props.height ??
-+ storyParameters.height ??
-+ storyParameters.iframeHeight ??
-+ '100px';
-+ return {story, inline: !1, height, primary: !!props.__primary};
-+ },
-+ Story2 = (props = {__forceInitialArgs: !1, __primary: !1}) => {
-+ let context = useContext(DocsContext),
-+ storyId = getStoryId2(props, context),
-+ story = useStory(storyId, context);
-+ if (!story) return React17.createElement(StorySkeleton, null);
-+ let storyProps = getStoryProps(props, story, context);
-+ return storyProps ? React17.createElement(Story, {...storyProps}) : null;
-+ };
-+var Canvas = (props) => {
-+ let docsContext = useContext(DocsContext),
-+ sourceContext = useContext(SourceContext),
-+ {of, source} = props;
-+ if ('of' in props && of === void 0)
-+ throw new Error(
-+ 'Unexpected `of={undefined}`, did you mistype a CSF file reference?'
-+ );
-+ let {story} = useOf(of || 'story', ['story']),
-+ sourceProps = useSourceProps(
-+ {...source, ...(of && {of})},
-+ docsContext,
-+ sourceContext
-+ ),
-+ layout =
-+ props.layout ??
-+ story.parameters.layout ??
-+ story.parameters.docs?.canvas?.layout ??
-+ 'padded',
-+ withToolbar =
-+ props.withToolbar ?? story.parameters.docs?.canvas?.withToolbar ?? !1,
-+ additionalActions =
-+ props.additionalActions ??
-+ story.parameters.docs?.canvas?.additionalActions,
-+ sourceState =
-+ props.sourceState ??
-+ story.parameters.docs?.canvas?.sourceState ??
-+ 'hidden',
-+ className = props.className ?? story.parameters.docs?.canvas?.className;
-+ return React17.createElement(
-+ Preview,
-+ {
-+ withSource: sourceState === 'none' ? void 0 : sourceProps,
-+ isExpanded: sourceState === 'shown',
-+ withToolbar,
-+ additionalActions,
-+ className,
-+ layout,
-+ },
-+ React17.createElement(Story2, {
-+ of: of || story.moduleExport,
-+ meta: props.meta,
-+ ...props.story,
-+ })
-+ );
-+};
-+var useGlobals = (story, context) => {
-+ let storyContext = context.getStoryContext(story),
-+ [globals, setGlobals] = useState(storyContext.globals);
-+ return (
-+ useEffect(() => {
-+ let onGlobalsUpdated = (changed) => {
-+ setGlobals(changed.globals);
-+ };
-+ return (
-+ context.channel.on(GLOBALS_UPDATED, onGlobalsUpdated),
-+ () => context.channel.off(GLOBALS_UPDATED, onGlobalsUpdated)
-+ );
-+ }, [context.channel]),
-+ [globals]
-+ );
-+};
-+var useArgs = (story, context) => {
-+ let result = useArgsIfDefined(story, context);
-+ if (!result) throw new Error('No result when story was defined');
-+ return result;
-+ },
-+ useArgsIfDefined = (story, context) => {
-+ let storyContext = story ? context.getStoryContext(story) : {args: {}},
-+ {id: storyId} = story || {id: 'none'},
-+ [args, setArgs] = useState(storyContext.args);
-+ useEffect(() => {
-+ let onArgsUpdated = (changed) => {
-+ changed.storyId === storyId && setArgs(changed.args);
-+ };
-+ return (
-+ context.channel.on(STORY_ARGS_UPDATED, onArgsUpdated),
-+ () => context.channel.off(STORY_ARGS_UPDATED, onArgsUpdated)
-+ );
-+ }, [storyId, context.channel]);
-+ let updateArgs = useCallback(
-+ (updatedArgs) =>
-+ context.channel.emit(UPDATE_STORY_ARGS, {storyId, updatedArgs}),
-+ [storyId, context.channel]
-+ ),
-+ resetArgs = useCallback(
-+ (argNames) =>
-+ context.channel.emit(RESET_STORY_ARGS, {storyId, argNames}),
-+ [storyId, context.channel]
-+ );
-+ return story && [args, updateArgs, resetArgs];
-+ };
-+function extractComponentArgTypes2(component, parameters) {
-+ let {extractArgTypes} = parameters.docs || {};
-+ if (!extractArgTypes)
-+ throw new Error(
-+ 'Args unsupported. See Args documentation for your framework.'
-+ );
-+ return extractArgTypes(component);
-+}
-+var Controls3 = (props) => {
-+ let {of} = props;
-+ if ('of' in props && of === void 0)
-+ throw new Error(
-+ 'Unexpected `of={undefined}`, did you mistype a CSF file reference?'
-+ );
-+ let context = useContext(DocsContext),
-+ {story} = context.resolveOf(of || 'story', ['story']),
-+ {parameters, argTypes, component, subcomponents} = story,
-+ controlsParameters = parameters.docs?.controls || {},
-+ include = props.include ?? controlsParameters.include,
-+ exclude = props.exclude ?? controlsParameters.exclude,
-+ sort = props.sort ?? controlsParameters.sort,
-+ [args, updateArgs, resetArgs] = useArgs(story, context),
-+ [globals] = useGlobals(story, context),
-+ filteredArgTypes = filterArgTypes(argTypes, include, exclude);
-+ if (!(!!subcomponents && Object.keys(subcomponents).length > 0))
-+ return Object.keys(filteredArgTypes).length > 0 ||
-+ Object.keys(args).length > 0
-+ ? React17.createElement(ArgsTable, {
-+ rows: filteredArgTypes,
-+ sort,
-+ args,
-+ globals,
-+ updateArgs,
-+ resetArgs,
-+ })
-+ : null;
-+ let mainComponentName = getComponentName(component),
-+ subcomponentTabs = Object.fromEntries(
-+ Object.entries(subcomponents).map(([key, comp]) => [
-+ key,
-+ {
-+ rows: filterArgTypes(
-+ extractComponentArgTypes2(comp, parameters),
-+ include,
-+ exclude
-+ ),
-+ sort,
-+ },
-+ ])
-+ ),
-+ tabs = {
-+ [mainComponentName]: {rows: filteredArgTypes, sort},
-+ ...subcomponentTabs,
-+ };
-+ return React17.createElement(TabbedArgsTable, {
-+ tabs,
-+ sort,
-+ args,
-+ globals,
-+ updateArgs,
-+ resetArgs,
-+ });
-+};
-+var {document: document2} = global,
-+ assertIsFn = (val) => {
-+ if (typeof val != 'function')
-+ throw new Error(`Expected story function, got: ${val}`);
-+ return val;
-+ },
-+ AddContext = (props) => {
-+ let {children, ...rest} = props,
-+ parentContext = React17.useContext(DocsContext);
-+ return React17.createElement(
-+ DocsContext.Provider,
-+ {value: {...parentContext, ...rest}},
-+ children
-+ );
-+ },
-+ CodeOrSourceMdx = ({className, children, ...rest}) => {
-+ if (
-+ typeof className != 'string' &&
-+ (typeof children != 'string' || !children.match(/[\n\r]/g))
-+ )
-+ return React17.createElement(Code, null, children);
-+ let language = className && className.split('-');
-+ return React17.createElement(Source, {
-+ language: (language && language[1]) || 'text',
-+ format: !1,
-+ code: children,
-+ ...rest,
-+ });
-+ };
-+function navigate(context, url) {
-+ context.channel.emit(NAVIGATE_URL, url);
-+}
-+var A = components.a,
-+ AnchorInPage = ({hash, children}) => {
-+ let context = useContext(DocsContext);
-+ return React17.createElement(
-+ A,
-+ {
-+ href: hash,
-+ target: '_self',
-+ onClick: (event) => {
-+ let id = hash.substring(1);
-+ document2.getElementById(id) && navigate(context, hash);
-+ },
-+ },
-+ children
-+ );
-+ },
-+ AnchorMdx = (props) => {
-+ let {href, target, children, ...rest} = props,
-+ context = useContext(DocsContext);
-+ return !href || target === '_blank' || /^https?:\/\//.test(href)
-+ ? React17.createElement(A, {...props})
-+ : href.startsWith('#')
-+ ? React17.createElement(AnchorInPage, {hash: href}, children)
-+ : React17.createElement(
-+ A,
-+ {
-+ href,
-+ onClick: (event) => {
-+ event.button === 0 &&
-+ !event.altKey &&
-+ !event.ctrlKey &&
-+ !event.metaKey &&
-+ !event.shiftKey &&
-+ (event.preventDefault(),
-+ navigate(context, event.currentTarget.getAttribute('href')));
-+ },
-+ target,
-+ ...rest,
-+ },
-+ children
-+ );
-+ },
-+ SUPPORTED_MDX_HEADERS = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'],
-+ OcticonHeaders = SUPPORTED_MDX_HEADERS.reduce(
-+ (acc, headerType) => ({
-+ ...acc,
-+ [headerType]: styled(headerType)({
-+ '& svg': {position: 'relative', top: '-0.1em', visibility: 'hidden'},
-+ '&:hover svg': {visibility: 'visible'},
-+ }),
-+ }),
-+ {}
-+ ),
-+ OcticonAnchor = styled.a(() => ({
-+ float: 'left',
-+ lineHeight: 'inherit',
-+ paddingRight: '10px',
-+ marginLeft: '-24px',
-+ color: 'inherit',
-+ })),
-+ HeaderWithOcticonAnchor = ({as, id, children, ...rest}) => {
-+ let context = useContext(DocsContext),
-+ OcticonHeader = OcticonHeaders[as],
-+ hash = `#${id}`;
-+ return React17.createElement(
-+ OcticonHeader,
-+ {id, ...rest},
-+ React17.createElement(
-+ OcticonAnchor,
-+ {
-+ 'aria-hidden': 'true',
-+ href: hash,
-+ tabIndex: -1,
-+ target: '_self',
-+ onClick: (event) => {
-+ document2.getElementById(id) && navigate(context, hash);
-+ },
-+ },
-+ React17.createElement(LinkIcon, null)
-+ ),
-+ children
-+ );
-+ },
-+ HeaderMdx = (props) => {
-+ let {as, id, children, ...rest} = props;
-+ if (id)
-+ return React17.createElement(
-+ HeaderWithOcticonAnchor,
-+ {as, id, ...rest},
-+ children
-+ );
-+ let Component4 = as,
-+ {as: omittedAs, ...withoutAs} = props;
-+ return React17.createElement(Component4, {
-+ ...nameSpaceClassNames(withoutAs, as),
-+ });
-+ },
-+ HeadersMdx = SUPPORTED_MDX_HEADERS.reduce(
-+ (acc, headerType) => ({
-+ ...acc,
-+ [headerType]: (props) =>
-+ React17.createElement(HeaderMdx, {as: headerType, ...props}),
-+ }),
-+ {}
-+ );
-+var Markdown2 = (props) => {
-+ if (!props.children) return null;
-+ if (typeof props.children != 'string')
-+ throw new Error(dedent`The Markdown block only accepts children as a single string, but children were of type: '${typeof props.children}'
- This is often caused by not wrapping the child in a template string.
-
- This is invalid:
-@@ -54,6 +5518,620 @@ var Wrapper=styled.div(withReset,({theme})=>({backgroundColor:theme.base==="ligh
- A paragraph
- \`}
-
-- `);return React17.createElement(Markdown,{...props,options:{forceBlock:!0,overrides:{code:CodeOrSourceMdx,a:AnchorMdx,...HeadersMdx,...props?.options?.overrides},...props?.options}})};var DescriptionType=(DescriptionType2=>(DescriptionType2.INFO="info",DescriptionType2.NOTES="notes",DescriptionType2.DOCGEN="docgen",DescriptionType2.AUTO="auto",DescriptionType2))(DescriptionType||{}),getDescriptionFromResolvedOf=resolvedOf=>{switch(resolvedOf.type){case"story":return resolvedOf.story.parameters.docs?.description?.story||null;case"meta":{let{parameters,component}=resolvedOf.preparedMeta,metaDescription=parameters.docs?.description?.component;return metaDescription||parameters.docs?.extractComponentDescription?.(component,{component,parameters})||null}case"component":{let{component,projectAnnotations:{parameters}}=resolvedOf;return parameters.docs?.extractComponentDescription?.(component,{component,parameters})||null}default:throw new Error(`Unrecognized module type resolved from 'useOf', got: ${resolvedOf.type}`)}},DescriptionContainer=props=>{let{of}=props;if("of"in props&&of===void 0)throw new Error("Unexpected `of={undefined}`, did you mistype a CSF file reference?");let resolvedOf=useOf(of||"meta"),markdown=getDescriptionFromResolvedOf(resolvedOf);return markdown?React17.createElement(Markdown2,null,markdown):null};var Wrapper10=styled.div(({theme})=>({width:"10rem","@media (max-width: 768px)":{display:"none"}})),Content=styled.div(({theme})=>({position:"fixed",bottom:0,top:0,width:"10rem",paddingTop:"4rem",paddingBottom:"2rem",overflowY:"auto",fontFamily:theme.typography.fonts.base,fontSize:theme.typography.size.s2,WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",WebkitTapHighlightColor:"rgba(0, 0, 0, 0)",WebkitOverflowScrolling:"touch","& *":{boxSizing:"border-box"},"& > .toc-wrapper > .toc-list":{paddingLeft:0,borderLeft:`solid 2px ${theme.color.mediumlight}`,".toc-list":{paddingLeft:0,borderLeft:`solid 2px ${theme.color.mediumlight}`,".toc-list":{paddingLeft:0,borderLeft:`solid 2px ${theme.color.mediumlight}`}}},"& .toc-list-item":{position:"relative",listStyleType:"none",marginLeft:20,paddingTop:3,paddingBottom:3},"& .toc-list-item::before":{content:'""',position:"absolute",height:"100%",top:0,left:0,transform:"translateX(calc(-2px - 20px))",borderLeft:`solid 2px ${theme.color.mediumdark}`,opacity:0,transition:"opacity 0.2s"},"& .toc-list-item.is-active-li::before":{opacity:1},"& .toc-list-item > a":{color:theme.color.defaultText,textDecoration:"none"},"& .toc-list-item.is-active-li > a":{fontWeight:600,color:theme.color.secondary,textDecoration:"none"}})),Heading=styled.p(({theme})=>({fontWeight:600,fontSize:"0.875em",color:theme.textColor,textTransform:"uppercase",marginBottom:10})),OptionalTitle=({title})=>title===null?null:typeof title=="string"?React17.createElement(Heading,null,title):title,TableOfContents=({title,disable,headingSelector,contentsSelector,ignoreSelector,unsafeTocbotOptions})=>(useEffect(()=>{let configuration={tocSelector:".toc-wrapper",contentSelector:contentsSelector??".sbdocs-content",headingSelector:headingSelector??"h3",ignoreSelector:ignoreSelector??".docs-story *, .skip-toc",headingsOffset:40,scrollSmoothOffset:-40,orderedList:!1,onClick:()=>!1,...unsafeTocbotOptions},timeout=setTimeout(()=>tocbot.init(configuration),100);return ()=>{clearTimeout(timeout),tocbot.destroy();}},[disable]),React17.createElement(React17.Fragment,null,React17.createElement(Wrapper10,null,disable?null:React17.createElement(Content,null,React17.createElement(OptionalTitle,{title:title||null}),React17.createElement("div",{className:"toc-wrapper"})))));var {document:document3,window:globalWindow3}=global,DocsContainer=({context,theme,children})=>{let toc;try{toc=context.resolveOf("meta",["meta"]).preparedMeta.parameters?.docs?.toc;}catch{toc=context?.projectAnnotations?.parameters?.docs?.toc;}return useEffect(()=>{let url;try{if(url=new URL(globalWindow3.parent.location.toString()),url.hash){let element=document3.getElementById(url.hash.substring(1));element&&setTimeout(()=>{scrollToElement(element);},200);}}catch{}}),React17.createElement(DocsContext.Provider,{value:context},React17.createElement(SourceContainer,{channel:context.channel},React17.createElement(ThemeProvider,{theme:ensure(theme)},React17.createElement(DocsPageWrapper,{toc:toc?React17.createElement(TableOfContents,{className:"sbdocs sbdocs-toc--custom",...toc}):null},children))))};var STORY_KIND_PATH_SEPARATOR=/\s*\/\s*/,extractTitle=title=>{let groups=title.trim().split(STORY_KIND_PATH_SEPARATOR);return groups?.[groups?.length-1]||title},Title2=props=>{let{children,of}=props;if("of"in props&&of===void 0)throw new Error("Unexpected `of={undefined}`, did you mistype a CSF file reference?");let preparedMeta;try{preparedMeta=useOf(of||"meta",["meta"]).preparedMeta;}catch(error){if(children&&!error.message.includes("did you forget to use ?"))throw error}let content=children||extractTitle(preparedMeta?.title);return content?React17.createElement(Title,{className:"sbdocs-title sb-unstyled"},content):null};var DEPRECATION_MIGRATION_LINK="https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#subtitle-block-and-parameterscomponentsubtitle",Subtitle2=props=>{let{of,children}=props;if("of"in props&&of===void 0)throw new Error("Unexpected `of={undefined}`, did you mistype a CSF file reference?");let preparedMeta;try{preparedMeta=useOf(of||"meta",["meta"]).preparedMeta;}catch(error){if(children&&!error.message.includes("did you forget to use ?"))throw error}let{componentSubtitle,docs}=preparedMeta?.parameters||{};componentSubtitle&&deprecate(`Using 'parameters.componentSubtitle' property to subtitle stories is deprecated. See ${DEPRECATION_MIGRATION_LINK}`);let content=children||docs?.subtitle||componentSubtitle;return content?React17.createElement(Subtitle,{className:"sbdocs-subtitle sb-unstyled"},content):null};var Subheading=({children,disableAnchor})=>{if(disableAnchor||typeof children!="string")return React17.createElement(H3,null,children);let tagID=globalThis.encodeURIComponent(children.toLowerCase());return React17.createElement(HeaderMdx,{as:"h3",id:tagID},children)};var DocsStory=({of,expanded=!0,withToolbar:withToolbarProp=!1,__forceInitialArgs=!1,__primary=!1})=>{let{story}=useOf(of||"story",["story"]),withToolbar=story.parameters.docs?.canvas?.withToolbar??withToolbarProp;return React17.createElement(Anchor,{storyId:story.id},expanded&&React17.createElement(React17.Fragment,null,React17.createElement(Subheading,null,story.name),React17.createElement(DescriptionContainer,{of})),React17.createElement(Canvas,{of,withToolbar,story:{__forceInitialArgs,__primary},source:{__forceInitialArgs}}))};var Primary=props=>{let{of}=props;if("of"in props&&of===void 0)throw new Error("Unexpected `of={undefined}`, did you mistype a CSF file reference?");let{csfFile}=useOf(of||"meta",["meta"]),primaryStory=useContext(DocsContext).componentStoriesFromCSFFile(csfFile)[0];return primaryStory?React17.createElement(DocsStory,{of:primaryStory.moduleExport,expanded:!1,__primary:!0,withToolbar:!0}):null};var Heading2=({children,disableAnchor,...props})=>{if(disableAnchor||typeof children!="string")return React17.createElement(H2,null,children);let tagID=children.toLowerCase().replace(/[^a-z0-9]/gi,"-");return React17.createElement(HeaderMdx,{as:"h2",id:tagID,...props},children)};var StyledHeading=styled(Heading2)(({theme})=>({fontSize:`${theme.typography.size.s2-1}px`,fontWeight:theme.typography.weight.bold,lineHeight:"16px",letterSpacing:"0.35em",textTransform:"uppercase",color:theme.textMutedColor,border:0,marginBottom:"12px","&:first-of-type":{marginTop:"56px"}})),Stories=({title="Stories",includePrimary=!0})=>{let{componentStories,projectAnnotations,getStoryContext}=useContext(DocsContext),stories=componentStories(),{stories:{filter}={filter:void 0}}=projectAnnotations.parameters?.docs||{};return filter&&(stories=stories.filter(story=>filter(story,getStoryContext(story)))),stories.some(story=>story.tags?.includes("autodocs"))&&(stories=stories.filter(story=>story.tags?.includes("autodocs"))),includePrimary||(stories=stories.slice(1)),!stories||stories.length===0?null:React17.createElement(React17.Fragment,null,React17.createElement(StyledHeading,null,title),stories.map(story=>story&&React17.createElement(DocsStory,{key:story.id,of:story.moduleExport,expanded:!0,__forceInitialArgs:!0})))};var DocsPage=()=>{let resolvedOf=useOf("meta",["meta"]),{stories}=resolvedOf.csfFile,isSingleStory=Object.keys(stories).length===1;return React17.createElement(React17.Fragment,null,React17.createElement(Title2,null),React17.createElement(Subtitle2,null),React17.createElement(DescriptionContainer,{of:"meta"}),isSingleStory?React17.createElement(DescriptionContainer,{of:"story"}):null,React17.createElement(Primary,null),React17.createElement(Controls3,null),isSingleStory?null:React17.createElement(Stories,null))};function Docs({context,docsParameter}){let Container=docsParameter.container||DocsContainer,Page=docsParameter.page||DocsPage;return React17.createElement(Container,{context,theme:docsParameter.theme},React17.createElement(Page,null))}var ExternalDocsContext=class extends DocsContext$1{constructor(channel,store,renderStoryToElement,processMetaExports){super(channel,store,renderStoryToElement,[]);this.channel=channel;this.store=store;this.renderStoryToElement=renderStoryToElement;this.processMetaExports=processMetaExports;this.referenceMeta=(metaExports,attach)=>{let csfFile=this.processMetaExports(metaExports);this.referenceCSFFile(csfFile),super.referenceMeta(metaExports,attach);};}};var ConstantMap=class{constructor(prefix){this.prefix=prefix;this.entries=new Map;}get(key){return this.entries.has(key)||this.entries.set(key,`${this.prefix}${this.entries.size}`),this.entries.get(key)}},ExternalPreview=class extends Preview$1{constructor(projectAnnotations){super(path=>Promise.resolve(this.moduleExportsByImportPath[path]),()=>composeConfigs([{parameters:{docs:{story:{inline:!0}}}},this.projectAnnotations]),new Channel({}));this.projectAnnotations=projectAnnotations;this.importPaths=new ConstantMap("./importPath/");this.titles=new ConstantMap("title-");this.storyIndex={v:5,entries:{}};this.moduleExportsByImportPath={};this.processMetaExports=metaExports=>{let importPath=this.importPaths.get(metaExports);this.moduleExportsByImportPath[importPath]=metaExports;let title=metaExports.default.title||this.titles.get(metaExports),csfFile=this.storyStoreValue.processCSFFileWithCache(metaExports,importPath,title);return Object.values(csfFile.stories).forEach(({id,name})=>{this.storyIndex.entries[id]={id,importPath,title,name,type:"story"};}),this.onStoriesChanged({storyIndex:this.storyIndex}),csfFile};this.docsContext=()=>new ExternalDocsContext(this.channel,this.storyStoreValue,this.renderStoryToElement.bind(this),this.processMetaExports.bind(this));}async getStoryIndexFromServer(){return this.storyIndex}};function usePreview(projectAnnotations){let previewRef=useRef();return previewRef.current||(previewRef.current=new ExternalPreview(projectAnnotations)),previewRef.current}function ExternalDocs({projectAnnotationsList,children}){let projectAnnotations=composeConfigs(projectAnnotationsList),preview2=usePreview(projectAnnotations),docsParameter={...projectAnnotations.parameters?.docs,page:()=>children};return React17.createElement(Docs,{docsParameter,context:preview2.docsContext()})}var preview,ExternalDocsContainer=({projectAnnotations,children})=>(preview||(preview=new ExternalPreview(projectAnnotations)),React17.createElement(DocsContext.Provider,{value:preview.docsContext()},React17.createElement(ThemeProvider,{theme:ensure(themes.light)},children)));var Meta=({of})=>{let context=useContext(DocsContext);of&&context.referenceMeta(of,!0);try{let primary=context.storyById();return React17.createElement(Anchor,{storyId:primary.id})}catch{return null}};var Unstyled=props=>React17.createElement("div",{...props,className:"sb-unstyled"});var Wrapper11=({children})=>React17.createElement("div",{style:{fontFamily:"sans-serif"}},children);var PRIMARY_STORY="^";
-+ `);
-+ return React17.createElement(Markdown, {
-+ ...props,
-+ options: {
-+ forceBlock: !0,
-+ overrides: {
-+ code: CodeOrSourceMdx,
-+ a: AnchorMdx,
-+ ...HeadersMdx,
-+ ...props?.options?.overrides,
-+ },
-+ ...props?.options,
-+ },
-+ });
-+};
-+var DescriptionType = ((DescriptionType2) => (
-+ (DescriptionType2.INFO = 'info'),
-+ (DescriptionType2.NOTES = 'notes'),
-+ (DescriptionType2.DOCGEN = 'docgen'),
-+ (DescriptionType2.AUTO = 'auto'),
-+ DescriptionType2
-+ ))(DescriptionType || {}),
-+ getDescriptionFromResolvedOf = (resolvedOf) => {
-+ switch (resolvedOf.type) {
-+ case 'story':
-+ return resolvedOf.story.parameters.docs?.description?.story || null;
-+ case 'meta': {
-+ let {parameters, component} = resolvedOf.preparedMeta,
-+ metaDescription = parameters.docs?.description?.component;
-+ return (
-+ metaDescription ||
-+ parameters.docs?.extractComponentDescription?.(component, {
-+ component,
-+ parameters,
-+ }) ||
-+ null
-+ );
-+ }
-+ case 'component': {
-+ let {
-+ component,
-+ projectAnnotations: {parameters},
-+ } = resolvedOf;
-+ return (
-+ parameters.docs?.extractComponentDescription?.(component, {
-+ component,
-+ parameters,
-+ }) || null
-+ );
-+ }
-+ default:
-+ throw new Error(
-+ `Unrecognized module type resolved from 'useOf', got: ${resolvedOf.type}`
-+ );
-+ }
-+ },
-+ DescriptionContainer = (props) => {
-+ let {of} = props;
-+ if ('of' in props && of === void 0)
-+ throw new Error(
-+ 'Unexpected `of={undefined}`, did you mistype a CSF file reference?'
-+ );
-+ let resolvedOf = useOf(of || 'meta'),
-+ markdown = getDescriptionFromResolvedOf(resolvedOf);
-+ return markdown ? React17.createElement(Markdown2, null, markdown) : null;
-+ };
-+var Wrapper10 = styled.div(({theme}) => ({
-+ width: '10rem',
-+ '@media (max-width: 768px)': {display: 'none'},
-+ })),
-+ Content = styled.div(({theme}) => ({
-+ position: 'fixed',
-+ bottom: 0,
-+ top: 0,
-+ width: '10rem',
-+ paddingTop: '4rem',
-+ paddingBottom: '2rem',
-+ overflowY: 'auto',
-+ fontFamily: theme.typography.fonts.base,
-+ fontSize: theme.typography.size.s2,
-+ WebkitFontSmoothing: 'antialiased',
-+ MozOsxFontSmoothing: 'grayscale',
-+ WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)',
-+ WebkitOverflowScrolling: 'touch',
-+ '& *': {boxSizing: 'border-box'},
-+ '& > .toc-wrapper > .toc-list': {
-+ paddingLeft: 0,
-+ borderLeft: `solid 2px ${theme.color.mediumlight}`,
-+ '.toc-list': {
-+ paddingLeft: 0,
-+ borderLeft: `solid 2px ${theme.color.mediumlight}`,
-+ '.toc-list': {
-+ paddingLeft: 0,
-+ borderLeft: `solid 2px ${theme.color.mediumlight}`,
-+ },
-+ },
-+ },
-+ '& .toc-list-item': {
-+ position: 'relative',
-+ listStyleType: 'none',
-+ marginLeft: 20,
-+ paddingTop: 3,
-+ paddingBottom: 3,
-+ },
-+ '& .toc-list-item::before': {
-+ content: '""',
-+ position: 'absolute',
-+ height: '100%',
-+ top: 0,
-+ left: 0,
-+ transform: 'translateX(calc(-2px - 20px))',
-+ borderLeft: `solid 2px ${theme.color.mediumdark}`,
-+ opacity: 0,
-+ transition: 'opacity 0.2s',
-+ },
-+ '& .toc-list-item.is-active-li::before': {opacity: 1},
-+ '& .toc-list-item > a': {
-+ color: theme.color.defaultText,
-+ textDecoration: 'none',
-+ },
-+ '& .toc-list-item.is-active-li > a': {
-+ fontWeight: 600,
-+ color: theme.color.secondary,
-+ textDecoration: 'none',
-+ },
-+ })),
-+ Heading = styled.p(({theme}) => ({
-+ fontWeight: 600,
-+ fontSize: '0.875em',
-+ color: theme.textColor,
-+ textTransform: 'uppercase',
-+ marginBottom: 10,
-+ })),
-+ OptionalTitle = ({title}) =>
-+ title === null
-+ ? null
-+ : typeof title == 'string'
-+ ? React17.createElement(Heading, null, title)
-+ : title,
-+ TableOfContents = ({
-+ title,
-+ disable,
-+ headingSelector,
-+ contentsSelector,
-+ ignoreSelector,
-+ unsafeTocbotOptions,
-+ }) => (
-+ useEffect(() => {
-+ let configuration = {
-+ tocSelector: '.toc-wrapper',
-+ contentSelector: contentsSelector ?? '.sbdocs-content',
-+ headingSelector: headingSelector ?? 'h3',
-+ ignoreSelector: ignoreSelector ?? '.docs-story *, .skip-toc',
-+ headingsOffset: 40,
-+ scrollSmoothOffset: -40,
-+ orderedList: !1,
-+ onClick: () => !1,
-+ ...unsafeTocbotOptions,
-+ },
-+ timeout = setTimeout(() => tocbot.init(configuration), 100);
-+ return () => {
-+ clearTimeout(timeout), tocbot.destroy();
-+ };
-+ }, [disable]),
-+ React17.createElement(
-+ React17.Fragment,
-+ null,
-+ React17.createElement(
-+ Wrapper10,
-+ null,
-+ disable
-+ ? null
-+ : React17.createElement(
-+ Content,
-+ null,
-+ React17.createElement(OptionalTitle, {title: title || null}),
-+ React17.createElement('div', {className: 'toc-wrapper'})
-+ )
-+ )
-+ )
-+ );
-+var {document: document3, window: globalWindow3} = global,
-+ DocsContainer = ({context, theme, children}) => {
-+ let toc;
-+ try {
-+ toc = context.resolveOf('meta', ['meta']).preparedMeta.parameters?.docs
-+ ?.toc;
-+ } catch {
-+ toc = context?.projectAnnotations?.parameters?.docs?.toc;
-+ }
-+ return (
-+ useEffect(() => {
-+ let url;
-+ try {
-+ if (
-+ ((url = new URL(globalWindow3.parent.location.toString())),
-+ url.hash)
-+ ) {
-+ let element = document3.getElementById(url.hash.substring(1));
-+ element &&
-+ setTimeout(() => {
-+ scrollToElement(element);
-+ }, 200);
-+ }
-+ } catch {}
-+ }),
-+ React17.createElement(
-+ DocsContext.Provider,
-+ {value: context},
-+ React17.createElement(
-+ SourceContainer,
-+ {channel: context.channel},
-+ React17.createElement(
-+ ThemeProvider,
-+ {theme: ensure(theme)},
-+ React17.createElement(
-+ DocsPageWrapper,
-+ {
-+ toc: toc
-+ ? React17.createElement(TableOfContents, {
-+ className: 'sbdocs sbdocs-toc--custom',
-+ ...toc,
-+ })
-+ : null,
-+ },
-+ children
-+ )
-+ )
-+ )
-+ )
-+ );
-+ };
-+var STORY_KIND_PATH_SEPARATOR = /\s*\/\s*/,
-+ extractTitle = (title) => {
-+ let groups = title.trim().split(STORY_KIND_PATH_SEPARATOR);
-+ return groups?.[groups?.length - 1] || title;
-+ },
-+ Title2 = (props) => {
-+ let {children, of} = props;
-+ if ('of' in props && of === void 0)
-+ throw new Error(
-+ 'Unexpected `of={undefined}`, did you mistype a CSF file reference?'
-+ );
-+ let preparedMeta;
-+ try {
-+ preparedMeta = useOf(of || 'meta', ['meta']).preparedMeta;
-+ } catch (error) {
-+ if (
-+ children &&
-+ !error.message.includes('did you forget to use ?')
-+ )
-+ throw error;
-+ }
-+ let content = children || extractTitle(preparedMeta?.title);
-+ return content
-+ ? React17.createElement(
-+ Title,
-+ {className: 'sbdocs-title sb-unstyled'},
-+ content
-+ )
-+ : null;
-+ };
-+var DEPRECATION_MIGRATION_LINK =
-+ 'https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#subtitle-block-and-parameterscomponentsubtitle',
-+ Subtitle2 = (props) => {
-+ let {of, children} = props;
-+ if ('of' in props && of === void 0)
-+ throw new Error(
-+ 'Unexpected `of={undefined}`, did you mistype a CSF file reference?'
-+ );
-+ let preparedMeta;
-+ try {
-+ preparedMeta = useOf(of || 'meta', ['meta']).preparedMeta;
-+ } catch (error) {
-+ if (
-+ children &&
-+ !error.message.includes('did you forget to use ?')
-+ )
-+ throw error;
-+ }
-+ let {componentSubtitle, docs} = preparedMeta?.parameters || {};
-+ componentSubtitle &&
-+ deprecate(
-+ `Using 'parameters.componentSubtitle' property to subtitle stories is deprecated. See ${DEPRECATION_MIGRATION_LINK}`
-+ );
-+ let content = children || docs?.subtitle || componentSubtitle;
-+ return content
-+ ? React17.createElement(
-+ Subtitle,
-+ {className: 'sbdocs-subtitle sb-unstyled'},
-+ content
-+ )
-+ : null;
-+ };
-+var Subheading = ({children, disableAnchor}) => {
-+ if (disableAnchor || typeof children != 'string')
-+ return React17.createElement(H3, null, children);
-+ let tagID = globalThis.encodeURIComponent(children.toLowerCase());
-+ return React17.createElement(HeaderMdx, {as: 'h3', id: tagID}, children);
-+};
-+var DocsStory = ({
-+ of,
-+ expanded = !0,
-+ withToolbar: withToolbarProp = !1,
-+ __forceInitialArgs = !1,
-+ __primary = !1,
-+}) => {
-+ let {story} = useOf(of || 'story', ['story']),
-+ withToolbar = story.parameters.docs?.canvas?.withToolbar ?? withToolbarProp;
-+ return React17.createElement(
-+ Anchor,
-+ {storyId: story.id},
-+ expanded &&
-+ React17.createElement(
-+ React17.Fragment,
-+ null,
-+ React17.createElement(Subheading, null, story.name),
-+ React17.createElement(DescriptionContainer, {of})
-+ ),
-+ React17.createElement(Canvas, {
-+ of,
-+ withToolbar,
-+ story: {__forceInitialArgs, __primary},
-+ source: {__forceInitialArgs},
-+ })
-+ );
-+};
-+var Primary = (props) => {
-+ let {of} = props;
-+ if ('of' in props && of === void 0)
-+ throw new Error(
-+ 'Unexpected `of={undefined}`, did you mistype a CSF file reference?'
-+ );
-+ let {csfFile} = useOf(of || 'meta', ['meta']),
-+ primaryStory =
-+ useContext(DocsContext).componentStoriesFromCSFFile(csfFile)[0];
-+ return primaryStory
-+ ? React17.createElement(DocsStory, {
-+ of: primaryStory.moduleExport,
-+ expanded: !1,
-+ __primary: !0,
-+ withToolbar: !0,
-+ })
-+ : null;
-+};
-+var Heading2 = ({children, disableAnchor, ...props}) => {
-+ if (disableAnchor || typeof children != 'string')
-+ return React17.createElement(H2, null, children);
-+ let tagID = children.toLowerCase().replace(/[^a-z0-9]/gi, '-');
-+ return React17.createElement(
-+ HeaderMdx,
-+ {as: 'h2', id: tagID, ...props},
-+ children
-+ );
-+};
-+var StyledHeading = styled(Heading2)(({theme}) => ({
-+ fontSize: `${theme.typography.size.s2 - 1}px`,
-+ fontWeight: theme.typography.weight.bold,
-+ lineHeight: '16px',
-+ letterSpacing: '0.35em',
-+ textTransform: 'uppercase',
-+ color: theme.textMutedColor,
-+ border: 0,
-+ marginBottom: '12px',
-+ '&:first-of-type': {marginTop: '56px'},
-+ })),
-+ Stories = ({title = 'Stories', includePrimary = !0}) => {
-+ let {componentStories, projectAnnotations, getStoryContext} =
-+ useContext(DocsContext),
-+ stories = componentStories(),
-+ {stories: {filter} = {filter: void 0}} =
-+ projectAnnotations.parameters?.docs || {};
-+ return (
-+ filter &&
-+ (stories = stories.filter((story) =>
-+ filter(story, getStoryContext(story))
-+ )),
-+ stories.some((story) => story.tags?.includes('autodocs')) &&
-+ (stories = stories.filter((story) => story.tags?.includes('autodocs'))),
-+ includePrimary || (stories = stories.slice(1)),
-+ !stories || stories.length === 0
-+ ? null
-+ : React17.createElement(
-+ React17.Fragment,
-+ null,
-+ React17.createElement(StyledHeading, null, title),
-+ stories.map(
-+ (story) =>
-+ story &&
-+ React17.createElement(DocsStory, {
-+ key: story.id,
-+ of: story.moduleExport,
-+ expanded: !0,
-+ __forceInitialArgs: !0,
-+ })
-+ )
-+ )
-+ );
-+ };
-+var DocsPage = () => {
-+ let resolvedOf = useOf('meta', ['meta']),
-+ {stories} = resolvedOf.csfFile,
-+ isSingleStory = Object.keys(stories).length === 1;
-+ return React17.createElement(
-+ React17.Fragment,
-+ null,
-+ React17.createElement(Title2, null),
-+ React17.createElement(Subtitle2, null),
-+ React17.createElement(DescriptionContainer, {of: 'meta'}),
-+ isSingleStory
-+ ? React17.createElement(DescriptionContainer, {of: 'story'})
-+ : null,
-+ React17.createElement(Primary, null),
-+ React17.createElement(Controls3, null),
-+ isSingleStory ? null : React17.createElement(Stories, null)
-+ );
-+};
-+function Docs({context, docsParameter}) {
-+ let Container = docsParameter.container || DocsContainer,
-+ Page = docsParameter.page || DocsPage;
-+ return React17.createElement(
-+ Container,
-+ {context, theme: docsParameter.theme},
-+ React17.createElement(Page, null)
-+ );
-+}
-+var ExternalDocsContext = class extends DocsContext$1 {
-+ constructor(channel, store, renderStoryToElement, processMetaExports) {
-+ super(channel, store, renderStoryToElement, []);
-+ this.channel = channel;
-+ this.store = store;
-+ this.renderStoryToElement = renderStoryToElement;
-+ this.processMetaExports = processMetaExports;
-+ this.referenceMeta = (metaExports, attach) => {
-+ let csfFile = this.processMetaExports(metaExports);
-+ this.referenceCSFFile(csfFile), super.referenceMeta(metaExports, attach);
-+ };
-+ }
-+};
-+var ConstantMap = class {
-+ constructor(prefix) {
-+ this.prefix = prefix;
-+ this.entries = new Map();
-+ }
-+ get(key) {
-+ return (
-+ this.entries.has(key) ||
-+ this.entries.set(key, `${this.prefix}${this.entries.size}`),
-+ this.entries.get(key)
-+ );
-+ }
-+ },
-+ ExternalPreview = class extends Preview$1 {
-+ constructor(projectAnnotations) {
-+ super(
-+ (path) => Promise.resolve(this.moduleExportsByImportPath[path]),
-+ () =>
-+ composeConfigs([
-+ {parameters: {docs: {story: {inline: !0}}}},
-+ this.projectAnnotations,
-+ ]),
-+ new Channel({})
-+ );
-+ this.projectAnnotations = projectAnnotations;
-+ this.importPaths = new ConstantMap('./importPath/');
-+ this.titles = new ConstantMap('title-');
-+ this.storyIndex = {v: 5, entries: {}};
-+ this.moduleExportsByImportPath = {};
-+ this.processMetaExports = (metaExports) => {
-+ let importPath = this.importPaths.get(metaExports);
-+ this.moduleExportsByImportPath[importPath] = metaExports;
-+ let title = metaExports.default.title || this.titles.get(metaExports),
-+ csfFile = this.storyStoreValue.processCSFFileWithCache(
-+ metaExports,
-+ importPath,
-+ title
-+ );
-+ return (
-+ Object.values(csfFile.stories).forEach(({id, name}) => {
-+ this.storyIndex.entries[id] = {
-+ id,
-+ importPath,
-+ title,
-+ name,
-+ type: 'story',
-+ };
-+ }),
-+ this.onStoriesChanged({storyIndex: this.storyIndex}),
-+ csfFile
-+ );
-+ };
-+ this.docsContext = () =>
-+ new ExternalDocsContext(
-+ this.channel,
-+ this.storyStoreValue,
-+ this.renderStoryToElement.bind(this),
-+ this.processMetaExports.bind(this)
-+ );
-+ }
-+ async getStoryIndexFromServer() {
-+ return this.storyIndex;
-+ }
-+ };
-+function usePreview(projectAnnotations) {
-+ let previewRef = useRef();
-+ return (
-+ previewRef.current ||
-+ (previewRef.current = new ExternalPreview(projectAnnotations)),
-+ previewRef.current
-+ );
-+}
-+function ExternalDocs({projectAnnotationsList, children}) {
-+ let projectAnnotations = composeConfigs(projectAnnotationsList),
-+ preview2 = usePreview(projectAnnotations),
-+ docsParameter = {
-+ ...projectAnnotations.parameters?.docs,
-+ page: () => children,
-+ };
-+ return React17.createElement(Docs, {
-+ docsParameter,
-+ context: preview2.docsContext(),
-+ });
-+}
-+var preview,
-+ ExternalDocsContainer = ({projectAnnotations, children}) => (
-+ preview || (preview = new ExternalPreview(projectAnnotations)),
-+ React17.createElement(
-+ DocsContext.Provider,
-+ {value: preview.docsContext()},
-+ React17.createElement(
-+ ThemeProvider,
-+ {theme: ensure(themes.light)},
-+ children
-+ )
-+ )
-+ );
-+var Meta = ({of}) => {
-+ let context = useContext(DocsContext);
-+ of && context.referenceMeta(of, !0);
-+ try {
-+ let primary = context.storyById();
-+ return React17.createElement(Anchor, {storyId: primary.id});
-+ } catch {
-+ return null;
-+ }
-+};
-+var Unstyled = (props) =>
-+ React17.createElement('div', {...props, className: 'sb-unstyled'});
-+var Wrapper11 = ({children}) =>
-+ React17.createElement('div', {style: {fontFamily: 'sans-serif'}}, children);
-+var PRIMARY_STORY = '^';
-
--export { AddContext, Anchor, AnchorMdx, ArgTypes, BooleanControl, Canvas, CodeOrSourceMdx, ColorControl, ColorItem, ColorPalette, Controls3 as Controls, DateControl, DescriptionContainer as Description, DescriptionType, Docs, DocsContainer, DocsContext, DocsPage, DocsStory, ExternalDocs, ExternalDocsContainer, FilesControl, HeaderMdx, HeadersMdx, Heading2 as Heading, IconGallery, IconItem, Markdown2 as Markdown, Meta, NumberControl, ObjectControl, OptionsControl, PRIMARY_STORY, Primary, ArgsTable as PureArgsTable, RangeControl, Source2 as Source, SourceContainer, SourceContext, Stories, Story2 as Story, Subheading, Subtitle2 as Subtitle, TextControl, Title2 as Title, Typeset, UNKNOWN_ARGS_HASH, Unstyled, Wrapper11 as Wrapper, anchorBlockIdFromId, argsHash, assertIsFn, extractTitle, format, formatDate, formatTime, getStoryId2 as getStoryId, getStoryProps, parse2 as parse, parseDate, parseTime, useOf, useSourceProps };
-+export {
-+ AddContext,
-+ Anchor,
-+ AnchorMdx,
-+ ArgTypes,
-+ BooleanControl,
-+ Canvas,
-+ CodeOrSourceMdx,
-+ ColorControl,
-+ ColorItem,
-+ ColorPalette,
-+ Controls3 as Controls,
-+ DateControl,
-+ DescriptionContainer as Description,
-+ DescriptionType,
-+ Docs,
-+ DocsContainer,
-+ DocsContext,
-+ DocsPage,
-+ DocsStory,
-+ ExternalDocs,
-+ ExternalDocsContainer,
-+ FilesControl,
-+ HeaderMdx,
-+ HeadersMdx,
-+ Heading2 as Heading,
-+ IconGallery,
-+ IconItem,
-+ Markdown2 as Markdown,
-+ Meta,
-+ NumberControl,
-+ ObjectControl,
-+ OptionsControl,
-+ PRIMARY_STORY,
-+ Primary,
-+ ArgsTable as PureArgsTable,
-+ RangeControl,
-+ Source2 as Source,
-+ SourceContainer,
-+ SourceContext,
-+ Stories,
-+ Story2 as Story,
-+ Subheading,
-+ Subtitle2 as Subtitle,
-+ TextControl,
-+ Title2 as Title,
-+ Typeset,
-+ UNKNOWN_ARGS_HASH,
-+ Unstyled,
-+ Wrapper11 as Wrapper,
-+ anchorBlockIdFromId,
-+ argsHash,
-+ assertIsFn,
-+ extractTitle,
-+ format,
-+ formatDate,
-+ formatTime,
-+ getStoryId2 as getStoryId,
-+ getStoryProps,
-+ parse2 as parse,
-+ parseDate,
-+ parseTime,
-+ useOf,
-+ useSourceProps,
-+};
diff --git a/patches/@storybook+web-components+8.1.11.patch b/patches/@storybook+web-components+8.1.11.patch
deleted file mode 100644
index 1e8ac4e58d..0000000000
--- a/patches/@storybook+web-components+8.1.11.patch
+++ /dev/null
@@ -1,465 +0,0 @@
-diff --git a/node_modules/@storybook/web-components/dist/entry-preview-docs.js b/node_modules/@storybook/web-components/dist/entry-preview-docs.js
-index efb322f..bc32a07 100644
---- a/node_modules/@storybook/web-components/dist/entry-preview-docs.js
-+++ b/node_modules/@storybook/web-components/dist/entry-preview-docs.js
-@@ -1,2 +1,263 @@
--"use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var entry_preview_docs_exports={};__export(entry_preview_docs_exports,{argTypesEnhancers:()=>argTypesEnhancers,decorators:()=>decorators,parameters:()=>parameters});module.exports=__toCommonJS(entry_preview_docs_exports);var import_docs_tools2=require("@storybook/docs-tools");var import_tiny_invariant=__toESM(require("tiny-invariant")),import_client_logger=require("@storybook/client-logger");var import_global3=require("@storybook/global");var import_global=require("@storybook/global"),{window:globalWindow}=import_global.global;globalWindow.STORYBOOK_ENV="web-components";var import_global2=require("@storybook/global");function isValidComponent(tagName){if(!tagName)return!1;if(typeof tagName=="string")return!0;throw new Error('Provided component needs to be a string. e.g. component: "my-element"')}function isValidMetaData(customElements){if(!customElements)return!1;if(customElements.tags&&Array.isArray(customElements.tags)||customElements.modules&&Array.isArray(customElements.modules))return!0;throw new Error(`You need to setup valid meta data in your config.js via setCustomElements().
-- See the readme of addon-docs for web components for more details.`)}function getCustomElements(){return import_global2.global.__STORYBOOK_CUSTOM_ELEMENTS__||import_global2.global.__STORYBOOK_CUSTOM_ELEMENTS_MANIFEST__}var{window:window2,EventSource}=import_global3.global;typeof module<"u"&&module?.hot?.decline&&(module.hot.decline(),new EventSource("__webpack_hmr").addEventListener("message",function(event){try{let{action}=JSON.parse(event.data);action==="built"&&window2.location.reload()}catch{}}));function mapItem(item,category){let type;switch(category){case"attributes":case"properties":type={name:item.type?.text||item.type};break;case"slots":type={name:"string"};break;default:type={name:"void"};break}return{name:item.name,required:!1,description:item.description,type,table:{category,type:{summary:item.type?.text||item.type},defaultValue:{summary:item.default!==void 0?item.default:item.defaultValue}}}}function mapEvent(item){let name=item.name.replace(/(-|_|:|\.|\s)+(.)?/g,(_match,_separator,chr)=>chr?chr.toUpperCase():"").replace(/^([A-Z])/,match=>match.toLowerCase());return name=`on${name.charAt(0).toUpperCase()+name.substr(1)}`,[{name,action:{name:item.name},table:{disable:!0}},mapItem(item,"events")]}function mapData(data,category){return data&&data.filter(item=>item&&item.name).reduce((acc,item)=>{if(item.kind==="method")return acc;switch(category){case"events":mapEvent(item).forEach(argType=>{(0,import_tiny_invariant.default)(argType.name,`${argType} should have a name property.`),acc[argType.name]=argType});break;default:acc[item.name]=mapItem(item,category);break}return acc},{})}var getMetaDataExperimental=(tagName,customElements)=>{if(!isValidComponent(tagName)||!isValidMetaData(customElements))return null;let metaData=customElements.tags.find(tag=>tag.name.toUpperCase()===tagName.toUpperCase());return metaData||import_client_logger.logger.warn(`Component not found in custom-elements.json: ${tagName}`),metaData},getMetaDataV1=(tagName,customElements)=>{if(!isValidComponent(tagName)||!isValidMetaData(customElements))return null;let metadata;return customElements?.modules?.forEach(_module=>{_module?.declarations?.forEach(declaration=>{declaration.tagName===tagName&&(metadata=declaration)})}),metadata||import_client_logger.logger.warn(`Component not found in custom-elements.json: ${tagName}`),metadata},getMetaData=(tagName,manifest)=>manifest?.version==="experimental"?getMetaDataExperimental(tagName,manifest):getMetaDataV1(tagName,manifest),extractArgTypesFromElements=(tagName,customElements)=>{let metaData=getMetaData(tagName,customElements);return metaData&&{...mapData(metaData.members??[],"properties"),...mapData(metaData.properties??[],"properties"),...mapData(metaData.attributes??[],"attributes"),...mapData(metaData.events??[],"events"),...mapData(metaData.slots??[],"slots"),...mapData(metaData.cssProperties??[],"css custom properties"),...mapData(metaData.cssParts??[],"css shadow parts")}},extractArgTypes=tagName=>{let cem=getCustomElements();return extractArgTypesFromElements(tagName,cem)},extractComponentDescription=tagName=>{let metaData=getMetaData(tagName,getCustomElements());return metaData&&metaData.description};var import_lit=require("lit"),import_preview_api=require("@storybook/preview-api"),import_docs_tools=require("@storybook/docs-tools"),LIT_EXPRESSION_COMMENTS=/|/g;function skipSourceRender(context){let sourceParams=context?.parameters.docs?.source,isArgsStory=context?.parameters.__isArgsStory;return sourceParams?.type===import_docs_tools.SourceType.DYNAMIC?!1:!isArgsStory||sourceParams?.code||sourceParams?.type===import_docs_tools.SourceType.CODE}function sourceDecorator(storyFn,context){let story=storyFn(),renderedForSource=context?.parameters.docs?.source?.excludeDecorators?context.originalStoryFn(context.args,context):story,source;if((0,import_preview_api.useEffect)(()=>{let{id,unmappedArgs}=context;source&&import_preview_api.addons.getChannel().emit(import_docs_tools.SNIPPET_RENDERED,{id,source,args:unmappedArgs})}),!skipSourceRender(context)){let container=window.document.createElement("div");renderedForSource instanceof DocumentFragment?(0,import_lit.render)(renderedForSource.cloneNode(!0),container):(0,import_lit.render)(renderedForSource,container),source=container.innerHTML.replace(LIT_EXPRESSION_COMMENTS,"")}return story}var decorators=[sourceDecorator],parameters={docs:{extractArgTypes,extractComponentDescription,story:{inline:!0},source:{type:import_docs_tools2.SourceType.DYNAMIC,language:"html"}}},argTypesEnhancers=[import_docs_tools2.enhanceArgTypes];0&&(module.exports={argTypesEnhancers,decorators,parameters});
-+'use strict';
-+var __create = Object.create;
-+var __defProp = Object.defineProperty;
-+var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-+var __getOwnPropNames = Object.getOwnPropertyNames;
-+var __getProtoOf = Object.getPrototypeOf,
-+ __hasOwnProp = Object.prototype.hasOwnProperty;
-+var __export = (target, all) => {
-+ for (var name in all)
-+ __defProp(target, name, {get: all[name], enumerable: !0});
-+ },
-+ __copyProps = (to, from, except, desc) => {
-+ if ((from && typeof from == 'object') || typeof from == 'function')
-+ for (let key of __getOwnPropNames(from))
-+ !__hasOwnProp.call(to, key) &&
-+ key !== except &&
-+ __defProp(to, key, {
-+ get: () => from[key],
-+ enumerable:
-+ !(desc = __getOwnPropDesc(from, key)) || desc.enumerable,
-+ });
-+ return to;
-+ };
-+var __toESM = (mod, isNodeMode, target) => (
-+ (target = mod != null ? __create(__getProtoOf(mod)) : {}),
-+ __copyProps(
-+ isNodeMode || !mod || !mod.__esModule
-+ ? __defProp(target, 'default', {value: mod, enumerable: !0})
-+ : target,
-+ mod
-+ )
-+ ),
-+ __toCommonJS = (mod) =>
-+ __copyProps(__defProp({}, '__esModule', {value: !0}), mod);
-+var entry_preview_docs_exports = {};
-+__export(entry_preview_docs_exports, {
-+ argTypesEnhancers: () => argTypesEnhancers,
-+ decorators: () => decorators,
-+ parameters: () => parameters,
-+});
-+module.exports = __toCommonJS(entry_preview_docs_exports);
-+var import_docs_tools2 = require('@storybook/docs-tools');
-+var import_tiny_invariant = __toESM(require('tiny-invariant')),
-+ import_client_logger = require('@storybook/client-logger');
-+var import_global3 = require('@storybook/global');
-+var import_global = require('@storybook/global'),
-+ {window: globalWindow} = import_global.global;
-+globalWindow.STORYBOOK_ENV = 'web-components';
-+var import_global2 = require('@storybook/global');
-+function isValidComponent(tagName) {
-+ if (!tagName) return !1;
-+ if (typeof tagName == 'string') return !0;
-+ throw new Error(
-+ 'Provided component needs to be a string. e.g. component: "my-element"'
-+ );
-+}
-+function isValidMetaData(customElements) {
-+ if (!customElements) return !1;
-+ if (
-+ (customElements.tags && Array.isArray(customElements.tags)) ||
-+ (customElements.modules && Array.isArray(customElements.modules))
-+ )
-+ return !0;
-+ throw new Error(`You need to setup valid meta data in your config.js via setCustomElements().
-+ See the readme of addon-docs for web components for more details.`);
-+}
-+function getCustomElements() {
-+ return (
-+ import_global2.global.__STORYBOOK_CUSTOM_ELEMENTS__ ||
-+ import_global2.global.__STORYBOOK_CUSTOM_ELEMENTS_MANIFEST__
-+ );
-+}
-+var {window: window2, EventSource} = import_global3.global;
-+typeof module < 'u' &&
-+ module?.hot?.decline &&
-+ (module.hot.decline(),
-+ new EventSource('__webpack_hmr').addEventListener(
-+ 'message',
-+ function (event) {
-+ try {
-+ let {action} = JSON.parse(event.data);
-+ action === 'built' && window2.location.reload();
-+ } catch {}
-+ }
-+ ));
-+function mapItem(item, category) {
-+ let type;
-+ switch (category) {
-+ case 'attributes':
-+ case 'properties':
-+ type = {name: item.type?.text || item.type};
-+ break;
-+ case 'slots':
-+ type = {name: 'string'};
-+ break;
-+ default:
-+ type = {name: 'void'};
-+ break;
-+ }
-+ return {
-+ name: item.name,
-+ required: !1,
-+ description: item.description,
-+ type,
-+ table: {
-+ category,
-+ type: {summary: item.type?.text || item.type},
-+ defaultValue: {
-+ summary: item.default !== void 0 ? item.default : item.defaultValue,
-+ },
-+ },
-+ };
-+}
-+function mapEvent(item) {
-+ let name = item.name
-+ .replace(/(-|_|:|\.|\s)+(.)?/g, (_match, _separator, chr) =>
-+ chr ? chr.toUpperCase() : ''
-+ )
-+ .replace(/^([A-Z])/, (match) => match.toLowerCase());
-+ return (
-+ (name = `on${name.charAt(0).toUpperCase() + name.substr(1)}`),
-+ [
-+ {name, action: {name: item.name}, table: {disable: !0}},
-+ mapItem(item, 'events'),
-+ ]
-+ );
-+}
-+function mapData(data, category) {
-+ return (
-+ data &&
-+ data
-+ .filter((item) => item && item.name)
-+ .reduce((acc, item) => {
-+ if (item.kind === 'method') return acc;
-+ switch (category) {
-+ case 'events':
-+ mapEvent(item).forEach((argType) => {
-+ (0, import_tiny_invariant.default)(
-+ argType.name,
-+ `${argType} should have a name property.`
-+ ),
-+ (acc[argType.name] = argType);
-+ });
-+ break;
-+ default:
-+ acc[
-+ `${category === 'css shadow parts' ? 'cssParts' : category}-${item.name}`
-+ ] = mapItem(item, category);
-+ break;
-+ }
-+ return acc;
-+ }, {})
-+ );
-+}
-+var getMetaDataExperimental = (tagName, customElements) => {
-+ if (!isValidComponent(tagName) || !isValidMetaData(customElements))
-+ return null;
-+ let metaData = customElements.tags.find(
-+ (tag) => tag.name.toUpperCase() === tagName.toUpperCase()
-+ );
-+ return (
-+ metaData ||
-+ import_client_logger.logger.warn(
-+ `Component not found in custom-elements.json: ${tagName}`
-+ ),
-+ metaData
-+ );
-+ },
-+ getMetaDataV1 = (tagName, customElements) => {
-+ if (!isValidComponent(tagName) || !isValidMetaData(customElements))
-+ return null;
-+ let metadata;
-+ return (
-+ customElements?.modules?.forEach((_module) => {
-+ _module?.declarations?.forEach((declaration) => {
-+ declaration.tagName === tagName && (metadata = declaration);
-+ });
-+ }),
-+ metadata ||
-+ import_client_logger.logger.warn(
-+ `Component not found in custom-elements.json: ${tagName}`
-+ ),
-+ metadata
-+ );
-+ },
-+ getMetaData = (tagName, manifest) =>
-+ manifest?.version === 'experimental'
-+ ? getMetaDataExperimental(tagName, manifest)
-+ : getMetaDataV1(tagName, manifest),
-+ extractArgTypesFromElements = (tagName, customElements) => {
-+ let metaData = getMetaData(tagName, customElements);
-+ return (
-+ metaData && {
-+ ...mapData(metaData.members ?? [], 'properties'),
-+ ...mapData(metaData.properties ?? [], 'properties'),
-+ ...mapData(metaData.attributes ?? [], 'attributes'),
-+ ...mapData(metaData.events ?? [], 'events'),
-+ ...mapData(metaData.slots ?? [], 'slots'),
-+ ...mapData(metaData.cssProperties ?? [], 'css custom properties'),
-+ ...mapData(metaData.cssParts ?? [], 'css shadow parts'),
-+ }
-+ );
-+ },
-+ extractArgTypes = (tagName) => {
-+ let cem = getCustomElements();
-+ return extractArgTypesFromElements(tagName, cem);
-+ },
-+ extractComponentDescription = (tagName) => {
-+ let metaData = getMetaData(tagName, getCustomElements());
-+ return metaData && metaData.description;
-+ };
-+var import_lit = require('lit'),
-+ import_preview_api = require('@storybook/preview-api'),
-+ import_docs_tools = require('@storybook/docs-tools'),
-+ LIT_EXPRESSION_COMMENTS = /|/g;
-+function skipSourceRender(context) {
-+ let sourceParams = context?.parameters.docs?.source,
-+ isArgsStory = context?.parameters.__isArgsStory;
-+ return sourceParams?.type === import_docs_tools.SourceType.DYNAMIC
-+ ? !1
-+ : !isArgsStory ||
-+ sourceParams?.code ||
-+ sourceParams?.type === import_docs_tools.SourceType.CODE;
-+}
-+function sourceDecorator(storyFn, context) {
-+ let story = storyFn(),
-+ renderedForSource = context?.parameters.docs?.source?.excludeDecorators
-+ ? context.originalStoryFn(context.args, context)
-+ : story,
-+ source;
-+ if (
-+ ((0, import_preview_api.useEffect)(() => {
-+ let {id, unmappedArgs} = context;
-+ source &&
-+ import_preview_api.addons
-+ .getChannel()
-+ .emit(import_docs_tools.SNIPPET_RENDERED, {
-+ id,
-+ source,
-+ args: unmappedArgs,
-+ });
-+ }),
-+ !skipSourceRender(context))
-+ ) {
-+ let container = window.document.createElement('div');
-+ renderedForSource instanceof DocumentFragment
-+ ? (0, import_lit.render)(renderedForSource.cloneNode(!0), container)
-+ : (0, import_lit.render)(renderedForSource, container),
-+ (source = container.innerHTML.replace(LIT_EXPRESSION_COMMENTS, ''));
-+ }
-+ return story;
-+}
-+var decorators = [sourceDecorator],
-+ parameters = {
-+ docs: {
-+ extractArgTypes,
-+ extractComponentDescription,
-+ story: {inline: !0},
-+ source: {type: import_docs_tools2.SourceType.DYNAMIC, language: 'html'},
-+ },
-+ },
-+ argTypesEnhancers = [import_docs_tools2.enhanceArgTypes];
-+0 && (module.exports = {argTypesEnhancers, decorators, parameters});
-diff --git a/node_modules/@storybook/web-components/dist/entry-preview-docs.mjs b/node_modules/@storybook/web-components/dist/entry-preview-docs.mjs
-index 74a78c8..e6ebf35 100644
---- a/node_modules/@storybook/web-components/dist/entry-preview-docs.mjs
-+++ b/node_modules/@storybook/web-components/dist/entry-preview-docs.mjs
-@@ -1,10 +1,183 @@
--import { getCustomElements, isValidComponent, isValidMetaData } from './chunk-GKNNPQCW.mjs';
--import { SourceType, enhanceArgTypes, SNIPPET_RENDERED } from '@storybook/docs-tools';
-+import {logger} from '@storybook/client-logger';
-+import {
-+ SourceType,
-+ enhanceArgTypes,
-+ SNIPPET_RENDERED,
-+} from '@storybook/docs-tools';
-+import {useEffect, addons} from '@storybook/preview-api';
-+import {render} from 'lit';
- import invariant from 'tiny-invariant';
--import { logger } from '@storybook/client-logger';
--import { render } from 'lit';
--import { useEffect, addons } from '@storybook/preview-api';
-+import {
-+ getCustomElements,
-+ isValidComponent,
-+ isValidMetaData,
-+} from './chunk-GKNNPQCW.mjs';
-
--function mapItem(item,category){let type;switch(category){case"attributes":case"properties":type={name:item.type?.text||item.type};break;case"slots":type={name:"string"};break;default:type={name:"void"};break}return {name:item.name,required:!1,description:item.description,type,table:{category,type:{summary:item.type?.text||item.type},defaultValue:{summary:item.default!==void 0?item.default:item.defaultValue}}}}function mapEvent(item){let name=item.name.replace(/(-|_|:|\.|\s)+(.)?/g,(_match,_separator,chr)=>chr?chr.toUpperCase():"").replace(/^([A-Z])/,match=>match.toLowerCase());return name=`on${name.charAt(0).toUpperCase()+name.substr(1)}`,[{name,action:{name:item.name},table:{disable:!0}},mapItem(item,"events")]}function mapData(data,category){return data&&data.filter(item=>item&&item.name).reduce((acc,item)=>{if(item.kind==="method")return acc;switch(category){case"events":mapEvent(item).forEach(argType=>{invariant(argType.name,`${argType} should have a name property.`),acc[argType.name]=argType;});break;default:acc[item.name]=mapItem(item,category);break}return acc},{})}var getMetaDataExperimental=(tagName,customElements)=>{if(!isValidComponent(tagName)||!isValidMetaData(customElements))return null;let metaData=customElements.tags.find(tag=>tag.name.toUpperCase()===tagName.toUpperCase());return metaData||logger.warn(`Component not found in custom-elements.json: ${tagName}`),metaData},getMetaDataV1=(tagName,customElements)=>{if(!isValidComponent(tagName)||!isValidMetaData(customElements))return null;let metadata;return customElements?.modules?.forEach(_module=>{_module?.declarations?.forEach(declaration=>{declaration.tagName===tagName&&(metadata=declaration);});}),metadata||logger.warn(`Component not found in custom-elements.json: ${tagName}`),metadata},getMetaData=(tagName,manifest)=>manifest?.version==="experimental"?getMetaDataExperimental(tagName,manifest):getMetaDataV1(tagName,manifest),extractArgTypesFromElements=(tagName,customElements)=>{let metaData=getMetaData(tagName,customElements);return metaData&&{...mapData(metaData.members??[],"properties"),...mapData(metaData.properties??[],"properties"),...mapData(metaData.attributes??[],"attributes"),...mapData(metaData.events??[],"events"),...mapData(metaData.slots??[],"slots"),...mapData(metaData.cssProperties??[],"css custom properties"),...mapData(metaData.cssParts??[],"css shadow parts")}},extractArgTypes=tagName=>{let cem=getCustomElements();return extractArgTypesFromElements(tagName,cem)},extractComponentDescription=tagName=>{let metaData=getMetaData(tagName,getCustomElements());return metaData&&metaData.description};var LIT_EXPRESSION_COMMENTS=/|/g;function skipSourceRender(context){let sourceParams=context?.parameters.docs?.source,isArgsStory=context?.parameters.__isArgsStory;return sourceParams?.type===SourceType.DYNAMIC?!1:!isArgsStory||sourceParams?.code||sourceParams?.type===SourceType.CODE}function sourceDecorator(storyFn,context){let story=storyFn(),renderedForSource=context?.parameters.docs?.source?.excludeDecorators?context.originalStoryFn(context.args,context):story,source;if(useEffect(()=>{let{id,unmappedArgs}=context;source&&addons.getChannel().emit(SNIPPET_RENDERED,{id,source,args:unmappedArgs});}),!skipSourceRender(context)){let container=window.document.createElement("div");renderedForSource instanceof DocumentFragment?render(renderedForSource.cloneNode(!0),container):render(renderedForSource,container),source=container.innerHTML.replace(LIT_EXPRESSION_COMMENTS,"");}return story}var decorators=[sourceDecorator],parameters={docs:{extractArgTypes,extractComponentDescription,story:{inline:!0},source:{type:SourceType.DYNAMIC,language:"html"}}},argTypesEnhancers=[enhanceArgTypes];
-+function mapItem(item, category) {
-+ let type;
-+ switch (category) {
-+ case 'attributes':
-+ case 'properties':
-+ type = {name: item.type?.text || item.type};
-+ break;
-+ case 'slots':
-+ type = {name: 'string'};
-+ break;
-+ default:
-+ type = {name: 'void'};
-+ break;
-+ }
-+ return {
-+ name: item.name,
-+ required: !1,
-+ description: item.description,
-+ type,
-+ table: {
-+ category,
-+ type: {summary: item.type?.text || item.type},
-+ defaultValue: {
-+ summary: item.default !== void 0 ? item.default : item.defaultValue,
-+ },
-+ },
-+ };
-+}
-+function mapEvent(item) {
-+ let name = item.name
-+ .replace(/(-|_|:|\.|\s)+(.)?/g, (_match, _separator, chr) =>
-+ chr ? chr.toUpperCase() : ''
-+ )
-+ .replace(/^([A-Z])/, (match) => match.toLowerCase());
-+ return (
-+ (name = `on${name.charAt(0).toUpperCase() + name.substr(1)}`),
-+ [
-+ {name, action: {name: item.name}, table: {disable: !0}},
-+ mapItem(item, 'events'),
-+ ]
-+ );
-+}
-+function mapData(data, category) {
-+ return (
-+ data &&
-+ data
-+ .filter((item) => item && item.name)
-+ .reduce((acc, item) => {
-+ if (item.kind === 'method') return acc;
-+ switch (category) {
-+ case 'events':
-+ mapEvent(item).forEach((argType) => {
-+ invariant(
-+ argType.name,
-+ `${argType} should have a name property.`
-+ ),
-+ (acc[argType.name] = argType);
-+ });
-+ break;
-+ default:
-+ acc[
-+ `${category === 'css shadow parts' ? 'cssParts' : category}-${item.name}`
-+ ] = mapItem(item, category);
-+ break;
-+ }
-+ return acc;
-+ }, {})
-+ );
-+}
-+var getMetaDataExperimental = (tagName, customElements) => {
-+ if (!isValidComponent(tagName) || !isValidMetaData(customElements))
-+ return null;
-+ let metaData = customElements.tags.find(
-+ (tag) => tag.name.toUpperCase() === tagName.toUpperCase()
-+ );
-+ return (
-+ metaData ||
-+ logger.warn(`Component not found in custom-elements.json: ${tagName}`),
-+ metaData
-+ );
-+ },
-+ getMetaDataV1 = (tagName, customElements) => {
-+ if (!isValidComponent(tagName) || !isValidMetaData(customElements))
-+ return null;
-+ let metadata;
-+ return (
-+ customElements?.modules?.forEach((_module) => {
-+ _module?.declarations?.forEach((declaration) => {
-+ declaration.tagName === tagName && (metadata = declaration);
-+ });
-+ }),
-+ metadata ||
-+ logger.warn(`Component not found in custom-elements.json: ${tagName}`),
-+ metadata
-+ );
-+ },
-+ getMetaData = (tagName, manifest) =>
-+ manifest?.version === 'experimental'
-+ ? getMetaDataExperimental(tagName, manifest)
-+ : getMetaDataV1(tagName, manifest),
-+ extractArgTypesFromElements = (tagName, customElements) => {
-+ let metaData = getMetaData(tagName, customElements);
-+ return (
-+ metaData && {
-+ ...mapData(metaData.members ?? [], 'properties'),
-+ ...mapData(metaData.properties ?? [], 'properties'),
-+ ...mapData(metaData.attributes ?? [], 'attributes'),
-+ ...mapData(metaData.events ?? [], 'events'),
-+ ...mapData(metaData.slots ?? [], 'slots'),
-+ ...mapData(metaData.cssProperties ?? [], 'css custom properties'),
-+ ...mapData(metaData.cssParts ?? [], 'css shadow parts'),
-+ }
-+ );
-+ },
-+ extractArgTypes = (tagName) => {
-+ let cem = getCustomElements();
-+ return extractArgTypesFromElements(tagName, cem);
-+ },
-+ extractComponentDescription = (tagName) => {
-+ let metaData = getMetaData(tagName, getCustomElements());
-+ return metaData && metaData.description;
-+ };
-+var LIT_EXPRESSION_COMMENTS = /|/g;
-+function skipSourceRender(context) {
-+ let sourceParams = context?.parameters.docs?.source,
-+ isArgsStory = context?.parameters.__isArgsStory;
-+ return sourceParams?.type === SourceType.DYNAMIC
-+ ? !1
-+ : !isArgsStory ||
-+ sourceParams?.code ||
-+ sourceParams?.type === SourceType.CODE;
-+}
-+function sourceDecorator(storyFn, context) {
-+ let story = storyFn(),
-+ renderedForSource = context?.parameters.docs?.source?.excludeDecorators
-+ ? context.originalStoryFn(context.args, context)
-+ : story,
-+ source;
-+ if (
-+ (useEffect(() => {
-+ let {id, unmappedArgs} = context;
-+ source &&
-+ addons
-+ .getChannel()
-+ .emit(SNIPPET_RENDERED, {id, source, args: unmappedArgs});
-+ }),
-+ !skipSourceRender(context))
-+ ) {
-+ let container = window.document.createElement('div');
-+ renderedForSource instanceof DocumentFragment
-+ ? render(renderedForSource.cloneNode(!0), container)
-+ : render(renderedForSource, container),
-+ (source = container.innerHTML.replace(LIT_EXPRESSION_COMMENTS, ''));
-+ }
-+ return story;
-+}
-+var decorators = [sourceDecorator],
-+ parameters = {
-+ docs: {
-+ extractArgTypes,
-+ extractComponentDescription,
-+ story: {inline: !0},
-+ source: {type: SourceType.DYNAMIC, language: 'html'},
-+ },
-+ },
-+ argTypesEnhancers = [enhanceArgTypes];
-
--export { argTypesEnhancers, decorators, parameters };
-+export {argTypesEnhancers, decorators, parameters};