@wp-playground/components 3.1.45 → 3.1.47

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.
@@ -7,10 +7,12 @@ export type PlaygroundFileEditorProps = {
7
7
  initialPath?: string | null;
8
8
  placeholderText?: string;
9
9
  dockPresentation?: boolean;
10
+ /** Mobile Dock title row where the current path should be rendered. */
11
+ mobileHeaderTarget?: Element | null;
10
12
  };
11
13
  /**
12
14
  * A reusable file browser component with a file tree on the left and
13
15
  * a code editor on the right. Supports auto-save with debouncing,
14
16
  * cursor position preservation, and binary file handling.
15
17
  */
16
- export declare function PlaygroundFileEditor({ filesystem, isVisible, documentRoot, initialPath, placeholderText, dockPresentation, }: PlaygroundFileEditorProps): React.JSX.Element;
18
+ export declare function PlaygroundFileEditor({ filesystem, isVisible, documentRoot, initialPath, placeholderText, dockPresentation, mobileHeaderTarget, }: PlaygroundFileEditorProps): React.JSX.Element;
package/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var Jt=Object.create;var Ft=Object.defineProperty;var Xt=Object.getOwnPropertyDescriptor;var Qt=Object.getOwnPropertyNames;var er=Object.getPrototypeOf,tr=Object.prototype.hasOwnProperty;var rr=(n,s,d,l)=>{if(s&&typeof s=="object"||typeof s=="function")for(let x of Qt(s))!tr.call(n,x)&&x!==d&&Ft(n,x,{get:()=>s[x],enumerable:!(l=Xt(s,x))||l.enumerable});return n};var et=(n,s,d)=>(d=n!=null?Jt(er(n)):{},rr(s||!n||!n.__esModule?Ft(d,"default",{value:n,enumerable:!0}):d,n));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),G=require("@php-wasm/util"),X=require("@wordpress/components"),Ne=require("classnames"),pt=require("@wordpress/element"),nr=require("clsx"),Me=require("@codemirror/state"),be=require("@codemirror/view"),dt=require("@codemirror/commands"),It=require("@codemirror/search"),mt=require("@codemirror/autocomplete"),Ge=require("@codemirror/language"),nt=require("@codemirror/lang-php"),Lt=require("@wp-playground/components"),Ye=require("@php-wasm/logger"),Mt=require("@php-wasm/universal/mime-types"),ar=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"})),or=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"})),ir=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"})),sr=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"})),lr=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 cr(n){return`data:${n.mime};base64,${n.data}`}function ur({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=pt.forwardRef(({icon:n,size:s=24,...d},l)=>pt.cloneElement(n,{width:s,height:s,...d,ref:l}));var Pt={exports:{}},tt={};/**
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={};/**
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 fr(){if(jt)return tt;jt=1;var n=e,s=Symbol.for("react.element"),d=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,x=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,m={key:!0,ref:!0,__self:!0,__source:!0};function S(N,h,T){var _,k={},P=null,$=null;T!==void 0&&(P=""+T),h.key!==void 0&&(P=""+h.key),h.ref!==void 0&&($=h.ref);for(_ in h)l.call(h,_)&&!m.hasOwnProperty(_)&&(k[_]=h[_]);if(N&&N.defaultProps)for(_ in h=N.defaultProps,h)k[_]===void 0&&(k[_]=h[_]);return{$$typeof:s,type:N,key:P,ref:$,props:k,_owner:x.current}}return tt.Fragment=d,tt.jsx=S,tt.jsxs=S,tt}var rt={};/**
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={};/**
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 dr(){return Ot||(Ot=1,process.env.NODE_ENV!=="production"&&function(){var n=e,s=Symbol.for("react.element"),d=Symbol.for("react.portal"),l=Symbol.for("react.fragment"),x=Symbol.for("react.strict_mode"),m=Symbol.for("react.profiler"),S=Symbol.for("react.provider"),N=Symbol.for("react.context"),h=Symbol.for("react.forward_ref"),T=Symbol.for("react.suspense"),_=Symbol.for("react.suspense_list"),k=Symbol.for("react.memo"),P=Symbol.for("react.lazy"),$=Symbol.for("react.offscreen"),F=Symbol.iterator,D="@@iterator";function le(t){if(t===null||typeof t!="object")return null;var c=F&&t[F]||t[D];return typeof c=="function"?c:null}var v=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function C(t){{for(var c=arguments.length,p=new Array(c>1?c-1:0),R=1;R<c;R++)p[R-1]=arguments[R];Y("error",t,p)}}function Y(t,c,p){{var R=v.ReactDebugCurrentFrame,W=R.getStackAddendum();W!==""&&(c+="%s",p=p.concat([W]));var q=p.map(function(O){return String(O)});q.unshift("Warning: "+c),Function.prototype.apply.call(console[t],console,q)}}var ee=!1,Z=!1,y=!1,j=!1,I=!1,V;V=Symbol.for("react.module.reference");function g(t){return!!(typeof t=="string"||typeof t=="function"||t===l||t===m||I||t===x||t===T||t===_||j||t===$||ee||Z||y||typeof t=="object"&&t!==null&&(t.$$typeof===P||t.$$typeof===k||t.$$typeof===S||t.$$typeof===N||t.$$typeof===h||t.$$typeof===V||t.getModuleId!==void 0))}function M(t,c,p){var R=t.displayName;if(R)return R;var W=c.displayName||c.name||"";return W!==""?p+"("+W+")":p}function de(t){return t.displayName||"Context"}function A(t){if(t==null)return null;if(typeof t.tag=="number"&&C("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 d:return"Portal";case m:return"Profiler";case x:return"StrictMode";case T:return"Suspense";case _:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case N:var c=t;return de(c)+".Consumer";case S:var p=t;return de(p._context)+".Provider";case h:return M(t,t.render,"ForwardRef");case k:var R=t.displayName||null;return R!==null?R:A(t.type)||"Memo";case P:{var W=t,q=W._payload,O=W._init;try{return A(O(q))}catch{return null}}}return null}var K=Object.assign,ue=0,J,ie,Te,xe,Ce,ce,Fe;function te(){}te.__reactDisabledLog=!0;function Pe(){{if(ue===0){J=console.log,ie=console.info,Te=console.warn,xe=console.error,Ce=console.group,ce=console.groupCollapsed,Fe=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})}ue++}}function Re(){{if(ue--,ue===0){var t={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:K({},t,{value:J}),info:K({},t,{value:ie}),warn:K({},t,{value:Te}),error:K({},t,{value:xe}),group:K({},t,{value:Ce}),groupCollapsed:K({},t,{value:ce}),groupEnd:K({},t,{value:Fe})})}ue<0&&C("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var Ee=v.ReactCurrentDispatcher,De;function ye(t,c,p){{if(De===void 0)try{throw Error()}catch(W){var R=W.stack.trim().match(/\n( *(at )?)/);De=R&&R[1]||""}return`
18
- `+De+t}}var ae=!1,z;{var u=typeof WeakMap=="function"?WeakMap:Map;z=new u}function b(t,c){if(!t||ae)return"";{var p=z.get(t);if(p!==void 0)return p}var R;ae=!0;var W=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var q;q=Ee.current,Ee.current=null,Pe();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(ve){R=ve}Reflect.construct(t,[],O)}else{try{O.call()}catch(ve){R=ve}t.call(O.prototype)}}else{try{throw Error()}catch(ve){R=ve}t()}}catch(ve){if(ve&&R&&typeof ve.stack=="string"){for(var L=ve.stack.split(`
19
- `),me=R.stack.split(`
20
- `),oe=L.length-1,se=me.length-1;oe>=1&&se>=0&&L[oe]!==me[se];)se--;for(;oe>=1&&se>=0;oe--,se--)if(L[oe]!==me[se]){if(oe!==1||se!==1)do if(oe--,se--,se<0||L[oe]!==me[se]){var Se=`
21
- `+L[oe].replace(" at new "," at ");return t.displayName&&Se.includes("<anonymous>")&&(Se=Se.replace("<anonymous>",t.displayName)),typeof t=="function"&&z.set(t,Se),Se}while(oe>=1&&se>=0);break}}}finally{ae=!1,Ee.current=q,Re(),Error.prepareStackTrace=W}var qe=t?t.displayName||t.name:"",Ve=qe?ye(qe):"";return typeof t=="function"&&z.set(t,Ve),Ve}function H(t,c,p){return b(t,!1)}function U(t){var c=t.prototype;return!!(c&&c.isReactComponent)}function Q(t,c,p){if(t==null)return"";if(typeof t=="function")return b(t,U(t));if(typeof t=="string")return ye(t);switch(t){case T:return ye("Suspense");case _:return ye("SuspenseList")}if(typeof t=="object")switch(t.$$typeof){case h:return H(t.render);case k:return Q(t.type,c,p);case P:{var R=t,W=R._payload,q=R._init;try{return Q(q(W),c,p)}catch{}}}return""}var fe=Object.prototype.hasOwnProperty,Ae={},_e=v.ReactDebugCurrentFrame;function pe(t){if(t){var c=t._owner,p=Q(t.type,t._source,c?c.type:null);_e.setExtraStackFrame(p)}else _e.setExtraStackFrame(null)}function Be(t,c,p,R,W){{var q=Function.call.bind(fe);for(var O in t)if(q(t,O)){var L=void 0;try{if(typeof t[O]!="function"){var me=Error((R||"React class")+": "+p+" 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 me.name="Invariant Violation",me}L=t[O](c,O,R,p,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(oe){L=oe}L&&!(L instanceof Error)&&(pe(W),C("%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).",R||"React class",p,O,typeof L),pe(null)),L instanceof Error&&!(L.message in Ae)&&(Ae[L.message]=!0,pe(W),C("Failed %s type: %s",p,L.message),pe(null))}}}var Xe=Array.isArray;function je(t){return Xe(t)}function ht(t){{var c=typeof Symbol=="function"&&Symbol.toStringTag,p=c&&t[Symbol.toStringTag]||t.constructor.name||"Object";return p}}function vt(t){try{return at(t),!1}catch{return!0}}function at(t){return""+t}function ot(t){if(vt(t))return C("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",ht(t)),at(t)}var it=v.ReactCurrentOwner,wt={key:!0,ref:!0,__self:!0,__source:!0},st,Oe;function We(t){if(fe.call(t,"ref")){var c=Object.getOwnPropertyDescriptor(t,"ref").get;if(c&&c.isReactWarning)return!1}return t.ref!==void 0}function gt(t){if(fe.call(t,"key")){var c=Object.getOwnPropertyDescriptor(t,"key").get;if(c&&c.isReactWarning)return!1}return t.key!==void 0}function Et(t,c){typeof t.ref=="string"&&it.current}function yt(t,c){{var p=function(){st||(st=!0,C("%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))};p.isReactWarning=!0,Object.defineProperty(t,"key",{get:p,configurable:!0})}}function _t(t,c){{var p=function(){Oe||(Oe=!0,C("%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))};p.isReactWarning=!0,Object.defineProperty(t,"ref",{get:p,configurable:!0})}}var bt=function(t,c,p,R,W,q,O){var L={$$typeof:s,type:t,key:c,ref:p,props:O,_owner:q};return L._store={},Object.defineProperty(L._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(L,"_self",{configurable:!1,enumerable:!1,writable:!1,value:R}),Object.defineProperty(L,"_source",{configurable:!1,enumerable:!1,writable:!1,value:W}),Object.freeze&&(Object.freeze(L.props),Object.freeze(L)),L};function lt(t,c,p,R,W){{var q,O={},L=null,me=null;p!==void 0&&(ot(p),L=""+p),gt(c)&&(ot(c.key),L=""+c.key),We(c)&&(me=c.ref,Et(c,W));for(q in c)fe.call(c,q)&&!wt.hasOwnProperty(q)&&(O[q]=c[q]);if(t&&t.defaultProps){var oe=t.defaultProps;for(q in oe)O[q]===void 0&&(O[q]=oe[q])}if(L||me){var se=typeof t=="function"?t.displayName||t.name||"Unknown":t;L&&yt(O,se),me&&_t(O,se)}return bt(t,L,me,W,R,it.current,O)}}var He=v.ReactCurrentOwner,Qe=v.ReactDebugCurrentFrame;function Le(t){if(t){var c=t._owner,p=Q(t.type,t._source,c?c.type:null);Qe.setExtraStackFrame(p)}else Qe.setExtraStackFrame(null)}var Ue;Ue=!1;function ze(t){return typeof t=="object"&&t!==null&&t.$$typeof===s}function ct(){{if(He.current){var t=A(He.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"),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`
22
22
 
23
- Check the render method of \``+t+"`."}return""}}function xt(t){return""}var ut={};function Ct(t){{var c=ct();if(!c){var p=typeof t=="string"?t:t.displayName||t.name;p&&(c=`
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=`
24
24
 
25
- Check the top-level render call using <`+p+">.")}return c}}function ft(t,c){{if(!t._store||t._store.validated||t.key!=null)return;t._store.validated=!0;var p=Ct(c);if(ut[p])return;ut[p]=!0;var R="";t&&t._owner&&t._owner!==He.current&&(R=" It was passed a child from "+A(t._owner.type)+"."),Le(t),C('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',p,R),Le(null)}}function r(t,c){{if(typeof t!="object")return;if(je(t))for(var p=0;p<t.length;p++){var R=t[p];ze(R)&&ft(R,c)}else if(ze(t))t._store&&(t._store.validated=!0);else if(t){var W=le(t);if(typeof W=="function"&&W!==t.entries)for(var q=W.call(t),O;!(O=q.next()).done;)ze(O.value)&&ft(O.value,c)}}}function a(t){{var c=t.type;if(c==null||typeof c=="string")return;var p;if(typeof c=="function")p=c.propTypes;else if(typeof c=="object"&&(c.$$typeof===h||c.$$typeof===k))p=c.propTypes;else return;if(p){var R=A(c);Be(p,t.props,"prop",R,t)}else if(c.PropTypes!==void 0&&!Ue){Ue=!0;var W=A(c);C("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",W||"Unknown")}typeof c.getDefaultProps=="function"&&!c.getDefaultProps.isReactClassApproved&&C("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),p=0;p<c.length;p++){var R=c[p];if(R!=="children"&&R!=="key"){Le(t),C("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",R),Le(null);break}}t.ref!==null&&(Le(t),C("Invalid attribute `ref` supplied to `React.Fragment`."),Le(null))}}var i={};function f(t,c,p,R,W,q){{var O=g(t);if(!O){var L="";(t===void 0||typeof t=="object"&&t!==null&&Object.keys(t).length===0)&&(L+=" 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 me=xt();me?L+=me:L+=ct();var oe;t===null?oe="null":je(t)?oe="array":t!==void 0&&t.$$typeof===s?(oe="<"+(A(t.type)||"Unknown")+" />",L=" Did you accidentally export a JSX literal instead of a component?"):oe=typeof t,C("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",oe,L)}var se=lt(t,c,p,W,q);if(se==null)return se;if(O){var Se=c.children;if(Se!==void 0)if(R)if(je(Se)){for(var qe=0;qe<Se.length;qe++)r(Se[qe],t);Object.freeze&&Object.freeze(Se)}else C("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(Se,t)}if(fe.call(c,"key")){var Ve=A(t),ve=Object.keys(c).filter(function(Kt){return Kt!=="key"}),Rt=ve.length>0?"{key: someKey, "+ve.join(": ..., ")+": ...}":"{key: someKey}";if(!i[Ve+Rt]){var Zt=ve.length>0?"{"+ve.join(": ..., ")+": ...}":"{}";C(`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=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:
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} />`,Rt,Ve,Zt,Ve),i[Ve+Rt]=!0}}return t===l?o(se):a(se),se}}function w(t,c,p){return f(t,c,p,!0)}function E(t,c,p){return f(t,c,p,!1)}var re=E,he=w;rt.Fragment=l,rt.jsx=re,rt.jsxs=he}()),rt}process.env.NODE_ENV==="production"?Pt.exports=fr():Pt.exports=dr();var ke=Pt.exports,Ke=n=>pt.createElement("path",n),Je=pt.forwardRef(({className:n,isPressed:s,...d},l)=>{const x={...d,className:nr(n,{"is-pressed":s})||void 0,"aria-hidden":!0,focusable:!1};return ke.jsx("svg",{...x,ref:l})});Je.displayName="SVG";const mr=ke.jsx(Je,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:ke.jsx(Ke,{d:"M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z"})}),pr=ke.jsx(Je,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:ke.jsx(Ke,{d:"M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z"})}),hr=ke.jsx(Je,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:ke.jsx(Ke,{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"})}),vr=ke.jsxs(Je,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:[ke.jsx(Ke,{d:"M15.5 7.5h-7V9h7V7.5Zm-7 3.5h7v1.5h-7V11Zm7 3.5h-7V16h7v-1.5Z"}),ke.jsx(Ke,{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"})]}),wr=ke.jsx(Je,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:ke.jsx(Ke,{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",Er="_file-node-button_ad9od_17",yr="_selected_ad9od_56",_r="_focused_ad9od_75",br="_dropTarget_ad9od_83",xr="_dropTargetInvalid_ad9od_95",Cr="_renaming_ad9od_104",Rr="_renameInput_ad9od_109",Sr="_file-name_ad9od_124",ge={filePickerTree:gr,fileNodeButton:Er,selected:yr,focused:_r,dropTarget:br,dropTargetInvalid:xr,renaming:Cr,renameInput:Rr,fileName:Sr};function St(n){if(!n)return[];const s=G.normalizePath(n),d=s.startsWith("/"),l=s.split("/").filter(Boolean),x=[];let m=d?"/":"";d&&x.push("/");for(const S of l)!m||m==="/"?m=m==="/"?`/${S}`:S:m=`${m}/${S}`,x.push(m);return x}function $e(n,s,d){return n&&(n===s?d:n.startsWith(s==="/"?"/":`${s}/`)?d+n.slice(s.length):n)}const Ht=e.forwardRef(function({withContextMenu:s=!0,readOnly:d=!1,filesystem:l,root:x="/wordpress",initialSelectedPath:m,onSelect:S=()=>{},onDoubleClickFile:N},h){const T=e.useMemo(()=>G.joinPaths("/",x||"/"),[x]),[_,k]=e.useState(()=>{if(!m)return{};const r={};for(const a of St(m))r[a]=!0;return r}),[P,$]=e.useState(()=>m??null),[F,D]=e.useState(()=>m??null),[le,v]=e.useState({}),[C,Y]=e.useState({}),[ee,Z]=e.useState(null),[y,j]=e.useState(null),I=e.useRef({}),V=e.useRef(!1),g=e.useRef(null),M=e.useRef(null),de=e.useRef(C),A=e.useRef(le),K=()=>{for(const r of Object.keys(I.current))clearTimeout(I.current[r]),delete I.current[r]},ue=r=>{const a=I.current[r];a&&(clearTimeout(a),delete I.current[r])};e.useEffect(()=>{de.current=C},[C]),e.useEffect(()=>{A.current=le},[le]);const J=r=>{var o;const a=(o=g.current)==null?void 0:o.querySelector(`[data-path="${CSS.escape(r)}"]`);a&&typeof a.focus=="function"&&(a.focus(),a.scrollIntoView({behavior:"smooth",block:"nearest"}))},ie=(r,a="")=>a?G.joinPaths(a,r.name):G.joinPaths("/",r.name),Te=(r,a)=>r.children?r.children:le[a],xe=async(r,a)=>{const o=await r.listFiles(a),i=[];for(const f of o){const w=a==="/"?`/${f}`:`${a}/${f}`,E=await r.isDir(w);i.push({name:f,type:E?"folder":"file"})}return i.sort((f,w)=>{var t;if(f.type!==w.type)return f.type==="folder"?-1:1;const E=a==="/"?`/${f.name}`:`${a}/${f.name}`,re=a==="/"?`/${w.name}`:`${a}/${w.name}`,he=(t=U.current)==null?void 0:t.tempPath;if(he){if(E===he)return-1;if(re===he)return 1}return f.name.localeCompare(w.name)}),i},Ce=async r=>await xe(l,r),ce=(r,a)=>{if(a.type!=="folder")return a.children;const o=a.children??A.current[r];return o||de.current[r]?o:(Y(i=>({...i,[r]:!0})),new Promise(i=>{Ce(r).then(f=>{v(w=>({...w,[r]:f??[]})),i(f??[])}).catch(()=>{i([])}).finally(()=>{Y(f=>{const w={...f};return delete w[r],w})})}))},Fe=(r,a)=>{a.type==="folder"&&(typeof window>"u"||I.current[r]||(I.current[r]=window.setTimeout(()=>{k(o=>o[r]?o:{...o,[r]:!0}),ce(r,a),delete I.current[r]},600)))},te=r=>(Y(a=>({...a,[r]:!0})),new Promise(a=>{Ce(r).then(o=>{v(i=>({...i,[r]:o??[]})),a(o??[])}).catch(()=>{a([])}).finally(()=>{Y(o=>{const i={...o};return delete i[r],i})})})),Pe=(r,a,o)=>{k(i=>({...i,[r]:o})),o?ce(r,a):v(i=>{if(i[r]===void 0)return i;const f={...i};return delete f[r],f})},Re=async r=>{if(!r)return;const a=St(r);if(a.length===0)return;k(f=>{const w={...f};for(const E of a)w[E]=!0;return w});let o=[{name:T,type:"folder"}],i="";for(const f of a){const w=o==null?void 0:o.find(re=>ie(re,i)===f);if(!w||w.type!=="folder"){i=f,o=[];continue}o=await ce(f,w)??A.current[f],i=f}},Ee=(r,a)=>{!r||!a||r===a||(k(o=>{let i=!1;const f={...o};for(const w of Object.keys(o)){const E=$e(w,r,a);E&&E!==w&&(f[E]=o[w],delete f[w],i=!0)}return i?f:o}),v(o=>{let i=!1;const f={...o};for(const w of Object.keys(o)){const E=$e(w,r,a);E&&E!==w&&(f[E]=o[w],delete f[w],i=!0)}return i?f:o}),$(o=>$e(o,r,a)),D(o=>$e(o,r,a)))},De=()=>{Z(null),j(null),K()},ye=(r,a=!0)=>{$(r),a&&S(r)},ae=e.useMemo(()=>[{name:T,type:"folder"}],[T]),[z,u]=e.useState(null),[b,H]=e.useState(null),U=e.useRef(null),Q=d?null:b;e.useImperativeHandle(h,()=>({focusPath:(r,a={})=>{if(!r)return;const{select:o=!0,domFocus:i=!0,notify:f=!1}=a;o&&ye(r,f),D(r),i&&J(r)},selectPath:r=>{r&&(ye(r),D(r),J(r))},getSelectedPath:()=>P,expandToPath:async r=>await Re(r),refresh:async r=>await te(r),remapPath:Ee,createFile:async r=>{d||await We(r,"file","untitled.php")},createFolder:async r=>{d||await We(r,"folder","New Folder")},importFiles:async(r,a)=>{d||await Le(r,a)},importDataTransfer:async(r,a)=>{d||await Ue(r,a)}}),[P,te,Ee,Re,d]);const fe=e.useRef(!1),Ae=e.useRef(m??null),_e=e.useRef(m);e.useEffect(()=>{V.current=!1},[T]),e.useEffect(()=>{m&&m!==_e.current?Ae.current=m:m||(Ae.current=null),_e.current=m},[m]),e.useEffect(()=>{if(!m||fe.current)return;fe.current=!0;const r=St(m);k(o=>{const i={...o};for(const f of r)i[f]=!0;return i});const a=r[r.length-1]||m;D(a),$(a),Re(m)},[m,Re]),e.useEffect(()=>{const r=Ae.current;!r||ae.length===0||(Ae.current=null,Re(r))},[ae,Re]),e.useEffect(()=>{if(!F){if(ae.length>0){const r=ie(ae[0]);D(r)}return}Q&&Q===F||J(F)},[ae,F,Q]),e.useEffect(()=>{if(ae.length===0)return;const r=ae[0];if((r==null?void 0:r.type)!=="folder"||V.current)return;const a=r.name;V.current=!0,k(o=>o[a]?o:{...o,[a]:!0}),!A.current[a]&&!de.current[a]&&ce(a,r)},[ae,ce,T]),e.useEffect(()=>()=>{M.current&&clearTimeout(M.current),K()},[]),e.useEffect(()=>{z&&setTimeout(()=>{const r=document.querySelector('[role="menu"] [role="menuitem"]');r&&typeof r.focus=="function"&&r.focus()},0)},[z]);const[pe,Be]=e.useState(""),Xe=(r,a)=>{if(r.type==="folder")return a;const o=G.dirname(a);return o&&o||"/"},je=(r,a,o)=>{const i=Xe(r,a);return i?o&&G.isParentOf(o,i)?{allowed:!1,state:"invalid",destination:null}:{allowed:!0,state:"valid",destination:i}:{allowed:!1,state:"invalid",destination:null}},ht=(r,a,o)=>{a.type!=="folder"&&a.type!=="file"||(Z(o),j(null),r.dataTransfer&&(r.dataTransfer.effectAllowed="move",r.dataTransfer.setData("application/x-wp-playground-path",o),r.dataTransfer.setData("text/plain",o)))},vt=()=>{De()},at=(r,a,o)=>{const i=je(a,o,ee);i.allowed&&a.type==="folder"&&Fe(o,a),j(f=>(f==null?void 0:f.path)===o&&f.state===i.state?f:{path:o,state:i.state})},ot=(r,a,o)=>{const i=je(a,o,ee);i.allowed&&i.destination?(r.preventDefault(),r.dataTransfer&&(r.dataTransfer.dropEffect=ee?"move":"copy"),a.type==="folder"&&Fe(o,a),j(f=>(f==null?void 0:f.path)===o&&f.state===i.state?f:{path:o,state:i.state})):(r.dataTransfer&&(r.dataTransfer.dropEffect="none"),ue(o),j(f=>(f==null?void 0:f.path)===o&&f.state==="invalid"?f:{path:o,state:"invalid"}))},it=(r,a,o)=>{ue(o);const i=r.relatedTarget;i&&r.currentTarget.contains(i)||j(f=>(f==null?void 0:f.path)===o?null:f)},wt=async(r,a,o)=>{const i=ee,f=je(a,o,i);if(!f.allowed||!f.destination){De();return}r.preventDefault(),r.stopPropagation(),ue(o),j(null);try{i?await yt(i,f.destination):await Ue(r.dataTransfer,f.destination)}finally{De()}},st=(r,a,o)=>{s&&(r.preventDefault(),r.stopPropagation(),H(null),u({absPath:o,type:a.type,x:r.clientX,y:r.clientY}))},Oe=async(r,a)=>{let o=a,i=0;const f=E=>{const re=E.lastIndexOf(".");return re>0?{stem:E.slice(0,re),ext:E.slice(re)}:{stem:E,ext:""}},w=r==="/"?"":r;for(;await(l==null?void 0:l.fileExists(`${w}/${o}`))||await(l==null?void 0:l.isDir(`${w}/${o}`));){i+=1;const{stem:E,ext:re}=f(a);o=`${E} (${i})${re}`}return o},We=async(r,a,o)=>{if(!l)return;let i=r||P||T;try{await l.isDir(i)||(i=G.dirname(i))}catch{i=G.dirname(i)}const f=i,w=await Oe(f,o),E=G.joinPaths(f,w);a==="folder"?await l.mkdir(E):await l.writeFile(E,""),U.current={type:a,tempPath:E},H(E),await te(f),setTimeout(()=>{D(E),J(E)},0)},gt=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},Et=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=G.basename(r),i=G.joinPaths(a,o);if(i===r||await gt(i))return;const f=G.dirname(r);try{await l.mv(r,i),Ee(r,i);const w=$e(P,r,i);P&&(P===r||P.startsWith(`${r}/`))&&S(w),D(E=>$e(E,r,i)),k(E=>({...E,[a]:!0})),await Promise.all([te(f),te(a)]),$(E=>$e(E,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)}),lt=async(r,a)=>{if(!l)return;const o=r.name||"untitled",i=await Oe(a,o),f=G.joinPaths(a,i),w=new Uint8Array(await r.arrayBuffer());await l.writeFile(f,w)},He=async(r,a)=>{const o=await bt(r);await lt(o,a)},Qe=async(r,a)=>{const o=await Oe(a,r.name||"New Folder"),i=G.joinPaths(a,o);await Et(i);const f=r.createReader(),w=()=>new Promise((E,re)=>{f.readEntries(he=>E(Array.from(he)),re)});for(;;){const E=await w();if(!E.length)break;for(const re of E)re.isFile?await He(re,i):re.isDirectory&&await Qe(re,i)}},Le=(r,a)=>ze([],r,a),Ue=(r,a)=>{const i=Array.from(r.items).filter(w=>w.kind==="file").map(w=>_t(w)).filter(w=>!!w),f=Array.from(r.files);return ze(i,f,a)},ze=async(r,a,o)=>{if(l){if(r.length>0)for(const i of r)i.isFile?await He(i,o):i.isDirectory&&await Qe(i,o);else for(const i of a)await lt(i,o);await te(o),k(i=>({...i,[o]:!0}))}},ct=async(r,a)=>{if(!l)return;const o=r;u(null);try{a==="folder"?await l.rmdir(o,{recursive:!0}):await l.unlink(o)}catch{}finally{H(null);const i=G.dirname(o);await te(i),P&&(P===o||P.startsWith(`${o}/`))&&S(null)}},xt=async r=>{if(l)try{const o=await(await l.read(r)).arrayBuffer(),i=new Blob([o]),f=URL.createObjectURL(i),w=document.createElement("a");w.href=f,w.download=G.basename(r)||"download",document.body.appendChild(w),w.click(),document.body.removeChild(w),setTimeout(()=>URL.revokeObjectURL(f),6e4)}catch(a){console.error("Failed to download file",a)}},ut=r=>{var a;if(!b)if(r.key.length===1&&r.key.match(/\S/)){const o=pe+r.key.toLowerCase();if(Be(o),M.current&&clearTimeout(M.current),M.current=setTimeout(()=>{Be("")},1e3),!g.current)return;const i=Array.from(g.current.querySelectorAll(".file-node-button")),f=document.activeElement;let w=0;f&&i.includes(f)&&(w=i.indexOf(f));for(let E=0;E<i.length;E++){const re=(w+E)%i.length,he=i[re];if((a=he.textContent)!=null&&a.toLowerCase().trim().startsWith(o)){he.focus();const t=he.getAttribute("data-path");t&&D(t);break}}}else Be(""),M.current&&clearTimeout(M.current)},Ct=async(r,a)=>{if(d)return;const o=U.current,i=(o==null?void 0:o.tempPath)===r,f=G.dirname(r);if(!a||a==="."||a===".."||G.basename(a)!==a){if(i){try{o.type==="folder"?await l.rmdir(r,{recursive:!0}):await l.unlink(r)}catch{}U.current=null}H(i?null:r);return}let w=G.joinPaths(f,a),E=w;if(E===r){H(null);const c=i&&(o==null?void 0:o.type)==="file";i&&(U.current=null),setTimeout(()=>{D(E),J(E),c&&N&&N(E)},0);return}const re=await l.fileExists(E),he=await l.isDir(E);if((re||he)&&E!==r)if(i)try{const c=await Oe(f==="/"?"/":f,a);w=G.joinPaths(f,c),E=w}catch{}else{H(r);return}let t=(o==null?void 0:o.type)==="folder";try{await l.mv(r,w),o||(t=await l.isDir(w)),t&&Ee(r,E),P===r&&S(E),await te(f),D(E),J(E),i&&!t&&N&&N(E)}catch{if(i)try{(o==null?void 0:o.type)==="folder"?await l.rmdir(r,{recursive:!0}):await l.unlink(r)}catch{}}finally{U.current=null,H(null)}},ft=async r=>{const a=U.current;if(!l||(a==null?void 0:a.tempPath)!==r){H(i=>i===r?null:i);return}try{a.type==="folder"?await l.rmdir(r,{recursive:!0}):await l.unlink(r)}catch{}U.current=null,H(null);const o=G.dirname(r);await te(o),D(o),J(o)};return e.createElement("div",{onKeyDown:ut,ref:g},e.createElement(X.__experimentalTreeGrid,{className:ge.filePickerTree},ae.map((r,a)=>e.createElement(Ut,{key:r.name,node:r,level:0,position:a+1,setSize:ae.length,expandedNodePaths:_,onToggle:Pe,selectedNode:P,focusPath:o=>D(o),focusedNode:F,selectPath:ye,generatePath:ie,getChildren:Te,onContextMenu:d?void 0:st,renamingPath:Q,onRename:Ct,onRenameCancel:ft,dropIndicator:y,onDragStart:d?void 0:ht,onDragEnd:d?void 0:vt,onDragEnter:d?void 0:at,onDragOver:d?void 0:ot,onDragLeave:d?void 0:it,onDrop:d?void 0:wt,rootPath:T,onDoubleClickFile:N}))),!d&&z&&e.createElement(X.Popover,{placement:"bottom-start",onClose:()=>u(null),anchor:{getBoundingClientRect:()=>({x:z.x,y:z.y,width:0,height:0,top:z.y,left:z.x,right:z.x,bottom:z.y,toJSON:()=>({})}),ownerDocument:document},noArrow:!0,resize:!1,focusOnMount:"firstElement"},e.createElement(X.NavigableMenu,{role:"menu"},z.type==="folder"&&e.createElement(X.MenuItem,{role:"menuitem",onClick:async()=>{u(null),await We(z.absPath,"file","untitled.php")}},"Create file"),z.type==="folder"&&e.createElement(X.MenuItem,{role:"menuitem",onClick:async()=>{u(null),await We(z.absPath,"folder","New Folder")}},"Create directory"),e.createElement(X.MenuItem,{role:"menuitem",onClick:()=>{u(null),H(z.absPath)}},"Rename"),z.type==="file"&&e.createElement(X.MenuItem,{role:"menuitem",onClick:async()=>{u(null),await xt(z.absPath)}},"Download"),e.createElement(X.MenuItem,{role:"menuitem",onClick:()=>ct(z.absPath,z.type)},"Delete"))))}),Ut=({node:n,level:s,position:d,setSize:l,expandedNodePaths:x,onToggle:m,selectedNode:S,focusPath:N,focusedNode:h,selectPath:T,generatePath:_,getChildren:k,onContextMenu:P,renamingPath:$,onRename:F,onRenameCancel:D,parentPath:le="",dropIndicator:v,onDragStart:C,onDragEnd:Y,onDragEnter:ee,onDragOver:Z,onDragLeave:y,onDrop:j,rootPath:I,onDoubleClickFile:V})=>{const g=_(n,le),M=x[g],de=$===g,A=e.useRef(null),[K,ue]=e.useState(n.name),J=e.useRef(!1),ie=(v==null?void 0:v.path)===g,Te=ie&&(v==null?void 0:v.state)==="valid",xe=ie&&(v==null?void 0:v.state)==="invalid",Ce=!!C&&!de&&g!==I,ce=e.useRef(null),Fe={onDragEnter:u=>ee==null?void 0:ee(u,n,g),onDragOver:u=>Z==null?void 0:Z(u,n,g),onDragLeave:u=>y==null?void 0:y(u,n,g),onDrop:u=>j==null?void 0:j(u,n,g)},te=k(n,g)??[];e.useEffect(()=>{var u;de?(ue(n.name),J.current=!1,typeof window<"u"&&requestAnimationFrame?requestAnimationFrame(()=>{var b;(b=A.current)==null||b.select()}):(u=A.current)==null||u.select()):J.current=!1},[de,n.name]);const Pe=()=>{n.type==="folder"&&m(g,n,!M)},Re=u=>{var b,H;if(u.key==="ArrowLeft")M?Pe():(b=document.querySelector(`[data-path="${CSS.escape(le)}"]`))==null||b.focus(),u.preventDefault(),u.stopPropagation();else if(u.key==="ArrowRight"){if(M){if(te!=null&&te.length){const U=_(te[0],g);(H=document.querySelector(`[data-path="${CSS.escape(U)}"]`))==null||H.focus()}}else Pe();u.preventDefault(),u.stopPropagation()}else u.key===" "||u.key==="Space"||u.key==="Spacebar"?(n.type==="folder"&&m(g,n,!M),u.preventDefault()):u.key==="Enter"&&(n.type==="folder"?m(g,n,!M):(T(g,!1),N(g),V?V(g):T(g,!0)),u.preventDefault())},Ee=u=>{P==null||P(u,n,g)},De=u=>{u.preventDefault(),J.current=!0,F==null||F(g,K)},ye=u=>{if(u.key==="Escape"){u.preventDefault(),u.stopPropagation(),J.current=!0,D==null||D(g);return}(u.key==="ArrowLeft"||u.key==="ArrowRight"||u.key==="ArrowUp"||u.key==="ArrowDown")&&u.stopPropagation()},ae=()=>{J.current||D==null||D(g),J.current=!1},z=()=>{if(n.type==="folder"){Pe(),T(g),N(g);return}const u=ce.current!==null;if(u&&ce.current&&clearTimeout(ce.current),ce.current=null,u){V?V(g):T(g,!0);return}T(g,!1),N(g),T(g,!0),ce.current=window.setTimeout(()=>{ce.current=null},300)};return e.useEffect(()=>()=>{ce.current!==null&&typeof window<"u"&&clearTimeout(ce.current)},[]),e.createElement(e.Fragment,null,e.createElement(X.__experimentalTreeGridRow,{level:s,positionInSet:d,setSize:l},e.createElement(X.__experimentalTreeGridCell,null,()=>e.createElement(e.Fragment,null,de?e.createElement("form",{onSubmit:De,className:Ne(ge.fileNodeButton,ge.renaming,"file-node-button",{[ge.selected]:S===g,[ge.focused]:h===g,[ge.dropTarget]:Te,[ge.dropTargetInvalid]:xe}),"data-path":g,onContextMenu:Ee,...Fe},e.createElement(Vt,{node:n,isOpen:n.type==="folder"&&M,level:s,hideName:!0}),e.createElement("input",{ref:A,className:ge.renameInput,value:K,onChange:u=>ue(u.target.value),onBlur:ae,onFocus:()=>N(g),onKeyDown:ye})):e.createElement(X.Button,{...Fe,draggable:Ce,onDragStart:u=>C==null?void 0:C(u,n,g),onDragEnd:u=>Y==null?void 0:Y(u,n,g),onClick:z,onKeyDown:Re,onFocus:()=>{N(g)},onContextMenu:Ee,className:Ne(ge.fileNodeButton,"file-node-button",{[ge.selected]:S===g,[ge.focused]:h===g,[ge.dropTarget]:Te,[ge.dropTargetInvalid]:xe}),"data-path":g,"data-expanded":M?"true":"false"},e.createElement(Vt,{node:n,isOpen:n.type==="folder"&&M,level:s}))))),M&&te&&te.map((u,b)=>e.createElement(Ut,{key:u.name,node:u,level:s+1,position:b+1,setSize:te.length,expandedNodePaths:x,onToggle:m,selectedNode:S,focusPath:N,focusedNode:h,selectPath:T,generatePath:_,getChildren:k,onContextMenu:P,renamingPath:$,onRename:F,onRenameCancel:D,parentPath:g,dropIndicator:v,onDragStart:C,onDragEnd:Y,onDragEnter:ee,onDragOver:Z,onDragLeave:y,onDrop:j,rootPath:I,onDoubleClickFile:V})))},Vt=({node:n,level:s,isOpen:d,hideName:l=!1})=>{const x=[];for(let m=0;m<s;m++)x.push("&nbsp;&nbsp;&nbsp;&nbsp;");return e.createElement(e.Fragment,null,e.createElement("span",{"aria-hidden":"true",dangerouslySetInnerHTML:{__html:x.join("")}}),n.type==="folder"?e.createElement(Bt,{width:16,icon:d?mr:pr}):e.createElement("div",{style:{width:16}}," "),e.createElement(Bt,{width:16,icon:n.type==="folder"?$t:Wt}),!l&&e.createElement("span",{className:ge.fileName},n.name))},kr="_control_kp9d9_1",Tr="_browse-label_kp9d9_11",Pr="_path-preview_kp9d9_37",Dr="_modal_kp9d9_43",Ar="_modal-footer_kp9d9_48",Ze={control:kr,browseLabel:Tr,pathPreview:Pr,modal:Dr,modalFooter:Ar};function Nr({path:n}){if(!n)return e.createElement("div",{className:Ze.pathPreview},e.createElement("i",null,"Select a path"));const s=n.split("/");let d=(s.length>2?"/":"")+s.pop();d.length>10&&(d=d.substring(d.length-10));const l=n.substring(0,n.length-d.length);return e.createElement("div",{className:Ze.pathPreview,"data-content-start":l,"data-content-end":d})}function Fr({value:n="",onChange:s,filesystem:d}){const[l,x]=e.useState(!1),m=()=>x(!0),S=()=>x(!1),[N,h]=e.useState(n||null);function T(_){_==null||_.preventDefault(),s(N||""),S()}return e.createElement(e.Fragment,null,e.createElement(X.Button,{variant:"tertiary",className:Ze.control,onClick:m},e.createElement("span",{className:Ze.browseLabel},"Browse"),e.createElement(Nr,{path:n||""})),l&&e.createElement(X.Modal,{title:"Select a path ",onRequestClose:S,className:Ze.modal},e.createElement("form",{onSubmit:T},e.createElement(Ht,{filesystem:d,initialSelectedPath:n,onSelect:h}),e.createElement("div",{className:Ze.modalFooter},e.createElement(X.Button,{type:"submit",variant:"primary"},"Select Path")))))}const Ir="_container_1h0az_1",Lr="_header_1h0az_9",Mr="_filename_1h0az_18",Br="_downloadLink_1h0az_26",jr="_previewArea_1h0az_38",Or="_imagePreview_1h0az_51",Vr="_videoPreview_1h0az_57",$r="_audioPreview_1h0az_64",Wr="_unsupportedMessage_1h0az_68",Hr="_actions_1h0az_74",Ie={container:Ir,header:Lr,filename:Mr,downloadLink:Br,previewArea:jr,imagePreview:Or,videoPreview:Vr,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 zr({filename:n,mimeType:s,dataUrl:d,downloadUrl:l,showHeader:x=!0}){const{isImage:m,isVideo:S,isAudio:N}=Ur(s),h=x!==!1,T=!!(l&&n),_=()=>T?e.createElement("a",{className:Ie.downloadLink,href:l,download:n},"Download"):null,k=()=>m?e.createElement("img",{className:Ie.imagePreview,src:d,alt:n||"Preview"}):S?e.createElement("video",{className:Ie.videoPreview,controls:!0,preload:"metadata"},e.createElement("source",{src:d,type:s}),"Your browser does not support the video tag."):N?e.createElement("audio",{className:Ie.audioPreview,controls:!0},e.createElement("source",{src:d,type:s}),"Your browser does not support the audio tag."):e.createElement("div",{className:Ie.unsupportedMessage},e.createElement("p",null,"Preview unavailable for this file type."),T?e.createElement("p",null,_()):e.createElement("p",null,"Download the file to inspect its contents."));return e.createElement("div",{className:Ie.container},h&&e.createElement("div",{className:Ie.header},e.createElement("span",{className:Ie.filename,title:n},n),_()),e.createElement("div",{className:Ie.previewArea},k()),!h&&T&&e.createElement("div",{className:Ie.actions},_()))}const kt=new Map,qr=async n=>{var x;if(!n)return nt.php();const s=(x=n.split(".").pop())==null?void 0:x.toLowerCase();if(!s||s==="php")return nt.php();const d=n;if(kt.has(d))return kt.get(d);let l;switch(s){case"css":l=await import("@codemirror/lang-css").then(m=>m.css());break;case"js":case"jsx":case"ts":case"tsx":l=await import("@codemirror/lang-javascript").then(m=>m.javascript({jsx:s==="jsx"||s==="tsx",typescript:s==="ts"||s==="tsx"}));break;case"json":l=await import("@codemirror/lang-json").then(m=>m.json());break;case"html":case"htm":l=await import("@codemirror/lang-html").then(m=>m.html());break;case"md":case"markdown":l=await import("@codemirror/lang-markdown").then(m=>m.markdown());break;default:l=nt.php()}return kt.set(d,l),l};class Gr{constructor(s){this.view=s,this.handleClick=this.handleClick.bind(this),this.view.dom.addEventListener("mousedown",this.handleClick)}handleClick(s){const d=s.target;if((d.classList.contains("cm-scroller")||d.classList.contains("cm-content"))&&this.view.posAtCoords({x:s.clientX,y:s.clientY})===null){const x=this.view.state.doc.length,m=Me.EditorSelection.create([Me.EditorSelection.range(x,x)]);this.view.dispatch({selection:m,effects:be.EditorView.scrollIntoView(x,{y:"center"})}),this.view.focus(),s.preventDefault()}}destroy(){this.view.dom.removeEventListener("mousedown",this.handleClick)}}const Yr=be.ViewPlugin.define(n=>new Gr(n)),At=e.forwardRef(function({code:s,onChange:d,currentPath:l,className:x,onSaveShortcut:m,readOnly:S=!1,additionalExtensions:N},h){const T=e.useRef(null),_=e.useRef(null),k=e.useRef(new Me.Compartment),P=e.useRef(new Me.Compartment),$=e.useRef(new Me.Compartment),F=e.useRef(s),D=e.useRef(d),le=e.useRef(!1);return e.useImperativeHandle(h,()=>({focus:()=>{var v;(v=_.current)==null||v.focus()},blur:()=>{const v=_.current;v&&v.contentDOM.blur()},getCursorPosition:()=>_.current?_.current.state.selection.main.anchor:null,setCursorPosition:v=>{if(!_.current)return;const C=Math.min(v,_.current.state.doc.length),Y=Me.EditorSelection.create([Me.EditorSelection.range(C,C)]);_.current.dispatch({selection:Y,scrollIntoView:!0})}})),e.useEffect(()=>{F.current=s},[s]),e.useEffect(()=>{D.current=d},[d]),e.useEffect(()=>{if(_.current)return;const v=T.current;if(!v)return;const C=Me.EditorState.create({doc:s,extensions:[$.current.of(N??[]),be.lineNumbers(),be.highlightActiveLineGutter(),be.highlightActiveLine(),Ge.foldGutter(),be.dropCursor(),be.rectangularSelection(),be.crosshairCursor(),Yr,k.current.of(nt.php()),P.current.of(be.EditorView.editable.of(!S)),Ge.syntaxHighlighting(Ge.defaultHighlightStyle),Ge.indentOnInput(),Ge.bracketMatching(),mt.closeBrackets(),dt.history(),It.highlightSelectionMatches(),mt.autocompletion(),be.EditorView.updateListener.of(ee=>{if(!ee.docChanged)return;const Z=ee.state.doc.toString();Z!==F.current&&(F.current=Z,D.current(Z))}),be.keymap.of([{key:"Mod-s",preventDefault:!0,run:()=>(m==null||m(),!0)},...mt.closeBracketsKeymap,...mt.completionKeymap,...Ge.foldKeymap,...It.searchKeymap,...dt.historyKeymap,...dt.defaultKeymap,dt.indentWithTab])]}),Y=new be.EditorView({state:C,parent:v});return _.current=Y,()=>{Y.destroy(),_.current=null}},[]),e.useEffect(()=>{const v=_.current;v&&v.dispatch({effects:$.current.reconfigure(N??[])})},[N]),e.useEffect(()=>{const v=_.current;if(!v)return;const C=v.state.doc.toString();s!==C&&v.dispatch({changes:{from:0,to:v.state.doc.length,insert:s}})},[s]),e.useEffect(()=>{var Z;const v=_.current;if(!v)return;const C=(Z=l==null?void 0:l.split(".").pop())==null?void 0:Z.toLowerCase();(!C||C==="php")&&v.dispatch({effects:k.current.reconfigure(nt.php())});let ee=!1;return qr(l).then(y=>{ee||!_.current||_.current.dispatch({effects:k.current.reconfigure(y)})}),()=>{ee=!0}},[l]),e.useEffect(()=>{const v=_.current;v&&(v.hasFocus&&(le.current=!0),v.dispatch({effects:P.current.reconfigure(be.EditorView.editable.of(!S))}))},[S]),e.useLayoutEffect(()=>{const v=_.current;v&&le.current&&!v.hasFocus&&(v.focus(),le.current=!1)},[l,S]),e.createElement("div",{ref:T,className:x})});At.displayName="CodeEditor";const Zr="_fileExplorerContainer_8eol9_1",Kr="_dropActive_8eol9_9",Jr="_fileExplorerHeader_8eol9_14",Xr="_fileExplorerTitle_8eol9_23",Qr="_fileExplorerActions_8eol9_31",en="_fileExplorerButton_8eol9_37",tn="_fileExplorerIconButton_8eol9_67",rn="_fileExplorerTree_8eol9_79",nn="_dockPresentation_8eol9_88",an="_fileExplorerUploadButton_8eol9_148",we={fileExplorerContainer:Zr,dropActive:Kr,fileExplorerHeader:Jr,fileExplorerTitle:Xr,fileExplorerActions:Qr,fileExplorerButton:en,fileExplorerIconButton:tn,fileExplorerTree:rn,dockPresentation:nn,fileExplorerUploadButton:an},Nt=1024*1024,zt=n=>{const s=n.byteLength;for(let d=0;d<Math.min(s,4096);d++)if(n[d]===0)return!0;try{return new TextDecoder("utf-8",{fatal:!0}).decode(n),!1}catch{return!0}},Dt=(n,s)=>{const d=new Blob([n]),l=URL.createObjectURL(d);return setTimeout(()=>URL.revokeObjectURL(l),6e4),{url:l,filename:s}};async function on(n,s=Nt){const d=sn(n);if(d!==void 0&&d>s)return{type:"too-large"};if(typeof n.stream=="function")return ln(n,s);const l=new Uint8Array(await n.arrayBuffer());return l.byteLength>s?{type:"too-large"}:{type:"inline",data:l}}function sn(n){if(typeof n.filesize=="number")return n.filesize;if(typeof n.size=="number")return n.size}async function ln(n,s){const d=n.stream().getReader(),l=[];let x=0;try{for(;;){const{done:m,value:S}=await d.read();if(m)return{type:"inline",data:G.concatUint8Arrays(l)};if(S){if(x+=S.byteLength,x>s)return await d.cancel().catch(()=>{}),{type:"too-large"};l.push(S)}}}finally{d.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:d,setSelectedDirPath:l,onFileOpened:x,onSelectionCleared:m,onShowMessage:S,documentRoot:N,readOnly:h=!1,title:T="Files",showBinaryPreviewHeader:_=!0,dockPresentation:k=!1,useWordPressTooltips:P=!1}){const $=e.useRef(null),F=e.useRef(null),D=e.useMemo(()=>s?G.dirname(s):d??N,[s,N]),[le,v]=e.useState(!1);e.useEffect(()=>{!s||!$.current||(l(G.dirname(s)),$.current.focusPath(s,{select:!0,domFocus:!1,notify:!1}),$.current.expandToPath(s))},[s,l]);const C=async(y,j)=>{try{const I=await n.read(y),V=await on(I);if(V.type==="too-large"){const A=Nt/1024/1024;if(!k){await S(y,e.createElement(e.Fragment,null,e.createElement("p",null,`File too large to open (>${A}MB).`),e.createElement("p",null,"Open or download it outside the in-browser editor.")));return}const K=G.basename(y)||"download";await S(y,e.createElement(e.Fragment,null,e.createElement("p",null,`File too large to open (>${A}MB).`),e.createElement("p",null,e.createElement(X.Button,{type:"button",variant:"link",onClick:()=>{Y(y,K)}},"Download ",K))));return}const g=V.data,M=G.basename(y)||"download";if(zt(g)){const A=qt(M),{url:K,filename:ue}=Dt(g,M);if(Gt(A)){const J=new Blob([g],{type:A}),ie=URL.createObjectURL(J);await S(y,e.createElement(Lt.BinaryFilePreview,{filename:ue,mimeType:A,dataUrl:ie,downloadUrl:K,showHeader:_}));return}await S(y,e.createElement(e.Fragment,null,e.createElement("p",null,"Binary file. Cannot be edited."),e.createElement("p",null,e.createElement("a",{href:K,download:ue},"Download ",ue))));return}const de=new TextDecoder("utf-8").decode(g);await x(y,de,j)}catch(I){Ye.logger.error("Could not open file",I),await S(null,"Could not open file.")}},Y=async(y,j)=>{try{const I=await n.read(y),V=new Uint8Array(await I.arrayBuffer()),{url:g}=Dt(V,j),M=document.createElement("a");M.href=g,M.download=j,document.body.appendChild(M),M.click(),document.body.removeChild(M)}catch(I){Ye.logger.error("Could not download file",I),await S(y,"Could not download file.")}},ee=y=>{var I;const j=Array.from(y.target.files??[]);y.target.value="",j.length!==0&&((I=$.current)==null||I.importFiles(j,d??N).catch(V=>Ye.logger.error("Failed to import files",V)))},Z=y=>{var j;y.dataTransfer.types.includes("application/x-wp-playground-path")||(y.preventDefault(),!h&&((j=$.current)==null||j.importDataTransfer(y.dataTransfer,d??N).catch(I=>Ye.logger.error("Failed to import dropped files",I))))};return e.createElement("div",{className:Ne(we.fileExplorerContainer,{[we.dropActive]:le,[we.dockPresentation]:k}),onDragEnter:y=>{y.dataTransfer.types.includes("application/x-wp-playground-path")||(y.preventDefault(),h||v(!0))},onDragOver:y=>{y.dataTransfer.types.includes("application/x-wp-playground-path")||(y.preventDefault(),y.dataTransfer.dropEffect=h?"none":"copy")},onDragLeave:y=>{const j=y.relatedTarget;(!j||!y.currentTarget.contains(j))&&v(!1)},onDropCapture:()=>v(!1),onDrop:Z},e.createElement("div",{className:we.fileExplorerHeader},e.createElement("span",{className:we.fileExplorerTitle},T),h?null:e.createElement("div",{className:we.fileExplorerActions},e.createElement(Tt,{label:"Create new file",useWordPressTooltip:P},e.createElement("button",{className:Ne(we.fileExplorerButton,we.fileExplorerIconButton),type:"button",onClick:()=>{$.current&&$.current.createFile()},"aria-label":"Create new file",title:P?void 0:"Create new file"},k?e.createElement(cn,null):e.createElement(X.Icon,{icon:vr,size:20}))),e.createElement(Tt,{label:"Create new folder",useWordPressTooltip:P},e.createElement("button",{className:Ne(we.fileExplorerButton,we.fileExplorerIconButton),type:"button",onClick:()=>{$.current&&$.current.createFolder()},"aria-label":"Create new folder",title:P?void 0:"Create new folder"},k?e.createElement(un,null):e.createElement(X.Icon,{icon:hr,size:20}))),e.createElement(Tt,{label:"Upload files",useWordPressTooltip:P},e.createElement("button",{className:Ne(we.fileExplorerButton,we.fileExplorerIconButton,we.fileExplorerUploadButton),type:"button",onClick:()=>{var y;return(y=F.current)==null?void 0:y.click()},"aria-label":"Upload files",title:P?void 0:"Upload files"},e.createElement(X.Icon,{icon:wr,size:k?16:20}))),e.createElement("input",{ref:F,type:"file",multiple:!0,style:{display:"none"},onChange:ee}))),e.createElement("div",{className:we.fileExplorerTree},e.createElement(Lt.FilePickerTree,{ref:$,readOnly:h,filesystem:n,root:N,initialSelectedPath:D,onSelect:async y=>{if(!y){l(N),await m();return}try{if(await n.isDir(y)){l(y);return}}catch{}l(G.dirname(y)),await C(y,!1)},onDoubleClickFile:async y=>{await C(y,!0)}})))}function Tt({label:n,useWordPressTooltip:s,children:d}){return s?e.createElement(X.Tooltip,{text:n,delay:0,placement:"top"},d):d}const cn=()=>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"}))),un=()=>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"}))),fn="_container_xer29_1",dn="_content_xer29_9",mn="_sidebarWrapper_xer29_17",pn="_editorWrapper_xer29_28",hn="_editorHeader_xer29_37",vn="_editorPath_xer29_49",wn="_editorPathPlaceholder_xer29_60",gn="_editorHeaderActions_xer29_64",En="_saveStatus_xer29_71",yn="_saveStatusSaving_xer29_78",_n="_saveStatusPending_xer29_79",bn="_saveStatusError_xer29_83",xn="_editor_xer29_28",Cn="_placeholder_xer29_105",Rn="_messageArea_xer29_116",Sn="_mobileToggle_xer29_152",kn="_mobileOverlay_xer29_156",Tn="_dockPresentation_xer29_162",Pn="_dockDirtyIndicator_xer29_186",Dn="_dockSaveButton_xer29_195",An="_sidebarOpen_xer29_250",ne={container:fn,content:dn,sidebarWrapper:mn,editorWrapper:pn,editorHeader:hn,editorPath:vn,editorPathPlaceholder:wn,editorHeaderActions:gn,saveStatus:En,saveStatusSaving:yn,saveStatusPending:_n,saveStatusError:bn,editor:xn,placeholder:Cn,messageArea:Rn,mobileToggle:Sn,mobileOverlay:kn,dockPresentation:Tn,dockDirtyIndicator:Pn,dockSaveButton:Dn,sidebarOpen:An},Nn=1500,Fn=700,In=1e3,B={IDLE:"idle",PENDING:"pending",SAVING:"saving",SAVED:"saved",ERROR:"error"};function Ln({filesystem:n,isVisible:s=!0,documentRoot:d,initialPath:l=null,placeholderText:x="Select a file to view or edit its contents.",dockPresentation:m=!1}){const[S,N]=e.useState(d),[h,T]=e.useState(null),[_,k]=e.useState(""),[P,$]=e.useState(!0),[F,D]=e.useState(B.IDLE),[le,v]=e.useState(null),[C,Y]=e.useState("idle"),[ee,Z]=e.useState(!1),[y,j]=e.useState(null),I=e.useRef(null),V=e.useRef(null),g=e.useRef(!1),M=e.useRef(h),de=e.useRef(n),A=e.useRef(null),K=e.useRef(null),ue=e.useRef(new WeakMap),J=e.useRef(!0),ie=e.useRef(new Map),Te=e.useRef(!1);de.current=n,e.useEffect(()=>{M.current=h},[h]);const xe=e.useCallback(async u=>{const{filesystem:b,path:H,content:U}=u,Q=K.current===u,fe=ue.current,_e=(fe.get(b)??Promise.resolve()).catch(()=>{}).then(()=>b.writeFile(H,U));fe.set(b,_e);let pe=!1;try{await _e}catch(Xe){pe=!0,Ye.logger.error("Failed to save file",Xe)}const Be=J.current&&fe.get(b)===_e&&de.current===b&&M.current===H&&A.current===null;fe.get(b)===_e&&fe.delete(b),K.current===u&&(K.current=null),Be&&(D(pe?B.ERROR:B.SAVED),v(pe?"Could not save changes. Try again.":null),Q&&Y(pe?"idle":"saved"))},[]),Ce=e.useCallback(()=>{const u=A.current;u&&(V.current!==null&&(window.clearTimeout(V.current),V.current=null),A.current=null,xe(u))},[xe]);e.useEffect(()=>(J.current=!0,()=>{J.current=!1}),[]),e.useEffect(()=>()=>{var u;((u=A.current)==null?void 0:u.filesystem)===n&&Ce()},[d,n,Ce]),e.useEffect(()=>{g.current=!0,N(d),k(""),T(null),$(!0),D(B.IDLE),v(null),Z(!1),j(null),ie.current.clear(),Te.current=!1},[d,n]),e.useEffect(()=>{if(!n||!l||Te.current)return;let u=!1;return(async()=>{try{if(await n.fileExists(l)&&!u){const U=await n.readFileAsText(l);if(u)return;g.current=!0,T(l),k(U),$(!1),D(B.IDLE),v(null),setTimeout(()=>{var Q;(Q=I.current)==null||Q.focus()},100)}}catch(H){Ye.logger.debug("Could not auto-open initial path:",H)}finally{u||(Te.current=!0)}})(),()=>{u=!0}},[n,l]),e.useEffect(()=>{if(!n||!h){V.current!==null&&(window.clearTimeout(V.current),V.current=null),A.current=null,h||D(B.IDLE);return}if(g.current){g.current=!1,A.current=null;return}V.current!==null&&(window.clearTimeout(V.current),V.current=null),D(B.PENDING);const u={filesystem:n,path:h,content:_};A.current=u;const b=window.setTimeout(()=>{A.current===u&&(V.current=null,A.current=null,D(B.SAVING),xe(u))},Nn);return V.current=b,()=>{V.current===b&&(window.clearTimeout(b),V.current=null)}},[_,h,n,xe]),e.useEffect(()=>{if(F!==B.SAVED)return;const u=window.setTimeout(()=>{D(b=>b===B.SAVED?B.IDLE:b)},2e3);return()=>window.clearTimeout(u)},[F]),e.useEffect(()=>{C==="idle"||F===B.SAVING||F===B.SAVED||Y("idle")},[C,F]),e.useEffect(()=>{if(C!=="saved")return;const u=window.setTimeout(()=>Y("idle"),In);return()=>window.clearTimeout(u)},[C]),e.useEffect(()=>{if(C!=="waiting")return;const u=window.setTimeout(()=>Y(b=>b==="waiting"?"saving":b),Fn);return()=>window.clearTimeout(u)},[C]);const ce=e.useCallback(async(u,b,H=!0)=>{var Q;const U=(Q=I.current)==null?void 0:Q.getCursorPosition();U!=null&&M.current&&ie.current.set(M.current,U),g.current=!0,T(u),k(b),j(null),$(!1),D(B.IDLE),v(null),Z(!1),setTimeout(()=>{var Ae,_e,pe;const fe=ie.current.get(u);fe!==void 0&&((Ae=I.current)==null||Ae.setCursorPosition(fe)),H?(_e=I.current)==null||_e.focus():(pe=I.current)==null||pe.blur()},50)},[]);e.useEffect(()=>{var H;if(!h)return;const u=setInterval(()=>{var Q;const U=(Q=I.current)==null?void 0:Q.getCursorPosition();U!=null&&ie.current.set(h,U)},1e3),b=(H=I.current)==null?void 0:H.getCursorPosition();return b!=null&&ie.current.set(h,b),()=>{var Q;clearInterval(u);const U=(Q=I.current)==null?void 0:Q.getCursorPosition();U!=null&&ie.current.set(h,U)}},[h]),e.useEffect(()=>{if(!s||!h)return;const u=setTimeout(()=>{var H;const b=ie.current.get(h);b!==void 0&&((H=I.current)==null||H.setCursorPosition(b))},100);return()=>clearTimeout(u)},[s,h]);const Fe=e.useCallback(async()=>{var b;const u=(b=I.current)==null?void 0:b.getCursorPosition();u!=null&&M.current&&ie.current.set(M.current,u),g.current=!0,T(null),k(""),j(null),$(!0),D(B.IDLE),v(null)},[]),te=e.useCallback(async(u,b)=>{g.current=!0,T(null),typeof b=="string"?(k(b),j(null)):(k(""),j(b)),$(!0),D(B.IDLE),v(null),Z(!1)},[]),Pe=e.useCallback(()=>{A.current&&(K.current=A.current,Y("waiting"),D(B.SAVING),Ce())},[Ce]),Re=e.useCallback(()=>{!A.current&&F===B.ERROR&&n&&h&&(A.current={filesystem:n,path:h,content:_}),A.current&&(v(null),Pe())},[_,h,n,Pe,F]),Ee=Mn(F,le),De=Bn(F,ne),ye=jn(F);let ae="Save";F===B.ERROR?ae="Retry":F===B.SAVED&&C==="saved"?ae="Saved":F===B.SAVING&&C==="saving"&&(ae="Saving…");const z=F===B.PENDING||F===B.SAVING||F===B.ERROR;return n?e.createElement("div",{className:Ne(ne.container,{[ne.dockPresentation]:m})},e.createElement("div",{className:Ne(ne.content,{[ne.sidebarOpen]:ee})},e.createElement("div",{className:ne.mobileOverlay,onClick:()=>Z(!1)}),e.createElement("aside",{className:ne.sidebarWrapper},e.createElement(Yt,{filesystem:n,currentPath:h,selectedDirPath:S,setSelectedDirPath:N,onFileOpened:ce,onSelectionCleared:Fe,onShowMessage:te,documentRoot:d,dockPresentation:m,useWordPressTooltips:m})),e.createElement("section",{className:ne.editorWrapper},e.createElement("div",{className:ne.editorHeader},e.createElement(X.Button,{className:ne.mobileToggle,variant:"secondary",onClick:()=>Z(u=>!u)},ee?"Hide files":"Browse files"),e.createElement("div",{className:Ne(ne.editorPath,{[ne.editorPathPlaceholder]:!(h!=null&&h.length)}),title:h??void 0},h!=null&&h.length?h:`Browse files under ${d}`),m&&!P&&h?e.createElement("div",{className:ne.editorHeaderActions},z?e.createElement("span",{className:ne.dockDirtyIndicator,"aria-hidden":"true"}):null,e.createElement(X.Tooltip,{text:ye,placement:"top"},e.createElement(X.Button,{variant:"secondary",className:ne.dockSaveButton,isDestructive:F===B.ERROR,onClick:Re},ae))):m?null:e.createElement("div",{className:Ne(ne.saveStatus,De)},Ee),m&&!P&&h?e.createElement(X.VisuallyHidden,{role:"status","aria-live":"polite"},ye):null),le?e.createElement("div",{style:{padding:"8px 16px"}},e.createElement(X.Notice,{status:"error",isDismissible:!1},le)):null,h||_||y?y?e.createElement("div",{className:ne.messageArea},y):e.createElement(At,{ref:I,code:_,onChange:k,currentPath:h,className:ne.editor,onSaveShortcut:Pe,readOnly:P}):e.createElement("div",{className:ne.placeholder},x)))):e.createElement("div",{className:Ne(ne.container,{[ne.dockPresentation]:m})},e.createElement("div",{className:ne.placeholder},x))}function Mn(n,s){switch(n){case B.PENDING:case B.SAVING:return"Saving…";case B.SAVED:return"Saved";case B.ERROR:return s??"Save failed";default:return""}}function Bn(n,s){switch(n){case B.PENDING:return s.saveStatusPending;case B.SAVING:return s.saveStatusSaving;case B.ERROR:return s.saveStatusError;default:return}}function jn(n){switch(n){case B.PENDING:return"Unsaved changes. Click to save now.";case B.SAVING:return"Saving changes…";case B.ERROR:return"Saving failed. Click to retry.";default:return"All changes saved."}}exports.BinaryFilePreview=zr;exports.ClockIcon=sr;exports.CodeEditor=At;exports.FileExplorerSidebar=Yt;exports.FilePickerControl=Fr;exports.FilePickerTree=Ht;exports.MAX_INLINE_FILE_BYTES=Nt;exports.PlaygroundFileEditor=Ln;exports.SiteManagerIcon=ur;exports.WordPressIcon=ir;exports.createDownloadUrl=Dt;exports.file=Wt;exports.folder=$t;exports.getLogoDataURL=cr;exports.getMimeType=qt;exports.isPreviewableBinary=Gt;exports.layout=lr;exports.playgroundLogo=ar;exports.seemsLikeBinary=zt;exports.temporaryStorage=or;
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;
31
31
  //# sourceMappingURL=index.cjs.map