config/spicetify/CustomApps/marketplace/index.js

180 lines
428 KiB
JavaScript
Raw Normal View History

var marketplace=(()=>{var k,E=Object.create,C=Object.defineProperty,O=Object.getOwnPropertyDescriptor,T=Object.getOwnPropertyNames,P=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty,e=(e,t)=>function(){return t||(0,e[T(e)[0]])((t={exports:{}}).exports,t),t.exports},R=(t,a,r,n)=>{if(a&&"object"==typeof a||"function"==typeof a)for(let e of T(a))M.call(t,e)||e===r||C(t,e,{get:()=>a[e],enumerable:!(n=O(a,e))||n.enumerable});return t},t=(e,t,a)=>(a=null!=e?E(P(e)):{},R(!t&&e&&e.__esModule?a:C(a,"default",{value:e,enumerable:!0}),e)),a=e({"external-global-plugin:react"(e,t){t.exports=Spicetify.React}}),_=e({"node_modules/.pnpm/void-elements@3.1.0/node_modules/void-elements/index.js"(e,t){t.exports={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}}}),B=e({"node_modules/.pnpm/use-sync-external-store@1.6.0_react@19.2.3/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js"(e){"use strict";function i(e){var t=e.getSnapshot;e=e.value;try{var a=t();return!l(e,a)}catch(e){return 1}}var s,l,c,d,u,p,m,h,t;"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error()),s=a(),l="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},c=s.useState,d=s.useEffect,u=s.useLayoutEffect,p=s.useDebugValue,h=m=!1,t="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){m||void 0===s.startTransition||(m=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var a,r=t(),n=(h||(a=t(),l(r,a))||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),h=!0),(a=c({inst:{value:r,getSnapshot:t}}))[0].inst),o=a[1];return u(function(){n.value=r,n.getSnapshot=t,i(n)&&o({inst:n})},[e,r,t]),d(function(){return i(n)&&o({inst:n}),e(function(){i(n)&&o({inst:n})})},[e]),p(r),r},e.useSyncExternalStore=void 0!==s.useSyncExternalStore?s.useSyncExternalStore:t,"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}}),r=e({"node_modules/.pnpm/use-sync-external-store@1.6.0_react@19.2.3/node_modules/use-sync-external-store/shim/index.js"(e,t){"use strict";t.exports=B()}}),V=e({"node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/constants.js"(e,t){"use strict";var a=Number.MAX_SAFE_INTEGER||9007199254740991;t.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:a,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}}}),j=e({"node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/debug.js"(e,t){"use strict";var a="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};t.exports=a}}),X=e({"node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/re.js"(e,t){"use strict";var{MAX_SAFE_COMPONENT_LENGTH:a,MAX_SAFE_BUILD_LENGTH:r,MAX_LENGTH:n}=V(),o=j(),i=(e=t.exports={}).re=[],s=e.safeRe=[],l=e.src=[],c=e.safeSrc=[],d=e.t={},u=0,t="[a-zA-Z0-9-]",p=[["\\s",1],["\\d",n],[t,r]],n=(e,t,a)=>{var r=(e=>{for(var[t,a]of p)e=e.split(t+"*").join(`${t}{0,${a}}`).split(t+"+").join(`${t}{1,${a}}`);return e})(t),n=u++;o(e,n,t),d[e]=n,l[n]=t,c[n]=r,i[n]=new RegExp(t,a?"g":void 0),s[n]=new RegExp(r,a?"g":void 0)};n("NUMERICIDENTIFIER","0|[1-9]\\d*"),n("NUMERICIDENTIFIERLOOSE","\\d+"),n("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${t}*`),n("MAINVERSION",`(${l[d.NUMERICIDENTIFIER]})\\.(${l[d.NUMERICIDENTIFIER]})\\.(${l[d.NUMERICIDENTIFIER]})`),n("MAINVERSIONLOOSE",`(${l[d.NUMERI
${t.code}
`,"");t.innerHTML=e,t.classList.add("marketplaceSnippets"),document.body.appendChild(t)},yo=(e,t)=>{let a=[];return e&&0<e.length?a=e.map(e=>({name:e.name,url:Oo(e.url)})):a.push({name:t,url:"https://github.com/"+t}),a},So=e=>e?Object.keys(e).map(e=>({key:e,value:e})):[],wo=e=>[{key:"stars",value:e("grid.sort.stars")},{key:"newest",value:e("grid.sort.newest")},{key:"oldest",value:e("grid.sort.oldest")},{key:"lastUpdated",value:e("grid.sort.lastUpdated")},{key:"mostStale",value:e("grid.sort.mostStale")},{key:"a-z",value:e("grid.sort.aToZ")},{key:"z-a",value:e("grid.sort.zToA")}],ko=(...e)=>{console.debug("Resetting Marketplace");var t=[];if(0===e.length)for(const a in localStorage)a.startsWith("marketplace:")&&t.push(a);for(const r of e)switch(r){case"extensions":t.push(...N(x.installedExtensions,[])),t.push(x.installedExtensions);break;case"snippets":t.push(...N(x.installedSnippets,[])),t.push(x.installedSnippets);break;case"theme":t.push(...N(x.installedThemes,[])),t.push(x.installedThemes),t.push(x.themeInstalled);break;default:console.error("Unknown category: "+r)}for(const n of t)localStorage.removeItem(n),console.debug("Removed "+n);console.debug("Marketplace has been reset"),location.reload()},Eo=t=>{var a=document.querySelector("style.marketplaceCSS.marketplaceScheme");if(a&&a.remove(),t){a=document.createElement("style");a.classList.add("marketplaceCSS"),a.classList.add("marketplaceScheme");let e=":root {";for(const r of Object.keys(t))e=(e+=`--spice-${r}: #${t[r]};`)+`--spice-rgb-${r}: ${(e=>{e=3===e.length?e.split("").map(e=>e+e).join(""):e;if(6!==e.length)throw"Only 3- or 6-digit hex colours are allowed.";if(e.match(/[^0-9a-f]/i))throw"Only hex colours are allowed.";e=e.match(/.{1,2}/g);if(e&&3===e.length)return[Number.parseInt(e[0],16),Number.parseInt(e[1],16),Number.parseInt(e[2],16)];throw"Could not parse hex colour."})(t[r])};`;e+="}",a.innerHTML=e,document.body.appendChild(a)}},Co=e=>{try{var t,a,r=document.querySelector("link[href='user.css']"),n=(r&&r.remove(),document.querySelector("style.marketplaceCSS.marketplaceUserCSS"));n&&n.remove(),e?((t=document.createElement("style")).classList.add("marketplaceCSS"),t.classList.add("marketplaceUserCSS"),t.innerHTML=e,document.body.appendChild(t)):((a=document.createElement("link")).setAttribute("rel","stylesheet"),a.setAttribute("href","user.css"),a.classList.add("userCSS"),document.body.appendChild(a))}catch(e){console.warn(e)}},xo=async(e,t)=>{if(!e.cssURL)throw new Error("No CSS URL provided");var t=t||await async function(){for(const e of["net","xyz"])try{if("opaqueredirect"===(await fetch("https://cdn.jsdelivr."+e,{redirect:"manual",cache:"no-cache"})).type)return e}catch(e){console.error(e)}}(),t=(e=>{const t=new URL(e);return t.host,t.host==="raw.githubusercontent.com"})(e.cssURL)?`https://cdn.jsdelivr.${t}/gh/${e.user}/${e.repo}@${e.branch}/`+e.manifest.usercss:e.cssURL,a=t.replace("/user.css","/assets/");console.debug("Parsing CSS: ",t);let r=await fetch(t+"?time="+Date.now()).then(e=>e.text());for(const i of r.matchAll(/url\(['|"](?<path>.+?)['|"]\)/gm)||[]){var n,o=i?.groups?.path;!o||o.startsWith("http")||o.startsWith("data")||(n=a+o.replace(/\.\//g,""),r=r.replace(o,n))}return r};function Io(e,t){if(e)for(const n of e){var a=t||n.user+"-"+n.repo,r=window.sessionStorage.getItem(a),r=r?JSON.parse(r):[];r.push(n),window.sessionStorage.setItem(a,JSON.stringify(r))}}async function Ao(e,t,a){try{var r={text:e,context:t+"/"+a,mode:"gfm"},n=await fetch("https://api.github.com/markdown",{method:"POST",body:JSON.stringify(r)});if(n.ok)return await n.text();throw Spicetify.showNotification(y("notifications.markdownParsingError",{status:n.status}),!0)}catch{return null}}function No(e){var t="snippet"===e.type?"snippet:":`${e.item.user}/${e.item.repo}/`;let a;switch(e.type){case"snippet":a=e.item.title.replaceAll(" ","-");break;case"theme":a=e.item.manifest?.usercss||"";break;case"extension":a=e.item.manifest?.main||"";break;case"app":a=e.item.manifest?.name?.replaceAll(" ","-")||""}return"marketplace:installed:"+t+a}var Oo=e=>{var t=decodeURI(e).trim().toLow
self.addEventListener('message', async (event) => {
const url = event.data;
const response = await fetch(url);
const data = await response.json().catch(() => null);
self.postMessage(data);
});
`],{type:"application/javascript"}),Ro=URL.createObjectURL(Kn);async function _o(e,t,a){var r=e+"-"+t,n=window.sessionStorage.getItem(r),o=JSON.parse(window.sessionStorage.getItem("noManifests")||"[]");if(n)return JSON.parse(n);n=`https://raw.githubusercontent.com/${e}/${t}/${a}/manifest.json`;if(o.includes(n))return null;let i=await async function(e){const r=new Worker(Ro);return new Promise(t=>{const a=e=>{r.terminate(),t(e)};r.postMessage(e),r.addEventListener("message",e=>a(e.data),{once:!0}),r.addEventListener("error",()=>a(null),{once:!0})})}(n);return i?(Io(i=Array.isArray(i)?i:[i],r),i):Io([n],"noManifests")}async function Bo(e,r,n,o=!1){try{var t=e.match(/https:\/\/api\.github\.com\/repos\/(?<user>.+)\/(?<repo>.+)\/contents/);if(!t||!t.groups)return null;const{user:i,repo:s}=t.groups;return(await _o(i,s,r)).reduce((e,t)=>{var a;return t?.name&&t.description&&t.main&&(a=t.branch||r,a={manifest:t,title:t.name,subtitle:t.description,authors:yo(t.authors,i),user:i,repo:s,branch:a,imageURL:t.preview?.startsWith("http")?t.preview:`https://raw.githubusercontent.com/${i}/${s}/${a}/`+t.preview,extensionURL:t.main.startsWith("http")?t.main:`https://raw.githubusercontent.com/${i}/${s}/${a}/`+t.main,readmeURL:t.readme?.startsWith("http")?t.readme:`https://raw.githubusercontent.com/${i}/${s}/${a}/`+t.readme,stars:n,tags:t.tags},o&&localStorage.getItem(`marketplace:installed:${i}/${s}/`+t.main)||e.push(a)),e},[])}catch{return null}}async function jo(e,r,n){try{var t=e.match(/https:\/\/api\.github\.com\/repos\/(?<user>.+)\/(?<repo>.+)\/contents/);if(!t||!t.groups)return null;const{user:o,repo:i}=t.groups;return(await _o(o,i,r)).reduce((e,t)=>{var a;return t?.name&&t?.usercss&&t?.description&&(a=t.branch||r,a={manifest:t,title:t.name,subtitle:t.description,authors:yo(t.authors,o),user:o,repo:i,branch:a,imageURL:t.preview?.startsWith("http")?t.preview:`https://raw.githubusercontent.com/${o}/${i}/${a}/`+t.preview,readmeURL:t.readme?.startsWith("http")?t.readme:`https://raw.githubusercontent.com/${o}/${i}/${a}/`+t.readme,stars:n,tags:t.tags,cssURL:t.usercss.startsWith("http")?t.usercss:`https://raw.githubusercontent.com/${o}/${i}/${a}/`+t.usercss,schemesURL:t.schemes?t.schemes.startsWith("http")?t.schemes:`https://raw.githubusercontent.com/${o}/${i}/${a}/`+t.schemes:null,include:t.include},e.push(a)),e},[])}catch{return null}}async function $o(e,r,n){try{var t=e.match(/https:\/\/api\.github\.com\/repos\/(?<user>.+)\/(?<repo>.+)\/contents/);if(!t||!t.groups)return null;const{user:o,repo:i}=t.groups;return(await _o(o,i,r)).reduce((e,t)=>{var a;return t?.name&&t.description&&!t.main&&!t.usercss&&(a=t.branch||r,a={manifest:t,title:t.name,subtitle:t.description,authors:yo(t.authors,o),user:o,repo:i,branch:a,imageURL:t.preview?.startsWith("http")?t.preview:`https://raw.githubusercontent.com/${o}/${i}/${a}/`+t.preview,readmeURL:t.readme?.startsWith("http")?t.readme:`https://raw.githubusercontent.com/${o}/${i}/${a}/`+t.readme,stars:n,tags:t.tags},e.push(a)),e},[])}catch{return null}}var zo=async()=>{return(await fetch("https://raw.githubusercontent.com/spicetify/marketplace/main/resources/blacklist.json").then(e=>e.json()).catch(()=>({}))).repos},Uo=async(a=!1)=>{var e=await fetch("https://raw.githubusercontent.com/spicetify/marketplace/main/resources/snippets.json").then(e=>e.json()).catch(()=>[]);return e.length?e.reduce((e,t)=>{t={...t};return t.preview&&(t.imageURL=t.preview.startsWith("http")?t.preview:"https://raw.githubusercontent.com/spicetify/spicetify-marketplace/main/"+t.preview,t.preview=void 0),a&&localStorage.getItem("marketplace:installed:snippet:"+t.title.replaceAll(" ","-"))||e.push(t),e},[]):[]},Fo=t(a()),Go=t(U()),Vo=t(a()),Ho=t(F()),qo=(Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:
The error may be correlated with this previous error:
${d.current.stack}
`),e}os(()=>{d.current=void 0,S.current=void 0,v.current=C});const x=D.useMemo(()=>D.createElement(I,{...C,ref:e}),[e,I,C]);return D.useMemo(()=>T?D.createElement(n.Provider,{value:c},x):x,[n,x,c])}const a=D.memo(t);return a.WrappedComponent=I,a.displayName=t.displayName=A,l?((e=D.forwardRef(function(e,t){return D.createElement(a,{...e,reactReduxForwardedRef:t})})).displayName=A,e.WrappedComponent=I,ys(e,I)):ys(a,I)}};var As=function(r){const{children:e,context:t,serverState:n,store:o}=r,a=D.useMemo(()=>{var e=as(o),e={store:o,subscription:e,getServerState:n?()=>n:void 0},{identityFunctionCheck:t="once",stabilityCheck:a="once"}=r;return Object.assign(e,{stabilityCheck:a,identityFunctionCheck:t})},[o,n]),i=D.useMemo(()=>o.getState(),[o]);return os(()=>{const e=a["subscription"];return e.onStateChange=e.notifyNestedSubs,e.trySubscribe(),i!==o.getState()&&e.notifyNestedSubs(),()=>{e.tryUnsubscribe(),e.onStateChange=void 0}},[a,i]),D.createElement((t||Es).Provider,{value:a},e)},Ns="Invariant failed";function Os(e,t){if(!e)throw t=(e="function"==typeof t?t():t)?"".concat(Ns,": ").concat(e):Ns,new Error(t)}function Ts(e,t){return{top:e.top-t.top,left:e.left-t.left,bottom:e.bottom+t.bottom,right:e.right+t.right}}function Ls(e,t){return{top:e.top+t.top,left:e.left+t.left,bottom:e.bottom-t.bottom,right:e.right-t.right}}function Ds(e,t){return void 0===t&&(t=$s()),zs(e,t)}function Ps(e,t){var a={top:js(t.marginTop),right:js(t.marginRight),bottom:js(t.marginBottom),left:js(t.marginLeft)},r={top:js(t.paddingTop),right:js(t.paddingRight),bottom:js(t.paddingBottom),left:js(t.paddingLeft)},t={top:js(t.borderTopWidth),right:js(t.borderRightWidth),bottom:js(t.borderBottomWidth),left:js(t.borderLeftWidth)};return Bs({borderBox:e,margin:a,padding:r,border:t})}function Ms(e){var t=e.getBoundingClientRect(),e=window.getComputedStyle(e);return Ps(t,e)}var Rs=function(e){var t=e.top,a=e.right,r=e.bottom,e=e.left;return{top:t,right:a,bottom:r,left:e,width:a-e,height:r-t,x:e,y:t,center:{x:(a+e)/2,y:(r+t)/2}}},_s={top:0,right:0,bottom:0,left:0},Bs=function(e){var t=e.borderBox,a=e.margin,a=void 0===a?_s:a,r=e.border,r=void 0===r?_s:r,e=e.padding,e=void 0===e?_s:e,n=Rs(Ts(t,a)),o=Rs(Ls(t,r)),i=Rs(Ls(o,e));return{marginBox:n,borderBox:Rs(t),paddingBox:o,contentBox:i,margin:a,border:r,padding:e}},js=function(e){var t,a=e.slice(0,-2);return"px"!==e.slice(-2)?0:(t=Number(a),isNaN(t)&&Os(!1,"Could not parse value [raw: "+e+", without suffix: "+a+"]"),t)},$s=function(){return{x:window.pageXOffset,y:window.pageYOffset}},zs=function(e,t){var a=e.borderBox,r=e.border,n=e.margin,e=e.padding,a={top:a.top+t.y,left:a.left+t.x,bottom:a.bottom+t.y,right:a.right+t.x};return Bs({borderBox:a,border:r,margin:n,padding:e})},Us=function(r){function e(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];n=t,o=o||requestAnimationFrame(function(){o=null,r.apply(void 0,n)})}var n,o=null;return e.cancel=function(){o&&(cancelAnimationFrame(o),o=null)},e};function Fs(){return(Fs=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a,r=arguments[t];for(a in r)!{}.hasOwnProperty.call(r,a)||(e[a]=r[a])}return e}).apply(null,arguments)}var Gs=/[ \t]{2,}/g,Vs=/^[ \t]*/gm,Hs=e=>e.replace(Gs," ").replace(Vs,"").trim(),qs=e=>Hs(`
%c@hello-pangea/dnd
%c${Hs(e)}
%c👷 This is a development only message. It will be removed in production builds.
`);function Ws(e,t){"undefined"!=typeof window&&window["__@hello-pangea/dnd-disable-dev-warnings"]||console[e](...[qs(t),"color: #00C584; font-size: 1.2em; font-weight: bold;","line-height: 1.5","color: #723874;"])}var q=Ws.bind(null,"warn"),Ks=Ws.bind(null,"error");function Js(){}function Ys(r,e,n){const t=e.map(e=>{a=e.options;const t={...n,...a};var a;return r.addEventListener(e.eventName,e.fn,t),function(){r.removeEventListener(e.eventName,e.fn,t)}});return function(){t.forEach(e=>{e()})}}var Zs=!1,Xs="Invariant failed",Qs=class extends Error{};function W(e,t){throw new Qs(Zs?Xs:Xs+": "+(t||""))}Qs.prototype.toString=function(){return this.message};var el=class extends H.default.Component{constructor(...e){super(...e),this.callbacks=null,this.unbind=Js,this.onWindowError=e=>{var t=this.getCallbacks(),t=(t.isDragging()&&(t.tryAbort(),q(`
An error was caught by our window 'error' event listener while a drag was occurring.
The active drag has been aborted.
`)),e.error);t instanceof Qs&&(e.preventDefault(),Ks(t.message))},this.getCallbacks=()=>{if(this.callbacks)return this.callbacks;throw new Error("Unable to find AppCallbacks in <ErrorBoundary/>")},this.setCallbacks=e=>{this.callbacks=e}}componentDidMount(){this.unbind=Ys(window,[{eventName:"error",fn:this.onWindowError}])}componentDidCatch(e){if(!(e instanceof Qs))throw e;Ks(e.message),this.setState({})}componentWillUnmount(){this.unbind()}render(){return this.props.children(this.setCallbacks)}},tl=e=>e+1,al=(e,t)=>{var a=e.droppableId===t.droppableId,r=tl(e.index),n=tl(t.index);return a?`
You have moved the item from position ${r}
to position ${n}
`:`
You have moved the item from position ${r}
in list ${e.droppableId}
to list ${t.droppableId}
in position ${n}
`},rl=(e,t,a)=>{return t.droppableId===a.droppableId?`
The item ${e}
has been combined with `+a.draggableId:`
The item ${e}
in list ${t.droppableId}
has been combined with ${a.draggableId}
in list ${a.droppableId}
`},nl=e=>`
The item has returned to its starting position
of ${tl(e.index)}
`,ol={dragHandleUsageInstructions:`
Press space bar to start a drag.
When dragging you can use the arrow keys to move the item around and escape to cancel.
Some screen readers may require you to be in focus mode or to use your pass through key
`,onDragStart:e=>`
You have lifted an item in position ${tl(e.source.index)}
`,onDragUpdate:e=>{var t=e.destination;return t?al(e.source,t):(t=e.combine)?rl(e.draggableId,e.source,t):"You are over an area that cannot be dropped on"},onDragEnd:e=>{var t,a;return"CANCEL"===e.reason?`
Movement cancelled.
${nl(e.source)}
`:(t=e.destination,a=e.combine,t?`
You have dropped the item.
${al(e.source,t)}
`:a?`
You have dropped the item.
${rl(e.draggableId,e.source,a)}
`:`
The item has been dropped while not over a drop area.
${nl(e.source)}
`)}};function il(t,a){if(t.length!==a.length)return!1;for(let e=0;e<t.length;e++)if(r=t[e],n=a[e],r!==n&&(!Number.isNaN(r)||!Number.isNaN(n)))return!1;var r,n;return!0}function K(e,t){var a=(0,H.useState)(()=>({inputs:t,result:e()}))[0];const r=(0,H.useRef)(!0),n=(0,H.useRef)(a),o=r.current||Boolean(t&&n.current.inputs&&il(t,n.current.inputs))?n.current:{inputs:t,result:e()};return(0,H.useEffect)(()=>{r.current=!1,n.current=o},[o]),o.result}function J(e,t){return K(()=>e,t)}var Y={x:0,y:0},p=(e,t)=>({x:e.x+t.x,y:e.y+t.y}),sl=(e,t)=>({x:e.x-t.x,y:e.y-t.y}),ll=(e,t)=>e.x===t.x&&e.y===t.y,cl=e=>({x:0!==e.x?-e.x:0,y:0!==e.y?-e.y:0}),dl=(e,t,a=0)=>"x"===e?{x:t,y:a}:{x:a,y:t},ul=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2),pl=(t,e)=>Math.min(...e.map(e=>ul(t,e))),Vn=t=>e=>({x:t(e.x),y:t(e.y)}),ml=(e,t)=>({top:e.top+t.y,left:e.left+t.x,bottom:e.bottom+t.y,right:e.right+t.x}),hl=e=>[{x:e.left,y:e.top},{x:e.right,y:e.top},{x:e.left,y:e.bottom},{x:e.right,y:e.bottom}],gl=(e,t)=>{var a;return t&&t.shouldClipSubject?(t=t.pageMarginBox,a=e,(a=Rs({top:Math.max(a.top,t.top),right:Math.min(a.right,t.right),bottom:Math.min(a.bottom,t.bottom),left:Math.max(a.left,t.left)})).width<=0||a.height<=0?null:a):Rs(e)},fl=({page:e,withPlaceholder:t,axis:a,frame:r})=>{n=e.marginBox;var n,o=(o=r)?ml(n,o.scroll.diff.displacement):n,a=(n=o,o=a,(a=t)&&a.increasedBy?{...n,[o.end]:n[o.end]+a.increasedBy[o.line]}:n);return{page:e,withPlaceholder:t,active:gl(a,r)}},bl=(e,t)=>{e.frame||W();var a=e.frame,r=sl(t,a.scroll.initial),n=cl(r),t={...a,scroll:{initial:a.scroll.initial,current:t,diff:{value:r,displacement:n},max:a.scroll.max}},r=fl({page:e.subject.page,withPlaceholder:e.subject.withPlaceholder,axis:e.axis,frame:t});return{...e,frame:t,subject:r}};function Z(a,r=il){let n=null;function e(...e){var t;return n&&n.lastThis===this&&r(e,n.lastArgs)?n.lastResult:(t=a.apply(this,e),n={lastResult:t,lastArgs:e,lastThis:this},t)}return e.clear=function(){n=null},e}var vl=Z(e=>e.reduce((e,t)=>(e[t.descriptor.id]=t,e),{})),yl=Z(e=>e.reduce((e,t)=>(e[t.descriptor.id]=t,e),{})),Sl=Z(e=>Object.values(e)),wl=Z(e=>Object.values(e)),kl=Z((t,e)=>{return wl(e).filter(e=>t===e.descriptor.droppableId).sort((e,t)=>e.descriptor.index-t.descriptor.index)});function El(e){return e.at&&"REORDER"===e.at.type?e.at.destination:null}function Cl(e){return e.at&&"COMBINE"===e.at.type?e.at.combine:null}var xl=Z((t,e)=>e.filter(e=>e.descriptor.id!==t.descriptor.id)),Il=(e,t)=>e.descriptor.droppableId===t.descriptor.id,Al={point:Y,value:0},Nl={invisible:{},visible:{},all:[]},Ol={displaced:Nl,displacedBy:Al,at:null},Tl=(t,a)=>e=>t<=e&&e<=a,Ll=n=>{const o=Tl(n.top,n.bottom),i=Tl(n.left,n.right);return e=>{var t,a,r;return!!(o(e.top)&&o(e.bottom)&&i(e.left)&&i(e.right))||(t=o(e.top)||o(e.bottom),a=i(e.left)||i(e.right),!(!t||!a))||(r=e.top<n.top&&e.bottom>n.bottom,e=e.left<n.left&&e.right>n.right,r&&e)||r&&a||e&&t}},Dl=e=>{const t=Tl(e.top,e.bottom),a=Tl(e.left,e.right);return e=>{return t(e.top)&&t(e.bottom)&&a(e.left)&&a(e.right)}},Pl={direction:"vertical",line:"y",crossAxisLine:"x",start:"top",end:"bottom",size:"height",crossAxisStart:"left",crossAxisEnd:"right",crossAxisSize:"width"},Ml={direction:"horizontal",line:"x",crossAxisLine:"y",start:"left",end:"right",size:"width",crossAxisStart:"top",crossAxisEnd:"bottom",crossAxisSize:"height"},Rl=({target:e,destination:t,viewport:a,withDroppableDisplacement:r,isVisibleThroughFrameFn:n})=>{var o,r=r?((e,t)=>{t=t.frame?t.frame.scroll.diff.displacement:Y;return ml(e,t)})(e,t):e;return e=r,o=n,!!(t=t).subject.active&&o(t.subject.active)(e)&&(o=r,n(a)(o))},_l=e=>Rl({...e,isVisibleThroughFrameFn:Dl}),Bl=e=>{return Rl({...e,isVisibleThroughFrameFn:(r=e.destination.axis,e=>{const t=Tl(e.top,e.bottom),a=Tl(e.left,e.right);return e=>r===Pl?t(e.top)&&t(e.bottom):a(e.left)&&a(e.right)})});var r};function jl({afterDragging:e,destination:i,displacedBy:s,viewport:l,forceShouldAnimate:c,last:d}){return e.reduce(function(e,t){o=s,n=(n=t).page.marginBox,o={top:s.point.y,right:0,bottom:0,left:s.point.x};var a,r,n=Rs(Ts(n,o)),o=t.descriptor.id,n=(e.all.push
but it is already `+String(c.isEnabled)),{...c,isEnabled:d});return Ac(e,s,!0)}if("UPDATE_DROPPABLE_IS_COMBINE_ENABLED"===t.type){if("DROP_PENDING"===e.phase)return e;pc(e)||W(0,"Attempting to move in an unsupported phase "+e.phase);var{id:l,isCombineEnabled:c}=t.payload,d=e.dimensions.droppables[l],s=(d||W(0,`Cannot find Droppable[id: ${l}] to toggle its isCombineEnabled state`),d.isCombineEnabled===c&&W(0,`Trying to set droppable isCombineEnabled to ${String(c)}
but it is already `+String(d.isCombineEnabled)),{...d,isCombineEnabled:c});return Ac(e,s,!0)}if("MOVE_BY_WINDOW_SCROLL"===t.type){if("DROP_PENDING"===e.phase||"DROP_ANIMATING"===e.phase)return e;pc(e)||W(0,"Cannot move by window in phase "+e.phase),e.isWindowScrollAllowed||W(0,"Window scrolling is currently not supported for fixed lists");l=t.payload.newScroll;return ll(e.viewport.scroll.current,l)?Nc(e):(d=Zl(e.viewport,l),(Ic(e)?Ec:Sc)({state:e,viewport:d}))}if("UPDATE_VIEWPORT_MAX_SCROLL"===t.type)return!pc(e)||(c=t.payload.maxScroll,ll(c,e.viewport.scroll.max))?e:(s={...e.viewport,scroll:{...e.viewport.scroll,max:c}},{...e,viewport:s});if("MOVE_UP"!==t.type&&"MOVE_DOWN"!==t.type&&"MOVE_LEFT"!==t.type&&"MOVE_RIGHT"!==t.type)return"DROP_PENDING"===t.type?(l=t.payload.reason,"COLLECTING"!==e.phase&&W(0,"Can only move into the DROP_PENDING phase from the COLLECTING phase"),{...e,phase:"DROP_PENDING",isWaiting:!0,reason:l}):"DROP_ANIMATE"===t.type?({completed:d,dropDuration:c,newHomeClientOffset:s}=t.payload,"DRAGGING"!==e.phase&&"DROP_PENDING"!==e.phase&&W(0,"Cannot animate drop from phase "+e.phase),{phase:"DROP_ANIMATING",completed:d,dropDuration:c,newHomeClientOffset:s,dimensions:e.dimensions}):"DROP_COMPLETE"===t.type?(l=t.payload["completed"],{phase:"IDLE",completed:l,shouldFlush:!1}):e;if("COLLECTING"===e.phase||"DROP_PENDING"===e.phase)return e;"DRAGGING"!==e.phase&&W(0,t.type+" received while not in DRAGGING phase");d=uc({state:e,type:t.type});return d?Sc({state:e,impact:d.impact,clientSelection:d.clientSelection,scrollJumpRequest:d.scrollJumpRequest}):e};function g(e,t){return e instanceof Object&&"type"in e&&e.type===t}var Lc=e=>({type:"PUBLISH_WHILE_DRAGGING",payload:e}),Dc=()=>({type:"COLLECTION_STARTING",payload:null}),Pc=e=>({type:"UPDATE_DROPPABLE_SCROLL",payload:e}),Mc=e=>({type:"UPDATE_DROPPABLE_IS_ENABLED",payload:e}),Rc=e=>({type:"UPDATE_DROPPABLE_IS_COMBINE_ENABLED",payload:e}),_c=e=>({type:"MOVE",payload:e}),Bc=()=>({type:"MOVE_UP",payload:null}),jc=()=>({type:"MOVE_DOWN",payload:null}),$c=()=>({type:"MOVE_RIGHT",payload:null}),zc=()=>({type:"MOVE_LEFT",payload:null}),Uc=()=>({type:"FLUSH",payload:null}),Fc=e=>({type:"DROP_COMPLETE",payload:e}),Gc=e=>({type:"DROP",payload:e}),Vc=()=>({type:"DROP_ANIMATION_FINISHED",payload:null});function Hc(e,t){e=kl(e.droppable.id,t.draggables);if(!(e.length<=1)){var a=e.map(e=>e.descriptor.index);const n={};for(let e=1;e<a.length;e++){var r=a[e];r!==a[e-1]+1&&(n[r]=!0)}Object.keys(n).length&&(e=a.map(e=>{return Boolean(n[e])?`[🔥${e}]`:""+e}).join(", "),q(`
Detected non-consecutive <Draggable /> indexes.
(This can cause unexpected bugs)
${e}
`))}}var qc=c=>({getState:s,dispatch:l})=>i=>e=>{var t,a,r,n,o;g(e,"LIFT")?({id:n,clientSelection:t,movementMode:a}=e.payload,"DROP_ANIMATING"===(r=s()).phase&&l(Fc({completed:r.completed})),"IDLE"!==s().phase&&W(0,"Unexpected phase to start a drag"),l(Uc()),l({type:"BEFORE_INITIAL_CAPTURE",payload:{draggableId:n,movementMode:a}}),{critical:r,dimensions:n,viewport:o}=c.startPublishing({draggableId:n,scrollOptions:{shouldPublishImmediately:"SNAP"===a}}),Hc(r,n),l({type:"INITIAL_PUBLISH",payload:{critical:r,dimensions:n,clientSelection:t,movementMode:a,viewport:o}})):i(e)},Wc=a=>()=>t=>e=>{g(e,"INITIAL_PUBLISH")&&a.dragging(),g(e,"DROP_ANIMATE")&&a.dropping(e.payload.completed.result.reason),(g(e,"FLUSH")||g(e,"DROP_COMPLETE"))&&a.resting(),t(e)},Kc={outOfTheWay:"cubic-bezier(0.2, 0, 0, 1)",drop:"cubic-bezier(.2,1,.1,1)"},Jc={opacity:{drop:0,combining:.7},scale:{drop:.75}},Jn={outOfTheWay:.2,minDropTime:.33,maxDropTime:.55},Wn=Jn.outOfTheWay+"s "+Kc.outOfTheWay,Yc={fluid:"opacity "+Wn,snap:`transform ${Wn}, opacity `+Wn,drop:e=>{e=e+"s "+Kc.drop;return`transform ${e}, opacity `+e},outOfTheWay:"transform "+Wn,placeholder:`height ${Wn}, width ${Wn}, margin `+Wn},Zc=e=>ll(e,Y)?void 0:`translate(${e.x}px, ${e.y}px)`,Xc={moveTo:Zc,drop:(e,t)=>{e=Zc(e);if(e)return t?`${e} scale(${Jc.scale.drop})`:e}},{minDropTime:Qc,maxDropTime:ed}=Jn,td=ed-Qc,ad=({getState:m,dispatch:h})=>p=>e=>{var t,a,r,n,o,i,s,l,c,d,u;g(e,"DROP")?(t=m(),a=e.payload.reason,"COLLECTING"===t.phase?h({type:"DROP_PENDING",payload:{reason:a}}):"IDLE"!==t.phase&&("DROP_PENDING"===t.phase&&t.isWaiting&&W(0,"A DROP action occurred while DROP_PENDING and still waiting"),"DRAGGING"!==t.phase&&"DROP_PENDING"!==t.phase&&W(0,"Cannot drop in phase: "+t.phase),d=t.critical,n=(r=t.dimensions).draggables[t.critical.draggable.id],{impact:o,didDropInsideDroppable:c}=({draggables:i,reason:o,lastImpact:c,home:u,viewport:l,onLiftImpact:s}=[{reason:a,lastImpact:t.impact,afterCritical:t.afterCritical,onLiftImpact:t.onLiftImpact,home:t.dimensions.droppables[t.critical.droppable.id],viewport:t.viewport,draggables:t.dimensions.draggables}][0],c.at&&"DROP"===o?"REORDER"===c.at.type?{impact:c,didDropInsideDroppable:!0}:{impact:{...c,displaced:Nl},didDropInsideDroppable:!0}:{impact:wc({draggables:i,impact:s,destination:u,viewport:l,forceShouldAnimate:!0}),didDropInsideDroppable:!1}),i=c?El(o):null,s=c?Cl(o):null,u={index:d.draggable.index,droppableId:d.droppable.id},l={draggableId:n.descriptor.id,type:n.descriptor.type,source:u,reason:a,mode:t.movementMode,destination:i,combine:s},c=(({impact:e,draggable:t,dimensions:a,viewport:r,afterCritical:n})=>{var{draggables:a,droppables:o}=a,i=dc(e),i=i?o[i]:null,o=o[t.descriptor.droppableId],e=kc({impact:e,draggable:t,draggables:a,afterCritical:n,droppable:i||o,viewport:r});return sl(e,t.client.borderBox.center)})({impact:o,draggable:n,dimensions:r,viewport:t.viewport,afterCritical:t.afterCritical}),d={critical:t.critical,afterCritical:t.afterCritical,result:l,impact:o},!ll(t.current.client.offset,c)||Boolean(l.combine)?(u=(({current:e,destination:t,reason:a})=>{e=ul(e,t);return e<=0?Qc:1500<=e?ed:(t=Qc+td*(e/1500),Number(("CANCEL"===a?.6*t:t).toFixed(2)))})({current:t.current.client.offset,destination:c,reason:a}),h({type:"DROP_ANIMATE",payload:{newHomeClientOffset:c,dropDuration:u,completed:d}})):h(Fc({completed:d})))):p(e)},rd=()=>({x:window.pageXOffset,y:window.pageYOffset});function nd({onWindowScroll:e}){const t=Us(function(){e(rd())}),a=(r=t,{eventName:"scroll",options:{passive:!0,capture:!1},fn:e=>{e.target!==window&&e.target!==window.document||r()}});var r;let n=Js;function o(){return n!==Js}return{start:function(){o()&&W(0,"Cannot start scroll listener when already active"),n=Ys(window,[a])},stop:function(){o()||W(0,"Cannot stop scroll listener when not active"),t.cancel(),n(),n=Js},isActive:o}}var od=t=>{const r=nd({onWindowScroll:e=>{t.dispatch({type:"MOVE_BY_WINDOW_SCROLL",payload:{newScroll:e}})}});return a=>e=>{var t;!r.isActive()&&g(e,"INITIAL_PUBLISH")&&r.start(),r.isActive()&&(g(t=e,"DROP_COMPLETE")||g(t,"DROP_ANIMATE")||g(t,"
Announcements cannot be made asynchronously.
Default message has already been announced.
`):(a=!0,t(e),clearTimeout(n))};return e.wasCalled=()=>a,e})(a)}),e.wasCalled())||a(r(t))}var dd=(c,d)=>{const u=id();let p=null;const t=e=>{p||W(0,"Cannot fire onDragEnd when there is no matching onDragStart"),p=null,sd(0,()=>cd(c().onDragEnd,e,d,ol.onDragEnd))};return{beforeCapture:(t,a)=>{p&&W(0,"Cannot fire onBeforeCapture as a drag start has already been published"),sd(0,()=>{var e=c().onBeforeCapture;e&&e({draggableId:t,mode:a})})},beforeStart:(t,a)=>{p&&W(0,"Cannot fire onBeforeDragStart as a drag start has already been published"),sd(0,()=>{var e=c().onBeforeDragStart;e&&e(ld(t,a))})},start:(e,t)=>{p&&W(0,"Cannot fire onBeforeDragStart as a drag start has already been published");const a=ld(e,t);p={mode:t,lastCritical:e,lastLocation:a.source,lastCombine:null},u.add(()=>{sd(0,()=>cd(c().onDragStart,a,d,ol.onDragStart))})},update:(e,t)=>{var a,r,n=El(t),t=Cl(t),o=(p||W(0,"Cannot fire onDragMove when onDragStart has not been called"),i=e,o=p.lastCritical,!(i===o||(a=i.draggable.id===o.draggable.id&&i.draggable.droppableId===o.draggable.droppableId&&i.draggable.type===o.draggable.type&&i.draggable.index===o.draggable.index,i=i.droppable.id===o.droppable.id&&i.droppable.type===o.droppable.type,a&&i))),i=(o&&(p.lastCritical=e),a=p.lastLocation,i=n,!(null==a&&null==i||null!=a&&null!=i&&a.droppableId===i.droppableId&&a.index===i.index)),s=(i&&(p.lastLocation=n),s=p.lastCombine,r=t,!(null==s&&null==r||null!=s&&null!=r&&s.draggableId===r.draggableId&&s.droppableId===r.droppableId));if(s&&(p.lastCombine=t),o||i||s){const l={...ld(e,p.mode),combine:t,destination:n};u.add(()=>{sd(0,()=>cd(c().onDragUpdate,l,d,ol.onDragUpdate))})}},flush:()=>{p||W(0,"Can only flush responders while dragging"),u.flush()},drop:t,abort:()=>{var e;p&&(e={...ld(p.lastCritical,p.mode),combine:null,destination:null,reason:"CANCEL"},t(e))}}},ud=(e,t)=>{const n=dd(e,t);return r=>a=>e=>{var t;g(e,"BEFORE_INITIAL_CAPTURE")?n.beforeCapture(e.payload.draggableId,e.payload.movementMode):g(e,"INITIAL_PUBLISH")?(t=e.payload.critical,n.beforeStart(t,e.payload.movementMode),a(e),n.start(t,e.payload.movementMode)):g(e,"DROP_COMPLETE")?(t=e.payload.completed.result,n.flush(),a(e),n.drop(t)):(a(e),g(e,"FLUSH")?n.abort():"DRAGGING"===(t=r.getState()).phase&&n.update(t.critical,t.impact))}},pd=r=>a=>e=>{var t;g(e,"DROP_ANIMATION_FINISHED")?("DROP_ANIMATING"!==(t=r.getState()).phase&&W(0,"Cannot finish a drop animating when no drop is occurring"),r.dispatch(Fc({completed:t.completed}))):a(e)},md=r=>{let n=null,o=null;return a=>e=>{if((g(e,"FLUSH")||g(e,"DROP_COMPLETE")||g(e,"DROP_ANIMATION_FINISHED"))&&(o&&(cancelAnimationFrame(o),o=null),n)&&(n(),n=null),a(e),g(e,"DROP_ANIMATE")){const t={eventName:"scroll",options:{capture:!0,passive:!1,once:!0},fn:function(){"DROP_ANIMATING"===r.getState().phase&&r.dispatch(Vc())}};o=requestAnimationFrame(()=>{o=null,n=Ys(window,[t])})}}},hd=a=>()=>t=>e=>{(g(e,"DROP_COMPLETE")||g(e,"FLUSH")||g(e,"DROP_ANIMATE"))&&a.stopPublishing(),t(e)},gd=a=>{let r=!1;return()=>t=>e=>{g(e,"INITIAL_PUBLISH")?(r=!0,a.tryRecordFocus(e.payload.critical.draggable.id),t(e),a.tryRestoreFocusRecorded()):(t(e),r&&(g(e,"FLUSH")?(r=!1,a.tryRestoreFocusRecorded()):g(e,"DROP_COMPLETE")&&(r=!1,(e=e.payload.completed.result).combine&&a.tryShiftRecord(e.draggableId,e.combine.draggableId),a.tryRestoreFocusRecorded())))}},fd=n=>r=>a=>e=>{var t;g(t=e,"DROP_COMPLETE")||g(t,"DROP_ANIMATE")||g(t,"FLUSH")?(n.stop(),a(e)):g(e,"INITIAL_PUBLISH")?(a(e),"DRAGGING"!==(t=r.getState()).phase&&W(0,"Expected phase to be DRAGGING after INITIAL_PUBLISH"),n.start(t)):(a(e),n.scroll(r.getState()))},bd=a=>t=>e=>{t(e),!g(e,"PUBLISH_WHILE_DRAGGING")||"DROP_PENDING"!==(e=a.getState()).phase||e.isWaiting||a.dispatch(Gc({reason:e.reason}))},vd="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({name:"@hello-pangea/dnd"}):Ci,yd=({dimensionMarshal:e,focusMarshal:t,styleMarshal:a,getResponders:r,announce:n,autoScroller:o})=>{return wi(Tc,vd((i=[Wc(a),hd(e),qc(e),ad,pd,md,bd,fd(o),od,gd(t),ud(r,n)],n=>(e,t)=>{e=n(e,t);l
You are attempting to add or remove a Draggable [id: ${a.descriptor.id}]
while a drag is occurring. This is only supported for virtual lists.
See https://github.com/hello-pangea/dnd/blob/main/docs/patterns/virtual-lists.md
`)}}var Id=(r,a)=>{let n=null;const o=function({registry:r,callbacks:n}){let o=Sd(),i=null;const a=()=>{i||(n.collectionStarting(),i=requestAnimationFrame(()=>{i=null;var{additions:e,removals:t,modified:a}=o,e=Object.keys(e).map(e=>r.draggable.getById(e).getDimension(Y)).sort((e,t)=>e.descriptor.index-t.descriptor.index),a=Object.keys(a).map(e=>{return{droppableId:e,scroll:r.droppable.getById(e).callbacks.getScrollWhileDragging()}}),e={additions:e,removals:Object.keys(t),modified:a};o=Sd(),n.publish(e)}))};return{add:e=>{var t=e.descriptor.id;o.additions[t]=e,o.modified[e.descriptor.droppableId]=!0,o.removals[t]&&delete o.removals[t],a()},remove:e=>{e=e.descriptor;o.removals[e.id]=!0,o.modified[e.droppableId]=!0,o.additions[e.id]&&delete o.additions[e.id],a()},stop:()=>{i&&(cancelAnimationFrame(i),i=null,o=Sd())}}}({callbacks:{publish:a.publishWhileDragging,collectionStarting:a.collectionStarting},registry:r});const i=e=>{n||W(0,"Should only be subscribed when a collection is occurring");var t=n.critical.draggable;"ADDITION"===e.type&&xd(r,t,e.value)&&o.add(e.value),"REMOVAL"===e.type&&xd(r,t,e.value)&&o.remove(e.value)};return{updateDroppableIsEnabled:(e,t)=>{r.droppable.exists(e)||W(0,`Cannot update is enabled flag of Droppable ${e} as it is not registered`),n&&a.updateDroppableIsEnabled({id:e,isEnabled:t})},updateDroppableIsCombineEnabled:(e,t)=>{n&&(r.droppable.exists(e)||W(0,`Cannot update isCombineEnabled flag of Droppable ${e} as it is not registered`),a.updateDroppableIsCombineEnabled({id:e,isCombineEnabled:t}))},scrollDroppable:(e,t)=>{n&&r.droppable.getById(e).callbacks.scroll(t)},updateDroppableScroll:(e,t)=>{n&&(r.droppable.exists(e)||W(0,`Cannot update the scroll on Droppable ${e} as it is not registered`),a.updateDroppableScroll({id:e,newScroll:t}))},startPublishing:e=>{n&&W(0,"Cannot start capturing critical dimensions as there is already a collection");var t=r.draggable.getById(e.draggableId),a=r.droppable.getById(t.descriptor.droppableId),t={draggable:t.descriptor,droppable:a.descriptor},a=r.subscribe(i);return n={critical:t,unsubscribe:a},Cd({critical:t,registry:r,scrollOptions:e.scrollOptions})},stopPublishing:()=>{var e;n&&(o.stop(),e=n.critical.droppable,r.droppable.getAllByType(e.type).forEach(e=>e.callbacks.dragStopped()),n.unsubscribe(),n=null)}}},Ad=(e,t)=>"IDLE"===e.phase||"DROP_ANIMATING"===e.phase&&e.completed.result.draggableId!==t&&"DROP"===e.completed.result.reason,Nd=e=>{window.scrollBy(e.x,e.y)},Od=Z(e=>Sl(e).filter(e=>!!e.isEnabled&&!!e.frame)),Td=({center:e,destination:t,droppables:a})=>{var r;return t?(t=a[t]).frame?t:null:(r=e,Od(a).find(e=>(e.frame||W(0,"Invalid result"),mc(e.frame.pageMarginBox)(r)))||null)},Ld={startFromPercentage:.25,maxScrollAtPercentage:.05,maxPixelScroll:28,ease:e=>e**2,durationDampening:{stopDampeningAt:1200,accelerateAt:360},disabled:!1},Dd=({startOfRange:e,endOfRange:t,current:a})=>{t-=e;return 0==t?(q(`
Detected distance range of 0 in the fluid auto scroller
This is unexpected and would cause a divide by 0 issue.
Not allowing an auto scroll
`),0):(a-e)/t},Pd=({distanceToEdge:e,thresholds:t,dragStartTime:a,shouldUseTimeDampening:r,getAutoScrollerOptions:n})=>{var o,i,e=((e,t,a=()=>Ld)=>{a=a();return e>t.startScrollingFrom?0:e<=t.maxScrollValueAt?a.maxPixelScroll:e===t.startScrollingFrom?1:(t=Dd({startOfRange:t.maxScrollValueAt,endOfRange:t.startScrollingFrom,current:e}),e=a.maxPixelScroll*a.ease(1-t),Math.ceil(e))})(e,t,n);return 0===e?0:r?Math.max((t=e,r=a,a=(a=n)(),n=a.durationDampening.accelerateAt,o=a.durationDampening.stopDampeningAt,i=o,r=Date.now()-r,o<=r?t:r<n?1:(o=Dd({startOfRange:n,endOfRange:i,current:r}),n=t*a.ease(o),Math.ceil(n))),1):e},Md=({container:e,distanceToEdges:t,dragStartTime:a,axis:r,shouldUseTimeDampening:n,getAutoScrollerOptions:o})=>{e=((e,t,a=()=>Ld)=>{a=a();return{startScrollingFrom:e[t.size]*a.startFromPercentage,maxScrollValueAt:e[t.size]*a.maxScrollAtPercentage}})(e,r,o);return t[r.end]<t[r.start]?Pd({distanceToEdge:t[r.end],thresholds:e,dragStartTime:a,shouldUseTimeDampening:n,getAutoScrollerOptions:o}):-1*Pd({distanceToEdge:t[r.start],thresholds:e,dragStartTime:a,shouldUseTimeDampening:n,getAutoScrollerOptions:o})},Rd=Vn(e=>0===e?0:e),_d=({dragStartTime:e,container:t,subject:a,center:r,shouldUseTimeDampening:n,getAutoScrollerOptions:o})=>{var r={top:r.y-t.top,right:t.right-r.x,bottom:t.bottom-r.y,left:r.x-t.left},i=Md({container:t,distanceToEdges:r,dragStartTime:e,axis:Pl,shouldUseTimeDampening:n,getAutoScrollerOptions:o}),r=Md({container:t,distanceToEdges:r,dragStartTime:e,axis:Ml,shouldUseTimeDampening:n,getAutoScrollerOptions:o}),e=Rd({x:r,y:i});return ll(e,Y)||({container:n,subject:o,proposedScroll:r}={container:t,subject:a,proposedScroll:e},i=o.height>n.height,!(t=(o=o.width>n.width)||i?o&&i?null:{x:o?0:r.x,y:i?0:r.y}:r))||ll(t,Y)?null:t},Bd=Vn(e=>0===e?0:0<e?1:-1),jd=(()=>{const r=(e,t)=>e<0?e:t<e?e-t:0;return({current:e,max:t,change:a})=>{e=p(e,a),a={x:r(e.x,t.x),y:r(e.y,t.y)};return ll(a,Y)?null:a}})(),$d=({max:e,current:t,change:a})=>{e={x:Math.max(t.x,e.x),y:Math.max(t.y,e.y)},a=Bd(a),e=jd({max:e,current:t,change:a});return!e||0!==a.x&&0===e.x||0!==a.y&&0===e.y},zd=(e,t)=>$d({current:e.scroll.current,max:e.scroll.max,change:t}),Ud=(e,t)=>{e=e.frame;return!!e&&$d({current:e.scroll.current,max:e.scroll.max,change:t})},Fd=({state:e,dragStartTime:t,shouldUseTimeDampening:a,scrollWindow:r,scrollDroppable:n,getAutoScrollerOptions:o})=>{var i=e.current.page.borderBoxCenter,s=e.dimensions.draggables[e.critical.draggable.id].page.marginBox;if(e.isWindowScrollAllowed){var l=(({viewport:e,subject:t,center:a,dragStartTime:r,shouldUseTimeDampening:n,getAutoScrollerOptions:o})=>{r=_d({dragStartTime:r,container:e.frame,subject:t,center:a,shouldUseTimeDampening:n,getAutoScrollerOptions:o});return r&&zd(e,r)?r:null})({dragStartTime:t,viewport:e.viewport,subject:s,center:i,shouldUseTimeDampening:a,getAutoScrollerOptions:o});if(l)return void r(l)}r=Td({center:i,destination:dc(e.impact),droppables:e.dimensions.droppables});r&&({droppable:l,subject:e,center:t,dragStartTime:s,shouldUseTimeDampening:i,getAutoScrollerOptions:a}=[{dragStartTime:t,droppable:r,subject:s,center:i,shouldUseTimeDampening:a,getAutoScrollerOptions:o}][0],o=(o=l.frame)&&(s=_d({dragStartTime:s,container:o.pageMarginBox,subject:e,center:t,shouldUseTimeDampening:i,getAutoScrollerOptions:a}))&&Ud(l,s)?s:null)&&n(r.descriptor.id,o)},Gd=({scrollWindow:e,scrollDroppable:t,getAutoScrollerOptions:n=()=>Ld})=>{const r=Us(e),o=Us(t);let i=null;const s=e=>{i||W(0,"Cannot fluid scroll if not dragging");var{shouldUseTimeDampening:t,dragStartTime:a}=i;Fd({state:e,scrollWindow:r,scrollDroppable:o,dragStartTime:a,shouldUseTimeDampening:t,getAutoScrollerOptions:n})};return{start:e=>{i&&W(0,"Cannot start auto scrolling when already started");var t=Date.now();let a=!1;var r=()=>{a=!0};Fd({state:e,dragStartTime:0,shouldUseTimeDampening:!1,scrollWindow:r,scrollDroppable:r,getAutoScrollerOptions:n}),i={dragStartTime:t,shouldUseTimeDampening:a},a&&s(e)},stop:()=>{i&&(r.cancel(),o.cancel(),i=null)},scroll:s}},Vd=({move:r,scrollDroppable:o,scrollWindow:n})=>{const i=(e,t)=>{var a,r,n;
cursor: -webkit-grab;
cursor: grab;
`,e={selector:a(Wd.contextId),styles:{always:`
-webkit-touch-callout: none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
touch-action: manipulation;
`,resting:e,dragging:Qd,dropAnimating:e}},t=`
transition: ${Yc.outOfTheWay};
`;var t=[{selector:a(Kd.contextId),styles:{dragging:t,dropAnimating:t,userCancel:t}},e,{selector:a(Jd.contextId),styles:{always:"overflow-anchor: none;"}},{selector:"body",styles:{dragging:`
cursor: grabbing;
cursor: -webkit-grabbing;
user-select: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
overflow-anchor: none;
`}}];return{always:Xd(t,"always"),resting:Xd(t,"resting"),dragging:Xd(t,"dragging"),dropAnimating:Xd(t,"dropAnimating"),userCancel:Xd(t,"userCancel")}}},[r]),o=(0,H.useRef)(null),i=(0,H.useRef)(null),s=J(Z(e=>{var t=i.current;t||W(0,"Cannot set dynamic style element if it is not set"),t.textContent=e}),[]),l=J(e=>{var t=o.current;t||W(0,"Cannot set dynamic style element if it is not set"),t.textContent=e},[]),e=(eu(()=>{(o.current||i.current)&&W(0,"style elements already mounted");var e=au(a),t=au(a);return o.current=e,i.current=t,e.setAttribute(qd+"-always",r),t.setAttribute(qd+"-dynamic",r),tu().appendChild(e),tu().appendChild(t),l(n.always),s(n.resting),()=>{var e=e=>{var t=e.current;t||W(0,"Cannot unmount ref as it is not set"),tu().removeChild(t),e.current=null};e(o),e(i)}},[a,l,s,n.always,n.resting,r]),J(()=>s(n.dragging),[s,n.dragging])),t=J(e=>{"DROP"===e?s(n.dropAnimating):s(n.userCancel)},[s,n.dropAnimating,n.userCancel]),c=J(()=>{i.current&&s(n.resting)},[s,n.resting]);return K(()=>({dragging:e,dropping:t,resting:c}),[e,t,c])}function nu(e,t){return Array.from(e.querySelectorAll(t))}var ou=e=>e&&e.ownerDocument&&e.ownerDocument.defaultView?e.ownerDocument.defaultView:window;function iu(e){return e instanceof ou(e).HTMLElement}function su(e,t){var a=`[${Wd.contextId}="${e}"]`,a=nu(document,a);return a.length?(a=a.find(e=>e.getAttribute(Wd.draggableId)===t))?iu(a)?a:(q("drag handle needs to be a HTMLElement"),null):(q(`Unable to find drag handle with id "${t}" as no handle with a matching id was found`),null):(q(`Unable to find any drag handles in the context "${e}"`),null)}function lu(){const r={draggables:{},droppables:{}},a=[];function n(t){a.length&&a.forEach(e=>e(t))}function o(e){return r.draggables[e]||null}function i(e){return r.droppables[e]||null}return{draggable:{register:e=>{n({type:"ADDITION",value:r.draggables[e.descriptor.id]=e})},update:(e,t)=>{var a=r.draggables[t.descriptor.id];a&&a.uniqueId===e.uniqueId&&(delete r.draggables[t.descriptor.id],r.draggables[e.descriptor.id]=e)},unregister:e=>{var t=e.descriptor.id,a=o(t);a&&e.uniqueId===a.uniqueId&&(delete r.draggables[t],r.droppables[e.descriptor.droppableId])&&n({type:"REMOVAL",value:e})},getById:function(e){var t=o(e);return t||W(0,`Cannot find draggable entry with id [${e}]`),t},findById:o,exists:e=>Boolean(o(e)),getAllByType:t=>Object.values(r.draggables).filter(e=>e.descriptor.type===t)},droppable:{register:e=>{r.droppables[e.descriptor.id]=e},unregister:e=>{var t=i(e.descriptor.id);t&&e.uniqueId===t.uniqueId&&delete r.droppables[e.descriptor.id]},getById:function(e){var t=i(e);return t||W(0,`Cannot find droppable entry with id [${e}]`),t},findById:i,exists:e=>Boolean(i(e)),getAllByType:t=>Object.values(r.droppables).filter(e=>e.descriptor.type===t)},subscribe:function(t){return a.push(t),function(){var e=a.indexOf(t);-1!==e&&a.splice(e,1)}},clean:function(){r.draggables={},r.droppables={},a.length=0}}}var cu=H.default.createContext(null),du=()=>{var e=document.body;return e||W(0,"Cannot find document.body"),e},uu={position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0 0 0 0)","clip-path":"inset(100%)"};var pu={separator:"::"};function mu(e,t=pu){const a=H.default.useId();return K(()=>""+e+t.separator+a,[t.separator,e,a])}function hu({contextId:a,text:e}){const r=mu("hidden-text",{separator:"-"}),n=K(()=>{return{contextId:e,uniqueId:t}=[{contextId:a,uniqueId:r}][0],`rfd-hidden-text-${e}-`+t;var e,t},[r,a]);return(0,H.useEffect)(function(){const t=document.createElement("div");return t.id=n,t.textContent=e,t.style.display="none",du().appendChild(t),function(){var e=du();e.contains(t)&&e.removeChild(t)}},[n,e]),n}var gu=H.default.createContext(null),fu="^18.0.0 || ^19.0.0",bu=/(\d+)\.(\d+)\.(\d+)/,vu=e=>{var t=bu.exec(e),a=(null==t&&W(0,"Unable to parse React version "+e),Number(t[1]));return{major:a,minor:Number(t[2]),patch:Number(t[3]),raw:e}},yu=(e,t)=>t.major>e.major||!(t.major<e.major)&&(t.minor>e.minor||!(t.minor<e.minor)&&t.patch>=e.patch),Su=`
We expect a html5 doctype: <!doctype html>
This is to ensure consistent browser layout and measurement
More information: https://github.com/hello-pangea/dnd/blob/main/docs/guides/doctype.md
`;function wu(e){e()}function ku(e,t){wu(()=>{(0,H.useEffect)(()=>{try{e()}catch(e){Ks(`
A setup problem was encountered.
> ${e.message}
`)}},t)})}function Eu(){ku(()=>{var e=fu,t=H.default.version,t=(e=vu(e),t=vu(t),yu(e,t)||q(`
React version: [${t.raw}]
does not satisfy expected peer dependency version: [${e.raw}]
This can result in run time bugs, and even fatal crashes
`),document);(t=t.doctype)?("html"!==t.name.toLowerCase()&&q(`
Unexpected <!doctype> found: (${t.name})
${Su}
`),""!==t.publicId&&q(`
Unexpected <!doctype> publicId found: (${t.publicId})
A html5 doctype does not have a publicId
${Su}
`)):q(`
No <!doctype html> found.
${Su}
`)},[])}function Cu(e){const t=(0,H.useRef)(e);return(0,H.useEffect)(()=>{t.current=e}),t}function xu(){let t=null;function e(){t||W(0,"Cannot release lock when there is no lock"),t=null}return{isClaimed:function(){return Boolean(t)},isActive:function(e){return e===t},claim:function(e){return t&&W(0,"Cannot claim lock as it is already claimed"),e={abandon:e},t=e},release:e,tryAbandon:function(){t&&(t.abandon(),e())}}}function Iu(e){return"IDLE"!==e.phase&&"DROP_ANIMATING"!==e.phase&&e.isDragging}var Au=27,Nu=32,Ou=37,Tu=38,Lu=39,Du=40,Pu={[13]:!0,9:!0},Mu=e=>{Pu[e.keyCode]&&e.preventDefault()},Ru=(n="visibilitychange","undefined"!=typeof document&&[n,"ms"+n,"webkit"+n,"moz"+n,"o"+n].find(e=>"on"+e in document)||n),_u=0,Bu=5;var ju={type:"IDLE"};function $u({cancel:a,completed:r,getPhase:o,setPhase:i}){return[{eventName:"mousemove",fn:e=>{var t,{button:a,clientX:r,clientY:n}=e;a===_u&&(a={x:r,y:n},"DRAGGING"===(r=o()).type?(e.preventDefault(),r.actions.move(a)):("PENDING"!==r.type&&W(0,"Cannot be IDLE"),n=r.point,n=n,t=a,(Math.abs(t.x-n.x)>=Bu||Math.abs(t.y-n.y)>=Bu)&&(e.preventDefault(),t=r.actions.fluidLift(a),i({type:"DRAGGING",actions:t}))))}},{eventName:"mouseup",fn:e=>{var t=o();("DRAGGING"!==t.type?a:(e.preventDefault(),t.actions.drop({shouldBlockNextClick:!0}),r))()}},{eventName:"mousedown",fn:e=>{"DRAGGING"===o().type&&e.preventDefault(),a()}},{eventName:"keydown",fn:e=>{"PENDING"===o().type?a():e.keyCode===Au?(e.preventDefault(),a()):Mu(e)}},{eventName:"resize",fn:a},{eventName:"scroll",options:{passive:!0,capture:!1},fn:()=>{"PENDING"===o().type&&a()}},{eventName:"webkitmouseforcedown",fn:e=>{var t=o();"IDLE"===t.type&&W(0,"Unexpected phase"),t.actions.shouldRespectForcePress()?a():e.preventDefault()}},{eventName:Ru,fn:a}]}function zu(){}var Uu={[34]:!0,33:!0,36:!0,35:!0};function Fu(t,a){function r(){a(),t.cancel()}return[{eventName:"keydown",fn:e=>{e.keyCode===Au?(e.preventDefault(),r()):e.keyCode===Nu?(e.preventDefault(),a(),t.drop()):e.keyCode===Du?(e.preventDefault(),t.moveDown()):e.keyCode===Tu?(e.preventDefault(),t.moveUp()):e.keyCode===Lu?(e.preventDefault(),t.moveRight()):e.keyCode===Ou?(e.preventDefault(),t.moveLeft()):Uu[e.keyCode]?e.preventDefault():Mu(e)}},{eventName:"mousedown",fn:r},{eventName:"mouseup",fn:r},{eventName:"click",fn:r},{eventName:"touchstart",fn:r},{eventName:"resize",fn:r},{eventName:"wheel",fn:r,options:{passive:!0}},{eventName:Ru,fn:r}]}var Gu={type:"IDLE"},Vu=.15;var Hu=["input","button","textarea","select","option","optgroup","video","audio"];function qu(e,t){t=t.target;return iu(t)&&function e(t,a){var r;return null!=a&&(!!Hu.includes(a.tagName.toLowerCase())||"true"===(r=a.getAttribute("contenteditable"))||""===r||a!==t&&e(t,a.parentElement))}(e,t)}Tn="matches";var Wu="undefined"!=typeof document&&[Tn,"msMatchesSelector","webkitMatchesSelector"].find(e=>e in Element.prototype)||Tn;function Ku(e,t){return e.closest?e.closest(t):function e(t,a){return null==t?null:t[Wu](a)?t:e(t.parentElement,a)}(e,t)}function Ju(e,t){var t=t.target;return t instanceof ou(t).Element?(e=`[${Wd.contextId}="${e}"]`,(t=Ku(t,e))?iu(t)?t:(q("drag handle must be a HTMLElement"),null):null):(q("event.target must be a Element"),null)}function Yu(e){e.preventDefault()}function Zu({expected:e,phase:t,isLockActive:a,shouldWarn:r}){return a()?e===t||(r&&q(`
Cannot perform action.
The actions you used belong to an outdated phase
Current phase: ${e}
You called an action from outdated phase: ${t}
Tips:
- Do not use preDragActions actions after calling preDragActions.lift()
`),!1):(r&&q(`
Cannot perform action.
The sensor no longer has an action lock.
Tips:
- Throw away your action handlers when forceStop() is called
- Check actions.isActive() if you really need to
`),!1)}function Xu({lockAPI:e,store:t,registry:a,draggableId:r}){return!(e.isClaimed()||((e=a.draggable.findById(r))?!e.options.isEnabled||!Ad(t.getState(),r):(q("Unable to find draggable with id: "+r),1)))}function Qu({lockAPI:e,contextId:t,store:n,registry:a,draggableId:r,forceSensorStop:o,sourceEvent:i}){var s;if(!Xu({lockAPI:e,store:n,registry:a,draggableId:r}))return null;const l=a.draggable.getById(r),c=(a=t,s=l.descriptor.id,a=`[${Kd.contextId}="${a}"]`,(a=nu(document,a).find(e=>e.getAttribute(Kd.id)===s))?iu(a)?a:(q("Draggable element is not a HTMLElement"),null):null);if(!c)return q("Unable to find draggable element with id: "+r),null;if(i&&!l.options.canDragInteractiveElements&&qu(c,i))return null;const d=e.claim(o||Js);let u="PRE_DRAG";function p(){return l.options.shouldRespectForcePress}function m(){return e.isActive(d)}const h=function(e,t){Zu({expected:e,phase:u,isLockActive:m,shouldWarn:!0})&&n.dispatch(t())}.bind(null,"DRAGGING");function g(a){function r(){e.release(),u="COMPLETED"}function t(e,t={shouldBlockNextClick:!1}){a.cleanup(),t.shouldBlockNextClick&&(t=Ys(window,[{eventName:"click",fn:Yu,options:{once:!0,passive:!1,capture:!0}}]),setTimeout(t)),r(),n.dispatch(Gc({reason:e}))}return"PRE_DRAG"!==u&&(r(),W(0,"Cannot lift in phase "+u)),n.dispatch({type:"LIFT",payload:a.liftActionArgs}),u="DRAGGING",{isActive:()=>Zu({expected:"DRAGGING",phase:u,isLockActive:m,shouldWarn:!1}),shouldRespectForcePress:p,drop:e=>t("DROP",e),cancel:e=>t("CANCEL",e),...a.actions}}return{isActive:()=>Zu({expected:"PRE_DRAG",phase:u,isLockActive:m,shouldWarn:!1}),shouldRespectForcePress:p,fluidLift:function(e){const t=Us(e=>{h(()=>_c({client:e}))});return{...g({liftActionArgs:{id:r,clientSelection:e,movementMode:"FLUID"},cleanup:()=>t.cancel(),actions:{move:t}}),move:t}},snapLift:function(){var e,t={moveUp:()=>h(Bc),moveRight:()=>h($c),moveDown:()=>h(jc),moveLeft:()=>h(zc)};return g({liftActionArgs:{id:r,clientSelection:(e=c,Rs(e.getBoundingClientRect()).center),movementMode:"SNAP"},cleanup:Js,actions:t})},abort:function(){Zu({expected:"PRE_DRAG",phase:u,isLockActive:m,shouldWarn:!0})&&e.release()}}}var ep=[function(r){const a=(0,H.useRef)(ju),n=(0,H.useRef)(Js),e=K(()=>({eventName:"mousedown",fn:function(e){var t;e.defaultPrevented||e.button!==_u||e.ctrlKey||e.metaKey||e.shiftKey||e.altKey||(t=r.findClosestDraggableId(e))&&(t=r.tryGetLock(t,i,{sourceEvent:e}))&&(e.preventDefault(),e={x:e.clientX,y:e.clientY},n.current(),c(t,e))}}),[r]),t=K(()=>({eventName:"webkitmouseforcewillbegin",fn:e=>{var t,a;e.defaultPrevented||(t=r.findClosestDraggableId(e))&&(a=r.findOptionsForDraggable(t))&&!a.shouldRespectForcePress&&r.canGetLock(t)&&e.preventDefault()}}),[r]),o=J(function(){n.current=Ys(window,[t,e],{passive:!1,capture:!0})},[t,e]),i=J(()=>{"IDLE"!==a.current.type&&(a.current=ju,n.current(),o())},[o]),s=J(()=>{var e=a.current;i(),"DRAGGING"===e.type&&e.actions.cancel({shouldBlockNextClick:!0}),"PENDING"===e.type&&e.actions.abort()},[i]),l=J(function(){var e=$u({cancel:s,completed:i,getPhase:()=>a.current,setPhase:e=>{a.current=e}});n.current=Ys(window,e,{capture:!0,passive:!1})},[s,i]),c=J(function(e,t){"IDLE"!==a.current.type&&W(0,"Expected to move from IDLE to PENDING drag"),a.current={type:"PENDING",point:t,actions:e},l()},[l]);eu(function(){return o(),function(){n.current()}},[o])},function(e){const n=(0,H.useRef)(zu),t=K(()=>({eventName:"keydown",fn:function(t){if(!t.defaultPrevented&&t.keyCode===Nu){var a=e.findClosestDraggableId(t);if(a){a=e.tryGetLock(a,r,{sourceEvent:t});if(a){t.preventDefault();let e=!0;t=a.snapLift();function r(){e||W(0,"Cannot stop capturing a keyboard drag when not capturing"),e=!1,n.current(),o()}n.current(),n.current=Ys(window,Fu(t,r),{capture:!0,passive:!1})}}}}}),[e]),o=J(function(){n.current=Ys(window,[t],{passive:!1,capture:!0})},[t]);eu(function(){return o(),function(){n.current()}},[o])},function(r){const t=(0,H.useRef)(Gu),c=(0,H.useRef)(Js),d=J(function(){return t.current},[]),n=J(function(e){t.current=e},[]),e=K(()=>({eventName:"touchstart",fn:function(e){var t,a;e.defaultPrevented
A screen reader message was trying to be announced but it was unable to do so.
This can occur if you unmount your <DragDropContext /> in your onDragEnd.
Consider calling provided.announce() before the unmount so that the instruction will
not be lost for users relying on a screen reader.
Message not passed to screen reader:
"${e}"
`)},[])}(t),u=hu({contextId:t,text:o}),p=ru(t,n),m=J(e=>{np(i).dispatch(e)},[]),h=K(()=>Ei({publishWhileDragging:Lc,updateDroppableScroll:Pc,updateDroppableIsEnabled:Mc,updateDroppableIsCombineEnabled:Rc,collectionStarting:Dc},m),[m]),g=function(){const e=K(lu,[]);return(0,H.useEffect)(()=>function(){e.clean()},[e]),e}(),f=K(()=>Id(g,h),[g,h]),b=K(()=>Hd({scrollWindow:Nd,scrollDroppable:f.scrollDroppable,getAutoScrollerOptions:c,...Ei({move:_c},m)}),[f.scrollDroppable,m,c]),v=function(t){const r=(0,H.useRef)({}),a=(0,H.useRef)(null),n=(0,H.useRef)(null),o=(0,H.useRef)(!1),e=J(function(t,e){const a={id:t,focus:e};return r.current[t]=a,function(){var e=r.current;e[t]!==a&&delete e[t]}},[]),i=J(function(e){e=su(t,e);e&&e!==document.activeElement&&e.focus()},[t]),s=J(function(e,t){a.current===e&&(a.current=t)},[]),l=J(function(){n.current||o.current&&(n.current=requestAnimationFrame(()=>{n.current=null;var e=a.current;e&&i(e)}))},[i]),c=J(function(e){a.current=null;var t=document.activeElement;t&&t.getAttribute(Wd.draggableId)===e&&(a.current=e)},[]);return eu(()=>(o.current=!0,function(){o.current=!1;var e=n.current;e&&cancelAnimationFrame(e)}),[]),K(()=>({register:e,tryRecordFocus:c,tryRestoreFocusRecorded:l,tryShiftRecord:s}),[e,c,l,s])}(t);var y=K(()=>yd({announce:d,autoScroller:b,dimensionMarshal:f,focusMarshal:v,getResponders:l,styleMarshal:p}),[d,b,f,v,l,p]);i.current&&i.current!==y&&q("unexpected store change"),i.current=y;const S=J(()=>{var e=np(i);"IDLE"!==e.getState().phase&&e.dispatch(Uc())},[]),w=J(()=>{var e=np(i).getState();return"DROP_ANIMATING"===e.phase||"IDLE"!==e.phase&&e.isDragging},[]);var k=K(()=>({isDragging:w,tryAbort:S}),[w,S]);a(k);const E=J(e=>Ad(np(i).getState(),e),[]),C=J(()=>pc(np(i).getState()),[]);k=K(()=>({marshal:f,focus:v,contextId:t,canLift:E,isMovementAllowed:C,dragHandleUsageInstructionsId:u,registry:g}),[t,f,u,v,E,C,g]);return tp({contextId:t,store:y,registry:g,customSensors:r||null,enableDefaultSensors:!1!==e.enableDefaultSensors}),(0,H.useEffect)(()=>S,[S]),H.default.createElement(gu.Provider,{value:k},H.default.createElement(As,{context:cu,store:y},e.children))}function ip(t){const a=H.default.useId(),r=t.dragHandleUsageInstructions||ol.dragHandleUsageInstructions;return H.default.createElement(el,null,e=>H.default.createElement(op,{nonce:t.nonce,contextId:a,setCallbacks:e,dragHandleUsageInstructions:r,enableDefaultSensors:t.enableDefaultSensors,sensors:t.sensors,onBeforeCapture:t.onBeforeCapture,onBeforeDragStart:t.onBeforeDragStart,onDragStart:t.onDragStart,onDragUpdate:t.onDragUpdate,onDragEnd:t.onDragEnd,autoScrollerOptions:t.autoScrollerOptions},t.children))}var sp={dragging:5e3,dropAnimating:4500},lp=(e,t)=>t?Yc.drop(t.duration):e?Yc.snap:Yc.fluid,cp=(e,t)=>{if(e)return t?Jc.opacity.drop:Jc.opacity.combining},dp=e=>null!=e.forceShouldAnimate?e.forceShouldAnimate:"SNAP"===e.mode;function up(e){var t,a,r,n,o,i;return"DRAGGING"===e.type?(i=(r=e).dimension.client,{offset:o,combineWith:a,dropping:t}=r,a=Boolean(a),r=dp(r),n=Boolean(t),o=n?Xc.drop(o,a):Xc.moveTo(o),{position:"fixed",top:i.marginBox.top,left:i.marginBox.left,boxSizing:"border-box",width:i.borderBox.width,height:i.borderBox.height,transition:lp(r,t),transform:o,opacity:cp(a,n),zIndex:n?sp.dropAnimating:sp.dragging,pointerEvents:"none"}):(i=e,{transform:Xc.moveTo(i.offset),transition:i.shouldAnimateDisplacement?void 0:"none"})}function pp(e){const t=mu("draggable"),{descriptor:o,registry:a,getDraggableRef:i,canDragInteractiveElements:r,shouldRespectForcePress:n,isEnabled:s}=e,l=K(()=>({canDragInteractiveElements:r,shouldRespectForcePress:n,isEnabled:s}),[r,s,n]),c=J(e=>{var t,a,r,n=i();return n||W(0,"Cannot get dimension when no ref is set"),[n,e,t=Y]=[o,n,e],a=window.getComputedStyle(e),r=e.getBoundingClientRect(),r=Ps(r,a),t=Ds(r,t),{descriptor:n,placeholder:{client:r,tagName:e.tagName.toLowerCase(),display:a.display},displaceBy:{x:r.marginBox.width,y:r.marginBox.height},client:r,page:t}},[o,i]),d=K(()=>({uniqueId:t,descriptor:o,options:l,getDimension:c}),[o,c,l,t]),u=(0,H.useRef)(d),p=(0,H.useRef)(!0);eu(()=>(a
provided.innerRef has not been provided with a HTMLElement.
You can find a guide on using the innerRef callback functions at:
https://github.com/hello-pangea/dnd/blob/main/docs/guides/using-inner-ref.md
`)}function gp(e){e=(0,H.useContext)(e);return e||W(0,"Could not find required context"),e}var r=(e,t)=>e===t,fp=e=>{var{combine:e,destination:t}=e;return t?t.droppableId:e?e.droppableId:null},bp=e=>e.combine?e.combine.draggableId:null,vp=e=>e.at&&"COMBINE"===e.at.type?e.at.combine.draggableId:null;function yp(e=null){return{isDragging:!1,isDropAnimating:!1,isClone:!1,dropAnimation:null,mode:null,draggingOver:null,combineTargetFor:e,combineWith:null}}var Sp={mapped:{type:"SECONDARY",offset:Y,combineTargetFor:null,shouldAnimateDisplacement:!0,snapshot:yp(null)}};var wp=qn(()=>{const a=function(){const s=Z((e,t)=>({x:e,y:t})),l=Z((e,t,a=null,r=null,n=null)=>({isDragging:!0,isClone:t,isDropAnimating:Boolean(n),dropAnimation:n,mode:e,draggingOver:a,combineWith:r,combineTargetFor:null})),c=Z((e,t,a,r,n=null,o=null,i=null)=>({mapped:{type:"DRAGGING",dropping:null,draggingOver:n,combineWith:o,mode:t,offset:e,dimension:a,forceShouldAnimate:i,snapshot:l(t,r,n,o,null)}}));return(e,t)=>{var a,r,n,o,i;return Iu(e)?e.critical.draggable.id!==t.draggableId?null:(o=e.current.client.offset,a=e.dimensions.draggables[t.draggableId],r=dc(e.impact),i=vp(e.impact),n=e.forceShouldAnimate,c(s(o.x,o.y),e.movementMode,a,t.isClone,r,i,n)):"DROP_ANIMATING"!==e.phase||(o=e.completed).result.draggableId!==t.draggableId?null:(a=t.isClone,r=e.dimensions.draggables[t.draggableId],n=(i=o.result).mode,t=fp(i),o=bp(i),i={duration:e.dropDuration,curve:Kc.drop,moveTo:e.newHomeClientOffset,opacity:o?Jc.opacity.drop:null,scale:o?Jc.scale.drop:null},{mapped:{type:"DRAGGING",offset:e.newHomeClientOffset,dimension:r,dropping:i,draggingOver:t,combineWith:o,mode:n,forceShouldAnimate:null,snapshot:l(n,a,t,o,i)}})}}(),r=function(){const s=Z((e,t)=>({x:e,y:t})),r=Z(yp),l=Z((e,t=null,a)=>({mapped:{type:"SECONDARY",offset:e,combineTargetFor:t,shouldAnimateDisplacement:a,snapshot:r(t)}})),c=e=>e?l(Y,e,!0):null,a=(e,t,a,r)=>{var n=a.displaced.visible[e],o=Boolean(r.inVirtualList&&r.effected[e]),i=Cl(a),i=i&&i.draggableId===e?t:null;return n?o?c(i):(t=a.displacedBy.point,t=s(t.x,t.y),l(t,i,n.shouldAnimate)):o?a.displaced.invisible[e]?null:(t=cl(r.displacedBy.point),n=s(t.x,t.y),l(n,i,!0)):c(i)};return(e,t)=>{return Iu(e)?e.critical.draggable.id===t.draggableId?null:a(t.draggableId,e.critical.draggable.id,e.impact,e.afterCritical):"DROP_ANIMATING"!==e.phase||(e=e.completed).result.draggableId===t.draggableId?null:a(t.draggableId,e.result.draggableId,e.impact,e.afterCritical)}}();return(e,t)=>a(e,t)||r(e,t)||Sp},{dropAnimationFinished:Vc},null,{context:cu,areStatePropsEqual:r})(e=>{const t=(0,H.useRef)(null),a=J((e=null)=>{t.current=e},[]),r=J(()=>t.current,[]),{contextId:n,dragHandleUsageInstructionsId:o,registry:i}=gp(gu),{type:s,droppableId:l}=gp(mp),c=K(()=>({id:e.draggableId,index:e.index,type:s,droppableId:l}),[e.draggableId,e.index,s,l]),{children:d,draggableId:u,isEnabled:p,shouldRespectForcePress:m,canDragInteractiveElements:h,isClone:g,mapped:f,dropAnimationFinished:b}=e;var v,y,S,w;v=e,y=n,S=r,ku(()=>{function e(e){return`Draggable[id: ${e}]: `}var t=v.draggableId;t||W(0,"Draggable requires a draggableId"),"string"!=typeof t&&W(0,`Draggable requires a [string] draggableId.
Provided: [type: ${typeof t}] (value: ${t})`),Number.isInteger(v.index)||W(0,e(t)+" requires an integer index prop"),"DRAGGING"!==v.mapped.type&&(hp(S()),v.isEnabled)&&!su(y,t)&&W(0,e(t)+" Unable to find drag handle")}),w=g,wu(()=>{const e=(0,H.useRef)(w);ku(()=>{w!==e.current&&W(0,"Draggable isClone prop value changed during component life")},[w])}),g||pp(K(()=>({descriptor:c,registry:i,getDraggableRef:r,canDragInteractiveElements:h,shouldRespectForcePress:m,isEnabled:p}),[c,i,r,h,m,p]));const k=K(()=>p?{tabIndex:0,role:"button","aria-describedby":o,"data-rfd-drag-handle-draggable-id":u,"data-rfd-drag-handle-context-id":n,draggable:!1,onDragStart:function(e){e.preventDefault()}}:null,[n,o,u,p]),E=J(e=>{"DRAGGING"===f.type&&f.dropping&&"transform"===e.propertyName&&(0,gi.flushSync)(b)},[b,f]);var C=K(()=>{var e=up(f),t="DRAGGING"===f.type&&f.dropping?E:void 0;return{innerRef:a,draggableProps:{"data-rfd-draggable-context-id":n,"data-rfd-draggable-id":u,style:e,onTransitionEnd:t},dragHandleProps:k}},[n,k,u,f,E,a]),x=K(()=>({draggableId:c.id,type:c.type,source:{index:c.index,droppableId:c.droppableId}}),[c.droppableId,c.id,c.index,c.type]);return H.default.createElement(H.default.Fragment,null,d(C,f.snapshot,x))});function kp(e){return gp(mp).isUsingCloneFor!==e.draggableId||e.isClone?H.default.createElement(wp,e):null}function Ep(e){var t="boolean"!=typeof e.isDragDisabled||!e.isDragDisabled,a=Boolean(e.disableInteractiveElementBlocking),r=Boolean(e.shouldRespectForcePress);return H.default.createElement(kp,Fs({},e,{isClone:!1,isEnabled:t,canDragInteractiveElements:a,shouldRespectForcePress:r}))}var Kn=t=>e=>t===e,Cp=Kn("scroll"),xp=Kn("auto"),Ip=Kn("visible"),Ap=(e,t)=>t(e.overflowX)||t(e.overflowY),Np=e=>{e=window.getComputedStyle(e),e={overflowX:e.overflowX,overflowY:e.overflowY};return Ap(e,Cp)||Ap(e,xp)},Op=e=>{var t,a;return null==e?null:e===document.body?(t=du(),(a=document.documentElement)||W(),Np(t)&&(t=window.getComputedStyle(a),a={overflowX:t.overflowX,overflowY:t.overflowY},(t=Ip)((a=a).overflowX)&&t(a.overflowY)||q(`
We have detected that your <body> element might be a scroll container.
We have found no reliable way of detecting whether the <body> element is a scroll container.
Under most circumstances a <body> scroll bar will be on the <html> element (document.documentElement)
Because we cannot determine if the <body> is a scroll container, and generally it is not one,
we will be treating the <body> as *not* a scroll container
More information: https://github.com/hello-pangea/dnd/blob/main/docs/guides/how-we-detect-scroll-containers.md
`)),null):e===document.documentElement?null:Np(e)?e:Op(e.parentElement)},Tp=e=>{e&&Op(e.parentElement)&&q(`
Droppable: unsupported nested scroll container detected.
A Droppable can only have one scroll parent (which can be itself)
Nested scroll containers are currently not supported.
We hope to support nested scroll containers soon: https://github.com/atlassian/react-beautiful-dnd/issues/131
`)},Lp=e=>({x:e.scrollLeft,y:e.scrollTop}),Dp=e=>{return!!e&&("fixed"===window.getComputedStyle(e).position||Dp(e.parentElement))},Pp=e=>{return{closestScrollable:Op(e),isFixedOnPage:Dp(e)}},Mp=({ref:e,descriptor:t,env:a,windowScroll:r,direction:n,isDropDisabled:o,isCombineEnabled:i,shouldClipSubject:s})=>{const l=a.closestScrollable;p=l,h=Ms(e=e);var c,d,u,p=!p||e!==p?h:(e=h.paddingBox.top-p.scrollTop,c=h.paddingBox.left-p.scrollLeft,m=e+p.scrollHeight,p=c+p.scrollWidth,e=Ts({top:e,right:p,bottom:m,left:c},h.border),Bs({borderBox:e,margin:h.margin,border:h.border,padding:h.padding})),m=Ds(p,r),h=l?(c=Ms(l),e={scrollHeight:l.scrollHeight,scrollWidth:l.scrollWidth},{client:c,page:Ds(c,r),scroll:Lp(l),scrollSize:e,shouldClipSubject:s}):null;return{descriptor:r,isEnabled:e,isCombineEnabled:s,isFixedOnPage:t,direction:o,client:i,page:a,closest:n}=[{descriptor:t,isEnabled:!o,isCombineEnabled:i,isFixedOnPage:a.isFixedOnPage,direction:n,client:p,page:m,closest:h}][0],d=n?({scrollSize:u,client:d}=n,p=wd({scrollHeight:u.scrollHeight,scrollWidth:u.scrollWidth,height:d.paddingBox.height,width:d.paddingBox.width}),{pageMarginBox:n.page.marginBox,frameClient:d,scrollSize:u,shouldClipSubject:n.shouldClipSubject,scroll:{initial:n.scroll,current:n.scroll,max:p,diff:{value:Y,displacement:Y}}}):null,{descriptor:r,isCombineEnabled:s,isFixedOnPage:t,axis:u="vertical"===o?Pl:Ml,isEnabled:e,client:i,page:a,frame:d,subject:fl({page:a,withPlaceholder:null,axis:u,frame:d})}},Rp={passive:!1},_p={passive:!0},Bp=e=>e.shouldPublishImmediately?Rp:_p,jp=e=>e&&e.env.closestScrollable||null;function $p(){}var zp={width:0,height:0,margin:{top:0,right:0,bottom:0,left:0}},Up=({isAnimatingOpenOnMount:e,placeholder:t,animate:a})=>e||"close"===a?zp:{height:t.client.borderBox.height,width:t.client.borderBox.width,margin:t.client.margin},Fp=H.default.memo(e=>{const t=(0,H.useRef)(null),a=J(()=>{t.current&&(clearTimeout(t.current),t.current=null)},[]),{animate:r,onTransitionEnd:n,onClose:o,contextId:i}=e,[s,l]=(0,H.useState)("open"===e.animate);(0,H.useEffect)(()=>s?"open"!==r?(a(),l(!1),$p):t.current?$p:(t.current=setTimeout(()=>{t.current=null,l(!1)}),a):$p,[r,s,a]);var c=J(e=>{"height"===e.propertyName&&(n(),"close"===r)&&o()},[r,o,n]),d=(({isAnimatingOpenOnMount:e,placeholder:t,animate:a})=>{e=Up({isAnimatingOpenOnMount:e,placeholder:t,animate:a});return{display:t.display,boxSizing:"border-box",width:e.width,height:e.height,marginTop:e.margin.top,marginRight:e.margin.right,marginBottom:e.margin.bottom,marginLeft:e.margin.left,flexShrink:"0",flexGrow:"0",pointerEvents:"none",transition:"none"!==a?Yc.placeholder:null}})({isAnimatingOpenOnMount:s,animate:e.animate,placeholder:e.placeholder});return H.default.createElement(e.placeholder.tagName,{style:d,"data-rfd-placeholder-context-id":i,onTransitionEnd:c,ref:e.innerRef})});function Gp(e){return"boolean"==typeof e}function Vp(t,e){e.forEach(e=>e(t))}var Hp=[function({props:e}){e.droppableId||W(0,"A Droppable requires a droppableId prop"),"string"!=typeof e.droppableId&&W(0,`A Droppable requires a [string] droppableId. Provided: [${typeof e.droppableId}]`)},function({props:e}){Gp(e.isDropDisabled)||W(0,"isDropDisabled must be a boolean"),Gp(e.isCombineEnabled)||W(0,"isCombineEnabled must be a boolean"),Gp(e.ignoreContainerClipping)||W(0,"ignoreContainerClipping must be a boolean")},function({getDroppableRef:e}){hp(e())}],qp=[function({props:e,getPlaceholderRef:t}){e.placeholder&&!t()&&q(`
Droppable setup issue [droppableId: "${e.droppableId}"]:
DroppableProvided > placeholder could not be found.
Please be sure to add the {provided.placeholder} React Node as a child of your Droppable.
More information: https://github.com/hello-pangea/dnd/blob/main/docs/api/droppable.md
`)}],Wp=[function({props:e}){e.renderClone||W(0,"Must provide a clone render function (renderClone) for virtual lists")},function({getPlaceholderRef:e}){e()&&W(0,"Expected virtual list to not have a placeholder")}];var Kp=class extends H.default.PureComponent{constructor(...e){super(...e),this.state={isVisible:Boolean(this.props.on),data:this.props.on,animate:this.props.shouldAnimate&&this.props.on?"open":"none"},this.onClose=()=>{"close"===this.state.animate&&this.setState({isVisible:!1})}}static getDerivedStateFromProps(e,t){return e.shouldAnimate?e.on?{isVisible:!0,data:e.on,animate:"open"}:t.isVisible?{isVisible:!0,data:t.data,animate:"close"}:{isVisible:!1,animate:"close",data:null}:{isVisible:Boolean(e.on),data:e.on,animate:"none"}}render(){var e;return this.state.isVisible?(e={onClose:this.onClose,data:this.state.data,animate:this.state.animate},this.props.children(e)):null}};var Jp={mode:"standard",type:"DEFAULT",direction:"vertical",isDropDisabled:!1,isCombineEnabled:!1,ignoreContainerClipping:!1,renderClone:null,getContainerForClone:function(){return document.body||W(0,"document.body is not ready"),document.body}},Yp=e=>{let t={...e},a;for(a in Jp)void 0===e[a]&&(t={...t,[a]:Jp[a]});return t},Zp=(e,t)=>e===t.droppable.type,Xp=(e,t)=>t.draggables[e.draggable.id],Qp=qn(()=>{const s={placeholder:null,shouldAnimatePlaceholder:!0,snapshot:{isDraggingOver:!1,draggingOverWith:null,draggingFromThisWith:null,isUsingPlaceholder:!1},useClone:null},l={...s,shouldAnimatePlaceholder:!1},c=Z(e=>({draggableId:e.id,type:e.type,source:{index:e.index,droppableId:e.droppableId}})),d=Z((e,t,a,r,n,o)=>{var i=n.descriptor.id;return n.descriptor.droppableId===e?(e=o?{render:o,dragging:c(n.descriptor)}:null,{placeholder:n.placeholder,shouldAnimatePlaceholder:!1,snapshot:{isDraggingOver:a,draggingOverWith:a?i:null,draggingFromThisWith:i,isUsingPlaceholder:!0},useClone:e}):t?r?{placeholder:n.placeholder,shouldAnimatePlaceholder:!0,snapshot:{isDraggingOver:a,draggingOverWith:i,draggingFromThisWith:null,isUsingPlaceholder:!0},useClone:null}:s:l});return(e,t)=>{var a,r,t=Yp(t),n=t.droppableId,o=t.type,i=!t.isDropDisabled,t=t.renderClone;return Iu(e)?(r=e.critical,Zp(o,r)?(r=Xp(r,e.dimensions),a=dc(e.impact)===n,d(n,i,a,a,r,t)):l):"DROP_ANIMATING"===e.phase?(a=e.completed,Zp(o,a.critical)?(r=Xp(a.critical,e.dimensions),d(n,i,fp(a.result)===n,dc(a.impact)===n,r,t)):l):"IDLE"===e.phase&&e.completed&&!e.shouldFlush&&(i=e.completed,Zp(o,i.critical))?(a=dc(i.impact)===n,r=Boolean(i.impact.at&&"COMBINE"===i.impact.at.type),t=i.critical.droppable.id===n,a?r?s:l:t?s:l):l}},{updateViewportMaxScroll:e=>({type:"UPDATE_VIEWPORT_MAX_SCROLL",payload:e})},(e,t,a)=>({...Yp(a),...e,...t}),{context:cu,areStatePropsEqual:r})(e=>{var t=(0,H.useContext)(gu);t||W(0,"Could not find app context");const{contextId:r,isMovementAllowed:a}=t,n=(0,H.useRef)(null),o=(0,H.useRef)(null),{children:_,droppableId:i,type:s,mode:B,direction:j,ignoreContainerClipping:$,isDropDisabled:z,isCombineEnabled:U,snapshot:F,useClone:l,updateViewportMaxScroll:c,getContainerForClone:G}=e;t=J(()=>n.current,[]);const d=J((e=null)=>{n.current=e},[]);var u,p=J(()=>o.current,[]);const m=J((e=null)=>{o.current=e},[]),h=(u={props:e,getDroppableRef:t,getPlaceholderRef:p},ku(()=>{Vp(u,Hp),"standard"===u.props.mode&&Vp(u,qp),"virtual"===u.props.mode&&Vp(u,Wp)}),J(()=>{a()&&c({maxScroll:Ed()})},[a,c]));{var g={droppableId:i,type:s,mode:B,direction:j,isDropDisabled:z,isCombineEnabled:U,ignoreContainerClipping:$,getDroppableRef:t};const b=(0,H.useRef)(null),v=gp(gu),y=mu("droppable"),{registry:S,marshal:w}=v,k=Cu(g),E=K(()=>({id:g.droppableId,type:g.type,mode:g.mode}),[g.droppableId,g.mode,g.type]),C=(0,H.useRef)(E),x=K(()=>Z((e,t)=>{b.current||W(0,"Can only update scroll when dragging");e={x:e,y:t};w.updateDroppableScroll(E.id,e)}),[E.id,w]),I=J(()=>{var e=b.current;return e&&e.env.closestScrollable?Lp(e.env.closestScrollable):Y},[]),A=J(()=>{var e=I();x(e.x,e.y)},[I,x]),N=K(()=>Us(A),[A]),O=J(()=>{var e=b.current,t=jp(e),t=(e&&t||W(0,"Could not find scroll options while scrolling"),e.scrollOption
`;for(const r in e[a])Object.hasOwn(e[a],r)&&(t+=`${r}=${e[a][r]}
`)}else t+=`${a}=${e[a]}
`;return t})(um.schemes):y("devTools.noThemeInstalled"));return lm.default.createElement("div",{id:"marketplace-theme-dev-tools-container",className:"marketplace-theme-dev-tools-container"},lm.default.createElement("div",{className:"devtools-column"},lm.default.createElement("label",{htmlFor:"color-ini-editor"},lm.default.createElement("h2",{className:"devtools-heading"},y("devTools.colorIniEditor"))),lm.default.createElement("div",{className:"marketplace-code-editor-wrapper marketplace-code-editor"},lm.default.createElement(cm.default,{value:a,onValueChange:e=>t(e),highlight:e=>(0,sm.highlight)(e,sm.languages.ini),textareaId:"color-ini-editor",textareaClassName:"color-ini-editor",readOnly:!um,placeholder:y("devTools.colorIniEditorPlaceholder"),style:{fontFamily:"monospace",resize:"none"}})),lm.default.createElement(Jo,{onClick:()=>{var e=a;{var t;dm?(t=bo(e),um.schemes=t,localStorage.setItem(dm,JSON.stringify(um))):Spicetify.showNotification(y("devTools.noThemeManifest"),!0)}}},y("save"))),lm.default.createElement("div",{className:"devtools-column"},lm.default.createElement("h2",{className:"devtools-heading"},y("devTools.invalidCSS")),lm.default.createElement("div",{className:"marketplace-code-editor-wrapper marketplace-code-editor"},function(){var e=document.querySelector("body > style.marketplaceCSS.marketplaceUserCSS")?.innerHTML;if(!e)return["Error: Class name list not found; please create an issue"];var a=[];for(const o of e.matchAll(/.-?[_a-zA-Z]+[_a-zA-Z0-9-]*\s*{/g)){var r=o[0].replace(/{/g,"").trim(),n=r.split(" ");let t;for(let e=0;e<n.length;e++){try{t=document.querySelector(""+n[e])}catch{t=document.getElementsByClassName(""+r)}t||a.push(r)}}return a}().map((e,t)=>lm.default.createElement("div",{key:t,className:"invalid-css-text"},e)))))},m=t(a());var mm=function(){const[e,t]=m.default.useState(null);return m.default.useEffect(()=>{!async function(){try{var{body:e,tag_name:t,message:a}=await(await fetch($a)).json();return e&&t&&!a?{version:t.replace("v",""),changelog:await Ao(e.match(/## What's Changed([\s\S]*?)(\r\n\r|\n\n##)/)[1],"spicetify","marketplace")}:null}catch(e){return console.error(e),null}}().then(e=>t(e))},[]),m.default.createElement("div",{id:"marketplace-update-container"},m.default.createElement("div",{id:"marketplace-update-description"},m.default.createElement("h4",null,y("updateModal.description")),m.default.createElement("a",{href:ja+"/tag/v1.0.8"},y("updateModal.currentVersion",{version:Ma})),m.default.createElement("a",{href:ja+"/tag/v"+e?.version},y("updateModal.latestVersion",{version:e?.version}))),m.default.createElement("hr",null),m.default.createElement("div",{id:"marketplace-update-whats-changed"},m.default.createElement("h3",{className:"marketplace-update-header"},y("updateModal.whatsChanged")),m.default.createElement("details",null,m.default.createElement("summary",null,y("updateModal.seeChangelog")),m.default.createElement("ul",{dangerouslySetInnerHTML:{__html:e?.changelog??""}}))),m.default.createElement("hr",null),m.default.createElement("div",{id:"marketplace-update-guide"},m.default.createElement("h3",{className:"marketplace-update-header"},y("updateModal.howToUpgrade")),m.default.createElement("a",{href:"https://github.com/spicetify/marketplace/wiki/Installation"},y("updateModal.viewGuide"))))},hm=(e,t,a,r,n)=>{e=((e,t,a,r,n)=>{switch(e){case"ADD_SNIPPET":return{title:y("snippets.addTitle"),content:Fo.default.createElement(im,{type:e}),isLarge:!0};case"EDIT_SNIPPET":return{title:y("snippets.editTitle"),content:Fo.default.createElement(im,{type:e,content:r}),isLarge:!0};case"VIEW_SNIPPET":return{title:y("snippets.viewTitle"),content:Fo.default.createElement(im,{type:e,content:r,callback:n}),isLarge:!0};case"RELOAD":return{title:y("reloadModal.title"),content:Fo.default.createElement(Xo,null),isLarge:!1};case"SETTINGS":return{title:y("settings.title"),content:Fo.default.createElement(rm,{CONFIG:t,updateAppConfig:a}),isLarge:!0};case"THEME_DEV_TOOLS":return{title:y("devTools.title"),content:Fo.default.createElement(pm,null),isLarge:!0};case"BACKUP":return{title:y("backupMo