@wp-playground/components 3.1.47 → 3.1.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,6 +11,7 @@ export type FileExplorerSidebarProps = {
11
11
  documentRoot: string;
12
12
  readOnly?: boolean;
13
13
  title?: string;
14
+ mobileSubsectionTitle?: string;
14
15
  showBinaryPreviewHeader?: boolean;
15
16
  dockPresentation?: boolean;
16
17
  useWordPressTooltips?: boolean;
@@ -18,4 +19,4 @@ export type FileExplorerSidebarProps = {
18
19
  /**
19
20
  * Renders the file explorer and opens selected files in the editor preview area.
20
21
  */
21
- export declare function FileExplorerSidebar({ filesystem, currentPath, selectedDirPath, setSelectedDirPath, onFileOpened, onSelectionCleared, onShowMessage, documentRoot, readOnly, title, showBinaryPreviewHeader, dockPresentation, useWordPressTooltips, }: FileExplorerSidebarProps): React.JSX.Element;
22
+ export declare function FileExplorerSidebar({ filesystem, currentPath, selectedDirPath, setSelectedDirPath, onFileOpened, onSelectionCleared, onShowMessage, documentRoot, readOnly, title, mobileSubsectionTitle, showBinaryPreviewHeader, dockPresentation, useWordPressTooltips, }: FileExplorerSidebarProps): React.JSX.Element;
package/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var Jt=Object.create;var Nt=Object.defineProperty;var Xt=Object.getOwnPropertyDescriptor;var Qt=Object.getOwnPropertyNames;var er=Object.getPrototypeOf,tr=Object.prototype.hasOwnProperty;var rr=(n,s,f,l)=>{if(s&&typeof s=="object"||typeof s=="function")for(let C of Qt(s))!tr.call(n,C)&&C!==f&&Nt(n,C,{get:()=>s[C],enumerable:!(l=Xt(s,C))||l.enumerable});return n};var nt=(n,s,f)=>(f=n!=null?Jt(er(n)):{},rr(s||!n||!n.__esModule?Nt(f,"default",{value:n,enumerable:!0}):f,n));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),H=require("@php-wasm/util"),X=require("@wordpress/components"),De=require("classnames"),vt=require("@wordpress/element"),nr=require("clsx"),Oe=require("@codemirror/state"),Se=require("@codemirror/view"),pt=require("@codemirror/commands"),It=require("@codemirror/search"),ht=require("@codemirror/autocomplete"),Ke=require("@codemirror/language"),it=require("@codemirror/lang-php"),Lt=require("@wp-playground/components"),Je=require("@php-wasm/logger"),Mt=require("@php-wasm/universal/mime-types"),ar=require("react-dom"),or=n=>e.createElement("svg",{width:"32",height:"32",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",...n},e.createElement("rect",{width:"10.4176",height:"10.4176",rx:"3.86258",transform:"matrix(0.829038 -0.559193 0.838671 0.544639 7.45703 24.1775)",stroke:"white",strokeWidth:"0.965644"}),e.createElement("rect",{width:"13.2346",height:"13.2346",rx:"3.86258",transform:"matrix(0.829038 -0.559193 0.838671 0.544639 5.0918 18.9934)",stroke:"white",strokeWidth:"1.44847"}),e.createElement("rect",{width:"17.451",height:"17.451",rx:"3.86258",transform:"matrix(0.829038 -0.559193 0.838671 0.544639 1.55371 11.6099)",stroke:"white",strokeWidth:"1.93129"})),ir=n=>e.createElement("svg",{width:"16",height:"17",viewBox:"0 0 16 17",fill:"none",xmlns:"http://www.w3.org/2000/svg",...n},e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8 15C4.41015 15 1.5 12.0899 1.5 8.5C1.5 4.91015 4.41015 2 8 2C11.5899 2 14.5 4.91015 14.5 8.5C14.5 12.0899 11.5899 15 8 15ZM0 8.5C0 4.08172 3.58172 0.5 8 0.5C12.4183 0.5 16 4.08172 16 8.5C16 12.9183 12.4183 16.5 8 16.5C3.58172 16.5 0 12.9183 0 8.5ZM9 9.5V4.5H7.5V8H5.5V9.5H9Z",fill:"#949494"})),sr=n=>e.createElement("svg",{width:"20",height:"21",viewBox:"0 0 20 21",fill:"none",xmlns:"http://www.w3.org/2000/svg",...n},e.createElement("path",{d:"M20 10.5C20 4.99 15.51 0.5 10 0.5C4.48 0.5 0 4.99 0 10.5C0 16.02 4.48 20.5 10 20.5C15.51 20.5 20 16.02 20 10.5ZM7.78 15.87L4.37 6.72C4.92 6.7 5.54 6.64 5.54 6.64C6.04 6.58 5.98 5.51 5.48 5.53C5.48 5.53 4.03 5.64 3.11 5.64C2.93 5.64 2.74 5.64 2.53 5.63C4.12 3.19 6.87 1.61 10 1.61C12.33 1.61 14.45 2.48 16.05 3.95C15.37 3.84 14.4 4.34 14.4 5.53C14.4 6.27 14.85 6.89 15.3 7.63C15.65 8.24 15.85 8.99 15.85 10.09C15.85 11.58 14.45 15.09 14.45 15.09L11.42 6.72C11.96 6.7 12.24 6.55 12.24 6.55C12.74 6.5 12.68 5.3 12.18 5.33C12.18 5.33 10.74 5.45 9.8 5.45C8.93 5.45 7.47 5.33 7.47 5.33C6.97 5.3 6.91 6.53 7.41 6.55L8.33 6.63L9.59 10.04L7.78 15.87ZM17.41 10.5C17.65 9.86 18.15 8.63 17.84 6.25C18.54 7.54 18.89 8.96 18.89 10.5C18.89 13.79 17.16 16.74 14.49 18.28C15.46 15.69 16.43 13.08 17.41 10.5ZM6.1 18.59C3.12 17.15 1.11 14.03 1.11 10.5C1.11 9.2 1.34 8.02 1.83 6.91C3.25 10.8 4.67 14.7 6.1 18.59ZM10.13 11.96L12.71 18.94C11.85 19.23 10.95 19.39 10 19.39C9.21 19.39 8.43 19.28 7.71 19.06C8.52 16.68 9.33 14.32 10.13 11.96Z",fill:"#ffffff"})),zt=e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"15",height:"14",viewBox:"0 0 15 14",fill:"none"},e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.59196 3.59524L6.77745 1.96623C6.70755 1.82641 6.56464 1.7381 6.40832 1.7381H1.65079C1.42287 1.7381 1.2381 1.92287 1.2381 2.15079V11.8492C1.2381 12.0771 1.42287 12.2619 1.65079 12.2619H13.2063C13.4343 12.2619 13.619 12.0771 13.619 11.8492V4.00794C13.619 3.78001 13.4343 3.59524 13.2063 3.59524H7.59196ZM8.35714 2.35714L7.88484 1.41254C7.60521 0.853274 7.0336 0.5 6.40832 0.5H1.65079C0.739085 0.5 0 1.23909 0 2.15079V11.8492C0 12.7609 0.739085 13.5 1.65079 13.5H13.2063C14.1181 13.5 14.8571 12.7609 14.8571 11.8492V4.00794C14.8571 3.09623 14.1181 2.35714 13.2063 2.35714H8.35714Z"})),$t=e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"currentColor",className:"bi bi-file-earmark",viewBox:"0 0 16 16"},e.createElement("path",{d:"M14 4.5V14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2h5.5zm-3 0A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V4.5z"})),lr=n=>e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 14 14",fill:"none",...n},e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7 12.6875C3.85888 12.6875 1.3125 10.1411 1.3125 7C1.3125 3.85888 3.85888 1.3125 7 1.3125C10.1411 1.3125 12.6875 3.85888 12.6875 7C12.6875 10.1411 10.1411 12.6875 7 12.6875ZM0 7C0 3.13401 3.13401 0 7 0C10.866 0 14 3.13401 14 7C14 10.866 10.866 14 7 14C3.13401 14 0 10.866 0 7ZM7.875 7.875V3.5H6.5625V6.5625H4.8125V7.875H7.875Z",fill:"#949494"})),cr=e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 14 14",fill:"none"},e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.25 1.3125H1.75C1.50838 1.3125 1.3125 1.50838 1.3125 1.75V4.37495H12.6875V1.75C12.6875 1.50837 12.4916 1.3125 12.25 1.3125ZM12.6875 5.68745H5.25003V12.6875H12.25C12.4916 12.6875 12.6875 12.4916 12.6875 12.25V5.68745ZM3.93753 5.68745H1.3125V12.25C1.3125 12.4916 1.50837 12.6875 1.75 12.6875H3.93753L3.93753 5.68745ZM1.75 0H12.25C13.2165 0 14 0.783502 14 1.75V12.25C14 13.2165 13.2165 14 12.25 14H1.75C0.783502 14 0 13.2165 0 12.25V1.75C0 0.783502 0.783502 0 1.75 0Z",fill:"#949494"}));function ur(n){return`data:${n.mime};base64,${n.data}`}function fr({size:n=24,sidebarActive:s=!1}){return e.createElement("svg",{width:n,height:n,viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},e.createElement("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),s?e.createElement("rect",{x:"3",y:"3",width:"7",height:"18",rx:"2",ry:"2",fill:"currentColor"}):e.createElement("rect",{x:"3",y:"3",width:"8",height:"18",rx:"2",ry:"2",fill:"none",stroke:"currentColor",strokeWidth:"2"}))}const Bt=vt.forwardRef(({icon:n,size:s=24,...f},l)=>vt.cloneElement(n,{width:s,height:s,...f,ref:l}));var Tt={exports:{}},at={};/**
1
+ "use strict";var Jt=Object.create;var Nt=Object.defineProperty;var Xt=Object.getOwnPropertyDescriptor;var Qt=Object.getOwnPropertyNames;var er=Object.getPrototypeOf,tr=Object.prototype.hasOwnProperty;var rr=(n,s,f,l)=>{if(s&&typeof s=="object"||typeof s=="function")for(let C of Qt(s))!tr.call(n,C)&&C!==f&&Nt(n,C,{get:()=>s[C],enumerable:!(l=Xt(s,C))||l.enumerable});return n};var nt=(n,s,f)=>(f=n!=null?Jt(er(n)):{},rr(s||!n||!n.__esModule?Nt(f,"default",{value:n,enumerable:!0}):f,n));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),U=require("@php-wasm/util"),X=require("@wordpress/components"),De=require("classnames"),vt=require("@wordpress/element"),nr=require("clsx"),Oe=require("@codemirror/state"),Se=require("@codemirror/view"),pt=require("@codemirror/commands"),It=require("@codemirror/search"),ht=require("@codemirror/autocomplete"),Ke=require("@codemirror/language"),it=require("@codemirror/lang-php"),Lt=require("@wp-playground/components"),Je=require("@php-wasm/logger"),Mt=require("@php-wasm/universal/mime-types"),ar=require("react-dom"),or=n=>e.createElement("svg",{width:"32",height:"32",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",...n},e.createElement("rect",{width:"10.4176",height:"10.4176",rx:"3.86258",transform:"matrix(0.829038 -0.559193 0.838671 0.544639 7.45703 24.1775)",stroke:"white",strokeWidth:"0.965644"}),e.createElement("rect",{width:"13.2346",height:"13.2346",rx:"3.86258",transform:"matrix(0.829038 -0.559193 0.838671 0.544639 5.0918 18.9934)",stroke:"white",strokeWidth:"1.44847"}),e.createElement("rect",{width:"17.451",height:"17.451",rx:"3.86258",transform:"matrix(0.829038 -0.559193 0.838671 0.544639 1.55371 11.6099)",stroke:"white",strokeWidth:"1.93129"})),ir=n=>e.createElement("svg",{width:"16",height:"17",viewBox:"0 0 16 17",fill:"none",xmlns:"http://www.w3.org/2000/svg",...n},e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8 15C4.41015 15 1.5 12.0899 1.5 8.5C1.5 4.91015 4.41015 2 8 2C11.5899 2 14.5 4.91015 14.5 8.5C14.5 12.0899 11.5899 15 8 15ZM0 8.5C0 4.08172 3.58172 0.5 8 0.5C12.4183 0.5 16 4.08172 16 8.5C16 12.9183 12.4183 16.5 8 16.5C3.58172 16.5 0 12.9183 0 8.5ZM9 9.5V4.5H7.5V8H5.5V9.5H9Z",fill:"#949494"})),sr=n=>e.createElement("svg",{width:"20",height:"21",viewBox:"0 0 20 21",fill:"none",xmlns:"http://www.w3.org/2000/svg",...n},e.createElement("path",{d:"M20 10.5C20 4.99 15.51 0.5 10 0.5C4.48 0.5 0 4.99 0 10.5C0 16.02 4.48 20.5 10 20.5C15.51 20.5 20 16.02 20 10.5ZM7.78 15.87L4.37 6.72C4.92 6.7 5.54 6.64 5.54 6.64C6.04 6.58 5.98 5.51 5.48 5.53C5.48 5.53 4.03 5.64 3.11 5.64C2.93 5.64 2.74 5.64 2.53 5.63C4.12 3.19 6.87 1.61 10 1.61C12.33 1.61 14.45 2.48 16.05 3.95C15.37 3.84 14.4 4.34 14.4 5.53C14.4 6.27 14.85 6.89 15.3 7.63C15.65 8.24 15.85 8.99 15.85 10.09C15.85 11.58 14.45 15.09 14.45 15.09L11.42 6.72C11.96 6.7 12.24 6.55 12.24 6.55C12.74 6.5 12.68 5.3 12.18 5.33C12.18 5.33 10.74 5.45 9.8 5.45C8.93 5.45 7.47 5.33 7.47 5.33C6.97 5.3 6.91 6.53 7.41 6.55L8.33 6.63L9.59 10.04L7.78 15.87ZM17.41 10.5C17.65 9.86 18.15 8.63 17.84 6.25C18.54 7.54 18.89 8.96 18.89 10.5C18.89 13.79 17.16 16.74 14.49 18.28C15.46 15.69 16.43 13.08 17.41 10.5ZM6.1 18.59C3.12 17.15 1.11 14.03 1.11 10.5C1.11 9.2 1.34 8.02 1.83 6.91C3.25 10.8 4.67 14.7 6.1 18.59ZM10.13 11.96L12.71 18.94C11.85 19.23 10.95 19.39 10 19.39C9.21 19.39 8.43 19.28 7.71 19.06C8.52 16.68 9.33 14.32 10.13 11.96Z",fill:"#ffffff"})),$t=e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"15",height:"14",viewBox:"0 0 15 14",fill:"none"},e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.59196 3.59524L6.77745 1.96623C6.70755 1.82641 6.56464 1.7381 6.40832 1.7381H1.65079C1.42287 1.7381 1.2381 1.92287 1.2381 2.15079V11.8492C1.2381 12.0771 1.42287 12.2619 1.65079 12.2619H13.2063C13.4343 12.2619 13.619 12.0771 13.619 11.8492V4.00794C13.619 3.78001 13.4343 3.59524 13.2063 3.59524H7.59196ZM8.35714 2.35714L7.88484 1.41254C7.60521 0.853274 7.0336 0.5 6.40832 0.5H1.65079C0.739085 0.5 0 1.23909 0 2.15079V11.8492C0 12.7609 0.739085 13.5 1.65079 13.5H13.2063C14.1181 13.5 14.8571 12.7609 14.8571 11.8492V4.00794C14.8571 3.09623 14.1181 2.35714 13.2063 2.35714H8.35714Z"})),Wt=e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"currentColor",className:"bi bi-file-earmark",viewBox:"0 0 16 16"},e.createElement("path",{d:"M14 4.5V14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2h5.5zm-3 0A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V4.5z"})),lr=n=>e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 14 14",fill:"none",...n},e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7 12.6875C3.85888 12.6875 1.3125 10.1411 1.3125 7C1.3125 3.85888 3.85888 1.3125 7 1.3125C10.1411 1.3125 12.6875 3.85888 12.6875 7C12.6875 10.1411 10.1411 12.6875 7 12.6875ZM0 7C0 3.13401 3.13401 0 7 0C10.866 0 14 3.13401 14 7C14 10.866 10.866 14 7 14C3.13401 14 0 10.866 0 7ZM7.875 7.875V3.5H6.5625V6.5625H4.8125V7.875H7.875Z",fill:"#949494"})),cr=e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 14 14",fill:"none"},e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.25 1.3125H1.75C1.50838 1.3125 1.3125 1.50838 1.3125 1.75V4.37495H12.6875V1.75C12.6875 1.50837 12.4916 1.3125 12.25 1.3125ZM12.6875 5.68745H5.25003V12.6875H12.25C12.4916 12.6875 12.6875 12.4916 12.6875 12.25V5.68745ZM3.93753 5.68745H1.3125V12.25C1.3125 12.4916 1.50837 12.6875 1.75 12.6875H3.93753L3.93753 5.68745ZM1.75 0H12.25C13.2165 0 14 0.783502 14 1.75V12.25C14 13.2165 13.2165 14 12.25 14H1.75C0.783502 14 0 13.2165 0 12.25V1.75C0 0.783502 0.783502 0 1.75 0Z",fill:"#949494"}));function ur(n){return`data:${n.mime};base64,${n.data}`}function fr({size:n=24,sidebarActive:s=!1}){return e.createElement("svg",{width:n,height:n,viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},e.createElement("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),s?e.createElement("rect",{x:"3",y:"3",width:"7",height:"18",rx:"2",ry:"2",fill:"currentColor"}):e.createElement("rect",{x:"3",y:"3",width:"8",height:"18",rx:"2",ry:"2",fill:"none",stroke:"currentColor",strokeWidth:"2"}))}const Bt=vt.forwardRef(({icon:n,size:s=24,...f},l)=>vt.cloneElement(n,{width:s,height:s,...f,ref:l}));var Tt={exports:{}},at={};/**
2
2
  * @license React
3
3
  * react-jsx-runtime.production.min.js
4
4
  *
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
- */var jt;function dr(){if(jt)return at;jt=1;var n=e,s=Symbol.for("react.element"),f=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,C=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,d={key:!0,ref:!0,__self:!0,__source:!0};function k(A,F,h){var _,D={},P=null,z=null;h!==void 0&&(P=""+h),F.key!==void 0&&(P=""+F.key),F.ref!==void 0&&(z=F.ref);for(_ in F)l.call(F,_)&&!d.hasOwnProperty(_)&&(D[_]=F[_]);if(A&&A.defaultProps)for(_ in F=A.defaultProps,F)D[_]===void 0&&(D[_]=F[_]);return{$$typeof:s,type:A,key:P,ref:z,props:D,_owner:C.current}}return at.Fragment=f,at.jsx=k,at.jsxs=k,at}var ot={};/**
9
+ */var jt;function dr(){if(jt)return at;jt=1;var n=e,s=Symbol.for("react.element"),f=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,C=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,d={key:!0,ref:!0,__self:!0,__source:!0};function k(D,A,h){var _,N={},T=null,Y=null;h!==void 0&&(T=""+h),A.key!==void 0&&(T=""+A.key),A.ref!==void 0&&(Y=A.ref);for(_ in A)l.call(A,_)&&!d.hasOwnProperty(_)&&(N[_]=A[_]);if(D&&D.defaultProps)for(_ in A=D.defaultProps,A)N[_]===void 0&&(N[_]=A[_]);return{$$typeof:s,type:D,key:T,ref:Y,props:N,_owner:C.current}}return at.Fragment=f,at.jsx=k,at.jsxs=k,at}var ot={};/**
10
10
  * @license React
11
11
  * react-jsx-runtime.development.js
12
12
  *
@@ -14,18 +14,18 @@
14
14
  *
15
15
  * This source code is licensed under the MIT license found in the
16
16
  * LICENSE file in the root directory of this source tree.
17
- */var Ot;function mr(){return Ot||(Ot=1,process.env.NODE_ENV!=="production"&&function(){var n=e,s=Symbol.for("react.element"),f=Symbol.for("react.portal"),l=Symbol.for("react.fragment"),C=Symbol.for("react.strict_mode"),d=Symbol.for("react.profiler"),k=Symbol.for("react.provider"),A=Symbol.for("react.context"),F=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),_=Symbol.for("react.suspense_list"),D=Symbol.for("react.memo"),P=Symbol.for("react.lazy"),z=Symbol.for("react.offscreen"),Z=Symbol.iterator,S="@@iterator";function q(t){if(t===null||typeof t!="object")return null;var c=Z&&t[Z]||t[S];return typeof c=="function"?c:null}var w=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function R(t){{for(var c=arguments.length,m=new Array(c>1?c-1:0),x=1;x<c;x++)m[x-1]=arguments[x];U("error",t,m)}}function U(t,c,m){{var x=w.ReactDebugCurrentFrame,W=x.getStackAddendum();W!==""&&(c+="%s",m=m.concat([W]));var Y=m.map(function(B){return String(B)});Y.unshift("Warning: "+c),Function.prototype.apply.call(console[t],console,Y)}}var J=!1,ne=!1,y=!1,j=!1,O=!1,V;V=Symbol.for("react.module.reference");function p(t){return!!(typeof t=="string"||typeof t=="function"||t===l||t===d||O||t===C||t===h||t===_||j||t===z||J||ne||y||typeof t=="object"&&t!==null&&(t.$$typeof===P||t.$$typeof===D||t.$$typeof===k||t.$$typeof===A||t.$$typeof===F||t.$$typeof===V||t.getModuleId!==void 0))}function N(t,c,m){var x=t.displayName;if(x)return x;var W=c.displayName||c.name||"";return W!==""?m+"("+W+")":m}function le(t){return t.displayName||"Context"}function G(t){if(t==null)return null;if(typeof t.tag=="number"&&R("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case l:return"Fragment";case f:return"Portal";case d:return"Profiler";case C:return"StrictMode";case h:return"Suspense";case _:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case A:var c=t;return le(c)+".Consumer";case k:var m=t;return le(m._context)+".Provider";case F:return N(t,t.render,"ForwardRef");case D:var x=t.displayName||null;return x!==null?x:G(t.type)||"Memo";case P:{var W=t,Y=W._payload,B=W._init;try{return G(B(Y))}catch{return null}}}return null}var M=Object.assign,ae=0,Q,he,pe,Fe,ke,ee,Le;function te(){}te.__reactDisabledLog=!0;function Be(){{if(ae===0){Q=console.log,he=console.info,pe=console.warn,Fe=console.error,ke=console.group,ee=console.groupCollapsed,Le=console.groupEnd;var t={configurable:!0,enumerable:!0,value:te,writable:!0};Object.defineProperties(console,{info:t,log:t,warn:t,error:t,group:t,groupCollapsed:t,groupEnd:t})}ae++}}function ge(){{if(ae--,ae===0){var t={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:M({},t,{value:Q}),info:M({},t,{value:he}),warn:M({},t,{value:pe}),error:M({},t,{value:Fe}),group:M({},t,{value:ke}),groupCollapsed:M({},t,{value:ee}),groupEnd:M({},t,{value:Le})})}ae<0&&R("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var xe=w.ReactCurrentDispatcher,Ne;function Pe(t,c,m){{if(Ne===void 0)try{throw Error()}catch(W){var x=W.stack.trim().match(/\n( *(at )?)/);Ne=x&&x[1]||""}return`
18
- `+Ne+t}}var fe=!1,$;{var E=typeof WeakMap=="function"?WeakMap:Map;$=new E}function me(t,c){if(!t||fe)return"";{var m=$.get(t);if(m!==void 0)return m}var x;fe=!0;var W=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var Y;Y=xe.current,xe.current=null,Be();try{if(c){var B=function(){throw Error()};if(Object.defineProperty(B.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(B,[])}catch(be){x=be}Reflect.construct(t,[],B)}else{try{B.call()}catch(be){x=be}t.call(B.prototype)}}else{try{throw Error()}catch(be){x=be}t()}}catch(be){if(be&&x&&typeof be.stack=="string"){for(var I=be.stack.split(`
19
- `),Ee=x.stack.split(`
20
- `),se=I.length-1,ue=Ee.length-1;se>=1&&ue>=0&&I[se]!==Ee[ue];)ue--;for(;se>=1&&ue>=0;se--,ue--)if(I[se]!==Ee[ue]){if(se!==1||ue!==1)do if(se--,ue--,ue<0||I[se]!==Ee[ue]){var Te=`
21
- `+I[se].replace(" at new "," at ");return t.displayName&&Te.includes("<anonymous>")&&(Te=Te.replace("<anonymous>",t.displayName)),typeof t=="function"&&$.set(t,Te),Te}while(se>=1&&ue>=0);break}}}finally{fe=!1,xe.current=Y,ge(),Error.prepareStackTrace=W}var Ze=t?t.displayName||t.name:"",$e=Ze?Pe(Ze):"";return typeof t=="function"&&$.set(t,$e),$e}function de(t,c,m){return me(t,!1)}function ve(t){var c=t.prototype;return!!(c&&c.isReactComponent)}function b(t,c,m){if(t==null)return"";if(typeof t=="function")return me(t,ve(t));if(typeof t=="string")return Pe(t);switch(t){case h:return Pe("Suspense");case _:return Pe("SuspenseList")}if(typeof t=="object")switch(t.$$typeof){case F:return de(t.render);case D:return b(t.type,c,m);case P:{var x=t,W=x._payload,Y=x._init;try{return b(Y(W),c,m)}catch{}}}return""}var T=Object.prototype.hasOwnProperty,oe={},ie=w.ReactDebugCurrentFrame;function ce(t){if(t){var c=t._owner,m=b(t.type,t._source,c?c.type:null);ie.setExtraStackFrame(m)}else ie.setExtraStackFrame(null)}function ye(t,c,m,x,W){{var Y=Function.call.bind(T);for(var B in t)if(Y(t,B)){var I=void 0;try{if(typeof t[B]!="function"){var Ee=Error((x||"React class")+": "+m+" type `"+B+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof t[B]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw Ee.name="Invariant Violation",Ee}I=t[B](c,B,x,m,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(se){I=se}I&&!(I instanceof Error)&&(ce(W),R("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",x||"React class",m,B,typeof I),ce(null)),I instanceof Error&&!(I.message in oe)&&(oe[I.message]=!0,ce(W),R("Failed %s type: %s",m,I.message),ce(null))}}}var Ve=Array.isArray;function we(t){return Ve(t)}function Ie(t){{var c=typeof Symbol=="function"&&Symbol.toStringTag,m=c&&t[Symbol.toStringTag]||t.constructor.name||"Object";return m}}function tt(t){try{return He(t),!1}catch{return!0}}function He(t){return""+t}function st(t){if(tt(t))return R("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Ie(t)),He(t)}var lt=w.ReactCurrentOwner,wt={key:!0,ref:!0,__self:!0,__source:!0},ct,ze;function Ue(t){if(T.call(t,"ref")){var c=Object.getOwnPropertyDescriptor(t,"ref").get;if(c&&c.isReactWarning)return!1}return t.ref!==void 0}function Et(t){if(T.call(t,"key")){var c=Object.getOwnPropertyDescriptor(t,"key").get;if(c&&c.isReactWarning)return!1}return t.key!==void 0}function gt(t,c){typeof t.ref=="string"&&lt.current}function yt(t,c){{var m=function(){ct||(ct=!0,R("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",c))};m.isReactWarning=!0,Object.defineProperty(t,"key",{get:m,configurable:!0})}}function _t(t,c){{var m=function(){ze||(ze=!0,R("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",c))};m.isReactWarning=!0,Object.defineProperty(t,"ref",{get:m,configurable:!0})}}var bt=function(t,c,m,x,W,Y,B){var I={$$typeof:s,type:t,key:c,ref:m,props:B,_owner:Y};return I._store={},Object.defineProperty(I._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(I,"_self",{configurable:!1,enumerable:!1,writable:!1,value:x}),Object.defineProperty(I,"_source",{configurable:!1,enumerable:!1,writable:!1,value:W}),Object.freeze&&(Object.freeze(I.props),Object.freeze(I)),I};function ut(t,c,m,x,W){{var Y,B={},I=null,Ee=null;m!==void 0&&(st(m),I=""+m),Et(c)&&(st(c.key),I=""+c.key),Ue(c)&&(Ee=c.ref,gt(c,W));for(Y in c)T.call(c,Y)&&!wt.hasOwnProperty(Y)&&(B[Y]=c[Y]);if(t&&t.defaultProps){var se=t.defaultProps;for(Y in se)B[Y]===void 0&&(B[Y]=se[Y])}if(I||Ee){var ue=typeof t=="function"?t.displayName||t.name||"Unknown":t;I&&yt(B,ue),Ee&&_t(B,ue)}return bt(t,I,Ee,W,x,lt.current,B)}}var qe=w.ReactCurrentOwner,rt=w.ReactDebugCurrentFrame;function je(t){if(t){var c=t._owner,m=b(t.type,t._source,c?c.type:null);rt.setExtraStackFrame(m)}else rt.setExtraStackFrame(null)}var Ge;Ge=!1;function Ye(t){return typeof t=="object"&&t!==null&&t.$$typeof===s}function ft(){{if(qe.current){var t=G(qe.current.type);if(t)return`
17
+ */var Ot;function mr(){return Ot||(Ot=1,process.env.NODE_ENV!=="production"&&function(){var n=e,s=Symbol.for("react.element"),f=Symbol.for("react.portal"),l=Symbol.for("react.fragment"),C=Symbol.for("react.strict_mode"),d=Symbol.for("react.profiler"),k=Symbol.for("react.provider"),D=Symbol.for("react.context"),A=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),_=Symbol.for("react.suspense_list"),N=Symbol.for("react.memo"),T=Symbol.for("react.lazy"),Y=Symbol.for("react.offscreen"),B=Symbol.iterator,R="@@iterator";function z(t){if(t===null||typeof t!="object")return null;var c=B&&t[B]||t[R];return typeof c=="function"?c:null}var y=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function x(t){{for(var c=arguments.length,m=new Array(c>1?c-1:0),S=1;S<c;S++)m[S-1]=arguments[S];H("error",t,m)}}function H(t,c,m){{var S=y.ReactDebugCurrentFrame,W=S.getStackAddendum();W!==""&&(c+="%s",m=m.concat([W]));var G=m.map(function(O){return String(O)});G.unshift("Warning: "+c),Function.prototype.apply.call(console[t],console,G)}}var K=!1,ae=!1,fe=!1,E=!1,V=!1,F;F=Symbol.for("react.module.reference");function p(t){return!!(typeof t=="string"||typeof t=="function"||t===l||t===d||V||t===C||t===h||t===_||E||t===Y||K||ae||fe||typeof t=="object"&&t!==null&&(t.$$typeof===T||t.$$typeof===N||t.$$typeof===k||t.$$typeof===D||t.$$typeof===A||t.$$typeof===F||t.getModuleId!==void 0))}function j(t,c,m){var S=t.displayName;if(S)return S;var W=c.displayName||c.name||"";return W!==""?m+"("+W+")":m}function q(t){return t.displayName||"Context"}function ee(t){if(t==null)return null;if(typeof t.tag=="number"&&x("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case l:return"Fragment";case f:return"Portal";case d:return"Profiler";case C:return"StrictMode";case h:return"Suspense";case _:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case D:var c=t;return q(c)+".Consumer";case k:var m=t;return q(m._context)+".Provider";case A:return j(t,t.render,"ForwardRef");case N:var S=t.displayName||null;return S!==null?S:ee(t.type)||"Memo";case T:{var W=t,G=W._payload,O=W._init;try{return ee(O(G))}catch{return null}}}return null}var L=Object.assign,Q=0,J,he,de,Fe,ke,te,Le;function re(){}re.__reactDisabledLog=!0;function Be(){{if(Q===0){J=console.log,he=console.info,de=console.warn,Fe=console.error,ke=console.group,te=console.groupCollapsed,Le=console.groupEnd;var t={configurable:!0,enumerable:!0,value:re,writable:!0};Object.defineProperties(console,{info:t,log:t,warn:t,error:t,group:t,groupCollapsed:t,groupEnd:t})}Q++}}function ye(){{if(Q--,Q===0){var t={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:L({},t,{value:J}),info:L({},t,{value:he}),warn:L({},t,{value:de}),error:L({},t,{value:Fe}),group:L({},t,{value:ke}),groupCollapsed:L({},t,{value:te}),groupEnd:L({},t,{value:Le})})}Q<0&&x("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var Re=y.ReactCurrentDispatcher,Ne;function Pe(t,c,m){{if(Ne===void 0)try{throw Error()}catch(W){var S=W.stack.trim().match(/\n( *(at )?)/);Ne=S&&S[1]||""}return`
18
+ `+Ne+t}}var ue=!1,$;{var w=typeof WeakMap=="function"?WeakMap:Map;$=new w}function pe(t,c){if(!t||ue)return"";{var m=$.get(t);if(m!==void 0)return m}var S;ue=!0;var W=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var G;G=Re.current,Re.current=null,Be();try{if(c){var O=function(){throw Error()};if(Object.defineProperty(O.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(O,[])}catch(Ce){S=Ce}Reflect.construct(t,[],O)}else{try{O.call()}catch(Ce){S=Ce}t.call(O.prototype)}}else{try{throw Error()}catch(Ce){S=Ce}t()}}catch(Ce){if(Ce&&S&&typeof Ce.stack=="string"){for(var I=Ce.stack.split(`
19
+ `),Ee=S.stack.split(`
20
+ `),se=I.length-1,ce=Ee.length-1;se>=1&&ce>=0&&I[se]!==Ee[ce];)ce--;for(;se>=1&&ce>=0;se--,ce--)if(I[se]!==Ee[ce]){if(se!==1||ce!==1)do if(se--,ce--,ce<0||I[se]!==Ee[ce]){var Te=`
21
+ `+I[se].replace(" at new "," at ");return t.displayName&&Te.includes("<anonymous>")&&(Te=Te.replace("<anonymous>",t.displayName)),typeof t=="function"&&$.set(t,Te),Te}while(se>=1&&ce>=0);break}}}finally{ue=!1,Re.current=G,ye(),Error.prepareStackTrace=W}var Ze=t?t.displayName||t.name:"",We=Ze?Pe(Ze):"";return typeof t=="function"&&$.set(t,We),We}function me(t,c,m){return pe(t,!1)}function ve(t){var c=t.prototype;return!!(c&&c.isReactComponent)}function b(t,c,m){if(t==null)return"";if(typeof t=="function")return pe(t,ve(t));if(typeof t=="string")return Pe(t);switch(t){case h:return Pe("Suspense");case _:return Pe("SuspenseList")}if(typeof t=="object")switch(t.$$typeof){case A:return me(t.render);case N:return b(t.type,c,m);case T:{var S=t,W=S._payload,G=S._init;try{return b(G(W),c,m)}catch{}}}return""}var P=Object.prototype.hasOwnProperty,oe={},ie=y.ReactDebugCurrentFrame;function le(t){if(t){var c=t._owner,m=b(t.type,t._source,c?c.type:null);ie.setExtraStackFrame(m)}else ie.setExtraStackFrame(null)}function _e(t,c,m,S,W){{var G=Function.call.bind(P);for(var O in t)if(G(t,O)){var I=void 0;try{if(typeof t[O]!="function"){var Ee=Error((S||"React class")+": "+m+" type `"+O+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof t[O]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw Ee.name="Invariant Violation",Ee}I=t[O](c,O,S,m,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(se){I=se}I&&!(I instanceof Error)&&(le(W),x("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",S||"React class",m,O,typeof I),le(null)),I instanceof Error&&!(I.message in oe)&&(oe[I.message]=!0,le(W),x("Failed %s type: %s",m,I.message),le(null))}}}var Ve=Array.isArray;function we(t){return Ve(t)}function Ie(t){{var c=typeof Symbol=="function"&&Symbol.toStringTag,m=c&&t[Symbol.toStringTag]||t.constructor.name||"Object";return m}}function tt(t){try{return Ue(t),!1}catch{return!0}}function Ue(t){return""+t}function st(t){if(tt(t))return x("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Ie(t)),Ue(t)}var lt=y.ReactCurrentOwner,wt={key:!0,ref:!0,__self:!0,__source:!0},ct,$e;function ze(t){if(P.call(t,"ref")){var c=Object.getOwnPropertyDescriptor(t,"ref").get;if(c&&c.isReactWarning)return!1}return t.ref!==void 0}function Et(t){if(P.call(t,"key")){var c=Object.getOwnPropertyDescriptor(t,"key").get;if(c&&c.isReactWarning)return!1}return t.key!==void 0}function gt(t,c){typeof t.ref=="string"&&lt.current}function yt(t,c){{var m=function(){ct||(ct=!0,x("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",c))};m.isReactWarning=!0,Object.defineProperty(t,"key",{get:m,configurable:!0})}}function _t(t,c){{var m=function(){$e||($e=!0,x("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",c))};m.isReactWarning=!0,Object.defineProperty(t,"ref",{get:m,configurable:!0})}}var bt=function(t,c,m,S,W,G,O){var I={$$typeof:s,type:t,key:c,ref:m,props:O,_owner:G};return I._store={},Object.defineProperty(I._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(I,"_self",{configurable:!1,enumerable:!1,writable:!1,value:S}),Object.defineProperty(I,"_source",{configurable:!1,enumerable:!1,writable:!1,value:W}),Object.freeze&&(Object.freeze(I.props),Object.freeze(I)),I};function ut(t,c,m,S,W){{var G,O={},I=null,Ee=null;m!==void 0&&(st(m),I=""+m),Et(c)&&(st(c.key),I=""+c.key),ze(c)&&(Ee=c.ref,gt(c,W));for(G in c)P.call(c,G)&&!wt.hasOwnProperty(G)&&(O[G]=c[G]);if(t&&t.defaultProps){var se=t.defaultProps;for(G in se)O[G]===void 0&&(O[G]=se[G])}if(I||Ee){var ce=typeof t=="function"?t.displayName||t.name||"Unknown":t;I&&yt(O,ce),Ee&&_t(O,ce)}return bt(t,I,Ee,W,S,lt.current,O)}}var qe=y.ReactCurrentOwner,rt=y.ReactDebugCurrentFrame;function je(t){if(t){var c=t._owner,m=b(t.type,t._source,c?c.type:null);rt.setExtraStackFrame(m)}else rt.setExtraStackFrame(null)}var Ge;Ge=!1;function Ye(t){return typeof t=="object"&&t!==null&&t.$$typeof===s}function ft(){{if(qe.current){var t=ee(qe.current.type);if(t)return`
22
22
 
23
- Check the render method of \``+t+"`."}return""}}function Ct(t){return""}var dt={};function Rt(t){{var c=ft();if(!c){var m=typeof t=="string"?t:t.displayName||t.name;m&&(c=`
23
+ Check the render method of \``+t+"`."}return""}}function Ct(t){return""}var dt={};function xt(t){{var c=ft();if(!c){var m=typeof t=="string"?t:t.displayName||t.name;m&&(c=`
24
24
 
25
- Check the top-level render call using <`+m+">.")}return c}}function mt(t,c){{if(!t._store||t._store.validated||t.key!=null)return;t._store.validated=!0;var m=Rt(c);if(dt[m])return;dt[m]=!0;var x="";t&&t._owner&&t._owner!==qe.current&&(x=" It was passed a child from "+G(t._owner.type)+"."),je(t),R('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',m,x),je(null)}}function r(t,c){{if(typeof t!="object")return;if(we(t))for(var m=0;m<t.length;m++){var x=t[m];Ye(x)&&mt(x,c)}else if(Ye(t))t._store&&(t._store.validated=!0);else if(t){var W=q(t);if(typeof W=="function"&&W!==t.entries)for(var Y=W.call(t),B;!(B=Y.next()).done;)Ye(B.value)&&mt(B.value,c)}}}function a(t){{var c=t.type;if(c==null||typeof c=="string")return;var m;if(typeof c=="function")m=c.propTypes;else if(typeof c=="object"&&(c.$$typeof===F||c.$$typeof===D))m=c.propTypes;else return;if(m){var x=G(c);ye(m,t.props,"prop",x,t)}else if(c.PropTypes!==void 0&&!Ge){Ge=!0;var W=G(c);R("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",W||"Unknown")}typeof c.getDefaultProps=="function"&&!c.getDefaultProps.isReactClassApproved&&R("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function o(t){{for(var c=Object.keys(t.props),m=0;m<c.length;m++){var x=c[m];if(x!=="children"&&x!=="key"){je(t),R("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",x),je(null);break}}t.ref!==null&&(je(t),R("Invalid attribute `ref` supplied to `React.Fragment`."),je(null))}}var i={};function u(t,c,m,x,W,Y){{var B=p(t);if(!B){var I="";(t===void 0||typeof t=="object"&&t!==null&&Object.keys(t).length===0)&&(I+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var Ee=Ct();Ee?I+=Ee:I+=ft();var se;t===null?se="null":we(t)?se="array":t!==void 0&&t.$$typeof===s?(se="<"+(G(t.type)||"Unknown")+" />",I=" Did you accidentally export a JSX literal instead of a component?"):se=typeof t,R("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",se,I)}var ue=ut(t,c,m,W,Y);if(ue==null)return ue;if(B){var Te=c.children;if(Te!==void 0)if(x)if(we(Te)){for(var Ze=0;Ze<Te.length;Ze++)r(Te[Ze],t);Object.freeze&&Object.freeze(Te)}else R("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else r(Te,t)}if(T.call(c,"key")){var $e=G(t),be=Object.keys(c).filter(function(Kt){return Kt!=="key"}),xt=be.length>0?"{key: someKey, "+be.join(": ..., ")+": ...}":"{key: someKey}";if(!i[$e+xt]){var Zt=be.length>0?"{"+be.join(": ..., ")+": ...}":"{}";R(`A props object containing a "key" prop is being spread into JSX:
25
+ Check the top-level render call using <`+m+">.")}return c}}function mt(t,c){{if(!t._store||t._store.validated||t.key!=null)return;t._store.validated=!0;var m=xt(c);if(dt[m])return;dt[m]=!0;var S="";t&&t._owner&&t._owner!==qe.current&&(S=" It was passed a child from "+ee(t._owner.type)+"."),je(t),x('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',m,S),je(null)}}function r(t,c){{if(typeof t!="object")return;if(we(t))for(var m=0;m<t.length;m++){var S=t[m];Ye(S)&&mt(S,c)}else if(Ye(t))t._store&&(t._store.validated=!0);else if(t){var W=z(t);if(typeof W=="function"&&W!==t.entries)for(var G=W.call(t),O;!(O=G.next()).done;)Ye(O.value)&&mt(O.value,c)}}}function a(t){{var c=t.type;if(c==null||typeof c=="string")return;var m;if(typeof c=="function")m=c.propTypes;else if(typeof c=="object"&&(c.$$typeof===A||c.$$typeof===N))m=c.propTypes;else return;if(m){var S=ee(c);_e(m,t.props,"prop",S,t)}else if(c.PropTypes!==void 0&&!Ge){Ge=!0;var W=ee(c);x("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",W||"Unknown")}typeof c.getDefaultProps=="function"&&!c.getDefaultProps.isReactClassApproved&&x("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function o(t){{for(var c=Object.keys(t.props),m=0;m<c.length;m++){var S=c[m];if(S!=="children"&&S!=="key"){je(t),x("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",S),je(null);break}}t.ref!==null&&(je(t),x("Invalid attribute `ref` supplied to `React.Fragment`."),je(null))}}var i={};function u(t,c,m,S,W,G){{var O=p(t);if(!O){var I="";(t===void 0||typeof t=="object"&&t!==null&&Object.keys(t).length===0)&&(I+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var Ee=Ct();Ee?I+=Ee:I+=ft();var se;t===null?se="null":we(t)?se="array":t!==void 0&&t.$$typeof===s?(se="<"+(ee(t.type)||"Unknown")+" />",I=" Did you accidentally export a JSX literal instead of a component?"):se=typeof t,x("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",se,I)}var ce=ut(t,c,m,W,G);if(ce==null)return ce;if(O){var Te=c.children;if(Te!==void 0)if(S)if(we(Te)){for(var Ze=0;Ze<Te.length;Ze++)r(Te[Ze],t);Object.freeze&&Object.freeze(Te)}else x("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else r(Te,t)}if(P.call(c,"key")){var We=ee(t),Ce=Object.keys(c).filter(function(Kt){return Kt!=="key"}),Rt=Ce.length>0?"{key: someKey, "+Ce.join(": ..., ")+": ...}":"{key: someKey}";if(!i[We+Rt]){var Zt=Ce.length>0?"{"+Ce.join(": ..., ")+": ...}":"{}";x(`A props object containing a "key" prop is being spread into JSX:
26
26
  let props = %s;
27
27
  <%s {...props} />
28
28
  React keys must be passed directly to JSX without using spread:
29
29
  let props = %s;
30
- <%s key={someKey} {...props} />`,xt,$e,Zt,$e),i[$e+xt]=!0}}return t===l?o(ue):a(ue),ue}}function v(t,c,m){return u(t,c,m,!0)}function g(t,c,m){return u(t,c,m,!1)}var re=g,_e=v;ot.Fragment=l,ot.jsx=re,ot.jsxs=_e}()),ot}process.env.NODE_ENV==="production"?Tt.exports=dr():Tt.exports=mr();var Ae=Tt.exports,Qe=n=>vt.createElement("path",n),et=vt.forwardRef(({className:n,isPressed:s,...f},l)=>{const C={...f,className:nr(n,{"is-pressed":s})||void 0,"aria-hidden":!0,focusable:!1};return Ae.jsx("svg",{...C,ref:l})});et.displayName="SVG";const pr=Ae.jsx(et,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:Ae.jsx(Qe,{d:"M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z"})}),hr=Ae.jsx(et,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:Ae.jsx(Qe,{d:"M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z"})}),vr=Ae.jsx(et,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:Ae.jsx(Qe,{fillRule:"evenodd",clipRule:"evenodd",d:"M12.848 8a1 1 0 0 1-.914-.594l-.723-1.63a.5.5 0 0 0-.447-.276H5a.5.5 0 0 0-.5.5v11.5a.5.5 0 0 0 .5.5h14a.5.5 0 0 0 .5-.5v-9A.5.5 0 0 0 19 8h-6.152Zm.612-1.5a.5.5 0 0 1-.462-.31l-.445-1.084A2 2 0 0 0 10.763 4H5a2 2 0 0 0-2 2v11.5a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2h-5.54Z"})}),wr=Ae.jsxs(et,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:[Ae.jsx(Qe,{d:"M15.5 7.5h-7V9h7V7.5Zm-7 3.5h7v1.5h-7V11Zm7 3.5h-7V16h7v-1.5Z"}),Ae.jsx(Qe,{d:"M17 4H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2ZM7 5.5h10a.5.5 0 0 1 .5.5v12a.5.5 0 0 1-.5.5H7a.5.5 0 0 1-.5-.5V6a.5.5 0 0 1 .5-.5Z"})]}),Er=Ae.jsx(et,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:Ae.jsx(Qe,{d:"M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z"})}),gr="_file-picker-tree_ad9od_1",yr="_file-node-button_ad9od_17",_r="_selected_ad9od_56",br="_focused_ad9od_75",Cr="_dropTarget_ad9od_83",Rr="_dropTargetInvalid_ad9od_95",xr="_renaming_ad9od_104",Sr="_renameInput_ad9od_109",kr="_file-name_ad9od_124",Re={filePickerTree:gr,fileNodeButton:yr,selected:_r,focused:br,dropTarget:Cr,dropTargetInvalid:Rr,renaming:xr,renameInput:Sr,fileName:kr};function St(n){if(!n)return[];const s=H.normalizePath(n),f=s.startsWith("/"),l=s.split("/").filter(Boolean),C=[];let d=f?"/":"";f&&C.push("/");for(const k of l)!d||d==="/"?d=d==="/"?`/${k}`:k:d=`${d}/${k}`,C.push(d);return C}function We(n,s,f){return n&&(n===s?f:n.startsWith(s==="/"?"/":`${s}/`)?f+n.slice(s.length):n)}const Wt=e.forwardRef(function({withContextMenu:s=!0,readOnly:f=!1,filesystem:l,root:C="/wordpress",initialSelectedPath:d,onSelect:k=()=>{},onDoubleClickFile:A},F){const h=e.useMemo(()=>H.joinPaths("/",C||"/"),[C]),[_,D]=e.useState(()=>{if(!d)return{};const r={};for(const a of St(d))r[a]=!0;return r}),[P,z]=e.useState(()=>d??null),[Z,S]=e.useState(()=>d??null),[q,w]=e.useState({}),[R,U]=e.useState({}),[J,ne]=e.useState(null),[y,j]=e.useState(null),O=e.useRef({}),V=e.useRef(!1),p=e.useRef(null),N=e.useRef(null),le=e.useRef(R),G=e.useRef(q),M=()=>{for(const r of Object.keys(O.current))clearTimeout(O.current[r]),delete O.current[r]},ae=r=>{const a=O.current[r];a&&(clearTimeout(a),delete O.current[r])};e.useEffect(()=>{le.current=R},[R]),e.useEffect(()=>{G.current=q},[q]);const Q=r=>{var o;const a=(o=p.current)==null?void 0:o.querySelector(`[data-path="${CSS.escape(r)}"]`);a&&typeof a.focus=="function"&&(a.focus(),a.scrollIntoView({behavior:"smooth",block:"nearest"}))},he=(r,a="")=>a?H.joinPaths(a,r.name):H.joinPaths("/",r.name),pe=(r,a)=>r.children?r.children:q[a],Fe=async(r,a)=>{const o=await r.listFiles(a),i=[];for(const u of o){const v=a==="/"?`/${u}`:`${a}/${u}`,g=await r.isDir(v);i.push({name:u,type:g?"folder":"file"})}return i.sort((u,v)=>{var t;if(u.type!==v.type)return u.type==="folder"?-1:1;const g=a==="/"?`/${u.name}`:`${a}/${u.name}`,re=a==="/"?`/${v.name}`:`${a}/${v.name}`,_e=(t=ve.current)==null?void 0:t.tempPath;if(_e){if(g===_e)return-1;if(re===_e)return 1}return u.name.localeCompare(v.name)}),i},ke=async r=>await Fe(l,r),ee=(r,a)=>{if(a.type!=="folder")return a.children;const o=a.children??G.current[r];return o||le.current[r]?o:(U(i=>({...i,[r]:!0})),new Promise(i=>{ke(r).then(u=>{w(v=>({...v,[r]:u??[]})),i(u??[])}).catch(()=>{i([])}).finally(()=>{U(u=>{const v={...u};return delete v[r],v})})}))},Le=(r,a)=>{a.type==="folder"&&(typeof window>"u"||O.current[r]||(O.current[r]=window.setTimeout(()=>{D(o=>o[r]?o:{...o,[r]:!0}),ee(r,a),delete O.current[r]},600)))},te=r=>(U(a=>({...a,[r]:!0})),new Promise(a=>{ke(r).then(o=>{w(i=>({...i,[r]:o??[]})),a(o??[])}).catch(()=>{a([])}).finally(()=>{U(o=>{const i={...o};return delete i[r],i})})})),Be=(r,a,o)=>{D(i=>({...i,[r]:o})),o?ee(r,a):w(i=>{if(i[r]===void 0)return i;const u={...i};return delete u[r],u})},ge=async r=>{if(!r)return;const a=St(r);if(a.length===0)return;D(u=>{const v={...u};for(const g of a)v[g]=!0;return v});let o=[{name:h,type:"folder"}],i="";for(const u of a){const v=o==null?void 0:o.find(re=>he(re,i)===u);if(!v||v.type!=="folder"){i=u,o=[];continue}o=await ee(u,v)??G.current[u],i=u}},xe=(r,a)=>{!r||!a||r===a||(D(o=>{let i=!1;const u={...o};for(const v of Object.keys(o)){const g=We(v,r,a);g&&g!==v&&(u[g]=o[v],delete u[v],i=!0)}return i?u:o}),w(o=>{let i=!1;const u={...o};for(const v of Object.keys(o)){const g=We(v,r,a);g&&g!==v&&(u[g]=o[v],delete u[v],i=!0)}return i?u:o}),z(o=>We(o,r,a)),S(o=>We(o,r,a)))},Ne=()=>{ne(null),j(null),M()},Pe=(r,a=!0)=>{z(r),a&&k(r)},fe=e.useMemo(()=>[{name:h,type:"folder"}],[h]),[$,E]=e.useState(null),[me,de]=e.useState(null),ve=e.useRef(null),b=f?null:me;e.useImperativeHandle(F,()=>({focusPath:(r,a={})=>{if(!r)return;const{select:o=!0,domFocus:i=!0,notify:u=!1}=a;o&&Pe(r,u),S(r),i&&Q(r)},selectPath:r=>{r&&(Pe(r),S(r),Q(r))},getSelectedPath:()=>P,expandToPath:async r=>await ge(r),refresh:async r=>await te(r),remapPath:xe,createFile:async r=>{f||await Ue(r,"file","untitled.php")},createFolder:async r=>{f||await Ue(r,"folder","New Folder")},importFiles:async(r,a)=>{f||await je(r,a)},importDataTransfer:async(r,a)=>{f||await Ge(r,a)}}),[P,te,xe,ge,f]);const T=e.useRef(!1),oe=e.useRef(d??null),ie=e.useRef(d);e.useEffect(()=>{V.current=!1},[h]),e.useEffect(()=>{d&&d!==ie.current?oe.current=d:d||(oe.current=null),ie.current=d},[d]),e.useEffect(()=>{if(!d||T.current)return;T.current=!0;const r=St(d);D(o=>{const i={...o};for(const u of r)i[u]=!0;return i});const a=r[r.length-1]||d;S(a),z(a),ge(d)},[d,ge]),e.useEffect(()=>{const r=oe.current;!r||fe.length===0||(oe.current=null,ge(r))},[fe,ge]),e.useEffect(()=>{if(!Z){if(fe.length>0){const r=he(fe[0]);S(r)}return}b&&b===Z||Q(Z)},[fe,Z,b]),e.useEffect(()=>{if(fe.length===0)return;const r=fe[0];if((r==null?void 0:r.type)!=="folder"||V.current)return;const a=r.name;V.current=!0,D(o=>o[a]?o:{...o,[a]:!0}),!G.current[a]&&!le.current[a]&&ee(a,r)},[fe,ee,h]),e.useEffect(()=>()=>{N.current&&clearTimeout(N.current),M()},[]),e.useEffect(()=>{$&&setTimeout(()=>{const r=document.querySelector('[role="menu"] [role="menuitem"]');r&&typeof r.focus=="function"&&r.focus()},0)},[$]);const[ce,ye]=e.useState(""),Ve=(r,a)=>{if(r.type==="folder")return a;const o=H.dirname(a);return o&&o||"/"},we=(r,a,o)=>{const i=Ve(r,a);return i?o&&H.isParentOf(o,i)?{allowed:!1,state:"invalid",destination:null}:{allowed:!0,state:"valid",destination:i}:{allowed:!1,state:"invalid",destination:null}},Ie=(r,a,o)=>{a.type!=="folder"&&a.type!=="file"||(ne(o),j(null),r.dataTransfer&&(r.dataTransfer.effectAllowed="move",r.dataTransfer.setData("application/x-wp-playground-path",o),r.dataTransfer.setData("text/plain",o)))},tt=()=>{Ne()},He=(r,a,o)=>{const i=we(a,o,J);i.allowed&&a.type==="folder"&&Le(o,a),j(u=>(u==null?void 0:u.path)===o&&u.state===i.state?u:{path:o,state:i.state})},st=(r,a,o)=>{const i=we(a,o,J);i.allowed&&i.destination?(r.preventDefault(),r.dataTransfer&&(r.dataTransfer.dropEffect=J?"move":"copy"),a.type==="folder"&&Le(o,a),j(u=>(u==null?void 0:u.path)===o&&u.state===i.state?u:{path:o,state:i.state})):(r.dataTransfer&&(r.dataTransfer.dropEffect="none"),ae(o),j(u=>(u==null?void 0:u.path)===o&&u.state==="invalid"?u:{path:o,state:"invalid"}))},lt=(r,a,o)=>{ae(o);const i=r.relatedTarget;i&&r.currentTarget.contains(i)||j(u=>(u==null?void 0:u.path)===o?null:u)},wt=async(r,a,o)=>{const i=J,u=we(a,o,i);if(!u.allowed||!u.destination){Ne();return}r.preventDefault(),r.stopPropagation(),ae(o),j(null);try{i?await yt(i,u.destination):await Ge(r.dataTransfer,u.destination)}finally{Ne()}},ct=(r,a,o)=>{s&&(r.preventDefault(),r.stopPropagation(),de(null),E({absPath:o,type:a.type,x:r.clientX,y:r.clientY}))},ze=async(r,a)=>{let o=a,i=0;const u=g=>{const re=g.lastIndexOf(".");return re>0?{stem:g.slice(0,re),ext:g.slice(re)}:{stem:g,ext:""}},v=r==="/"?"":r;for(;await(l==null?void 0:l.fileExists(`${v}/${o}`))||await(l==null?void 0:l.isDir(`${v}/${o}`));){i+=1;const{stem:g,ext:re}=u(a);o=`${g} (${i})${re}`}return o},Ue=async(r,a,o)=>{if(!l)return;let i=r||P||h;try{await l.isDir(i)||(i=H.dirname(i))}catch{i=H.dirname(i)}const u=i,v=await ze(u,o),g=H.joinPaths(u,v);a==="folder"?await l.mkdir(g):await l.writeFile(g,""),ve.current={type:a,tempPath:g},de(g),await te(u),setTimeout(()=>{S(g),Q(g)},0)},Et=async r=>{if(!l)return!1;try{if(await l.fileExists(r))return!0}catch{}try{if(await l.isDir(r))return!0}catch{}return!1},gt=async r=>{if(l)try{await l.mkdir(r)}catch(a){if(!await l.isDir(r).catch(()=>!1))throw a}},yt=async(r,a)=>{if(!l)return;const o=H.basename(r),i=H.joinPaths(a,o);if(i===r||await Et(i))return;const u=H.dirname(r);try{await l.mv(r,i),xe(r,i);const v=We(P,r,i);P&&(P===r||P.startsWith(`${r}/`))&&k(v),S(g=>We(g,r,i)),D(g=>({...g,[a]:!0})),await Promise.all([te(u),te(a)]),z(g=>We(g,r,i)),Q(i)}catch{}},_t=r=>{const a=r;return a.webkitGetAsEntry?a.webkitGetAsEntry():null},bt=r=>new Promise((a,o)=>{r.file(a,o)}),ut=async(r,a)=>{if(!l)return;const o=r.name||"untitled",i=await ze(a,o),u=H.joinPaths(a,i),v=new Uint8Array(await r.arrayBuffer());await l.writeFile(u,v)},qe=async(r,a)=>{const o=await bt(r);await ut(o,a)},rt=async(r,a)=>{const o=await ze(a,r.name||"New Folder"),i=H.joinPaths(a,o);await gt(i);const u=r.createReader(),v=()=>new Promise((g,re)=>{u.readEntries(_e=>g(Array.from(_e)),re)});for(;;){const g=await v();if(!g.length)break;for(const re of g)re.isFile?await qe(re,i):re.isDirectory&&await rt(re,i)}},je=(r,a)=>Ye([],r,a),Ge=(r,a)=>{const i=Array.from(r.items).filter(v=>v.kind==="file").map(v=>_t(v)).filter(v=>!!v),u=Array.from(r.files);return Ye(i,u,a)},Ye=async(r,a,o)=>{if(l){if(r.length>0)for(const i of r)i.isFile?await qe(i,o):i.isDirectory&&await rt(i,o);else for(const i of a)await ut(i,o);await te(o),D(i=>({...i,[o]:!0}))}},ft=async(r,a)=>{if(!l)return;const o=r;E(null);try{a==="folder"?await l.rmdir(o,{recursive:!0}):await l.unlink(o)}catch{}finally{de(null);const i=H.dirname(o);await te(i),P&&(P===o||P.startsWith(`${o}/`))&&k(null)}},Ct=async r=>{if(l)try{const o=await(await l.read(r)).arrayBuffer(),i=new Blob([o]),u=URL.createObjectURL(i),v=document.createElement("a");v.href=u,v.download=H.basename(r)||"download",document.body.appendChild(v),v.click(),document.body.removeChild(v),setTimeout(()=>URL.revokeObjectURL(u),6e4)}catch(a){console.error("Failed to download file",a)}},dt=r=>{var a;if(!me)if(r.key.length===1&&r.key.match(/\S/)){const o=ce+r.key.toLowerCase();if(ye(o),N.current&&clearTimeout(N.current),N.current=setTimeout(()=>{ye("")},1e3),!p.current)return;const i=Array.from(p.current.querySelectorAll(".file-node-button")),u=document.activeElement;let v=0;u&&i.includes(u)&&(v=i.indexOf(u));for(let g=0;g<i.length;g++){const re=(v+g)%i.length,_e=i[re];if((a=_e.textContent)!=null&&a.toLowerCase().trim().startsWith(o)){_e.focus();const t=_e.getAttribute("data-path");t&&S(t);break}}}else ye(""),N.current&&clearTimeout(N.current)},Rt=async(r,a)=>{if(f)return;const o=ve.current,i=(o==null?void 0:o.tempPath)===r,u=H.dirname(r);if(!a||a==="."||a===".."||H.basename(a)!==a){if(i){try{o.type==="folder"?await l.rmdir(r,{recursive:!0}):await l.unlink(r)}catch{}ve.current=null}de(i?null:r);return}let v=H.joinPaths(u,a),g=v;if(g===r){de(null);const c=i&&(o==null?void 0:o.type)==="file";i&&(ve.current=null),setTimeout(()=>{S(g),Q(g),c&&A&&A(g)},0);return}const re=await l.fileExists(g),_e=await l.isDir(g);if((re||_e)&&g!==r)if(i)try{const c=await ze(u==="/"?"/":u,a);v=H.joinPaths(u,c),g=v}catch{}else{de(r);return}let t=(o==null?void 0:o.type)==="folder";try{await l.mv(r,v),o||(t=await l.isDir(v)),t&&xe(r,g),P===r&&k(g),await te(u),S(g),Q(g),i&&!t&&A&&A(g)}catch{if(i)try{(o==null?void 0:o.type)==="folder"?await l.rmdir(r,{recursive:!0}):await l.unlink(r)}catch{}}finally{ve.current=null,de(null)}},mt=async r=>{const a=ve.current;if(!l||(a==null?void 0:a.tempPath)!==r){de(i=>i===r?null:i);return}try{a.type==="folder"?await l.rmdir(r,{recursive:!0}):await l.unlink(r)}catch{}ve.current=null,de(null);const o=H.dirname(r);await te(o),S(o),Q(o)};return e.createElement("div",{onKeyDown:dt,ref:p},e.createElement(X.__experimentalTreeGrid,{className:Re.filePickerTree},fe.map((r,a)=>e.createElement(Ht,{key:r.name,node:r,level:0,position:a+1,setSize:fe.length,expandedNodePaths:_,onToggle:Be,selectedNode:P,focusPath:o=>S(o),focusedNode:Z,selectPath:Pe,generatePath:he,getChildren:pe,onContextMenu:f?void 0:ct,renamingPath:b,onRename:Rt,onRenameCancel:mt,dropIndicator:y,onDragStart:f?void 0:Ie,onDragEnd:f?void 0:tt,onDragEnter:f?void 0:He,onDragOver:f?void 0:st,onDragLeave:f?void 0:lt,onDrop:f?void 0:wt,rootPath:h,onDoubleClickFile:A}))),!f&&$&&e.createElement(X.Popover,{placement:"bottom-start",onClose:()=>E(null),anchor:{getBoundingClientRect:()=>({x:$.x,y:$.y,width:0,height:0,top:$.y,left:$.x,right:$.x,bottom:$.y,toJSON:()=>({})}),ownerDocument:document},noArrow:!0,resize:!1,focusOnMount:"firstElement"},e.createElement(X.NavigableMenu,{role:"menu"},$.type==="folder"&&e.createElement(X.MenuItem,{role:"menuitem",onClick:async()=>{E(null),await Ue($.absPath,"file","untitled.php")}},"Create file"),$.type==="folder"&&e.createElement(X.MenuItem,{role:"menuitem",onClick:async()=>{E(null),await Ue($.absPath,"folder","New Folder")}},"Create directory"),e.createElement(X.MenuItem,{role:"menuitem",onClick:()=>{E(null),de($.absPath)}},"Rename"),$.type==="file"&&e.createElement(X.MenuItem,{role:"menuitem",onClick:async()=>{E(null),await Ct($.absPath)}},"Download"),e.createElement(X.MenuItem,{role:"menuitem",onClick:()=>ft($.absPath,$.type)},"Delete"))))}),Ht=({node:n,level:s,position:f,setSize:l,expandedNodePaths:C,onToggle:d,selectedNode:k,focusPath:A,focusedNode:F,selectPath:h,generatePath:_,getChildren:D,onContextMenu:P,renamingPath:z,onRename:Z,onRenameCancel:S,parentPath:q="",dropIndicator:w,onDragStart:R,onDragEnd:U,onDragEnter:J,onDragOver:ne,onDragLeave:y,onDrop:j,rootPath:O,onDoubleClickFile:V})=>{const p=_(n,q),N=C[p],le=z===p,G=e.useRef(null),[M,ae]=e.useState(n.name),Q=e.useRef(!1),he=(w==null?void 0:w.path)===p,pe=he&&(w==null?void 0:w.state)==="valid",Fe=he&&(w==null?void 0:w.state)==="invalid",ke=!!R&&!le&&p!==O,ee=e.useRef(null),Le={onDragEnter:E=>J==null?void 0:J(E,n,p),onDragOver:E=>ne==null?void 0:ne(E,n,p),onDragLeave:E=>y==null?void 0:y(E,n,p),onDrop:E=>j==null?void 0:j(E,n,p)},te=D(n,p)??[];e.useEffect(()=>{var E;le?(ae(n.name),Q.current=!1,typeof window<"u"&&requestAnimationFrame?requestAnimationFrame(()=>{var me;(me=G.current)==null||me.select()}):(E=G.current)==null||E.select()):Q.current=!1},[le,n.name]);const Be=()=>{n.type==="folder"&&d(p,n,!N)},ge=E=>{var me,de;if(E.key==="ArrowLeft")N?Be():(me=document.querySelector(`[data-path="${CSS.escape(q)}"]`))==null||me.focus(),E.preventDefault(),E.stopPropagation();else if(E.key==="ArrowRight"){if(N){if(te!=null&&te.length){const ve=_(te[0],p);(de=document.querySelector(`[data-path="${CSS.escape(ve)}"]`))==null||de.focus()}}else Be();E.preventDefault(),E.stopPropagation()}else E.key===" "||E.key==="Space"||E.key==="Spacebar"?(n.type==="folder"&&d(p,n,!N),E.preventDefault()):E.key==="Enter"&&(n.type==="folder"?d(p,n,!N):(h(p,!1),A(p),V?V(p):h(p,!0)),E.preventDefault())},xe=E=>{P==null||P(E,n,p)},Ne=E=>{E.preventDefault(),Q.current=!0,Z==null||Z(p,M)},Pe=E=>{if(E.key==="Escape"){E.preventDefault(),E.stopPropagation(),Q.current=!0,S==null||S(p);return}(E.key==="ArrowLeft"||E.key==="ArrowRight"||E.key==="ArrowUp"||E.key==="ArrowDown")&&E.stopPropagation()},fe=()=>{Q.current||S==null||S(p),Q.current=!1},$=()=>{if(n.type==="folder"){Be(),h(p),A(p);return}const E=ee.current!==null;if(E&&ee.current&&clearTimeout(ee.current),ee.current=null,E){V?V(p):h(p,!0);return}h(p,!1),A(p),h(p,!0),ee.current=window.setTimeout(()=>{ee.current=null},300)};return e.useEffect(()=>()=>{ee.current!==null&&typeof window<"u"&&clearTimeout(ee.current)},[]),e.createElement(e.Fragment,null,e.createElement(X.__experimentalTreeGridRow,{level:s,positionInSet:f,setSize:l},e.createElement(X.__experimentalTreeGridCell,null,()=>e.createElement(e.Fragment,null,le?e.createElement("form",{onSubmit:Ne,className:De(Re.fileNodeButton,Re.renaming,"file-node-button",{[Re.selected]:k===p,[Re.focused]:F===p,[Re.dropTarget]:pe,[Re.dropTargetInvalid]:Fe}),"data-path":p,onContextMenu:xe,...Le},e.createElement(Vt,{node:n,isOpen:n.type==="folder"&&N,level:s,hideName:!0}),e.createElement("input",{ref:G,className:Re.renameInput,value:M,onChange:E=>ae(E.target.value),onBlur:fe,onFocus:()=>A(p),onKeyDown:Pe})):e.createElement(X.Button,{...Le,draggable:ke,onDragStart:E=>R==null?void 0:R(E,n,p),onDragEnd:E=>U==null?void 0:U(E,n,p),onClick:$,onKeyDown:ge,onFocus:()=>{A(p)},onContextMenu:xe,className:De(Re.fileNodeButton,"file-node-button",{[Re.selected]:k===p,[Re.focused]:F===p,[Re.dropTarget]:pe,[Re.dropTargetInvalid]:Fe}),"data-path":p,"data-expanded":N?"true":"false"},e.createElement(Vt,{node:n,isOpen:n.type==="folder"&&N,level:s}))))),N&&te&&te.map((E,me)=>e.createElement(Ht,{key:E.name,node:E,level:s+1,position:me+1,setSize:te.length,expandedNodePaths:C,onToggle:d,selectedNode:k,focusPath:A,focusedNode:F,selectPath:h,generatePath:_,getChildren:D,onContextMenu:P,renamingPath:z,onRename:Z,onRenameCancel:S,parentPath:p,dropIndicator:w,onDragStart:R,onDragEnd:U,onDragEnter:J,onDragOver:ne,onDragLeave:y,onDrop:j,rootPath:O,onDoubleClickFile:V})))},Vt=({node:n,level:s,isOpen:f,hideName:l=!1})=>{const C=[];for(let d=0;d<s;d++)C.push("&nbsp;&nbsp;&nbsp;&nbsp;");return e.createElement(e.Fragment,null,e.createElement("span",{"aria-hidden":"true",dangerouslySetInnerHTML:{__html:C.join("")}}),n.type==="folder"?e.createElement(Bt,{width:16,icon:f?pr:hr}):e.createElement("div",{style:{width:16}}," "),e.createElement(Bt,{width:16,icon:n.type==="folder"?zt:$t}),!l&&e.createElement("span",{className:Re.fileName},n.name))},Pr="_control_kp9d9_1",Tr="_browse-label_kp9d9_11",Dr="_path-preview_kp9d9_37",Ar="_modal_kp9d9_43",Fr="_modal-footer_kp9d9_48",Xe={control:Pr,browseLabel:Tr,pathPreview:Dr,modal:Ar,modalFooter:Fr};function Nr({path:n}){if(!n)return e.createElement("div",{className:Xe.pathPreview},e.createElement("i",null,"Select a path"));const s=n.split("/");let f=(s.length>2?"/":"")+s.pop();f.length>10&&(f=f.substring(f.length-10));const l=n.substring(0,n.length-f.length);return e.createElement("div",{className:Xe.pathPreview,"data-content-start":l,"data-content-end":f})}function Ir({value:n="",onChange:s,filesystem:f}){const[l,C]=e.useState(!1),d=()=>C(!0),k=()=>C(!1),[A,F]=e.useState(n||null);function h(_){_==null||_.preventDefault(),s(A||""),k()}return e.createElement(e.Fragment,null,e.createElement(X.Button,{variant:"tertiary",className:Xe.control,onClick:d},e.createElement("span",{className:Xe.browseLabel},"Browse"),e.createElement(Nr,{path:n||""})),l&&e.createElement(X.Modal,{title:"Select a path ",onRequestClose:k,className:Xe.modal},e.createElement("form",{onSubmit:h},e.createElement(Wt,{filesystem:f,initialSelectedPath:n,onSelect:F}),e.createElement("div",{className:Xe.modalFooter},e.createElement(X.Button,{type:"submit",variant:"primary"},"Select Path")))))}const Lr="_container_1h0az_1",Mr="_header_1h0az_9",Br="_filename_1h0az_18",jr="_downloadLink_1h0az_26",Or="_previewArea_1h0az_38",Vr="_imagePreview_1h0az_51",zr="_videoPreview_1h0az_57",$r="_audioPreview_1h0az_64",Wr="_unsupportedMessage_1h0az_68",Hr="_actions_1h0az_74",Me={container:Lr,header:Mr,filename:Br,downloadLink:jr,previewArea:Or,imagePreview:Vr,videoPreview:zr,audioPreview:$r,unsupportedMessage:Wr,actions:Hr},Ur=n=>{if(!n)return{isImage:!1,isVideo:!1,isAudio:!1};const s=n.toLowerCase();return{isImage:s.startsWith("image/"),isVideo:s.startsWith("video/"),isAudio:s.startsWith("audio/")}};function qr({filename:n,mimeType:s,dataUrl:f,downloadUrl:l,showHeader:C=!0}){const{isImage:d,isVideo:k,isAudio:A}=Ur(s),F=C!==!1,h=!!(l&&n),_=()=>h?e.createElement("a",{className:Me.downloadLink,href:l,download:n},"Download"):null,D=()=>d?e.createElement("img",{className:Me.imagePreview,src:f,alt:n||"Preview"}):k?e.createElement("video",{className:Me.videoPreview,controls:!0,preload:"metadata"},e.createElement("source",{src:f,type:s}),"Your browser does not support the video tag."):A?e.createElement("audio",{className:Me.audioPreview,controls:!0},e.createElement("source",{src:f,type:s}),"Your browser does not support the audio tag."):e.createElement("div",{className:Me.unsupportedMessage},e.createElement("p",null,"Preview unavailable for this file type."),h?e.createElement("p",null,_()):e.createElement("p",null,"Download the file to inspect its contents."));return e.createElement("div",{className:Me.container},F&&e.createElement("div",{className:Me.header},e.createElement("span",{className:Me.filename,title:n},n),_()),e.createElement("div",{className:Me.previewArea},D()),!F&&h&&e.createElement("div",{className:Me.actions},_()))}const kt=new Map,Gr=async n=>{var C;if(!n)return it.php();const s=(C=n.split(".").pop())==null?void 0:C.toLowerCase();if(!s||s==="php")return it.php();const f=n;if(kt.has(f))return kt.get(f);let l;switch(s){case"css":l=await import("@codemirror/lang-css").then(d=>d.css());break;case"js":case"jsx":case"ts":case"tsx":l=await import("@codemirror/lang-javascript").then(d=>d.javascript({jsx:s==="jsx"||s==="tsx",typescript:s==="ts"||s==="tsx"}));break;case"json":l=await import("@codemirror/lang-json").then(d=>d.json());break;case"html":case"htm":l=await import("@codemirror/lang-html").then(d=>d.html());break;case"md":case"markdown":l=await import("@codemirror/lang-markdown").then(d=>d.markdown());break;default:l=it.php()}return kt.set(f,l),l};class Yr{constructor(s){this.view=s,this.handleClick=this.handleClick.bind(this),this.view.dom.addEventListener("mousedown",this.handleClick)}handleClick(s){const f=s.target;if((f.classList.contains("cm-scroller")||f.classList.contains("cm-content"))&&this.view.posAtCoords({x:s.clientX,y:s.clientY})===null){const C=this.view.state.doc.length,d=Oe.EditorSelection.create([Oe.EditorSelection.range(C,C)]);this.view.dispatch({selection:d,effects:Se.EditorView.scrollIntoView(C,{y:"center"})}),this.view.focus(),s.preventDefault()}}destroy(){this.view.dom.removeEventListener("mousedown",this.handleClick)}}const Zr=Se.ViewPlugin.define(n=>new Yr(n)),At=e.forwardRef(function({code:s,onChange:f,currentPath:l,className:C,onSaveShortcut:d,readOnly:k=!1,additionalExtensions:A},F){const h=e.useRef(null),_=e.useRef(null),D=e.useRef(new Oe.Compartment),P=e.useRef(new Oe.Compartment),z=e.useRef(new Oe.Compartment),Z=e.useRef(s),S=e.useRef(f),q=e.useRef(!1);return e.useImperativeHandle(F,()=>({focus:()=>{var w;(w=_.current)==null||w.focus()},blur:()=>{const w=_.current;w&&w.contentDOM.blur()},getCursorPosition:()=>_.current?_.current.state.selection.main.anchor:null,setCursorPosition:w=>{if(!_.current)return;const R=Math.min(w,_.current.state.doc.length),U=Oe.EditorSelection.create([Oe.EditorSelection.range(R,R)]);_.current.dispatch({selection:U,scrollIntoView:!0})}})),e.useEffect(()=>{Z.current=s},[s]),e.useEffect(()=>{S.current=f},[f]),e.useEffect(()=>{if(_.current)return;const w=h.current;if(!w)return;const R=Oe.EditorState.create({doc:s,extensions:[z.current.of(A??[]),Se.lineNumbers(),Se.highlightActiveLineGutter(),Se.highlightActiveLine(),Ke.foldGutter(),Se.dropCursor(),Se.rectangularSelection(),Se.crosshairCursor(),Zr,D.current.of(it.php()),P.current.of(Se.EditorView.editable.of(!k)),Ke.syntaxHighlighting(Ke.defaultHighlightStyle),Ke.indentOnInput(),Ke.bracketMatching(),ht.closeBrackets(),pt.history(),It.highlightSelectionMatches(),ht.autocompletion(),Se.EditorView.updateListener.of(J=>{if(!J.docChanged)return;const ne=J.state.doc.toString();ne!==Z.current&&(Z.current=ne,S.current(ne))}),Se.keymap.of([{key:"Mod-s",preventDefault:!0,run:()=>(d==null||d(),!0)},...ht.closeBracketsKeymap,...ht.completionKeymap,...Ke.foldKeymap,...It.searchKeymap,...pt.historyKeymap,...pt.defaultKeymap,pt.indentWithTab])]}),U=new Se.EditorView({state:R,parent:w});return _.current=U,()=>{U.destroy(),_.current=null}},[]),e.useEffect(()=>{const w=_.current;w&&w.dispatch({effects:z.current.reconfigure(A??[])})},[A]),e.useEffect(()=>{const w=_.current;if(!w)return;const R=w.state.doc.toString();s!==R&&w.dispatch({changes:{from:0,to:w.state.doc.length,insert:s}})},[s]),e.useEffect(()=>{var ne;const w=_.current;if(!w)return;const R=(ne=l==null?void 0:l.split(".").pop())==null?void 0:ne.toLowerCase();(!R||R==="php")&&w.dispatch({effects:D.current.reconfigure(it.php())});let J=!1;return Gr(l).then(y=>{J||!_.current||_.current.dispatch({effects:D.current.reconfigure(y)})}),()=>{J=!0}},[l]),e.useEffect(()=>{const w=_.current;w&&(w.hasFocus&&(q.current=!0),w.dispatch({effects:P.current.reconfigure(Se.EditorView.editable.of(!k))}))},[k]),e.useLayoutEffect(()=>{const w=_.current;w&&q.current&&!w.hasFocus&&(w.focus(),q.current=!1)},[l,k]),e.createElement("div",{ref:h,className:C})});At.displayName="CodeEditor";const Kr="_fileExplorerContainer_8eol9_1",Jr="_dropActive_8eol9_9",Xr="_fileExplorerHeader_8eol9_14",Qr="_fileExplorerTitle_8eol9_23",en="_fileExplorerActions_8eol9_31",tn="_fileExplorerButton_8eol9_37",rn="_fileExplorerIconButton_8eol9_67",nn="_fileExplorerTree_8eol9_79",an="_dockPresentation_8eol9_88",on="_fileExplorerUploadButton_8eol9_148",Ce={fileExplorerContainer:Kr,dropActive:Jr,fileExplorerHeader:Xr,fileExplorerTitle:Qr,fileExplorerActions:en,fileExplorerButton:tn,fileExplorerIconButton:rn,fileExplorerTree:nn,dockPresentation:an,fileExplorerUploadButton:on},Ft=1024*1024,Ut=n=>{const s=n.byteLength;for(let f=0;f<Math.min(s,4096);f++)if(n[f]===0)return!0;try{return new TextDecoder("utf-8",{fatal:!0}).decode(n),!1}catch{return!0}},Dt=(n,s)=>{const f=new Blob([n]),l=URL.createObjectURL(f);return setTimeout(()=>URL.revokeObjectURL(l),6e4),{url:l,filename:s}};async function sn(n,s=Ft){const f=ln(n);if(f!==void 0&&f>s)return{type:"too-large"};if(typeof n.stream=="function")return cn(n,s);const l=new Uint8Array(await n.arrayBuffer());return l.byteLength>s?{type:"too-large"}:{type:"inline",data:l}}function ln(n){if(typeof n.filesize=="number")return n.filesize;if(typeof n.size=="number")return n.size}async function cn(n,s){const f=n.stream().getReader(),l=[];let C=0;try{for(;;){const{done:d,value:k}=await f.read();if(d)return{type:"inline",data:H.concatUint8Arrays(l)};if(k){if(C+=k.byteLength,C>s)return await f.cancel().catch(()=>{}),{type:"too-large"};l.push(k)}}}finally{f.releaseLock()}}const qt=n=>{const s=n.split(".").pop();return Mt[s]||Mt._default},Gt=n=>n.startsWith("image/")||n.startsWith("video/")||n.startsWith("audio/");function Yt({filesystem:n,currentPath:s,selectedDirPath:f,setSelectedDirPath:l,onFileOpened:C,onSelectionCleared:d,onShowMessage:k,documentRoot:A,readOnly:F=!1,title:h="Files",showBinaryPreviewHeader:_=!0,dockPresentation:D=!1,useWordPressTooltips:P=!1}){const z=e.useRef(null),Z=e.useRef(null),S=e.useMemo(()=>s?H.dirname(s):f??A,[s,A]),[q,w]=e.useState(!1);e.useEffect(()=>{!s||!z.current||(l(H.dirname(s)),z.current.focusPath(s,{select:!0,domFocus:!1,notify:!1}),z.current.expandToPath(s))},[s,l]);const R=async(y,j)=>{try{const O=await n.read(y),V=await sn(O);if(V.type==="too-large"){const G=Ft/1024/1024;if(!D){await k(y,e.createElement(e.Fragment,null,e.createElement("p",null,`File too large to open (>${G}MB).`),e.createElement("p",null,"Open or download it outside the in-browser editor.")));return}const M=H.basename(y)||"download";await k(y,e.createElement(e.Fragment,null,e.createElement("p",null,`File too large to open (>${G}MB).`),e.createElement("p",null,e.createElement(X.Button,{type:"button",variant:"link",onClick:()=>{U(y,M)}},"Download ",M))));return}const p=V.data,N=H.basename(y)||"download";if(Ut(p)){const G=qt(N),{url:M,filename:ae}=Dt(p,N);if(Gt(G)){const Q=new Blob([p],{type:G}),he=URL.createObjectURL(Q);await k(y,e.createElement(Lt.BinaryFilePreview,{filename:ae,mimeType:G,dataUrl:he,downloadUrl:M,showHeader:_}));return}await k(y,e.createElement(e.Fragment,null,e.createElement("p",null,"Binary file. Cannot be edited."),e.createElement("p",null,e.createElement("a",{href:M,download:ae},"Download ",ae))));return}const le=new TextDecoder("utf-8").decode(p);await C(y,le,j)}catch(O){Je.logger.error("Could not open file",O),await k(null,"Could not open file.")}},U=async(y,j)=>{try{const O=await n.read(y),V=new Uint8Array(await O.arrayBuffer()),{url:p}=Dt(V,j),N=document.createElement("a");N.href=p,N.download=j,document.body.appendChild(N),N.click(),document.body.removeChild(N)}catch(O){Je.logger.error("Could not download file",O),await k(y,"Could not download file.")}},J=y=>{var O;const j=Array.from(y.target.files??[]);y.target.value="",j.length!==0&&((O=z.current)==null||O.importFiles(j,f??A).catch(V=>Je.logger.error("Failed to import files",V)))},ne=y=>{var j;y.dataTransfer.types.includes("application/x-wp-playground-path")||(y.preventDefault(),!F&&((j=z.current)==null||j.importDataTransfer(y.dataTransfer,f??A).catch(O=>Je.logger.error("Failed to import dropped files",O))))};return e.createElement("div",{className:De(Ce.fileExplorerContainer,{[Ce.dropActive]:q,[Ce.dockPresentation]:D}),onDragEnter:y=>{y.dataTransfer.types.includes("application/x-wp-playground-path")||(y.preventDefault(),F||w(!0))},onDragOver:y=>{y.dataTransfer.types.includes("application/x-wp-playground-path")||(y.preventDefault(),y.dataTransfer.dropEffect=F?"none":"copy")},onDragLeave:y=>{const j=y.relatedTarget;(!j||!y.currentTarget.contains(j))&&w(!1)},onDropCapture:()=>w(!1),onDrop:ne},e.createElement("div",{className:Ce.fileExplorerHeader},e.createElement("span",{className:Ce.fileExplorerTitle},h),F?null:e.createElement("div",{className:Ce.fileExplorerActions},e.createElement(Pt,{label:"Create new file",useWordPressTooltip:P},e.createElement("button",{className:De(Ce.fileExplorerButton,Ce.fileExplorerIconButton),type:"button",onClick:()=>{z.current&&z.current.createFile()},"aria-label":"Create new file",title:P?void 0:"Create new file"},D?e.createElement(un,null):e.createElement(X.Icon,{icon:wr,size:20}))),e.createElement(Pt,{label:"Create new folder",useWordPressTooltip:P},e.createElement("button",{className:De(Ce.fileExplorerButton,Ce.fileExplorerIconButton),type:"button",onClick:()=>{z.current&&z.current.createFolder()},"aria-label":"Create new folder",title:P?void 0:"Create new folder"},D?e.createElement(fn,null):e.createElement(X.Icon,{icon:vr,size:20}))),e.createElement(Pt,{label:"Upload files",useWordPressTooltip:P},e.createElement("button",{className:De(Ce.fileExplorerButton,Ce.fileExplorerIconButton,Ce.fileExplorerUploadButton),type:"button",onClick:()=>{var y;return(y=Z.current)==null?void 0:y.click()},"aria-label":"Upload files",title:P?void 0:"Upload files"},e.createElement(X.Icon,{icon:Er,size:D?16:20}))),e.createElement("input",{ref:Z,type:"file",multiple:!0,style:{display:"none"},onChange:J}))),e.createElement("div",{className:Ce.fileExplorerTree},e.createElement(Lt.FilePickerTree,{ref:z,readOnly:F,filesystem:n,root:A,initialSelectedPath:S,onSelect:async y=>{if(!y){l(A),await d();return}try{if(await n.isDir(y)){l(y);return}}catch{}l(H.dirname(y)),await R(y,!1)},onDoubleClickFile:async y=>{await R(y,!0)}})))}function Pt({label:n,useWordPressTooltip:s,children:f}){return s?e.createElement(X.Tooltip,{text:n,delay:0,placement:"top"},f):f}const un=()=>e.createElement("svg",{viewBox:"0 0 32 32",width:"24",height:"24","aria-hidden":"true"},e.createElement("path",{d:"M11 6h7l5 5v12a2 2 0 0 1-2 2H11a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinejoin:"round"}),e.createElement("path",{d:"M18 6v5h5",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinejoin:"round"}),e.createElement("g",{transform:"translate(19 19)"},e.createElement("circle",{cx:"5",cy:"5",r:"8",fill:"var(--paper-2, #fff)"}),e.createElement("path",{d:"M5 1.5v7M1.5 5h7",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"}))),fn=()=>e.createElement("svg",{viewBox:"0 0 32 32",width:"24",height:"24","aria-hidden":"true"},e.createElement("path",{d:"M6 9h7l3 3h10v11a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2V9z",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinejoin:"round"}),e.createElement("path",{d:"M6 9V8a2 2 0 0 1 2-2h5l3 3",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinejoin:"round"}),e.createElement("g",{transform:"translate(19 19)"},e.createElement("circle",{cx:"5",cy:"5",r:"8",fill:"var(--paper-2, #fff)"}),e.createElement("path",{d:"M5 1.5v7M1.5 5h7",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"}))),dn="_container_18l2z_1",mn="_content_18l2z_9",pn="_sidebarWrapper_18l2z_17",hn="_editorWrapper_18l2z_28",vn="_editorHeader_18l2z_37",wn="_editorPath_18l2z_49",En="_editorPathDirectory_18l2z_61",gn="_editorPathFilename_18l2z_68",yn="_editorPathPlaceholder_18l2z_73",_n="_editorPathPortaled_18l2z_77",bn="_editorHeaderActions_18l2z_83",Cn="_saveStatus_18l2z_90",Rn="_saveStatusSaving_18l2z_97",xn="_saveStatusPending_18l2z_98",Sn="_saveStatusError_18l2z_102",kn="_editor_18l2z_28",Pn="_placeholder_18l2z_124",Tn="_messageArea_18l2z_135",Dn="_mobileToggle_18l2z_171",An="_mobileOverlay_18l2z_175",Fn="_dockPresentation_18l2z_181",Nn="_dockDirtyIndicator_18l2z_205",In="_dockSaveButton_18l2z_214",Ln="_sidebarOpen_18l2z_269",Mn="_editorHeaderPathPortaled_18l2z_367",K={container:dn,content:mn,sidebarWrapper:pn,editorWrapper:hn,editorHeader:vn,editorPath:wn,editorPathDirectory:En,editorPathFilename:gn,editorPathPlaceholder:yn,editorPathPortaled:_n,editorHeaderActions:bn,saveStatus:Cn,saveStatusSaving:Rn,saveStatusPending:xn,saveStatusError:Sn,editor:kn,placeholder:Pn,messageArea:Tn,mobileToggle:Dn,mobileOverlay:An,dockPresentation:Fn,dockDirtyIndicator:Nn,dockSaveButton:In,sidebarOpen:Ln,editorHeaderPathPortaled:Mn},Bn=1500,jn=700,On=1e3,L={IDLE:"idle",PENDING:"pending",SAVING:"saving",SAVED:"saved",ERROR:"error"};function Vn({filesystem:n,isVisible:s=!0,documentRoot:f,initialPath:l=null,placeholderText:C="Select a file to view or edit its contents.",dockPresentation:d=!1,mobileHeaderTarget:k=null}){const[A,F]=e.useState(f),[h,_]=e.useState(null),[D,P]=e.useState(""),[z,Z]=e.useState(!0),[S,q]=e.useState(L.IDLE),[w,R]=e.useState(null),[U,J]=e.useState("idle"),[ne,y]=e.useState(!1),[j,O]=e.useState(null),V=e.useRef(null),p=e.useRef(null),N=e.useRef(!1),le=e.useRef(h),G=e.useRef(n),M=e.useRef(null),ae=e.useRef(null),Q=e.useRef(new WeakMap),he=e.useRef(!0),pe=e.useRef(new Map),Fe=e.useRef(!1);G.current=n,e.useEffect(()=>{le.current=h},[h]);const ke=e.useCallback(async b=>{const{filesystem:T,path:oe,content:ie}=b,ce=ae.current===b,ye=Q.current,we=(ye.get(T)??Promise.resolve()).catch(()=>{}).then(()=>T.writeFile(oe,ie));ye.set(T,we);let Ie=!1;try{await we}catch(He){Ie=!0,Je.logger.error("Failed to save file",He)}const tt=he.current&&ye.get(T)===we&&G.current===T&&le.current===oe&&M.current===null;ye.get(T)===we&&ye.delete(T),ae.current===b&&(ae.current=null),tt&&(q(Ie?L.ERROR:L.SAVED),R(Ie?"Could not save changes. Try again.":null),ce&&J(Ie?"idle":"saved"))},[]),ee=e.useCallback(()=>{const b=M.current;b&&(p.current!==null&&(window.clearTimeout(p.current),p.current=null),M.current=null,ke(b))},[ke]);e.useEffect(()=>(he.current=!0,()=>{he.current=!1}),[]),e.useEffect(()=>()=>{var b;((b=M.current)==null?void 0:b.filesystem)===n&&ee()},[f,n,ee]),e.useEffect(()=>{N.current=!0,F(f),P(""),_(null),Z(!0),q(L.IDLE),R(null),y(!1),O(null),pe.current.clear(),Fe.current=!1},[f,n]),e.useEffect(()=>{if(!n||!l||Fe.current)return;let b=!1;return(async()=>{try{if(await n.fileExists(l)&&!b){const ie=await n.readFileAsText(l);if(b)return;N.current=!0,_(l),P(ie),Z(!1),q(L.IDLE),R(null),setTimeout(()=>{var ce;(ce=V.current)==null||ce.focus()},100)}}catch(oe){Je.logger.debug("Could not auto-open initial path:",oe)}finally{b||(Fe.current=!0)}})(),()=>{b=!0}},[n,l]),e.useEffect(()=>{if(!n||!h){p.current!==null&&(window.clearTimeout(p.current),p.current=null),M.current=null,h||q(L.IDLE);return}if(N.current){N.current=!1,M.current=null;return}p.current!==null&&(window.clearTimeout(p.current),p.current=null),q(L.PENDING);const b={filesystem:n,path:h,content:D};M.current=b;const T=window.setTimeout(()=>{M.current===b&&(p.current=null,M.current=null,q(L.SAVING),ke(b))},Bn);return p.current=T,()=>{p.current===T&&(window.clearTimeout(T),p.current=null)}},[D,h,n,ke]),e.useEffect(()=>{if(S!==L.SAVED)return;const b=window.setTimeout(()=>{q(T=>T===L.SAVED?L.IDLE:T)},2e3);return()=>window.clearTimeout(b)},[S]),e.useEffect(()=>{U==="idle"||S===L.SAVING||S===L.SAVED||J("idle")},[U,S]),e.useEffect(()=>{if(U!=="saved")return;const b=window.setTimeout(()=>J("idle"),On);return()=>window.clearTimeout(b)},[U]),e.useEffect(()=>{if(U!=="waiting")return;const b=window.setTimeout(()=>J(T=>T==="waiting"?"saving":T),jn);return()=>window.clearTimeout(b)},[U]);const Le=e.useCallback(async(b,T,oe=!0)=>{var ce;const ie=(ce=V.current)==null?void 0:ce.getCursorPosition();ie!=null&&le.current&&pe.current.set(le.current,ie),N.current=!0,_(b),P(T),O(null),Z(!1),q(L.IDLE),R(null),y(!1),setTimeout(()=>{var Ve,we,Ie;const ye=pe.current.get(b);ye!==void 0&&((Ve=V.current)==null||Ve.setCursorPosition(ye)),oe?(we=V.current)==null||we.focus():(Ie=V.current)==null||Ie.blur()},50)},[]);e.useEffect(()=>{var oe;if(!h)return;const b=setInterval(()=>{var ce;const ie=(ce=V.current)==null?void 0:ce.getCursorPosition();ie!=null&&pe.current.set(h,ie)},1e3),T=(oe=V.current)==null?void 0:oe.getCursorPosition();return T!=null&&pe.current.set(h,T),()=>{var ce;clearInterval(b);const ie=(ce=V.current)==null?void 0:ce.getCursorPosition();ie!=null&&pe.current.set(h,ie)}},[h]),e.useEffect(()=>{if(!s||!h)return;const b=setTimeout(()=>{var oe;const T=pe.current.get(h);T!==void 0&&((oe=V.current)==null||oe.setCursorPosition(T))},100);return()=>clearTimeout(b)},[s,h]);const te=e.useCallback(async()=>{var T;const b=(T=V.current)==null?void 0:T.getCursorPosition();b!=null&&le.current&&pe.current.set(le.current,b),N.current=!0,_(null),P(""),O(null),Z(!0),q(L.IDLE),R(null)},[]),Be=e.useCallback(async(b,T)=>{N.current=!0,_(null),typeof T=="string"?(P(T),O(null)):(P(""),O(T)),Z(!0),q(L.IDLE),R(null),y(!1)},[]),ge=e.useCallback(()=>{M.current&&(ae.current=M.current,J("waiting"),q(L.SAVING),ee())},[ee]),xe=e.useCallback(()=>{!M.current&&S===L.ERROR&&n&&h&&(M.current={filesystem:n,path:h,content:D}),M.current&&(R(null),ge())},[D,h,n,ge,S]),Ne=zn(S,w),Pe=$n(S,K),fe=Wn(S);let $="Save";S===L.ERROR?$="Retry":S===L.SAVED&&U==="saved"?$="Saved":S===L.SAVING&&U==="saving"&&($="Saving…");const E=S===L.PENDING||S===L.SAVING||S===L.ERROR;if(!n)return e.createElement("div",{className:De(K.container,{[K.dockPresentation]:d})},e.createElement("div",{className:K.placeholder},C));const me=h?H.dirname(h):null,de=h?H.basename(h):null,ve=e.createElement("div",{className:De(K.editorPath,{[K.editorPathPlaceholder]:!(h!=null&&h.length),[K.editorPathPortaled]:k}),title:h??void 0},me&&de?e.createElement(e.Fragment,null,e.createElement("span",{className:K.editorPathDirectory},me==="/"?"":me),e.createElement("span",{className:K.editorPathFilename},"/",de)):`Browse files under ${f}`);return e.createElement("div",{className:De(K.container,{[K.dockPresentation]:d})},e.createElement("div",{className:De(K.content,{[K.sidebarOpen]:ne})},e.createElement("div",{className:K.mobileOverlay,onClick:()=>y(!1)}),e.createElement("aside",{className:K.sidebarWrapper},e.createElement(Yt,{filesystem:n,currentPath:h,selectedDirPath:A,setSelectedDirPath:F,onFileOpened:Le,onSelectionCleared:te,onShowMessage:Be,documentRoot:f,dockPresentation:d,useWordPressTooltips:d})),e.createElement("section",{className:K.editorWrapper},e.createElement("div",{className:De(K.editorHeader,{[K.editorHeaderPathPortaled]:k})},e.createElement(X.Button,{className:K.mobileToggle,variant:"secondary",onClick:()=>y(b=>!b)},ne?"Hide files":"Browse files"),k?ar.createPortal(ve,k):ve,d&&!z&&h?e.createElement("div",{className:K.editorHeaderActions},E?e.createElement("span",{className:K.dockDirtyIndicator,"aria-hidden":"true"}):null,e.createElement(X.Tooltip,{text:fe,placement:"top"},e.createElement(X.Button,{variant:"secondary",className:K.dockSaveButton,isDestructive:S===L.ERROR,onClick:xe},$))):d?null:e.createElement("div",{className:De(K.saveStatus,Pe)},Ne),d&&!z&&h?e.createElement(X.VisuallyHidden,{role:"status","aria-live":"polite"},fe):null),w?e.createElement("div",{style:{padding:"8px 16px"}},e.createElement(X.Notice,{status:"error",isDismissible:!1},w)):null,h||D||j?j?e.createElement("div",{className:K.messageArea},j):e.createElement(At,{ref:V,code:D,onChange:P,currentPath:h,className:K.editor,onSaveShortcut:ge,readOnly:z}):e.createElement("div",{className:K.placeholder},C))))}function zn(n,s){switch(n){case L.PENDING:case L.SAVING:return"Saving…";case L.SAVED:return"Saved";case L.ERROR:return s??"Save failed";default:return""}}function $n(n,s){switch(n){case L.PENDING:return s.saveStatusPending;case L.SAVING:return s.saveStatusSaving;case L.ERROR:return s.saveStatusError;default:return}}function Wn(n){switch(n){case L.PENDING:return"Unsaved changes. Click to save now.";case L.SAVING:return"Saving changes…";case L.ERROR:return"Saving failed. Click to retry.";default:return"All changes saved."}}exports.BinaryFilePreview=qr;exports.ClockIcon=lr;exports.CodeEditor=At;exports.FileExplorerSidebar=Yt;exports.FilePickerControl=Ir;exports.FilePickerTree=Wt;exports.MAX_INLINE_FILE_BYTES=Ft;exports.PlaygroundFileEditor=Vn;exports.SiteManagerIcon=fr;exports.WordPressIcon=sr;exports.createDownloadUrl=Dt;exports.file=$t;exports.folder=zt;exports.getLogoDataURL=ur;exports.getMimeType=qt;exports.isPreviewableBinary=Gt;exports.layout=cr;exports.playgroundLogo=or;exports.seemsLikeBinary=Ut;exports.temporaryStorage=ir;
30
+ <%s key={someKey} {...props} />`,Rt,We,Zt,We),i[We+Rt]=!0}}return t===l?o(ce):a(ce),ce}}function v(t,c,m){return u(t,c,m,!0)}function g(t,c,m){return u(t,c,m,!1)}var ne=g,be=v;ot.Fragment=l,ot.jsx=ne,ot.jsxs=be}()),ot}process.env.NODE_ENV==="production"?Tt.exports=dr():Tt.exports=mr();var Ae=Tt.exports,Qe=n=>vt.createElement("path",n),et=vt.forwardRef(({className:n,isPressed:s,...f},l)=>{const C={...f,className:nr(n,{"is-pressed":s})||void 0,"aria-hidden":!0,focusable:!1};return Ae.jsx("svg",{...C,ref:l})});et.displayName="SVG";const pr=Ae.jsx(et,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:Ae.jsx(Qe,{d:"M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z"})}),hr=Ae.jsx(et,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:Ae.jsx(Qe,{d:"M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z"})}),vr=Ae.jsx(et,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:Ae.jsx(Qe,{fillRule:"evenodd",clipRule:"evenodd",d:"M12.848 8a1 1 0 0 1-.914-.594l-.723-1.63a.5.5 0 0 0-.447-.276H5a.5.5 0 0 0-.5.5v11.5a.5.5 0 0 0 .5.5h14a.5.5 0 0 0 .5-.5v-9A.5.5 0 0 0 19 8h-6.152Zm.612-1.5a.5.5 0 0 1-.462-.31l-.445-1.084A2 2 0 0 0 10.763 4H5a2 2 0 0 0-2 2v11.5a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2h-5.54Z"})}),wr=Ae.jsxs(et,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:[Ae.jsx(Qe,{d:"M15.5 7.5h-7V9h7V7.5Zm-7 3.5h7v1.5h-7V11Zm7 3.5h-7V16h7v-1.5Z"}),Ae.jsx(Qe,{d:"M17 4H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2ZM7 5.5h10a.5.5 0 0 1 .5.5v12a.5.5 0 0 1-.5.5H7a.5.5 0 0 1-.5-.5V6a.5.5 0 0 1 .5-.5Z"})]}),Er=Ae.jsx(et,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:Ae.jsx(Qe,{d:"M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z"})}),gr="_file-picker-tree_ad9od_1",yr="_file-node-button_ad9od_17",_r="_selected_ad9od_56",br="_focused_ad9od_75",Cr="_dropTarget_ad9od_83",xr="_dropTargetInvalid_ad9od_95",Rr="_renaming_ad9od_104",Sr="_renameInput_ad9od_109",kr="_file-name_ad9od_124",xe={filePickerTree:gr,fileNodeButton:yr,selected:_r,focused:br,dropTarget:Cr,dropTargetInvalid:xr,renaming:Rr,renameInput:Sr,fileName:kr};function St(n){if(!n)return[];const s=U.normalizePath(n),f=s.startsWith("/"),l=s.split("/").filter(Boolean),C=[];let d=f?"/":"";f&&C.push("/");for(const k of l)!d||d==="/"?d=d==="/"?`/${k}`:k:d=`${d}/${k}`,C.push(d);return C}function He(n,s,f){return n&&(n===s?f:n.startsWith(s==="/"?"/":`${s}/`)?f+n.slice(s.length):n)}const Ht=e.forwardRef(function({withContextMenu:s=!0,readOnly:f=!1,filesystem:l,root:C="/wordpress",initialSelectedPath:d,onSelect:k=()=>{},onDoubleClickFile:D},A){const h=e.useMemo(()=>U.joinPaths("/",C||"/"),[C]),[_,N]=e.useState(()=>{if(!d)return{};const r={};for(const a of St(d))r[a]=!0;return r}),[T,Y]=e.useState(()=>d??null),[B,R]=e.useState(()=>d??null),[z,y]=e.useState({}),[x,H]=e.useState({}),[K,ae]=e.useState(null),[fe,E]=e.useState(null),V=e.useRef({}),F=e.useRef(!1),p=e.useRef(null),j=e.useRef(null),q=e.useRef(x),ee=e.useRef(z),L=()=>{for(const r of Object.keys(V.current))clearTimeout(V.current[r]),delete V.current[r]},Q=r=>{const a=V.current[r];a&&(clearTimeout(a),delete V.current[r])};e.useEffect(()=>{q.current=x},[x]),e.useEffect(()=>{ee.current=z},[z]);const J=r=>{var o;const a=(o=p.current)==null?void 0:o.querySelector(`[data-path="${CSS.escape(r)}"]`);a&&typeof a.focus=="function"&&(a.focus(),a.scrollIntoView({behavior:"smooth",block:"nearest"}))},he=(r,a="")=>a?U.joinPaths(a,r.name):U.joinPaths("/",r.name),de=(r,a)=>r.children?r.children:z[a],Fe=async(r,a)=>{const o=await r.listFiles(a),i=[];for(const u of o){const v=a==="/"?`/${u}`:`${a}/${u}`,g=await r.isDir(v);i.push({name:u,type:g?"folder":"file"})}return i.sort((u,v)=>{var t;if(u.type!==v.type)return u.type==="folder"?-1:1;const g=a==="/"?`/${u.name}`:`${a}/${u.name}`,ne=a==="/"?`/${v.name}`:`${a}/${v.name}`,be=(t=ve.current)==null?void 0:t.tempPath;if(be){if(g===be)return-1;if(ne===be)return 1}return u.name.localeCompare(v.name)}),i},ke=async r=>await Fe(l,r),te=(r,a)=>{if(a.type!=="folder")return a.children;const o=a.children??ee.current[r];return o||q.current[r]?o:(H(i=>({...i,[r]:!0})),new Promise(i=>{ke(r).then(u=>{y(v=>({...v,[r]:u??[]})),i(u??[])}).catch(()=>{i([])}).finally(()=>{H(u=>{const v={...u};return delete v[r],v})})}))},Le=(r,a)=>{a.type==="folder"&&(typeof window>"u"||V.current[r]||(V.current[r]=window.setTimeout(()=>{N(o=>o[r]?o:{...o,[r]:!0}),te(r,a),delete V.current[r]},600)))},re=r=>(H(a=>({...a,[r]:!0})),new Promise(a=>{ke(r).then(o=>{y(i=>({...i,[r]:o??[]})),a(o??[])}).catch(()=>{a([])}).finally(()=>{H(o=>{const i={...o};return delete i[r],i})})})),Be=(r,a,o)=>{N(i=>({...i,[r]:o})),o?te(r,a):y(i=>{if(i[r]===void 0)return i;const u={...i};return delete u[r],u})},ye=async r=>{if(!r)return;const a=St(r);if(a.length===0)return;N(u=>{const v={...u};for(const g of a)v[g]=!0;return v});let o=[{name:h,type:"folder"}],i="";for(const u of a){const v=o==null?void 0:o.find(ne=>he(ne,i)===u);if(!v||v.type!=="folder"){i=u,o=[];continue}o=await te(u,v)??ee.current[u],i=u}},Re=(r,a)=>{!r||!a||r===a||(N(o=>{let i=!1;const u={...o};for(const v of Object.keys(o)){const g=He(v,r,a);g&&g!==v&&(u[g]=o[v],delete u[v],i=!0)}return i?u:o}),y(o=>{let i=!1;const u={...o};for(const v of Object.keys(o)){const g=He(v,r,a);g&&g!==v&&(u[g]=o[v],delete u[v],i=!0)}return i?u:o}),Y(o=>He(o,r,a)),R(o=>He(o,r,a)))},Ne=()=>{ae(null),E(null),L()},Pe=(r,a=!0)=>{Y(r),a&&k(r)},ue=e.useMemo(()=>[{name:h,type:"folder"}],[h]),[$,w]=e.useState(null),[pe,me]=e.useState(null),ve=e.useRef(null),b=f?null:pe;e.useImperativeHandle(A,()=>({focusPath:(r,a={})=>{if(!r)return;const{select:o=!0,domFocus:i=!0,notify:u=!1}=a;o&&Pe(r,u),R(r),i&&J(r)},selectPath:r=>{r&&(Pe(r),R(r),J(r))},getSelectedPath:()=>T,expandToPath:async r=>await ye(r),refresh:async r=>await re(r),remapPath:Re,createFile:async r=>{f||await ze(r,"file","untitled.php")},createFolder:async r=>{f||await ze(r,"folder","New Folder")},importFiles:async(r,a)=>{f||await je(r,a)},importDataTransfer:async(r,a)=>{f||await Ge(r,a)}}),[T,re,Re,ye,f]);const P=e.useRef(!1),oe=e.useRef(d??null),ie=e.useRef(d);e.useEffect(()=>{F.current=!1},[h]),e.useEffect(()=>{d&&d!==ie.current?oe.current=d:d||(oe.current=null),ie.current=d},[d]),e.useEffect(()=>{if(!d||P.current)return;P.current=!0;const r=St(d);N(o=>{const i={...o};for(const u of r)i[u]=!0;return i});const a=r[r.length-1]||d;R(a),Y(a),ye(d)},[d,ye]),e.useEffect(()=>{const r=oe.current;!r||ue.length===0||(oe.current=null,ye(r))},[ue,ye]),e.useEffect(()=>{if(!B){if(ue.length>0){const r=he(ue[0]);R(r)}return}b&&b===B||J(B)},[ue,B,b]),e.useEffect(()=>{if(ue.length===0)return;const r=ue[0];if((r==null?void 0:r.type)!=="folder"||F.current)return;const a=r.name;F.current=!0,N(o=>o[a]?o:{...o,[a]:!0}),!ee.current[a]&&!q.current[a]&&te(a,r)},[ue,te,h]),e.useEffect(()=>()=>{j.current&&clearTimeout(j.current),L()},[]),e.useEffect(()=>{$&&setTimeout(()=>{const r=document.querySelector('[role="menu"] [role="menuitem"]');r&&typeof r.focus=="function"&&r.focus()},0)},[$]);const[le,_e]=e.useState(""),Ve=(r,a)=>{if(r.type==="folder")return a;const o=U.dirname(a);return o&&o||"/"},we=(r,a,o)=>{const i=Ve(r,a);return i?o&&U.isParentOf(o,i)?{allowed:!1,state:"invalid",destination:null}:{allowed:!0,state:"valid",destination:i}:{allowed:!1,state:"invalid",destination:null}},Ie=(r,a,o)=>{a.type!=="folder"&&a.type!=="file"||(ae(o),E(null),r.dataTransfer&&(r.dataTransfer.effectAllowed="move",r.dataTransfer.setData("application/x-wp-playground-path",o),r.dataTransfer.setData("text/plain",o)))},tt=()=>{Ne()},Ue=(r,a,o)=>{const i=we(a,o,K);i.allowed&&a.type==="folder"&&Le(o,a),E(u=>(u==null?void 0:u.path)===o&&u.state===i.state?u:{path:o,state:i.state})},st=(r,a,o)=>{const i=we(a,o,K);i.allowed&&i.destination?(r.preventDefault(),r.dataTransfer&&(r.dataTransfer.dropEffect=K?"move":"copy"),a.type==="folder"&&Le(o,a),E(u=>(u==null?void 0:u.path)===o&&u.state===i.state?u:{path:o,state:i.state})):(r.dataTransfer&&(r.dataTransfer.dropEffect="none"),Q(o),E(u=>(u==null?void 0:u.path)===o&&u.state==="invalid"?u:{path:o,state:"invalid"}))},lt=(r,a,o)=>{Q(o);const i=r.relatedTarget;i&&r.currentTarget.contains(i)||E(u=>(u==null?void 0:u.path)===o?null:u)},wt=async(r,a,o)=>{const i=K,u=we(a,o,i);if(!u.allowed||!u.destination){Ne();return}r.preventDefault(),r.stopPropagation(),Q(o),E(null);try{i?await yt(i,u.destination):await Ge(r.dataTransfer,u.destination)}finally{Ne()}},ct=(r,a,o)=>{s&&(r.preventDefault(),r.stopPropagation(),me(null),w({absPath:o,type:a.type,x:r.clientX,y:r.clientY}))},$e=async(r,a)=>{let o=a,i=0;const u=g=>{const ne=g.lastIndexOf(".");return ne>0?{stem:g.slice(0,ne),ext:g.slice(ne)}:{stem:g,ext:""}},v=r==="/"?"":r;for(;await(l==null?void 0:l.fileExists(`${v}/${o}`))||await(l==null?void 0:l.isDir(`${v}/${o}`));){i+=1;const{stem:g,ext:ne}=u(a);o=`${g} (${i})${ne}`}return o},ze=async(r,a,o)=>{if(!l)return;let i=r||T||h;try{await l.isDir(i)||(i=U.dirname(i))}catch{i=U.dirname(i)}const u=i,v=await $e(u,o),g=U.joinPaths(u,v);a==="folder"?await l.mkdir(g):await l.writeFile(g,""),ve.current={type:a,tempPath:g},me(g),await re(u),setTimeout(()=>{R(g),J(g)},0)},Et=async r=>{if(!l)return!1;try{if(await l.fileExists(r))return!0}catch{}try{if(await l.isDir(r))return!0}catch{}return!1},gt=async r=>{if(l)try{await l.mkdir(r)}catch(a){if(!await l.isDir(r).catch(()=>!1))throw a}},yt=async(r,a)=>{if(!l)return;const o=U.basename(r),i=U.joinPaths(a,o);if(i===r||await Et(i))return;const u=U.dirname(r);try{await l.mv(r,i),Re(r,i);const v=He(T,r,i);T&&(T===r||T.startsWith(`${r}/`))&&k(v),R(g=>He(g,r,i)),N(g=>({...g,[a]:!0})),await Promise.all([re(u),re(a)]),Y(g=>He(g,r,i)),J(i)}catch{}},_t=r=>{const a=r;return a.webkitGetAsEntry?a.webkitGetAsEntry():null},bt=r=>new Promise((a,o)=>{r.file(a,o)}),ut=async(r,a)=>{if(!l)return;const o=r.name||"untitled",i=await $e(a,o),u=U.joinPaths(a,i),v=new Uint8Array(await r.arrayBuffer());await l.writeFile(u,v)},qe=async(r,a)=>{const o=await bt(r);await ut(o,a)},rt=async(r,a)=>{const o=await $e(a,r.name||"New Folder"),i=U.joinPaths(a,o);await gt(i);const u=r.createReader(),v=()=>new Promise((g,ne)=>{u.readEntries(be=>g(Array.from(be)),ne)});for(;;){const g=await v();if(!g.length)break;for(const ne of g)ne.isFile?await qe(ne,i):ne.isDirectory&&await rt(ne,i)}},je=(r,a)=>Ye([],r,a),Ge=(r,a)=>{const i=Array.from(r.items).filter(v=>v.kind==="file").map(v=>_t(v)).filter(v=>!!v),u=Array.from(r.files);return Ye(i,u,a)},Ye=async(r,a,o)=>{if(l){if(r.length>0)for(const i of r)i.isFile?await qe(i,o):i.isDirectory&&await rt(i,o);else for(const i of a)await ut(i,o);await re(o),N(i=>({...i,[o]:!0}))}},ft=async(r,a)=>{if(!l)return;const o=r;w(null);try{a==="folder"?await l.rmdir(o,{recursive:!0}):await l.unlink(o)}catch{}finally{me(null);const i=U.dirname(o);await re(i),T&&(T===o||T.startsWith(`${o}/`))&&k(null)}},Ct=async r=>{if(l)try{const o=await(await l.read(r)).arrayBuffer(),i=new Blob([o]),u=URL.createObjectURL(i),v=document.createElement("a");v.href=u,v.download=U.basename(r)||"download",document.body.appendChild(v),v.click(),document.body.removeChild(v),setTimeout(()=>URL.revokeObjectURL(u),6e4)}catch(a){console.error("Failed to download file",a)}},dt=r=>{var a;if(!pe)if(r.key.length===1&&r.key.match(/\S/)){const o=le+r.key.toLowerCase();if(_e(o),j.current&&clearTimeout(j.current),j.current=setTimeout(()=>{_e("")},1e3),!p.current)return;const i=Array.from(p.current.querySelectorAll(".file-node-button")),u=document.activeElement;let v=0;u&&i.includes(u)&&(v=i.indexOf(u));for(let g=0;g<i.length;g++){const ne=(v+g)%i.length,be=i[ne];if((a=be.textContent)!=null&&a.toLowerCase().trim().startsWith(o)){be.focus();const t=be.getAttribute("data-path");t&&R(t);break}}}else _e(""),j.current&&clearTimeout(j.current)},xt=async(r,a)=>{if(f)return;const o=ve.current,i=(o==null?void 0:o.tempPath)===r,u=U.dirname(r);if(!a||a==="."||a===".."||U.basename(a)!==a){if(i){try{o.type==="folder"?await l.rmdir(r,{recursive:!0}):await l.unlink(r)}catch{}ve.current=null}me(i?null:r);return}let v=U.joinPaths(u,a),g=v;if(g===r){me(null);const c=i&&(o==null?void 0:o.type)==="file";i&&(ve.current=null),setTimeout(()=>{R(g),J(g),c&&D&&D(g)},0);return}const ne=await l.fileExists(g),be=await l.isDir(g);if((ne||be)&&g!==r)if(i)try{const c=await $e(u==="/"?"/":u,a);v=U.joinPaths(u,c),g=v}catch{}else{me(r);return}let t=(o==null?void 0:o.type)==="folder";try{await l.mv(r,v),o||(t=await l.isDir(v)),t&&Re(r,g),T===r&&k(g),await re(u),R(g),J(g),i&&!t&&D&&D(g)}catch{if(i)try{(o==null?void 0:o.type)==="folder"?await l.rmdir(r,{recursive:!0}):await l.unlink(r)}catch{}}finally{ve.current=null,me(null)}},mt=async r=>{const a=ve.current;if(!l||(a==null?void 0:a.tempPath)!==r){me(i=>i===r?null:i);return}try{a.type==="folder"?await l.rmdir(r,{recursive:!0}):await l.unlink(r)}catch{}ve.current=null,me(null);const o=U.dirname(r);await re(o),R(o),J(o)};return e.createElement("div",{onKeyDown:dt,ref:p},e.createElement(X.__experimentalTreeGrid,{className:xe.filePickerTree},ue.map((r,a)=>e.createElement(Ut,{key:r.name,node:r,level:0,position:a+1,setSize:ue.length,expandedNodePaths:_,onToggle:Be,selectedNode:T,focusPath:o=>R(o),focusedNode:B,selectPath:Pe,generatePath:he,getChildren:de,onContextMenu:f?void 0:ct,renamingPath:b,onRename:xt,onRenameCancel:mt,dropIndicator:fe,onDragStart:f?void 0:Ie,onDragEnd:f?void 0:tt,onDragEnter:f?void 0:Ue,onDragOver:f?void 0:st,onDragLeave:f?void 0:lt,onDrop:f?void 0:wt,rootPath:h,onDoubleClickFile:D}))),!f&&$&&e.createElement(X.Popover,{placement:"bottom-start",onClose:()=>w(null),anchor:{getBoundingClientRect:()=>({x:$.x,y:$.y,width:0,height:0,top:$.y,left:$.x,right:$.x,bottom:$.y,toJSON:()=>({})}),ownerDocument:document},noArrow:!0,resize:!1,focusOnMount:"firstElement"},e.createElement(X.NavigableMenu,{role:"menu"},$.type==="folder"&&e.createElement(X.MenuItem,{role:"menuitem",onClick:async()=>{w(null),await ze($.absPath,"file","untitled.php")}},"Create file"),$.type==="folder"&&e.createElement(X.MenuItem,{role:"menuitem",onClick:async()=>{w(null),await ze($.absPath,"folder","New Folder")}},"Create directory"),e.createElement(X.MenuItem,{role:"menuitem",onClick:()=>{w(null),me($.absPath)}},"Rename"),$.type==="file"&&e.createElement(X.MenuItem,{role:"menuitem",onClick:async()=>{w(null),await Ct($.absPath)}},"Download"),e.createElement(X.MenuItem,{role:"menuitem",onClick:()=>ft($.absPath,$.type)},"Delete"))))}),Ut=({node:n,level:s,position:f,setSize:l,expandedNodePaths:C,onToggle:d,selectedNode:k,focusPath:D,focusedNode:A,selectPath:h,generatePath:_,getChildren:N,onContextMenu:T,renamingPath:Y,onRename:B,onRenameCancel:R,parentPath:z="",dropIndicator:y,onDragStart:x,onDragEnd:H,onDragEnter:K,onDragOver:ae,onDragLeave:fe,onDrop:E,rootPath:V,onDoubleClickFile:F})=>{const p=_(n,z),j=C[p],q=Y===p,ee=e.useRef(null),[L,Q]=e.useState(n.name),J=e.useRef(!1),he=(y==null?void 0:y.path)===p,de=he&&(y==null?void 0:y.state)==="valid",Fe=he&&(y==null?void 0:y.state)==="invalid",ke=!!x&&!q&&p!==V,te=e.useRef(null),Le={onDragEnter:w=>K==null?void 0:K(w,n,p),onDragOver:w=>ae==null?void 0:ae(w,n,p),onDragLeave:w=>fe==null?void 0:fe(w,n,p),onDrop:w=>E==null?void 0:E(w,n,p)},re=N(n,p)??[];e.useEffect(()=>{var w;q?(Q(n.name),J.current=!1,typeof window<"u"&&requestAnimationFrame?requestAnimationFrame(()=>{var pe;(pe=ee.current)==null||pe.select()}):(w=ee.current)==null||w.select()):J.current=!1},[q,n.name]);const Be=()=>{n.type==="folder"&&d(p,n,!j)},ye=w=>{var pe,me;if(w.key==="ArrowLeft")j?Be():(pe=document.querySelector(`[data-path="${CSS.escape(z)}"]`))==null||pe.focus(),w.preventDefault(),w.stopPropagation();else if(w.key==="ArrowRight"){if(j){if(re!=null&&re.length){const ve=_(re[0],p);(me=document.querySelector(`[data-path="${CSS.escape(ve)}"]`))==null||me.focus()}}else Be();w.preventDefault(),w.stopPropagation()}else w.key===" "||w.key==="Space"||w.key==="Spacebar"?(n.type==="folder"&&d(p,n,!j),w.preventDefault()):w.key==="Enter"&&(n.type==="folder"?d(p,n,!j):(h(p,!1),D(p),F?F(p):h(p,!0)),w.preventDefault())},Re=w=>{T==null||T(w,n,p)},Ne=w=>{w.preventDefault(),J.current=!0,B==null||B(p,L)},Pe=w=>{if(w.key==="Escape"){w.preventDefault(),w.stopPropagation(),J.current=!0,R==null||R(p);return}(w.key==="ArrowLeft"||w.key==="ArrowRight"||w.key==="ArrowUp"||w.key==="ArrowDown")&&w.stopPropagation()},ue=()=>{J.current||R==null||R(p),J.current=!1},$=()=>{if(n.type==="folder"){Be(),h(p),D(p);return}const w=te.current!==null;if(w&&te.current&&clearTimeout(te.current),te.current=null,w){F?F(p):h(p,!0);return}h(p,!1),D(p),h(p,!0),te.current=window.setTimeout(()=>{te.current=null},300)};return e.useEffect(()=>()=>{te.current!==null&&typeof window<"u"&&clearTimeout(te.current)},[]),e.createElement(e.Fragment,null,e.createElement(X.__experimentalTreeGridRow,{level:s,positionInSet:f,setSize:l},e.createElement(X.__experimentalTreeGridCell,null,()=>e.createElement(e.Fragment,null,q?e.createElement("form",{onSubmit:Ne,className:De(xe.fileNodeButton,xe.renaming,"file-node-button",{[xe.selected]:k===p,[xe.focused]:A===p,[xe.dropTarget]:de,[xe.dropTargetInvalid]:Fe}),"data-path":p,onContextMenu:Re,...Le},e.createElement(Vt,{node:n,isOpen:n.type==="folder"&&j,level:s,hideName:!0}),e.createElement("input",{ref:ee,className:xe.renameInput,value:L,onChange:w=>Q(w.target.value),onBlur:ue,onFocus:()=>D(p),onKeyDown:Pe})):e.createElement(X.Button,{...Le,draggable:ke,onDragStart:w=>x==null?void 0:x(w,n,p),onDragEnd:w=>H==null?void 0:H(w,n,p),onClick:$,onKeyDown:ye,onFocus:()=>{D(p)},onContextMenu:Re,className:De(xe.fileNodeButton,"file-node-button",{[xe.selected]:k===p,[xe.focused]:A===p,[xe.dropTarget]:de,[xe.dropTargetInvalid]:Fe}),"data-path":p,"data-expanded":j?"true":"false"},e.createElement(Vt,{node:n,isOpen:n.type==="folder"&&j,level:s}))))),j&&re&&re.map((w,pe)=>e.createElement(Ut,{key:w.name,node:w,level:s+1,position:pe+1,setSize:re.length,expandedNodePaths:C,onToggle:d,selectedNode:k,focusPath:D,focusedNode:A,selectPath:h,generatePath:_,getChildren:N,onContextMenu:T,renamingPath:Y,onRename:B,onRenameCancel:R,parentPath:p,dropIndicator:y,onDragStart:x,onDragEnd:H,onDragEnter:K,onDragOver:ae,onDragLeave:fe,onDrop:E,rootPath:V,onDoubleClickFile:F})))},Vt=({node:n,level:s,isOpen:f,hideName:l=!1})=>{const C=[];for(let d=0;d<s;d++)C.push("&nbsp;&nbsp;&nbsp;&nbsp;");return e.createElement(e.Fragment,null,e.createElement("span",{"aria-hidden":"true",dangerouslySetInnerHTML:{__html:C.join("")}}),n.type==="folder"?e.createElement(Bt,{width:16,icon:f?pr:hr}):e.createElement("div",{style:{width:16}}," "),e.createElement(Bt,{width:16,icon:n.type==="folder"?$t:Wt}),!l&&e.createElement("span",{className:xe.fileName},n.name))},Pr="_control_kp9d9_1",Tr="_browse-label_kp9d9_11",Dr="_path-preview_kp9d9_37",Ar="_modal_kp9d9_43",Fr="_modal-footer_kp9d9_48",Xe={control:Pr,browseLabel:Tr,pathPreview:Dr,modal:Ar,modalFooter:Fr};function Nr({path:n}){if(!n)return e.createElement("div",{className:Xe.pathPreview},e.createElement("i",null,"Select a path"));const s=n.split("/");let f=(s.length>2?"/":"")+s.pop();f.length>10&&(f=f.substring(f.length-10));const l=n.substring(0,n.length-f.length);return e.createElement("div",{className:Xe.pathPreview,"data-content-start":l,"data-content-end":f})}function Ir({value:n="",onChange:s,filesystem:f}){const[l,C]=e.useState(!1),d=()=>C(!0),k=()=>C(!1),[D,A]=e.useState(n||null);function h(_){_==null||_.preventDefault(),s(D||""),k()}return e.createElement(e.Fragment,null,e.createElement(X.Button,{variant:"tertiary",className:Xe.control,onClick:d},e.createElement("span",{className:Xe.browseLabel},"Browse"),e.createElement(Nr,{path:n||""})),l&&e.createElement(X.Modal,{title:"Select a path ",onRequestClose:k,className:Xe.modal},e.createElement("form",{onSubmit:h},e.createElement(Ht,{filesystem:f,initialSelectedPath:n,onSelect:A}),e.createElement("div",{className:Xe.modalFooter},e.createElement(X.Button,{type:"submit",variant:"primary"},"Select Path")))))}const Lr="_container_1h0az_1",Mr="_header_1h0az_9",Br="_filename_1h0az_18",jr="_downloadLink_1h0az_26",Or="_previewArea_1h0az_38",Vr="_imagePreview_1h0az_51",$r="_videoPreview_1h0az_57",Wr="_audioPreview_1h0az_64",Hr="_unsupportedMessage_1h0az_68",Ur="_actions_1h0az_74",Me={container:Lr,header:Mr,filename:Br,downloadLink:jr,previewArea:Or,imagePreview:Vr,videoPreview:$r,audioPreview:Wr,unsupportedMessage:Hr,actions:Ur},zr=n=>{if(!n)return{isImage:!1,isVideo:!1,isAudio:!1};const s=n.toLowerCase();return{isImage:s.startsWith("image/"),isVideo:s.startsWith("video/"),isAudio:s.startsWith("audio/")}};function qr({filename:n,mimeType:s,dataUrl:f,downloadUrl:l,showHeader:C=!0}){const{isImage:d,isVideo:k,isAudio:D}=zr(s),A=C!==!1,h=!!(l&&n),_=()=>h?e.createElement("a",{className:Me.downloadLink,href:l,download:n},"Download"):null,N=()=>d?e.createElement("img",{className:Me.imagePreview,src:f,alt:n||"Preview"}):k?e.createElement("video",{className:Me.videoPreview,controls:!0,preload:"metadata"},e.createElement("source",{src:f,type:s}),"Your browser does not support the video tag."):D?e.createElement("audio",{className:Me.audioPreview,controls:!0},e.createElement("source",{src:f,type:s}),"Your browser does not support the audio tag."):e.createElement("div",{className:Me.unsupportedMessage},e.createElement("p",null,"Preview unavailable for this file type."),h?e.createElement("p",null,_()):e.createElement("p",null,"Download the file to inspect its contents."));return e.createElement("div",{className:Me.container},A&&e.createElement("div",{className:Me.header},e.createElement("span",{className:Me.filename,title:n},n),_()),e.createElement("div",{className:Me.previewArea},N()),!A&&h&&e.createElement("div",{className:Me.actions},_()))}const kt=new Map,Gr=async n=>{var C;if(!n)return it.php();const s=(C=n.split(".").pop())==null?void 0:C.toLowerCase();if(!s||s==="php")return it.php();const f=n;if(kt.has(f))return kt.get(f);let l;switch(s){case"css":l=await import("@codemirror/lang-css").then(d=>d.css());break;case"js":case"jsx":case"ts":case"tsx":l=await import("@codemirror/lang-javascript").then(d=>d.javascript({jsx:s==="jsx"||s==="tsx",typescript:s==="ts"||s==="tsx"}));break;case"json":l=await import("@codemirror/lang-json").then(d=>d.json());break;case"html":case"htm":l=await import("@codemirror/lang-html").then(d=>d.html());break;case"md":case"markdown":l=await import("@codemirror/lang-markdown").then(d=>d.markdown());break;default:l=it.php()}return kt.set(f,l),l};class Yr{constructor(s){this.view=s,this.handleClick=this.handleClick.bind(this),this.view.dom.addEventListener("mousedown",this.handleClick)}handleClick(s){const f=s.target;if((f.classList.contains("cm-scroller")||f.classList.contains("cm-content"))&&this.view.posAtCoords({x:s.clientX,y:s.clientY})===null){const C=this.view.state.doc.length,d=Oe.EditorSelection.create([Oe.EditorSelection.range(C,C)]);this.view.dispatch({selection:d,effects:Se.EditorView.scrollIntoView(C,{y:"center"})}),this.view.focus(),s.preventDefault()}}destroy(){this.view.dom.removeEventListener("mousedown",this.handleClick)}}const Zr=Se.ViewPlugin.define(n=>new Yr(n)),At=e.forwardRef(function({code:s,onChange:f,currentPath:l,className:C,onSaveShortcut:d,readOnly:k=!1,additionalExtensions:D},A){const h=e.useRef(null),_=e.useRef(null),N=e.useRef(new Oe.Compartment),T=e.useRef(new Oe.Compartment),Y=e.useRef(new Oe.Compartment),B=e.useRef(s),R=e.useRef(f),z=e.useRef(!1);return e.useImperativeHandle(A,()=>({focus:()=>{var y;(y=_.current)==null||y.focus()},blur:()=>{const y=_.current;y&&y.contentDOM.blur()},getCursorPosition:()=>_.current?_.current.state.selection.main.anchor:null,setCursorPosition:y=>{if(!_.current)return;const x=Math.min(y,_.current.state.doc.length),H=Oe.EditorSelection.create([Oe.EditorSelection.range(x,x)]);_.current.dispatch({selection:H,scrollIntoView:!0})}})),e.useEffect(()=>{B.current=s},[s]),e.useEffect(()=>{R.current=f},[f]),e.useEffect(()=>{if(_.current)return;const y=h.current;if(!y)return;const x=Oe.EditorState.create({doc:s,extensions:[Y.current.of(D??[]),Se.lineNumbers(),Se.highlightActiveLineGutter(),Se.highlightActiveLine(),Ke.foldGutter(),Se.dropCursor(),Se.rectangularSelection(),Se.crosshairCursor(),Zr,N.current.of(it.php()),T.current.of(Se.EditorView.editable.of(!k)),Ke.syntaxHighlighting(Ke.defaultHighlightStyle),Ke.indentOnInput(),Ke.bracketMatching(),ht.closeBrackets(),pt.history(),It.highlightSelectionMatches(),ht.autocompletion(),Se.EditorView.updateListener.of(K=>{if(!K.docChanged)return;const ae=K.state.doc.toString();ae!==B.current&&(B.current=ae,R.current(ae))}),Se.keymap.of([{key:"Mod-s",preventDefault:!0,run:()=>(d==null||d(),!0)},...ht.closeBracketsKeymap,...ht.completionKeymap,...Ke.foldKeymap,...It.searchKeymap,...pt.historyKeymap,...pt.defaultKeymap,pt.indentWithTab])]}),H=new Se.EditorView({state:x,parent:y});return _.current=H,()=>{H.destroy(),_.current=null}},[]),e.useEffect(()=>{const y=_.current;y&&y.dispatch({effects:Y.current.reconfigure(D??[])})},[D]),e.useEffect(()=>{const y=_.current;if(!y)return;const x=y.state.doc.toString();s!==x&&y.dispatch({changes:{from:0,to:y.state.doc.length,insert:s}})},[s]),e.useEffect(()=>{var ae;const y=_.current;if(!y)return;const x=(ae=l==null?void 0:l.split(".").pop())==null?void 0:ae.toLowerCase();(!x||x==="php")&&y.dispatch({effects:N.current.reconfigure(it.php())});let K=!1;return Gr(l).then(fe=>{K||!_.current||_.current.dispatch({effects:N.current.reconfigure(fe)})}),()=>{K=!0}},[l]),e.useEffect(()=>{const y=_.current;y&&(y.hasFocus&&(z.current=!0),y.dispatch({effects:T.current.reconfigure(Se.EditorView.editable.of(!k))}))},[k]),e.useLayoutEffect(()=>{const y=_.current;y&&z.current&&!y.hasFocus&&(y.focus(),z.current=!1)},[l,k]),e.createElement("div",{ref:h,className:C})});At.displayName="CodeEditor";const Kr="_fileExplorerContainer_rb5rx_1",Jr="_dropActive_rb5rx_9",Xr="_fileExplorerHeader_rb5rx_14",Qr="_fileExplorerTitle_rb5rx_23",en="_fileExplorerSubsectionTitle_rb5rx_31",tn="_fileExplorerActions_rb5rx_35",rn="_fileExplorerButton_rb5rx_41",nn="_fileExplorerIconButton_rb5rx_71",an="_fileExplorerTree_rb5rx_83",on="_dockPresentation_rb5rx_92",sn="_fileExplorerUploadButton_rb5rx_152",ge={fileExplorerContainer:Kr,dropActive:Jr,fileExplorerHeader:Xr,fileExplorerTitle:Qr,fileExplorerSubsectionTitle:en,fileExplorerActions:tn,fileExplorerButton:rn,fileExplorerIconButton:nn,fileExplorerTree:an,dockPresentation:on,fileExplorerUploadButton:sn},Ft=1024*1024,zt=n=>{const s=n.byteLength;for(let f=0;f<Math.min(s,4096);f++)if(n[f]===0)return!0;try{return new TextDecoder("utf-8",{fatal:!0}).decode(n),!1}catch{return!0}},Dt=(n,s)=>{const f=new Blob([n]),l=URL.createObjectURL(f);return setTimeout(()=>URL.revokeObjectURL(l),6e4),{url:l,filename:s}};async function ln(n,s=Ft){const f=cn(n);if(f!==void 0&&f>s)return{type:"too-large"};if(typeof n.stream=="function")return un(n,s);const l=new Uint8Array(await n.arrayBuffer());return l.byteLength>s?{type:"too-large"}:{type:"inline",data:l}}function cn(n){if(typeof n.filesize=="number")return n.filesize;if(typeof n.size=="number")return n.size}async function un(n,s){const f=n.stream().getReader(),l=[];let C=0;try{for(;;){const{done:d,value:k}=await f.read();if(d)return{type:"inline",data:U.concatUint8Arrays(l)};if(k){if(C+=k.byteLength,C>s)return await f.cancel().catch(()=>{}),{type:"too-large"};l.push(k)}}}finally{f.releaseLock()}}const qt=n=>{const s=n.split(".").pop();return Mt[s]||Mt._default},Gt=n=>n.startsWith("image/")||n.startsWith("video/")||n.startsWith("audio/");function Yt({filesystem:n,currentPath:s,selectedDirPath:f,setSelectedDirPath:l,onFileOpened:C,onSelectionCleared:d,onShowMessage:k,documentRoot:D,readOnly:A=!1,title:h="Files",mobileSubsectionTitle:_,showBinaryPreviewHeader:N=!0,dockPresentation:T=!1,useWordPressTooltips:Y=!1}){const B=e.useRef(null),R=e.useRef(null),z=e.useMemo(()=>s?U.dirname(s):f??D,[s,D]),[y,x]=e.useState(!1);e.useEffect(()=>{!s||!B.current||(l(U.dirname(s)),B.current.focusPath(s,{select:!0,domFocus:!1,notify:!1}),B.current.expandToPath(s))},[s,l]);const H=async(E,V)=>{try{const F=await n.read(E),p=await ln(F);if(p.type==="too-large"){const L=Ft/1024/1024;if(!T){await k(E,e.createElement(e.Fragment,null,e.createElement("p",null,`File too large to open (>${L}MB).`),e.createElement("p",null,"Open or download it outside the in-browser editor.")));return}const Q=U.basename(E)||"download";await k(E,e.createElement(e.Fragment,null,e.createElement("p",null,`File too large to open (>${L}MB).`),e.createElement("p",null,e.createElement(X.Button,{type:"button",variant:"link",onClick:()=>{K(E,Q)}},"Download ",Q))));return}const j=p.data,q=U.basename(E)||"download";if(zt(j)){const L=qt(q),{url:Q,filename:J}=Dt(j,q);if(Gt(L)){const he=new Blob([j],{type:L}),de=URL.createObjectURL(he);await k(E,e.createElement(Lt.BinaryFilePreview,{filename:J,mimeType:L,dataUrl:de,downloadUrl:Q,showHeader:N}));return}await k(E,e.createElement(e.Fragment,null,e.createElement("p",null,"Binary file. Cannot be edited."),e.createElement("p",null,e.createElement("a",{href:Q,download:J},"Download ",J))));return}const ee=new TextDecoder("utf-8").decode(j);await C(E,ee,V)}catch(F){Je.logger.error("Could not open file",F),await k(null,"Could not open file.")}},K=async(E,V)=>{try{const F=await n.read(E),p=new Uint8Array(await F.arrayBuffer()),{url:j}=Dt(p,V),q=document.createElement("a");q.href=j,q.download=V,document.body.appendChild(q),q.click(),document.body.removeChild(q)}catch(F){Je.logger.error("Could not download file",F),await k(E,"Could not download file.")}},ae=E=>{var F;const V=Array.from(E.target.files??[]);E.target.value="",V.length!==0&&((F=B.current)==null||F.importFiles(V,f??D).catch(p=>Je.logger.error("Failed to import files",p)))},fe=E=>{var V;E.dataTransfer.types.includes("application/x-wp-playground-path")||(E.preventDefault(),!A&&((V=B.current)==null||V.importDataTransfer(E.dataTransfer,f??D).catch(F=>Je.logger.error("Failed to import dropped files",F))))};return e.createElement("div",{className:De(ge.fileExplorerContainer,{[ge.dropActive]:y,[ge.dockPresentation]:T}),onDragEnter:E=>{E.dataTransfer.types.includes("application/x-wp-playground-path")||(E.preventDefault(),A||x(!0))},onDragOver:E=>{E.dataTransfer.types.includes("application/x-wp-playground-path")||(E.preventDefault(),E.dataTransfer.dropEffect=A?"none":"copy")},onDragLeave:E=>{const V=E.relatedTarget;(!V||!E.currentTarget.contains(V))&&x(!1)},onDropCapture:()=>x(!1),onDrop:fe},e.createElement("div",{className:ge.fileExplorerHeader},e.createElement("span",{className:ge.fileExplorerTitle},h),_?e.createElement("span",{className:ge.fileExplorerSubsectionTitle},_):null,A?null:e.createElement("div",{className:ge.fileExplorerActions},e.createElement(Pt,{label:"Create new file",useWordPressTooltip:Y},e.createElement("button",{className:De(ge.fileExplorerButton,ge.fileExplorerIconButton),type:"button",onClick:()=>{B.current&&B.current.createFile()},"aria-label":"Create new file",title:Y?void 0:"Create new file"},T?e.createElement(fn,null):e.createElement(X.Icon,{icon:wr,size:20}))),e.createElement(Pt,{label:"Create new folder",useWordPressTooltip:Y},e.createElement("button",{className:De(ge.fileExplorerButton,ge.fileExplorerIconButton),type:"button",onClick:()=>{B.current&&B.current.createFolder()},"aria-label":"Create new folder",title:Y?void 0:"Create new folder"},T?e.createElement(dn,null):e.createElement(X.Icon,{icon:vr,size:20}))),e.createElement(Pt,{label:"Upload files",useWordPressTooltip:Y},e.createElement("button",{className:De(ge.fileExplorerButton,ge.fileExplorerIconButton,ge.fileExplorerUploadButton),type:"button",onClick:()=>{var E;return(E=R.current)==null?void 0:E.click()},"aria-label":"Upload files",title:Y?void 0:"Upload files"},e.createElement(X.Icon,{icon:Er,size:T?16:20}))),e.createElement("input",{ref:R,type:"file",multiple:!0,style:{display:"none"},onChange:ae}))),e.createElement("div",{className:ge.fileExplorerTree},e.createElement(Lt.FilePickerTree,{ref:B,readOnly:A,filesystem:n,root:D,initialSelectedPath:z,onSelect:async E=>{if(!E){l(D),await d();return}try{if(await n.isDir(E)){l(E);return}}catch{}l(U.dirname(E)),await H(E,!1)},onDoubleClickFile:async E=>{await H(E,!0)}})))}function Pt({label:n,useWordPressTooltip:s,children:f}){return s?e.createElement(X.Tooltip,{text:n,delay:0,placement:"top"},f):f}const fn=()=>e.createElement("svg",{viewBox:"0 0 32 32",width:"24",height:"24","aria-hidden":"true"},e.createElement("path",{d:"M11 6h7l5 5v12a2 2 0 0 1-2 2H11a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinejoin:"round"}),e.createElement("path",{d:"M18 6v5h5",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinejoin:"round"}),e.createElement("g",{transform:"translate(19 19)"},e.createElement("circle",{cx:"5",cy:"5",r:"8",fill:"var(--paper-2, #fff)"}),e.createElement("path",{d:"M5 1.5v7M1.5 5h7",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"}))),dn=()=>e.createElement("svg",{viewBox:"0 0 32 32",width:"24",height:"24","aria-hidden":"true"},e.createElement("path",{d:"M6 9h7l3 3h10v11a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2V9z",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinejoin:"round"}),e.createElement("path",{d:"M6 9V8a2 2 0 0 1 2-2h5l3 3",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinejoin:"round"}),e.createElement("g",{transform:"translate(19 19)"},e.createElement("circle",{cx:"5",cy:"5",r:"8",fill:"var(--paper-2, #fff)"}),e.createElement("path",{d:"M5 1.5v7M1.5 5h7",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"}))),mn="_container_a36e6_1",pn="_content_a36e6_9",hn="_sidebarWrapper_a36e6_17",vn="_editorWrapper_a36e6_28",wn="_editorHeader_a36e6_37",En="_editorPath_a36e6_49",gn="_editorPathDirectory_a36e6_61",yn="_editorPathFilename_a36e6_68",_n="_editorPathPlaceholder_a36e6_73",bn="_editorPathPortaled_a36e6_77",Cn="_editorHeaderActions_a36e6_83",xn="_saveStatus_a36e6_90",Rn="_saveStatusSaving_a36e6_97",Sn="_saveStatusPending_a36e6_98",kn="_saveStatusError_a36e6_102",Pn="_editor_a36e6_28",Tn="_placeholder_a36e6_124",Dn="_messageArea_a36e6_135",An="_mobileToggle_a36e6_171",Fn="_mobileOverlay_a36e6_175",Nn="_dockPresentation_a36e6_181",In="_dockDirtyIndicator_a36e6_205",Ln="_dockSaveButton_a36e6_214",Mn="_sidebarOpen_a36e6_269",Bn="_editorHeaderPathPortaled_a36e6_367",Z={container:mn,content:pn,sidebarWrapper:hn,editorWrapper:vn,editorHeader:wn,editorPath:En,editorPathDirectory:gn,editorPathFilename:yn,editorPathPlaceholder:_n,editorPathPortaled:bn,editorHeaderActions:Cn,saveStatus:xn,saveStatusSaving:Rn,saveStatusPending:Sn,saveStatusError:kn,editor:Pn,placeholder:Tn,messageArea:Dn,mobileToggle:An,mobileOverlay:Fn,dockPresentation:Nn,dockDirtyIndicator:In,dockSaveButton:Ln,sidebarOpen:Mn,editorHeaderPathPortaled:Bn},jn=1500,On=700,Vn=1e3,M={IDLE:"idle",PENDING:"pending",SAVING:"saving",SAVED:"saved",ERROR:"error"};function $n({filesystem:n,isVisible:s=!0,documentRoot:f,initialPath:l=null,placeholderText:C="Select a file to view or edit its contents.",dockPresentation:d=!1,mobileHeaderTarget:k=null}){const[D,A]=e.useState(f),[h,_]=e.useState(null),[N,T]=e.useState(""),[Y,B]=e.useState(!0),[R,z]=e.useState(M.IDLE),[y,x]=e.useState(null),[H,K]=e.useState("idle"),[ae,fe]=e.useState(!1),[E,V]=e.useState(null),F=e.useRef(null),p=e.useRef(null),j=e.useRef(!1),q=e.useRef(h),ee=e.useRef(n),L=e.useRef(null),Q=e.useRef(null),J=e.useRef(new WeakMap),he=e.useRef(!0),de=e.useRef(new Map),Fe=e.useRef(!1);ee.current=n,e.useEffect(()=>{q.current=h},[h]);const ke=e.useCallback(async b=>{const{filesystem:P,path:oe,content:ie}=b,le=Q.current===b,_e=J.current,we=(_e.get(P)??Promise.resolve()).catch(()=>{}).then(()=>P.writeFile(oe,ie));_e.set(P,we);let Ie=!1;try{await we}catch(Ue){Ie=!0,Je.logger.error("Failed to save file",Ue)}const tt=he.current&&_e.get(P)===we&&ee.current===P&&q.current===oe&&L.current===null;_e.get(P)===we&&_e.delete(P),Q.current===b&&(Q.current=null),tt&&(z(Ie?M.ERROR:M.SAVED),x(Ie?"Could not save changes. Try again.":null),le&&K(Ie?"idle":"saved"))},[]),te=e.useCallback(()=>{const b=L.current;b&&(p.current!==null&&(window.clearTimeout(p.current),p.current=null),L.current=null,ke(b))},[ke]);e.useEffect(()=>(he.current=!0,()=>{he.current=!1}),[]),e.useEffect(()=>()=>{var b;((b=L.current)==null?void 0:b.filesystem)===n&&te()},[f,n,te]),e.useEffect(()=>{j.current=!0,A(f),T(""),_(null),B(!0),z(M.IDLE),x(null),fe(!1),V(null),de.current.clear(),Fe.current=!1},[f,n]),e.useEffect(()=>{if(!n||!l||Fe.current)return;let b=!1;return(async()=>{try{if(await n.fileExists(l)&&!b){const ie=await n.readFileAsText(l);if(b)return;j.current=!0,_(l),T(ie),B(!1),z(M.IDLE),x(null),setTimeout(()=>{var le;(le=F.current)==null||le.focus()},100)}}catch(oe){Je.logger.debug("Could not auto-open initial path:",oe)}finally{b||(Fe.current=!0)}})(),()=>{b=!0}},[n,l]),e.useEffect(()=>{if(!n||!h){p.current!==null&&(window.clearTimeout(p.current),p.current=null),L.current=null,h||z(M.IDLE);return}if(j.current){j.current=!1,L.current=null;return}p.current!==null&&(window.clearTimeout(p.current),p.current=null),z(M.PENDING);const b={filesystem:n,path:h,content:N};L.current=b;const P=window.setTimeout(()=>{L.current===b&&(p.current=null,L.current=null,z(M.SAVING),ke(b))},jn);return p.current=P,()=>{p.current===P&&(window.clearTimeout(P),p.current=null)}},[N,h,n,ke]),e.useEffect(()=>{if(R!==M.SAVED)return;const b=window.setTimeout(()=>{z(P=>P===M.SAVED?M.IDLE:P)},2e3);return()=>window.clearTimeout(b)},[R]),e.useEffect(()=>{H==="idle"||R===M.SAVING||R===M.SAVED||K("idle")},[H,R]),e.useEffect(()=>{if(H!=="saved")return;const b=window.setTimeout(()=>K("idle"),Vn);return()=>window.clearTimeout(b)},[H]),e.useEffect(()=>{if(H!=="waiting")return;const b=window.setTimeout(()=>K(P=>P==="waiting"?"saving":P),On);return()=>window.clearTimeout(b)},[H]);const Le=e.useCallback(async(b,P,oe=!0)=>{var le;const ie=(le=F.current)==null?void 0:le.getCursorPosition();ie!=null&&q.current&&de.current.set(q.current,ie),j.current=!0,_(b),T(P),V(null),B(!1),z(M.IDLE),x(null),fe(!1),setTimeout(()=>{var Ve,we,Ie;const _e=de.current.get(b);_e!==void 0&&((Ve=F.current)==null||Ve.setCursorPosition(_e)),oe?(we=F.current)==null||we.focus():(Ie=F.current)==null||Ie.blur()},50)},[]);e.useEffect(()=>{var oe;if(!h)return;const b=setInterval(()=>{var le;const ie=(le=F.current)==null?void 0:le.getCursorPosition();ie!=null&&de.current.set(h,ie)},1e3),P=(oe=F.current)==null?void 0:oe.getCursorPosition();return P!=null&&de.current.set(h,P),()=>{var le;clearInterval(b);const ie=(le=F.current)==null?void 0:le.getCursorPosition();ie!=null&&de.current.set(h,ie)}},[h]),e.useEffect(()=>{if(!s||!h)return;const b=setTimeout(()=>{var oe;const P=de.current.get(h);P!==void 0&&((oe=F.current)==null||oe.setCursorPosition(P))},100);return()=>clearTimeout(b)},[s,h]);const re=e.useCallback(async()=>{var P;const b=(P=F.current)==null?void 0:P.getCursorPosition();b!=null&&q.current&&de.current.set(q.current,b),j.current=!0,_(null),T(""),V(null),B(!0),z(M.IDLE),x(null)},[]),Be=e.useCallback(async(b,P)=>{j.current=!0,_(null),typeof P=="string"?(T(P),V(null)):(T(""),V(P)),B(!0),z(M.IDLE),x(null),fe(!1)},[]),ye=e.useCallback(()=>{L.current&&(Q.current=L.current,K("waiting"),z(M.SAVING),te())},[te]),Re=e.useCallback(()=>{!L.current&&R===M.ERROR&&n&&h&&(L.current={filesystem:n,path:h,content:N}),L.current&&(x(null),ye())},[N,h,n,ye,R]),Ne=Wn(R,y),Pe=Hn(R,Z),ue=Un(R);let $="Save";R===M.ERROR?$="Retry":R===M.SAVED&&H==="saved"?$="Saved":R===M.SAVING&&H==="saving"&&($="Saving…");const w=R===M.PENDING||R===M.SAVING||R===M.ERROR;if(!n)return e.createElement("div",{className:De(Z.container,{[Z.dockPresentation]:d})},e.createElement("div",{className:Z.placeholder},C));const pe=h?U.dirname(h):null,me=h?U.basename(h):null,ve=e.createElement("div",{className:De(Z.editorPath,{[Z.editorPathPlaceholder]:!(h!=null&&h.length),[Z.editorPathPortaled]:k}),title:h??void 0},pe&&me?e.createElement(e.Fragment,null,e.createElement("span",{className:Z.editorPathDirectory},pe==="/"?"":pe),e.createElement("span",{className:Z.editorPathFilename},"/",me)):`Browse files under ${f}`);return e.createElement("div",{className:De(Z.container,{[Z.dockPresentation]:d})},e.createElement("div",{className:De(Z.content,{[Z.sidebarOpen]:ae})},e.createElement("div",{className:Z.mobileOverlay,onClick:()=>fe(!1)}),e.createElement("aside",{className:Z.sidebarWrapper},e.createElement(Yt,{filesystem:n,currentPath:h,selectedDirPath:D,setSelectedDirPath:A,onFileOpened:Le,onSelectionCleared:re,onShowMessage:Be,documentRoot:f,dockPresentation:d,useWordPressTooltips:d})),e.createElement("section",{className:Z.editorWrapper},e.createElement("div",{className:De(Z.editorHeader,{[Z.editorHeaderPathPortaled]:k})},e.createElement(X.Button,{className:Z.mobileToggle,variant:"secondary",onClick:()=>fe(b=>!b)},ae?"Hide files":"Browse files"),k?ar.createPortal(ve,k):ve,d&&!Y&&h?e.createElement("div",{className:Z.editorHeaderActions},w?e.createElement("span",{className:Z.dockDirtyIndicator,"aria-hidden":"true"}):null,e.createElement(X.Tooltip,{text:ue,placement:"top"},e.createElement(X.Button,{variant:"secondary",className:Z.dockSaveButton,isDestructive:R===M.ERROR,onClick:Re},$))):d?null:e.createElement("div",{className:De(Z.saveStatus,Pe)},Ne),d&&!Y&&h?e.createElement(X.VisuallyHidden,{role:"status","aria-live":"polite"},ue):null),y?e.createElement("div",{style:{padding:"8px 16px"}},e.createElement(X.Notice,{status:"error",isDismissible:!1},y)):null,h||N||E?E?e.createElement("div",{className:Z.messageArea},E):e.createElement(At,{ref:F,code:N,onChange:T,currentPath:h,className:Z.editor,onSaveShortcut:ye,readOnly:Y}):e.createElement("div",{className:Z.placeholder},C))))}function Wn(n,s){switch(n){case M.PENDING:case M.SAVING:return"Saving…";case M.SAVED:return"Saved";case M.ERROR:return s??"Save failed";default:return""}}function Hn(n,s){switch(n){case M.PENDING:return s.saveStatusPending;case M.SAVING:return s.saveStatusSaving;case M.ERROR:return s.saveStatusError;default:return}}function Un(n){switch(n){case M.PENDING:return"Unsaved changes. Click to save now.";case M.SAVING:return"Saving changes…";case M.ERROR:return"Saving failed. Click to retry.";default:return"All changes saved."}}exports.BinaryFilePreview=qr;exports.ClockIcon=lr;exports.CodeEditor=At;exports.FileExplorerSidebar=Yt;exports.FilePickerControl=Ir;exports.FilePickerTree=Ht;exports.MAX_INLINE_FILE_BYTES=Ft;exports.PlaygroundFileEditor=$n;exports.SiteManagerIcon=fr;exports.WordPressIcon=sr;exports.createDownloadUrl=Dt;exports.file=Wt;exports.folder=$t;exports.getLogoDataURL=ur;exports.getMimeType=qt;exports.isPreviewableBinary=Gt;exports.layout=cr;exports.playgroundLogo=or;exports.seemsLikeBinary=zt;exports.temporaryStorage=ir;
31
31
  //# sourceMappingURL=index.cjs.map