import{j as s}from"./jsx-runtime-CnH95YSl.js";import{a as Cs}from"./index-B-lxVbXh.js";import{f as rs}from"./index-BJMTVygn.js";import{r as a}from"./index-NdkWRN8K.js";import{j as E}from"./emotion-react-jsx-runtime.browser.esm-DL0BDwaj.js";import{T as qs}from"./Tooltip-Cq2rQGbD.js";import{B as Ms}from"./Button-BzIwUmSM.js";import{P as Ns}from"./PlaceholderLogo-JfVvgA23.js";import{O as C}from"./OdysseyStorybookThemeDecorator-BuDiOG2V.js";import{E as x}from"./utilities.esm-DpQ0TZP_.js";import{M as os}from"./OdysseyProvider-qIn9QVYS.js";import{h as m,S as Ps,u as ae,av as ws,ax as ks}from"./OdysseyThemeProvider-Bh0Bu-2o.js";import{M as se}from"./Button-BEA5U6Tg.js";import{M as Is}from"./More-DLQ2RjWn.js";import{U as Y,e as ns,T as te,a as us,S as de}from"./uiShellSharedConstants-DD9UP82e.js";import{a as Ts,M as X}from"./SideNav-5pMdKSEl.js";import{u as ls,M as js}from"./UiShellProvider-BEcD16AU.js";import{S as Es}from"./Skeleton-BPjIT6NG.js";import{M as me}from"./AppSwitcher-cyyPttJv.js";import{M as pe}from"./TopNav-DEIYDz6v.js";import{M as As}from"./SearchField-BdnOrhVM.js";import{M as cs}from"./Surface-DTngmQRF.js";import{u as Ds,M as Rs}from"./PageTemplate-D-EQlTUx.js";import{a as Us}from"./Typography-Cz6D417Y.js";import{M as Bs}from"./Box-1mvP3NLW.js";import{M as Fs}from"./Banner-K7AM0SJj.js";import{M as ds}from"./UserProfile-B6GSEZPs.js";import{M as ie}from"./User-CyxEAfVT.js";import{M as Ls}from"./Layout-DGOs1275.js";import{M as he,a as ge,b as Os,c as Hs,d as zs,e as ve,f as Ws}from"./Server-Ch5aeRtt.js";import{M as be}from"./Home-la7Lmt_L.js";import{M as fe}from"./Folder-e-po0U54.js";import{M as _s}from"./Download-Zlhupksh.js";import{M as Vs}from"./Clock-17ua7UAW.js";import{M as $s}from"./Settings-2rTKyez8.js";import"./v4-CtRu48qb.js";import"./_commonjsHelpers-gnU0ypJ3.js";import"./Grow-C8kUeGCY.js";import"./utils-kUZVaD1e.js";import"./inheritsLoose-CJ6Ie9dp.js";import"./index-B5xazMy1.js";import"./index-DieBXP3Z.js";import"./TransitionGroupContext-DAL84N7p.js";import"./useIsFocusVisible-DH0qxT5e.js";import"./getReactElementRef-DsIevm5t.js";import"./resolveComponentProps-DXQ8X87i.js";import"./isHostComponent-DVu5iVWx.js";import"./useControlled-NQulfz4l.js";import"./Popper-BARIxJrI.js";import"./popper-BVOCD5jc.js";import"./ownerDocument-DW-IO8s5.js";import"./Portal-C6D59xAE.js";import"./ButtonBase-BNqa2TMD.js";import"./assertThisInitialized-B9jnkVVz.js";import"./index-BJTM6NaI.js";import"./BaseButton-DYZHKnV3.js";import"./MuiPropsContext-DhRylJZk.js";import"./Tooltip-CsVWtVfL.js";import"./useMountLifecycleEffect-CjsUCFhB.js";import"./useUniqueId-Bsgqe1tm.js";import"./createUniqueId-ByTaVY63.js";import"./AccordionSummary-BjqT0nEb.js";import"./useSlot-CvpE2t6D.js";import"./Collapse-DfdoVIdP.js";import"./Paper-D-_O-EjU.js";import"./Link-BDoLypER.js";import"./Link-DNIf0luC.js";import"./Typography-ClQ35Rr-.js";import"./ExternalLink-D0l1c5Cz.js";import"./Badge-BO7bTIEa.js";import"./Status-BlOUycBm.js";import"./Chip-CXnMieIl.js";import"./createSvgIcon-ClUWwDzL.js";import"./ChevronRight-C12ToI7Y.js";import"./colorManipulator-DKifQsuo.js";import"./Field-DH3L8v09.js";import"./List-CmjR1pNu.js";import"./ListItem-C0ExFtXb.js";import"./utils-iop7lDec.js";import"./useFormControl-BMISTZuX.js";import"./FormLabel-CiGre9wK.js";import"./ScreenReaderText-CebALBsG.js";import"./Box-BcMTQ_R2.js";import"./createBox-Dxawkfow.js";import"./visuallyHidden-Dan1xhjv.js";import"./FormHelperText-CsNAE1E3.js";import"./FieldHint-B3Jif_Up.js";import"./inputUtils-Dbi8XkA6.js";import"./InputBase-DeB4_faH.js";import"./ownerWindow-HkKU3E4x.js";import"./debounce-Be36O1Ab.js";import"./InputAdornment-CdR3XT6f.js";import"./Search-C5TVrLyE.js";import"./IconButton-5qShmnSr.js";import"./Documentation-DF3oo39e.js";import"./AlertTitle-q6ff_Zkl.js";import"./Close-OXBt1nIe.js";/*!
 * Copyright (c) 2025-present, Okta, Inc. and/or its affiliates. All rights reserved.
 * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
 *
 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *
 * See the License for the specific language governing permissions and limitations under the License.
 */const ee=e=>{const t=a.useMemo(()=>window.matchMedia(e),[e]),[u,c]=a.useState(()=>t.matches),o=a.useCallback(n=>c(n.matches),[]);return a.useEffect(()=>(t.addEventListener("change",o),o(t),()=>{t.removeEventListener("change",o)}),[t,o]),u};/*!
 * Copyright (c) 2025-present, Okta, Inc. and/or its affiliates. All rights reserved.
 * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
 *
 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *
 * See the License for the specific language governing permissions and limitations under the License.
 */const re=m("div")({left:0,pointerEvents:"none",position:"absolute",top:0,width:"100%",zIndex:Y}),Gs=m(re)({background:`linear-gradient(
      to bottom,
      rgba(39, 39, 39, 0.08) 0%,
      transparent 100%
    )`,height:"4px"}),Qs=m(re)({background:`linear-gradient(
      to bottom,
      rgba(39, 39, 39, 0.01) 0%,
      transparent 100%
    )`,height:"6px"}),Xs=m(re)({background:`linear-gradient(
      to bottom,
      rgba(39, 39, 39, 0.05) 0%,
      transparent 100%
    )`,height:"15px"}),Ys=({isContentScrolled:e})=>e?s.jsxs(s.Fragment,{children:[s.jsx(Gs,{}),s.jsx(Qs,{}),s.jsx(Xs,{})]}):null,oe=a.memo(Ys);oe.displayName="InnerAppContainer";const Zs=a.forwardRef((e,t)=>s.jsx(Ps,{fill:"none",ref:t,viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",...e,children:s.jsx("path",{clipRule:"evenodd",d:"M21.333 5.778H2.667V4H21.333V5.778ZM21.333 12.885H2.667V11.111H21.333V12.885ZM2.667 20H21.333V18.221H2.667V20Z",fill:"currentColor",fillRule:"evenodd"})})),ms=a.memo(Zs);ms.displayName="HamburgerMenuIcon";/*!
 * Copyright (c) 2025-present, Okta, Inc. and/or its affiliates. All rights reserved.
 * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
 *
 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *
 * See the License for the specific language governing permissions and limitations under the License.
 */const Ks=e=>e.replace(/([A-Z])/g,"-$1").toLowerCase(),Js=({additionalStyles:e,appContainerElement:t,appContentReferenceElement:u,parentElement:c})=>{const o=u.getBoundingClientRect(),n=c.getBoundingClientRect();t.style.setProperty("position","absolute"),t.style.setProperty("top",`${o.top-n.top}px`),t.style.setProperty("left",`${o.left-n.left}px`),t.style.setProperty("width",`${o.width}px`),t.style.setProperty("height",`${o.height}px`),Object.entries(e).forEach(([r,i])=>{t.style.setProperty(Ks(r),String(i))})},ps=({appElement:e,appElementScrollingMode:t,paddingMode:u,uiShellAppAreaRef:c,uiShellResizableRefs:o})=>{const n=ae(),r=a.useRef(null),i=a.useMemo(()=>({boxSizing:"border-box",zIndex:1,...u==="comfortable"?{paddingBlock:n.Spacing5,paddingInline:n.Spacing8}:{},...u==="compact"?{paddingBlock:n.Spacing5,paddingInline:n.Spacing5}:{},...t==="horizontal"||t==="both"?{overflowX:"auto"}:{overflowX:"hidden"},...t==="vertical"||t==="both"?{overflowY:"auto"}:{overflowY:"hidden"}}),[t,u,n]);return a.useEffect(()=>{if(c.current&&e&&r.current){let p;const d=()=>{cancelAnimationFrame(p),p=requestAnimationFrame(()=>{c.current&&r.current&&Js({additionalStyles:i,appContentReferenceElement:c.current,appContainerElement:e,parentElement:r.current})})},l=o.map(h=>h.current).filter(h=>!!h),g=new ResizeObserver(d);return l.forEach(h=>{h.addEventListener("transitionend",d),g.observe(h)}),d(),()=>{g.disconnect(),l.forEach(h=>{h.removeEventListener("transitionend",d)})}}return()=>{}},[e,i,c,o]),{parentContainerRef:r}};/*!
 * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.
 * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
 *
 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *
 * See the License for the specific language governing permissions and limitations under the License.
 */const et=({containerElement:e,element:t})=>{const u=e.getBoundingClientRect().height;return t.getBoundingClientRect().height-u>=0},st=e=>{const t=window.getComputedStyle(e).overflowY;return t==="auto"||t==="scroll"},tt=e=>Array.from(e.querySelectorAll("*")).filter(t=>et({containerElement:e,element:t})).filter(t=>st(t)),at=typeof window>"u"?null:document.createElement("div"),hs=e=>{const[t,u]=a.useState(!1),c=a.useRef(0),o=a.useRef([]),n=a.useCallback(()=>{cancelAnimationFrame(c.current),c.current=requestAnimationFrame(()=>{u(o.current.reduce((l,g)=>l||g.scrollTop>0,!1))})},[]),r=a.useCallback(()=>{o.current.forEach(l=>{l.addEventListener("scroll",n)})},[n]),i=a.useCallback(()=>{o.current.forEach(l=>{l.removeEventListener("scroll",n)})},[n]),p=a.useCallback(()=>{const l=e||at;l&&(o.current=tt(l).concat(l))},[e]),d=a.useCallback(()=>{i(),p(),r(),n()},[r,i,p,n]);return a.useEffect(()=>{const l=new MutationObserver(()=>{d()});return e&&l.observe(e,{attributes:!0,attributeFilter:["style"],childList:!0,subtree:!0}),d(),()=>{cancelAnimationFrame(c.current),i(),l.disconnect()}},[e,i,d]),{isContentScrolled:t}},it=m("div")({gridArea:"app-content",position:"relative",height:"100%",width:"100%"}),rt=m("div",{shouldForwardProp:e=>e!=="appBackgroundColor"&&e!=="odysseyDesignTokens"})(({appBackgroundColor:e})=>({backgroundColor:e,height:"100%",overflow:"hidden",width:"100%"})),ot=m("div")({gridArea:"banners",zIndex:Y}),nt=m("div",{shouldForwardProp:e=>e!=="isOpen"})(({isOpen:e})=>({display:e?"block":"none",height:"100%",position:"absolute",zIndex:us})),ut=m("div",{shouldForwardProp:e=>e!=="isOpen"&&e!=="odysseyDesignTokens"})(({isOpen:e,odysseyDesignTokens:t})=>({backgroundColor:t.HueNeutralWhite,display:e?"block":"none",height:"100%",maxWidth:de,overflowY:"auto",position:"absolute",right:0,width:de,zIndex:us})),lt=m("div",{shouldForwardProp:e=>e!=="odysseyDesignTokens"})(({odysseyDesignTokens:e})=>({alignItems:"center",display:"inline-flex",gap:e.Spacing3})),ct=m("div",{shouldForwardProp:e=>e!=="odysseyDesignTokens"})(({odysseyDesignTokens:e})=>({height:te,paddingBlock:e.Spacing4,"svg, img":{maxHeight:"100%",width:"auto",maxWidth:"100%"}})),dt=m("div",{shouldForwardProp:e=>e!=="odysseyDesignTokens"})(({odysseyDesignTokens:e})=>({backgroundColor:ks(e.HueNeutral900).asFormattedString.replace(/rgb\((.+)\)$/,"rgba($1, 0.26)"),gridArea:"app-content",height:"100vh",left:0,position:"absolute",top:0,width:"100vw",zIndex:Y})),Se=m("div")({height:"100%"}),mt=m("div",{shouldForwardProp:e=>e!=="odysseyDesignTokens"})(({odysseyDesignTokens:e})=>({backgroundColor:e.HueNeutral50,display:"grid",gridGap:0,gridTemplateAreas:`
    "banners"
    "top-nav"
    "app-content"
  `,gridTemplateColumns:"1fr",gridTemplateRows:"auto auto 1fr",height:"100vh",overflow:"hidden",width:"100vw"})),pt=m("div",{shouldForwardProp:e=>e!=="odysseyDesignTokens"&&e!=="isContentScrolled"&&e!=="topNavBackgroundColor"})(({odysseyDesignTokens:e,isContentScrolled:t,topNavBackgroundColor:u})=>({alignItems:"stretch",backgroundColor:e.HueNeutralWhite||u,boxShadow:t?e.DepthMedium:void 0,clipPath:"inset(0 0 -100vh 0)",display:"flex",flexDirection:"column",gridArea:"top-nav",height:"100%",justifyContent:"center",position:"relative",transition:`box-shadow ${e.TransitionDurationMain} ${e.TransitionTimingMain}`,zIndex:Y})),ht=m("div",{shouldForwardProp:e=>e!=="odysseyDesignTokens"&&e!=="topNavBackgroundColor"})(({odysseyDesignTokens:e,topNavBackgroundColor:t})=>({alignItems:"center",display:"flex",gap:e.Spacing3,height:"100%",justifyContent:"space-between",maxHeight:te,minHeight:te,paddingBlock:e.Spacing2,paddingInline:e.Spacing3,transition:`box-shadow ${e.TransitionDurationMain} ${e.TransitionTimingMain}`,...t===e.HueNeutralWhite&&{borderBottomColor:e.HueNeutral100,borderBottomStyle:e.BorderStyleMain,borderBottomWidth:e.BorderWidthMain}})),gt=m("div",{shouldForwardProp:e=>e!=="odysseyDesignTokens"})(({odysseyDesignTokens:e})=>({paddingBlock:e.Spacing2,paddingInline:e.Spacing3})),vt=({appElement:e,appElementScrollingMode:t,hasStandardAppContentPadding:u=!0,hasSideNavProps:c,initialVisibleSections:o=["TopNav","SideNav","AppSwitcher"],onError:n=console.error,optionalComponents:r,sideNavProps:i,topNavProps:p})=>{const d=ae(),l=ls(),{isContentScrolled:g}=hs(e),h=a.useRef(null),M=a.useRef(null),y=a.useRef(null),[b,q]=a.useState(!1),[P,w]=a.useState(!1),v=a.useCallback(()=>{q(!1),w(!1)},[]);a.useEffect(()=>{const S=l==null?void 0:l.subscribeToCloseRightSideMenu(()=>{v()}),k=l==null?void 0:l.subscribeToCloseSideNavMenu(()=>{v()});return()=>{S==null||S(),k==null||k()}},[v,l]);const j=a.useCallback(()=>{w(!1),q(S=>!S)},[]),f=a.useCallback(()=>{q(!1),w(S=>!S)},[]),{parentContainerRef:I}=ps({appElement:e,appElementScrollingMode:t,paddingMode:u?"compact":"none",uiShellAppAreaRef:y,uiShellResizableRefs:[h,M,y]});return s.jsxs(s.Fragment,{children:[(b||P)&&s.jsx(dt,{odysseyDesignTokens:d,onClick:v}),s.jsxs(mt,{odysseyDesignTokens:d,ref:I,children:[s.jsx(ot,{children:r==null?void 0:r.banners}),((o==null?void 0:o.includes("TopNav"))||p)&&s.jsx(x,{fallback:null,onError:n,children:s.jsxs(pt,{isContentScrolled:g,odysseyDesignTokens:d,topNavBackgroundColor:l==null?void 0:l.topNavBackgroundColor,children:[s.jsxs(ht,{odysseyDesignTokens:d,topNavBackgroundColor:l==null?void 0:l.sideNavBackgroundColor,children:[s.jsxs(lt,{odysseyDesignTokens:d,children:[((i==null?void 0:i.isCollapsible)||!(i!=null&&i.isCollapsed))&&s.jsx(se,{onClick:j,startIcon:s.jsx(ms,{}),testId:"sidenav-menu--icon",variant:"floating"}),s.jsx(ct,{odysseyDesignTokens:d,children:i!=null&&i.isLoading?s.jsx(Es,{height:24,variant:"rounded",width:67}):s.jsx(Ts,{...i==null?void 0:i.logoProps})})]}),(r==null?void 0:r.rightSideMenu)&&s.jsx(se,{onClick:f,startIcon:P?s.jsx(ws,{}):s.jsx(Is,{}),testId:"userprofile-menu--icon",variant:"floating"})]}),(r==null?void 0:r.topNavLeftSide)&&s.jsx(gt,{odysseyDesignTokens:d,children:r==null?void 0:r.topNavLeftSide})]})}),s.jsxs(it,{children:[s.jsxs(nt,{isOpen:b,children:[(o==null?void 0:o.includes("SideNav"))&&!c&&s.jsx(x,{fallback:null,onError:n,children:s.jsx(X,{isLoading:!0,sideNavItems:ns})}),c&&i&&s.jsx(x,{fallback:null,onError:n,children:s.jsx(Se,{children:s.jsx(X,{...i,appName:void 0,logoProps:void 0,...i.hasCustomFooter&&(r!=null&&r.sideNavFooter)?{footerComponent:r.sideNavFooter,footerItems:void 0,hasCustomFooter:i.hasCustomFooter}:{footerItems:i.footerItems,hasCustomFooter:!1},isCollapsed:!1,isCollapsible:!1,isObtrusive:!0,onCollapse:v})})})]}),s.jsx(ut,{isOpen:P,odysseyDesignTokens:d,children:s.jsx(Se,{children:r==null?void 0:r.rightSideMenu})}),s.jsx(rt,{appBackgroundColor:l==null?void 0:l.appBackgroundColor,ref:y,tabIndex:0,children:s.jsx(oe,{isContentScrolled:g})})]})]})]})},gs=a.memo(vt);gs.displayName="NarrowUiShellContent";/*!
 * Copyright (c) 2025-present, Okta, Inc. and/or its affiliates. All rights reserved.
 * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
 *
 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *
 * See the License for the specific language governing permissions and limitations under the License.
 */const bt={narrow:0,medium:600,wide:800},ft=(e=bt)=>{const t=ee(`(min-width: ${e.narrow}px)`),u=ee(`(min-width: ${e.medium}px)`);return ee(`(min-width: ${e.wide}px)`)?"wide":u?"medium":t?"narrow":"none"};/*!
 * Copyright (c) 2025-present, Okta, Inc. and/or its affiliates. All rights reserved.
 * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
 *
 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *
 * See the License for the specific language governing permissions and limitations under the License.
 */const vs=Symbol("Turn off AppSwitcher in the event of an error.");/*!
 * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.
 * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
 *
 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *
 * See the License for the specific language governing permissions and limitations under the License.
 */const St=[],yt=m("div",{shouldForwardProp:e=>e!=="appBackgroundColor"&&e!=="odysseyDesignTokens"})(({appBackgroundColor:e})=>({backgroundColor:e,gridArea:"app-content",position:"relative"})),xt=m("div")({gridArea:"app-switcher"}),Ct=m("div")({gridArea:"banners"}),qt=m("div")({gridArea:"side-nav"}),Mt=m("div",{shouldForwardProp:e=>e!=="odysseyDesignTokens"})(({odysseyDesignTokens:e})=>({backgroundColor:e.HueNeutral50,display:"grid",gridGap:0,gridTemplateAreas:`
    "banners banners banners"
    "app-switcher side-nav top-nav"
    "app-switcher side-nav app-content"
  `,gridTemplateColumns:"auto auto 1fr",gridTemplateRows:"auto auto 1fr",height:"100vh",width:"100vw"})),Nt=m("div")({gridArea:"top-nav"}),Pt=({appElement:e,appElementScrollingMode:t,appSwitcherProps:u,hasStandardAppContentPadding:c=!0,hasSideNavProps:o,initialVisibleSections:n=["TopNav","SideNav","AppSwitcher"],onError:r=console.error,optionalComponents:i,sideNavProps:p,topNavProps:d})=>{const l=ae(),g=ls(),{isContentScrolled:h}=hs(e),M=a.useRef(null),y=a.useRef(null),b=a.useRef(null),{parentContainerRef:q}=ps({appElement:e,appElementScrollingMode:t,paddingMode:c?"comfortable":"none",uiShellAppAreaRef:b,uiShellResizableRefs:[M,y,b]});return s.jsxs(Mt,{odysseyDesignTokens:l,ref:q,children:[s.jsx(Ct,{children:i==null?void 0:i.banners}),s.jsxs(xt,{children:[(n==null?void 0:n.includes("AppSwitcher"))&&!u&&s.jsx(x,{fallback:null,onError:r,children:s.jsx(me,{appIcons:St,isLoading:!0,selectedAppName:""})}),u&&u!==vs&&s.jsx(x,{fallback:null,onError:r,children:s.jsx(me,{...u})})]}),s.jsxs(qt,{ref:M,children:[(n==null?void 0:n.includes("SideNav"))&&!o&&s.jsx(x,{fallback:null,onError:r,children:s.jsx(X,{isLoading:!0,sideNavItems:ns})}),o&&p&&s.jsx(x,{fallback:null,onError:r,children:s.jsx(X,{...p,...p.hasCustomFooter&&(i!=null&&i.sideNavFooter)?{footerComponent:i.sideNavFooter,footerItems:void 0,hasCustomFooter:p.hasCustomFooter}:{footerItems:p.footerItems,hasCustomFooter:!1}})})]}),s.jsxs(Nt,{ref:y,children:[(n==null?void 0:n.includes("TopNav"))&&d===void 0&&s.jsx(x,{fallback:null,onError:r,children:s.jsx(pe,{leftSideComponent:i==null?void 0:i.topNavLeftSide,rightSideComponent:i==null?void 0:i.topNavRightSide})}),d&&s.jsx(x,{fallback:null,onError:r,children:s.jsx(pe,{...d,leftSideComponent:i==null?void 0:i.topNavLeftSide,rightSideComponent:i==null?void 0:i.topNavRightSide})})]}),s.jsx(yt,{appBackgroundColor:g==null?void 0:g.appBackgroundColor,ref:b,tabIndex:0,children:s.jsx(oe,{isContentScrolled:h})})]})},bs=a.memo(Pt);bs.displayName="WideUiShellContent";/*!
 * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.
 * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
 *
 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *
 * See the License for the specific language governing permissions and limitations under the License.
 */const ye={sideNavProps:void 0,topNavProps:void 0},xe=s.jsx("div",{"data-error":!0}),wt=({appBackgroundColor:e,appBackgroundContrastMode:t,appElement:u,appElementScrollingMode:c,breakpointConfig:o,closeSideNavMenu:n,hasStandardAppContentPadding:r,initialVisibleSections:i,onError:p=console.error,onSubscriptionCreated:d,optionalComponents:l,sideNavBackgroundColor:g,sideNavBackgroundContrastColor:h,subscribeToCloseRightSideMenu:M,subscribeToCloseSideNavMenu:y,subscribeToPropChanges:b,topNavBackgroundColor:q,uiShellAppElement:P,uiShellStylesElement:w})=>{var I,S;const[v,j]=a.useState(ye),f=ft(o);return a.useEffect(()=>{const k=b(U=>{j(U||ye)});return d(),()=>{k()}},[d,b]),f==="none"?null:s.jsx(x,{fallback:xe,onError:p,children:s.jsx(os,{emotionRootElement:w,hasCssBaseline:!0,shadowRootElement:P,children:s.jsx(x,{fallback:xe,onError:p,children:s.jsxs(js,{appBackgroundColor:e,appBackgroundContrastMode:t,closeSideNavMenu:n,sideNavBackgroundColor:g,sideNavBackgroundContrastColor:h,subscribeToCloseRightSideMenu:M,subscribeToCloseSideNavMenu:y,topNavBackgroundColor:q,children:[f==="narrow"&&s.jsx(gs,{...v,appElement:u,appElementScrollingMode:c,hasSideNavProps:!!v.sideNavProps,hasStandardAppContentPadding:r,initialVisibleSections:i,onError:p,optionalComponents:l}),(f==="medium"||f==="wide")&&s.jsx(bs,{...v,sideNavProps:{...v.sideNavProps,hasSessionStorageState:f==="wide",isCollapsed:f==="medium"||((I=v.sideNavProps)==null?void 0:I.isCollapsed),isCollapsible:f==="medium"||((S=v.sideNavProps)==null?void 0:S.isCollapsible)},appElement:u,appElementScrollingMode:c,hasSideNavProps:!!v.sideNavProps,hasStandardAppContentPadding:r,initialVisibleSections:i,onError:p,optionalComponents:l})]})})})})},Z=a.memo(wt);Z.displayName="UiShell";/*!
 * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.
 * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
 *
 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *
 * See the License for the specific language governing permissions and limitations under the License.
 */const ne=a.createContext({}),kt=()=>a.useContext(ne),It=a.forwardRef(({children:e,...t},u)=>{const c=a.useMemo(()=>({...t,ref:u}),[t,u]);return E(ne.Provider,{value:c,children:e})}),fs=a.memo(It);fs.displayName="MuiPropsChild";const Tt=({ariaType:e,children:t,placement:u="top",testId:c,text:o,translate:n})=>E(qs,{"data-se":c,describeChild:e==="description",placement:u,title:o,translate:n,children:E(fs,{children:t})}),Ss=a.memo(Tt);Ss.displayName="Tooltip";/*!
 * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.
 * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
 *
 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *
 * See the License for the specific language governing permissions and limitations under the License.
 */const jt=a.createContext({isFullWidth:!1}),Et=()=>a.useContext(jt),At=({ariaControls:e,ariaDescribedBy:t,ariaExpanded:u,ariaHasPopup:c,ariaLabel:o,ariaLabelledBy:n,buttonRef:r,children:i,endIcon:p,href:d,id:l,isDisabled:g,isFullWidth:h,label:M="",onClick:y,size:b="medium",startIcon:q,tabIndex:P,testId:w,tooltipText:v,translate:j,type:f="button",variant:I})=>{const S=kt(),k=I==="tertiary"?"secondary":I,U=a.useRef(null),K=Et(),ue=a.useMemo(()=>K.isFullWidth?K.isFullWidth:h,[K,h]);a.useImperativeHandle(r,()=>({focus:()=>{var N;(N=U.current)==null||N.focus()}}),[]);const le=a.useCallback(N=>E(Ms,{...N,"aria-controls":e,"aria-describedby":t,"aria-expanded":u,"aria-haspopup":c,"aria-label":o,"aria-labelledby":n,"data-se":w,disabled:g,endIcon:p,fullWidth:ue,href:d,id:l,onClick:y,ref:J=>{var ce;J&&(U.current=J,(ce=N==null?void 0:N.ref)==null||ce.call(N,J))},size:b,startIcon:q,tabIndex:P,translate:j,type:f,variant:k,children:i??M}),[e,t,u,c,o,n,p,d,l,g,ue,M,i,y,b,q,P,w,j,f,k]);return v?E(Ss,{ariaType:"description",placement:"top",text:v,children:E(ne.Consumer,{children:le})}):le(S)},ys=a.memo(At);ys.displayName="BaseButton";/*!
 * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.
 * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
 *
 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *
 * See the License for the specific language governing permissions and limitations under the License.
 */const Dt=()=>{const e=new Map;return{publish:c=>{Array.from(e.values()).forEach(o=>{o(c)})},subscribe:c=>{const o=Symbol();return e.set(o,c),()=>{e.delete(o)}}}},Pi={component:Z,parameters:{layout:"fullscreen"},tags:["!autodocs"],argTypes:{appBackgroundColor:{control:"color",description:"Custom color for app content background. Should only be used as a stop-gap to allow support for dark mode.",table:{type:{summary:"hex color code"}}},appElement:{control:void 0,description:"Element that the consuming app renders into.",table:{type:{summary:"InputType"}}},appElementScrollingMode:{control:void 0,description:"Mode used for scrolling.",table:{type:{summary:"InputType"}}},hasStandardAppContentPadding:{control:"boolean",description:"defaults to `true`. If `false`, the content area will have no padding provided",table:{type:{summary:"boolean"}}},initialVisibleSections:{control:"text",description:"A list of UiShell components that should be (minimally) rendered initially, with their isLoading property set when applicable. Allows the initial visibility of UiShell components to be influenced.",table:{type:{summary:"string"}}},onError:{description:'Notifies when a React rendering error occurs. This could be useful for logging, flagging "p0"s, and recovering UI Shell when errors occur.',table:{defaultValue:{summary:"console.error"},type:{summary:"string"}}},onSubscriptionCreated:{description:"Notifies when subscribed to prop changes. UI Shell listens to prop updates, and it won't subscribe synchronously. Because of that, this callback notifies when that subscription is ready.",table:{type:{summary:"string"}}},optionalComponents:{description:"Components that will render as children of various other components such as the top nav or side nav.",table:{type:{summary:"ReactElement"}}},sideNavBackgroundColor:{control:"color",description:"Custom color for side nav background",table:{type:{summary:"hex color code"}}},subscribeToPropChanges:{description:"This is a callback that provides a subscriber callback to listen for changes to state. It allows UI Shell to listen for state changes. The props coming in this callback go directly to a React state; therefore, it shares the same signature and provides a previous state.",table:{type:{summary:"MouseEventHandler"}}},topNavBackgroundColor:{control:"color",description:"Custom color for top nav background. Should only be used as a stop-gap to allow support for dark mode.",table:{type:{summary:"hex color code"}}}},args:{appElement:document.createElement("div"),appElementScrollingMode:"vertical",onSubscriptionCreated:Cs("onSubscriptionCreated"),uiShellAppElement:document.createElement("div"),uiShellStylesElement:document.head}},A={appIcons:[{appIconDefaultUrl:"/appswitcher/admin-app-default.svg",appIconSelectedUrl:"/appswitcher/admin-app-selected.svg",appName:"saasure",label:"Admin Dashboard",linkUrl:"http://rain-admin.okta1.com:1802/admin/dashboard"},{appIconDefaultUrl:"/appswitcher/okta-dashboard-default.svg",appIconSelectedUrl:"/appswitcher/okta-dashboard-selected.svg",appName:"okta_enduser",label:"Okta Dashboard",linkUrl:"http://rain.okta1.com:1802/app/UserHome"},{appIconDefaultUrl:"/appswitcher/workflows-default.svg",appIconSelectedUrl:"/appswitcher/workflows-selected.svg",appName:"okta_flow_sso",label:"Okta Workflows",linkUrl:"http://rain-admin.okta1.com:1802/flow/go"}],isLoading:!1,selectedAppName:"okta_enduser"},D={appName:"Enduser",isCollapsible:!0,sideNavItems:[{id:"item1",label:"Add new folder",endIcon:s.jsx(he,{}),onClick:()=>{}},{id:"item2",label:"Admin",isSectionHeader:!0},{id:"item3",href:"/?path=/docs/mui-components-typography--docs",label:"Users",startIcon:s.jsx(ie,{})},{id:"item4",label:"Dashboard",startIcon:s.jsx(be,{}),isDisabled:!0,nestedNavItems:[{id:"item4-1",href:"/",label:"Home"}]},{id:"item5",href:"/",label:"Applications",startIcon:s.jsx(ge,{})},{id:"item6",label:"Onboarding",startIcon:s.jsx(fe,{}),nestedNavItems:[{id:"item6-1",href:"/",label:"Start"},{id:"item6-2",href:"/",label:"Tasks"},{id:"item6-3",href:"/",label:"Getting Started"}]},{id:"item7",href:"/",label:"Directory",startIcon:s.jsx(Os,{})},{id:"item8",label:"Resource Management",isSectionHeader:!0},{id:"item9",href:"/",label:"Kubernetes",startIcon:s.jsx(Hs,{}),severity:"info",statusLabel:"BETA"},{id:"item10",href:"/",label:"Reports",startIcon:s.jsx(_s,{})},{id:"item11",href:"/",label:"Identify Governance",target:"_blank",isDisabled:!0,startIcon:s.jsx(zs,{})},{id:"item12",href:"/",label:"Workflows",target:"_blank",startIcon:s.jsx(Vs,{})},{id:"item13",label:"Security Administration",isSectionHeader:!0},{id:"item14",href:"/",label:"Security",startIcon:s.jsx(ve,{}),endIcon:s.jsx(ve,{})},{id:"item15",label:"Settings",isDefaultExpanded:!0,isSortable:!0,startIcon:s.jsx($s,{}),nestedNavItems:[{id:"item15-1",href:"/",label:"General"},{id:"item15-2",href:"/",label:"Custom Domain",isSelected:!0},{id:"item15-3",label:"Account Management"},{id:"item15-4",href:"/",label:"Authentication Policies",isDisabled:!0},{id:"item15-5",href:"/",label:"IDP Configuration"}]},{id:"item16",href:"/",label:"System Configuration",startIcon:s.jsx(fe,{})},{id:"item17-0",label:"Enduser",isSectionHeader:!0},{id:"item17",label:"My Apps",isDefaultExpanded:!0,isSortable:!0,startIcon:s.jsx(be,{}),nestedNavItems:[{id:"item17-1",label:"Recently Used"},{id:"item17-2",label:"Work"},{id:"item17-3",label:"Add section",endIcon:s.jsx(he,{})}]},{id:"item18",label:"Notifications",startIcon:s.jsx(Ws,{}),count:1},{id:"item19",label:"Add apps",startIcon:s.jsx(ge,{})}],footerItems:[{id:"footer-item-1",label:"Docs",href:"/"},{id:"footer-item-2",label:"Privacy"},{id:"footer-item-3",label:"Security",href:"/"}]},R={},T={topNavLeftSide:s.jsx("div",{children:s.jsx(As,{label:"Search",placeholder:"Search..."})}),topNavRightSide:s.jsx(ds,{orgName:"ORG123",profileIcon:s.jsx(ie,{}),userName:"test.user@test.com"})},xs=()=>{const[,e]=a.useState(0);return a.useEffect(()=>{e(1)},[]),a.useRef(null)},B={decorators:[C],args:{subscribeToPropChanges:e=>(e({sideNavProps:{appName:"Odyssey Storybook",sideNavItems:[]}}),()=>{})}},F={decorators:[C],args:{subscribeToPropChanges:()=>rs()}},L={decorators:[C],args:{initialVisibleSections:[],subscribeToPropChanges:()=>rs()}},O={decorators:[C],args:{initialVisibleSections:["TopNav"],optionalComponents:T,subscribeToPropChanges:e=>(e({topNavProps:R}),()=>{})}},H={decorators:[C],args:{hasStandardAppContentPadding:!1,initialVisibleSections:["AppSwitcher"],subscribeToPropChanges:e=>(e({appSwitcherProps:A}),()=>{})}},z={decorators:[C],args:{hasStandardAppContentPadding:!1,initialVisibleSections:["AppSwitcher","SideNav","TopNav"],subscribeToPropChanges:e=>(e({appSwitcherProps:vs}),()=>{})}},W={decorators:[C],args:{optionalComponents:T,subscribeToPropChanges:e=>(e({appSwitcherProps:{...A,isLoading:!0},sideNavProps:{...D,isLoading:!0},topNavProps:{}}),()=>{})}},_={decorators:[C],args:{appBackgroundColor:void 0,optionalComponents:T,sideNavBackgroundColor:void 0,subscribeToPropChanges:e=>(e({topNavProps:R,sideNavProps:{...D,logoProps:{isSameBackgroundAsMain:!0}}}),()=>{}),topNavBackgroundColor:void 0}},V={decorators:[C],args:{optionalComponents:T,subscribeToPropChanges:e=>(e({appSwitcherProps:A,sideNavProps:D,topNavProps:R}),()=>{})}},$={decorators:[C],args:{initialVisibleSections:["AppSwitcher","TopNav"],optionalComponents:T,subscribeToPropChanges:e=>(e({appSwitcherProps:A,sideNavProps:{...D,isCollapsed:!0,isCollapsible:!1},topNavProps:R}),()=>{})}},Ce="30px",G={args:{optionalComponents:T,subscribeToPropChanges:e=>(e({appSwitcherProps:A,sideNavProps:{...D,logoProps:{logoComponent:s.jsx(Ns.One,{})}},topNavProps:R}),()=>{})},render:function(t){const u=xs(),[c,o]=a.useState(!1),n=a.useCallback(()=>{o(!0)},[]);return a.useEffect(()=>{if(c){const r=document.getElementById("lineHeightOutput");r&&(r.innerText=getComputedStyle(r).lineHeight)}},[c]),s.jsxs(s.Fragment,{children:[s.jsxs("div",{ref:u,children:[s.jsx("style",{children:`body { line-height: ${Ce} !important; }`}),c&&s.jsxs(cs,{children:[s.jsxs("div",{style:{float:"right",width:"200px",height:"200px",padding:"20px",backgroundColor:"lightgray",zIndex:1,position:"relative"},children:["A box to demonstrate whether the TopNav shadow clips or not (it should not since"," ",s.jsx("a",{href:"https://github.com/okta/odyssey/pull/2461/files#diff-45b62c71e0e59aaed6b2683e0efe6fb7239b2bcf5573f4946340992efeff3c4a",children:"this PR"}),")."]}),s.jsxs("p",{children:["Line Height: ",s.jsx("span",{id:"lineHeightOutput"}),' <- THIS VALUE SHOULD BE "',Ce,`" if there hasn't been a regression.`]}),"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris lacinia leo quis sodales scelerisque. Maecenas tempor eget nunc sit amet ultrices. Maecenas et varius ante. Nulla eu quam sit amet orci fermentum dictum sit amet scelerisque libero. Proin luctus semper elit, ut pretium massa tristique a. Mauris hendrerit ex eu commodo egestas. Etiam a lacus aliquet, convallis metus et, sollicitudin odio. Fusce vehicula purus sed orci elementum, ut cursus diam sollicitudin. Pellentesque pulvinar nibh turpis, eu finibus dolor egestas eget. Duis tellus mauris, pulvinar sit amet ante a, aliquet laoreet sapien. Ut quis tempus massa. Fusce fringilla mattis lacinia. Cras at pharetra quam, eu ultrices ipsum. Etiam malesuada, ex consectetur fringilla faucibus, quam lorem luctus diam, vitae lobortis urna lorem ac libero. Nulla a fermentum ligula, ut pulvinar odio. Cras in dictum nibh. Ut et orci sodales, laoreet sem nec, volutpat sapien. Phasellus dui turpis, euismod vitae euismod porta, semper a tellus. Morbi bibendum eros quam, et suscipit ex blandit eu. Etiam placerat, tellus viverra rutrum porttitor, elit arcu molestie nibh, at porta arcu odio ut neque. Donec id odio ut neque malesuada pulvinar a in tortor. Fusce eu urna lobortis, rhoncus odio nec, scelerisque dolor. Donec tempor eros sed condimentum rutrum. Vivamus ac odio ac erat bibendum ultricies. Cras nec libero sit amet leo luctus gravida. Praesent placerat massa ex. Donec vehicula orci ac consequat mollis. Sed vitae magna ligula. Nulla pulvinar lectus ex, sed varius enim pulvinar vel. Morbi viverra vitae dui sit amet mattis. Phasellus quis augue viverra, rhoncus tellus non, elementum massa. Donec posuere luctus ultrices. Ut eu massa sem. Aliquam sed mattis nulla, ac fermentum magna. Vestibulum ac ex ut massa molestie gravida. Cras est arcu, varius nec fringilla semper, aliquet id nunc. Quisque facilisis, nulla nec ornare vehicula, justo urna feugiat lorem, nec pretium odio nisl facilisis diam. Sed a quam in risus semper convallis sed eget mauris. Proin vitae purus augue. Ut et risus justo. Mauris porta, leo non vestibulum cursus, ante nisi sagittis magna, et convallis enim arcu a diam. Ut tincidunt urna ac massa consectetur euismod. Aenean sagittis nisi mi, eu bibendum arcu auctor at. Sed et urna sit amet sapien euismod vulputate molestie eu ipsum. Phasellus mattis semper neque, et porttitor mi scelerisque eget. Donec non egestas ex, ac consequat nunc. Nunc sed risus ac orci ullamcorper lacinia vel at risus. Nulla et odio eros. Vivamus tempor ultricies mi sed luctus. Duis faucibus sollicitudin odio, quis rhoncus orci volutpat nec. Vivamus id eros et est aliquam porttitor. Maecenas maximus magna sed est condimentum hendrerit. Integer fringilla posuere nisl, vitae molestie magna dictum id. Suspendisse volutpat pharetra mauris, sed vehicula nulla suscipit a. Morbi sed augue sodales, molestie purus et, egestas enim. Proin ut metus tempus, ultricies neque vel, vulputate lectus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris lacinia leo quis sodales scelerisque. Maecenas tempor eget nunc sit amet ultrices. Maecenas et varius ante. Nulla eu quam sit amet orci fermentum dictum sit amet scelerisque libero. Proin luctus semper elit, ut pretium massa tristique a. Mauris hendrerit ex eu commodo egestas. Etiam a lacus aliquet, convallis metus et, sollicitudin odio. Fusce vehicula purus sed orci elementum, ut cursus diam sollicitudin. Pellentesque pulvinar nibh turpis, eu finibus dolor egestas eget. Duis tellus mauris, pulvinar sit amet ante a, aliquet laoreet sapien. Ut quis tempus massa. Fusce fringilla mattis lacinia. Cras at pharetra quam, eu ultrices ipsum. Etiam malesuada, ex consectetur fringilla faucibus, quam lorem luctus diam, vitae lobortis urna lorem ac libero. Nulla a fermentum ligula, ut pulvinar odio. Cras in dictum nibh. Ut et orci sodales, laoreet sem nec, volutpat sapien. Phasellus dui turpis, euismod vitae euismod porta, semper a tellus. Morbi bibendum eros quam, et suscipit ex blandit eu. Etiam placerat, tellus viverra rutrum porttitor, elit arcu molestie nibh, at porta arcu odio ut neque. Donec id odio ut neque malesuada pulvinar a in tortor. Fusce eu urna lobortis, rhoncus odio nec, scelerisque dolor. Donec tempor eros sed condimentum rutrum. Vivamus ac odio ac erat bibendum ultricies. Cras nec libero sit amet leo luctus gravida. Praesent placerat massa ex. Donec vehicula orci ac consequat mollis. Sed vitae magna ligula. Nulla pulvinar lectus ex, sed varius enim pulvinar vel. Morbi viverra vitae dui sit amet mattis. Phasellus quis augue viverra, rhoncus tellus non, elementum massa. Donec posuere luctus ultrices. Ut eu massa sem. Aliquam sed mattis nulla, ac fermentum magna. Vestibulum ac ex ut massa molestie gravida. Cras est arcu, varius nec fringilla semper, aliquet id nunc. Quisque facilisis, nulla nec ornare vehicula, justo urna feugiat lorem, nec pretium odio nisl facilisis diam. Sed a quam in risus semper convallis sed eget mauris. Proin vitae purus augue. Ut et risus justo. Mauris porta, leo non vestibulum cursus, ante nisi sagittis magna, et convallis enim arcu a diam. Ut tincidunt urna ac massa consectetur euismod. Aenean sagittis nisi mi, eu bibendum arcu auctor at. Sed et urna sit amet sapien euismod vulputate molestie eu ipsum. Phasellus mattis semper neque, et porttitor mi scelerisque eget. Donec non egestas ex, ac consequat nunc. Nunc sed risus ac orci ullamcorper lacinia vel at risus. Nulla et odio eros. Vivamus tempor ultricies mi sed luctus. Duis faucibus sollicitudin odio, quis rhoncus orci volutpat nec. Vivamus id eros et est aliquam porttitor. Maecenas maximus magna sed est condimentum hendrerit. Integer fringilla posuere nisl, vitae molestie magna dictum id. Suspendisse volutpat pharetra mauris, sed vehicula nulla suscipit a. Morbi sed augue sodales, molestie purus et, egestas enim. Proin ut metus tempus, ultricies neque vel, vulputate lectus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris lacinia leo quis sodales scelerisque. Maecenas tempor eget nunc sit amet ultrices. Maecenas et varius ante. Nulla eu quam sit amet orci fermentum dictum sit amet scelerisque libero. Proin luctus semper elit, ut pretium massa tristique a. Mauris hendrerit ex eu commodo egestas. Etiam a lacus aliquet, convallis metus et, sollicitudin odio. Fusce vehicula purus sed orci elementum, ut cursus diam sollicitudin. Pellentesque pulvinar nibh turpis, eu finibus dolor egestas eget. Duis tellus mauris, pulvinar sit amet ante a, aliquet laoreet sapien. Ut quis tempus massa. Fusce fringilla mattis lacinia. Cras at pharetra quam, eu ultrices ipsum. Etiam malesuada, ex consectetur fringilla faucibus, quam lorem luctus diam, vitae lobortis urna lorem ac libero. Nulla a fermentum ligula, ut pulvinar odio. Cras in dictum nibh. Ut et orci sodales, laoreet sem nec, volutpat sapien. Phasellus dui turpis, euismod vitae euismod porta, semper a tellus. Morbi bibendum eros quam, et suscipit ex blandit eu. Etiam placerat, tellus viverra rutrum porttitor, elit arcu molestie nibh, at porta arcu odio ut neque. Donec id odio ut neque malesuada pulvinar a in tortor. Fusce eu urna lobortis, rhoncus odio nec, scelerisque dolor. Donec tempor eros sed condimentum rutrum. Vivamus ac odio ac erat bibendum ultricies. Cras nec libero sit amet leo luctus gravida. Praesent placerat massa ex. Donec vehicula orci ac consequat mollis. Sed vitae magna ligula. Nulla pulvinar lectus ex, sed varius enim pulvinar vel. Morbi viverra vitae dui sit amet mattis. Phasellus quis augue viverra, rhoncus tellus non, elementum massa. Donec posuere luctus ultrices. Ut eu massa sem. Aliquam sed mattis nulla, ac fermentum magna. Vestibulum ac ex ut massa molestie gravida. Cras est arcu, varius nec fringilla semper, aliquet id nunc. Quisque facilisis, nulla nec ornare vehicula, justo urna feugiat lorem, nec pretium odio nisl facilisis diam. Sed a quam in risus semper convallis sed eget mauris. Proin vitae purus augue. Ut et risus justo. Mauris porta, leo non vestibulum cursus, ante nisi sagittis magna, et convallis enim arcu a diam. Ut tincidunt urna ac massa consectetur euismod. Aenean sagittis nisi mi, eu bibendum arcu auctor at. Sed et urna sit amet sapien euismod vulputate molestie eu ipsum. Phasellus mattis semper neque, et porttitor mi scelerisque eget. Donec non egestas ex, ac consequat nunc. Nunc sed risus ac orci ullamcorper lacinia vel at risus. Nulla et odio eros. Vivamus tempor ultricies mi sed luctus. Duis faucibus sollicitudin odio, quis rhoncus orci volutpat nec. Vivamus id eros et est aliquam porttitor. Maecenas maximus magna sed est condimentum hendrerit. Integer fringilla posuere nisl, vitae molestie magna dictum id. Suspendisse volutpat pharetra mauris, sed vehicula nulla suscipit a. Morbi sed augue sodales, molestie purus et, egestas enim. Proin ut metus tempus, ultricies neque vel, vulputate lectus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris lacinia leo quis sodales scelerisque. Maecenas tempor eget nunc sit amet ultrices. Maecenas et varius ante. Nulla eu quam sit amet orci fermentum dictum sit amet scelerisque libero. Proin luctus semper elit, ut pretium massa tristique a. Mauris hendrerit ex eu commodo egestas. Etiam a lacus aliquet, convallis metus et, sollicitudin odio. Fusce vehicula purus sed orci elementum, ut cursus diam sollicitudin. Pellentesque pulvinar nibh turpis, eu finibus dolor egestas eget. Duis tellus mauris, pulvinar sit amet ante a, aliquet laoreet sapien. Ut quis tempus massa. Fusce fringilla mattis lacinia. Cras at pharetra quam, eu ultrices ipsum. Etiam malesuada, ex consectetur fringilla faucibus, quam lorem luctus diam, vitae lobortis urna lorem ac libero. Nulla a fermentum ligula, ut pulvinar odio. Cras in dictum nibh. Ut et orci sodales, laoreet sem nec, volutpat sapien. Phasellus dui turpis, euismod vitae euismod porta, semper a tellus. Morbi bibendum eros quam, et suscipit ex blandit eu. Et…"]})]}),s.jsx(Z,{...t,appElement:u.current,onSubscriptionCreated:n})]})}},{publish:Rt,subscribe:Ut}=Dt(),Q={decorators:[C],args:{optionalComponents:{...T,banners:s.jsx(Fs,{severity:"success",text:"This is an app!"}),rightSideMenu:s.jsx(Bs,{sx:{display:"flex",justifyContent:"center"},children:s.jsx(ys,{onClick:()=>Rt(),variant:"floating",children:s.jsx(ds,{orgName:"ORG123",profileIcon:s.jsx(ie,{}),userName:"test.user@test.com"})})})},subscribeToCloseRightSideMenu:Ut,subscribeToPropChanges:e=>(e({appSwitcherProps:A,sideNavProps:D,topNavProps:R}),()=>{})},render:function(t){const u=xs(),[c,o]=a.useState(!1),n=a.useCallback(()=>{o(!0)},[]);return s.jsxs(s.Fragment,{children:[s.jsxs("div",{ref:u,children:[s.jsx("div",{[Ds]:""}),c&&s.jsx(os,{children:s.jsx(Rs,{description:"This is my app.",title:"Access Certification",children:s.jsx(Ls,{regions:[1],children:s.jsxs(cs,{children:[s.jsx("div",{style:{marginBlockEnd:`${16/14}rem`},children:s.jsx(Us,{children:"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris lacinia leo quis sodales scelerisque. Maecenas tempor eget nunc sit amet ultrices. Maecenas et varius ante. Nulla eu quam sit amet orci fermentum dictum sit amet scelerisque libero. Proin luctus semper elit, ut pretium massa tristique a. Mauris hendrerit ex eu commodo egestas. Etiam a lacus aliquet, convallis metus et, sollicitudin odio. Fusce vehicula purus sed orci elementum, ut cursus diam sollicitudin. Pellentesque pulvinar nibh turpis, eu finibus dolor egestas eget. Duis tellus mauris, pulvinar sit amet ante a, aliquet laoreet sapien. Ut quis tempus massa. Fusce fringilla mattis lacinia. Cras at pharetra quam, eu ultrices ipsum."})}),s.jsx("div",{children:s.jsx(se,{label:"I understand",variant:"primary"})})]})})})})]}),s.jsx(Z,{...t,appElement:u.current,onSubscriptionCreated:n})]})}};var qe,Me,Ne;B.parameters={...B.parameters,docs:{...(qe=B.parameters)==null?void 0:qe.docs,source:{originalSource:`{
  decorators: [OdysseyStorybookThemeDecorator],
  args: {
    subscribeToPropChanges: subscriber => {
      subscriber({
        sideNavProps: {
          appName: "Odyssey Storybook",
          sideNavItems: []
        }
      });
      return () => {};
    }
  }
}`,...(Ne=(Me=B.parameters)==null?void 0:Me.docs)==null?void 0:Ne.source}}};var Pe,we,ke;F.parameters={...F.parameters,docs:{...(Pe=F.parameters)==null?void 0:Pe.docs,source:{originalSource:`{
  decorators: [OdysseyStorybookThemeDecorator],
  args: {
    subscribeToPropChanges: () => fn()
  }
}`,...(ke=(we=F.parameters)==null?void 0:we.docs)==null?void 0:ke.source}}};var Ie,Te,je;L.parameters={...L.parameters,docs:{...(Ie=L.parameters)==null?void 0:Ie.docs,source:{originalSource:`{
  decorators: [OdysseyStorybookThemeDecorator],
  args: {
    initialVisibleSections: [],
    subscribeToPropChanges: () => fn()
  }
}`,...(je=(Te=L.parameters)==null?void 0:Te.docs)==null?void 0:je.source}}};var Ee,Ae,De;O.parameters={...O.parameters,docs:{...(Ee=O.parameters)==null?void 0:Ee.docs,source:{originalSource:`{
  decorators: [OdysseyStorybookThemeDecorator],
  args: {
    initialVisibleSections: ["TopNav"],
    optionalComponents: sharedOptionalComponents,
    subscribeToPropChanges: subscriber => {
      subscriber({
        topNavProps: sharedTopNavProps
      });
      return () => {};
    }
  }
}`,...(De=(Ae=O.parameters)==null?void 0:Ae.docs)==null?void 0:De.source}}};var Re,Ue,Be;H.parameters={...H.parameters,docs:{...(Re=H.parameters)==null?void 0:Re.docs,source:{originalSource:`{
  decorators: [OdysseyStorybookThemeDecorator],
  args: {
    hasStandardAppContentPadding: false,
    initialVisibleSections: ["AppSwitcher"],
    subscribeToPropChanges: subscriber => {
      subscriber({
        appSwitcherProps: sharedAppSwitcherProps
      });
      return () => {};
    }
  }
}`,...(Be=(Ue=H.parameters)==null?void 0:Ue.docs)==null?void 0:Be.source}}};var Fe,Le,Oe;z.parameters={...z.parameters,docs:{...(Fe=z.parameters)==null?void 0:Fe.docs,source:{originalSource:`{
  decorators: [OdysseyStorybookThemeDecorator],
  args: {
    hasStandardAppContentPadding: false,
    initialVisibleSections: ["AppSwitcher", "SideNav", "TopNav"],
    subscribeToPropChanges: subscriber => {
      subscriber({
        appSwitcherProps: TURN_OFF_APP_SWITCHER
      });
      return () => {};
    }
  }
}`,...(Oe=(Le=z.parameters)==null?void 0:Le.docs)==null?void 0:Oe.source}}};var He,ze,We;W.parameters={...W.parameters,docs:{...(He=W.parameters)==null?void 0:He.docs,source:{originalSource:`{
  decorators: [OdysseyStorybookThemeDecorator],
  args: {
    optionalComponents: sharedOptionalComponents,
    subscribeToPropChanges: subscriber => {
      subscriber({
        appSwitcherProps: {
          ...sharedAppSwitcherProps,
          isLoading: true
        },
        sideNavProps: {
          ...sharedSideNavProps,
          isLoading: true
        },
        topNavProps: {}
      });
      return () => {};
    }
  }
}`,...(We=(ze=W.parameters)==null?void 0:ze.docs)==null?void 0:We.source}}};var _e,Ve,$e;_.parameters={..._.parameters,docs:{...(_e=_.parameters)==null?void 0:_e.docs,source:{originalSource:`{
  decorators: [OdysseyStorybookThemeDecorator],
  args: {
    appBackgroundColor: undefined,
    optionalComponents: sharedOptionalComponents,
    sideNavBackgroundColor: undefined,
    subscribeToPropChanges: subscriber => {
      subscriber({
        topNavProps: sharedTopNavProps,
        sideNavProps: {
          ...sharedSideNavProps,
          logoProps: {
            isSameBackgroundAsMain: true
          }
        }
      });
      return () => {};
    },
    topNavBackgroundColor: undefined
  }
}`,...($e=(Ve=_.parameters)==null?void 0:Ve.docs)==null?void 0:$e.source}}};var Ge,Qe,Xe;V.parameters={...V.parameters,docs:{...(Ge=V.parameters)==null?void 0:Ge.docs,source:{originalSource:`{
  decorators: [OdysseyStorybookThemeDecorator],
  args: {
    optionalComponents: sharedOptionalComponents,
    subscribeToPropChanges: subscriber => {
      subscriber({
        appSwitcherProps: sharedAppSwitcherProps,
        sideNavProps: sharedSideNavProps,
        topNavProps: sharedTopNavProps
      });
      return () => {};
    }
  }
}`,...(Xe=(Qe=V.parameters)==null?void 0:Qe.docs)==null?void 0:Xe.source}}};var Ye,Ze,Ke;$.parameters={...$.parameters,docs:{...(Ye=$.parameters)==null?void 0:Ye.docs,source:{originalSource:`{
  decorators: [OdysseyStorybookThemeDecorator],
  args: {
    initialVisibleSections: ["AppSwitcher", "TopNav"],
    optionalComponents: sharedOptionalComponents,
    subscribeToPropChanges: subscriber => {
      subscriber({
        appSwitcherProps: sharedAppSwitcherProps,
        sideNavProps: {
          ...sharedSideNavProps,
          isCollapsed: true,
          isCollapsible: false
        },
        topNavProps: sharedTopNavProps
      });
      return () => {};
    }
  }
}`,...(Ke=(Ze=$.parameters)==null?void 0:Ze.docs)==null?void 0:Ke.source}}};var Je,es,ss;G.parameters={...G.parameters,docs:{...(Je=G.parameters)==null?void 0:Je.docs,source:{originalSource:`{
  args: {
    optionalComponents: sharedOptionalComponents,
    subscribeToPropChanges: subscriber => {
      subscriber({
        appSwitcherProps: sharedAppSwitcherProps,
        sideNavProps: {
          ...sharedSideNavProps,
          logoProps: {
            logoComponent: <PlaceholderLogo.One />
          }
        },
        topNavProps: sharedTopNavProps
      });
      return () => {};
    }
  },
  render: function C(props) {
    const appElementRef = useRefWithRerenderHack();
    const [isReady, setIsReady] = useState(false);
    const onSubscriptionCreated = useCallback(() => {
      setIsReady(true);
    }, []);
    useEffect(() => {
      if (isReady) {
        const outputSpan = document.getElementById("lineHeightOutput");
        if (outputSpan) {
          outputSpan.innerText = getComputedStyle(outputSpan).lineHeight;
        }
      }
    }, [isReady]);
    return <>
        <div ref={appElementRef}>
          <style>
            {\`body { line-height: \${EXPECTED_LINE_HEIGHT} !important; }\`}
          </style>

          {isReady && <Surface>
              <div style={{
            float: "right",
            width: "200px",
            height: "200px",
            padding: "20px",
            backgroundColor: "lightgray",
            zIndex: 1,
            position: "relative"
          }}>
                A box to demonstrate whether the TopNav shadow clips or not (it
                should not since{" "}
                <a href="https://github.com/okta/odyssey/pull/2461/files#diff-45b62c71e0e59aaed6b2683e0efe6fb7239b2bcf5573f4946340992efeff3c4a">
                  this PR
                </a>
                ).
              </div>
              <p>
                Line Height: <span id="lineHeightOutput"></span> &lt;- THIS
                VALUE SHOULD BE "{EXPECTED_LINE_HEIGHT}" if there hasn't been a
                regression.
              </p>
              Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris
              lacinia leo quis sodales scelerisque. Maecenas tempor eget nunc
              sit amet ultrices. Maecenas et varius ante. Nulla eu quam sit amet
              orci fermentum dictum sit amet scelerisque libero. Proin luctus
              semper elit, ut pretium massa tristique a. Mauris hendrerit ex eu
              commodo egestas. Etiam a lacus aliquet, convallis metus et,
              sollicitudin odio. Fusce vehicula purus sed orci elementum, ut
              cursus diam sollicitudin. Pellentesque pulvinar nibh turpis, eu
              finibus dolor egestas eget. Duis tellus mauris, pulvinar sit amet
              ante a, aliquet laoreet sapien. Ut quis tempus massa. Fusce
              fringilla mattis lacinia. Cras at pharetra quam, eu ultrices
              ipsum. Etiam malesuada, ex consectetur fringilla faucibus, quam
              lorem luctus diam, vitae lobortis urna lorem ac libero. Nulla a
              fermentum ligula, ut pulvinar odio. Cras in dictum nibh. Ut et
              orci sodales, laoreet sem nec, volutpat sapien. Phasellus dui
              turpis, euismod vitae euismod porta, semper a tellus. Morbi
              bibendum eros quam, et suscipit ex blandit eu. Etiam placerat,
              tellus viverra rutrum porttitor, elit arcu molestie nibh, at porta
              arcu odio ut neque. Donec id odio ut neque malesuada pulvinar a in
              tortor. Fusce eu urna lobortis, rhoncus odio nec, scelerisque
              dolor. Donec tempor eros sed condimentum rutrum. Vivamus ac odio
              ac erat bibendum ultricies. Cras nec libero sit amet leo luctus
              gravida. Praesent placerat massa ex. Donec vehicula orci ac
              consequat mollis. Sed vitae magna ligula. Nulla pulvinar lectus
              ex, sed varius enim pulvinar vel. Morbi viverra vitae dui sit amet
              mattis. Phasellus quis augue viverra, rhoncus tellus non,
              elementum massa. Donec posuere luctus ultrices. Ut eu massa sem.
              Aliquam sed mattis nulla, ac fermentum magna. Vestibulum ac ex ut
              massa molestie gravida. Cras est arcu, varius nec fringilla
              semper, aliquet id nunc. Quisque facilisis, nulla nec ornare
              vehicula, justo urna feugiat lorem, nec pretium odio nisl
              facilisis diam. Sed a quam in risus semper convallis sed eget
              mauris. Proin vitae purus augue. Ut et risus justo. Mauris porta,
              leo non vestibulum cursus, ante nisi sagittis magna, et convallis
              enim arcu a diam. Ut tincidunt urna ac massa consectetur euismod.
              Aenean sagittis nisi mi, eu bibendum arcu auctor at. Sed et urna
              sit amet sapien euismod vulputate molestie eu ipsum. Phasellus
              mattis semper neque, et porttitor mi scelerisque eget. Donec non
              egestas ex, ac consequat nunc. Nunc sed risus ac orci ullamcorper
              lacinia vel at risus. Nulla et odio eros. Vivamus tempor ultricies
              mi sed luctus. Duis faucibus sollicitudin odio, quis rhoncus orci
              volutpat nec. Vivamus id eros et est aliquam porttitor. Maecenas
              maximus magna sed est condimentum hendrerit. Integer fringilla
              posuere nisl, vitae molestie magna dictum id. Suspendisse volutpat
              pharetra mauris, sed vehicula nulla suscipit a. Morbi sed augue
              sodales, molestie purus et, egestas enim. Proin ut metus tempus,
              ultricies neque vel, vulputate lectus. Lorem ipsum dolor sit amet,
              consectetur adipiscing elit. Mauris lacinia leo quis sodales
              scelerisque. Maecenas tempor eget nunc sit amet ultrices. Maecenas
              et varius ante. Nulla eu quam sit amet orci fermentum dictum sit
              amet scelerisque libero. Proin luctus semper elit, ut pretium
              massa tristique a. Mauris hendrerit ex eu commodo egestas. Etiam a
              lacus aliquet, convallis metus et, sollicitudin odio. Fusce
              vehicula purus sed orci elementum, ut cursus diam sollicitudin.
              Pellentesque pulvinar nibh turpis, eu finibus dolor egestas eget.
              Duis tellus mauris, pulvinar sit amet ante a, aliquet laoreet
              sapien. Ut quis tempus massa. Fusce fringilla mattis lacinia. Cras
              at pharetra quam, eu ultrices ipsum. Etiam malesuada, ex
              consectetur fringilla faucibus, quam lorem luctus diam, vitae
              lobortis urna lorem ac libero. Nulla a fermentum ligula, ut
              pulvinar odio. Cras in dictum nibh. Ut et orci sodales, laoreet
              sem nec, volutpat sapien. Phasellus dui turpis, euismod vitae
              euismod porta, semper a tellus. Morbi bibendum eros quam, et
              suscipit ex blandit eu. Etiam placerat, tellus viverra rutrum
              porttitor, elit arcu molestie nibh, at porta arcu odio ut neque.
              Donec id odio ut neque malesuada pulvinar a in tortor. Fusce eu
              urna lobortis, rhoncus odio nec, scelerisque dolor. Donec tempor
              eros sed condimentum rutrum. Vivamus ac odio ac erat bibendum
              ultricies. Cras nec libero sit amet leo luctus gravida. Praesent
              placerat massa ex. Donec vehicula orci ac consequat mollis. Sed
              vitae magna ligula. Nulla pulvinar lectus ex, sed varius enim
              pulvinar vel. Morbi viverra vitae dui sit amet mattis. Phasellus
              quis augue viverra, rhoncus tellus non, elementum massa. Donec
              posuere luctus ultrices. Ut eu massa sem. Aliquam sed mattis
              nulla, ac fermentum magna. Vestibulum ac ex ut massa molestie
              gravida. Cras est arcu, varius nec fringilla semper, aliquet id
              nunc. Quisque facilisis, nulla nec ornare vehicula, justo urna
              feugiat lorem, nec pretium odio nisl facilisis diam. Sed a quam in
              risus semper convallis sed eget mauris. Proin vitae purus augue.
              Ut et risus justo. Mauris porta, leo non vestibulum cursus, ante
              nisi sagittis magna, et convallis enim arcu a diam. Ut tincidunt
              urna ac massa consectetur euismod. Aenean sagittis nisi mi, eu
              bibendum arcu auctor at. Sed et urna sit amet sapien euismod
              vulputate molestie eu ipsum. Phasellus mattis semper neque, et
              porttitor mi scelerisque eget. Donec non egestas ex, ac consequat
              nunc. Nunc sed risus ac orci ullamcorper lacinia vel at risus.
              Nulla et odio eros. Vivamus tempor ultricies mi sed luctus. Duis
              faucibus sollicitudin odio, quis rhoncus orci volutpat nec.
              Vivamus id eros et est aliquam porttitor. Maecenas maximus magna
              sed est condimentum hendrerit. Integer fringilla posuere nisl,
              vitae molestie magna dictum id. Suspendisse volutpat pharetra
              mauris, sed vehicula nulla suscipit a. Morbi sed augue sodales,
              molestie purus et, egestas enim. Proin ut metus tempus, ultricies
              neque vel, vulputate lectus. Lorem ipsum dolor sit amet,
              consectetur adipiscing elit. Mauris lacinia leo quis sodales
              scelerisque. Maecenas tempor eget nunc sit amet ultrices. Maecenas
              et varius ante. Nulla eu quam sit amet orci fermentum dictum sit
              amet scelerisque libero. Proin luctus semper elit, ut pretium
              massa tristique a. Mauris hendrerit ex eu commodo egestas. Etiam a
              lacus aliquet, convallis metus et, sollicitudin odio. Fusce
              vehicula purus sed orci elementum, ut cursus diam sollicitudin.
              Pellentesque pulvinar nibh turpis, eu finibus dolor egestas eget.
              Duis tellus mauris, pulvinar sit amet ante a, aliquet laoreet
              sapien. Ut quis tempus massa. Fusce fringilla mattis lacinia. Cras
              at pharetra quam, eu ultrices ipsum. Etiam malesuada, ex
              consectetur fringilla faucibus, quam lorem luctus diam, vitae
              lobortis urna lorem ac libero. Nulla a fermentum ligula, ut
              pulvinar odio. Cras in dictum nibh. Ut et orci sodales, laoreet
              sem nec, volutpat sapien. Phasellus dui turpis, euismod vitae
              euismod porta, semper a tellus. Morbi bibendum eros quam, et
              suscipit ex blandit eu. Etiam placerat, tellus viverra rutrum
              porttitor, elit arcu molestie nibh, at porta arcu odio ut neque.
              Donec id odio ut neque malesuada pulvinar a in tortor. Fusce eu
              urna lobortis, rhoncus odio nec, scelerisque dolor. Donec tempor
              eros sed condimentum rutrum. Vivamus ac odio ac erat bibendum
              ultricies. Cras nec libero sit amet leo luctus gravida. Praesent
              placerat massa ex. Donec vehicula orci ac consequat mollis. Sed
              vitae magna ligula. Nulla pulvinar lectus ex, sed varius enim
              pulvinar vel. Morbi viverra vitae dui sit amet mattis. Phasellus
              quis augue viverra, rhoncus tellus non, elementum massa. Donec
              posuere luctus ultrices. Ut eu massa sem. Aliquam sed mattis
              nulla, ac fermentum magna. Vestibulum ac ex ut massa molestie
              gravida. Cras est arcu, varius nec fringilla semper, aliquet id
              nunc. Quisque facilisis, nulla nec ornare vehicula, justo urna
              feugiat lorem, nec pretium odio nisl facilisis diam. Sed a quam in
              risus semper convallis sed eget mauris. Proin vitae purus augue.
              Ut et risus justo. Mauris porta, leo non vestibulum cursus, ante
              nisi sagittis magna, et convallis enim arcu a diam. Ut tincidunt
              urna ac massa consectetur euismod. Aenean sagittis nisi mi, eu
              bibendum arcu auctor at. Sed et urna sit amet sapien euismod
              vulputate molestie eu ipsum. Phasellus mattis semper neque, et
              porttitor mi scelerisque eget. Donec non egestas ex, ac consequat
              nunc. Nunc sed risus ac orci ullamcorper lacinia vel at risus.
              Nulla et odio eros. Vivamus tempor ultricies mi sed luctus. Duis
              faucibus sollicitudin odio, quis rhoncus orci volutpat nec.
              Vivamus id eros et est aliquam porttitor. Maecenas maximus magna
              sed est condimentum hendrerit. Integer fringilla posuere nisl,
              vitae molestie magna dictum id. Suspendisse volutpat pharetra
              mauris, sed vehicula nulla suscipit a. Morbi sed augue sodales,
              molestie purus et, egestas enim. Proin ut metus tempus, ultricies
              neque vel, vulputate lectus. Lorem ipsum dolor sit amet,
              consectetur adipiscing elit. Mauris lacinia leo quis sodales
              scelerisque. Maecenas tempor eget nunc sit amet ultrices. Maecenas
              et varius ante. Nulla eu quam sit amet orci fermentum dictum sit
              amet scelerisque libero. Proin luctus semper elit, ut pretium
              massa tristique a. Mauris hendrerit ex eu commodo egestas. Etiam a
              lacus aliquet, convallis metus et, sollicitudin odio. Fusce
              vehicula purus sed orci elementum, ut cursus diam sollicitudin.
              Pellentesque pulvinar nibh turpis, eu finibus dolor egestas eget.
              Duis tellus mauris, pulvinar sit amet ante a, aliquet laoreet
              sapien. Ut quis tempus massa. Fusce fringilla mattis lacinia. Cras
              at pharetra quam, eu ultrices ipsum. Etiam malesuada, ex
              consectetur fringilla faucibus, quam lorem luctus diam, vitae
              lobortis urna lorem ac libero. Nulla a fermentum ligula, ut
              pulvinar odio. Cras in dictum nibh. Ut et orci sodales, laoreet
              sem nec, volutpat sapien. Phasellus dui turpis, euismod vitae
              euismod porta, semper a tellus. Morbi bibendum eros quam, et
              suscipit ex blandit eu. Et…
            </Surface>}
        </div>

        <UiShell {...props} appElement={appElementRef.current!} onSubscriptionCreated={onSubscriptionCreated} />
      </>;
  }
}`,...(ss=(es=G.parameters)==null?void 0:es.docs)==null?void 0:ss.source}}};var ts,as,is;Q.parameters={...Q.parameters,docs:{...(ts=Q.parameters)==null?void 0:ts.docs,source:{originalSource:`{
  decorators: [OdysseyStorybookThemeDecorator],
  args: {
    optionalComponents: {
      ...sharedOptionalComponents,
      banners: <Banner severity="success" text="This is an app!" />,
      rightSideMenu: <Box sx={{
        display: "flex",
        justifyContent: "center"
      }}>
          <BaseButton onClick={() => closeRightSideMenu()} variant="floating">
            <UserProfile orgName="ORG123" profileIcon={<UserIcon />} userName="test.user@test.com" />
          </BaseButton>
        </Box>
    },
    subscribeToCloseRightSideMenu,
    subscribeToPropChanges: subscriber => {
      subscriber({
        appSwitcherProps: sharedAppSwitcherProps,
        sideNavProps: sharedSideNavProps,
        topNavProps: sharedTopNavProps
      });
      return () => {};
    }
  },
  render: function C(props) {
    const appElementRef = useRefWithRerenderHack();
    const [isReady, setIsReady] = useState(false);
    const onSubscriptionCreated = useCallback(() => {
      setIsReady(true);
    }, []);
    return <>
        <div ref={appElementRef}>
          {/* This is normally rendered by \`renderUiShell\`, but we're rendering \`UiShell\` outside of a web component, so we need to add this data attribute ourselves. */}
          <div {...{
          [uiShellDataAttribute]: ""
        }} />

          {isReady && <OdysseyProvider>
              <PageTemplate description="This is my app." title="Access Certification">
                <Layout regions={[1]}>
                  <Surface>
                    <div style={{
                  marginBlockEnd: \`\${16 / 14}rem\`
                }}>
                      <Paragraph>
                        Lorem ipsum dolor sit amet, consectetur adipiscing elit.
                        Mauris lacinia leo quis sodales scelerisque. Maecenas
                        tempor eget nunc sit amet ultrices. Maecenas et varius
                        ante. Nulla eu quam sit amet orci fermentum dictum sit
                        amet scelerisque libero. Proin luctus semper elit, ut
                        pretium massa tristique a. Mauris hendrerit ex eu
                        commodo egestas. Etiam a lacus aliquet, convallis metus
                        et, sollicitudin odio. Fusce vehicula purus sed orci
                        elementum, ut cursus diam sollicitudin. Pellentesque
                        pulvinar nibh turpis, eu finibus dolor egestas eget.
                        Duis tellus mauris, pulvinar sit amet ante a, aliquet
                        laoreet sapien. Ut quis tempus massa. Fusce fringilla
                        mattis lacinia. Cras at pharetra quam, eu ultrices
                        ipsum.
                      </Paragraph>
                    </div>
                    <div>
                      <Button label="I understand" variant="primary" />
                    </div>
                  </Surface>
                </Layout>
              </PageTemplate>
            </OdysseyProvider>}
        </div>

        <UiShell {...props} appElement={appElementRef.current!} onSubscriptionCreated={onSubscriptionCreated} />
      </>;
  }
}`,...(is=(as=Q.parameters)==null?void 0:as.docs)==null?void 0:is.source}}};const wi=["Default","LoadingFirstRender","InvisibleFirstRender","TopNavOnly","AppSwitcherOnly","ErroredAppSwitcher","LoadingData","WithCustomColors","WithoutAppContent","WithoutSideNav","WithTallAppContentAndNoStorybookDecorator","WithOdysseyAppContent"];export{H as AppSwitcherOnly,B as Default,z as ErroredAppSwitcher,L as InvisibleFirstRender,W as LoadingData,F as LoadingFirstRender,O as TopNavOnly,_ as WithCustomColors,Q as WithOdysseyAppContent,G as WithTallAppContentAndNoStorybookDecorator,V as WithoutAppContent,$ as WithoutSideNav,wi as __namedExportsOrder,Pi as default};
