const MILLENNIUM_IS_CLIENT_MODULE=!0,pluginName="extendium";function InitializePlugins(){var e;(e=window.PLUGIN_LIST||(window.PLUGIN_LIST={}))[pluginName]||(e[pluginName]={}),window.MILLENNIUM_SIDEBAR_NAVIGATION_PANELS||(window.MILLENNIUM_SIDEBAR_NAVIGATION_PANELS={})}InitializePlugins();const __call_server_method__=(e,t)=>Millennium.callServerMethod(pluginName,e,t);function __wrapped_callable__(e){return e.startsWith("webkit:")?MILLENNIUM_API.callable((e,t)=>MILLENNIUM_API.__INTERNAL_CALL_WEBKIT_METHOD__(pluginName,e,t),e.replace(/^webkit:/,"")):MILLENNIUM_API.callable(__call_server_method__,e)}let PluginEntryPointMain=function(){var e=function(e,t,n,o){"use strict";const r=__wrapped_callable__("GetExtendiumInfo"),i=__wrapped_callable__("UpdateExternalLinks"),a=__wrapped_callable__("UpdateSettings"),s=__wrapped_callable__("InstallInternalExtension"),l=__wrapped_callable__("IgnoreInternalExtensionRequirement"),c=__wrapped_callable__("DeleteLegacyExtensions");let d,u;async function p(e,n=document){return[...await t.Millennium.findElement(n,e)][0]}function g(){return Date.now().toString(36)+Math.random().toString(36).substring(2)}function m(e){e.preventDefault();const t=e.currentTarget.href;SteamClient.System.OpenInSystemBrowser(t)}async function h(e,n,o){let r;if("function"==typeof n){const e=o?o.map(e=>JSON.stringify(e)).join(", "):"";r=`(${n.toString()})(${e})`}else r=n;const i=await t.ChromeDevToolsProtocol.send("Runtime.evaluate",{expression:r,returnByValue:!0,awaitPromise:!0,userGesture:!0},e);if(i.exceptionDetails)throw new Error(i.exceptionDetails.exception?.description??"Unknown error");return i.result.value}function f(e){t.ChromeDevToolsProtocol.send("Target.createTarget",{url:e})}function C({description:e,modal:o,title:r,onCancel:i,onOK:a,hideCloseIcon:s=!1,okButtonText:l,bDestructiveWarning:c}){return n.createElement(t.ConfirmModal,{strTitle:r,strDescription:e,bHideCloseIcon:s,onOK:async()=>{await(a?.())},onCancel:()=>{i&&i(),o?.Close()},strOKButtonText:l,bDestructiveWarning:c})}function b({description:e,title:o,onCancel:r,onOK:i,bNeverPopOut:a=!0,okButtonText:s,popupHeight:l,popupWidth:c,closeOnOK:u=!0,bDestructiveWarning:p}){let g=null;return g=t.showModal(n.createElement(function(){const[t,a]=n.useState(null);return n.useEffect(()=>{a(g)},[]),n.createElement(C,{modal:t,title:o,description:e,okButtonText:s,onOK:async function(){try{await(i?.())}finally{u&&g?.Close()}},onCancel:function(){r&&r(),g?.Close()},bDestructiveWarning:p})},null),d,{popupHeight:l,popupWidth:c,bNeverPopOut:a,strTitle:o}),g}function x(e){e.preventDefault(),f(e.currentTarget.href)}function v({extensions:e}){return n.createElement(n.Fragment,null,n.createElement("p",null,"The following extensions were found in Extendium's .extensions folder. These were previously installed using Extendium's old installation method and will no longer work.",n.createElement("br",null),"Please reinstall them from the Chrome Web Store to ensure they function correctly.",n.createElement("br",null),'To not show this dialog again use the "Delete All" button below to delete all legacy extensions.'),n.createElement("div",{style:{marginTop:"10px",marginBottom:"10px",maxHeight:"300px",overflowY:"auto"}},e.map(e=>n.createElement("div",{key:e.name,style:{marginBottom:"8px",padding:"8px",backgroundColor:"rgba(255, 255, 255, 0.05)",borderRadius:"4px"}},n.createElement("div",{style:{fontWeight:"bold"}},e.name),e.hasMetadata&&void 0!==e.url?n.createElement("a",{href:e.url,onClick:x,style:{fontSize:"12px",color:"#66c0f4"}},"Open in Chrome Web Store"):n.createElement("div",{style:{fontSize:"12px",color:"#8f98a0"}},"Manually installed (no web store link)")))))}var A,w,y,E,k;!function(e){e[e.OK=1]="OK",e[e.Fail=2]="Fail",e[e.NoConnection=3]="NoConnection",e[e.InvalidPassword=5]="InvalidPassword",e[e.LoggedInElsewhere=6]="LoggedInElsewhere",e[e.InvalidProtocolVer=7]="InvalidProtocolVer",e[e.InvalidParam=8]="InvalidParam",e[e.FileNotFound=9]="FileNotFound",e[e.Busy=10]="Busy",e[e.InvalidState=11]="InvalidState",e[e.InvalidName=12]="InvalidName",e[e.InvalidEmail=13]="InvalidEmail",e[e.DuplicateName=14]="DuplicateName",e[e.AccessDenied=15]="AccessDenied",e[e.Timeout=16]="Timeout",e[e.Banned=17]="Banned",e[e.AccountNotFound=18]="AccountNotFound",e[e.InvalidSteamID=19]="InvalidSteamID",e[e.ServiceUnavailable=20]="ServiceUnavailable",e[e.NotLoggedOn=21]="NotLoggedOn",e[e.Pending=22]="Pending",e[e.EncryptionFailure=23]="EncryptionFailure",e[e.InsufficientPrivilege=24]="InsufficientPrivilege",e[e.LimitExceeded=25]="LimitExceeded",e[e.Revoked=26]="Revoked",e[e.Expired=27]="Expired",e[e.AlreadyRedeemed=28]="AlreadyRedeemed",e[e.DuplicateRequest=29]="DuplicateRequest",e[e.AlreadyOwned=30]="AlreadyOwned",e[e.IPNotFound=31]="IPNotFound",e[e.PersistFailed=32]="PersistFailed",e[e.LockingFailed=33]="LockingFailed",e[e.LogonSessionReplaced=34]="LogonSessionReplaced",e[e.ConnectFailed=35]="ConnectFailed",e[e.HandshakeFailed=36]="HandshakeFailed",e[e.IOFailure=37]="IOFailure",e[e.RemoteDisconnect=38]="RemoteDisconnect",e[e.ShoppingCartNotFound=39]="ShoppingCartNotFound",e[e.Blocked=40]="Blocked",e[e.Ignored=41]="Ignored",e[e.NoMatch=42]="NoMatch",e[e.AccountDisabled=43]="AccountDisabled",e[e.ServiceReadOnly=44]="ServiceReadOnly",e[e.AccountNotFeatured=45]="AccountNotFeatured",e[e.AdministratorOK=46]="AdministratorOK",e[e.ContentVersion=47]="ContentVersion",e[e.TryAnotherCM=48]="TryAnotherCM",e[e.PasswordRequiredToKickSession=49]="PasswordRequiredToKickSession",e[e.AlreadyLoggedInElsewhere=50]="AlreadyLoggedInElsewhere",e[e.Suspended=51]="Suspended",e[e.Cancelled=52]="Cancelled",e[e.DataCorruption=53]="DataCorruption",e[e.DiskFull=54]="DiskFull",e[e.RemoteCallFailed=55]="RemoteCallFailed",e[e.PasswordUnset=56]="PasswordUnset",e[e.ExternalAccountUnlinked=57]="ExternalAccountUnlinked",e[e.PSNTicketInvalid=58]="PSNTicketInvalid",e[e.ExternalAccountAlreadyLinked=59]="ExternalAccountAlreadyLinked",e[e.RemoteFileConflict=60]="RemoteFileConflict",e[e.IllegalPassword=61]="IllegalPassword",e[e.SameAsPreviousValue=62]="SameAsPreviousValue",e[e.AccountLogonDenied=63]="AccountLogonDenied",e[e.CannotUseOldPassword=64]="CannotUseOldPassword",e[e.InvalidLoginAuthCode=65]="InvalidLoginAuthCode",e[e.AccountLogonDeniedNoMail=66]="AccountLogonDeniedNoMail",e[e.HardwareNotCapableOfIPT=67]="HardwareNotCapableOfIPT",e[e.IPTInitError=68]="IPTInitError",e[e.ParentalControlRestricted=69]="ParentalControlRestricted",e[e.FacebookQueryError=70]="FacebookQueryError",e[e.ExpiredLoginAuthCode=71]="ExpiredLoginAuthCode",e[e.IPLoginRestrictionFailed=72]="IPLoginRestrictionFailed",e[e.AccountLockedDown=73]="AccountLockedDown",e[e.AccountLogonDeniedVerifiedEmailRequired=74]="AccountLogonDeniedVerifiedEmailRequired",e[e.NoMatchingURL=75]="NoMatchingURL",e[e.BadResponse=76]="BadResponse",e[e.RequirePasswordReEntry=77]="RequirePasswordReEntry",e[e.ValueOutOfRange=78]="ValueOutOfRange",e[e.UnexpectedError=79]="UnexpectedError",e[e.Disabled=80]="Disabled",e[e.InvalidCEGSubmission=81]="InvalidCEGSubmission",e[e.RestrictedDevice=82]="RestrictedDevice",e[e.RegionLocked=83]="RegionLocked",e[e.RateLimitExceeded=84]="RateLimitExceeded",e[e.AccountLoginDeniedNeedTwoFactor=85]="AccountLoginDeniedNeedTwoFactor",e[e.ItemDeleted=86]="ItemDeleted",e[e.AccountLoginDeniedThrottle=87]="AccountLoginDeniedThrottle",e[e.TwoFactorCodeMismatch=88]="TwoFactorCodeMismatch",e[e.TwoFactorActivationCodeMismatch=89]="TwoFactorActivationCodeMismatch",e[e.AccountAssociatedToMultiplePartners=90]="AccountAssociatedToMultiplePartners",e[e.NotModified=91]="NotModified",e[e.NoMobileDevice=92]="NoMobileDevice",e[e.TimeNotSynced=93]="TimeNotSynced",e[e.SmsCodeFailed=94]="SmsCodeFailed",e[e.AccountLimitExceeded=95]="AccountLimitExceeded",e[e.AccountActivityLimitExceeded=96]="AccountActivityLimitExceeded",e[e.PhoneActivityLimitExceeded=97]="PhoneActivityLimitExceeded",e[e.RefundToWallet=98]="RefundToWallet",e[e.EmailSendFailure=99]="EmailSendFailure",e[e.NotSettled=100]="NotSettled",e[e.NeedCaptcha=101]="NeedCaptcha",e[e.GSLTDenied=102]="GSLTDenied",e[e.GSOwnerDenied=103]="GSOwnerDenied",e[e.InvalidItemType=104]="InvalidItemType",e[e.IPBanned=105]="IPBanned",e[e.GSLTExpired=106]="GSLTExpired",e[e.InsufficientFunds=107]="InsufficientFunds",e[e.TooManyPending=108]="TooManyPending",e[e.NoSiteLicensesFound=109]="NoSiteLicensesFound",e[e.WGNetworkSendExceeded=110]="WGNetworkSendExceeded",e[e.AccountNotFriends=111]="AccountNotFriends",e[e.LimitedUserAccount=112]="LimitedUserAccount"}(A||(A={})),function(e){e[e.OffScreen=0]="OffScreen",e[e.OpenVROverlay=1]="OpenVROverlay",e[e.OpenVROverlay_Dashboard=2]="OpenVROverlay_Dashboard",e[e.DirectHWND=3]="DirectHWND",e[e.DirectHWND_Borderless=4]="DirectHWND_Borderless",e[e.DirectHWND_Hidden=5]="DirectHWND_Hidden",e[e.ChildHWNDNative=6]="ChildHWNDNative",e[e.Offscreen_SteamUI=12]="Offscreen_SteamUI",e[e.OpenVROverlay_Subview=13]="OpenVROverlay_Subview"}(w||(w={})),function(e){e[e.Unknown=0]="Unknown",e[e.Global=1]="Global",e[e.China=2]="China"}(y||(y={})),function(e){e[e.Hidden=0]="Hidden",e[e.Notification=1]="Notification",e[e.Overlay=2]="Overlay",e[e.Opaque=3]="Opaque",e[e.OverlayKeyboard=4]="OverlayKeyboard"}(E||(E={})),function(e){e[e.Unknown=-1]="Unknown",e[e.GamePad=4]="GamePad",e[e.Desktop=7]="Desktop"}(k||(k={}));const B=t.findModuleExport(e=>!0===e?.toString?.()?.includes(".popupHeight")&&!0===e?.toString?.()?.includes(".popupWidth")&&!0===e?.toString?.()?.includes(".onlyPopoutIfNeeded"));function D({children:e,...o}){return o={modal:!1,...o},n.createElement(B,{...o},n.createElement(t.ModalRoot,{onCancel:o.onDismiss},e))}const S=t.findModuleExport(e=>!0===e?.type?.toString?.()?.includes("RemotePlay.UnlockH264")),I=e=>{let t;const n=new Set,o=(e,o)=>{const r="function"==typeof e?e(t):e;if(!Object.is(r,t)){const e=t;t=(null!=o?o:"object"!=typeof r||null===r)?r:Object.assign({},t,r),n.forEach(n=>n(t,e))}},r=()=>t,i={setState:o,getState:r,getInitialState:()=>a,subscribe:e=>(n.add(e),()=>n.delete(e))},a=t=e(o,r,i);return i},N=e=>e,M=e=>{const t=(e=>e?I(e):I)(e),o=e=>function(e,t=N){const o=n.useSyncExternalStore(e.subscribe,n.useCallback(()=>t(e.getState()),[e,t]),n.useCallback(()=>t(e.getInitialState()),[e,t]));return n.useDebugValue(o),o}(t,e);return Object.assign(o,t),o},P=e=>M,R=P()(e=>({managerPopup:{open:!1,route:null},setManagerPopup:t=>{e(e=>({managerPopup:{...e.managerPopup,...t}}))},settingsPopup:{open:!1,content:null,title:""},setSettingsPopup:t=>{e(e=>({settingsPopup:{...e.settingsPopup,...t}}))}})),O=t.findClassModule(e=>e.SettingsTitleBar&&e.SettingsDialogButton),L=t.findClassModule(e=>e.contextMenuContents&&e.ContextMenuPosition),T=function(e){for(const[t,n]of Object.entries(L))e=e.replaceAll(new RegExp(`\\.__${t}\\b`,"g"),`.${n}`);return e}(".extensions-bar-container{margin-left:auto;margin-right:.5rem;-webkit-app-region:no-drag}.extensions-bar-container *{-webkit-app-region:no-drag}.ModalDialogBody .extensions-bar-container{margin-right:1rem}.extensions-bar-container .extensions-bar{display:flex;gap:2px;border-radius:1rem;border:1px solid rgba(0,0,0,0);transition:border .2s ease}.extensions-bar-container .extensions-bar:hover{border:1px solid gray}.extensions-bar-container .extension-button{background:none;border:none;cursor:pointer;width:31px;min-width:unset !important;height:31px;min-height:unset !important;padding:7px;border-radius:50%;position:relative;transition:background .2s ease}.extensions-bar-container .extension-button:hover{background:hsla(0,0%,100%,.2)}.extensions-bar-container .extension-button img{width:100%;height:100%}.extensions-bar-container .extension-button svg{display:block !important}.extensions-bar-container .extension-button .update-dot{position:absolute;top:3px;right:3px;width:8px;height:8px;border-radius:50%;background:#53e582;border:1px solid rgba(83,229,130,.7);box-shadow:0 0 0 1px rgba(0,0,0,.4);pointer-events:none}.extension-manager-popup{margin-top:3rem;user-select:text}.span-icon{display:flex !important;align-items:center !important;gap:10px !important;justify-content:center !important}.root-buttons{display:flex;gap:12px;justify-content:center;width:100%}.root-buttons *{box-sizing:border-box !important}.card-container{display:grid;gap:12px;grid-template-columns:repeat(auto-fill, 400px);max-width:1236px;margin:2rem auto;font-size:13px}.extension-card{border-radius:8px;background-color:#292a2d;background-color:hsla(0,0%,100%,.05);display:flex;flex-direction:column;height:180px}.extension-main{display:flex;padding:16px 20px;flex:1 1 0%;min-height:0px}.extension-main .icon{align-self:flex-start;display:flex;padding:6px;position:relative;flex-direction:column;gap:8px}.extension-main .icon img{height:36px;width:36px}.extension-main .icon svg{margin:auto}.extension-main .icon .update-badge{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;background:rgba(83,229,130,.15);border:1px solid rgba(83,229,130,.4);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease,transform .1s ease,border-color .15s ease}.extension-main .icon .update-badge svg{color:#53e582;width:14px;height:14px}.extension-main .icon .update-badge:hover{background:rgba(83,229,130,.25);border-color:rgba(83,229,130,.6);transform:translateY(-1px)}.extension-main .icon .update-badge.disabled{opacity:.6;cursor:default;pointer-events:none}.extension-main .content{display:flex;flex-direction:column;margin-left:24px;overflow:hidden}.extension-main .content .name-and-version{color:#fff;margin-bottom:4px;display:flex;align-items:baseline;gap:6px}.extension-main .content .name-and-version .name{margin-right:8px}.extension-main .content .name-and-version .version{margin-right:4px}.extension-main .content .name-and-version .compatibility-pill{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:6px;color:#fff;border:1px solid rgba(0,0,0,.3);font-weight:600;font-size:12px;user-select:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,.3);text-shadow:0 1px 2px rgba(0,0,0,.3);cursor:pointer}.extension-main .content .name-and-version .compatibility-pill:hover{filter:brightness(1.1)}.extension-main .content .name-and-version .update-pill{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:6px;background:rgba(83,229,130,.12);color:#c7f5dd;border:1px solid rgba(83,229,130,.3);font-weight:600;font-size:12px;user-select:none;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(0,0,0,.3);transition:background .15s ease,border-color .15s ease,color .15s ease;gap:4px}.extension-main .content .name-and-version .update-pill:hover{background:rgba(83,229,130,.2);border-color:rgba(83,229,130,.5)}.extension-main .content .name-and-version .update-pill.disabled{opacity:.6;cursor:default;pointer-events:none}.extension-main .content .name-and-version .update-pill svg{width:12px}.extension-main .content .name-and-version .warn-pill{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:6px;background:rgba(255,188,66,.12);color:#ffe3b0;border:1px solid rgba(255,188,66,.3);font-weight:600;font-size:12px;user-select:none;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(0,0,0,.3);transition:background .15s ease,border-color .15s ease,color .15s ease;gap:4px}.extension-main .content .name-and-version .warn-pill:hover{background:rgba(255,188,66,.2);border-color:rgba(255,188,66,.5)}.extension-main .content .name-and-version .warn-pill.disabled{opacity:.6;cursor:default;pointer-events:none}.extension-main .content .name-and-version .warn-pill svg{width:12px}.extension-main .content .description{overflow:hidden;text-overflow:ellipsis;height:100%}#errors li{font-size:75%}.secondary-text{font-weight:400;color:#c4c7c5}.extension-buttons{flex-shrink:0;height:48px;padding:8px 20px;display:flex;flex-direction:row;gap:8px}.extension-buttons button{flex:1 1 0%;border-radius:50px}.extension-buttons button::before{box-shadow:none !important}.extension-buttons>:last-child{margin:auto 0;margin-left:60px}.md-button{background:none;border:none;cursor:pointer;display:flex;color:#fff;font-size:20px}.md-button>svg{margin:auto}.md-button{transition:background .2s ease;border-radius:100px;width:32px;height:32px}.md-button:hover{background:hsla(0,0%,100%,.2)}.extension-detail-info{width:680px;box-shadow:0px 0px 10px rgba(0,0,0,.5);margin:auto}.extension-detail-info .page-header{display:flex;align-items:center;height:40px;margin-bottom:12px;padding:8px 12px 0px;color:hsla(0,0%,100%,.9)}.extension-detail-info .page-header>img{margin-inline:16px 12px;height:24px;width:24px}.extension-detail-info .page-header>span{flex-grow:1;overflow:hidden;text-overflow:ellipsis;font-size:107%;font-weight:500}.extension-detail-info .section{padding:12px 20px}.extension-detail-info .section .heading{display:flex;align-items:center;gap:8px}.extension-detail-info .section .content{color:#c4c7c5;display:flex;flex-direction:column}.extension-detail-info ul{margin:0px;padding-inline-start:20px}.extension-detail-info a{color:#a8c7fa}.extension-detail-info .fs-85{font-size:85%}.extension-detail-info .clickable-row{display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background .2s ease}.extension-detail-info .clickable-row:hover{background:hsla(0,0%,100%,.2)}.extension-detail-info .clickable-row>button{background:none;border:none;cursor:pointer;display:flex;color:#fff;font-size:20px}.extension-detail-info .clickable-row>button>svg{margin:auto}.hr{border-top:1px solid hsla(0,0%,100%,.1)}.storage-manager{color:hsla(0,0%,100%,.9)}.storage-manager .storage-manager-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid hsla(0,0%,100%,.1)}.storage-manager .storage-manager-row button{background:none;border:none;cursor:pointer;display:flex;color:#fff;font-size:20px}.storage-manager .storage-manager-row button>svg{margin:auto}.storage-manager .storage-manager-row button{cursor:pointer;align-self:flex-start;height:34px;width:34px;padding:5px}.storage-manager .storage-manager-item{width:100%;padding:5px 0}.storage-manager .storage-manager-item:not(:has(>details[open])){border-bottom:1px solid hsla(0,0%,100%,.1)}.storage-manager .header{display:flex;align-items:center;gap:1rem;color:#fff}.storage-manager .header h1{margin:0}.styled-input{width:100%;height:100%;padding:6px 8px;border-radius:4px;border:1px solid hsla(0,0%,100%,.15);background:hsla(0,0%,100%,.04);color:inherit;box-sizing:border-box}.styled-input:focus{outline:none;border-color:#5aa9ff;box-shadow:0 0 0 2px rgba(90,169,255,.25)}.ext-links-manager{display:flex;flex-direction:column;gap:8px;margin-top:1rem}.ext-links-manager *{box-sizing:border-box}.ext-links-manager .ext-links-title{font-weight:600}.ext-links-manager .ext-links-list{display:flex;flex-direction:column;gap:6px}.ext-links-manager .ext-links-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center}.ext-links-manager .ext-links-toggle{display:inline-flex;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;border:1px solid hsla(0,0%,100%,.15);background:hsla(0,0%,100%,.04);color:inherit;height:100%;cursor:pointer;user-select:none}.ext-links-manager .ext-links-toggle input[type=checkbox]{-webkit-appearance:none;appearance:none;width:16px;height:16px;border:1px solid hsla(0,0%,100%,.25);border-radius:3px;background:hsla(0,0%,100%,.06);display:inline-grid;place-content:center;cursor:pointer}.ext-links-manager .ext-links-toggle input[type=checkbox]::after{content:\"\";width:10px;height:10px;transform:scale(0);transition:transform .12s ease;background:#5aa9ff;border-radius:2px}.ext-links-manager .ext-links-toggle input[type=checkbox]:checked::after{transform:scale(1)}.ext-links-manager .ext-links-toggle span{font-size:12px}.ext-links-manager .ext-links-toggle:hover{background:hsla(0,0%,100%,.08)}.ext-links-manager .ext-links-remove,.ext-links-manager .ext-links-add{padding:6px 10px;border-radius:4px;border:1px solid hsla(0,0%,100%,.15);background:hsla(0,0%,100%,.04);color:inherit;cursor:pointer;height:100%}.ext-links-manager .ext-links-remove:hover,.ext-links-manager .ext-links-add:hover{background:hsla(0,0%,100%,.08)}.ext-links-manager .ext-links-empty{opacity:.7;font-style:italic}.ext-links-manager .ext-links-actions{margin-top:4px}.extendium-toolbar-manager-context-menu .__contextMenuContents{padding:1rem !important;width:18rem}/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22extendium.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAoEA,0BACE,iBACA,mBACA,2BAEA,4BACE,2BAGF,2CACE,kBAGF,0CApEA,aACA,IAoEoB,IAClB,mBACA,+BACA,2BAEA,gDACE,sBAIJ,4CA1EA,gBACA,YACA,eA2EE,WACA,2BACA,YACA,4BACA,YACA,kBACA,kBACA,+BAEA,kDACE,WAxGoB,mBA2GtB,gDACE,WACA,YAGF,gDACE,yBAGF,wDACE,kBACA,QACA,UACA,UACA,WACA,kBACA,mBACA,qCACA,oCACA,oBAcN,yBACE,gBACA,iBAGF,WACE,wBACA,8BACA,oBACA,kCAGF,cACE,aACA,SACA,uBACA,WAEA,gBACE,iCAIJ,gBACE,aACA,IA3BY,KA4BZ,+CACA,iBACA,iBACA,eAGF,gBACE,kBACA,yBACA,qCACA,aACA,sBACA,aAGF,gBACE,aACA,kBACA,YACA,eAEA,sBACE,sBACA,aACA,YACA,kBACA,sBACA,QAEA,0BACE,YACA,WAGF,0BACE,YAGF,oCACE,kBACA,SACA,WACA,WACA,YACA,kBACA,gCACA,qCACA,aACA,mBACA,uBACA,eACA,0EAEA,wCACE,cACA,WACA,YAGF,0CACE,gCACA,iCACA,2BAGF,6CACE,WACA,eACA,oBAKN,yBACE,aACA,sBACA,iBACA,gBAEA,2CACE,MAjHO,KAkHP,kBACA,aACA,qBACA,QAEA,iDACE,iBAGF,oDACE,iBAGF,+DACE,oBACA,mBACA,YACA,cACA,kBACA,WACA,gCACA,gBACA,eACA,iBACA,0CACA,qCACA,eAEA,qEACE,uBAIJ,wDArPJ,oBACA,mBACA,YACA,cACA,kBACA,WAkPQ,qBAjPR,MAkPQ,QAjPR,qCACA,gBACA,eACA,iBACA,eACA,0CACA,uEACA,QAEA,8DACE,WAyOM,oBAxON,aAyOM,oBAtOR,iEACE,WACA,eACA,oBAGF,4DACE,WAmOE,sDA/PJ,oBACA,mBACA,YACA,cACA,kBACA,WA4PQ,qBA3PR,MA4PQ,QA3PR,qCACA,gBACA,eACA,iBACA,eACA,0CACA,uEACA,QAEA,4DACE,WAmPM,oBAlPN,aAmPM,oBAhPR,+DACE,WACA,eACA,oBAGF,0DACE,WA8OA,sCACE,gBACA,uBACA,YAMJ,WACE,cAIJ,gBACE,gBACA,MAvLqB,QA0LvB,mBACE,cACA,YACA,iBACA,aACA,mBACA,QAEA,0BACE,YACA,mBAEA,kCACE,2BAIJ,+BACE,cACA,iBAIJ,WAtUE,gBACA,YACA,eAMA,aACA,WACA,eAEA,eACE,YAyTJ,WAGE,+BACA,oBACA,WACA,YAEA,iBACE,WAhWsB,mBAoW1B,uBACE,YACA,uCACA,YAEA,oCACE,aACA,mBACA,YACA,mBACA,qBACA,MA9WiB,mBAgXjB,wCACE,wBACA,YACA,WAGF,yCACE,YACA,gBACA,uBACA,eACA,gBAIJ,gCACE,kBAEA,yCACE,aACA,mBACA,QAGF,yCACE,MApQiB,QAqQjB,aACA,sBAIJ,0BACE,WACA,0BAGF,yBACE,cAGF,8BACE,cAGF,sCAvZA,aACA,8BACA,mBAuZE,eACA,+BAEA,4CACE,WAnaoB,mBAsatB,6CArZF,gBACA,YACA,eAMA,aACA,WACA,eAEA,iDACE,YA+YJ,IACE,wCAKF,iBACE,MAnbmB,mBAobnB,sCA/aA,aACA,8BACA,mBA+aE,2CAEA,6CAxaF,gBACA,YACA,eAMA,aACA,WACA,eAEA,iDACE,YA2ZA,6CAEE,eACA,sBACA,YACA,WACA,YAIJ,uCACE,WACA,cAEA,iEACE,2CAIJ,yBACE,aACA,mBACA,SACA,WAEA,4BACE,SAON,cACE,WACA,YACA,gBACA,kBACA,qCACA,WAR+B,oBAS/B,cACA,sBAEA,oBACE,aACA,qBACA,0CAIJ,mBACE,aACA,sBACA,QACA,gBAEA,qBACE,sBAGF,oCACE,gBAGF,mCACE,aACA,sBACA,QAGF,kCACE,aACA,oCACA,QACA,mBAGF,qCACE,oBACA,mBACA,QACA,gBACA,kBACA,qCACA,WArD6B,oBAsD7B,cACA,YACA,eACA,iBAEA,0DACE,wBACA,gBACA,WACA,YACA,qCACA,kBACA,+BACA,oBACA,qBACA,eAGF,iEACE,WACA,WACA,YACA,mBACA,+BACA,mBACA,kBAGF,yEACE,mBAGF,0CACE,eAGF,2CACE,+BAIJ,uEAEE,iBACA,kBACA,qCACA,WApG6B,oBAqG7B,cACA,eACA,YAEA,mFACE,+BAIJ,oCACE,WACA,kBAGF,sCACE,eAKF,+DACE,wBACA%22,%22file%22:%22extendium.css%22,%22sourcesContent%22:%5B%22//%20Variables%5Cn$button-hover-background:%20rgba(255,%20255,%20255,%200.2);%5Cn$primary-text-color:%20rgba(255,%20255,%20255,%200.9);%5Cn$secondary-text-color:%20rgba(255,%20255,%20255,%200.6);%5Cn%5Cn//%20Mixins%5Cn@mixin%20flex-between%20%7B%5Cn%20%20display:%20flex;%5Cn%20%20justify-content:%20space-between;%5Cn%20%20align-items:%20center;%5Cn%7D%5Cn%5Cn@mixin%20flex-gap($gap)%20%7B%5Cn%20%20display:%20flex;%5Cn%20%20gap:%20$gap;%5Cn%7D%5Cn%5Cn@mixin%20button%20%7B%5Cn%20%20background:%20none;%5Cn%20%20border:%20none;%5Cn%20%20cursor:%20pointer;%5Cn%7D%5Cn%5Cn@mixin%20icon-button%20%7B%5Cn%20%20@include%20button;%5Cn%5Cn%20%20display:%20flex;%5Cn%20%20color:%20white;%5Cn%20%20font-size:%2020px;%5Cn%5Cn%20%20&%20%3E%20svg%20%7B%5Cn%20%20%20%20margin:%20auto;%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn@mixin%20pill($bg,%20$fg,%20$border,%20$hover-bg,%20$hover-border)%20%7B%5Cn%20%20display:%20inline-flex;%5Cn%20%20align-items:%20center;%5Cn%20%20height:%2020px;%5Cn%20%20padding:%200%208px;%5Cn%20%20border-radius:%206px;%5Cn%20%20background:%20$bg;%5Cn%20%20color:%20$fg;%5Cn%20%20border:%201px%20solid%20$border;%5Cn%20%20font-weight:%20600;%5Cn%20%20font-size:%2012px;%5Cn%20%20user-select:%20none;%5Cn%20%20cursor:%20pointer;%5Cn%20%20box-shadow:%20inset%200%200%200%201px%20rgba(0,%200,%200,%200.3);%5Cn%20%20transition:%20background%200.15s%20ease,%20border-color%200.15s%20ease,%20color%200.15s%20ease;%5Cn%20%20gap:%204px;%5Cn%5Cn%20%20&:hover%20%7B%5Cn%20%20%20%20background:%20$hover-bg;%5Cn%20%20%20%20border-color:%20$hover-border;%5Cn%20%20%7D%5Cn%5Cn%20%20&.disabled%20%7B%5Cn%20%20%20%20opacity:%200.6;%5Cn%20%20%20%20cursor:%20default;%5Cn%20%20%20%20pointer-events:%20none;%5Cn%20%20%7D%5Cn%5Cn%20%20svg%20%7B%5Cn%20%20%20%20width:%2012px;%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.extensions-bar-container%20%7B%5Cn%20%20margin-left:%20auto;%5Cn%20%20margin-right:%200.5rem;%5Cn%20%20-webkit-app-region:%20no-drag;%5Cn%5Cn%20%20*%20%7B%5Cn%20%20%20%20-webkit-app-region:%20no-drag;%5Cn%20%20%7D%5Cn%5Cn%20%20.ModalDialogBody%20&%20%7B%5Cn%20%20%20%20margin-right:%201rem;%5Cn%20%20%7D%5Cn%5Cn%20%20.extensions-bar%20%7B%5Cn%20%20%20%20@include%20flex-gap(2px);%5Cn%20%20%20%20border-radius:%201rem;%5Cn%20%20%20%20border:%201px%20solid%20transparent;%5Cn%20%20%20%20transition:%20border%200.2s%20ease;%5Cn%5Cn%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20border:%201px%20solid%20gray;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20.extension-button%20%7B%5Cn%20%20%20%20@include%20button;%5Cn%5Cn%20%20%20%20width:%2031px;%5Cn%20%20%20%20min-width:%20unset%20!important;%5Cn%20%20%20%20height:%2031px;%5Cn%20%20%20%20min-height:%20unset%20!important;%5Cn%20%20%20%20padding:%207px;%5Cn%20%20%20%20border-radius:%2050%25;%5Cn%20%20%20%20position:%20relative;%5Cn%20%20%20%20transition:%20background%200.2s%20ease;%5Cn%5Cn%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20background:%20$button-hover-background;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20img%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%20%20height:%20100%25;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20svg%20%7B%5Cn%20%20%20%20%20%20display:%20block%20!important;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.update-dot%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20top:%203px;%5Cn%20%20%20%20%20%20right:%203px;%5Cn%20%20%20%20%20%20width:%208px;%5Cn%20%20%20%20%20%20height:%208px;%5Cn%20%20%20%20%20%20border-radius:%2050%25;%5Cn%20%20%20%20%20%20background:%20%2353e582;%5Cn%20%20%20%20%20%20border:%201px%20solid%20rgba(83,%20229,%20130,%200.7);%5Cn%20%20%20%20%20%20box-shadow:%200%200%200%201px%20rgba(0,%200,%200,%200.4);%5Cn%20%20%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn%5Cn//%23region%20extension-manager%5Cn$text-color:%20white;%5Cn$secondary-text-color:%20rgb(196,%20199,%20197);%5Cn%5Cn$card-width:%20400px;%5Cn$max-columns:%203;%5Cn$grid-gutter:%2012px;%5Cn%5Cn.extension-manager-popup%20%7B%5Cn%20%20margin-top:%203rem;%5Cn%20%20user-select:%20text;%5Cn%7D%5Cn%5Cn.span-icon%20%7B%5Cn%20%20display:%20flex%20!important;%5Cn%20%20align-items:%20center%20!important;%5Cn%20%20gap:%2010px%20!important;%5Cn%20%20justify-content:%20center%20!important;%5Cn%7D%5Cn%5Cn.root-buttons%20%7B%5Cn%20%20display:%20flex;%5Cn%20%20gap:%2012px;%5Cn%20%20justify-content:%20center;%5Cn%20%20width:%20100%25;%5Cn%5Cn%20%20*%20%7B%5Cn%20%20%20%20box-sizing:%20border-box%20!important;%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.card-container%20%7B%5Cn%20%20display:%20grid;%5Cn%20%20gap:%20$grid-gutter;%5Cn%20%20grid-template-columns:%20repeat(auto-fill,%20$card-width);%5Cn%20%20max-width:%20calc($card-width%20*%20$max-columns%20+%20$grid-gutter%20*%20$max-columns);%5Cn%20%20margin:%202rem%20auto;%5Cn%20%20font-size:%2013px;%5Cn%7D%5Cn%5Cn.extension-card%20%7B%5Cn%20%20border-radius:%208px;%5Cn%20%20background-color:%20%23292a2d;%5Cn%20%20background-color:%20hsla(0,%200%25,%20100%25,%200.05);%5Cn%20%20display:%20flex;%5Cn%20%20flex-direction:%20column;%5Cn%20%20height:%20180px;%5Cn%7D%5Cn%5Cn.extension-main%20%7B%5Cn%20%20display:%20flex;%5Cn%20%20padding:%2016px%2020px;%5Cn%20%20flex:%201%201%200%25;%5Cn%20%20min-height:%200px;%5Cn%5Cn%20%20.icon%20%7B%5Cn%20%20%20%20align-self:%20flex-start;%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20padding:%206px;%5Cn%20%20%20%20position:%20relative;%5Cn%20%20%20%20flex-direction:%20column;%5Cn%20%20%20%20gap:%208px;%5Cn%5Cn%20%20%20%20img%20%7B%5Cn%20%20%20%20%20%20height:%2036px;%5Cn%20%20%20%20%20%20width:%2036px;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20svg%20%7B%5Cn%20%20%20%20%20%20margin:%20auto;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.update-badge%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20top:%20-6px;%5Cn%20%20%20%20%20%20right:%20-6px;%5Cn%20%20%20%20%20%20width:%2018px;%5Cn%20%20%20%20%20%20height:%2018px;%5Cn%20%20%20%20%20%20border-radius:%2050%25;%5Cn%20%20%20%20%20%20background:%20rgba(83,%20229,%20130,%200.15);%5Cn%20%20%20%20%20%20border:%201px%20solid%20rgba(83,%20229,%20130,%200.4);%5Cn%20%20%20%20%20%20display:%20flex;%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20justify-content:%20center;%5Cn%20%20%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20%20%20transition:%20background%200.15s%20ease,%20transform%200.1s%20ease,%20border-color%200.15s%20ease;%5Cn%5Cn%20%20%20%20%20%20svg%20%7B%5Cn%20%20%20%20%20%20%20%20color:%20%2353e582;%5Cn%20%20%20%20%20%20%20%20width:%2014px;%5Cn%20%20%20%20%20%20%20%20height:%2014px;%5Cn%20%20%20%20%20%20%7D%5Cn%5Cn%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20background:%20rgba(83,%20229,%20130,%200.25);%5Cn%20%20%20%20%20%20%20%20border-color:%20rgba(83,%20229,%20130,%200.6);%5Cn%20%20%20%20%20%20%20%20transform:%20translateY(-1px);%5Cn%20%20%20%20%20%20%7D%5Cn%5Cn%20%20%20%20%20%20&.disabled%20%7B%5Cn%20%20%20%20%20%20%20%20opacity:%200.6;%5Cn%20%20%20%20%20%20%20%20cursor:%20default;%5Cn%20%20%20%20%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20.content%20%7B%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20flex-direction:%20column;%5Cn%20%20%20%20margin-left:%2024px;%5Cn%20%20%20%20overflow:%20hidden;%5Cn%5Cn%20%20%20%20.name-and-version%20%7B%5Cn%20%20%20%20%20%20color:%20$text-color;%5Cn%20%20%20%20%20%20margin-bottom:%204px;%5Cn%20%20%20%20%20%20display:%20flex;%5Cn%20%20%20%20%20%20align-items:%20baseline;%5Cn%20%20%20%20%20%20gap:%206px;%5Cn%5Cn%20%20%20%20%20%20.name%20%7B%5Cn%20%20%20%20%20%20%20%20margin-right:%208px;%5Cn%20%20%20%20%20%20%7D%5Cn%5Cn%20%20%20%20%20%20.version%20%7B%5Cn%20%20%20%20%20%20%20%20margin-right:%204px;%5Cn%20%20%20%20%20%20%7D%5Cn%5Cn%20%20%20%20%20%20.compatibility-pill%20%7B%5Cn%20%20%20%20%20%20%20%20display:%20inline-flex;%5Cn%20%20%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20%20%20height:%2020px;%5Cn%20%20%20%20%20%20%20%20padding:%200%208px;%5Cn%20%20%20%20%20%20%20%20border-radius:%206px;%5Cn%20%20%20%20%20%20%20%20color:%20white;%5Cn%20%20%20%20%20%20%20%20border:%201px%20solid%20rgba(0,%200,%200,%200.3);%5Cn%20%20%20%20%20%20%20%20font-weight:%20600;%5Cn%20%20%20%20%20%20%20%20font-size:%2012px;%5Cn%20%20%20%20%20%20%20%20user-select:%20none;%5Cn%20%20%20%20%20%20%20%20box-shadow:%20inset%200%200%200%201px%20rgba(0,%200,%200,%200.3);%5Cn%20%20%20%20%20%20%20%20text-shadow:%200%201px%202px%20rgba(0,%200,%200,%200.3);%5Cn%20%20%20%20%20%20%20%20cursor:%20pointer;%5Cn%5Cn%20%20%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20filter:%20brightness(1.1);%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%5Cn%20%20%20%20%20%20.update-pill%20%7B%5Cn%20%20%20%20%20%20%20%20@include%20pill(%5Cn%20%20%20%20%20%20%20%20%20%20rgba(83,%20229,%20130,%200.12),%5Cn%20%20%20%20%20%20%20%20%20%20%23c7f5dd,%5Cn%20%20%20%20%20%20%20%20%20%20rgba(83,%20229,%20130,%200.3),%5Cn%20%20%20%20%20%20%20%20%20%20rgba(83,%20229,%20130,%200.2),%5Cn%20%20%20%20%20%20%20%20%20%20rgba(83,%20229,%20130,%200.5)%5Cn%20%20%20%20%20%20%20%20);%5Cn%20%20%20%20%20%20%7D%5Cn%5Cn%20%20%20%20%20%20.warn-pill%20%7B%5Cn%20%20%20%20%20%20%20%20@include%20pill(%5Cn%20%20%20%20%20%20%20%20%20%20rgba(255,%20188,%2066,%200.12),%5Cn%20%20%20%20%20%20%20%20%20%20%23ffe3b0,%5Cn%20%20%20%20%20%20%20%20%20%20rgba(255,%20188,%2066,%200.3),%5Cn%20%20%20%20%20%20%20%20%20%20rgba(255,%20188,%2066,%200.2),%5Cn%20%20%20%20%20%20%20%20%20%20rgba(255,%20188,%2066,%200.5)%5Cn%20%20%20%20%20%20%20%20);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.description%20%7B%5Cn%20%20%20%20%20%20overflow:%20hidden;%5Cn%20%20%20%20%20%20text-overflow:%20ellipsis;%5Cn%20%20%20%20%20%20height:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn%23errors%20%7B%5Cn%20%20li%20%7B%5Cn%20%20%20%20font-size:%2075%25;%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.secondary-text%20%7B%5Cn%20%20font-weight:%20400;%5Cn%20%20color:%20$secondary-text-color;%5Cn%7D%5Cn%5Cn.extension-buttons%20%7B%5Cn%20%20flex-shrink:%200;%5Cn%20%20height:%2048px;%5Cn%20%20padding:%208px%2020px;%5Cn%20%20display:%20flex;%5Cn%20%20flex-direction:%20row;%5Cn%20%20gap:%208px;%5Cn%5Cn%20%20button%20%7B%5Cn%20%20%20%20flex:%201%201%200%25;%5Cn%20%20%20%20border-radius:%2050px;%5Cn%5Cn%20%20%20%20&::before%20%7B%5Cn%20%20%20%20%20%20box-shadow:%20none%20!important;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&%20%3E:last-child%20%7B%5Cn%20%20%20%20margin:%20auto%200;%5Cn%20%20%20%20margin-left:%2060px;%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.md-button%20%7B%5Cn%20%20@include%20icon-button;%5Cn%5Cn%20%20transition:%20background%200.2s%20ease;%5Cn%20%20border-radius:%20100px;%5Cn%20%20width:%2032px;%5Cn%20%20height:%2032px;%5Cn%5Cn%20%20&:hover%20%7B%5Cn%20%20%20%20background:%20$button-hover-background;%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.extension-detail-info%20%7B%5Cn%20%20width:%20680px;%5Cn%20%20box-shadow:%200px%200px%2010px%20rgba(0,%200,%200,%200.5);%5Cn%20%20margin:%20auto;%5Cn%5Cn%20%20.page-header%20%7B%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20align-items:%20center;%5Cn%20%20%20%20height:%2040px;%5Cn%20%20%20%20margin-bottom:%2012px;%5Cn%20%20%20%20padding:%208px%2012px%200px;%5Cn%20%20%20%20color:%20$primary-text-color;%5Cn%5Cn%20%20%20%20&%20%3E%20img%20%7B%5Cn%20%20%20%20%20%20margin-inline:%2016px%2012px;%5Cn%20%20%20%20%20%20height:%2024px;%5Cn%20%20%20%20%20%20width:%2024px;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&%20%3E%20span%20%7B%5Cn%20%20%20%20%20%20flex-grow:%201;%5Cn%20%20%20%20%20%20overflow:%20hidden;%5Cn%20%20%20%20%20%20text-overflow:%20ellipsis;%5Cn%20%20%20%20%20%20font-size:%20107%25;%5Cn%20%20%20%20%20%20font-weight:%20500;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20.section%20%7B%5Cn%20%20%20%20padding:%2012px%2020px;%5Cn%5Cn%20%20%20%20.heading%20%7B%5Cn%20%20%20%20%20%20display:%20flex;%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20gap:%208px;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.content%20%7B%5Cn%20%20%20%20%20%20color:%20$secondary-text-color;%5Cn%20%20%20%20%20%20display:%20flex;%5Cn%20%20%20%20%20%20flex-direction:%20column;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20ul%20%7B%5Cn%20%20%20%20margin:%200px;%5Cn%20%20%20%20padding-inline-start:%2020px;%5Cn%20%20%7D%5Cn%5Cn%20%20a%20%7B%5Cn%20%20%20%20color:%20rgb(168,%20199,%20250);%5Cn%20%20%7D%5Cn%5Cn%20%20.fs-85%20%7B%5Cn%20%20%20%20font-size:%2085%25;%5Cn%20%20%7D%5Cn%5Cn%20%20.clickable-row%20%7B%5Cn%20%20%20%20@include%20flex-between;%5Cn%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20transition:%20background%200.2s%20ease;%5Cn%5Cn%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20background:%20$button-hover-background;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&%20%3E%20button%20%7B%5Cn%20%20%20%20%20%20@include%20icon-button;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%7D%5Cn%5Cn.hr%20%7B%5Cn%20%20border-top:%201px%20solid%20rgba(255,%20255,%20255,%200.1);%5Cn%7D%5Cn%5Cn//%23endregion%5Cn%5Cn.storage-manager%20%7B%5Cn%20%20color:%20$primary-text-color;%5Cn%20%20.storage-manager-row%20%7B%5Cn%20%20%20%20@include%20flex-between;%5Cn%20%20%20%20border-bottom:%201px%20solid%20rgba(255,%20255,%20255,%200.1);%5Cn%5Cn%20%20%20%20button%20%7B%5Cn%20%20%20%20%20%20@include%20icon-button;%5Cn%20%20%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20%20%20align-self:%20flex-start;%5Cn%20%20%20%20%20%20height:%2034px;%5Cn%20%20%20%20%20%20width:%2034px;%5Cn%20%20%20%20%20%20padding:%205px;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20.storage-manager-item%20%7B%5Cn%20%20%20%20width:%20100%25;%5Cn%20%20%20%20padding:%205px%200;%5Cn%5Cn%20%20%20%20&:not(:has(%3E%20details%5Bopen%5D))%20%7B%5Cn%20%20%20%20%20%20border-bottom:%201px%20solid%20rgba(255,%20255,%20255,%200.1);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20.header%20%7B%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20align-items:%20center;%5Cn%20%20%20%20gap:%201rem;%5Cn%20%20%20%20color:%20white;%5Cn%5Cn%20%20%20%20h1%20%7B%5Cn%20%20%20%20%20%20margin:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%7D%5Cn$externalLinksDefaultBackground:%20rgba(255,%20255,%20255,%200.04);%5Cn%5Cn.styled-input%20%7B%5Cn%20%20width:%20100%25;%5Cn%20%20height:%20100%25;%5Cn%20%20padding:%206px%208px;%5Cn%20%20border-radius:%204px;%5Cn%20%20border:%201px%20solid%20rgba(255,%20255,%20255,%200.15);%5Cn%20%20background:%20$externalLinksDefaultBackground;%5Cn%20%20color:%20inherit;%5Cn%20%20box-sizing:%20border-box;%5Cn%5Cn%20%20&:focus%20%7B%5Cn%20%20%20%20outline:%20none;%5Cn%20%20%20%20border-color:%20%235aa9ff;%5Cn%20%20%20%20box-shadow:%200%200%200%202px%20rgba(90,%20169,%20255,%200.25);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.ext-links-manager%20%7B%5Cn%20%20display:%20flex;%5Cn%20%20flex-direction:%20column;%5Cn%20%20gap:%208px;%5Cn%20%20margin-top:%201rem;%5Cn%5Cn%20%20*%20%7B%5Cn%20%20%20%20box-sizing:%20border-box;%5Cn%20%20%7D%5Cn%5Cn%20%20.ext-links-title%20%7B%5Cn%20%20%20%20font-weight:%20600;%5Cn%20%20%7D%5Cn%5Cn%20%20.ext-links-list%20%7B%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20flex-direction:%20column;%5Cn%20%20%20%20gap:%206px;%5Cn%20%20%7D%5Cn%5Cn%20%20.ext-links-row%20%7B%5Cn%20%20%20%20display:%20grid;%5Cn%20%20%20%20grid-template-columns:%201fr%20auto%20auto;%20//%20input,%20regex%20toggle,%20remove%20button%5Cn%20%20%20%20gap:%208px;%5Cn%20%20%20%20align-items:%20center;%5Cn%20%20%7D%5Cn%5Cn%20%20.ext-links-toggle%20%7B%5Cn%20%20%20%20display:%20inline-flex;%5Cn%20%20%20%20align-items:%20center;%5Cn%20%20%20%20gap:%208px;%5Cn%20%20%20%20padding:%206px%208px;%5Cn%20%20%20%20border-radius:%204px;%5Cn%20%20%20%20border:%201px%20solid%20rgba(255,%20255,%20255,%200.15);%5Cn%20%20%20%20background:%20$externalLinksDefaultBackground;%5Cn%20%20%20%20color:%20inherit;%5Cn%20%20%20%20height:%20100%25;%5Cn%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20user-select:%20none;%5Cn%5Cn%20%20%20%20input%5Btype='checkbox'%5D%20%7B%5Cn%20%20%20%20%20%20-webkit-appearance:%20none;%5Cn%20%20%20%20%20%20appearance:%20none;%5Cn%20%20%20%20%20%20width:%2016px;%5Cn%20%20%20%20%20%20height:%2016px;%5Cn%20%20%20%20%20%20border:%201px%20solid%20rgba(255,%20255,%20255,%200.25);%5Cn%20%20%20%20%20%20border-radius:%203px;%5Cn%20%20%20%20%20%20background:%20rgba(255,%20255,%20255,%200.06);%5Cn%20%20%20%20%20%20display:%20inline-grid;%5Cn%20%20%20%20%20%20place-content:%20center;%5Cn%20%20%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20input%5Btype='checkbox'%5D::after%20%7B%5Cn%20%20%20%20%20%20content:%20'';%5Cn%20%20%20%20%20%20width:%2010px;%5Cn%20%20%20%20%20%20height:%2010px;%5Cn%20%20%20%20%20%20transform:%20scale(0);%5Cn%20%20%20%20%20%20transition:%20transform%200.12s%20ease;%5Cn%20%20%20%20%20%20background:%20%235aa9ff;%5Cn%20%20%20%20%20%20border-radius:%202px;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20input%5Btype='checkbox'%5D:checked::after%20%7B%5Cn%20%20%20%20%20%20transform:%20scale(1);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20span%20%7B%5Cn%20%20%20%20%20%20font-size:%2012px;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20background:%20rgba(255,%20255,%20255,%200.08);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20.ext-links-remove,%5Cn%20%20.ext-links-add%20%7B%5Cn%20%20%20%20padding:%206px%2010px;%5Cn%20%20%20%20border-radius:%204px;%5Cn%20%20%20%20border:%201px%20solid%20rgba(255,%20255,%20255,%200.15);%5Cn%20%20%20%20background:%20$externalLinksDefaultBackground;%5Cn%20%20%20%20color:%20inherit;%5Cn%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20height:%20100%25;%5Cn%5Cn%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20background:%20rgba(255,%20255,%20255,%200.08);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20.ext-links-empty%20%7B%5Cn%20%20%20%20opacity:%200.7;%5Cn%20%20%20%20font-style:%20italic;%5Cn%20%20%7D%5Cn%5Cn%20%20.ext-links-actions%20%7B%5Cn%20%20%20%20margin-top:%204px;%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.extendium-toolbar-manager-context-menu%20%7B%5Cn%20%20.__contextMenuContents%20%7B%5Cn%20%20%20%20padding:%201rem%20!important;%5Cn%20%20%20%20width:%2018rem;%5Cn%20%20%7D%5Cn%7D%22%5D%7D */\n");function _(){return n.createElement("style",null,T)}const F=P()(e=>({extensions:new Map,setExtension:t=>{e(e=>{const n=new Map(e.extensions);return n.set(t.id,t),{extensions:n}})},removeExtension:t=>{e(e=>{const n=new Map(e.extensions);return n.delete(t),{extensions:n}})}}));async function j(e){return JSON.parse(await async function(e){return H.evaluateExpression(async(e,t)=>{const n=await chrome.developerPrivate.requestFileSource({extensionId:e,pathSuffix:t,message:"",manifestKey:"Invalid!"});return n.beforeHighlight+n.highlight+n.afterHighlight},[e,"manifest.json"])}(e))}async function W(e){await H.evaluateExpression(async e=>chrome.management.uninstall(e),[e]),F.getState().removeExtension(e)}window.extensions=F;const U=["INSTALLED","UNINSTALLED","UNLOADED","LOADED"];class z{sessionId=null;eventCallbacks=new Map;isInitialized=!1;async initialize(){this.isInitialized||(this.sessionId=await async function(e){const n=g();!function(e){const t=SteamClient.BrowserView.CreatePopup({parentPopupBrowserID:d.SteamClient.Browser.GetBrowserID()});if(!t.strCreateURL)throw new Error("CreatePopup returned invalid popup without strCreateURL");const n=window.open(t.strCreateURL);if(!n)throw new Error("Failed to open popup");n.document.title=e}(n);const o=(await t.ChromeDevToolsProtocol.send("Target.getTargets")).targetInfos.find(e=>e.title===n);if(void 0===o)throw new Error("Failed to find target");const r=(await t.ChromeDevToolsProtocol.send("Target.attachToTarget",{targetId:o.targetId,flatten:!0})).sessionId;return await t.ChromeDevToolsProtocol.send("Page.navigate",{url:e},r),r}("chrome://extensions"),await this.setupEventListener(),await async function(e,n=15e3){const o=Date.now();await new Promise((r,i)=>{(async function a(){if(Date.now()-o>=n)return void i(new Error("Timed out waiting for DOM ready"));const s=(await t.ChromeDevToolsProtocol.send("Runtime.evaluate",{expression:"({ readyState: document.readyState, hasBody: document.body !== null })",returnByValue:!0,awaitPromise:!0},e)).result.value;!0!==s?.hasBody||"interactive"!==s?.readyState&&"complete"!==s?.readyState?setTimeout(()=>{a().catch(()=>{})},50):setTimeout(()=>{r()},100)})().catch(()=>{})})}(this.sessionId),await h(this.sessionId,()=>{document.title="Extendium Extensions Manager"},[]))}async setupEventListener(){if(null===this.sessionId)throw new Error("Session not initialized");await h(this.sessionId,e=>{window.__extendiumOnInstalledQueue??=new Map,chrome.developerPrivate.onItemStateChanged.addListener(t=>{if(e.includes(t.event_type)){const e=window.__extendiumOnInstalledQueue?.get(t.event_type)??[];e.push(t.extensionInfo??t.item_id),window.__extendiumOnInstalledQueue?.set(t.event_type,e)}})},[U]),this.isInitialized=!0,this.startPollingForEvents()}startPollingForEvents(){const e=async()=>{if(null!==this.sessionId&&this.isInitialized){try{const e=await h(this.sessionId,()=>window.__extendiumOnInstalledQueue?Object.fromEntries(window.__extendiumOnInstalledQueue):void 0);e&&(Object.entries(e).forEach(([e,t])=>{z.isTrackedEvent(e)&&t.forEach(t=>{this.handleEvent(e,t)})}),await h(this.sessionId,()=>{window.__extendiumOnInstalledQueue?.clear()}))}catch(e){console.error("Error polling for extension events:",e)}setTimeout(()=>{e().catch(()=>{})},5e3)}};e().catch(()=>{})}static isTrackedEvent(e){return U.includes(e)}handleEvent(e,t){if(null===this.sessionId)return;const n=this.eventCallbacks.get(e);void 0!==n&&n.forEach(n=>{try{n("string"==typeof t?t:t.id,"string"==typeof t?void 0:t)}catch(t){console.error(`Error in ${e} callback:`,t)}})}on(e,t){let n=this.eventCallbacks.get(e);return void 0===n&&(n=new Set,this.eventCallbacks.set(e,n)),n.add(t),()=>{this.eventCallbacks.get(e)?.delete(t)}}async evaluateExpression(e,t){if(null===this.sessionId)throw new Error("Session not initialized");return h(this.sessionId,e,t)}async destroy(){null!==this.sessionId&&(await t.ChromeDevToolsProtocol.send("Page.close",void 0,this.sessionId),this.sessionId=null),this.eventCallbacks.clear(),this.isInitialized=!1}}const H=new z;var $={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},G=n.createContext&&n.createContext($),V=["attr","size","title"];function Y(){return Y=Object.assign?Object.assign.bind():function(e){for(var t=1;tn.createElement(e.tag,q({key:t},e.attr),Q(e.child)))}function X(e){return t=>n.createElement(Z,Y({attr:q({},e.attr)},t),Q(e.child))}function Z(e){var t=t=>{var o,{attr:r,size:i,title:a}=e,s=function(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(-1!==t.indexOf(o))continue;n[o]=e[o]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;ot(e)):t($)}function ee(e){return X({attr:{viewBox:"0 0 616 512"},child:[{tag:"path",attr:{d:"M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z"},child:[]}]})(e)}function te(e){return X({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"},child:[]}]})(e)}function ne(e){return X({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"},child:[]}]})(e)}function oe(e){return X({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"},child:[]}]})(e)}function re(e){return X({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"},child:[]}]})(e)}function ie(e){return X({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M19 19H5V5h7V3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"},child:[]}]})(e)}function ae({url:e,expectedParentPopupTitle:o,onFocusChanged:r,onCreated:i,onClosed:a}){const[s,l]=n.useState(null),c=n.useRef(null);return n.useEffect(()=>(async function(){await async function(e,t=5e3){return new Promise((n,o)=>{const r=Date.now(),i=setInterval(()=>{e()?(clearInterval(i),n()):Date.now()-r>=t&&(clearInterval(i),o(new Error("Timeout waiting for condition")))},10)})}(()=>Array.from(g_PopupManager.m_mapPopups.values()).some(e=>e.m_strTitle===o));const n=Array.from(g_PopupManager.m_mapPopups.values()).find(e=>e.m_strTitle===o);if(!n)throw new Error("Popup not found");const s=n.window.SteamClient.Browser.GetBrowserID(),d=SteamClient.BrowserView.CreatePopup({parentPopupBrowserID:s,bOnlyAllowTrustedPopups:!0});if(!d.strCreateURL)throw new Error("CreatePopup returned invalid popup without strCreateURL");const u=window.open(d.strCreateURL);if(!u)throw new Error("Failed to open popup");const p=d.browserView;l(p),p.on("focus-changed",e=>{r?.(e)}),p.on("before-close",()=>{a?.()});const m=g();u.document.title=m;const f=(await t.ChromeDevToolsProtocol.send("Target.getTargets")).targetInfos.find(e=>e.title===m);if(!f)throw new Error("Target not found");const C=(await t.ChromeDevToolsProtocol.send("Target.attachToTarget",{targetId:f.targetId,flatten:!0})).sessionId;c.current=C,await t.ChromeDevToolsProtocol.send("Runtime.enable",void 0,C),await t.ChromeDevToolsProtocol.send("Runtime.addBinding",{name:"extendiumNavigate"},C),await t.ChromeDevToolsProtocol.send("Page.navigate",{url:e},C),h(C,le,[Array.from(Array.from(F.getState().extensions.values()).map(e=>[e.extensionInfo.optionsPage?.url??"",e.id]).filter(e=>""!==e[0]).reduce((e,[t,n])=>e.set(t,n),new Map))]),i?.(C)}(),()=>{null!==c.current&&t.ChromeDevToolsProtocol.send("Page.close",void 0,c.current)}),[e]),s?n.createElement(n.Fragment,null,n.createElement("style",null,se),n.createElement(S,{browser:s,className:t.findClass("Browser"),visible:!0})):null}"function"==typeof t.ChromeDevToolsProtocol.on&&t.ChromeDevToolsProtocol.on("Runtime.bindingCalled",function(e){if("extendiumNavigate"===e.name){const{url:t}=JSON.parse(e.payload);Se(0,t)}});const se=`\n.DialogContent {\n padding: 0 !important;\n padding-top: 2rem !important;\n}\n.${t.findClass("Browser")} {\n height: 100% !important;\n}\n`;async function le(e){await new Promise(e=>{"complete"===document.readyState?e():document.addEventListener("DOMContentLoaded",()=>{e()},{once:!0})});const t=new Map(e);document.addEventListener("click",e=>{console.log(e);const n=e.target.closest("a");if(null!==n){const o=t.get(decodeURIComponent(n.href));void 0!==o&&(e.preventDefault(),globalThis.extendiumNavigate?.(JSON.stringify({url:`steam://extendium/extension/${o}/options`})))}})}function ce(){const{settingsPopup:e,setSettingsPopup:t}=R();return e.open?n.createElement(D,{strTitle:e.title,onDismiss:()=>{t({open:!1})},popupWidth:d.innerWidth/2,popupHeight:d.innerHeight/2,resizable:!0,saveDimensionsKey:`extensionSettingsPopup_${e.title.replace(/\s/g,"_")}`},e.content):null}function de(e){!function(e,t){const o=R.getState();o.setSettingsPopup({open:!1}),setTimeout(()=>{o.setSettingsPopup({content:n.createElement(ae,{expectedParentPopupTitle:t,url:e,onClosed:()=>{o.setSettingsPopup({open:!1})}}),open:!0,title:t})},1)}(e.options.getOptionsPageUrl()??"",`${e.name} - Extendium Options`)}function ue({extension:e}){const[o,r]=n.useState([]),{setManagerPopup:i}=R();if(!e)return n.createElement("div",{className:"extension-detail-info"},n.createElement("div",{className:"page-header"},n.createElement("button",{onClick:()=>{i({route:null})},type:"button",className:"md-button"},n.createElement(re,null)),"Error in extension"));const a=null!==d.document.evaluate('//div[text()="Console"]',d.document,null,XPathResult.FIRST_ORDERED_NODE_TYPE).singleNodeValue;function s(){t.ChromeDevToolsProtocol.send("Target.getTargets").then(t=>{const n=[];for(const o of t.targetInfos)(o.title.startsWith(`${e?.name} - `)||"SharedJSContext"===o.title)&&n.push(o);r(n)})}return n.useEffect(()=>{a&&s()},[]),n.createElement("div",{className:"extension-detail-info"},n.createElement("div",{className:"page-header"},n.createElement("button",{onClick:()=>{i({route:null})},type:"button",className:"md-button"},n.createElement(re,null)),n.createElement("img",{src:e.action.iconUrl}),n.createElement("span",null,e.name)),n.createElement("div",{className:"section"},n.createElement("div",{className:"heading"},"Description"),n.createElement("div",{className:"content"},e.description)),n.createElement("div",{className:"section hr"},n.createElement("div",{className:"heading"},"Version"),n.createElement("div",{className:"content"},e.version)),n.createElement("div",{className:"section hr"},n.createElement("div",{className:"heading"},"Id"),n.createElement("div",{className:"content"},e.id)),o.length>0&&n.createElement("div",{className:"section hr"},n.createElement("div",{className:"heading"},"Inspect views"),n.createElement("div",{className:"content"},n.createElement("ul",null,o.map(e=>n.createElement("li",{key:e.title},n.createElement("a",{className:"fs-85",href:`http://localhost:8080/devtools/inspector.html?ws=localhost:8080/devtools/page/${e.targetId}&panel=console`,onClick:t=>{t.preventDefault(),SteamClient.System.OpenInSystemBrowser(`http://localhost:8080/devtools/inspector.html?ws=localhost:8080/devtools/page/${e.targetId}&panel=console`)}},e.title)))))),e.logger.errors.length>0&&n.createElement("div",{className:"section hr",id:"errors"},n.createElement("div",{className:"heading"},n.createElement(te,{color:"red"}),"Errors"),n.createElement("div",{className:"content"},n.createElement("span",{style:{marginBottom:"1rem"}},"For detailed error information, ",n.createElement("a",{href:"steam://devmode/enable",onClick:()=>{s()}},"enable dev mode")," and open the console of the specified view in the list above"),n.createElement("ul",null,e.logger.errors.map(e=>n.createElement("li",{key:e},n.createElement("code",null,e)))))),e.options.hasOptions()&&n.createElement("div",{className:"section hr clickable-row",onClick:()=>{de(e)}},n.createElement("span",null,"Extension options"),n.createElement("button",{type:"button"},n.createElement(ie,null))),n.createElement("div",{className:"section hr clickable-row",onClick:()=>{!async function(){e&&(await W(e.id),i({route:null}))}()}},n.createElement("span",null,"Remove extension"),n.createElement("button",{type:"button"},n.createElement(oe,null))))}function pe(e){return X({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M345.14 480H274a18 18 0 0 1-18-18v-27.71a31.32 31.32 0 0 0-9.71-22.77c-7.78-7.59-19.08-11.8-30.89-11.51-21.36.5-39.4 19.3-39.4 41.06V462a18 18 0 0 1-18 18H87.62A55.62 55.62 0 0 1 32 424.38V354a18 18 0 0 1 18-18h27.71c9.16 0 18.07-3.92 25.09-11a42.06 42.06 0 0 0 12.2-29.92C114.7 273.89 97.26 256 76.91 256H50a18 18 0 0 1-18-18v-70.38A55.62 55.62 0 0 1 87.62 112h55.24a8 8 0 0 0 8-8v-6.48A65.53 65.53 0 0 1 217.54 32c35.49.62 64.36 30.38 64.36 66.33V104a8 8 0 0 0 8 8h55.24A54.86 54.86 0 0 1 400 166.86v55.24a8 8 0 0 0 8 8h5.66c36.58 0 66.34 29 66.34 64.64 0 36.61-29.39 66.4-65.52 66.4H408a8 8 0 0 0-8 8v56A54.86 54.86 0 0 1 345.14 480z"},child:[]}]})(e)}function ge(e){return X({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"32",d:"M413.66 246.1H386a2 2 0 0 1-2-2v-77.24A38.86 38.86 0 0 0 345.14 128H267.9a2 2 0 0 1-2-2V98.34c0-27.14-21.5-49.86-48.64-50.33a49.53 49.53 0 0 0-50.4 49.51V126a2 2 0 0 1-2 2H87.62A39.74 39.74 0 0 0 48 167.62V238a2 2 0 0 0 2 2h26.91c29.37 0 53.68 25.48 54.09 54.85.42 29.87-23.51 57.15-53.29 57.15H50a2 2 0 0 0-2 2v70.38A39.74 39.74 0 0 0 87.62 464H158a2 2 0 0 0 2-2v-20.93c0-30.28 24.75-56.35 55-57.06 30.1-.7 57 20.31 57 50.28V462a2 2 0 0 0 2 2h71.14A38.86 38.86 0 0 0 384 425.14v-78a2 2 0 0 1 2-2h28.48c27.63 0 49.52-22.67 49.52-50.4s-23.2-48.64-50.34-48.64z"},child:[]}]})(e)}t.routerHook.addGlobalComponent("ExtensionSettingsPopup",()=>n.createElement(ce,null),k.Desktop);const me="https://github.com/BossSloth/Extendium",he=["dhdgffkkebhmkfjojejmpbldmpobfkfo","gcalenpjmijncebpfijmoaglllgpjagf"],fe={ddkjiahejlhfcafbddmgiahcphecmpfh:"Great",cjpalhdlnbpafiamejdnhcphjbkeiagm:"Great",dhdgffkkebhmkfjojejmpbldmpobfkfo:"Broken",eimadpbcbfnmbkopoojfekhnkhdbieeh:"Perfect",cmeakgjggjdlcpncigglobpjbkabhmjl:"Okay",jjicbefpemnphinccgikpdaagjebbnhg:"Perfect",kdbmhfkmnlmbkgbabkdealhhbfhlmmon:"Perfect",dnhpnfgdlenaccegplpojghhmaamnnfp:"Great",kaibcgikagnkfgjnibflebpldakfhfih:"Okay",djbgadolfboockbofalipohdncimebic:"Perfect",fkagelmloambgokoeokbpihmgpkbgbfm:"Great",ndcooeababalnlpkfedmmbbbgkljhpjf:"Great",canbadmphamemnmdfngmcabnjmjgaiki:"Perfect",bibdjkcebiliphphjbnkngdjgeklgcdf:"Perfect",kdappijekicdbempkjaahnnmkookhfnj:"Perfect",obgkjikcnonokgaiablbenkgjcdbknna:"Perfect",jecikjbpiedagpmibmgpfgnkfpomgeok:"Great",lfjdaphbejfpncjfebkbcganmkinhhfl:"Great",hgapfodjjnkkoebpfbcfhhenkklchngn:"Perfect",gjhejidajnchnadcangcodljgdmenipa:"Perfect",dhpcikljplaooekklhbjohojbjbinega:"Perfect",ngonfifpkpeefnhelnfdkficaiihklid:"Perfect",kkgmmlflilcfcogmfpnhakfamdkdcbpl:"Perfect",ocabaebkfcojookdnihccpcngaaigfan:"Great",lcobepkldcbbjfnpjnonocmlifjdlcdh:"Perfect",clegcobheppnnigaaeelfkeomjcngmnh:"Perfect",cdcfacnigofkflfapbbbpjjipgipnoma:"Perfect",fpijccoohfcbgljdmhmklohjfebfjmif:"Perfect",cmdknlhmnkeilgeekfmndhokneknihmi:"Perfect",hebdfnoheiibmkfobehgdbmilckpjjhl:"Perfect",dimefhnkbbhebmnnhnnaiemghgjkjgpa:"Perfect",fgkeoeoibigdcdkfdckkpodhfhppgdlo:"Perfect"};function Ce(e,t){let n;try{n=e()}catch(e){return}return{getItem:e=>{var t;const o=e=>null===e?null:JSON.parse(e,void 0),r=null!=(t=n.getItem(e))?t:null;return r instanceof Promise?r.then(o):o(r)},setItem:(e,t)=>n.setItem(e,JSON.stringify(t,void 0)),removeItem:e=>n.removeItem(e)}}const be=e=>t=>{try{const n=e(t);return n instanceof Promise?n:{then:e=>be(e)(n),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>be(t)(e)}}},xe=(e,t)=>(n,o,r)=>{let i={storage:Ce(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},a=!1,s=0;const l=new Set,c=new Set;let d=i.storage;if(!d)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${i.name}', the given storage is currently unavailable.`),n(...e)},o,r);const u=()=>{const e=i.partialize({...o()});return d.setItem(i.name,{state:e,version:i.version})},p=r.setState;r.setState=(e,t)=>(p(e,t),u());const g=e((...e)=>(n(...e),u()),o,r);let m;r.getInitialState=()=>g;const h=()=>{var e,t;if(!d)return;const r=++s;a=!1,l.forEach(e=>{var t;return e(null!=(t=o())?t:g)});const p=(null==(t=i.onRehydrateStorage)?void 0:t.call(i,null!=(e=o())?e:g))||void 0;return be(d.getItem.bind(d))(i.name).then(e=>{if(e){if("number"!=typeof e.version||e.version===i.version)return[!1,e.state];if(i.migrate){const t=i.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(e=>{var t;if(r!==s)return;const[a,l]=e;return m=i.merge(l,null!=(t=o())?t:g),n(m,!0),a?u():void 0}).then(()=>{r===s&&(null==p||p(o(),void 0),m=o(),a=!0,c.forEach(e=>e(m)))}).catch(e=>{r===s&&(null==p||p(void 0,e))})};return r.persist={setOptions:e=>{i={...i,...e},e.storage&&(d=e.storage)},clearStorage:()=>{null==d||d.removeItem(i.name)},getOptions:()=>i,rehydrate:()=>h(),hasHydrated:()=>a,onHydrate:e=>(l.add(e),()=>{l.delete(e)}),onFinishHydration:e=>(c.add(e),()=>{c.delete(e)})},i.skipHydration||h(),m||g},ve=P()(xe(e=>({barMarginLeft:0,barMarginRight:0,showCompatibilityPills:!0,openLinksInCurrentTab:!1,setSettings:t=>{e(e=>{const n={...e,...t};return n.openLinksInCurrentTab!==e.openLinksInCurrentTab&&a({settings:JSON.stringify({openLinksInCurrentTab:n.openLinksInCurrentTab})}),n})}}),{name:"extendium_settingsStore"}));function Ae({extension:e}){const{setManagerPopup:o}=R(),{removeExtension:r,setExtension:i}=F(),{showCompatibilityPills:a}=ve(),s=(l=e.id,fe[l]);var l;return n.createElement("div",{className:"extension-card"},n.createElement("div",{className:"extension-main"},n.createElement("div",{className:"icon",style:{position:"relative"}},n.createElement("img",{src:e.action.iconUrl})),n.createElement("div",{className:"content"},n.createElement("div",{className:"name-and-version"},n.createElement("div",{className:"name"},e.name),n.createElement("span",{className:"version secondary-text"},e.version),a&&s&&n.createElement("span",{className:"compatibility-pill",style:{backgroundColor:function(e){switch(e){case"Perfect":return"#2196f3";case"Great":return"#4caf50";case"Okay":return"#ff9800";case"Broken":return"#f44336";default:return"#9e9e9e"}}(s)},title:`Compatibility: ${s}, click for compatibility list`,onClick:()=>{SteamClient.System.OpenInSystemBrowser("https://docs.google.com/spreadsheets/d/e/2PACX-1vSGe55SdLrz9vILg6jPDvlOrkpeOgInPxor96t5MreHPkXNhft4XSwetj70aYhNjCocnfLxpk29Nkkf/pubhtml")}},s)),n.createElement("div",{className:"description secondary-text"},e.description))),n.createElement("div",{className:"extension-buttons"},n.createElement(t.DialogButton,{onClick:()=>{o({route:`info/${e.id}`})}},"Details"),n.createElement(t.DialogButton,{onClick:()=>{!async function(){await W(e.id),r(e.id)}()}},"Remove"),n.createElement(t.Toggle,{onChange:function(t){H.evaluateExpression(async(e,t)=>chrome.management.setEnabled(e,t),[e.id,t]),e.extensionInfo.state=t?"ENABLED":"DISABLED",i(e)},value:e.enabled})))}function we(){const{setManagerPopup:e}=R(),{extensions:o}=F();return n.createElement(n.Fragment,null,n.createElement("div",{className:"root-buttons"},n.createElement(t.DialogButton,{onClick:()=>{f("https://chromewebstore.google.com/")},className:`span-icon ${O.SettingsDialogButton}`},n.createElement(ee,null),"Install extension"),n.createElement(t.DialogButton,{onClick:()=>{f("chrome://extensions")},className:`span-icon ${O.SettingsDialogButton}`},n.createElement(pe,null),"Advanced extension management"),n.createElement("div",{style:{display:"flex",gap:"6px"}},n.createElement(t.DialogButton,{onClick:()=>{e({route:"settings"})},className:`span-icon ${O.SettingsDialogButton}`,style:{width:"40px",minWidth:"unset"}},n.createElement(ne,null)))),n.createElement("div",{className:"card-container"},Array.from(o.values()).sort((e,t)=>e.name.localeCompare(t.name)).map(e=>n.createElement(Ae,{key:e.id,extension:e}))))}function ye({value:e,onChange:o,onSave:r,title:i="External links",placeholder:a="Paste or type a link…",addButtonLabel:s="Add link",className:l,allowEmpty:c=!1}){const d=n.useMemo(()=>e,[e]),u=n.useRef(!0),p=n.useCallback((e,t,n=!1)=>{const i=d.slice();i[e]=t,u.current=!1,o(i),n&&r(i)},[d,o]),g=n.useCallback(()=>{u.current=!1;const e=[...d,{match:"",isRegex:!1}];o(e)},[d,o]),m=n.useCallback(e=>{const t=d.filter((t,n)=>n!==e);o(t),r(t)},[d,o]),h=n.useCallback(()=>{if(u.current=!1,r(d),c)return;const e=d.filter(e=>e.match.trim().length>0);e.length!==d.length&&o(e)},[c,d,o]);return n.createElement("div",{className:["ext-links-manager",l].filter(Boolean).join(" ")},n.createElement("div",{className:"ext-links-header"},n.createElement("span",{className:"ext-links-title"},i)),n.createElement(t.Field,{description:"Manage URL patterns that should always open in an external browser. For each entry, provide a string to match against the URL. If 'Regex' is checked, the string is treated as a regular expression. Otherwise, it performs a simple case sensitive text search."}),n.createElement("div",{className:"ext-links-list"},0===d.length?n.createElement("div",{className:"ext-links-empty"},"No links yet."):d.map((e,t)=>n.createElement("div",{key:`${t}`,className:"ext-links-row"},n.createElement("input",{className:"styled-input",type:"text",inputMode:"url",value:e.match,autoFocus:t===d.length-1&&!u.current,placeholder:a,onChange:n=>{p(t,{...e,match:n.currentTarget.value})},onBlur:h,onKeyDown:n=>{"Enter"===n.key?(n.preventDefault(),t===d.length-1&&g()):"Backspace"===n.key&&0===e.match.length&&(n.preventDefault(),m(t))}}),n.createElement("label",{className:"ext-links-toggle",title:"Treat match as a regular expression"},n.createElement("input",{type:"checkbox",checked:e.isRegex,onChange:n=>{p(t,{...e,isRegex:n.currentTarget.checked},!0)}}),n.createElement("span",null,"Regex")),n.createElement("button",{type:"button",className:"ext-links-remove",onClick:()=>{m(t)},title:"Remove"},"Remove")))),n.createElement("div",{className:"ext-links-actions"},n.createElement("button",{type:"button",className:"ext-links-add",onClick:g},s)))}function Ee(){const[e,t]=n.useState(u.externalLinks??[]);return n.createElement(ye,{value:e,onChange:t,onSave:function(e){i({external_links:JSON.stringify(e)}),u.externalLinks=e},title:"External links",placeholder:"Paste or type a link…",addButtonLabel:"Add link",allowEmpty:!0})}function ke(){const{setManagerPopup:e}=R(),{barMarginLeft:o,barMarginRight:r,showCompatibilityPills:i,openLinksInCurrentTab:a,setSettings:s}=ve();return n.createElement(t.DialogBody,null,n.createElement("div",{className:"header"},n.createElement("button",{onClick:()=>{e({route:null})},type:"button",className:"md-button"},n.createElement(re,null)),n.createElement("h1",null,"Extendium Settings")),n.createElement(t.Field,{description:"If the extension bar is covered up by other buttons or you want to move it you can change the margin here"}),n.createElement(t.SliderField,{label:"Margin right",value:r,min:-200,max:200,onChange:e=>{s({barMarginRight:e})},showValue:!0,editableValue:!0,resetValue:0}),n.createElement(t.SliderField,{label:"Margin left",value:o,min:-200,max:200,onChange:e=>{s({barMarginLeft:e})},showValue:!0,editableValue:!0,resetValue:0}),n.createElement(t.Field,{label:"Show compatibility status pills next to extension names in the extension manager"},n.createElement("div",{style:{display:"flex",alignItems:"center",gap:"12px"}},n.createElement("span",null,"Show compatibility pills"),n.createElement(t.Toggle,{onChange:e=>{s({showCompatibilityPills:e})},value:i}))),n.createElement(Ee,null),n.createElement(t.Field,{label:"Always open links in current tab on left click (ignores target blank)"},n.createElement("div",{style:{display:"flex",alignItems:"center",gap:"12px",marginTop:"1rem"}},n.createElement("span",null,"Open in current tab"),n.createElement(t.Toggle,{onChange:e=>{s({openLinksInCurrentTab:e})},value:a}))))}function Be(){const{managerPopup:e,setManagerPopup:t}=R(),{extensions:o}=F();if(!e.open)return null;let r;return r=null===e.route?n.createElement(we,null):e.route.startsWith("info/")?n.createElement(ue,{extension:o.get(e.route.split("/").pop()??"")}):e.route.startsWith("settings")?n.createElement(ke,null):n.createElement("p",null,'Error you somehow got to an undefined route please report this with this route "',n.createElement("code",null,e.route),'"'),n.createElement(D,{strTitle:"Extensions",onDismiss:()=>{t({open:!1})},popupWidth:1280,popupHeight:.65*d.innerHeight,minWidth:1280,minHeight:370,resizable:!0,saveDimensionsKey:"extensionManagerPopup"},n.createElement(_,null),n.createElement("div",{className:"extension-manager-popup"},r))}function De(e=null){const t=R.getState();t.setManagerPopup({open:!1}),setTimeout(()=>{t.setManagerPopup({open:!0,route:e})},1)}function Se(e,t){const n=t.replace(/^steam:\/{1,2}/,"/").split("/").filter(e=>e).slice(1),o=n[0],r=n.slice(1).join("/");"manager"===o&&De(r),"extension"===o&&""!==r&&function(e){const[t,n]=e.split("/");if(void 0===t||void 0===n)return;const o=F.getState().extensions.get(t);o&&("options"===n?o.options.hasOptions()&&de(o):console.warn(`Unknown extension action: ${n}`,t))}(r)}t.routerHook.addGlobalComponent("ExtensionManagerPopup",()=>n.createElement(Be,null),k.Desktop);let Ie=class{extension;constructor(e){this.extension=e}get iconUrl(){return this.extension.extensionInfo.iconUrl}get popupUrl(){return void 0!==this.extension.manifest.action?.default_popup?`chrome-extension://${this.extension.id}/${this.extension.manifest.action.default_popup}`:void 0}};class Ne{listeners=[];addListener(e){this.listeners.push(e)}removeListener(e){this.listeners=this.listeners.filter(t=>t!==e)}hasListener(e){return this.listeners.includes(e)}hasListeners(){return this.listeners.length>0}addRules(...e){console.error("Not implemented",e)}removeRules(...e){console.error("Not implemented",e)}getRules(...e){console.error("Not implemented",e)}getListenersSnapshot(){return[...this.listeners]}emit(...e){for(const t of this.listeners)t(...e)}}class Me{parent;VERBOSE;context;errors=[];extBadgeStyle="";ctxBadgeStyle;constructor(e,t,n){this.parent=e,this.VERBOSE=t,this.context=n,this.ctxBadgeStyle=Me.makeStyleFromStr(this.context),this.init()}init(){this.extBadgeStyle=Me.makeStyleFromStr(this.parent.name)}log(e,...t){if(this.VERBOSE){const n=`%c[${this.parent.name}]%c[${this.context}]%c[${e}]`;console.debug(n,this.extBadgeStyle,this.ctxBadgeStyle,Me.makeStyleFromStr(e),...t)}}error(e,...t){this.silentError(e,...t),this.addError(e,...t),this.parent.logger.addError(e,...t)}silentError(e,...t){const n=`%c[${this.parent.name}]%c[${this.context}]%c[${e}]`;console.error(n,this.extBadgeStyle,this.ctxBadgeStyle,Me.makeStyleFromStr(e),...t)}addError(e,...t){this.errors.push(`[${this.context}][${e}]: ${t.join(" ")}`)}warn(e,...t){const n=`%c[${this.parent.name}]%c[${this.context}]%c[${e}]`;console.warn(n,this.extBadgeStyle,this.ctxBadgeStyle,Me.makeStyleFromStr(e),...t)}static globalLog(e,...t){const n=`%c[Extendium]%c[${e}]`,o=Me.makeStyleFromStr("Extendium"),r=Me.makeStyleFromStr(e);console.debug(n,o,r,...t)}static makeStyleFromStr(e){const t=Me.colorFromString(e),n=Me.getTextColorForBg(t);return Me.makeBadgeStyle(t,n)}static makeBadgeStyle(e,t){return[`background: ${e}`,`color: ${t}`,"padding: 1px 4px","border-radius: 3px","font-weight: 600"].join("; ")}static colorFromString(e){let t=0;for(let n=0;n>8*e&255).toString(16)}`.slice(-2);return n}static getTextColorForBg(e){const{r:t,g:n,b:o}=Me.hexToRgb(e);return(299*t+587*n+114*o)/1e3>=128?"#000000":"#ffffff"}static hexToRgb(e){const t=e.replace("#",""),n=parseInt(t,16);return{r:n>>16&255,g:n>>8&255,b:255&n}}}class Pe{extension;constructor(e){this.extension=e}hasOptions(){return void 0!==this.getOptionsPageUrl()}getOptionsPageUrl(){return this.extension.extensionInfo.optionsPage?.url}}class Re{manifest;extensionInfo;onInstalled=new Ne;onStorageChanged=new Ne;action;logger;options;constructor(e,t){this.manifest=e,this.extensionInfo=t,this.action=new Ie(this),this.logger=new Me(this,!0,"Extension"),this.options=new Pe(this)}init(){this.logger.init()}get name(){return this.extensionInfo.name}get description(){return this.extensionInfo.description}get version(){return this.extensionInfo.version}get id(){return this.extensionInfo.id}get enabled(){return"ENABLED"===this.extensionInfo.state}}function Oe(e,o){const r=t.showModal(n.createElement(t.ConfirmModal,{strTitle:"Unsupported extension installed",bAlertDialog:!0,bDisableBackgroundDismiss:!0,bHideCloseIcon:!0,strDescription:n.createElement(n.Fragment,null,n.createElement("p",null,"We've automatically detected an extension (",o,":",e,") that is known to cause Steam to become unresponsive, crash or become fully bricked."),n.createElement("strong",null,"You WILL NEED to remove this extension to prevent potential issues with your Steam client.",n.createElement("br",null),"You can find more information about compatible extensions on the Extendium github page.")),strOKButtonText:"Uninstall extension",onOK:()=>{W(e).then(()=>{r.Close()}).catch(()=>{Oe(e,o)})},onCancel:()=>{Oe(e,o)}}),d,{popupWidth:635,popupHeight:475})}const Le="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function Te(e){const t=Object.prototype.toString.call(e);return"[object Window]"===t||"[object global]"===t}function _e(e){return"nodeType"in e}function Fe(e){var t,n;return e?Te(e)?e:_e(e)&&null!=(t=null==(n=e.ownerDocument)?void 0:n.defaultView)?t:window:window}function je(e){const{Document:t}=Fe(e);return e instanceof t}function We(e){return!Te(e)&&e instanceof Fe(e).HTMLElement}function Ue(e){return e instanceof Fe(e).SVGElement}function ze(e){return e?Te(e)?e.document:_e(e)?je(e)?e:We(e)||Ue(e)?e.ownerDocument:document:document:document}const He=Le?n.useLayoutEffect:n.useEffect;function $e(e){const t=n.useRef(e);return He(()=>{t.current=e}),n.useCallback(function(){for(var e=arguments.length,n=new Array(e),o=0;o{o.current!==e&&(o.current=e)},t),o}function Ve(e,t){const o=n.useRef();return n.useMemo(()=>{const t=e(o.current);return o.current=t,t},[...t])}function Ye(e){const t=$e(e),o=n.useRef(null),r=n.useCallback(e=>{e!==o.current&&(null==t||t(e,o.current)),o.current=e},[]);return[o,r]}function Ke(e){const t=n.useRef();return n.useEffect(()=>{t.current=e},[e]),t.current}let qe={};function Je(e,t){return n.useMemo(()=>{if(t)return t;const n=null==qe[e]?0:qe[e]+1;return qe[e]=n,e+"-"+n},[e,t])}function Qe(e){return function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),r=1;r{const o=Object.entries(n);for(const[n,r]of o){const o=t[n];null!=o&&(t[n]=o+e*r)}return t},{...t})}}const Xe=Qe(1),Ze=Qe(-1);function et(e){if(!e)return!1;const{KeyboardEvent:t}=Fe(e.target);return t&&e instanceof t}function tt(e){if(function(e){if(!e)return!1;const{TouchEvent:t}=Fe(e.target);return t&&e instanceof t}(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return function(e){return"clientX"in e&&"clientY"in e}(e)?{x:e.clientX,y:e.clientY}:null}const nt=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[nt.Translate.toString(e),nt.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:o}=e;return t+" "+n+"ms "+o}}}),ot="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function rt(e){return e.matches(ot)?e:e.querySelector(ot)}const it={display:"none"};function at(e){let{id:t,value:o}=e;return n.createElement("div",{id:t,style:it},o)}function st(e){let{id:t,announcement:o,ariaLiveType:r="assertive"}=e;return n.createElement("div",{id:t,style:{position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"},role:"status","aria-live":r,"aria-atomic":!0},o)}const lt=n.createContext(null),ct={draggable:"\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n "},dt={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function ut(e){let{announcements:t=dt,container:r,hiddenTextDescribedById:i,screenReaderInstructions:a=ct}=e;const{announce:s,announcement:l}=function(){const[e,t]=n.useState("");return{announce:n.useCallback(e=>{null!=e&&t(e)},[]),announcement:e}}(),c=Je("DndLiveRegion"),[d,u]=n.useState(!1);if(n.useEffect(()=>{u(!0)},[]),function(e){const t=n.useContext(lt);n.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of ");return t(e)},[e,t])}(n.useMemo(()=>({onDragStart(e){let{active:n}=e;s(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:o}=e;t.onDragMove&&s(t.onDragMove({active:n,over:o}))},onDragOver(e){let{active:n,over:o}=e;s(t.onDragOver({active:n,over:o}))},onDragEnd(e){let{active:n,over:o}=e;s(t.onDragEnd({active:n,over:o}))},onDragCancel(e){let{active:n,over:o}=e;s(t.onDragCancel({active:n,over:o}))}}),[s,t])),!d)return null;const p=n.createElement(n.Fragment,null,n.createElement(at,{id:i,value:a.draggable}),n.createElement(st,{id:c,announcement:l}));return r?o.createPortal(p,r):p}var pt;function gt(){}!function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"}(pt||(pt={}));const mt=Object.freeze({x:0,y:0});function ht(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function ft(e,t){let{data:{value:n}}=e,{data:{value:o}}=t;return n-o}function Ct(e,t){let{data:{value:n}}=e,{data:{value:o}}=t;return o-n}function bt(e,t,n){return void 0===t&&(t=e.left),void 0===n&&(n=e.top),{x:t+.5*e.width,y:n+.5*e.height}}const xt=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:o}=e;const r=bt(t,t.left,t.top),i=[];for(const e of o){const{id:t}=e,o=n.get(t);if(o){const n=ht(bt(o),r);i.push({id:t,data:{droppableContainer:e,value:n}})}}return i.sort(ft)};function vt(e,t){const n=Math.max(t.top,e.top),o=Math.max(t.left,e.left),r=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),a=r-o,s=i-n;if(o{let{collisionRect:t,droppableRects:n,droppableContainers:o}=e;const r=[];for(const e of o){const{id:o}=e,i=n.get(o);if(i){const n=vt(i,t);n>0&&r.push({id:o,data:{droppableContainer:e,value:n}})}}return r.sort(Ct)};function wt(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:mt}const yt=function(e){return function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),r=1;r({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}(1),Et={ignoreTransform:!1};function kt(e,t){void 0===t&&(t=Et);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:t,transformOrigin:o}=Fe(e).getComputedStyle(e);t&&(n=function(e,t,n){const o=function(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}(t);if(!o)return e;const{scaleX:r,scaleY:i,x:a,y:s}=o,l=e.left-a-(1-r)*parseFloat(n),c=e.top-s-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),d=r?e.width/r:e.width,u=i?e.height/i:e.height;return{width:d,height:u,top:c,right:l+d,bottom:c+u,left:l}}(n,t,o))}const{top:o,left:r,width:i,height:a,bottom:s,right:l}=n;return{top:o,left:r,width:i,height:a,bottom:s,right:l}}function Bt(e){return kt(e,{ignoreTransform:!0})}function Dt(e,t){const n=[];return e?function o(r){if(null!=t&&n.length>=t)return n;if(!r)return n;if(je(r)&&null!=r.scrollingElement&&!n.includes(r.scrollingElement))return n.push(r.scrollingElement),n;if(!We(r)||Ue(r))return n;if(n.includes(r))return n;const i=Fe(e).getComputedStyle(r);return r!==e&&function(e,t){void 0===t&&(t=Fe(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(e=>{const o=t[e];return"string"==typeof o&&n.test(o)})}(r,i)&&n.push(r),function(e,t){return void 0===t&&(t=Fe(e).getComputedStyle(e)),"fixed"===t.position}(r,i)?n:o(r.parentNode)}(e):n}function St(e){const[t]=Dt(e,1);return null!=t?t:null}function It(e){return Le&&e?Te(e)?e:_e(e)?je(e)||e===ze(e).scrollingElement?window:We(e)?e:null:null:null}function Nt(e){return Te(e)?e.scrollX:e.scrollLeft}function Mt(e){return Te(e)?e.scrollY:e.scrollTop}function Pt(e){return{x:Nt(e),y:Mt(e)}}var Rt;function Ot(e){return!(!Le||!e)&&e===document.scrollingElement}function Lt(e){const t={x:0,y:0},n=Ot(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},o={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=o.y,isRight:e.scrollLeft>=o.x,maxScroll:o,minScroll:t}}!function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"}(Rt||(Rt={}));const Tt={x:.2,y:.2};function _t(e,t,n,o,r){let{top:i,left:a,right:s,bottom:l}=n;void 0===o&&(o=10),void 0===r&&(r=Tt);const{isTop:c,isBottom:d,isLeft:u,isRight:p}=Lt(e),g={x:0,y:0},m={x:0,y:0},h=t.height*r.y,f=t.width*r.x;return!c&&i<=t.top+h?(g.y=Rt.Backward,m.y=o*Math.abs((t.top+h-i)/h)):!d&&l>=t.bottom-h&&(g.y=Rt.Forward,m.y=o*Math.abs((t.bottom-h-l)/h)),!p&&s>=t.right-f?(g.x=Rt.Forward,m.x=o*Math.abs((t.right-f-s)/f)):!u&&a<=t.left+f&&(g.x=Rt.Backward,m.x=o*Math.abs((t.left+f-a)/f)),{direction:g,speed:m}}function Ft(e){if(e===document.scrollingElement){const{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}const{top:t,left:n,right:o,bottom:r}=e.getBoundingClientRect();return{top:t,left:n,right:o,bottom:r,width:e.clientWidth,height:e.clientHeight}}function jt(e){return e.reduce((e,t)=>Xe(e,Pt(t)),mt)}const Wt=[["x",["left","right"],function(e){return e.reduce((e,t)=>e+Nt(t),0)}],["y",["top","bottom"],function(e){return e.reduce((e,t)=>e+Mt(t),0)}]];class Ut{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const n=Dt(t),o=jt(n);this.rect={...e},this.width=e.width,this.height=e.height;for(const[e,t,r]of Wt)for(const i of t)Object.defineProperty(this,i,{get:()=>{const t=r(n),a=o[e]-t;return this.rect[i]+a},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class zt{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>{var t;return null==(t=this.target)?void 0:t.removeEventListener(...e)})},this.target=e}add(e,t,n){var o;null==(o=this.target)||o.addEventListener(e,t,n),this.listeners.push([e,t,n])}}function Ht(e,t){const n=Math.abs(e.x),o=Math.abs(e.y);return"number"==typeof t?Math.sqrt(n**2+o**2)>t:"x"in t&&"y"in t?n>t.x&&o>t.y:"x"in t?n>t.x:"y"in t&&o>t.y}var $t,Gt;function Vt(e){e.preventDefault()}function Yt(e){e.stopPropagation()}!function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"}($t||($t={})),function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"}(Gt||(Gt={}));const Kt={start:[Gt.Space,Gt.Enter],cancel:[Gt.Esc],end:[Gt.Space,Gt.Enter,Gt.Tab]},qt=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case Gt.Right:return{...n,x:n.x+25};case Gt.Left:return{...n,x:n.x-25};case Gt.Down:return{...n,y:n.y+25};case Gt.Up:return{...n,y:n.y-25}}};class Jt{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;const{event:{target:t}}=e;this.props=e,this.listeners=new zt(ze(t)),this.windowListeners=new zt(Fe(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add($t.Resize,this.handleCancel),this.windowListeners.add($t.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add($t.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&function(e,t){if(void 0===t&&(t=kt),!e)return;const{top:n,left:o,bottom:r,right:i}=t(e);St(e)&&(r<=0||i<=0||n>=window.innerHeight||o>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}(n),t(mt)}handleKeyDown(e){if(et(e)){const{active:t,context:n,options:o}=this.props,{keyboardCodes:r=Kt,coordinateGetter:i=qt,scrollBehavior:a="smooth"}=o,{code:s}=e;if(r.end.includes(s))return void this.handleEnd(e);if(r.cancel.includes(s))return void this.handleCancel(e);const{collisionRect:l}=n.current,c=l?{x:l.left,y:l.top}:mt;this.referenceCoordinates||(this.referenceCoordinates=c);const d=i(e,{active:t,context:n.current,currentCoordinates:c});if(d){const t=Ze(d,c),o={x:0,y:0},{scrollableAncestors:r}=n.current;for(const n of r){const r=e.code,{isTop:i,isRight:s,isLeft:l,isBottom:c,maxScroll:u,minScroll:p}=Lt(n),g=Ft(n),m={x:Math.min(r===Gt.Right?g.right-g.width/2:g.right,Math.max(r===Gt.Right?g.left:g.left+g.width/2,d.x)),y:Math.min(r===Gt.Down?g.bottom-g.height/2:g.bottom,Math.max(r===Gt.Down?g.top:g.top+g.height/2,d.y))},h=r===Gt.Right&&!s||r===Gt.Left&&!l,f=r===Gt.Down&&!c||r===Gt.Up&&!i;if(h&&m.x!==d.x){const e=n.scrollLeft+t.x,i=r===Gt.Right&&e<=u.x||r===Gt.Left&&e>=p.x;if(i&&!t.y)return void n.scrollTo({left:e,behavior:a});o.x=i?n.scrollLeft-e:r===Gt.Right?n.scrollLeft-u.x:n.scrollLeft-p.x,o.x&&n.scrollBy({left:-o.x,behavior:a});break}if(f&&m.y!==d.y){const e=n.scrollTop+t.y,i=r===Gt.Down&&e<=u.y||r===Gt.Up&&e>=p.y;if(i&&!t.x)return void n.scrollTo({top:e,behavior:a});o.y=i?n.scrollTop-e:r===Gt.Down?n.scrollTop-u.y:n.scrollTop-p.y,o.y&&n.scrollBy({top:-o.y,behavior:a});break}}this.handleMove(e,Xe(Ze(d,this.referenceCoordinates),o))}}}handleMove(e,t){const{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){const{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){const{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}function Qt(e){return Boolean(e&&"distance"in e)}function Xt(e){return Boolean(e&&"delay"in e)}Jt.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:o=Kt,onActivation:r}=t,{active:i}=n;const{code:a}=e.nativeEvent;if(o.start.includes(a)){const t=i.activatorNode.current;return!(t&&e.target!==t||(e.preventDefault(),null==r||r({event:e.nativeEvent}),0))}return!1}}];class Zt{constructor(e,t,n){var o;void 0===n&&(n=function(e){const{EventTarget:t}=Fe(e);return e instanceof t?e:ze(e)}(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;const{event:r}=e,{target:i}=r;this.props=e,this.events=t,this.document=ze(i),this.documentListeners=new zt(this.document),this.listeners=new zt(n),this.windowListeners=new zt(Fe(i)),this.initialCoordinates=null!=(o=tt(r))?o:mt,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add($t.Resize,this.handleCancel),this.windowListeners.add($t.DragStart,Vt),this.windowListeners.add($t.VisibilityChange,this.handleCancel),this.windowListeners.add($t.ContextMenu,Vt),this.documentListeners.add($t.Keydown,this.handleKeydown),t){if(null!=n&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(Xt(t))return this.timeoutId=setTimeout(this.handleStart,t.delay),void this.handlePending(t);if(Qt(t))return void this.handlePending(t)}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),null!==this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){const{active:n,onPending:o}=this.props;o(n,e,this.initialCoordinates,t)}handleStart(){const{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add($t.Click,Yt,{capture:!0}),this.removeTextSelection(),this.documentListeners.add($t.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){var t;const{activated:n,initialCoordinates:o,props:r}=this,{onMove:i,options:{activationConstraint:a}}=r;if(!o)return;const s=null!=(t=tt(e))?t:mt,l=Ze(o,s);if(!n&&a){if(Qt(a)){if(null!=a.tolerance&&Ht(l,a.tolerance))return this.handleCancel();if(Ht(l,a.distance))return this.handleStart()}return Xt(a)&&Ht(l,a.tolerance)?this.handleCancel():void this.handlePending(a,l)}e.cancelable&&e.preventDefault(),i(s)}handleEnd(){const{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){const{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===Gt.Esc&&this.handleCancel()}removeTextSelection(){var e;null==(e=this.document.getSelection())||e.removeAllRanges()}}const en={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class tn extends Zt{constructor(e){const{event:t}=e,n=ze(t.target);super(e,en,n)}}tn.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:o}=t;return!(!n.isPrimary||0!==n.button||(null==o||o({event:n}),0))}}];const nn={move:{name:"mousemove"},end:{name:"mouseup"}};var on;!function(e){e[e.RightClick=2]="RightClick"}(on||(on={})),class extends Zt{constructor(e){super(e,nn,ze(e.event.target))}}.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:o}=t;return n.button!==on.RightClick&&(null==o||o({event:n}),!0)}}];const rn={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};var an,sn;(class extends Zt{constructor(e){super(e,rn)}static setup(){return window.addEventListener(rn.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(rn.move.name,e)};function e(){}}}).activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:o}=t;const{touches:r}=n;return!(r.length>1||(null==o||o({event:n}),0))}}],function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"}(an||(an={})),function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"}(sn||(sn={}));const ln={x:{[Rt.Backward]:!1,[Rt.Forward]:!1},y:{[Rt.Backward]:!1,[Rt.Forward]:!1}};var cn,dn;!function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"}(cn||(cn={})),function(e){e.Optimized="optimized"}(dn||(dn={}));const un=new Map;function pn(e,t){return Ve(n=>e?n||("function"==typeof t?t(e):e):null,[t,e])}function gn(e){let{callback:t,disabled:o}=e;const r=$e(t),i=n.useMemo(()=>{if(o||"undefined"==typeof window||void 0===window.ResizeObserver)return;const{ResizeObserver:e}=window;return new e(r)},[o]);return n.useEffect(()=>()=>null==i?void 0:i.disconnect(),[i]),i}function mn(e){return new Ut(kt(e),e)}function hn(e,t,o){void 0===t&&(t=mn);const[r,i]=n.useState(null);function a(){i(n=>{if(!e)return null;var r;if(!1===e.isConnected)return null!=(r=null!=n?n:o)?r:null;const i=t(e);return JSON.stringify(n)===JSON.stringify(i)?n:i})}const s=function(e){let{callback:t,disabled:o}=e;const r=$e(t),i=n.useMemo(()=>{if(o||"undefined"==typeof window||void 0===window.MutationObserver)return;const{MutationObserver:e}=window;return new e(r)},[r,o]);return n.useEffect(()=>()=>null==i?void 0:i.disconnect(),[i]),i}({callback(t){if(e)for(const n of t){const{type:t,target:o}=n;if("childList"===t&&o instanceof HTMLElement&&o.contains(e)){a();break}}}}),l=gn({callback:a});return He(()=>{a(),e?(null==l||l.observe(e),null==s||s.observe(document.body,{childList:!0,subtree:!0})):(null==l||l.disconnect(),null==s||s.disconnect())},[e]),r}const fn=[];function Cn(e,t){void 0===t&&(t=[]);const o=n.useRef(null);return n.useEffect(()=>{o.current=null},t),n.useEffect(()=>{const t=e!==mt;t&&!o.current&&(o.current=e),!t&&o.current&&(o.current=null)},[e]),o.current?Ze(e,o.current):mt}function bn(e){return n.useMemo(()=>e?function(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}(e):null,[e])}const xn=[];const vn=[{sensor:tn,options:{}},{sensor:Jt,options:{}}],An={current:{}},wn={draggable:{measure:Bt},droppable:{measure:Bt,strategy:cn.WhileDragging,frequency:dn.Optimized},dragOverlay:{measure:kt}};class yn extends Map{get(e){var t;return null!=e&&null!=(t=super.get(e))?t:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){var t,n;return null!=(t=null==(n=this.get(e))?void 0:n.node.current)?t:void 0}}const En={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new yn,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:gt},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:wn,measureDroppableContainers:gt,windowRect:null,measuringScheduled:!1},kn={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:gt,draggableNodes:new Map,over:null,measureDroppableContainers:gt},Bn=n.createContext(kn),Dn=n.createContext(En);function Sn(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new yn}}}function In(e,t){switch(t.type){case pt.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case pt.DragMove:return null==e.draggable.active?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case pt.DragEnd:case pt.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case pt.RegisterDroppable:{const{element:n}=t,{id:o}=n,r=new yn(e.droppable.containers);return r.set(o,n),{...e,droppable:{...e.droppable,containers:r}}}case pt.SetDroppableDisabled:{const{id:n,key:o,disabled:r}=t,i=e.droppable.containers.get(n);if(!i||o!==i.key)return e;const a=new yn(e.droppable.containers);return a.set(n,{...i,disabled:r}),{...e,droppable:{...e.droppable,containers:a}}}case pt.UnregisterDroppable:{const{id:n,key:o}=t,r=e.droppable.containers.get(n);if(!r||o!==r.key)return e;const i=new yn(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function Nn(e){let{disabled:t}=e;const{active:o,activatorEvent:r,draggableNodes:i}=n.useContext(Bn),a=Ke(r),s=Ke(null==o?void 0:o.id);return n.useEffect(()=>{if(!t&&!r&&a&&null!=s){if(!et(a))return;if(document.activeElement===a.target)return;const e=i.get(s);if(!e)return;const{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(const e of[t.current,n.current]){if(!e)continue;const t=rt(e);if(t){t.focus();break}}})}},[r,t,i,s,a]),null}const Mn=n.createContext({...mt,scaleX:1,scaleY:1});var Pn;!function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"}(Pn||(Pn={}));const Rn=n.memo(function(e){var t,r,i,a;let{id:s,accessibility:l,autoScroll:c=!0,children:d,sensors:u=vn,collisionDetection:p=At,measuring:g,modifiers:m,...h}=e;const f=n.useReducer(In,void 0,Sn),[C,b]=f,[x,v]=function(){const[e]=n.useState(()=>new Set),t=n.useCallback(t=>(e.add(t),()=>e.delete(t)),[e]);return[n.useCallback(t=>{let{type:n,event:o}=t;e.forEach(e=>{var t;return null==(t=e[n])?void 0:t.call(e,o)})},[e]),t]}(),[A,w]=n.useState(Pn.Uninitialized),y=A===Pn.Initialized,{draggable:{active:E,nodes:k,translate:B},droppable:{containers:D}}=C,S=null!=E?k.get(E):null,I=n.useRef({initial:null,translated:null}),N=n.useMemo(()=>{var e;return null!=E?{id:E,data:null!=(e=null==S?void 0:S.data)?e:An,rect:I}:null},[E,S]),M=n.useRef(null),[P,R]=n.useState(null),[O,L]=n.useState(null),T=Ge(h,Object.values(h)),_=Je("DndDescribedBy",s),F=n.useMemo(()=>D.getEnabled(),[D]),j=(W=g,n.useMemo(()=>({draggable:{...wn.draggable,...null==W?void 0:W.draggable},droppable:{...wn.droppable,...null==W?void 0:W.droppable},dragOverlay:{...wn.dragOverlay,...null==W?void 0:W.dragOverlay}}),[null==W?void 0:W.draggable,null==W?void 0:W.droppable,null==W?void 0:W.dragOverlay]));var W;const{droppableRects:U,measureDroppableContainers:z,measuringScheduled:H}=function(e,t){let{dragging:o,dependencies:r,config:i}=t;const[a,s]=n.useState(null),{frequency:l,measure:c,strategy:d}=i,u=n.useRef(e),p=function(){switch(d){case cn.Always:return!1;case cn.BeforeDragging:return o;default:return!o}}(),g=Ge(p),m=n.useCallback(function(e){void 0===e&&(e=[]),g.current||s(t=>null===t?e:t.concat(e.filter(e=>!t.includes(e))))},[g]),h=n.useRef(null),f=Ve(t=>{if(p&&!o)return un;if(!t||t===un||u.current!==e||null!=a){const t=new Map;for(let n of e){if(!n)continue;if(a&&a.length>0&&!a.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}const e=n.node.current,o=e?new Ut(c(e),e):null;n.rect.current=o,o&&t.set(n.id,o)}return t}return t},[e,a,o,p,c]);return n.useEffect(()=>{u.current=e},[e]),n.useEffect(()=>{p||m()},[o,p]),n.useEffect(()=>{a&&a.length>0&&s(null)},[JSON.stringify(a)]),n.useEffect(()=>{p||"number"!=typeof l||null!==h.current||(h.current=setTimeout(()=>{m(),h.current=null},l))},[l,p,m,...r]),{droppableRects:f,measureDroppableContainers:m,measuringScheduled:null!=a}}(F,{dragging:y,dependencies:[B.x,B.y],config:j.droppable}),$=function(e,t){const n=null!=t?e.get(t):void 0,o=n?n.node.current:null;return Ve(e=>{var n;return null==t?null:null!=(n=null!=o?o:e)?n:null},[o,t])}(k,E),G=n.useMemo(()=>O?tt(O):null,[O]),V=function(){const e=!1===(null==P?void 0:P.autoScrollEnabled),t="object"==typeof c?!1===c.enabled:!1===c,n=y&&!e&&!t;return"object"==typeof c?{...c,enabled:n}:{enabled:n}}(),Y=function(e,t){return pn(e,t)}($,j.draggable.measure);!function(e){let{activeNode:t,measure:o,initialRect:r,config:i=!0}=e;const a=n.useRef(!1),{x:s,y:l}="boolean"==typeof i?{x:i,y:i}:i;He(()=>{if(!s&&!l||!t)return void(a.current=!1);if(a.current||!r)return;const e=null==t?void 0:t.node.current;if(!e||!1===e.isConnected)return;const n=wt(o(e),r);if(s||(n.x=0),l||(n.y=0),a.current=!0,Math.abs(n.x)>0||Math.abs(n.y)>0){const t=St(e);t&&t.scrollBy({top:n.y,left:n.x})}},[t,s,l,r,o])}({activeNode:null!=E?k.get(E):null,config:V.layoutShiftCompensation,initialRect:Y,measure:j.draggable.measure});const K=hn($,j.draggable.measure,Y),q=hn($?$.parentElement:null),J=n.useRef({activatorEvent:null,active:null,activeNode:$,collisionRect:null,collisions:null,droppableRects:U,draggableNodes:k,draggingNode:null,draggingNodeRect:null,droppableContainers:D,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),Q=D.getNodeFor(null==(t=J.current.over)?void 0:t.id),X=function(e){let{measure:t}=e;const[o,r]=n.useState(null),i=n.useCallback(e=>{for(const{target:n}of e)if(We(n)){r(e=>{const o=t(n);return e?{...e,width:o.width,height:o.height}:o});break}},[t]),a=gn({callback:i}),s=n.useCallback(e=>{const n=function(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return We(t)?t:e}(e);null==a||a.disconnect(),n&&(null==a||a.observe(n)),r(n?t(n):null)},[t,a]),[l,c]=Ye(s);return n.useMemo(()=>({nodeRef:l,rect:o,setRef:c}),[o,l,c])}({measure:j.dragOverlay.measure}),Z=null!=(r=X.nodeRef.current)?r:$,ee=y?null!=(i=X.rect)?i:K:null,te=Boolean(X.nodeRef.current&&X.rect),ne=wt(oe=te?null:K,pn(oe));var oe;const re=bn(Z?Fe(Z):null),ie=function(e){const t=n.useRef(e),o=Ve(n=>e?n&&n!==fn&&e&&t.current&&e.parentNode===t.current.parentNode?n:Dt(e):fn,[e]);return n.useEffect(()=>{t.current=e},[e]),o}(y?null!=Q?Q:$:null),ae=function(e,t){void 0===t&&(t=kt);const[o]=e,r=bn(o?Fe(o):null),[i,a]=n.useState(xn);function s(){a(()=>e.length?e.map(e=>Ot(e)?r:new Ut(t(e),e)):xn)}const l=gn({callback:s});return He(()=>{null==l||l.disconnect(),s(),e.forEach(e=>null==l?void 0:l.observe(e))},[e]),i}(ie),se=function(e,t){let{transform:n,...o}=t;return null!=e&&e.length?e.reduce((e,t)=>t({transform:e,...o}),n):n}(m,{transform:{x:B.x-ne.x,y:B.y-ne.y,scaleX:1,scaleY:1},activatorEvent:O,active:N,activeNodeRect:K,containerNodeRect:q,draggingNodeRect:ee,over:J.current.over,overlayNodeRect:X.rect,scrollableAncestors:ie,scrollableAncestorRects:ae,windowRect:re}),le=G?Xe(G,B):null,ce=function(e){const[t,o]=n.useState(null),r=n.useRef(e),i=n.useCallback(e=>{const t=It(e.target);t&&o(e=>e?(e.set(t,Pt(t)),new Map(e)):null)},[]);return n.useEffect(()=>{const t=r.current;if(e!==t){n(t);const a=e.map(e=>{const t=It(e);return t?(t.addEventListener("scroll",i,{passive:!0}),[t,Pt(t)]):null}).filter(e=>null!=e);o(a.length?new Map(a):null),r.current=e}return()=>{n(e),n(t)};function n(e){e.forEach(e=>{const t=It(e);null==t||t.removeEventListener("scroll",i)})}},[i,e]),n.useMemo(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>Xe(e,t),mt):jt(e):mt,[e,t])}(ie),de=Cn(ce),ue=Cn(ce,[K]),pe=Xe(se,de),ge=ee?yt(ee,se):null,me=N&&ge?p({active:N,collisionRect:ge,droppableRects:U,droppableContainers:F,pointerCoordinates:le}):null,he=function(e){if(!e||0===e.length)return null;const[t]=e;return t.id}(me),[fe,Ce]=n.useState(null),be=function(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}(te?se:Xe(se,ue),null!=(a=null==fe?void 0:fe.rect)?a:null,K),xe=n.useRef(null),ve=n.useCallback((e,t)=>{let{sensor:n,options:r}=t;if(null==M.current)return;const i=k.get(M.current);if(!i)return;const a=e.nativeEvent,s=new n({active:M.current,activeNode:i,event:a,options:r,context:J,onAbort(e){if(!k.get(e))return;const{onDragAbort:t}=T.current,n={id:e};null==t||t(n),x({type:"onDragAbort",event:n})},onPending(e,t,n,o){if(!k.get(e))return;const{onDragPending:r}=T.current,i={id:e,constraint:t,initialCoordinates:n,offset:o};null==r||r(i),x({type:"onDragPending",event:i})},onStart(e){const t=M.current;if(null==t)return;const n=k.get(t);if(!n)return;const{onDragStart:r}=T.current,i={activatorEvent:a,active:{id:t,data:n.data,rect:I}};o.unstable_batchedUpdates(()=>{null==r||r(i),w(Pn.Initializing),b({type:pt.DragStart,initialCoordinates:e,active:t}),x({type:"onDragStart",event:i}),R(xe.current),L(a)})},onMove(e){b({type:pt.DragMove,coordinates:e})},onEnd:l(pt.DragEnd),onCancel:l(pt.DragCancel)});function l(e){return async function(){const{active:t,collisions:n,over:r,scrollAdjustedTranslate:i}=J.current;let s=null;if(t&&i){const{cancelDrop:o}=T.current;s={activatorEvent:a,active:t,collisions:n,delta:i,over:r},e===pt.DragEnd&&"function"==typeof o&&await Promise.resolve(o(s))&&(e=pt.DragCancel)}M.current=null,o.unstable_batchedUpdates(()=>{b({type:e}),w(Pn.Uninitialized),Ce(null),R(null),L(null),xe.current=null;const t=e===pt.DragEnd?"onDragEnd":"onDragCancel";if(s){const e=T.current[t];null==e||e(s),x({type:t,event:s})}})}}xe.current=s},[k]),Ae=n.useCallback((e,t)=>(n,o)=>{const r=n.nativeEvent,i=k.get(o);if(null!==M.current||!i||r.dndKit||r.defaultPrevented)return;const a={active:i};!0===e(n,t.options,a)&&(r.dndKit={capturedBy:t.sensor},M.current=o,ve(n,t))},[k,ve]),we=function(e,t){return n.useMemo(()=>e.reduce((e,n)=>{const{sensor:o}=n;return[...e,...o.activators.map(e=>({eventName:e.eventName,handler:t(e.handler,n)}))]},[]),[e,t])}(u,Ae);!function(e){n.useEffect(()=>{if(!Le)return;const t=e.map(e=>{let{sensor:t}=e;return null==t.setup?void 0:t.setup()});return()=>{for(const e of t)null==e||e()}},e.map(e=>{let{sensor:t}=e;return t}))}(u),He(()=>{K&&A===Pn.Initializing&&w(Pn.Initialized)},[K,A]),n.useEffect(()=>{const{onDragMove:e}=T.current,{active:t,activatorEvent:n,collisions:r,over:i}=J.current;if(!t||!n)return;const a={active:t,activatorEvent:n,collisions:r,delta:{x:pe.x,y:pe.y},over:i};o.unstable_batchedUpdates(()=>{null==e||e(a),x({type:"onDragMove",event:a})})},[pe.x,pe.y]),n.useEffect(()=>{const{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:i}=J.current;if(!e||null==M.current||!t||!i)return;const{onDragOver:a}=T.current,s=r.get(he),l=s&&s.rect.current?{id:s.id,rect:s.rect.current,data:s.data,disabled:s.disabled}:null,c={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:l};o.unstable_batchedUpdates(()=>{Ce(l),null==a||a(c),x({type:"onDragOver",event:c})})},[he]),He(()=>{J.current={activatorEvent:O,active:N,activeNode:$,collisionRect:ge,collisions:me,droppableRects:U,draggableNodes:k,draggingNode:Z,draggingNodeRect:ee,droppableContainers:D,over:fe,scrollableAncestors:ie,scrollAdjustedTranslate:pe},I.current={initial:ee,translated:ge}},[N,$,me,ge,k,Z,ee,U,D,fe,ie,pe]),function(e){let{acceleration:t,activator:o=an.Pointer,canScroll:r,draggingRect:i,enabled:a,interval:s=5,order:l=sn.TreeOrder,pointerCoordinates:c,scrollableAncestors:d,scrollableAncestorRects:u,delta:p,threshold:g}=e;const m=function(e){let{delta:t,disabled:n}=e;const o=Ke(t);return Ve(e=>{if(n||!o||!e)return ln;const r=Math.sign(t.x-o.x),i=Math.sign(t.y-o.y);return{x:{[Rt.Backward]:e.x[Rt.Backward]||-1===r,[Rt.Forward]:e.x[Rt.Forward]||1===r},y:{[Rt.Backward]:e.y[Rt.Backward]||-1===i,[Rt.Forward]:e.y[Rt.Forward]||1===i}}},[n,t,o])}({delta:p,disabled:!a}),[h,f]=function(){const e=n.useRef(null);return[n.useCallback((t,n)=>{e.current=setInterval(t,n)},[]),n.useCallback(()=>{null!==e.current&&(clearInterval(e.current),e.current=null)},[])]}(),C=n.useRef({x:0,y:0}),b=n.useRef({x:0,y:0}),x=n.useMemo(()=>{switch(o){case an.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case an.DraggableRect:return i}},[o,i,c]),v=n.useRef(null),A=n.useCallback(()=>{const e=v.current;if(!e)return;const t=C.current.x*b.current.x,n=C.current.y*b.current.y;e.scrollBy(t,n)},[]),w=n.useMemo(()=>l===sn.TreeOrder?[...d].reverse():d,[l,d]);n.useEffect(()=>{if(a&&d.length&&x){for(const e of w){if(!1===(null==r?void 0:r(e)))continue;const n=d.indexOf(e),o=u[n];if(!o)continue;const{direction:i,speed:a}=_t(e,o,x,t,g);for(const e of["x","y"])m[e][i[e]]||(a[e]=0,i[e]=0);if(a.x>0||a.y>0)return f(),v.current=e,h(A,s),C.current=a,void(b.current=i)}C.current={x:0,y:0},b.current={x:0,y:0},f()}else f()},[t,A,r,f,a,s,JSON.stringify(x),JSON.stringify(m),h,d,w,u,JSON.stringify(g)])}({...V,delta:B,draggingRect:ge,pointerCoordinates:le,scrollableAncestors:ie,scrollableAncestorRects:ae});const ye=n.useMemo(()=>({active:N,activeNode:$,activeNodeRect:K,activatorEvent:O,collisions:me,containerNodeRect:q,dragOverlay:X,draggableNodes:k,droppableContainers:D,droppableRects:U,over:fe,measureDroppableContainers:z,scrollableAncestors:ie,scrollableAncestorRects:ae,measuringConfiguration:j,measuringScheduled:H,windowRect:re}),[N,$,K,O,me,q,X,k,D,U,fe,z,ie,ae,j,H,re]),Ee=n.useMemo(()=>({activatorEvent:O,activators:we,active:N,activeNodeRect:K,ariaDescribedById:{draggable:_},dispatch:b,draggableNodes:k,over:fe,measureDroppableContainers:z}),[O,we,N,K,b,_,k,fe,z]);return n.createElement(lt.Provider,{value:v},n.createElement(Bn.Provider,{value:Ee},n.createElement(Dn.Provider,{value:ye},n.createElement(Mn.Provider,{value:be},d)),n.createElement(Nn,{disabled:!1===(null==l?void 0:l.restoreFocus)})),n.createElement(ut,{...l,hiddenTextDescribedById:_}))}),On=n.createContext(null),Ln="button";const Tn={timeout:25},_n=e=>{let{transform:t}=e;return{...t,y:0}},Fn=e=>{let{containerNodeRect:t,draggingNodeRect:n,transform:o}=e;return n&&t?function(e,t,n){const o={...e};return t.top+e.y<=n.top?o.y=n.top-t.top:t.bottom+e.y>=n.top+n.height&&(o.y=n.top+n.height-t.bottom),t.left+e.x<=n.left?o.x=n.left-t.left:t.right+e.x>=n.left+n.width&&(o.x=n.left+n.width-t.right),o}(o,n,t):o};function jn(e,t,n){const o=e.slice();return o.splice(n<0?o.length+n:n,0,o.splice(t,1)[0]),o}function Wn(e,t){return e.reduce((e,n,o)=>{const r=t.get(n);return r&&(e[o]=r),e},Array(e.length))}function Un(e){return null!==e&&e>=0}const zn={scaleX:1,scaleY:1},Hn=e=>{var t;let{rects:n,activeNodeRect:o,activeIndex:r,overIndex:i,index:a}=e;const s=null!=(t=n[r])?t:o;if(!s)return null;const l=function(e,t,n){const o=e[t],r=e[t-1],i=e[t+1];return o&&(r||i)?nr&&a<=i?{x:-s.width-l,y:0,...zn}:a=i?{x:s.width+l,y:0,...zn}:{x:0,y:0,...zn}},$n=e=>{let{rects:t,activeIndex:n,overIndex:o,index:r}=e;const i=jn(t,o,n),a=t[r],s=i[r];return s&&a?{x:s.left-a.left,y:s.top-a.top,scaleX:s.width/a.width,scaleY:s.height/a.height}:null},Gn="Sortable",Vn=n.createContext({activeIndex:-1,containerId:Gn,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:$n,disabled:{draggable:!1,droppable:!1}});function Yn(e){let{children:t,id:o,items:r,strategy:i=$n,disabled:a=!1}=e;const{active:s,dragOverlay:l,droppableRects:c,over:d,measureDroppableContainers:u}=n.useContext(Dn),p=Je(Gn,o),g=Boolean(null!==l.rect),m=n.useMemo(()=>r.map(e=>"object"==typeof e&&"id"in e?e.id:e),[r]),h=null!=s,f=s?m.indexOf(s.id):-1,C=d?m.indexOf(d.id):-1,b=n.useRef(m),x=!function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{x&&h&&u(m)},[x,m,h,u]),n.useEffect(()=>{b.current=m},[m]);const w=n.useMemo(()=>({activeIndex:f,containerId:p,disabled:A,disableTransforms:v,items:m,overIndex:C,useDragOverlay:g,sortedRects:Wn(m,c),strategy:i}),[f,p,A.draggable,A.droppable,v,m,C,c,g,i]);return n.createElement(Vn.Provider,{value:w},t)}const Kn=e=>{let{id:t,items:n,activeIndex:o,overIndex:r}=e;return jn(n,o,r).indexOf(t)},qn=e=>{let{containerId:t,isSorting:n,wasDragging:o,index:r,items:i,newIndex:a,previousItems:s,previousContainerId:l,transition:c}=e;return!(!c||!o||s!==i&&r===a||!n&&(a===r||t!==l))},Jn={duration:200,easing:"ease"},Qn="transform",Xn=nt.Transition.toString({property:Qn,duration:0,easing:"linear"}),Zn={roleDescription:"sortable"};function eo(e){let{animateLayoutChanges:t=qn,attributes:o,disabled:r,data:i,getNewIndex:a=Kn,id:s,strategy:l,resizeObserverConfig:c,transition:d=Jn}=e;const{items:u,containerId:p,activeIndex:g,disabled:m,disableTransforms:h,sortedRects:f,overIndex:C,useDragOverlay:b,strategy:x}=n.useContext(Vn),v=function(e,t){var n,o;return"boolean"==typeof e?{draggable:e,droppable:!1}:{draggable:null!=(n=null==e?void 0:e.draggable)?n:t.draggable,droppable:null!=(o=null==e?void 0:e.droppable)?o:t.droppable}}(r,m),A=u.indexOf(s),w=n.useMemo(()=>({sortable:{containerId:p,index:A,items:u},...i}),[p,i,A,u]),y=n.useMemo(()=>u.slice(u.indexOf(s)),[u,s]),{rect:E,node:k,isOver:B,setNodeRef:D}=function(e){let{data:t,disabled:o=!1,id:r,resizeObserverConfig:i}=e;const a=Je("Droppable"),{active:s,dispatch:l,over:c,measureDroppableContainers:d}=n.useContext(Bn),u=n.useRef({disabled:o}),p=n.useRef(!1),g=n.useRef(null),m=n.useRef(null),{disabled:h,updateMeasurementsFor:f,timeout:C}={...Tn,...i},b=Ge(null!=f?f:r),x=gn({callback:n.useCallback(()=>{p.current?(null!=m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{d(Array.isArray(b.current)?b.current:[b.current]),m.current=null},C)):p.current=!0},[C]),disabled:h||!s}),v=n.useCallback((e,t)=>{x&&(t&&(x.unobserve(t),p.current=!1),e&&x.observe(e))},[x]),[A,w]=Ye(v),y=Ge(t);return n.useEffect(()=>{x&&A.current&&(x.disconnect(),p.current=!1,x.observe(A.current))},[A,x]),n.useEffect(()=>(l({type:pt.RegisterDroppable,element:{id:r,key:a,disabled:o,node:A,rect:g,data:y}}),()=>l({type:pt.UnregisterDroppable,key:a,id:r})),[r]),n.useEffect(()=>{o!==u.current.disabled&&(l({type:pt.SetDroppableDisabled,id:r,key:a,disabled:o}),u.current.disabled=o)},[r,a,o,l]),{active:s,rect:g,isOver:(null==c?void 0:c.id)===r,node:A,over:c,setNodeRef:w}}({id:s,data:w,disabled:v.droppable,resizeObserverConfig:{updateMeasurementsFor:y,...c}}),{active:S,activatorEvent:I,activeNodeRect:N,attributes:M,setNodeRef:P,listeners:R,isDragging:O,over:L,setActivatorNodeRef:T,transform:_}=function(e){let{id:t,data:o,disabled:r=!1,attributes:i}=e;const a=Je("Draggable"),{activators:s,activatorEvent:l,active:c,activeNodeRect:d,ariaDescribedById:u,draggableNodes:p,over:g}=n.useContext(Bn),{role:m=Ln,roleDescription:h="draggable",tabIndex:f=0}=null!=i?i:{},C=(null==c?void 0:c.id)===t,b=n.useContext(C?Mn:On),[x,v]=Ye(),[A,w]=Ye(),y=function(e,t){return n.useMemo(()=>e.reduce((e,n)=>{let{eventName:o,handler:r}=n;return e[o]=e=>{r(e,t)},e},{}),[e,t])}(s,t),E=Ge(o);return He(()=>(p.set(t,{id:t,key:a,node:x,activatorNode:A,data:E}),()=>{const e=p.get(t);e&&e.key===a&&p.delete(t)}),[p,t]),{active:c,activatorEvent:l,activeNodeRect:d,attributes:n.useMemo(()=>({role:m,tabIndex:f,"aria-disabled":r,"aria-pressed":!(!C||m!==Ln)||void 0,"aria-roledescription":h,"aria-describedby":u.draggable}),[r,m,f,C,h,u.draggable]),isDragging:C,listeners:r?void 0:y,node:x,over:g,setNodeRef:v,setActivatorNodeRef:w,transform:b}}({id:s,data:w,attributes:{...Zn,...o},disabled:v.draggable}),F=function(){for(var e=arguments.length,t=new Array(e),o=0;oe=>{t.forEach(t=>t(e))},t)}(D,P),j=Boolean(S),W=j&&!h&&Un(g)&&Un(C),U=!b&&O,z=U&&W?_:null,H=W?null!=z?z:(null!=l?l:x)({rects:f,activeNodeRect:N,activeIndex:g,overIndex:C,index:A}):null,$=Un(g)&&Un(C)?a({id:s,items:u,activeIndex:g,overIndex:C}):A,G=null==S?void 0:S.id,V=n.useRef({activeId:G,items:u,newIndex:$,containerId:p}),Y=u!==V.current.items,K=t({active:S,containerId:p,isDragging:O,isSorting:j,id:s,index:A,items:u,newIndex:V.current.newIndex,previousItems:V.current.items,previousContainerId:V.current.containerId,transition:d,wasDragging:null!=V.current.activeId}),q=function(e){let{disabled:t,index:o,node:r,rect:i}=e;const[a,s]=n.useState(null),l=n.useRef(o);return He(()=>{if(!t&&o!==l.current&&r.current){const e=i.current;if(e){const t=kt(r.current,{ignoreTransform:!0}),n={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(n.x||n.y)&&s(n)}}o!==l.current&&(l.current=o)},[t,o,r,i]),n.useEffect(()=>{a&&s(null)},[a]),a}({disabled:!K,index:A,node:k,rect:E});return n.useEffect(()=>{j&&V.current.newIndex!==$&&(V.current.newIndex=$),p!==V.current.containerId&&(V.current.containerId=p),u!==V.current.items&&(V.current.items=u)},[j,$,p,u]),n.useEffect(()=>{if(G===V.current.activeId)return;if(null!=G&&null==V.current.activeId)return void(V.current.activeId=G);const e=setTimeout(()=>{V.current.activeId=G},50);return()=>clearTimeout(e)},[G]),{active:S,activeIndex:g,attributes:M,data:w,rect:E,index:A,newIndex:$,items:u,isOver:B,isSorting:j,isDragging:O,listeners:R,node:k,overIndex:C,over:L,setNodeRef:F,setActivatorNodeRef:T,setDroppableNodeRef:D,setDraggableNodeRef:P,transform:null!=q?q:H,transition:q||Y&&V.current.newIndex===A?Xn:U&&!et(I)||!d?void 0:j||K?nt.Transition.toString({...d,property:Qn}):void 0}}Gt.Down,Gt.Right,Gt.Up,Gt.Left;const to=P()(xe(e=>({extensionsOrder:[],setExtensionsOrder:t=>{e(e=>({extensionsOrder:"function"==typeof t?t(e.extensionsOrder):t}))}}),{name:"extendium_extensionsBarStore"}));function no(e){return X({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M12 17v5"},child:[]},{tag:"path",attr:{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z"},child:[]}]})(e)}function oo(e){return X({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M12 17v5"},child:[]},{tag:"path",attr:{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89"},child:[]},{tag:"path",attr:{d:"m2 2 20 20"},child:[]},{tag:"path",attr:{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11"},child:[]}]})(e)}function ro({extension:e,pinned:o,pinExtension:r,unpinExtension:i}){return n.createElement(t.Field,{key:e.id,label:e.name,icon:n.createElement("img",{width:16,height:16,src:e.action.iconUrl,alt:e.name}),padding:"standard"},n.createElement(t.DialogButton,{onClick:function(){o?i(e.id):r(e.id)},style:{padding:"0 8px"},title:o?"Unpin":"Pin"},o?n.createElement(oo,{color:"lightblue"}):n.createElement(no,null)),n.createElement(t.DialogButton,{onClick:()=>{De(`info/${e.id}`)},style:{padding:"0 8px"},title:"Manage"},n.createElement(ne,null)))}function io(){const{extensionsOrder:e,setExtensionsOrder:o}=to(),{extensions:r}=F(),i=n.useMemo(()=>Array.from(r.values()).filter(e=>e.enabled),[r]);function a(e){o(t=>[...t,e])}function s(e){o(t=>t.filter(t=>t!==e))}return n.createElement(n.Fragment,null,n.createElement(_,null),n.createElement("div",{className:"extendium-toolbar-manager-context-menu"},n.createElement(t.Menu,{label:"Extension"},n.createElement(t.DialogHeader,null,"Extensions"),i.sort((e,t)=>e.name.localeCompare(t.name)).map(t=>{return n.createElement(ro,{key:t.id,extension:t,pinned:(o=t.id,e.includes(o)),pinExtension:a,unpinExtension:s});var o}),n.createElement("div",{style:{cursor:"pointer"},onClick:()=>{De()}},n.createElement(t.Field,{icon:n.createElement(ne,null),label:"Manage extensions"})))))}function ao(){const e=n.useRef(null);return n.createElement("button",{ref:e,type:"button",className:"extension-button",onClick:function(){e.current&&t.showContextMenu(n.createElement(io,null),e.current,{bOverlapHorizontal:!0,bGrowToElementWidth:!0,bForcePopup:!0,bDisableMouseOverlay:!0,bCreateHidden:!1,bRetainOnHide:!1,bNoFocusWhenShown:void 0,title:"useBrowserViewContextMenu"})},title:"Extensions"},n.createElement(ge,{color:"gray",size:17,style:{padding:0}}))}function so({children:e,onResizeCallback:t}){const o=n.useRef(null),r=n.useRef({width:200,height:600});return n.useEffect(()=>{const e=o.current?.ownerDocument.defaultView;e&&t?.(t=>{r.current=t,e.SteamClient.Window.ResizeTo(t.width,t.height,!1),o.current&&(o.current.style.width=`${t.width}px`,o.current.style.height=`${t.height}px`),Promise.all([e.SteamClient.Window.GetWindowRestoreDetails(),e.SteamClient.Window.GetWindowDimensions()]).then(([n,o])=>{const r=e.screen.width,i=e.screen.height,a=10;let s=o.x,l=o.y;o.x+t.width>r-a&&(s=r-t.width-a),o.y+t.height>i-a&&(l=i-t.height-a),o.xe.MenuItem&&e.Separator&&e.MenuWrapper);return n.createElement("hr",{className:`${e.Separator} ${e.MenuItem}`})}function co({extension:e}){const{setExtensionsOrder:o}=to();return n.createElement("div",{className:"extension-context-menu"},n.createElement(t.Menu,{label:e.name},n.createElement(t.MenuItem,{onClick:function(){void 0!==e.manifest.homepage_url&&SteamClient.System.OpenInSystemBrowser(e.manifest.homepage_url)}},e.name),n.createElement(lo,null),e.options.hasOptions()&&n.createElement(t.MenuItem,{onClick:()=>{de(e)}},"Options"),n.createElement(t.MenuItem,{onClick:()=>{W(e.id)}},"Remove extension"),n.createElement(t.MenuItem,{onClick:function(){o(t=>t.filter(t=>t!==e.id))}},"Unpin"),n.createElement(lo,null),n.createElement(t.MenuItem,{onClick:()=>{De(`info/${e.id}`)}},"Manage")))}function uo({extension:e}){const o=n.useRef(null),r=n.useRef(void 0),i=n.useRef(!1),a=n.useRef(void 0),{attributes:s,listeners:l,setNodeRef:c,transform:d,transition:u,isDragging:p}=eo({id:e.id}),g={transform:nt.Transform.toString(d),transition:u,zIndex:p?1e3:void 0};function m(e){if(!e)return r.current?.Hide(),r.current=void 0,void(i.current=!1);i.current=!0}async function f(e){const t=await h(e,async()=>{function e(){const e=[];for(const t of document.body.children){if(!t.checkVisibility())continue;const n=t.getBoundingClientRect();e.push({top:n.top,left:n.left,right:n.right,bottom:n.bottom,outerHTML:t.outerHTML})}let t=-1,n=-1,o=0,r=0;for(const i of e)(-1===n||i.lefto&&(o=i.right),i.bottom>r&&(r=i.bottom);return{width:Math.ceil(o-n),height:Math.ceil(r-t)}}return new Promise(t=>{"complete"===document.readyState?t(e()):document.addEventListener("DOMContentLoaded",()=>{t(e())},{once:!0})})});console.log("Calculated size:",t),a.current?.(t)}function C(){r.current&&(r.current.Hide(),r.current.Close?.())}function b(o,s){if(r.current||void 0===e.action.popupUrl)return;i.current=!1;const l=void 0!==s&&s.ctrlKey&&s.altKey,c=`${e.name} - Popup`;r.current=t.showContextMenu(n.createElement(so,{onResizeCallback:e=>{a.current=e}},n.createElement(ae,{expectedParentPopupTitle:c,url:e.action.popupUrl,onFocusChanged:m,onCreated:f,onClosed:C})),o,{bOverlapHorizontal:!0,bGrowToElementWidth:!0,bForcePopup:!0,bDisableMouseOverlay:!0,bCreateHidden:!1,bRetainOnHide:l,bNoFocusWhenShown:void 0,title:c,shouldAllowBlurClose:()=>!i.current}),function(e){if(void 0===e)throw new Error("ContextMenuInstanceClass not found");const t=e.constructor,n=t.prototype.OnCancel;n.toString().includes("originalOnCancel")||(t.prototype.OnCancel=function(e=0){if(!0!==this.options?.bDisableBlurClose){if("function"==typeof this.options?.shouldAllowBlurClose&&!1===this.options.shouldAllowBlurClose())return;return n.call(this,e)}})}(r.current)}function x(){o.current&&function(e,o){t.showContextMenu(n.createElement(co,{extension:e}),o,{bOverlapHorizontal:!0,bGrowToElementWidth:!0,bForcePopup:!0,bDisableMouseOverlay:!0,bCreateHidden:!1,bRetainOnHide:!1,bNoFocusWhenShown:void 0,title:"useBrowserViewContextMenu"})}(e,o.current.document.activeElement)}return n.useEffect(()=>()=>{r.current?.Hide(),r.current?.Close?.()},[]),n.createElement("button",{type:"button",className:"extension-button",onClick:function(t){r.current=void 0,b(o.current?.document.activeElement,t),void 0===e.action.popupUrl&&x()},onContextMenu:x,title:e.name,ref:e=>{e&&(o.current=e.ownerDocument.defaultView,c(e))},style:g,...s,...l},n.createElement("img",{src:e.action.iconUrl,alt:e.name}))}function po(){const{extensions:e}=F(),{extensionsOrder:t,setExtensionsOrder:o}=to(),{barMarginLeft:r,barMarginRight:i}=ve(),a=n.useMemo(()=>new Map(Array.from(e.entries()).filter(([,e])=>e.enabled)),[e]),s=function(){for(var e=arguments.length,t=new Array(e),o=0;o[...t].filter(e=>null!=e),[...t])}((l=tn,c={activationConstraint:{distance:8}},n.useMemo(()=>({sensor:l,options:null!=c?c:{}}),[l,c])));var l,c;return n.createElement(Rn,{sensors:s,collisionDetection:xt,onDragEnd:function(e){const{active:t,over:n}=e;t.id!==n?.id&&o(e=>{const o=e.indexOf(t.id),r=e.indexOf(n?.id??"");return jn(e,o,r)})},modifiers:[_n,Fn]},n.createElement(Yn,{items:t,strategy:Hn},n.createElement("div",{className:"extensions-bar",style:function(){const e={};return 0!==r&&(e.marginLeft=r),0!==i&&(e.marginRight=i),e}()},t.map(e=>{const t=a.get(e);return void 0===t?null:n.createElement(uo,{key:e,extension:t})}),n.createElement(ao,null))))}async function go(e){const o=t.findModule(e=>e.FocusBar),r=t.findModule(e=>e.BrowserTabIcon),i=await p(`.${o.URLBar}, .${r.URLBar}`,e);if(!i)return;if(null!==e.querySelector(".extensions-bar-container"))return;const a=e.createElement("div");a.classList.add("extensions-bar-container"),i.appendChild(a),SP_REACTDOM.createRoot(a).render(n.createElement(po,null)),new MutationObserver(()=>{go(e)}).observe(i,{childList:!0,subtree:!0})}async function mo(e){e&&(function(e){return"SP Desktop_uid0"===e.m_strName}(e)&&await async function(e){var t;t=e.m_popup,d=t,await async function(){const{setExtension:e,removeExtension:t}=F.getState();function n(t,n){const o=F.getState().extensions.get(t);void 0!==o&&void 0!==n&&e(new Re(o.manifest,n))}H.on("INSTALLED",async(t,n)=>{void 0!==n&&n.manifestHomePageUrl!==me&&(he.includes(n.id)?Oe(n.id,n.name):e(new Re(await j(n.id),n)))}),H.on("UNINSTALLED",e=>{t(e)}),H.on("LOADED",n),H.on("UNLOADED",n),await H.initialize(),await async function(){return H.evaluateExpression(async()=>chrome.developerPrivate.getExtensionsInfo({includeDisabled:!0}))}().then(t=>{t.forEach(async t=>{t.manifestHomePageUrl!==me&&e(new Re(await j(t.id),t))})})}(),ho(e),go(e.m_popup.document)}(e),(e.m_strName.includes("TabbedPopupBrowser")||e.m_strName.includes("OverlayBrowser"))&&await async function(e){ho(e),await go(e.m_popup.document);const n=await p(`.${t.findModule(e=>e.BrowserTabIcon).URLBar}`,e.m_popup.document),o=new MutationObserver(function(){void 0!==e.m_popup?e.m_popup.document.querySelector(".extensions-bar-container")||go(e.m_popup.document):o.disconnect()});o.observe(n.parentElement,{childList:!0,subtree:!0})}(e),function(e){const t=Array.from(F.getState().extensions.values()).map(e=>[e.extensionInfo.optionsPage?.url??"",e]).filter(e=>""!==e[0]).reduce((e,[t,n])=>e.set(t,n),new Map);e.addEventListener("click",e=>{const n=e.target.closest("a");if(n){const o=t.get(decodeURIComponent(n.href));o&&(e.preventDefault(),de(o))}})}(e.m_popup.document))}function ho(e){const t=document.createElement("style");t.textContent=T,e.m_popup.document.head.appendChild(t)}let fo;const Co={getUserInfo:()=>JSON.stringify(fo),showExtensionInstallationFailedDialog:function(){const e=t.showModal(n.createElement(t.ConfirmModal,{strTitle:"Extendium installation failed",strDescription:n.createElement(n.Fragment,null,n.createElement("p",null,"Extendium needs a helper extension to work fully, but the automatic installation didn't complete successfully."),n.createElement("p",null,"Without the helper extension, some extensions like Augmented Steam won't work properly."),n.createElement("p",null,"You can try the automatic installation again, or manually install the helper extension by following the step-by-step instructions in the readme ",n.createElement("a",{href:"https://github.com/BossSloth/extendium/blob/main/README.md#helper-extension",onClick:m},"here"),"."),n.createElement("p",null,"If the problem persists, please check the plugin logs for more details and report this issue on the ",n.createElement("a",{href:"https://github.com/BossSloth/extendium",onClick:m},"Extendium GitHub repository")," or the ",n.createElement("a",{href:"https://discord.com/channels/1102739071085846623/1380854735183282309",onClick:m},"discord channel")," with your log.")),strOKButtonText:"Try installation again",strMiddleButtonText:"Ignore and don't show again",strCancelButtonText:"Understood, I will manually install it",bDisableBackgroundDismiss:!0,bHideCloseIcon:!0,onOK:async()=>{await s(),e.Close()},onMiddleButton:async()=>{await l(),e.Close()},onCancel:()=>{e.Close()}}),d,{popupWidth:635,popupHeight:475})},showLegacyExtensionDialog:function(e){const o=JSON.parse(e);if(0===o.length)return;const r=o.filter(e=>e.hasMetadata&&void 0!==e.url),i=r.length>0;let a;a=t.showModal(n.createElement(t.ConfirmModal,{strTitle:"Legacy Extendium Extensions Detected",strDescription:n.createElement(v,{extensions:o}),strOKButtonText:i?"Open All in Web Store":"OK",strMiddleButtonText:"Delete All",strCancelButtonText:i?"Close":void 0,bDisableBackgroundDismiss:!0,onOK:()=>{i&&r.forEach(e=>{void 0!==e.url&&""!==e.url&&f(e.url)})},onMiddleButton:function(){a.Close(),b({title:"Delete All Legacy Extensions?",description:"Are you sure you want to delete all legacy extension folders? This action cannot be undone.",okButtonText:"Delete All",onOK:async()=>{await c(),b({title:"Legacy Extensions Deleted",description:"All legacy extension folders have been deleted.",okButtonText:"OK"})},bDestructiveWarning:!0})},onCancel:()=>{a.Close()}}),d,{popupWidth:735,popupHeight:600})}};return t.Millennium.exposeObj(e,Co),e.default=async function(){await App.WaitForServicesInitialized(),SteamClient.URL.RegisterForRunSteamURL("extendium",Se),async function(){return new Promise(e=>{let t=0;const n=setInterval(()=>{const o=function(){const e=App.m_cm??appDetailsStore.m_CMInterface,t=e.steamid.m_ulSteamID.toString(),n=urlStore.m_steamUrls.SteamIDMyProfile.url,o=n.match(/\/id\/(.+)\//)?.[1]??"";return{accountBalance:App.GetCurrentUser().strAccountBalance,steamid:t,userId:o,avatarUrl:friendStore.m_FriendsUIFriendStore.GetPlayer(friendStore.currentUserSteamID.GetAccountID()).persona.avatar_url_medium,personaName:e.persona_name}}();void 0!==o&&(clearInterval(n),e(o)),t>=10&&(clearInterval(n),console.error("Failed to get user info?")),t++},100)})}().then(e=>{fo=e});const{openLinksInCurrentTab:e}=ve.getState();a({settings:JSON.stringify({openLinksInCurrentTab:e})});const t=await r()??"{}";var n;void 0!==(n=JSON.parse(t)).externalLinks&&(n.externalLinks=JSON.parse(n.externalLinks)),u=n;const o=g_PopupManager.GetExistingPopup("SP Desktop_uid0");o&&mo(o),g_PopupManager.AddPopupCreatedCallback(mo)},Object.defineProperty(e,"__esModule",{value:!0}),e}({},window.MILLENNIUM_API,window.SP_REACT,window.SP_REACTDOM);return e};async function ExecutePluginModule(){let e=PluginEntryPointMain();Object.assign(window.PLUGIN_LIST[pluginName],{...e,__millennium_internal_plugin_name_do_not_use_or_change__:pluginName});let t=await e.default();var n;t&&((n=t)&&void 0!==n.title&&void 0!==n.icon&&void 0!==n.content)&&(window.MILLENNIUM_SIDEBAR_NAVIGATION_PANELS[pluginName]=t),MILLENNIUM_BACKEND_IPC.postMessage(1,{pluginName:pluginName})}ExecutePluginModule();